mirror of
https://github.com/documenso/documenso.git
synced 2026-07-22 16:03:39 +10:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0d5b78c339 | |||
| 204006d451 | |||
| 8916092500 |
+15
-9
@@ -3,7 +3,7 @@
|
|||||||
/* Inter Variable Fonts */
|
/* Inter Variable Fonts */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "Inter";
|
font-family: "Inter";
|
||||||
src: url("/fonts/inter-variablefont_opsz,wght.ttf") format("truetype-variations");
|
src: url("/fonts/inter-variablefont_opsz,wght.woff2") format("woff2");
|
||||||
font-weight: 100 900;
|
font-weight: 100 900;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
/* Inter Italic Variable Fonts */
|
/* Inter Italic Variable Fonts */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "Inter";
|
font-family: "Inter";
|
||||||
src: url("/fonts/inter-italic-variablefont_opsz,wght.ttf") format("truetype-variations");
|
src: url("/fonts/inter-italic-variablefont_opsz,wght.woff2") format("woff2");
|
||||||
font-weight: 100 900;
|
font-weight: 100 900;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
/* Caveat Variable Font */
|
/* Caveat Variable Font */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "Caveat";
|
font-family: "Caveat";
|
||||||
src: url("/fonts/caveat-variablefont_wght.ttf") format("truetype-variations");
|
src: url("/fonts/caveat-variablefont_wght.woff2") format("woff2");
|
||||||
font-weight: 400 600;
|
font-weight: 400 600;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
@@ -29,8 +29,8 @@
|
|||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "Noto Sans";
|
font-family: "Noto Sans";
|
||||||
src: url("/fonts/noto-sans.ttf") format("truetype-variations");
|
src: url("/fonts/noto-sans.woff2") format("woff2");
|
||||||
font-weight: 100 900;
|
font-weight: 400;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
}
|
}
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
/* Korean noto sans */
|
/* Korean noto sans */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "Noto Sans Korean";
|
font-family: "Noto Sans Korean";
|
||||||
src: url("/fonts/noto-sans-korean.ttf") format("truetype-variations");
|
src: url("/fonts/noto-sans-korean.woff2") format("woff2");
|
||||||
font-weight: 100 900;
|
font-weight: 100 900;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
/* Japanese noto sans */
|
/* Japanese noto sans */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "Noto Sans Japanese";
|
font-family: "Noto Sans Japanese";
|
||||||
src: url("/fonts/noto-sans-japanese.ttf") format("truetype-variations");
|
src: url("/fonts/noto-sans-japanese.woff2") format("woff2");
|
||||||
font-weight: 100 900;
|
font-weight: 100 900;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
@@ -56,13 +56,19 @@
|
|||||||
/* Chinese noto sans */
|
/* Chinese noto sans */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "Noto Sans Chinese";
|
font-family: "Noto Sans Chinese";
|
||||||
src: url("/fonts/noto-sans-chinese.ttf") format("truetype-variations");
|
src: url("/fonts/noto-sans-chinese.woff2") format("woff2");
|
||||||
font-weight: 100 900;
|
font-weight: 400;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@layer base {
|
@layer base {
|
||||||
|
html {
|
||||||
|
@apply antialiased;
|
||||||
|
font-optical-sizing: auto;
|
||||||
|
font-synthesis: style;
|
||||||
|
}
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--font-sans: "Inter";
|
--font-sans: "Inter";
|
||||||
--font-signature: "Caveat";
|
--font-signature: "Caveat";
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ export const Header = ({ className, ...props }: HeaderProps) => {
|
|||||||
<InboxIcon className="h-5 w-5 flex-shrink-0 text-muted-foreground transition-colors hover:text-foreground" />
|
<InboxIcon className="h-5 w-5 flex-shrink-0 text-muted-foreground transition-colors hover:text-foreground" />
|
||||||
|
|
||||||
{unreadCountData && unreadCountData.count > 0 && (
|
{unreadCountData && unreadCountData.count > 0 && (
|
||||||
<span className="absolute -top-1.5 -right-1.5 flex h-5 w-5 items-center justify-center rounded-full bg-primary font-semibold text-[10px] text-primary-foreground">
|
<span className="absolute -top-1.5 -right-1.5 flex h-5 min-w-5 items-center justify-center rounded-full bg-primary px-1 font-semibold text-primary-foreground text-xs tabular-nums leading-none">
|
||||||
{unreadCountData.count > 99 ? '99+' : unreadCountData.count}
|
{unreadCountData.count > 99 ? '99+' : unreadCountData.count}
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ export const AppNavMobile = ({ isMenuOpen, onMenuOpenChange }: AppNavMobileProps
|
|||||||
>
|
>
|
||||||
{text}
|
{text}
|
||||||
{href === '/inbox' && unreadCountData && unreadCountData.count > 0 && (
|
{href === '/inbox' && unreadCountData && unreadCountData.count > 0 && (
|
||||||
<span className="flex h-6 min-w-[1.5rem] items-center justify-center rounded-full bg-primary px-1.5 font-semibold text-primary-foreground text-xs">
|
<span className="flex h-6 min-w-[1.5rem] items-center justify-center rounded-full bg-primary px-1.5 font-semibold text-primary-foreground text-xs tabular-nums">
|
||||||
{unreadCountData.count > 99 ? '99+' : unreadCountData.count}
|
{unreadCountData.count > 99 ? '99+' : unreadCountData.count}
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ export const CardMetric = ({ icon: Icon, title, value, className, children }: Ca
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{children || (
|
{children || (
|
||||||
<p className="mt-auto font-semibold text-4xl text-foreground leading-8">
|
<p className="mt-auto font-semibold text-4xl text-foreground tabular-nums leading-8">
|
||||||
{typeof value === 'number' ? value.toLocaleString('en-US') : value}
|
{typeof value === 'number' ? value.toLocaleString('en-US') : value}
|
||||||
</p>
|
</p>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -13,10 +13,12 @@ export const SettingsHeader = ({ children, title, subtitle, className, hideDivid
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className={cn('flex flex-row items-center justify-between', className)}>
|
<div className={cn('flex flex-row items-center justify-between', className)}>
|
||||||
<div>
|
<div className="min-w-0">
|
||||||
<h3 className="font-medium text-lg">{title}</h3>
|
<h3 className="font-medium text-lg leading-tight [text-wrap:balance]">{title}</h3>
|
||||||
|
|
||||||
<p className="text-muted-foreground text-sm md:mt-2">{subtitle}</p>
|
<p className="mt-1 max-w-[65ch] text-muted-foreground text-sm leading-normal [overflow-wrap:break-word] [text-wrap:pretty] md:mt-2">
|
||||||
|
{subtitle}
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{children}
|
{children}
|
||||||
|
|||||||
@@ -143,9 +143,9 @@ export default function DocumentsPage() {
|
|||||||
<AvatarFallback className="text-muted-foreground text-xs">{team.name.slice(0, 1)}</AvatarFallback>
|
<AvatarFallback className="text-muted-foreground text-xs">{team.name.slice(0, 1)}</AvatarFallback>
|
||||||
</Avatar>
|
</Avatar>
|
||||||
|
|
||||||
<h2 className="font-semibold text-4xl">
|
<h1 className="font-semibold text-2xl leading-tight tracking-tight md:text-3xl">
|
||||||
<Trans>Documents</Trans>
|
<Trans>Documents</Trans>
|
||||||
</h2>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="-m-1 flex flex-wrap gap-x-4 gap-y-6 overflow-hidden p-1">
|
<div className="-m-1 flex flex-wrap gap-x-4 gap-y-6 overflow-hidden p-1">
|
||||||
@@ -172,7 +172,7 @@ export default function DocumentsPage() {
|
|||||||
<DocumentStatus status={value} />
|
<DocumentStatus status={value} />
|
||||||
|
|
||||||
{value !== ExtendedDocumentStatus.ALL && (
|
{value !== ExtendedDocumentStatus.ALL && (
|
||||||
<span className="ml-1 inline-block opacity-50">
|
<span className="ml-1 inline-block tabular-nums opacity-50">
|
||||||
{stats[value] >= STATS_COUNT_CAP ? `${STATS_COUNT_CAP.toLocaleString()}+` : stats[value]}
|
{stats[value] >= STATS_COUNT_CAP ? `${STATS_COUNT_CAP.toLocaleString()}+` : stats[value]}
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ export default function TemplatesPage() {
|
|||||||
<AvatarFallback className="text-muted-foreground text-xs">{team.name.slice(0, 1)}</AvatarFallback>
|
<AvatarFallback className="text-muted-foreground text-xs">{team.name.slice(0, 1)}</AvatarFallback>
|
||||||
</Avatar>
|
</Avatar>
|
||||||
|
|
||||||
<h1 className="truncate font-semibold text-2xl md:text-3xl">
|
<h1 className="font-semibold text-2xl leading-tight tracking-tight md:text-3xl">
|
||||||
<Trans>Templates</Trans>
|
<Trans>Templates</Trans>
|
||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
@@ -131,15 +131,15 @@ export default function TemplatesPage() {
|
|||||||
|
|
||||||
<div className="mt-8">
|
<div className="mt-8">
|
||||||
{activeQuery.data && activeQuery.data.count === 0 ? (
|
{activeQuery.data && activeQuery.data.count === 0 ? (
|
||||||
<div className="flex h-96 flex-col items-center justify-center gap-y-4 text-muted-foreground/60">
|
<div className="flex h-96 flex-col items-center justify-center gap-y-4">
|
||||||
<Bird className="h-12 w-12" strokeWidth={1.5} />
|
<Bird className="h-12 w-12 text-muted-foreground/60" strokeWidth={1.5} />
|
||||||
|
|
||||||
<div className="text-center">
|
<div className="text-center">
|
||||||
<h3 className="font-semibold text-lg">
|
<h3 className="font-semibold text-foreground text-lg">
|
||||||
<Trans>We're all empty</Trans>
|
<Trans>We're all empty</Trans>
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<p className="mt-2 max-w-[50ch]">
|
<p className="mt-2 max-w-[50ch] text-muted-foreground [text-wrap:pretty]">
|
||||||
{isOrgView ? (
|
{isOrgView ? (
|
||||||
<Trans>No organisation templates are shared with your team yet.</Trans>
|
<Trans>No organisation templates are shared with your team yet.</Trans>
|
||||||
) : (
|
) : (
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -7,7 +7,7 @@ import * as React from 'react';
|
|||||||
import { cn } from '../lib/utils';
|
import { cn } from '../lib/utils';
|
||||||
|
|
||||||
const buttonVariants = cva(
|
const buttonVariants = cva(
|
||||||
'inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background',
|
'inline-flex select-none items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background',
|
||||||
{
|
{
|
||||||
variants: {
|
variants: {
|
||||||
variant: {
|
variant: {
|
||||||
@@ -17,7 +17,7 @@ const buttonVariants = cva(
|
|||||||
outline: 'border border-input hover:bg-accent hover:text-accent-foreground',
|
outline: 'border border-input hover:bg-accent hover:text-accent-foreground',
|
||||||
secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',
|
secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',
|
||||||
ghost: 'hover:bg-accent hover:text-accent-foreground',
|
ghost: 'hover:bg-accent hover:text-accent-foreground',
|
||||||
link: 'underline-offset-4 hover:underline text-primary',
|
link: 'underline-offset-4 hover:underline text-primary [text-decoration-skip-ink:auto] [text-decoration-thickness:from-font] [text-underline-position:from-font]',
|
||||||
none: '',
|
none: '',
|
||||||
},
|
},
|
||||||
size: {
|
size: {
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ export function DataTablePagination<TData>({
|
|||||||
additionalInformation = 'VisibleCount',
|
additionalInformation = 'VisibleCount',
|
||||||
}: DataTablePaginationProps<TData>) {
|
}: DataTablePaginationProps<TData>) {
|
||||||
return (
|
return (
|
||||||
<div className="flex flex-wrap items-center justify-between gap-x-4 gap-y-4 px-2">
|
<div className="flex flex-wrap items-center justify-between gap-x-4 gap-y-4 px-2 tabular-nums">
|
||||||
<div className="flex-1 text-muted-foreground text-sm">
|
<div className="flex-1 text-muted-foreground text-sm">
|
||||||
{match(additionalInformation)
|
{match(additionalInformation)
|
||||||
.with('SelectedCount', () => (
|
.with('SelectedCount', () => (
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(({ classNa
|
|||||||
return (
|
return (
|
||||||
<textarea
|
<textarea
|
||||||
className={cn(
|
className={cn(
|
||||||
'flex h-20 w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',
|
'flex h-20 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',
|
||||||
className,
|
className,
|
||||||
{
|
{
|
||||||
'!ring-destructive ring-2 transition-all': props['aria-invalid'],
|
'!ring-destructive ring-2 transition-all': props['aria-invalid'],
|
||||||
|
|||||||
@@ -195,9 +195,7 @@
|
|||||||
|
|
||||||
body {
|
body {
|
||||||
@apply bg-background text-foreground;
|
@apply bg-background text-foreground;
|
||||||
font-feature-settings:
|
font-variant-ligatures: common-ligatures contextual;
|
||||||
"rlig" 1,
|
|
||||||
"calt" 1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user