@akira-io/ui 2.0.0 → 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/dist/blocks.d.ts +2 -2
- package/dist/blocks.js +10 -10
- package/dist/{chunk-3Z2VGVPI.js → chunk-53V4J7MC.js} +2 -2
- package/dist/{chunk-VA6A4HZ2.js → chunk-BH3B26DK.js} +5 -5
- package/dist/{chunk-TM5MN3MI.js → chunk-BP2YDMMI.js} +2 -2
- package/dist/{chunk-DE2AJ54R.js → chunk-BR3JI3KN.js} +6 -6
- package/dist/{chunk-YBXRJSR3.js → chunk-CAUTXZ4U.js} +2 -2
- package/dist/{chunk-UCJTM3UM.js → chunk-DPLCEU34.js} +134 -41
- package/dist/chunk-DPLCEU34.js.map +1 -0
- package/dist/{chunk-2V6HUWST.js → chunk-NKPFIA32.js} +2 -2
- package/dist/{chunk-E26KKMGS.js → chunk-OS7YY5R4.js} +1 -1
- package/dist/{chunk-E26KKMGS.js.map → chunk-OS7YY5R4.js.map} +1 -1
- package/dist/{chunk-UXVI326F.js → chunk-PCYYU332.js} +3 -3
- package/dist/{chunk-KHOA4TEI.js → chunk-PPWJK5T3.js} +7 -1
- package/dist/chunk-PPWJK5T3.js.map +1 -0
- package/dist/{chunk-EYPM6IMS.js → chunk-QZRSQVCN.js} +2 -2
- package/dist/{chunk-SZUXATOF.js → chunk-XLAOE5MV.js} +4 -4
- package/dist/{chunk-B3L6PRLX.js → chunk-ZQXZ4UGE.js} +3 -3
- package/dist/code.js +3 -3
- package/dist/{context-Soro3B1I.d.ts → context-2wTOwxCk.d.ts} +8 -1
- package/dist/editor.js +5 -5
- package/dist/index.d.ts +3 -3
- package/dist/index.js +11 -11
- package/dist/inertia.js +8 -8
- 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 +2 -2
- package/dist/locales/pt.js.map +1 -1
- package/dist/shells.js +5 -5
- package/package.json +5 -1
- package/theme.css +11 -0
- package/dist/chunk-KHOA4TEI.js.map +0 -1
- package/dist/chunk-UCJTM3UM.js.map +0 -1
- /package/dist/{chunk-3Z2VGVPI.js.map → chunk-53V4J7MC.js.map} +0 -0
- /package/dist/{chunk-VA6A4HZ2.js.map → chunk-BH3B26DK.js.map} +0 -0
- /package/dist/{chunk-TM5MN3MI.js.map → chunk-BP2YDMMI.js.map} +0 -0
- /package/dist/{chunk-DE2AJ54R.js.map → chunk-BR3JI3KN.js.map} +0 -0
- /package/dist/{chunk-YBXRJSR3.js.map → chunk-CAUTXZ4U.js.map} +0 -0
- /package/dist/{chunk-2V6HUWST.js.map → chunk-NKPFIA32.js.map} +0 -0
- /package/dist/{chunk-UXVI326F.js.map → chunk-PCYYU332.js.map} +0 -0
- /package/dist/{chunk-EYPM6IMS.js.map → chunk-QZRSQVCN.js.map} +0 -0
- /package/dist/{chunk-SZUXATOF.js.map → chunk-XLAOE5MV.js.map} +0 -0
- /package/dist/{chunk-B3L6PRLX.js.map → chunk-ZQXZ4UGE.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/confirm-dialog.tsx","../src/components/ui/calendar.tsx","../src/components/ui/command.tsx","../src/components/ui/popover.tsx","../src/components/ui/select.tsx","../src/components/ui/floating-sheet-context.ts","../src/components/ui/floating-sheet-stack.tsx","../src/components/ui/floating-sheet.tsx","../src/hooks/use-floating-sheet-body-edges.ts","../src/components/ui/input-otp.tsx","../src/components/ui/switch.tsx","../src/components/ui/tabs.tsx","../src/components/ui/textarea.tsx"],"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 {\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 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\nexport interface FloatingSheetEdges {\n top: boolean;\n bottom: boolean;\n}\n\nexport const floatingSheetDefaultEdges: FloatingSheetEdges = {\n top: true,\n bottom: true,\n};\n\nexport const FloatingSheetEdgesContext =\n React.createContext<FloatingSheetEdges>(floatingSheetDefaultEdges);\n\nexport const FloatingSheetReportEdgesContext = React.createContext<\n ((edges: FloatingSheetEdges) => void) | null\n>(null);\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 floatingSheetDefaultEdges,\n floatingSheetDefaultLabels,\n FloatingSheetEdgesContext,\n FloatingSheetReportEdgesContext,\n useFloatingSheetStack,\n type FloatingSheetEdges,\n type FloatingSheetLabels,\n} from '@/components/ui/floating-sheet-context';\nimport { FloatingSheetStack } from '@/components/ui/floating-sheet-stack';\nimport { useFloatingSheetBodyEdges } from '@/hooks/use-floating-sheet-body-edges';\nimport {\n focusRing,\n modalSurface,\n scrollEdgeTransition,\n scrollShadowFromBottom,\n scrollShadowFromTop,\n} 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 const [edges, setEdges] = React.useState<FloatingSheetEdges>(\n floatingSheetDefaultEdges,\n );\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={cn(\n 'gap-1 p-5 relative z-10 flex flex-col',\n scrollEdgeTransition,\n !edges.top && scrollShadowFromTop,\n )}\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 <FloatingSheetReportEdgesContext.Provider value={setEdges}>\n <FloatingSheetEdgesContext.Provider value={edges}>\n {children}\n </FloatingSheetEdgesContext.Provider>\n </FloatingSheetReportEdgesContext.Provider>\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 z-20 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 children,\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n const reportEdges = React.useContext(FloatingSheetReportEdgesContext);\n const containerRef = React.useRef<HTMLDivElement | null>(null);\n const topSentinelRef = React.useRef<HTMLDivElement | null>(null);\n const bottomSentinelRef = React.useRef<HTMLDivElement | null>(null);\n\n useFloatingSheetBodyEdges(\n containerRef,\n topSentinelRef,\n bottomSentinelRef,\n reportEdges,\n );\n\n return (\n <div\n ref={containerRef}\n className={cn('p-5 flex-1 overflow-y-auto', className)}\n {...props}\n data-slot={slotName}\n >\n <div\n ref={topSentinelRef}\n aria-hidden=\"true\"\n data-slot=\"floating-sheet-top-sentinel\"\n className=\"h-0\"\n />\n {children}\n <div\n ref={bottomSentinelRef}\n aria-hidden=\"true\"\n data-slot=\"floating-sheet-bottom-sentinel\"\n className=\"h-0\"\n />\n </div>\n );\n}\n\nfunction FloatingSheetFooter({\n className,\n slotName = 'floating-sheet-footer',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n const edges = React.useContext(FloatingSheetEdgesContext);\n\n return (\n <div\n className={cn(\n 'gap-2 p-5 relative z-10 mt-auto flex items-center justify-end',\n scrollEdgeTransition,\n !edges.bottom && scrollShadowFromBottom,\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 * as React from 'react';\n\nimport {\n floatingSheetDefaultEdges,\n type FloatingSheetEdges,\n} from '@/components/ui/floating-sheet-context';\n\nexport function useFloatingSheetBodyEdges(\n containerRef: React.RefObject<HTMLElement | null>,\n topSentinelRef: React.RefObject<HTMLElement | null>,\n bottomSentinelRef: React.RefObject<HTMLElement | null>,\n reportEdges: ((edges: FloatingSheetEdges) => void) | null,\n): void {\n React.useEffect(() => {\n const container = containerRef.current;\n const topSentinel = topSentinelRef.current;\n const bottomSentinel = bottomSentinelRef.current;\n\n if (\n !reportEdges ||\n !container ||\n !topSentinel ||\n !bottomSentinel ||\n typeof IntersectionObserver === 'undefined'\n ) {\n return;\n }\n\n let edges = floatingSheetDefaultEdges;\n const edgeKeyByTarget = new Map<Element, keyof FloatingSheetEdges>([\n [topSentinel, 'top'],\n [bottomSentinel, 'bottom'],\n ]);\n\n const observer = new IntersectionObserver(\n (entries) => {\n const next = { ...edges };\n\n for (const entry of entries) {\n const key = edgeKeyByTarget.get(entry.target);\n\n if (!key) {\n continue;\n }\n\n next[key] = entry.isIntersecting;\n }\n\n edges = next;\n reportEdges(next);\n },\n { root: container, threshold: 0 },\n );\n\n observer.observe(topSentinel);\n observer.observe(bottomSentinel);\n\n return () => {\n observer.disconnect();\n reportEdges(floatingSheetDefaultEdges);\n };\n }, [containerRef, topSentinelRef, bottomSentinelRef, reportEdges]);\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"],"mappings":"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","names":["jsx","className","props","jsx","jsxs","React","jsx","ChevronDownIcon","jsx","jsxs","ChevronDownIcon","React","React","jsx","jsxs","React","React","jsx","jsxs","React","jsx","jsxs","React","jsx","React","jsx","React","jsx"]}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
elevatedSurface,
|
|
4
4
|
flatSurface,
|
|
5
5
|
recessedSurface
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-PPWJK5T3.js";
|
|
7
7
|
|
|
8
8
|
// src/components/ui/card.tsx
|
|
9
9
|
import { cva } from "class-variance-authority";
|
|
@@ -137,4 +137,4 @@ export {
|
|
|
137
137
|
CardContent,
|
|
138
138
|
CardFooter
|
|
139
139
|
};
|
|
140
|
-
//# sourceMappingURL=chunk-
|
|
140
|
+
//# sourceMappingURL=chunk-NKPFIA32.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/locales/context.tsx"],"sourcesContent":["import type { CommandPaletteLabels } from '@/blocks/command-palette';\nimport type {\n DateFilterLabels,\n DateFilterOption,\n} from '@/blocks/date-filter/types';\nimport type { LoginFormLabels } from '@/blocks/login-form/types';\nimport type { SettingsLabels } from '@/blocks/settings-page';\nimport type { TourLabels } from '@/blocks/tour/types';\nimport type { AlertLabels } from '@/components/ui/alert';\nimport type { AppearanceToggleLabels } from '@/components/ui/appearance-toggle';\nimport type { CodeBlockLabels } from '@/components/ui/code-block';\nimport type { ComboboxLabels } from '@/components/ui/combobox';\nimport type { ConfirmDialogLabels } from '@/components/ui/confirm-dialog';\nimport type { CopyButtonLabels } from '@/components/ui/copy-button';\nimport type { DataTableLabels } from '@/components/ui/data-table';\nimport type { DataTableFacetedFilterLabels } from '@/components/ui/data-table-faceted-filter';\nimport type { DatePickerLabels } from '@/components/ui/date-picker';\nimport type { DateRangeFilterLabels } from '@/components/ui/date-range-filter';\nimport type { FloatingSheetLabels } from '@/components/ui/floating-sheet-context';\nimport type { JsonViewerLabels } from '@/components/ui/json-viewer';\nimport type { PasswordInputLabels } from '@/components/ui/password-input';\nimport type { SaveStatusLabels } from '@/components/ui/save-status';\nimport { createContext, useContext, type ReactNode } from 'react';\n\nexport interface UiLabelSections {\n alert: AlertLabels;\n appearanceToggle: AppearanceToggleLabels;\n codeBlock: CodeBlockLabels;\n combobox: ComboboxLabels;\n commandPalette: CommandPaletteLabels;\n confirmDialog: ConfirmDialogLabels;\n copyButton: CopyButtonLabels;\n dataTable: DataTableLabels;\n dataTableFacetedFilter: DataTableFacetedFilterLabels;\n dateFilter: DateFilterLabels;\n datePicker: DatePickerLabels;\n dateRangeFilter: DateRangeFilterLabels;\n floatingSheet: FloatingSheetLabels;\n jsonViewer: JsonViewerLabels;\n loginForm: LoginFormLabels;\n passwordInput: PasswordInputLabels;\n saveStatus: SaveStatusLabels;\n settings: SettingsLabels;\n tour: TourLabels;\n}\n\nexport type UiLabels = {\n [Section in keyof UiLabelSections]?: Partial<UiLabelSections[Section]>;\n} & {\n dateFilterPresets?: DateFilterOption[];\n dateFilterOperators?: DateFilterOption[];\n dateFilterUnits?: DateFilterOption[];\n};\n\nconst EMPTY: UiLabels = {};\n\nconst UiLocaleContext = createContext<UiLabels>(EMPTY);\n\nexport function UiLocaleProvider({\n labels,\n children,\n}: {\n labels: UiLabels;\n children: ReactNode;\n}) {\n return (\n <UiLocaleContext.Provider value={labels}>\n {children}\n </UiLocaleContext.Provider>\n );\n}\n\nexport function useUiLocale(): UiLabels {\n return useContext(UiLocaleContext);\n}\n\nfunction defined(source: object | undefined): Record<string, unknown> {\n if (!source) {\n return {};\n }\n\n return Object.fromEntries(\n Object.entries(source).filter(([, value]) => value !== undefined),\n );\n}\n\nexport function useUiLabels<Section extends keyof UiLabelSections>(\n section: Section,\n defaults: UiLabelSections[Section],\n overrides?: Partial<UiLabelSections[Section]>,\n): UiLabelSections[Section] {\n const locale = useUiLocale();\n\n return {\n ...defaults,\n ...defined(locale[section]),\n ...defined(overrides),\n } as UiLabelSections[Section];\n}\n"],"mappings":";AAsBA,SAAS,eAAe,kBAAkC;
|
|
1
|
+
{"version":3,"sources":["../src/locales/context.tsx"],"sourcesContent":["import type { CommandPaletteLabels } from '@/blocks/command-palette';\nimport type {\n DateFilterLabels,\n DateFilterOption,\n} from '@/blocks/date-filter/types';\nimport type { LoginFormLabels } from '@/blocks/login-form/types';\nimport type { SettingsLabels } from '@/blocks/settings-page';\nimport type { TourLabels } from '@/blocks/tour/types';\nimport type { AlertLabels } from '@/components/ui/alert';\nimport type { AppearanceToggleLabels } from '@/components/ui/appearance-toggle';\nimport type { CodeBlockLabels } from '@/components/ui/code-block';\nimport type { ComboboxLabels } from '@/components/ui/combobox';\nimport type { ConfirmDialogLabels } from '@/components/ui/confirm-dialog';\nimport type { CopyButtonLabels } from '@/components/ui/copy-button';\nimport type { DataTableLabels } from '@/components/ui/data-table';\nimport type { DataTableFacetedFilterLabels } from '@/components/ui/data-table-faceted-filter';\nimport type { DatePickerLabels } from '@/components/ui/date-picker';\nimport type { DateRangeFilterLabels } from '@/components/ui/date-range-filter';\nimport type { FloatingSheetLabels } from '@/components/ui/floating-sheet-context';\nimport type { JsonViewerLabels } from '@/components/ui/json-viewer';\nimport type { PasswordInputLabels } from '@/components/ui/password-input';\nimport type { SaveStatusLabels } from '@/components/ui/save-status';\nimport { createContext, useContext, type ReactNode } from 'react';\n\nexport interface UiLabelSections {\n alert: AlertLabels;\n appearanceToggle: AppearanceToggleLabels;\n codeBlock: CodeBlockLabels;\n combobox: ComboboxLabels;\n commandPalette: CommandPaletteLabels;\n confirmDialog: ConfirmDialogLabels;\n copyButton: CopyButtonLabels;\n dataTable: DataTableLabels;\n dataTableFacetedFilter: DataTableFacetedFilterLabels;\n dateFilter: DateFilterLabels;\n datePicker: DatePickerLabels;\n dateRangeFilter: DateRangeFilterLabels;\n floatingSheet: FloatingSheetLabels;\n jsonViewer: JsonViewerLabels;\n loginForm: LoginFormLabels;\n passwordInput: PasswordInputLabels;\n saveStatus: SaveStatusLabels;\n settings: SettingsLabels;\n tour: TourLabels;\n}\n\nexport type UiLabels = {\n [Section in keyof UiLabelSections]?: Partial<UiLabelSections[Section]>;\n} & {\n dateFilterPresets?: DateFilterOption[];\n dateFilterOperators?: DateFilterOption[];\n dateFilterUnits?: DateFilterOption[];\n};\n\nexport type FullUiLabels = {\n [Section in keyof UiLabelSections]: UiLabelSections[Section];\n} & {\n dateFilterPresets: DateFilterOption[];\n dateFilterOperators: DateFilterOption[];\n dateFilterUnits: DateFilterOption[];\n};\n\nconst EMPTY: UiLabels = {};\n\nconst UiLocaleContext = createContext<UiLabels>(EMPTY);\n\nexport function UiLocaleProvider({\n labels,\n children,\n}: {\n labels: UiLabels;\n children: ReactNode;\n}) {\n return (\n <UiLocaleContext.Provider value={labels}>\n {children}\n </UiLocaleContext.Provider>\n );\n}\n\nexport function useUiLocale(): UiLabels {\n return useContext(UiLocaleContext);\n}\n\nfunction defined(source: object | undefined): Record<string, unknown> {\n if (!source) {\n return {};\n }\n\n return Object.fromEntries(\n Object.entries(source).filter(([, value]) => value !== undefined),\n );\n}\n\nexport function useUiLabels<Section extends keyof UiLabelSections>(\n section: Section,\n defaults: UiLabelSections[Section],\n overrides?: Partial<UiLabelSections[Section]>,\n): UiLabelSections[Section] {\n const locale = useUiLocale();\n\n return {\n ...defaults,\n ...defined(locale[section]),\n ...defined(overrides),\n } as UiLabelSections[Section];\n}\n"],"mappings":";AAsBA,SAAS,eAAe,kBAAkC;AAoDlD;AAZR,IAAM,QAAkB,CAAC;AAEzB,IAAM,kBAAkB,cAAwB,KAAK;AAE9C,SAAS,iBAAiB;AAAA,EAC7B;AAAA,EACA;AACJ,GAGG;AACC,SACI,oBAAC,gBAAgB,UAAhB,EAAyB,OAAO,QAC5B,UACL;AAER;AAEO,SAAS,cAAwB;AACpC,SAAO,WAAW,eAAe;AACrC;AAEA,SAAS,QAAQ,QAAqD;AAClE,MAAI,CAAC,QAAQ;AACT,WAAO,CAAC;AAAA,EACZ;AAEA,SAAO,OAAO;AAAA,IACV,OAAO,QAAQ,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,MAAM,UAAU,MAAS;AAAA,EACpE;AACJ;AAEO,SAAS,YACZ,SACA,UACA,WACwB;AACxB,QAAM,SAAS,YAAY;AAE3B,SAAO;AAAA,IACH,GAAG;AAAA,IACH,GAAG,QAAQ,OAAO,OAAO,CAAC;AAAA,IAC1B,GAAG,QAAQ,SAAS;AAAA,EACxB;AACJ;","names":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useUiLabels
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-OS7YY5R4.js";
|
|
4
4
|
import {
|
|
5
5
|
Button
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-PPWJK5T3.js";
|
|
7
7
|
|
|
8
8
|
// src/components/ui/copy-button.tsx
|
|
9
9
|
import { Check, Copy } from "lucide-react";
|
|
@@ -87,4 +87,4 @@ export {
|
|
|
87
87
|
copyButtonLabels,
|
|
88
88
|
CopyButton
|
|
89
89
|
};
|
|
90
|
-
//# sourceMappingURL=chunk-
|
|
90
|
+
//# sourceMappingURL=chunk-PCYYU332.js.map
|
|
@@ -27,6 +27,9 @@ var fieldSurface = `${glassControl} ${controlFill} ${controlRadius} ${fieldText}
|
|
|
27
27
|
var focusRing = "focus-visible:outline-solid focus-visible:outline-1 focus-visible:outline-offset-0 focus-visible:outline-ring";
|
|
28
28
|
var fieldFocus = `${focusRing} focus-visible:shadow-(--glass-elevation)`;
|
|
29
29
|
var menuHighlight = "outline-hidden focus:bg-accent focus:text-accent-foreground";
|
|
30
|
+
var scrollEdgeTransition = "transition-shadow duration-200 ease-out";
|
|
31
|
+
var scrollShadowFromTop = "shadow-(--scroll-shadow-top)";
|
|
32
|
+
var scrollShadowFromBottom = "shadow-(--scroll-shadow-bottom)";
|
|
30
33
|
function surface(inset) {
|
|
31
34
|
return inset ? `${elevatedSurface} ${recessedSurface}` : elevatedSurface;
|
|
32
35
|
}
|
|
@@ -337,10 +340,13 @@ export {
|
|
|
337
340
|
focusRing,
|
|
338
341
|
fieldFocus,
|
|
339
342
|
menuHighlight,
|
|
343
|
+
scrollEdgeTransition,
|
|
344
|
+
scrollShadowFromTop,
|
|
345
|
+
scrollShadowFromBottom,
|
|
340
346
|
surface,
|
|
341
347
|
spinnerVariants,
|
|
342
348
|
Spinner,
|
|
343
349
|
buttonVariants,
|
|
344
350
|
Button
|
|
345
351
|
};
|
|
346
|
-
//# sourceMappingURL=chunk-
|
|
352
|
+
//# sourceMappingURL=chunk-PPWJK5T3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts","../src/lib/language.ts","../src/components/ui/spinner.tsx","../src/components/ui/button.tsx"],"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 const scrollEdgeTransition = 'transition-shadow duration-200 ease-out';\n\nexport const scrollShadowFromTop = 'shadow-(--scroll-shadow-top)';\n\nexport const scrollShadowFromBottom = 'shadow-(--scroll-shadow-bottom)';\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"],"mappings":"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","names":["cva","jsx","jsxs","cva","mappedSpinnerSize","items","first","iconOnly","hasLeadingVisual","leadingVisual","label"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
cn,
|
|
3
3
|
modalSurface
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-PPWJK5T3.js";
|
|
5
5
|
|
|
6
6
|
// src/components/ui/dialog.tsx
|
|
7
7
|
import { XIcon } from "lucide-react";
|
|
@@ -158,4 +158,4 @@ export {
|
|
|
158
158
|
DialogTitle,
|
|
159
159
|
DialogDescription
|
|
160
160
|
};
|
|
161
|
-
//# sourceMappingURL=chunk-
|
|
161
|
+
//# sourceMappingURL=chunk-QZRSQVCN.js.map
|
|
@@ -32,19 +32,19 @@ import {
|
|
|
32
32
|
SidebarTrigger,
|
|
33
33
|
useIsMobile,
|
|
34
34
|
useSidebar
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-ZQXZ4UGE.js";
|
|
36
36
|
import {
|
|
37
37
|
hrefToString,
|
|
38
38
|
resolveLink
|
|
39
39
|
} from "./chunk-L2H5GIF7.js";
|
|
40
40
|
import {
|
|
41
41
|
Separator
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-53V4J7MC.js";
|
|
43
43
|
import {
|
|
44
44
|
Button,
|
|
45
45
|
cn,
|
|
46
46
|
compactRadius
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-PPWJK5T3.js";
|
|
48
48
|
|
|
49
49
|
// src/hooks/use-collapsed-groups.tsx
|
|
50
50
|
import { useCallback, useState } from "react";
|
|
@@ -602,4 +602,4 @@ export {
|
|
|
602
602
|
Heading,
|
|
603
603
|
SettingsLayout
|
|
604
604
|
};
|
|
605
|
-
//# sourceMappingURL=chunk-
|
|
605
|
+
//# sourceMappingURL=chunk-XLAOE5MV.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Input,
|
|
3
3
|
Separator
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-53V4J7MC.js";
|
|
5
5
|
import {
|
|
6
6
|
Button,
|
|
7
7
|
cn,
|
|
8
8
|
floatingSurface,
|
|
9
9
|
focusRing,
|
|
10
10
|
menuSurface
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-PPWJK5T3.js";
|
|
12
12
|
|
|
13
13
|
// src/components/ui/dropdown-menu.tsx
|
|
14
14
|
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
@@ -1461,4 +1461,4 @@ export {
|
|
|
1461
1461
|
SidebarMenuSubItem,
|
|
1462
1462
|
SidebarMenuSubButton
|
|
1463
1463
|
};
|
|
1464
|
-
//# sourceMappingURL=chunk-
|
|
1464
|
+
//# sourceMappingURL=chunk-ZQXZ4UGE.js.map
|
package/dist/code.js
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
"use client";
|
|
4
4
|
import {
|
|
5
5
|
CopyButton
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-PCYYU332.js";
|
|
7
7
|
import {
|
|
8
8
|
useUiLabels
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-OS7YY5R4.js";
|
|
10
10
|
import {
|
|
11
11
|
Button,
|
|
12
12
|
cn,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
elevatedSurface,
|
|
16
16
|
focusRing,
|
|
17
17
|
nestedSurfaceReset
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-PPWJK5T3.js";
|
|
19
19
|
|
|
20
20
|
// src/components/ui/code.tsx
|
|
21
21
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -403,6 +403,13 @@ type UiLabels = {
|
|
|
403
403
|
dateFilterOperators?: DateFilterOption[];
|
|
404
404
|
dateFilterUnits?: DateFilterOption[];
|
|
405
405
|
};
|
|
406
|
+
type FullUiLabels = {
|
|
407
|
+
[Section in keyof UiLabelSections]: UiLabelSections[Section];
|
|
408
|
+
} & {
|
|
409
|
+
dateFilterPresets: DateFilterOption[];
|
|
410
|
+
dateFilterOperators: DateFilterOption[];
|
|
411
|
+
dateFilterUnits: DateFilterOption[];
|
|
412
|
+
};
|
|
406
413
|
declare function UiLocaleProvider({ labels, children, }: {
|
|
407
414
|
labels: UiLabels;
|
|
408
415
|
children: ReactNode;
|
|
@@ -410,4 +417,4 @@ declare function UiLocaleProvider({ labels, children, }: {
|
|
|
410
417
|
declare function useUiLocale(): UiLabels;
|
|
411
418
|
declare function useUiLabels<Section extends keyof UiLabelSections>(section: Section, defaults: UiLabelSections[Section], overrides?: Partial<UiLabelSections[Section]>): UiLabelSections[Section];
|
|
412
419
|
|
|
413
|
-
export { DatePicker as $, useUiLocale as A, Alert as B, type CopyButtonLabels as C, type DateFilterValue as D, AlertDescription as E, type FloatingSheetLabels as F, type AlertLabels as G, AlertTitle as H, AppearanceToggle as I, type AppearanceToggleLabels as J, type AppearanceToggleProps as K, Combobox as L, type ComboboxLabels as M, type ComboboxOption as N, type ComboboxProps as O, ConfirmDialog as P, type ConfirmDialogLabels as Q, CopyButton as R, SettingsEntry as S, type CopyButtonProps as T, type UiLabelSections as U, DataTable as V, type DataTableFacetedFilterLabels as W, type DataTableFilter as X, type DataTableLabels as Y, type DataTableRowAction as Z, type DataTableServerFilter as _, type DateFilterLabels as a, type DatePickerLabels as a0, type DatePickerProps as a1, DateRangeFilter as a2, type DateRangeFilterLabels as a3, type DateRangeFilterProps as a4, FacetedFilter as a5, PasswordInput as a6, type PasswordInputLabels as a7, RowActionsMenu as a8, SAVED_DURATION as a9, SaveStatus as aa, type SaveStatusLabels as ab, type SaveStatusProps as ac, type SaveStatusState as ad, ServerFacetedFilter as ae, alertDefaultLabels as af, appearanceToggleDefaultLabels as ag, comboboxDefaultLabels as ah, confirmDialogDefaultLabels as ai, copyButtonLabels as aj, dataTableDefaultLabels as ak, dataTableFacetedFilterDefaultLabels as al, datePickerDefaultLabels as am, dateRangeFilterDefaultLabels as an, floatingSheetDefaultLabels as ao, passwordInputDefaultLabels as ap, saveStatusLabels as aq, type CommandPaletteLabels as ar, type DateFilterOption as b, type DateFilterUnit as c, CommandPalette as d, type CommandPaletteGroup as e, type CommandPaletteItem as f, type CommandPaletteProps as g, DEFAULT_LABELS as h, DEFAULT_OPERATORS as i, DEFAULT_PRESETS as j, DEFAULT_UNITS as k, type DateFilterMode as l, type DateFilterOperator as m, type SettingsEntryProps as n, SettingsGroup as o, type SettingsGroupProps as p, type SettingsLabels as q, SettingsPage as r, type SettingsPageProps as s, SettingsSection as t, type SettingsSectionProps as u, type UiLabels as v, UiLocaleProvider as w, settingsLabels as x, useCommandPalette as y, useUiLabels as z };
|
|
420
|
+
export { DatePicker as $, useUiLocale as A, Alert as B, type CopyButtonLabels as C, type DateFilterValue as D, AlertDescription as E, type FloatingSheetLabels as F, type AlertLabels as G, AlertTitle as H, AppearanceToggle as I, type AppearanceToggleLabels as J, type AppearanceToggleProps as K, Combobox as L, type ComboboxLabels as M, type ComboboxOption as N, type ComboboxProps as O, ConfirmDialog as P, type ConfirmDialogLabels as Q, CopyButton as R, SettingsEntry as S, type CopyButtonProps as T, type UiLabelSections as U, DataTable as V, type DataTableFacetedFilterLabels as W, type DataTableFilter as X, type DataTableLabels as Y, type DataTableRowAction as Z, type DataTableServerFilter as _, type DateFilterLabels as a, type DatePickerLabels as a0, type DatePickerProps as a1, DateRangeFilter as a2, type DateRangeFilterLabels as a3, type DateRangeFilterProps as a4, FacetedFilter as a5, PasswordInput as a6, type PasswordInputLabels as a7, RowActionsMenu as a8, SAVED_DURATION as a9, SaveStatus as aa, type SaveStatusLabels as ab, type SaveStatusProps as ac, type SaveStatusState as ad, ServerFacetedFilter as ae, alertDefaultLabels as af, appearanceToggleDefaultLabels as ag, comboboxDefaultLabels as ah, confirmDialogDefaultLabels as ai, copyButtonLabels as aj, dataTableDefaultLabels as ak, dataTableFacetedFilterDefaultLabels as al, datePickerDefaultLabels as am, dateRangeFilterDefaultLabels as an, floatingSheetDefaultLabels as ao, passwordInputDefaultLabels as ap, saveStatusLabels as aq, type CommandPaletteLabels as ar, type FullUiLabels as as, type DateFilterOption as b, type DateFilterUnit as c, CommandPalette as d, type CommandPaletteGroup as e, type CommandPaletteItem as f, type CommandPaletteProps as g, DEFAULT_LABELS as h, DEFAULT_OPERATORS as i, DEFAULT_PRESETS as j, DEFAULT_UNITS as k, type DateFilterMode as l, type DateFilterOperator as m, type SettingsEntryProps as n, SettingsGroup as o, type SettingsGroupProps as p, type SettingsLabels as q, SettingsPage as r, type SettingsPageProps as s, SettingsSection as t, type SettingsSectionProps as u, type UiLabels as v, UiLocaleProvider as w, settingsLabels as x, useCommandPalette as y, useUiLabels as z };
|
package/dist/editor.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"use client";
|
|
4
4
|
import {
|
|
5
5
|
Toggle
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-CAUTXZ4U.js";
|
|
7
7
|
import {
|
|
8
8
|
Dialog,
|
|
9
9
|
DialogContent,
|
|
@@ -11,20 +11,20 @@ import {
|
|
|
11
11
|
DialogFooter,
|
|
12
12
|
DialogHeader,
|
|
13
13
|
DialogTitle
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-QZRSQVCN.js";
|
|
15
15
|
import {
|
|
16
16
|
Label
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-BP2YDMMI.js";
|
|
18
18
|
import {
|
|
19
19
|
Input,
|
|
20
20
|
Separator
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-53V4J7MC.js";
|
|
22
22
|
import {
|
|
23
23
|
Button,
|
|
24
24
|
cn,
|
|
25
25
|
fieldSurface,
|
|
26
26
|
focusRing
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-PPWJK5T3.js";
|
|
28
28
|
|
|
29
29
|
// src/components/ui/editor/content.tsx
|
|
30
30
|
import { EditorContent as TiptapContent } from "@tiptap/react";
|
package/dist/index.d.ts
CHANGED
|
@@ -6,8 +6,8 @@ import { ReactNode } from 'react';
|
|
|
6
6
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
7
7
|
import { S as SlotNameProps, I as IconComponent } from './types-CMZRvMV5.js';
|
|
8
8
|
export { C as Column, a as ColumnDef, F as FilterFn, b as LucideIcon, R as Row, T as TableInstance, U as UrlLike } from './types-CMZRvMV5.js';
|
|
9
|
-
import { F as FloatingSheetLabels } from './context-
|
|
10
|
-
export { B as Alert, E as AlertDescription, G as AlertLabels, H as AlertTitle, I as AppearanceToggle, J as AppearanceToggleLabels, K as AppearanceToggleProps, L as Combobox, M as ComboboxLabels, N as ComboboxOption, O as ComboboxProps, P as ConfirmDialog, Q as ConfirmDialogLabels, R as CopyButton, C as CopyButtonLabels, T as CopyButtonProps, V as DataTable, W as DataTableFacetedFilterLabels, X as DataTableFilter, Y as DataTableLabels, Z as DataTableRowAction, _ as DataTableServerFilter, $ as DatePicker, a0 as DatePickerLabels, a1 as DatePickerProps, a2 as DateRangeFilter, a3 as DateRangeFilterLabels, a4 as DateRangeFilterProps, a5 as FacetedFilter, a6 as PasswordInput, a7 as PasswordInputLabels, a8 as RowActionsMenu, a9 as SAVED_DURATION, aa as SaveStatus, ab as SaveStatusLabels, ac as SaveStatusProps, ad as SaveStatusState, ae as ServerFacetedFilter, U as UiLabelSections, v as UiLabels, w as UiLocaleProvider, af as alertDefaultLabels, ag as appearanceToggleDefaultLabels, ah as comboboxDefaultLabels, ai as confirmDialogDefaultLabels, aj as copyButtonLabels, ak as dataTableDefaultLabels, al as dataTableFacetedFilterDefaultLabels, am as datePickerDefaultLabels, an as dateRangeFilterDefaultLabels, ao as floatingSheetDefaultLabels, ap as passwordInputDefaultLabels, aq as saveStatusLabels, z as useUiLabels, A as useUiLocale } from './context-
|
|
9
|
+
import { F as FloatingSheetLabels } from './context-2wTOwxCk.js';
|
|
10
|
+
export { B as Alert, E as AlertDescription, G as AlertLabels, H as AlertTitle, I as AppearanceToggle, J as AppearanceToggleLabels, K as AppearanceToggleProps, L as Combobox, M as ComboboxLabels, N as ComboboxOption, O as ComboboxProps, P as ConfirmDialog, Q as ConfirmDialogLabels, R as CopyButton, C as CopyButtonLabels, T as CopyButtonProps, V as DataTable, W as DataTableFacetedFilterLabels, X as DataTableFilter, Y as DataTableLabels, Z as DataTableRowAction, _ as DataTableServerFilter, $ as DatePicker, a0 as DatePickerLabels, a1 as DatePickerProps, a2 as DateRangeFilter, a3 as DateRangeFilterLabels, a4 as DateRangeFilterProps, a5 as FacetedFilter, a6 as PasswordInput, a7 as PasswordInputLabels, a8 as RowActionsMenu, a9 as SAVED_DURATION, aa as SaveStatus, ab as SaveStatusLabels, ac as SaveStatusProps, ad as SaveStatusState, ae as ServerFacetedFilter, U as UiLabelSections, v as UiLabels, w as UiLocaleProvider, af as alertDefaultLabels, ag as appearanceToggleDefaultLabels, ah as comboboxDefaultLabels, ai as confirmDialogDefaultLabels, aj as copyButtonLabels, ak as dataTableDefaultLabels, al as dataTableFacetedFilterDefaultLabels, am as datePickerDefaultLabels, an as dateRangeFilterDefaultLabels, ao as floatingSheetDefaultLabels, ap as passwordInputDefaultLabels, aq as saveStatusLabels, z as useUiLabels, A as useUiLocale } from './context-2wTOwxCk.js';
|
|
11
11
|
import { AlertDialog as AlertDialog$1, AspectRatio as AspectRatio$1, Dialog as Dialog$1, ContextMenu as ContextMenu$1, HoverCard as HoverCard$1, Menubar as Menubar$1, Popover as Popover$1, Progress as Progress$1, RadioGroup as RadioGroup$1, Slider as Slider$1 } from 'radix-ui';
|
|
12
12
|
import { B as Button } from './input-B4uEClxB.js';
|
|
13
13
|
export { a as ButtonProps, I as Input, b as buttonVariants } from './input-B4uEClxB.js';
|
|
@@ -321,7 +321,7 @@ declare function FloatingSheet({ open, onOpenChange, title, description, persist
|
|
|
321
321
|
description?: React$1.ReactNode;
|
|
322
322
|
persistent?: boolean;
|
|
323
323
|
} & SlotNameProps): React$1.ReactPortal | null;
|
|
324
|
-
declare function FloatingSheetBody({ className, slotName, ...props }: React$1.ComponentProps<'div'> & SlotNameProps): React$1.JSX.Element;
|
|
324
|
+
declare function FloatingSheetBody({ className, slotName, children, ...props }: React$1.ComponentProps<'div'> & SlotNameProps): React$1.JSX.Element;
|
|
325
325
|
declare function FloatingSheetFooter({ className, slotName, ...props }: React$1.ComponentProps<'div'> & SlotNameProps): React$1.JSX.Element;
|
|
326
326
|
|
|
327
327
|
declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>({ children, watch, getValues, getFieldState, setError, clearErrors, setValue, setValues, trigger, formState, resetField, reset, handleSubmit, unregister, control, register, setFocus, subscribe, }: react_hook_form.FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React$1.JSX.Element;
|
package/dist/index.js
CHANGED
|
@@ -44,15 +44,15 @@ import {
|
|
|
44
44
|
Textarea,
|
|
45
45
|
confirmDialogDefaultLabels,
|
|
46
46
|
floatingSheetDefaultLabels
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-DPLCEU34.js";
|
|
48
48
|
import {
|
|
49
49
|
CopyButton,
|
|
50
50
|
copyButtonLabels
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-PCYYU332.js";
|
|
52
52
|
import {
|
|
53
53
|
Toggle,
|
|
54
54
|
toggleVariants
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-CAUTXZ4U.js";
|
|
56
56
|
import {
|
|
57
57
|
Dialog,
|
|
58
58
|
DialogClose,
|
|
@@ -64,7 +64,7 @@ import {
|
|
|
64
64
|
DialogPortal,
|
|
65
65
|
DialogTitle,
|
|
66
66
|
DialogTrigger
|
|
67
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-QZRSQVCN.js";
|
|
68
68
|
import {
|
|
69
69
|
useAppearance
|
|
70
70
|
} from "./chunk-IQMRJXEO.js";
|
|
@@ -76,7 +76,7 @@ import {
|
|
|
76
76
|
CardHeader,
|
|
77
77
|
CardTitle,
|
|
78
78
|
cardVariants
|
|
79
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-NKPFIA32.js";
|
|
80
80
|
import {
|
|
81
81
|
Alert,
|
|
82
82
|
AlertDescription,
|
|
@@ -92,15 +92,15 @@ import {
|
|
|
92
92
|
alertDefaultLabels,
|
|
93
93
|
passwordInputDefaultLabels,
|
|
94
94
|
useField
|
|
95
|
-
} from "./chunk-
|
|
95
|
+
} from "./chunk-BH3B26DK.js";
|
|
96
96
|
import {
|
|
97
97
|
UiLocaleProvider,
|
|
98
98
|
useUiLabels,
|
|
99
99
|
useUiLocale
|
|
100
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-OS7YY5R4.js";
|
|
101
101
|
import {
|
|
102
102
|
Label
|
|
103
|
-
} from "./chunk-
|
|
103
|
+
} from "./chunk-BP2YDMMI.js";
|
|
104
104
|
import {
|
|
105
105
|
Avatar,
|
|
106
106
|
AvatarFallback,
|
|
@@ -168,11 +168,11 @@ import {
|
|
|
168
168
|
TooltipProvider,
|
|
169
169
|
TooltipTrigger,
|
|
170
170
|
useSidebar
|
|
171
|
-
} from "./chunk-
|
|
171
|
+
} from "./chunk-ZQXZ4UGE.js";
|
|
172
172
|
import {
|
|
173
173
|
Input,
|
|
174
174
|
Separator
|
|
175
|
-
} from "./chunk-
|
|
175
|
+
} from "./chunk-53V4J7MC.js";
|
|
176
176
|
import {
|
|
177
177
|
Button,
|
|
178
178
|
Spinner,
|
|
@@ -194,7 +194,7 @@ import {
|
|
|
194
194
|
recessedSurface,
|
|
195
195
|
spinnerVariants,
|
|
196
196
|
surface
|
|
197
|
-
} from "./chunk-
|
|
197
|
+
} from "./chunk-PPWJK5T3.js";
|
|
198
198
|
|
|
199
199
|
// src/hooks/use-autosave.ts
|
|
200
200
|
import { useCallback, useEffect, useRef, useState } from "react";
|