@akira-io/ui 1.3.1 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/blocks.d.ts +100 -10
- package/dist/blocks.js +547 -270
- package/dist/blocks.js.map +1 -1
- package/dist/{chunk-3Z2VGVPI.js → chunk-53V4J7MC.js} +17 -7
- package/dist/chunk-53V4J7MC.js.map +1 -0
- package/dist/chunk-BH3B26DK.js +394 -0
- package/dist/chunk-BH3B26DK.js.map +1 -0
- package/dist/chunk-BP2YDMMI.js +29 -0
- package/dist/chunk-BP2YDMMI.js.map +1 -0
- package/dist/chunk-BR3JI3KN.js +458 -0
- package/dist/chunk-BR3JI3KN.js.map +1 -0
- package/dist/{chunk-YBXRJSR3.js → chunk-CAUTXZ4U.js} +15 -7
- package/dist/chunk-CAUTXZ4U.js.map +1 -0
- package/dist/{chunk-I6VVCFZ2.js → chunk-DPLCEU34.js} +342 -238
- package/dist/chunk-DPLCEU34.js.map +1 -0
- package/dist/chunk-IQMRJXEO.js +5 -4
- package/dist/chunk-IQMRJXEO.js.map +1 -1
- package/dist/chunk-L2H5GIF7.js +5 -4
- package/dist/chunk-L2H5GIF7.js.map +1 -1
- package/dist/{chunk-2V6HUWST.js → chunk-NKPFIA32.js} +19 -6
- package/dist/chunk-NKPFIA32.js.map +1 -0
- package/dist/{chunk-QNF4LJVT.js → chunk-OS7YY5R4.js} +8 -6
- package/dist/chunk-OS7YY5R4.js.map +1 -0
- package/dist/{chunk-IDNOI4OK.js → chunk-PCYYU332.js} +15 -8
- package/dist/chunk-PCYYU332.js.map +1 -0
- package/dist/{chunk-KHOA4TEI.js → chunk-PPWJK5T3.js} +60 -25
- package/dist/chunk-PPWJK5T3.js.map +1 -0
- package/dist/{chunk-N2KIFFI7.js → chunk-QZRSQVCN.js} +30 -34
- package/dist/chunk-QZRSQVCN.js.map +1 -0
- package/dist/{chunk-SZUXATOF.js → chunk-XLAOE5MV.js} +170 -76
- package/dist/chunk-XLAOE5MV.js.map +1 -0
- package/dist/{chunk-B3L6PRLX.js → chunk-ZQXZ4UGE.js} +208 -100
- package/dist/chunk-ZQXZ4UGE.js.map +1 -0
- package/dist/code.d.ts +2 -2
- package/dist/code.js +96 -52
- package/dist/code.js.map +1 -1
- package/dist/{context-OwSoVEri.d.ts → context-2wTOwxCk.d.ts} +13 -5
- package/dist/editor.d.ts +1 -1
- package/dist/editor.js +135 -52
- package/dist/editor.js.map +1 -1
- package/dist/{field-DWm5NXeV.d.ts → field-C1TdmC2t.d.ts} +1 -1
- package/dist/index.d.ts +15 -12
- package/dist/index.js +1105 -633
- package/dist/index.js.map +1 -1
- package/dist/inertia.d.ts +11 -3
- package/dist/inertia.js +66 -12
- package/dist/inertia.js.map +1 -1
- package/dist/{input-Dxnsxi-f.d.ts → input-B4uEClxB.d.ts} +1 -1
- package/dist/{json-viewer-BARA2RCW.d.ts → json-viewer-Bssv9mTD.d.ts} +1 -1
- package/dist/locales/fr.d.ts +44 -0
- package/dist/locales/fr.js +248 -0
- package/dist/locales/fr.js.map +1 -0
- package/dist/locales/pt.d.ts +10 -9
- package/dist/locales/pt.js +40 -3
- package/dist/locales/pt.js.map +1 -1
- package/dist/shells.d.ts +46 -5
- package/dist/shells.js +211 -71
- package/dist/shells.js.map +1 -1
- package/dist/{sidebar-Bp6Q46j-.d.ts → sidebar-BLL2tgTt.d.ts} +2 -2
- package/dist/types-1LUmNJf_.d.ts +41 -0
- package/dist/{types-cmBL8zOc.d.ts → types-CMZRvMV5.d.ts} +1 -1
- package/dist/{types-B-eGPoFD.d.ts → types-CfAUvz--.d.ts} +1 -1
- package/package.json +8 -2
- package/theme.css +11 -0
- package/dist/chunk-2V6HUWST.js.map +0 -1
- package/dist/chunk-3Z2VGVPI.js.map +0 -1
- package/dist/chunk-B3L6PRLX.js.map +0 -1
- package/dist/chunk-I6VVCFZ2.js.map +0 -1
- package/dist/chunk-IDNOI4OK.js.map +0 -1
- package/dist/chunk-KHOA4TEI.js.map +0 -1
- package/dist/chunk-N2KIFFI7.js.map +0 -1
- package/dist/chunk-NGMG2UWX.js +0 -172
- package/dist/chunk-NGMG2UWX.js.map +0 -1
- package/dist/chunk-QNF4LJVT.js.map +0 -1
- package/dist/chunk-SZUXATOF.js.map +0 -1
- package/dist/chunk-YBXRJSR3.js.map +0 -1
- package/dist/types-u1qfmJQi.d.ts +0 -28
package/theme.css
CHANGED
|
@@ -113,6 +113,12 @@
|
|
|
113
113
|
inset 0 -1px 0 0 var(--surface-shade),
|
|
114
114
|
0 8px 24px -8px oklch(0 0 0 / 0.1),
|
|
115
115
|
0 24px 48px -16px oklch(0 0 0 / 0.12);
|
|
116
|
+
--scroll-shadow-top:
|
|
117
|
+
0 8px 24px -8px oklch(0 0 0 / 0.1),
|
|
118
|
+
0 24px 48px -16px oklch(0 0 0 / 0.12);
|
|
119
|
+
--scroll-shadow-bottom:
|
|
120
|
+
0 -8px 24px -8px oklch(0 0 0 / 0.1),
|
|
121
|
+
0 -24px 48px -16px oklch(0 0 0 / 0.12);
|
|
116
122
|
--input: oklch(0.922 0 0);
|
|
117
123
|
--ring: var(--primary);
|
|
118
124
|
--radius: 0.625rem;
|
|
@@ -164,6 +170,11 @@
|
|
|
164
170
|
inset 0 1px 0 0 var(--surface-highlight),
|
|
165
171
|
inset 0 -1px 0 0 var(--surface-shade),
|
|
166
172
|
0 8px 24px -8px oklch(0 0 0 / 0.4), 0 24px 48px -16px oklch(0 0 0 / 0.5);
|
|
173
|
+
--scroll-shadow-top:
|
|
174
|
+
0 8px 24px -8px oklch(0 0 0 / 0.4), 0 24px 48px -16px oklch(0 0 0 / 0.5);
|
|
175
|
+
--scroll-shadow-bottom:
|
|
176
|
+
0 -8px 24px -8px oklch(0 0 0 / 0.4),
|
|
177
|
+
0 -24px 48px -16px oklch(0 0 0 / 0.5);
|
|
167
178
|
--input: oklch(0.269 0 0);
|
|
168
179
|
--ring: var(--primary);
|
|
169
180
|
--sidebar: oklch(0.205 0 0);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/card.tsx"],"names":[],"mappings":"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","file":"chunk-2V6HUWST.js","sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport {\n elevatedSurface,\n flatSurface,\n recessedSurface,\n type FlatSurfaceProps,\n} from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nconst cardVariants = cva(\n `relative flex flex-col gap-6 overflow-hidden text-card-foreground ${elevatedSurface}`,\n {\n variants: {\n variant: {\n default: 'bg-card',\n subtle: 'border-border/60 bg-card/40',\n solid: 'bg-card',\n outlined: `bg-card border border-border ${flatSurface}`,\n },\n interactive: {\n true: 'transition-colors duration-200 hover:border-foreground/20',\n false: '',\n },\n padding: { none: 'py-0', sm: 'py-4', md: 'py-6', lg: 'py-8' },\n },\n defaultVariants: {\n variant: 'default',\n interactive: false,\n padding: 'md',\n },\n },\n);\n\ntype CardProps = React.ComponentProps<'div'> &\n VariantProps<typeof cardVariants> &\n FlatSurfaceProps;\n\nfunction Card({\n className,\n variant,\n interactive,\n padding,\n inset = false,\n flat = false,\n slotName = 'card',\n ...props\n}: CardProps & SlotNameProps) {\n return (\n <div\n data-inset={inset || undefined}\n data-flat={flat || undefined}\n className={cn(\n cardVariants({ variant, interactive, padding }),\n flat && flatSurface,\n inset && recessedSurface,\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction CardHeader({\n className,\n slotName = 'card-header',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n className={cn('gap-1.5 px-6 flex flex-col', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction CardTitle({\n className,\n slotName = 'card-title',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n className={cn('font-semibold leading-none', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction CardDescription({\n className,\n slotName = 'card-description',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction CardContent({\n className,\n slotName = 'card-content',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n className={cn('px-6', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction CardFooter({\n className,\n slotName = 'card-footer',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n className={cn('px-6 flex items-center', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nexport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n cardVariants,\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/input.tsx","../src/components/ui/separator.tsx"],"names":["jsx"],"mappings":";;;;AAMA,SAAS,KAAA,CAAM;AAAA,EACX,SAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA,GAAW,OAAA;AAAA,EACX,GAAG;AACP,CAAA,EAAkD;AAC9C,EAAA,uBACI,GAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACG,IAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACP,CAAA,4NAAA,EAA+N,YAAY,CAAA,CAAA,EAAI,UAAU,CAAA,CAAA;AAAA,QACzP;AAAA,OACJ;AAAA,MACC,GAAG,KAAA;AAAA,MACJ,WAAA,EAAW;AAAA;AAAA,GACf;AAER;ACjBA,SAAS,SAAA,CAAU;AAAA,EACf,SAAA;AAAA,EACA,WAAA,GAAc,YAAA;AAAA,EACd,UAAA,GAAa,IAAA;AAAA,EACb,QAAA,GAAW,gBAAA;AAAA,EACX,GAAG;AACP,CAAA,EAAyE;AACrE,EAAA,uBACIA,GAAAA;AAAA,IAAoB,kBAAA,CAAA,IAAA;AAAA,IAAnB;AAAA,MACG,UAAA;AAAA,MACA,WAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACP,gKAAA;AAAA,QACA;AAAA,OACJ;AAAA,MACC,GAAG,KAAA;AAAA,MACJ,WAAA,EAAW;AAAA;AAAA,GACf;AAER","file":"chunk-3Z2VGVPI.js","sourcesContent":["import * as React from 'react';\n\nimport { fieldFocus, fieldSurface } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nfunction Input({\n className,\n type,\n slotName = 'input',\n ...props\n}: React.ComponentProps<'input'> & SlotNameProps) {\n return (\n <input\n type={type}\n className={cn(\n `h-11 min-w-0 px-4 font-medium flex w-full transition-all placeholder:text-muted-foreground focus:bg-muted disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 ${fieldSurface} ${fieldFocus}`,\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nexport { Input };\n","import * as SeparatorPrimitive from '@radix-ui/react-separator';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nfunction Separator({\n className,\n orientation = 'horizontal',\n decorative = true,\n slotName = 'separator-root',\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root> & SlotNameProps) {\n return (\n <SeparatorPrimitive.Root\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nexport { Separator };\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/dropdown-menu.tsx","../src/components/ui/avatar.tsx","../src/components/ui/breadcrumb.tsx","../src/components/ui/collapsible.tsx","../src/components/ui/icon.tsx","../src/components/ui/sheet.tsx","../src/components/ui/skeleton.tsx","../src/components/ui/tooltip.tsx","../src/hooks/use-mobile.tsx","../src/components/ui/sidebar.tsx"],"names":["jsx","jsxs","CollapsibleTrigger","CollapsibleContent","React","open","Slot"],"mappings":"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","file":"chunk-B3L6PRLX.js","sourcesContent":["import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { menuSurface } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nfunction DropdownMenu({\n modal = false,\n slotName = 'dropdown-menu',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root> & SlotNameProps) {\n return (\n <DropdownMenuPrimitive.Root\n modal={modal}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction DropdownMenuPortal({\n slotName = 'dropdown-menu-portal',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal> & SlotNameProps) {\n return <DropdownMenuPrimitive.Portal {...props} data-slot={slotName} />;\n}\n\nfunction DropdownMenuTrigger({\n slotName = 'dropdown-menu-trigger',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger> & SlotNameProps) {\n return <DropdownMenuPrimitive.Trigger {...props} data-slot={slotName} />;\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n slotName = 'dropdown-menu-content',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content> & SlotNameProps) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n sideOffset={sideOffset}\n className={cn(\n `${menuSurface} data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 p-1.5 z-50 min-w-[8rem] overflow-hidden`,\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({\n slotName = 'dropdown-menu-group',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group> & SlotNameProps) {\n return <DropdownMenuPrimitive.Group {...props} data-slot={slotName} />;\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n slotName = 'dropdown-menu-item',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: 'default' | 'destructive';\n} & SlotNameProps) {\n return (\n <DropdownMenuPrimitive.Item\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"font-medium gap-2 rounded-xl px-2 py-2 text-sm data-[inset]:pl-8 [&_svg:not([class*='size-'])]:size-5 focus:font-semibold relative flex cursor-default items-center outline-hidden transition-all select-none focus:bg-primary/10 focus:text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:!text-destructive\",\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n slotName = 'dropdown-menu-checkbox-item',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem> &\n SlotNameProps) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n className={cn(\n \"gap-2 py-1.5 pr-2 pl-8 text-sm [&_svg:not([class*='size-'])]:size-4 rounded-xl relative flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n checked={checked}\n {...props}\n data-slot={slotName}\n >\n <span className=\"left-2 size-3.5 pointer-events-none absolute flex items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n slotName = 'dropdown-menu-radio-group',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup> &\n SlotNameProps) {\n return <DropdownMenuPrimitive.RadioGroup {...props} data-slot={slotName} />;\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n slotName = 'dropdown-menu-radio-item',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem> &\n SlotNameProps) {\n return (\n <DropdownMenuPrimitive.RadioItem\n className={cn(\n \"gap-2 py-1.5 pr-2 pl-8 text-sm [&_svg:not([class*='size-'])]:size-4 rounded-xl relative flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n <span className=\"left-2 size-3.5 pointer-events-none absolute flex items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n slotName = 'dropdown-menu-label',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n} & SlotNameProps) {\n return (\n <DropdownMenuPrimitive.Label\n data-inset={inset}\n className={cn(\n 'px-2 py-2 text-xs font-medium tracking-wider data-[inset]:pl-8 text-muted-foreground uppercase',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n slotName = 'dropdown-menu-separator',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator> &\n SlotNameProps) {\n return (\n <DropdownMenuPrimitive.Separator\n className={cn('-mx-1 my-1 h-px bg-border', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction DropdownMenuShortcut({\n className,\n slotName = 'dropdown-menu-shortcut',\n ...props\n}: React.ComponentProps<'span'> & SlotNameProps) {\n return (\n <span\n className={cn(\n 'text-xs tracking-widest ml-auto text-muted-foreground',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction DropdownMenuSub({\n slotName = 'dropdown-menu-sub',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub> & SlotNameProps) {\n return <DropdownMenuPrimitive.Sub {...props} data-slot={slotName} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n slotName = 'dropdown-menu-sub-trigger',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n} & SlotNameProps) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-inset={inset}\n className={cn(\n 'font-medium rounded-xl px-2 py-2 text-sm data-[inset]:pl-8 focus:font-semibold data-[state=open]:font-semibold flex cursor-default items-center outline-hidden transition-all select-none focus:bg-primary/10 focus:text-primary data-[state=open]:bg-primary/10 data-[state=open]:text-primary',\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n {children}\n <ChevronRightIcon className=\"size-4 ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n slotName = 'dropdown-menu-sub-content',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent> &\n SlotNameProps) {\n return (\n <DropdownMenuPrimitive.SubContent\n className={cn(\n `${menuSurface} data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 p-1.5 z-50 min-w-[8rem] overflow-hidden`,\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n};\n","import * as AvatarPrimitive from '@radix-ui/react-avatar';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nfunction Avatar({\n className,\n slotName = 'avatar',\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Root> & SlotNameProps) {\n return (\n <AvatarPrimitive.Root\n className={cn(\n 'size-8 relative flex shrink-0 overflow-hidden rounded-full',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction AvatarImage({\n className,\n slotName = 'avatar-image',\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Image> & SlotNameProps) {\n return (\n <AvatarPrimitive.Image\n className={cn('aspect-square size-full', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction AvatarFallback({\n className,\n slotName = 'avatar-fallback',\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Fallback> & SlotNameProps) {\n return (\n <AvatarPrimitive.Fallback\n className={cn(\n 'flex size-full items-center justify-center rounded-full bg-muted',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nexport { Avatar, AvatarFallback, AvatarImage };\n","import { Slot } from '@radix-ui/react-slot';\nimport { ChevronRight, MoreHorizontal } from 'lucide-react';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nfunction Breadcrumb({\n slotName = 'breadcrumb',\n ...props\n}: React.ComponentProps<'nav'> & SlotNameProps) {\n return <nav aria-label=\"breadcrumb\" {...props} data-slot={slotName} />;\n}\n\nfunction BreadcrumbList({\n className,\n slotName = 'breadcrumb-list',\n ...props\n}: React.ComponentProps<'ol'> & SlotNameProps) {\n return (\n <ol\n className={cn(\n 'gap-1.5 text-sm sm:gap-2.5 flex flex-wrap items-center break-words text-muted-foreground',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction BreadcrumbItem({\n className,\n slotName = 'breadcrumb-item',\n ...props\n}: React.ComponentProps<'li'> & SlotNameProps) {\n return (\n <li\n className={cn('gap-1.5 inline-flex items-center', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction BreadcrumbLink({\n asChild,\n className,\n slotName = 'breadcrumb-link',\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean;\n} & SlotNameProps) {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n className={cn('transition-colors hover:text-foreground', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction BreadcrumbPage({\n className,\n slotName = 'breadcrumb-page',\n ...props\n}: React.ComponentProps<'span'> & SlotNameProps) {\n return (\n <span\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('font-semibold text-foreground', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n slotName = 'breadcrumb-separator',\n ...props\n}: React.ComponentProps<'li'> & SlotNameProps) {\n return (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('[&>svg]:size-3.5', className)}\n {...props}\n data-slot={slotName}\n >\n {children ?? <ChevronRight />}\n </li>\n );\n}\n\nfunction BreadcrumbEllipsis({\n className,\n slotName = 'breadcrumb-ellipsis',\n ...props\n}: React.ComponentProps<'span'> & SlotNameProps) {\n return (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\n 'size-9 rounded-xl flex items-center justify-center',\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n );\n}\n\nexport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n};\n","import type { SlotNameProps } from '@/types';\nimport * as CollapsiblePrimitive from '@radix-ui/react-collapsible';\n\nfunction Collapsible({\n slotName = 'collapsible',\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.Root> & SlotNameProps) {\n return <CollapsiblePrimitive.Root {...props} data-slot={slotName} />;\n}\n\nfunction CollapsibleTrigger({\n slotName = 'collapsible-trigger',\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger> &\n SlotNameProps) {\n return (\n <CollapsiblePrimitive.CollapsibleTrigger\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction CollapsibleContent({\n slotName = 'collapsible-content',\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent> &\n SlotNameProps) {\n return (\n <CollapsiblePrimitive.CollapsibleContent\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nexport { Collapsible, CollapsibleContent, CollapsibleTrigger };\n","import type { IconComponent } from '@/types';\n\ninterface IconProps {\n iconNode?: IconComponent | null;\n className?: string;\n}\n\nexport function Icon({ iconNode: IconComponent, className }: IconProps) {\n if (!IconComponent) {\n return null;\n }\n\n return <IconComponent className={className} />;\n}\n","import * as SheetPrimitive from '@radix-ui/react-dialog';\nimport { XIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { floatingSurface, focusRing } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nfunction Sheet({\n preserveScroll = false,\n onOpenChange: onOpenChangeProp,\n slotName = 'sheet',\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Root> & {\n preserveScroll?: boolean;\n} & SlotNameProps) {\n const scrollPosition = React.useRef(0);\n\n const onOpenChange = (open: boolean) => {\n if (preserveScroll) {\n if (open) {\n scrollPosition.current = window.scrollY;\n } else {\n setTimeout(() => {\n window.scrollTo(0, scrollPosition.current);\n }, 0);\n }\n }\n\n onOpenChangeProp?.(open);\n };\n\n return (\n <SheetPrimitive.Root\n {...props}\n onOpenChange={onOpenChange}\n data-slot={slotName}\n />\n );\n}\n\nfunction SheetTrigger({\n slotName = 'sheet-trigger',\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Trigger> & SlotNameProps) {\n return <SheetPrimitive.Trigger {...props} data-slot={slotName} />;\n}\n\nfunction SheetClose({\n slotName = 'sheet-close',\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Close> & SlotNameProps) {\n return <SheetPrimitive.Close {...props} data-slot={slotName} />;\n}\n\nfunction SheetPortal({\n slotName = 'sheet-portal',\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Portal> & SlotNameProps) {\n return <SheetPrimitive.Portal {...props} data-slot={slotName} />;\n}\n\nfunction SheetOverlay({\n className,\n slotName = 'sheet-overlay',\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Overlay> & SlotNameProps) {\n return (\n <SheetPrimitive.Overlay\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 inset-0 bg-black/60 backdrop-blur-sm fixed z-50',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SheetContent({\n className,\n children,\n side = 'right',\n slotName = 'sheet-content',\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & {\n side?: 'top' | 'right' | 'bottom' | 'left';\n} & SlotNameProps) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n className={cn(\n `${floatingSurface} data-[state=open]:animate-in data-[state=closed]:animate-out gap-4 ease-in-out fixed z-50 flex flex-col transition data-[state=closed]:duration-300 data-[state=open]:duration-500`,\n side === 'right' &&\n 'data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 sm:max-w-sm rounded-l-3xl h-full w-3/4 border-l border-border',\n side === 'left' &&\n 'data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 sm:max-w-sm rounded-r-3xl h-full w-3/4 border-r border-border',\n side === 'top' &&\n 'data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 rounded-b-3xl h-auto border-b border-border',\n side === 'bottom' &&\n 'data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 rounded-t-3xl h-auto border-t border-border',\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n {children}\n <SheetPrimitive.Close\n className={cn(\n 'top-4 right-4 size-9 shadow-xs absolute flex items-center justify-center rounded-full border border-border bg-muted text-muted-foreground transition-colors hover:bg-accent hover:text-foreground disabled:pointer-events-none',\n focusRing,\n )}\n >\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n );\n}\n\nfunction SheetHeader({\n className,\n slotName = 'sheet-header',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n className={cn('gap-1.5 p-4 flex flex-col', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SheetFooter({\n className,\n slotName = 'sheet-footer',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n className={cn('gap-2 p-4 mt-auto flex flex-col', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SheetTitle({\n className,\n slotName = 'sheet-title',\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Title> & SlotNameProps) {\n return (\n <SheetPrimitive.Title\n className={cn('font-semibold text-foreground', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SheetDescription({\n className,\n slotName = 'sheet-description',\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Description> & SlotNameProps) {\n return (\n <SheetPrimitive.Description\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nexport {\n Sheet,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n};\n","import { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nfunction Skeleton({\n className,\n slotName = 'skeleton',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n className={cn('animate-pulse rounded-xl bg-muted', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nexport { Skeleton };\n","import * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nfunction TooltipProvider({\n delayDuration = 0,\n slotName = 'tooltip-provider',\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider> & SlotNameProps) {\n return (\n <TooltipPrimitive.Provider\n delayDuration={delayDuration}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction Tooltip({\n slotName = 'tooltip',\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root> & SlotNameProps) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root {...props} data-slot={slotName} />\n </TooltipProvider>\n );\n}\n\nfunction TooltipTrigger({\n slotName = 'tooltip-trigger',\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger> & SlotNameProps) {\n return <TooltipPrimitive.Trigger {...props} data-slot={slotName} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 4,\n children,\n slotName = 'tooltip-content',\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content> & SlotNameProps) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n sideOffset={sideOffset}\n className={cn(\n 'animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 max-w-sm px-3 py-1.5 text-xs shadow-2xl rounded-xl z-50 bg-primary text-primary-foreground',\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"size-2.5 z-50 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-primary fill-primary\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\n","import { useEffect, useState } from 'react';\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = useState<boolean>();\n\n useEffect(() => {\n const mql = window.matchMedia(\n `(max-width: ${MOBILE_BREAKPOINT - 1}px)`,\n );\n\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n\n mql.addEventListener('change', onChange);\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n\n return () => mql.removeEventListener('change', onChange);\n }, []);\n\n return !!isMobile;\n}\n","import { Slot } from '@radix-ui/react-slot';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { PanelLeftIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '@/components/ui/button';\nimport { Input } from '@/components/ui/input';\nimport { Separator } from '@/components/ui/separator';\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from '@/components/ui/sheet';\nimport { Skeleton } from '@/components/ui/skeleton';\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from '@/components/ui/tooltip';\nimport { useIsMobile } from '@/hooks/use-mobile';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nconst SIDEBAR_COOKIE_NAME = 'sidebar_state';\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = '16rem';\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\nconst SIDEBAR_WIDTH_ICON = '3rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ntype SidebarContext = {\n state: 'expanded' | 'collapsed';\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n slotName = 'sidebar-wrapper',\n ...props\n}: React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n} & SlotNameProps) {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile\n ? setOpenMobile((open) => !open)\n : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed';\n\n const contextValue = React.useMemo<SidebarContext>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n ],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar',\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n slotName = 'sidebar',\n ...props\n}: React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n} & SlotNameProps) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn(\n 'flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground',\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet\n open={openMobile}\n onOpenChange={setOpenMobile}\n {...props}\n preserveScroll\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>\n Displays the mobile sidebar.\n </SheetDescription>\n </SheetHeader>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"p-0 w-(--sidebar-width) rounded-none bg-sidebar text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n slotName={slotName}\n >\n <div className=\"flex h-full w-full flex-col\">\n {children}\n </div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n className=\"group peer md:block hidden text-sidebar-foreground\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-slot={slotName}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n 'relative h-svh w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n />\n <div\n className={cn(\n 'inset-y-0 md:flex fixed z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:rounded-2xl flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nfunction SidebarTrigger({\n className,\n onClick,\n slotName = 'sidebar-trigger',\n ...props\n}: React.ComponentProps<typeof Button> & SlotNameProps) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn('h-7 w-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n slotName={slotName}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\nfunction SidebarRail({\n className,\n slotName = 'sidebar-rail',\n ...props\n}: React.ComponentProps<'button'> & SlotNameProps) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'inset-y-0 w-4 group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:inset-y-0 sm:flex absolute z-20 hidden -translate-x-1/2 transition-all ease-linear after:absolute after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border',\n 'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SidebarInset({\n className,\n slotName = 'sidebar-inset',\n ...props\n}: React.ComponentProps<'main'> & SlotNameProps) {\n return (\n <main\n className={cn(\n 'relative flex min-h-svh max-w-full flex-1 flex-col bg-background',\n 'peer-data-[variant=inset]:min-h-[calc(100svh-(--spacing(4)))] md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-0',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SidebarInput({\n className,\n slotName = 'sidebar-input',\n ...props\n}: React.ComponentProps<typeof Input> & SlotNameProps) {\n return (\n <Input\n data-sidebar=\"input\"\n className={cn('h-11 w-full bg-background shadow-none', className)}\n {...props}\n slotName={slotName}\n />\n );\n}\n\nfunction SidebarHeader({\n className,\n slotName = 'sidebar-header',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n data-sidebar=\"header\"\n className={cn(\n 'gap-2 p-2 group-data-[collapsible=icon]:px-0 flex flex-col',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SidebarFooter({\n className,\n slotName = 'sidebar-footer',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n data-sidebar=\"footer\"\n className={cn(\n 'gap-2 p-2 group-data-[collapsible=icon]:px-0 flex flex-col pb-[max(0.5rem,env(safe-area-inset-bottom))]',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SidebarSeparator({\n className,\n slotName = 'sidebar-separator',\n ...props\n}: React.ComponentProps<typeof Separator> & SlotNameProps) {\n return (\n <Separator\n data-sidebar=\"separator\"\n className={cn('mx-2 w-auto bg-sidebar-border', className)}\n {...props}\n slotName={slotName}\n />\n );\n}\n\nfunction SidebarContent({\n className,\n slotName = 'sidebar-content',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n data-sidebar=\"content\"\n className={cn(\n 'min-h-0 gap-2 flex flex-1 flex-col overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SidebarGroup({\n className,\n slotName = 'sidebar-group',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n data-sidebar=\"group\"\n className={cn(\n 'min-w-0 p-2 group-data-[collapsible=icon]:px-0 relative flex w-full flex-col',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n slotName = 'sidebar-group-label',\n ...props\n}: React.ComponentProps<'div'> & { asChild?: boolean } & SlotNameProps) {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n data-sidebar=\"group-label\"\n className={cn(\n 'h-8 rounded-xl px-2 text-xs font-medium tracking-wider [&>svg]:size-4 flex shrink-0 items-center text-sidebar-foreground/70 uppercase ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:outline-1 focus-visible:outline-offset-0 focus-visible:outline-ring focus-visible:outline-solid [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:pointer-events-none group-data-[collapsible=icon]:opacity-0 group-data-[collapsible=icon]:select-none',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n slotName = 'sidebar-group-action',\n ...props\n}: React.ComponentProps<'button'> & { asChild?: boolean } & SlotNameProps) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n data-sidebar=\"group-action\"\n className={cn(\n 'top-3.5 right-3 w-5 p-0 [&>svg]:size-4 rounded-xl absolute flex aspect-square items-center justify-center text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:outline-1 focus-visible:outline-offset-0 focus-visible:outline-ring focus-visible:outline-solid [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:-inset-2 md:after:hidden after:absolute',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SidebarGroupContent({\n className,\n slotName = 'sidebar-group-content',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n data-sidebar=\"group-content\"\n className={cn('text-sm w-full', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SidebarMenu({\n className,\n slotName = 'sidebar-menu',\n ...props\n}: React.ComponentProps<'ul'> & SlotNameProps) {\n return (\n <ul\n data-sidebar=\"menu\"\n className={cn(\n 'min-w-0 gap-1 flex w-full flex-col group-data-[collapsible=icon]:items-center',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SidebarMenuItem({\n className,\n slotName = 'sidebar-menu-item',\n ...props\n}: React.ComponentProps<'li'> & SlotNameProps) {\n return (\n <li\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-3 overflow-hidden rounded-xl p-2.5 text-left text-sm font-medium outline-hidden ring-sidebar-ring transition-all hover:bg-accent hover:text-accent-foreground focus-visible:outline-solid focus-visible:outline-1 focus-visible:outline-offset-0 focus-visible:outline-ring active:scale-[0.98] disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-primary/10 data-[active=true]:font-semibold data-[active=true]:text-primary group-data-[collapsible=icon]:size-10! group-data-[collapsible=icon]:justify-center group-data-[collapsible=icon]:gap-0 group-data-[collapsible=icon]:p-2.5! [&>span:last-child]:truncate group-data-[collapsible=icon]:[&>span:last-child]:hidden [&>svg]:size-5 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default:\n 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-11 text-sm',\n sm: 'h-9 text-sm',\n lg: 'h-14 text-sm',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n slotName = 'sidebar-menu-button',\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants> &\n SlotNameProps) {\n const Comp = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n sidebarMenuButtonVariants({ variant, size }),\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== 'collapsed' || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n}\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n slotName = 'sidebar-menu-action',\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n} & SlotNameProps) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n data-sidebar=\"menu-action\"\n className={cn(\n 'top-1.5 right-1 w-5 p-0 [&>svg]:size-4 rounded-xl absolute flex aspect-square items-center justify-center text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform peer-hover/menu-button:text-sidebar-accent-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:outline-1 focus-visible:outline-offset-0 focus-visible:outline-ring focus-visible:outline-solid [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:-inset-2 md:after:hidden after:absolute',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'md:opacity-0 group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground data-[state=open]:opacity-100',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SidebarMenuBadge({\n className,\n slotName = 'sidebar-menu-badge',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n data-sidebar=\"menu-badge\"\n className={cn(\n 'right-1 h-5 min-w-5 px-1 text-xs font-medium rounded-xl pointer-events-none absolute flex items-center justify-center text-sidebar-foreground tabular-nums select-none',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n slotName = 'sidebar-menu-skeleton',\n ...props\n}: React.ComponentProps<'div'> & {\n showIcon?: boolean;\n} & SlotNameProps) {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n data-sidebar=\"menu-skeleton\"\n className={cn(\n 'h-8 gap-2 px-2 rounded-xl flex items-center',\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-xl\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n}\n\nfunction SidebarMenuSub({\n className,\n slotName = 'sidebar-menu-sub',\n ...props\n}: React.ComponentProps<'ul'> & SlotNameProps) {\n return (\n <ul\n data-sidebar=\"menu-sub\"\n className={cn(\n 'mx-3.5 min-w-0 gap-1 px-2.5 py-0.5 flex translate-x-px flex-col border-l border-sidebar-border',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SidebarMenuSubItem({\n className,\n slotName = 'sidebar-menu-sub-item',\n ...props\n}: React.ComponentProps<'li'> & SlotNameProps) {\n return (\n <li\n data-sidebar=\"menu-sub-item\"\n className={cn('group/menu-sub-item relative', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n slotName = 'sidebar-menu-sub-button',\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n} & SlotNameProps) {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'h-9 min-w-0 gap-2 px-2 text-sm font-medium [&>svg]:size-4 rounded-xl flex -translate-x-px items-center overflow-hidden text-sidebar-foreground ring-sidebar-ring outline-hidden hover:bg-accent hover:text-accent-foreground focus-visible:outline-1 focus-visible:outline-offset-0 focus-visible:outline-ring focus-visible:outline-solid active:bg-accent disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0 [&>svg]:text-current',\n 'data-[active=true]:font-semibold data-[active=true]:bg-primary/10 data-[active=true]:text-primary',\n size === 'sm' && 'h-9 text-sm',\n size === 'md' && 'h-9 text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/confirm-dialog.tsx","../src/components/ui/alert.tsx","../src/components/ui/calendar.tsx","../src/components/ui/command.tsx","../src/components/ui/popover.tsx","../src/components/ui/select.tsx","../src/components/ui/field-context.ts","../src/components/ui/field-error.tsx","../src/components/ui/floating-sheet-context.ts","../src/components/ui/floating-sheet-stack.tsx","../src/components/ui/floating-sheet.tsx","../src/components/ui/input-otp.tsx","../src/components/ui/switch.tsx","../src/components/ui/tabs.tsx","../src/components/ui/textarea.tsx"],"names":["jsx","className","props","React","CommandPrimitive","jsxs","PopoverPrimitive","React2","ChevronDownIcon","React3","React4","React5","React7","React8","React9","React10"],"mappings":"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","file":"chunk-I6VVCFZ2.js","sourcesContent":["import { Button } from '@/components/ui/button';\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/components/ui/dialog';\nimport { Input } from '@/components/ui/input';\nimport { Label } from '@/components/ui/label';\nimport { cn } from '@/lib/utils';\nimport { useUiLabels } from '@/locales/context';\nimport type { SlotNameProps } from '@/types';\nimport { AlertCircle, ChevronRight } from 'lucide-react';\nimport { ReactNode, useEffect, useId, useState } from 'react';\n\nexport interface ConfirmDialogLabels {\n title: string;\n description: string;\n confirmText: string;\n cancelText: string;\n}\n\nexport const confirmDialogDefaultLabels: ConfirmDialogLabels = {\n title: 'Confirm Action',\n description:\n 'Are you sure you want to continue? This action cannot be undone.',\n confirmText: 'Confirm',\n cancelText: 'Cancel',\n};\n\ninterface ConfirmDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title?: ConfirmDialogLabels['title'];\n description?: ConfirmDialogLabels['description'] | ReactNode;\n confirmText?: ConfirmDialogLabels['confirmText'];\n cancelText?: ConfirmDialogLabels['cancelText'];\n variant?: 'destructive' | 'default';\n processing?: boolean;\n requiredValue?: string;\n requiredValueLabel?: string;\n onConfirm: () => void;\n onCancel?: () => void;\n}\n\nexport function ConfirmDialog({\n open,\n onOpenChange,\n title,\n description,\n confirmText,\n cancelText,\n variant = 'destructive',\n processing = false,\n requiredValue,\n requiredValueLabel = 'Type {{value}} to confirm',\n onConfirm,\n onCancel,\n slotName = 'confirm-dialog',\n}: ConfirmDialogProps & SlotNameProps) {\n const labels = useUiLabels('confirmDialog', confirmDialogDefaultLabels, {\n title,\n confirmText,\n cancelText,\n });\n const resolvedDescription = description ?? labels.description;\n const inputId = useId();\n const [typedValue, setTypedValue] = useState('');\n const unlocked =\n requiredValue === undefined || typedValue === requiredValue;\n\n useEffect(() => {\n if (!open) {\n setTypedValue('');\n }\n }, [open]);\n\n const handleConfirm = () => {\n if (processing || !unlocked) {\n return;\n }\n onConfirm();\n onOpenChange(false);\n };\n\n const handleCancel = () => {\n if (processing) {\n return;\n }\n onCancel?.();\n onOpenChange(false);\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent className=\"max-w-md p-0\" slotName={slotName}>\n <DialogHeader className=\"p-6 md:p-8\">\n <div className=\"mb-6 flex justify-center\">\n <div\n className={cn(\n 'size-16 rounded-3xl shadow-xl flex items-center justify-center',\n variant === 'destructive'\n ? 'bg-destructive text-destructive-foreground shadow-destructive/20'\n : 'bg-primary text-primary-foreground shadow-primary/20',\n )}\n >\n <AlertCircle className=\"h-8 w-8\" />\n </div>\n </div>\n <DialogTitle>{labels.title}</DialogTitle>\n <DialogDescription>{resolvedDescription}</DialogDescription>\n </DialogHeader>\n\n {requiredValue !== undefined && (\n <div\n data-slot=\"confirm-dialog-gate\"\n className=\"gap-2 px-6 md:px-8 flex flex-col\"\n >\n <Label htmlFor={inputId}>\n {requiredValueLabel.replace(\n '{{value}}',\n requiredValue,\n )}\n </Label>\n <Input\n id={inputId}\n value={typedValue}\n autoComplete=\"off\"\n disabled={processing}\n onChange={(event) =>\n setTypedValue(event.target.value)\n }\n />\n </div>\n )}\n\n <DialogFooter className=\"p-6 md:p-8\">\n <div className=\"gap-4 sm:grid-cols-2 grid w-full\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n disabled={processing}\n onClick={handleCancel}\n className=\"text-muted-foreground\"\n >\n {labels.cancelText}\n </Button>\n <Button\n variant={variant}\n disabled={processing || !unlocked}\n onClick={handleConfirm}\n >\n {labels.confirmText}\n <ChevronRight className=\"ml-2 h-5 w-5\" />\n </Button>\n </div>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n","import { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { elevatedSurface } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport { useUiLabels } from '@/locales/context';\nimport type { SlotNameProps } from '@/types';\n\nconst alertVariants = cva(\n `${elevatedSurface} relative w-full px-5 py-4 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current`,\n {\n variants: {\n variant: {\n default: 'bg-card text-card-foreground',\n destructive:\n 'border-destructive/30 bg-destructive/10 text-destructive [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/80',\n warning:\n 'ring-warning/20 bg-warning/10 text-warning *:data-[slot=alert-description]:text-warning/80',\n info: 'ring-info/20 bg-info/10 text-info *:data-[slot=alert-description]:text-info/80',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nexport interface AlertLabels {\n warningLabel: string;\n infoLabel: string;\n}\n\nexport const alertDefaultLabels: AlertLabels = {\n warningLabel: 'Warning',\n infoLabel: 'Information',\n};\n\ntype AlertVariant = VariantProps<typeof alertVariants>['variant'];\n\nconst SEVERITY_LABELS: Partial<\n Record<NonNullable<AlertVariant>, keyof AlertLabels>\n> = {\n warning: 'warningLabel',\n info: 'infoLabel',\n};\n\nfunction Alert({\n className,\n variant,\n labels,\n slotName = 'alert',\n ...props\n}: React.ComponentProps<'div'> &\n VariantProps<typeof alertVariants> &\n SlotNameProps & { labels?: Partial<AlertLabels> }) {\n const resolved = useUiLabels('alert', alertDefaultLabels, labels);\n const severity = variant ? SEVERITY_LABELS[variant] : undefined;\n\n return (\n <div\n role=\"alert\"\n aria-label={severity ? resolved[severity] : undefined}\n className={cn(alertVariants({ variant }), className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction AlertTitle({\n className,\n slotName = 'alert-title',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n className={cn(\n 'min-h-4 font-medium tracking-tight col-start-2 line-clamp-1',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction AlertDescription({\n className,\n slotName = 'alert-description',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n className={cn(\n 'gap-1 text-sm [&_p]:leading-relaxed col-start-2 grid justify-items-start text-muted-foreground',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nexport { Alert, AlertDescription, AlertTitle };\n","import {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from 'lucide-react';\nimport * as React from 'react';\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from 'react-day-picker';\n\nimport { Button, buttonVariants } from '@/components/ui/button';\nimport { elevatedSurface, nestedSurfaceReset } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = 'label',\n buttonVariant = 'ghost',\n formatters,\n components,\n slotName = 'calendar',\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>['variant'];\n} & SlotNameProps) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n elevatedSurface,\n nestedSurfaceReset,\n 'group/calendar p-4 [--cell-size:--spacing(8)] bg-card',\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className,\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString('default', { month: 'short' }),\n ...formatters,\n }}\n classNames={{\n root: cn('w-fit', defaultClassNames.root),\n months: cn(\n 'gap-4 md:flex-row relative flex flex-col',\n defaultClassNames.months,\n ),\n month: cn(\n 'gap-4 flex w-full flex-col',\n defaultClassNames.month,\n ),\n nav: cn(\n 'inset-x-0 top-0 gap-1 absolute flex w-full items-center justify-between',\n defaultClassNames.nav,\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n 'p-0 size-(--cell-size) select-none aria-disabled:opacity-50',\n defaultClassNames.button_previous,\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n 'p-0 size-(--cell-size) select-none aria-disabled:opacity-50',\n defaultClassNames.button_next,\n ),\n month_caption: cn(\n 'flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)',\n defaultClassNames.month_caption,\n ),\n dropdowns: cn(\n 'gap-1.5 text-sm font-medium flex h-(--cell-size) w-full items-center justify-center',\n defaultClassNames.dropdowns,\n ),\n dropdown_root: cn(\n 'shadow-xs rounded-xl relative border border-border has-focus:outline-1 has-focus:outline-offset-0 has-focus:outline-ring has-focus:outline-solid',\n defaultClassNames.dropdown_root,\n ),\n dropdown: cn(\n 'inset-0 absolute bg-popover opacity-0',\n defaultClassNames.dropdown,\n ),\n caption_label: cn(\n 'font-medium select-none',\n captionLayout === 'label'\n ? 'text-sm'\n : 'h-8 gap-1 pr-1 pl-2 text-sm [&>svg]:size-3.5 rounded-xl flex items-center [&>svg]:text-muted-foreground',\n defaultClassNames.caption_label,\n ),\n month_grid: cn(\n 'w-full border-collapse',\n defaultClassNames.month_grid,\n ),\n weekdays: cn('flex', defaultClassNames.weekdays),\n weekday: cn(\n 'font-normal rounded-xl flex-1 text-[0.8rem] text-muted-foreground select-none',\n defaultClassNames.weekday,\n ),\n week: cn('mt-2 flex w-full', defaultClassNames.week),\n week_number_header: cn(\n 'w-(--cell-size) select-none',\n defaultClassNames.week_number_header,\n ),\n week_number: cn(\n 'text-[0.8rem] text-muted-foreground select-none',\n defaultClassNames.week_number,\n ),\n day: cn(\n 'group/day p-0 [&:last-child[data-selected=true]_button]:rounded-r-xl relative aspect-square h-full w-full text-center select-none',\n props.showWeekNumber\n ? '[&:nth-child(2)[data-selected=true]_button]:rounded-l-xl'\n : '[&:first-child[data-selected=true]_button]:rounded-l-xl',\n defaultClassNames.day,\n ),\n range_start: cn(\n 'rounded-l-xl bg-accent',\n defaultClassNames.range_start,\n ),\n range_middle: cn(\n 'rounded-none',\n defaultClassNames.range_middle,\n ),\n range_end: cn(\n 'rounded-r-xl bg-accent',\n defaultClassNames.range_end,\n ),\n today: cn(\n 'rounded-xl bg-accent text-accent-foreground data-[selected=true]:rounded-none',\n defaultClassNames.today,\n ),\n outside: cn(\n 'text-muted-foreground aria-selected:text-muted-foreground',\n defaultClassNames.outside,\n ),\n disabled: cn(\n 'text-muted-foreground opacity-50',\n defaultClassNames.disabled,\n ),\n hidden: cn('invisible', defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n ref={rootRef}\n className={cn(className)}\n {...props}\n data-slot={slotName}\n />\n );\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === 'left') {\n return (\n <ChevronLeftIcon\n className={cn('size-4', className)}\n {...props}\n />\n );\n }\n\n if (orientation === 'right') {\n return (\n <ChevronRightIcon\n className={cn('size-4', className)}\n {...props}\n />\n );\n }\n\n return (\n <ChevronDownIcon\n className={cn('size-4', className)}\n {...props}\n />\n );\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n );\n },\n ...components,\n }}\n {...props}\n />\n );\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = React.useRef<HTMLButtonElement>(null);\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus();\n }, [modifiers.focused]);\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n 'gap-1 font-normal [&>span]:text-xs data-[range-end=true]:rounded-xl data-[range-end=true]:rounded-r-xl data-[range-start=true]:rounded-xl data-[range-start=true]:rounded-l-xl flex aspect-square size-auto w-full min-w-(--cell-size) flex-col leading-none group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:text-accent-foreground [&>span]:opacity-70',\n defaultClassNames.day,\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Calendar, CalendarDayButton };\n","'use client';\n\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { SearchIcon, SearchXIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from '@/components/ui/dialog';\nimport {\n elevatedSurface,\n fieldSurface,\n modalSurface,\n nestedSurfaceReset,\n} from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nfunction Command({\n className,\n slotName = 'command',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive> & SlotNameProps) {\n return (\n <CommandPrimitive\n className={cn(\n elevatedSurface,\n nestedSurfaceReset,\n 'flex h-full w-full flex-col overflow-hidden bg-card text-card-foreground',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction CommandDialog({\n title = 'Command Palette',\n description = 'Search for a command to run...',\n children,\n className,\n hideCloseButton = true,\n ...props\n}: React.ComponentProps<typeof Dialog> & {\n title?: string;\n description?: string;\n className?: string;\n hideCloseButton?: boolean;\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn(\n `${modalSurface} gap-0 p-0 overflow-hidden`,\n className,\n )}\n hideCloseButton={hideCloseButton}\n >\n <Command className=\"[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-item]]:py-2.5 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n}\n\nfunction CommandInput({\n className,\n slotName = 'command-input',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Input> & SlotNameProps) {\n return (\n <div className=\"shrink-0 border-b border-border\">\n <div\n data-slot=\"command-input-wrapper\"\n className={cn(\n fieldSurface,\n 'h-11 gap-3 px-4 m-3 flex items-center',\n )}\n >\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n className={cn(\n 'h-11 text-base sm:text-sm font-medium flex w-full bg-transparent outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n </div>\n </div>\n );\n}\n\nfunction CommandList({\n className,\n slotName = 'command-list',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.List> & SlotNameProps) {\n return (\n <CommandPrimitive.List\n className={cn(\n 'scroll-py-1 max-h-[300px] overflow-x-hidden overflow-y-auto',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction CommandEmpty({\n className,\n children,\n slotName = 'command-empty',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty> & SlotNameProps) {\n return (\n <CommandPrimitive.Empty\n className={cn(\n 'gap-3 px-6 py-10 flex flex-col items-center justify-center text-center',\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n <span className=\"size-10 flex items-center justify-center rounded-full bg-surface-recessed text-muted-foreground\">\n <SearchXIcon className=\"size-5\" />\n </span>\n <span className=\"text-sm text-muted-foreground\">{children}</span>\n </CommandPrimitive.Empty>\n );\n}\n\nfunction CommandGroup({\n className,\n slotName = 'command-group',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group> & SlotNameProps) {\n return (\n <CommandPrimitive.Group\n className={cn(\n 'p-3 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium overflow-hidden text-foreground [&_[cmdk-group-heading]]:text-muted-foreground',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction CommandSeparator({\n className,\n slotName = 'command-separator',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator> & SlotNameProps) {\n return (\n <CommandPrimitive.Separator\n className={cn('mx-3 h-px bg-border', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction CommandItem({\n className,\n slotName = 'command-item',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item> & SlotNameProps) {\n return (\n <CommandPrimitive.Item\n className={cn(\n \"gap-2 px-2 py-1.5 text-sm [&_svg:not([class*='size-'])]:size-4 rounded-xl relative flex cursor-default items-center outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-muted-foreground\",\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction CommandShortcut({\n className,\n slotName = 'command-shortcut',\n ...props\n}: React.ComponentProps<'span'> & SlotNameProps) {\n return (\n <span\n className={cn(\n 'text-xs tracking-widest ml-auto text-muted-foreground',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nexport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n};\n","import { Popover as PopoverPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { panelSurface } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nconst Popover = PopoverPrimitive.Root;\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverAnchor = PopoverPrimitive.Anchor;\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> &\n SlotNameProps\n>(\n (\n {\n className,\n align = 'center',\n sideOffset = 4,\n slotName = 'popover-content',\n ...props\n },\n ref,\n ) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n `${panelSurface} p-4 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-full origin-[--radix-popover-content-transform-origin] bg-popover/90 outline-none`,\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n </PopoverPrimitive.Portal>\n ),\n);\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport { Popover, PopoverAnchor, PopoverContent, PopoverTrigger };\n","import * as SelectPrimitive from '@radix-ui/react-select';\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { fieldFocus, fieldSurface, menuSurface } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nfunction Select({\n slotName = 'select',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root> & SlotNameProps) {\n return <SelectPrimitive.Root {...props} data-slot={slotName} />;\n}\n\nfunction SelectGroup({\n slotName = 'select-group',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group> & SlotNameProps) {\n return <SelectPrimitive.Group {...props} data-slot={slotName} />;\n}\n\nfunction SelectValue({\n slotName = 'select-value',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value> & SlotNameProps) {\n return <SelectPrimitive.Value {...props} data-slot={slotName} />;\n}\n\nfunction SelectTrigger({\n className,\n children,\n slotName = 'select-trigger',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & SlotNameProps) {\n return (\n <SelectPrimitive.Trigger\n className={cn(\n `${fieldSurface} h-11 px-4 font-medium *:data-[slot=select-value]:gap-2 [&_svg:not([class*='size-'])]:size-4 flex w-full items-center justify-between transition-[color,box-shadow] disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0 [&>span]:line-clamp-1 ${fieldFocus}`,\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"size-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'popper',\n slotName = 'select-content',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content> & SlotNameProps) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n className={cn(\n `${menuSurface} max-h-96 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 relative z-50 min-w-[8rem] overflow-hidden bg-popover/95`,\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className,\n )}\n position={position}\n {...props}\n data-slot={slotName}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n 'p-1',\n position === 'popper' &&\n 'scroll-my-1 h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]',\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({\n className,\n slotName = 'select-label',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label> & SlotNameProps) {\n return (\n <SelectPrimitive.Label\n className={cn(\n 'px-2 py-1.5 text-xs font-medium tracking-wider text-muted-foreground uppercase',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n slotName = 'select-item',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item> & SlotNameProps) {\n return (\n <SelectPrimitive.Item\n className={cn(\n \"gap-2 rounded-xl py-1.5 pr-8 pl-2 text-sm [&_svg:not([class*='size-'])]:size-4 *:[span]:last:gap-2 focus:font-semibold relative flex w-full cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center\",\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n <span className=\"right-2 size-3.5 absolute flex items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n slotName = 'select-separator',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator> & SlotNameProps) {\n return (\n <SelectPrimitive.Separator\n className={cn(\n '-mx-1 my-1 pointer-events-none h-px bg-border',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n slotName = 'select-scroll-up-button',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton> &\n SlotNameProps) {\n return (\n <SelectPrimitive.ScrollUpButton\n className={cn(\n 'py-1 flex cursor-default items-center justify-center',\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n slotName = 'select-scroll-down-button',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton> &\n SlotNameProps) {\n return (\n <SelectPrimitive.ScrollDownButton\n className={cn(\n 'py-1 flex cursor-default items-center justify-center',\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n","import * as React from 'react';\n\nexport type FieldOrientation = 'vertical' | 'horizontal';\n\nexport interface FieldContextValue {\n controlId: string;\n descriptionId: string;\n errorId: string;\n orientation: FieldOrientation;\n invalid: boolean;\n required: boolean;\n hasDescription: boolean;\n setHasDescription: (present: boolean) => void;\n}\n\nexport const FieldContext = React.createContext<FieldContextValue | null>(null);\n\nexport function useOptionalField(): FieldContextValue | null {\n return React.useContext(FieldContext);\n}\n\nexport function useField(): FieldContextValue {\n const field = useOptionalField();\n\n if (!field) {\n throw new Error('Field parts must be rendered inside a Field.');\n }\n\n return field;\n}\n","import * as React from 'react';\n\nimport { useOptionalField } from '@/components/ui/field-context';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\ninterface FieldErrorProps extends React.ComponentProps<'p'> {\n message?: string;\n}\n\nexport function FieldError({\n message,\n className,\n slotName = 'field-error',\n ...props\n}: FieldErrorProps & SlotNameProps) {\n const field = useOptionalField();\n\n if (!message) {\n return null;\n }\n\n return (\n <p\n id={field?.errorId}\n className={cn(\n 'ml-1 text-xs font-medium text-destructive group-data-[orientation=horizontal]/field:col-span-2 group-data-[orientation=horizontal]/field:row-start-3',\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n {message}\n </p>\n );\n}\n","import * as React from 'react';\n\nexport interface FloatingSheetLabels {\n backLabel: string;\n closeLabel: string;\n}\n\nexport const floatingSheetDefaultLabels: FloatingSheetLabels = {\n backLabel: 'Back',\n closeLabel: 'Close',\n};\n\nexport const FLOATING_SHEET_OFFSET_LIMIT = 3;\n\nexport interface FloatingSheetStackEntry {\n id: string;\n title: React.ReactNode;\n persistent: boolean;\n close: () => void;\n}\n\nexport interface FloatingSheetStackContextValue {\n labels: FloatingSheetLabels;\n container: HTMLElement | null;\n entries: FloatingSheetStackEntry[];\n register: (entry: FloatingSheetStackEntry) => void;\n unregister: (id: string) => void;\n closeAll: () => void;\n}\n\nexport const FloatingSheetStackContext =\n React.createContext<FloatingSheetStackContextValue | null>(null);\n\nexport function useFloatingSheetStack(): FloatingSheetStackContextValue {\n const context = React.useContext(FloatingSheetStackContext);\n\n if (!context) {\n throw new Error(\n 'FloatingSheet must be rendered inside a FloatingSheetStack.',\n );\n }\n\n return context;\n}\n","import * as DialogPrimitive from '@radix-ui/react-dialog';\nimport * as React from 'react';\n\nimport {\n FloatingSheetStackContext,\n floatingSheetDefaultLabels,\n type FloatingSheetLabels,\n type FloatingSheetStackContextValue,\n type FloatingSheetStackEntry,\n} from '@/components/ui/floating-sheet-context';\nimport { useUiLabels } from '@/locales/context';\nimport type { SlotNameProps } from '@/types';\n\nexport function FloatingSheetStack({\n children,\n labels,\n slotName = 'floating-sheet-stack',\n}: {\n children: React.ReactNode;\n labels?: Partial<FloatingSheetLabels>;\n} & SlotNameProps) {\n const { backLabel, closeLabel } = useUiLabels(\n 'floatingSheet',\n floatingSheetDefaultLabels,\n labels,\n );\n const [entries, setEntries] = React.useState<FloatingSheetStackEntry[]>([]);\n const [container, setContainer] = React.useState<HTMLElement | null>(null);\n\n const register = React.useCallback((entry: FloatingSheetStackEntry) => {\n setEntries((current) =>\n current.some((item) => item.id === entry.id)\n ? current.map((item) => (item.id === entry.id ? entry : item))\n : [...current, entry],\n );\n }, []);\n\n const unregister = React.useCallback((id: string) => {\n setEntries((current) => current.filter((item) => item.id !== id));\n }, []);\n\n const closeAll = React.useCallback(() => {\n for (const entry of [...entries].reverse()) {\n entry.close();\n }\n }, [entries]);\n\n const value = React.useMemo<FloatingSheetStackContextValue>(\n () => ({\n labels: { backLabel, closeLabel },\n container,\n entries,\n register,\n unregister,\n closeAll,\n }),\n [\n backLabel,\n closeLabel,\n container,\n entries,\n register,\n unregister,\n closeAll,\n ],\n );\n\n const top = entries.at(-1);\n\n return (\n <FloatingSheetStackContext.Provider value={value}>\n {children}\n\n <DialogPrimitive.Root\n open={entries.length > 0}\n onOpenChange={(open) => {\n if (!open) {\n closeAll();\n }\n }}\n >\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay\n data-slot=\"floating-sheet-overlay\"\n className=\"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 inset-0 bg-black/60 backdrop-blur-sm fixed z-50\"\n />\n <DialogPrimitive.Content\n aria-describedby={undefined}\n onEscapeKeyDown={(event) => {\n event.preventDefault();\n\n if (!top?.persistent) {\n top?.close();\n }\n }}\n onInteractOutside={(event) => {\n if (top?.persistent) {\n event.preventDefault();\n }\n }}\n onOpenAutoFocus={(event) => event.preventDefault()}\n onCloseAutoFocus={(event) => event.preventDefault()}\n className=\"inset-2 sm:inset-y-4 sm:right-4 sm:left-auto sm:w-[calc(100vw-2rem)] sm:max-w-lg sm:p-0 fixed z-50 p-[env(safe-area-inset-top)_env(safe-area-inset-right)_env(safe-area-inset-bottom)_env(safe-area-inset-left)] outline-none\"\n data-slot={slotName}\n >\n <DialogPrimitive.Title className=\"sr-only\">\n {top?.title}\n </DialogPrimitive.Title>\n <div\n ref={setContainer}\n data-slot=\"floating-sheet-panels\"\n className=\"relative h-full w-full\"\n />\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n </FloatingSheetStackContext.Provider>\n );\n}\n","import { ArrowLeftIcon, XIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\n\nimport {\n FLOATING_SHEET_OFFSET_LIMIT,\n floatingSheetDefaultLabels,\n useFloatingSheetStack,\n type FloatingSheetLabels,\n} from '@/components/ui/floating-sheet-context';\nimport { FloatingSheetStack } from '@/components/ui/floating-sheet-stack';\nimport { focusRing, modalSurface } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nfunction FloatingSheet({\n open,\n onOpenChange,\n title,\n description,\n persistent = false,\n className,\n children,\n slotName = 'floating-sheet',\n ...props\n}: Omit<React.ComponentProps<'section'>, 'title'> & {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title: React.ReactNode;\n description?: React.ReactNode;\n persistent?: boolean;\n} & SlotNameProps) {\n const { labels, container, entries, register, unregister, closeAll } =\n useFloatingSheetStack();\n const id = React.useId();\n const titleId = `${id}-title`;\n const descriptionId = `${id}-description`;\n const close = React.useCallback(() => onOpenChange(false), [onOpenChange]);\n const closeRef = React.useRef(close);\n const titleRef = React.useRef(title);\n const openerRef = React.useRef<Element | null>(null);\n const panelRef = React.useRef<HTMLElement | null>(null);\n const focusedRef = React.useRef(false);\n\n React.useEffect(() => {\n closeRef.current = close;\n titleRef.current = title;\n });\n\n React.useEffect(() => {\n if (!open) {\n return;\n }\n\n register({\n id,\n title: titleRef.current,\n persistent,\n close: () => closeRef.current(),\n });\n }, [open, id, persistent, register]);\n\n React.useEffect(() => {\n if (!open) {\n return;\n }\n\n return () => unregister(id);\n }, [open, id, unregister]);\n\n const index = entries.findIndex((entry) => entry.id === id);\n const depth = index === -1 ? 0 : entries.length - 1 - index;\n const isTop = index !== -1 && depth === 0;\n\n React.useEffect(() => {\n if (open) {\n openerRef.current = document.activeElement;\n\n return;\n }\n\n const opener = openerRef.current;\n openerRef.current = null;\n\n if (opener instanceof HTMLElement && document.contains(opener)) {\n opener.focus();\n }\n }, [open]);\n\n React.useEffect(() => {\n if (!open) {\n focusedRef.current = false;\n\n return;\n }\n\n if (!isTop || focusedRef.current) {\n return;\n }\n\n focusedRef.current = true;\n\n const frame = requestAnimationFrame(() => panelRef.current?.focus());\n\n return () => cancelAnimationFrame(frame);\n }, [open, isTop]);\n\n if (!open || !container) {\n return null;\n }\n\n const offset = Math.min(depth, FLOATING_SHEET_OFFSET_LIMIT);\n\n return createPortal(\n <section\n ref={panelRef}\n data-depth={depth}\n role=\"dialog\"\n aria-labelledby={titleId}\n aria-describedby={description ? descriptionId : undefined}\n tabIndex={-1}\n inert={!isTop}\n style={{\n transform: `translateX(-${offset * 26}px) scale(${1 - offset * 0.035})`,\n zIndex: index,\n }}\n className={cn(\n `${modalSurface} inset-0 ease-out absolute flex flex-col overflow-hidden transition-transform duration-300 outline-none`,\n depth > 0 && 'max-sm:hidden pointer-events-none',\n depth > FLOATING_SHEET_OFFSET_LIMIT && 'hidden',\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n <header\n data-slot=\"floating-sheet-header\"\n className=\"gap-1 p-5 flex flex-col\"\n >\n {index > 0 ? (\n <button\n type=\"button\"\n data-slot=\"floating-sheet-back\"\n onClick={close}\n className={cn(\n 'gap-2 h-8 -ml-2 px-2 text-sm font-medium inline-flex w-fit items-center rounded-full text-muted-foreground transition-colors hover:bg-accent hover:text-foreground',\n focusRing,\n )}\n >\n <ArrowLeftIcon className=\"size-4\" />\n {labels.backLabel}\n </button>\n ) : null}\n\n <h2\n id={titleId}\n data-slot=\"floating-sheet-title\"\n className=\"pr-10 text-lg font-semibold text-foreground\"\n >\n {title}\n </h2>\n\n {description ? (\n <p\n id={descriptionId}\n data-slot=\"floating-sheet-description\"\n className=\"text-sm text-muted-foreground\"\n >\n {description}\n </p>\n ) : null}\n </header>\n\n {children}\n\n <button\n type=\"button\"\n data-slot=\"floating-sheet-close\"\n aria-label={labels.closeLabel}\n onClick={closeAll}\n className={cn(\n 'top-4 right-4 size-9 shadow-xs absolute flex items-center justify-center rounded-full border border-border bg-muted text-muted-foreground transition-colors hover:bg-accent hover:text-foreground disabled:pointer-events-none',\n focusRing,\n )}\n >\n <XIcon className=\"size-4\" />\n </button>\n </section>,\n container,\n );\n}\n\nfunction FloatingSheetBody({\n className,\n slotName = 'floating-sheet-body',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n className={cn('p-5 flex-1 overflow-y-auto', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction FloatingSheetFooter({\n className,\n slotName = 'floating-sheet-footer',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n className={cn(\n 'gap-2 p-5 mt-auto flex items-center justify-end',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nexport {\n FloatingSheet,\n FloatingSheetBody,\n floatingSheetDefaultLabels,\n FloatingSheetFooter,\n FloatingSheetStack,\n type FloatingSheetLabels,\n};\n","import { OTPInput, OTPInputContext } from 'input-otp';\nimport { Minus } from 'lucide-react';\nimport * as React from 'react';\n\nimport { controlFill, glassControl } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nconst InputOTP = React.forwardRef<\n React.ElementRef<typeof OTPInput>,\n React.ComponentPropsWithoutRef<typeof OTPInput>\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn(\n 'gap-2 flex items-center has-[:disabled]:opacity-50',\n containerClassName,\n )}\n className={cn('disabled:cursor-not-allowed', className)}\n {...props}\n />\n));\nInputOTP.displayName = 'InputOTP';\n\nconst InputOTPGroup = React.forwardRef<\n React.ElementRef<'div'>,\n React.ComponentPropsWithoutRef<'div'>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center', className)} {...props} />\n));\nInputOTPGroup.displayName = 'InputOTPGroup';\n\nconst InputOTPSlot = React.forwardRef<\n React.ElementRef<'div'>,\n React.ComponentPropsWithoutRef<'div'> & { index: number } & SlotNameProps\n>(({ index, className, slotName = 'input-otp-slot', ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];\n\n return (\n <div\n ref={ref}\n className={cn(\n glassControl,\n controlFill,\n 'size-11 text-base sm:text-sm font-medium first:rounded-l-2xl last:rounded-r-2xl relative flex items-center justify-center rounded-none transition-all',\n isActive && 'z-10 ring-[3px] ring-ring/50',\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"inset-0 pointer-events-none absolute flex items-center justify-center\">\n <div className=\"h-4 animate-caret-blink w-px bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n );\n});\nInputOTPSlot.displayName = 'InputOTPSlot';\n\nconst InputOTPSeparator = React.forwardRef<\n React.ElementRef<'div'>,\n React.ComponentPropsWithoutRef<'div'>\n>(({ ...props }, ref) => (\n <div ref={ref} role=\"separator\" {...props}>\n <Minus />\n </div>\n));\nInputOTPSeparator.displayName = 'InputOTPSeparator';\n\nexport { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };\n","import * as SwitchPrimitives from '@radix-ui/react-switch';\nimport * as React from 'react';\n\nimport { focusRing } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> & SlotNameProps\n>(({ className, slotName = 'switch', ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n `peer h-6 w-11 shadow-sm inline-flex shrink-0 cursor-pointer items-center rounded-full border border-transparent transition-colors disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input ${focusRing}`,\n className,\n )}\n {...props}\n ref={ref}\n data-slot={slotName}\n >\n <SwitchPrimitives.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n 'size-5 shadow-lg data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0 pointer-events-none block rounded-full bg-background ring-0 transition-transform',\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","import * as TabsPrimitive from '@radix-ui/react-tabs';\nimport * as React from 'react';\n\nimport { elevatedSurface, focusRing, nestedSurfaceReset } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nconst Tabs = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Root> & SlotNameProps\n>(({ slotName = 'tabs', ...props }, ref) => (\n <TabsPrimitive.Root ref={ref} {...props} data-slot={slotName} />\n));\nTabs.displayName = TabsPrimitive.Root.displayName;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List> & SlotNameProps\n>(({ className, slotName = 'tabs-list', ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n 'h-11 p-1.5 rounded-2xl inline-flex items-center justify-center bg-muted text-muted-foreground',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger> & SlotNameProps\n>(({ className, slotName = 'tabs-trigger', ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n `px-4 text-sm font-medium data-[state=active]:shadow-sm h-8 rounded-xl data-[state=active]:font-semibold inline-flex items-center justify-center whitespace-nowrap transition-all disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-tab-active data-[state=active]:text-foreground ${focusRing}`,\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content> & SlotNameProps\n>(({ className, slotName = 'tabs-content', ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n elevatedSurface,\n nestedSurfaceReset,\n `mt-2 p-5 bg-card ${focusRing}`,\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\n","import * as React from 'react';\n\nimport { fieldFocus, fieldSurface } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nconst Textarea = React.forwardRef<\n HTMLTextAreaElement,\n React.ComponentProps<'textarea'> & SlotNameProps\n>(({ className, slotName = 'textarea', ...props }, ref) => {\n return (\n <textarea\n className={cn(\n fieldSurface,\n 'px-4 py-3 font-medium min-h-24 flex w-full resize-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50',\n fieldFocus,\n 'aria-invalid:border-destructive aria-invalid:ring-destructive/20',\n className,\n )}\n ref={ref}\n {...props}\n data-slot={slotName}\n />\n );\n});\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/copy-button.tsx"],"names":[],"mappings":";;;;;;AAaO,IAAM,gBAAA,GAAqC;AAAA,EAC9C,SAAA,EAAW,MAAA;AAAA,EACX,WAAA,EAAa;AACjB;AAcA,eAAe,iBAAiB,KAAA,EAA8B;AAC1D,EAAA,MAAM,SAAA,GAAY,WAAW,SAAA,EAAW,SAAA;AAExC,EAAA,IAAI,OAAO,SAAA,EAAW,SAAA,KAAc,UAAA,EAAY;AAC5C,IAAA,MAAM,IAAI,MAAM,iDAAiD,CAAA;AAAA,EACrE;AAEA,EAAA,MAAM,SAAA,CAAU,UAAU,KAAK,CAAA;AACnC;AAEA,SAAS,UAAA,CAAW;AAAA,EAChB,KAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,uBAAA,GAA0B,GAAA;AAAA,EAC1B,QAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA,GAAU,OAAA;AAAA,EACV,IAAA,GAAO,SAAA;AAAA,EACP,SAAA;AAAA,EACA,QAAA,GAAW,aAAA;AAAA,EACX,GAAG;AACP,CAAA,EAAoC;AAChC,EAAA,MAAM,MAAA,GAAS,WAAA,CAAY,YAAA,EAAc,gBAAA,EAAkB;AAAA,IACvD,SAAA;AAAA,IACA;AAAA,GACH,CAAA;AACD,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAU,eAAS,KAAK,CAAA;AAChD,EAAA,MAAM,KAAA,GAAc,aAAsC,MAAS,CAAA;AAEnE,EAAM,KAAA,CAAA,SAAA,CAAU,MAAM,MAAM,YAAA,CAAa,MAAM,OAAO,CAAA,EAAG,EAAE,CAAA;AAE3D,EAAA,eAAe,KAAK,KAAA,EAA4C;AAC5D,IAAA,OAAA,GAAU,KAAK,CAAA;AAEf,IAAA,IAAI;AACA,MAAA,MAAM,iBAAiB,KAAK,CAAA;AAAA,IAChC,SAAS,MAAA,EAAQ;AACb,MAAA,YAAA,GAAe,MAAM,CAAA;AAErB,MAAA;AAAA,IACJ;AAEA,IAAA,SAAA,CAAU,IAAI,CAAA;AACd,IAAA,QAAA,GAAW,KAAK,CAAA;AAEhB,IAAA,YAAA,CAAa,MAAM,OAAO,CAAA;AAC1B,IAAA,KAAA,CAAM,OAAA,GAAU,UAAA;AAAA,MACZ,MAAM,UAAU,KAAK,CAAA;AAAA,MACrB;AAAA,KACJ;AAAA,EACJ;AAEA,EAAA,2BACK,MAAA,EAAA,EAAO,OAAA,EAAO,IAAA,EAAC,OAAA,EAAkB,MAAY,SAAA,EAC1C,QAAA,kBAAA,IAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACI,GAAG,KAAA;AAAA,MACJ,IAAA,EAAK,QAAA;AAAA,MACL,eAAa,MAAA,IAAU,MAAA;AAAA,MACvB,YAAA,EAAY,MAAA,GAAS,MAAA,CAAO,WAAA,GAAc,MAAA,CAAO,SAAA;AAAA,MACjD,OAAA,EAAS,IAAA;AAAA,MACT,WAAA,EAAW,QAAA;AAAA,MAEV,QAAA,EAAA;AAAA,QAAA,MAAA,mBACG,GAAA,CAAC,SAAM,aAAA,EAAY,MAAA,EAAO,oBAE1B,GAAA,CAAC,IAAA,EAAA,EAAK,eAAY,MAAA,EAAO,CAAA;AAAA,wBAE7B,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACG,WAAA,EAAU,oBAAA;AAAA,YACV,IAAA,EAAK,QAAA;AAAA,YACL,WAAA,EAAU,QAAA;AAAA,YACV,SAAA,EAAU,SAAA;AAAA,YAET,QAAA,EAAA,MAAA,GAAS,OAAO,WAAA,GAAc;AAAA;AAAA;AACnC;AAAA;AAAA,GACJ,EACJ,CAAA;AAER","file":"chunk-IDNOI4OK.js","sourcesContent":["import { type VariantProps } from 'class-variance-authority';\nimport { Check, Copy } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button, buttonVariants } from '@/components/ui/button';\nimport { useUiLabels } from '@/locales/context';\nimport type { SlotNameProps } from '@/types';\n\nexport interface CopyButtonLabels {\n copyLabel: string;\n copiedLabel: string;\n}\n\nexport const copyButtonLabels: CopyButtonLabels = {\n copyLabel: 'Copy',\n copiedLabel: 'Copied',\n};\n\ninterface CopyButtonProps\n extends\n Omit<React.ComponentProps<'button'>, 'value' | 'onCopy' | 'onError'>,\n VariantProps<typeof buttonVariants> {\n value: string;\n copyLabel?: CopyButtonLabels['copyLabel'];\n copiedLabel?: CopyButtonLabels['copiedLabel'];\n acknowledgementDuration?: number;\n onCopied?: (value: string) => void;\n onCopyFailed?: (reason: unknown) => void;\n}\n\nasync function writeToClipboard(value: string): Promise<void> {\n const clipboard = globalThis.navigator?.clipboard;\n\n if (typeof clipboard?.writeText !== 'function') {\n throw new Error('The clipboard is not available in this context.');\n }\n\n await clipboard.writeText(value);\n}\n\nfunction CopyButton({\n value,\n copyLabel,\n copiedLabel,\n acknowledgementDuration = 2000,\n onCopied,\n onCopyFailed,\n onClick,\n variant = 'ghost',\n size = 'icon-sm',\n className,\n slotName = 'copy-button',\n ...props\n}: CopyButtonProps & SlotNameProps) {\n const labels = useUiLabels('copyButton', copyButtonLabels, {\n copyLabel,\n copiedLabel,\n });\n const [copied, setCopied] = React.useState(false);\n const timer = React.useRef<ReturnType<typeof setTimeout>>(undefined);\n\n React.useEffect(() => () => clearTimeout(timer.current), []);\n\n async function copy(event: React.MouseEvent<HTMLButtonElement>) {\n onClick?.(event);\n\n try {\n await writeToClipboard(value);\n } catch (reason) {\n onCopyFailed?.(reason);\n\n return;\n }\n\n setCopied(true);\n onCopied?.(value);\n\n clearTimeout(timer.current);\n timer.current = setTimeout(\n () => setCopied(false),\n acknowledgementDuration,\n );\n }\n\n return (\n <Button asChild variant={variant} size={size} className={className}>\n <button\n {...props}\n type=\"button\"\n data-copied={copied || undefined}\n aria-label={copied ? labels.copiedLabel : labels.copyLabel}\n onClick={copy}\n data-slot={slotName}\n >\n {copied ? (\n <Check aria-hidden=\"true\" />\n ) : (\n <Copy aria-hidden=\"true\" />\n )}\n <span\n data-slot=\"copy-button-status\"\n role=\"status\"\n aria-live=\"polite\"\n className=\"sr-only\"\n >\n {copied ? labels.copiedLabel : ''}\n </span>\n </button>\n </Button>\n );\n}\n\nexport { CopyButton, type CopyButtonProps };\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts","../src/lib/language.ts","../src/components/ui/spinner.tsx","../src/components/ui/button.tsx"],"names":["cva","mappedSpinnerSize","items","first","iconOnly","hasLeadingVisual","leadingVisual","label","jsxs","jsx"],"mappings":"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","file":"chunk-KHOA4TEI.js","sourcesContent":["import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","export const surfaceRadius = 'rounded-3xl';\n\nexport const controlRadius = 'rounded-2xl';\n\nexport const compactRadius = 'rounded-xl';\n\nexport const glassEdge =\n 'ring-1 ring-surface-ring backdrop-blur-2xl backdrop-saturate-150';\n\nexport const elevatedSurface = `${glassEdge} ${surfaceRadius} border-0 shadow-(--glass-elevation)`;\n\nexport const floatingSurface = `${glassEdge} border-0 bg-popover/85 text-popover-foreground shadow-(--glass-elevation)`;\n\nexport const modalSurface = `${floatingSurface} ${surfaceRadius}`;\n\nexport const panelSurface = `${floatingSurface} ${controlRadius}`;\n\nexport const menuSurface = `${panelSurface} bg-popover/80`;\n\nexport const flatSurface = 'shadow-none ring-0';\n\nexport const recessedSurface = `${controlRadius} border-0 bg-surface-recessed/30 text-foreground shadow-none ring-0 backdrop-blur-none`;\n\nexport const nestedRadius = controlRadius;\n\nexport const nestedSurfaceReset =\n 'nested-surface:border-0 nested-surface:ring-0 nested-surface:bg-transparent nested-surface:shadow-none nested-surface:backdrop-blur-none';\n\nexport const nestedEdgeToEdge = 'nested-surface:rounded-none';\n\nexport const glassControl =\n 'ring-1 ring-surface-ring border-0 shadow-(--glass-shadow) backdrop-blur-md backdrop-saturate-150';\n\nexport const controlFill = 'bg-surface-control';\n\nexport const fieldText = 'text-base sm:text-sm';\n\nexport const fieldSurface = `${glassControl} ${controlFill} ${controlRadius} ${fieldText} text-foreground`;\n\nexport const focusRing =\n 'focus-visible:outline-solid focus-visible:outline-1 focus-visible:outline-offset-0 focus-visible:outline-ring';\n\nexport const fieldFocus = `${focusRing} focus-visible:shadow-(--glass-elevation)`;\n\nexport const menuHighlight =\n 'outline-hidden focus:bg-accent focus:text-accent-foreground';\n\nexport interface SurfaceProps {\n inset?: boolean;\n}\n\nexport interface FlatSurfaceProps extends SurfaceProps {\n flat?: boolean;\n}\n\nexport function surface(inset?: boolean | null): string {\n return inset ? `${elevatedSurface} ${recessedSurface}` : elevatedSurface;\n}\n","import { cva, type VariantProps } from 'class-variance-authority';\nimport { LoaderCircle } from 'lucide-react';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nconst spinnerVariants = cva('inline-flex shrink-0', {\n variants: {\n size: {\n sm: 'size-3.5',\n default: 'size-4',\n lg: 'size-5',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n});\n\ninterface SpinnerProps\n extends React.ComponentProps<'span'>, VariantProps<typeof spinnerVariants> {\n label?: string;\n}\n\nfunction Spinner({\n className,\n label = 'Loading',\n size = 'default',\n slotName = 'spinner',\n ...props\n}: SpinnerProps & SlotNameProps) {\n return (\n <span\n {...props}\n data-size={size}\n role=\"status\"\n className={cn(spinnerVariants({ size }), className)}\n data-slot={slotName}\n >\n <LoaderCircle\n aria-hidden=\"true\"\n className=\"animate-spin size-full text-current motion-reduce:animate-none\"\n />\n <span className=\"sr-only\">{label}</span>\n </span>\n );\n}\n\nexport { Spinner, spinnerVariants, type SpinnerProps };\n","import { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport {\n Spinner,\n spinnerVariants,\n type SpinnerProps,\n} from '@/components/ui/spinner';\nimport { controlFill, focusRing, glassControl } from '@/lib/language';\nimport { cn } from '@/lib/utils';\n\nconst buttonVariants = cva(\n `inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-2xl text-sm font-semibold transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 aria-invalid:ring-destructive/20 aria-invalid:border-destructive ${focusRing}`,\n {\n variants: {\n variant: {\n default:\n 'bg-primary text-primary-foreground shadow-xl hover:bg-primary/90 hover:scale-[1.02] active:scale-[0.98]',\n destructive:\n 'bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90 focus-visible:outline-destructive',\n outline: `${glassControl} ${controlFill} hover:bg-accent hover:text-accent-foreground`,\n secondary: `${glassControl} bg-secondary/80 text-secondary-foreground hover:bg-secondary`,\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-11 px-4 has-[>svg]:gap-3',\n sm: 'h-9 rounded-xl px-3 has-[>svg]:gap-2.5',\n lg: 'h-12 px-6 has-[>svg]:gap-4 text-base',\n icon: 'size-11',\n 'icon-sm': 'size-9 rounded-xl',\n 'icon-lg': 'size-12',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\ntype ButtonSize = NonNullable<VariantProps<typeof buttonVariants>['size']>;\n\ninterface ButtonProps\n extends\n React.ComponentProps<'button'>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n loading?: boolean;\n loadingLabel?: string;\n slotName?: string;\n}\n\nfunction spinnerSize(size: ButtonSize): SpinnerProps['size'] {\n if (size === 'sm' || size === 'icon-sm') return 'sm';\n if (size === 'lg' || size === 'icon-lg') return 'lg';\n return 'default';\n}\n\nconst ICON_PADDING: Record<ButtonSize, { leading: string; trailing: string }> =\n {\n default: { leading: 'pl-3', trailing: 'pr-2' },\n sm: { leading: 'pl-2.5', trailing: 'pr-1.5' },\n lg: { leading: 'pl-4', trailing: 'pr-3' },\n icon: { leading: '', trailing: '' },\n 'icon-sm': { leading: '', trailing: '' },\n 'icon-lg': { leading: '', trailing: '' },\n };\n\nfunction iconPadding(size: ButtonSize, children: React.ReactNode): string {\n const parts = React.Children.toArray(children).filter(\n (part) => typeof part !== 'string' || part.trim() !== '',\n );\n\n if (parts.length < 2) {\n return '';\n }\n\n const edges = ICON_PADDING[size];\n\n return cn(\n React.isValidElement(parts[0]) && edges.leading,\n React.isValidElement(parts[parts.length - 1]) && edges.trailing,\n );\n}\n\nfunction loadingPadding(size: ButtonSize): string | undefined {\n if (size === 'sm') return 'px-2.5';\n if (size === 'lg') return 'px-5';\n if (size === 'default') return 'px-3';\n return undefined;\n}\n\nfunction Button({\n className,\n variant = 'default',\n size = 'default',\n asChild = false,\n loading,\n loadingLabel = 'Loading',\n slotName = 'button',\n disabled,\n children,\n onClick,\n ...props\n}: ButtonProps) {\n const isLoading = loading === true;\n const hasLoadingState = loading !== undefined;\n const resolvedSize: ButtonSize = size ?? 'default';\n const baseClasses = buttonVariants({ variant, size: resolvedSize });\n const classes = cn(\n baseClasses,\n iconPadding(resolvedSize, children),\n className,\n );\n const loadingClasses = cn(\n baseClasses,\n loadingPadding(resolvedSize),\n className,\n );\n\n if (asChild) {\n const Comp = asChild ? Slot : 'button';\n const mappedSpinnerSize = spinnerSize(resolvedSize);\n const slottedChild = React.isValidElement<\n React.HTMLAttributes<HTMLElement>\n >(children)\n ? children\n : undefined;\n const items = React.Children.toArray(slottedChild?.props.children);\n const first = items[0];\n const iconOnly = resolvedSize.startsWith('icon');\n const hasLeadingVisual =\n React.isValidElement(first) && (items.length > 1 || iconOnly);\n const leadingVisual = hasLeadingVisual ? first : undefined;\n const label = hasLeadingVisual ? items.slice(1) : items;\n const slottedChildren =\n hasLoadingState && slottedChild\n ? React.cloneElement(\n slottedChild,\n isLoading\n ? {\n onClick(event) {\n event.preventDefault();\n event.stopPropagation();\n },\n }\n : undefined,\n <span\n data-slot=\"button-content\"\n className=\"inline-flex items-center gap-[inherit]\"\n >\n <span\n data-slot=\"button-leading\"\n className={cn(\n 'inline-grid shrink-0 place-items-center',\n spinnerVariants({ size: mappedSpinnerSize }),\n )}\n >\n {isLoading ? (\n <Spinner\n size={mappedSpinnerSize}\n label={loadingLabel}\n className=\"size-full\"\n />\n ) : (\n leadingVisual\n )}\n </span>\n <span data-slot=\"button-label\">{label}</span>\n {!hasLeadingVisual && !iconOnly && (\n <span\n aria-hidden=\"true\"\n data-slot=\"button-balance\"\n className={spinnerVariants({\n size: mappedSpinnerSize,\n })}\n />\n )}\n </span>,\n )\n : children;\n\n return (\n <Comp\n {...props}\n data-slot={slotName}\n data-variant={variant}\n data-size={resolvedSize}\n data-loading={isLoading || undefined}\n className={hasLoadingState ? loadingClasses : classes}\n disabled={disabled || isLoading}\n aria-busy={isLoading ? true : props['aria-busy']}\n aria-disabled={isLoading ? true : props['aria-disabled']}\n onClick={isLoading ? undefined : onClick}\n >\n {slottedChildren}\n </Comp>\n );\n }\n\n if (loading === undefined) {\n return (\n <button\n {...props}\n data-slot={slotName}\n data-variant={variant}\n data-size={resolvedSize}\n className={classes}\n disabled={disabled}\n onClick={onClick}\n >\n {children}\n </button>\n );\n }\n\n const items = React.Children.toArray(children);\n const first = items[0];\n const iconOnly = resolvedSize.startsWith('icon');\n const hasLeadingVisual =\n React.isValidElement(first) && (items.length > 1 || iconOnly);\n const leadingVisual = hasLeadingVisual ? first : undefined;\n const label = hasLeadingVisual ? items.slice(1) : items;\n const mappedSpinnerSize = spinnerSize(resolvedSize);\n\n return (\n <button\n {...props}\n data-slot={slotName}\n data-variant={variant}\n data-size={resolvedSize}\n data-loading={isLoading || undefined}\n className={loadingClasses}\n disabled={disabled || isLoading}\n aria-busy={isLoading ? true : props['aria-busy']}\n onClick={onClick}\n >\n <span\n data-slot=\"button-content\"\n className=\"inline-flex items-center gap-[inherit]\"\n >\n <span\n data-slot=\"button-leading\"\n className={cn(\n 'inline-grid shrink-0 place-items-center',\n spinnerVariants({ size: mappedSpinnerSize }),\n )}\n >\n {isLoading ? (\n <Spinner\n size={mappedSpinnerSize}\n label={loadingLabel}\n className=\"size-full\"\n />\n ) : (\n leadingVisual\n )}\n </span>\n <span data-slot=\"button-label\">{label}</span>\n {!hasLeadingVisual && !iconOnly && (\n <span\n aria-hidden=\"true\"\n data-slot=\"button-balance\"\n className={spinnerVariants({\n size: mappedSpinnerSize,\n })}\n />\n )}\n </span>\n </button>\n );\n}\n\nexport { Button, buttonVariants, type ButtonProps };\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/dialog.tsx","../src/components/ui/label.tsx"],"names":["DialogPrimitive","jsx"],"mappings":"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","file":"chunk-N2KIFFI7.js","sourcesContent":["import { XIcon } from 'lucide-react';\nimport { Dialog as DialogPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { modalSurface } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nfunction Dialog({\n slotName = 'dialog',\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root> & SlotNameProps) {\n return <DialogPrimitive.Root {...props} data-slot={slotName} />;\n}\n\nfunction DialogTrigger({\n slotName = 'dialog-trigger',\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger> & SlotNameProps) {\n return <DialogPrimitive.Trigger {...props} data-slot={slotName} />;\n}\n\nfunction DialogPortal({\n slotName = 'dialog-portal',\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal> & SlotNameProps) {\n return <DialogPrimitive.Portal {...props} data-slot={slotName} />;\n}\n\nfunction DialogClose({\n slotName = 'dialog-close',\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close> & SlotNameProps) {\n return <DialogPrimitive.Close {...props} data-slot={slotName} />;\n}\n\nfunction DialogOverlay({\n className,\n slotName = 'dialog-overlay',\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay> & SlotNameProps) {\n return (\n <DialogPrimitive.Overlay\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 inset-0 bg-black/60 backdrop-blur-sm fixed z-50',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\ninterface DialogContentProps extends React.ComponentProps<\n typeof DialogPrimitive.Content\n> {\n hideCloseButton?: boolean;\n}\n\nfunction DialogContent({\n className,\n children,\n hideCloseButton = false,\n slotName = 'dialog-content',\n ...props\n}: DialogContentProps & SlotNameProps) {\n return (\n <DialogPortal slotName=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n className={cn(\n `${modalSurface} data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 gap-6 p-6 sm:w-full sm:max-w-lg fixed top-[50%] left-[50%] z-50 grid w-[calc(100%-2rem)] max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] overflow-hidden duration-200`,\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n {children}\n {!hideCloseButton && (\n <DialogPrimitive.Close className=\"top-6 right-6 h-10 w-10 shadow-xs absolute z-50 flex items-center justify-center rounded-full border border-border bg-muted text-muted-foreground transition-colors hover:bg-accent hover:text-foreground\">\n <XIcon className=\"h-5 w-5\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({\n className,\n slotName = 'dialog-header',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n className={cn(\n 'gap-2 p-6 md:p-8 flex flex-col text-center',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction DialogFooter({\n className,\n slotName = 'dialog-footer',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n className={cn(\n 'gap-3 p-6 md:p-8 sm:flex-row sm:justify-end flex flex-col-reverse border-t border-border',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction DialogTitle({\n className,\n slotName = 'dialog-title',\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title> & SlotNameProps) {\n return (\n <DialogPrimitive.Title\n className={cn(\n 'text-2xl font-bold tracking-tight md:text-3xl text-foreground',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n slotName = 'dialog-description',\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description> & SlotNameProps) {\n return (\n <DialogPrimitive.Description\n className={cn(\n 'text-base font-medium leading-relaxed text-muted-foreground',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n","import * as LabelPrimitive from '@radix-ui/react-label';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nfunction Label({\n className,\n slotName = 'label',\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root> & SlotNameProps) {\n return (\n <LabelPrimitive.Root\n className={cn(\n 'text-sm font-medium text-foreground select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nexport { Label };\n"]}
|