@akira-io/ui 1.0.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/LICENSE +21 -0
- package/README.md +151 -0
- package/dist/blocks.d.ts +186 -0
- package/dist/blocks.js +921 -0
- package/dist/blocks.js.map +1 -0
- package/dist/chunk-42BJBH56.js +786 -0
- package/dist/chunk-42BJBH56.js.map +1 -0
- package/dist/chunk-5MQWJVM2.js +1291 -0
- package/dist/chunk-5MQWJVM2.js.map +1 -0
- package/dist/chunk-A2SIZOEA.js +413 -0
- package/dist/chunk-A2SIZOEA.js.map +1 -0
- package/dist/chunk-POE7OYET.js +96 -0
- package/dist/chunk-POE7OYET.js.map +1 -0
- package/dist/chunk-UXL33CZ4.js +170 -0
- package/dist/chunk-UXL33CZ4.js.map +1 -0
- package/dist/date-range-filter-QEa8fhUM.d.ts +149 -0
- package/dist/index.d.ts +474 -0
- package/dist/index.js +3094 -0
- package/dist/index.js.map +1 -0
- package/dist/inertia.d.ts +41 -0
- package/dist/inertia.js +86 -0
- package/dist/inertia.js.map +1 -0
- package/dist/language-Bft6rBBt.d.ts +14 -0
- package/dist/locales/pt.d.ts +21 -0
- package/dist/locales/pt.js +79 -0
- package/dist/locales/pt.js.map +1 -0
- package/dist/shells.d.ts +121 -0
- package/dist/shells.js +101 -0
- package/dist/shells.js.map +1 -0
- package/dist/sidebar-BDhG9SUU.d.ts +88 -0
- package/dist/types-Cno1_Ijx.d.ts +40 -0
- package/dist/types-cOieac8G.d.ts +77 -0
- package/dist/types-u1qfmJQi.d.ts +28 -0
- package/package.json +142 -0
- package/theme.css +224 -0
- package/themes/nosferry.css +9 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/confirm-dialog.tsx","../src/hooks/use-confirm-dialog.tsx","../src/components/ui/accordion.tsx","../src/components/ui/alert.tsx","../src/components/ui/alert-dialog.tsx","../src/components/ui/aspect-ratio.tsx","../src/components/ui/badge.tsx","../src/components/ui/card.tsx","../src/components/ui/carousel.tsx","../src/components/ui/chart.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/combobox.tsx","../src/components/ui/context-menu.tsx","../src/components/ui/data-table-faceted-filter.tsx","../src/components/ui/data-table-row-actions.tsx","../src/components/ui/table.tsx","../src/components/ui/data-table.tsx","../src/components/ui/date-range-filter.tsx","../src/components/ui/drawer.tsx","../src/components/ui/field-error.tsx","../src/components/ui/form.tsx","../src/components/ui/hover-card.tsx","../src/components/ui/input-otp.tsx","../src/components/ui/menubar.tsx","../src/components/ui/navigation-menu.tsx","../src/components/ui/pagination.tsx","../src/components/ui/placeholder-pattern.tsx","../src/components/ui/progress.tsx","../src/components/ui/radio-group.tsx","../src/components/ui/resizable.tsx","../src/components/ui/scroll-area.tsx","../src/components/ui/slider.tsx","../src/components/ui/sonner.tsx","../src/components/ui/toggle.tsx","../src/components/ui/toggle-group.tsx"],"names":["jsx","React","jsxs","AlertDialogPrimitive","AspectRatioPrimitive","cva","api","React3","config","useState","ContextMenuPrimitive","CheckIcon","Check","React4","total","useMemo","ChevronRight","X","DrawerPrimitive","React5","Slot","HoverCardPrimitive","React6","MenubarPrimitive","CircleIcon","ChevronRightIcon","useId","ProgressPrimitive","RadioGroupPrimitive","React7","React8","SliderPrimitive","useEffect","Sonner","React9"],"mappings":"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","file":"index.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 { cn } from '@/lib/utils';\nimport { AlertCircle, ChevronRight } from 'lucide-react';\nimport { ReactNode } from 'react';\n\nexport interface ConfirmDialogLabels {\n title: string;\n description: string;\n confirmText: string;\n cancelText: string;\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 onConfirm: () => void;\n onCancel?: () => void;\n}\n\nexport function ConfirmDialog({\n open,\n onOpenChange,\n title = 'Confirm Action',\n description = 'Are you sure you want to continue? This action cannot be undone.',\n confirmText = 'Confirm',\n cancelText = 'Cancel',\n variant = 'destructive',\n processing = false,\n onConfirm,\n onCancel,\n}: ConfirmDialogProps) {\n const handleConfirm = () => {\n if (processing) {\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\" data-slot=\"confirm-dialog\">\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>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\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 {cancelText}\n </Button>\n <Button\n variant={variant}\n disabled={processing}\n onClick={handleConfirm}\n >\n {confirmText}\n <ChevronRight className=\"ml-2 h-5 w-5\" />\n </Button>\n </div>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n","import { ConfirmDialog } from '@/components/ui/confirm-dialog';\nimport { useState, type ReactNode } from 'react';\n\nexport interface UseConfirmDialogOptions {\n title?: string;\n description?: string | ReactNode;\n confirmText?: string;\n cancelText?: string;\n variant?: 'destructive' | 'default';\n}\n\nexport function useConfirmDialog() {\n const [isOpen, setIsOpen] = useState(false);\n const [options, setOptions] = useState<UseConfirmDialogOptions>({});\n const [onConfirmCallback, setOnConfirmCallback] = useState<\n (() => void) | null\n >(null);\n const [onCancelCallback, setOnCancelCallback] = useState<\n (() => void) | null\n >(null);\n\n const confirm = (\n onConfirm: () => void,\n confirmOptions?: UseConfirmDialogOptions,\n onCancel?: () => void,\n ) => {\n setOptions(confirmOptions || {});\n setOnConfirmCallback(() => onConfirm);\n setOnCancelCallback(() => onCancel ?? null);\n setIsOpen(true);\n };\n\n const handleConfirm = () => {\n onConfirmCallback?.();\n setIsOpen(false);\n };\n\n const handleCancel = () => {\n onCancelCallback?.();\n setIsOpen(false);\n };\n\n const ConfirmDialogComponent = () => (\n <ConfirmDialog\n open={isOpen}\n onOpenChange={setIsOpen}\n onConfirm={handleConfirm}\n onCancel={handleCancel}\n {...options}\n />\n );\n\n return { confirm, ConfirmDialog: ConfirmDialogComponent };\n}\n","import * as AccordionPrimitive from '@radix-ui/react-accordion';\nimport { ChevronDown } from 'lucide-react';\nimport * as React from 'react';\n\nimport { elevatedSurface, focusRing } from '@/lib/language';\nimport { cn } from '@/lib/utils';\n\nfunction Accordion({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn(elevatedSurface, 'px-5 bg-card', className)}\n {...props}\n />\n );\n}\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n ref={ref}\n className={cn('border-b border-border last:border-b-0', className)}\n {...props}\n />\n));\nAccordionItem.displayName = 'AccordionItem';\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n ref={ref}\n className={cn(\n `text-base py-4 font-medium rounded-xl data-[state=open]:font-semibold flex flex-1 items-center justify-between transition-all [&[data-state=open]>svg]:rotate-180 ${focusRing}`,\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDown className=\"h-4 w-4 shrink-0 transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n ref={ref}\n className=\"text-md data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden transition-all\"\n {...props}\n >\n <div className={cn('pb-4 pt-0', className)}>{children}</div>\n </AccordionPrimitive.Content>\n));\n\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nexport { Accordion, AccordionContent, AccordionItem, AccordionTrigger };\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';\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/60 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 },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof alertVariants>) {\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\n 'min-h-4 font-medium tracking-tight col-start-2 line-clamp-1',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-description\"\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 />\n );\n}\n\nexport { Alert, AlertDescription, AlertTitle };\n","'use client';\n\nimport { AlertDialog as AlertDialogPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { Button } from '@/components/ui/button';\nimport { modalSurface } from '@/lib/language';\nimport { cn } from '@/lib/utils';\n\nfunction AlertDialog({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Root>) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n}\n\nfunction AlertDialogTrigger({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) {\n return (\n <AlertDialogPrimitive.Trigger\n data-slot=\"alert-dialog-trigger\"\n {...props}\n />\n );\n}\n\nfunction AlertDialogPortal({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return (\n <AlertDialogPrimitive.Portal\n data-slot=\"alert-dialog-portal\"\n {...props}\n />\n );\n}\n\nfunction AlertDialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n 'inset-0 bg-black/60 backdrop-blur-sm data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0 fixed z-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogContent({\n className,\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Content> & {\n size?: 'default' | 'sm';\n}) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(\n `${modalSurface} group/alert-dialog-content gap-4 p-6 md:p-8 data-[size=sm]:max-w-xs 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 data-[size=default]:sm:max-w-lg fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] duration-200`,\n className,\n )}\n {...props}\n />\n </AlertDialogPortal>\n );\n}\n\nfunction AlertDialogHeader({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\n 'gap-1.5 has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr] grid grid-rows-[auto_1fr] place-items-center text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr]',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogFooter({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n 'gap-2 sm:flex-row sm:justify-end flex flex-col-reverse group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\n 'text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogMedia({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-media\"\n className={cn(\n \"mb-2 size-16 sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8 rounded-2xl inline-flex items-center justify-center bg-muted\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogAction({\n className,\n variant = 'default',\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Action> &\n Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>) {\n return (\n <Button variant={variant} size={size} asChild>\n <AlertDialogPrimitive.Action\n data-slot=\"alert-dialog-action\"\n className={cn(className)}\n {...props}\n />\n </Button>\n );\n}\n\nfunction AlertDialogCancel({\n className,\n variant = 'outline',\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Cancel> &\n Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>) {\n return (\n <Button variant={variant} size={size} asChild>\n <AlertDialogPrimitive.Cancel\n data-slot=\"alert-dialog-cancel\"\n className={cn(className)}\n {...props}\n />\n </Button>\n );\n}\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogMedia,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n};\n","import { AspectRatio as AspectRatioPrimitive } from 'radix-ui';\n\nfunction AspectRatio({\n ...props\n}: React.ComponentProps<typeof AspectRatioPrimitive.Root>) {\n return <AspectRatioPrimitive.Root data-slot=\"aspect-ratio\" {...props} />;\n}\n\nexport { AspectRatio };\n","import { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst badgeVariants = cva(\n 'inline-flex items-center justify-center rounded-full border px-2.5 py-1 text-xs font-semibold w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden',\n {\n variants: {\n variant: {\n default:\n 'border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90',\n secondary:\n 'border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90',\n destructive:\n 'border-transparent bg-destructive text-destructive-foreground [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40',\n outline:\n 'text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nfunction Badge({\n className,\n variant,\n asChild = false,\n ...props\n}: React.ComponentProps<'span'> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : 'span';\n\n return (\n <Comp\n data-slot=\"badge\"\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n","import { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport {\n elevatedSurface,\n recessedSurface,\n type SurfaceProps,\n} from '@/lib/language';\nimport { cn } from '@/lib/utils';\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/60',\n subtle: 'border-border/60 bg-card/40',\n solid: 'bg-card',\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 SurfaceProps;\n\nfunction Card({\n className,\n variant,\n interactive,\n padding,\n inset = false,\n ...props\n}: CardProps) {\n return (\n <div\n data-slot=\"card\"\n data-inset={inset || undefined}\n className={cn(\n cardVariants({ variant, interactive, padding }),\n inset && recessedSurface,\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn('gap-1.5 px-6 flex flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn('font-semibold leading-none', className)}\n {...props}\n />\n );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn('px-6', className)}\n {...props}\n />\n );\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn('px-6 flex items-center', className)}\n {...props}\n />\n );\n}\n\nexport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n cardVariants,\n};\n","import useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from 'embla-carousel-react';\nimport { ArrowLeft, ArrowRight } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '@/components/ui/button';\nimport {\n elevatedSurface,\n nestedRadius,\n nestedSurfaceReset,\n} from '@/lib/language';\nimport { cn } from '@/lib/utils';\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: 'horizontal' | 'vertical';\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />');\n }\n\n return context;\n}\n\nfunction Carousel({\n orientation = 'horizontal',\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: React.ComponentProps<'div'> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n },\n plugins,\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return;\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') {\n return;\n }\n\n event.preventDefault();\n\n if (event.key === 'ArrowLeft') {\n scrollPrev();\n return;\n }\n\n scrollNext();\n },\n [scrollPrev, scrollNext],\n );\n\n React.useEffect(() => {\n if (!api || !setApi) return;\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) return;\n onSelect(api);\n api.on('reInit', onSelect);\n api.on('select', onSelect);\n\n return () => {\n api?.off('select', onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation ||\n (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n onKeyDownCapture={handleKeyDown}\n className={cn(\n elevatedSurface,\n nestedSurfaceReset,\n 'p-4 relative bg-card',\n className,\n )}\n role=\"region\"\n aria-roledescription=\"carousel\"\n data-slot=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<'div'>) {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div\n ref={carouselRef}\n className={cn(nestedRadius, 'overflow-hidden')}\n data-slot=\"carousel-content\"\n >\n <div\n className={cn(\n 'flex',\n orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col',\n className,\n )}\n {...props}\n />\n </div>\n );\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<'div'>) {\n const { orientation } = useCarousel();\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn(\n 'min-w-0 shrink-0 grow-0 basis-full',\n orientation === 'horizontal' ? 'pl-4' : 'pt-4',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CarouselPrevious({\n className,\n variant = 'outline',\n size = 'icon',\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n 'size-9 absolute rounded-full',\n orientation === 'horizontal'\n ? '-left-12 top-1/2 -translate-y-1/2'\n : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\n className,\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\nfunction CarouselNext({\n className,\n variant = 'outline',\n size = 'icon',\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n 'size-9 absolute rounded-full',\n orientation === 'horizontal'\n ? '-right-12 top-1/2 -translate-y-1/2'\n : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\n className,\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nexport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n type CarouselApi,\n};\n","'use client';\n\nimport * as React from 'react';\nimport type { TooltipValueType } from 'recharts';\nimport * as RechartsPrimitive from 'recharts';\n\nimport {\n elevatedSurface,\n menuSurface,\n nestedSurfaceReset,\n} from '@/lib/language';\nimport { cn } from '@/lib/utils';\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: '', dark: '.dark' } as const;\n\nconst INITIAL_DIMENSION = { width: 320, height: 200 } as const;\ntype TooltipNameType = number | string;\n\nexport type ChartConfig = Record<\n string,\n {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n )\n>;\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error('useChart must be used within a <ChartContainer />');\n }\n\n return context;\n}\n\nfunction ChartContainer({\n id,\n className,\n children,\n config,\n initialDimension = INITIAL_DIMENSION,\n ...props\n}: React.ComponentProps<'div'> & {\n config: ChartConfig;\n children: React.ComponentProps<\n typeof RechartsPrimitive.ResponsiveContainer\n >['children'];\n initialDimension?: {\n width: number;\n height: number;\n };\n}) {\n const uniqueId = React.useId();\n const chartId = `chart-${id ?? uniqueId.replace(/:/g, '')}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-slot=\"chart\"\n data-chart={chartId}\n className={cn(\n elevatedSurface,\n nestedSurfaceReset,\n 'p-4 bg-card',\n \"aspect-video text-xs flex justify-center [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden\",\n className,\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer\n initialDimension={initialDimension}\n >\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n}\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(\n ([, config]) => config.theme ?? config.color,\n );\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ??\n itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join('\\n')}\n}\n`,\n )\n .join('\\n'),\n }}\n />\n );\n};\n\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\nfunction ChartTooltipContent({\n active,\n payload,\n className,\n indicator = 'dot',\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n}: React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<'div'> & {\n hideLabel?: boolean;\n hideIndicator?: boolean;\n indicator?: 'line' | 'dot' | 'dashed';\n nameKey?: string;\n labelKey?: string;\n } & Omit<\n RechartsPrimitive.DefaultTooltipContentProps<\n TooltipValueType,\n TooltipNameType\n >,\n 'accessibilityLayer'\n >) {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey ?? item?.dataKey ?? item?.name ?? 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === 'string'\n ? (config[label]?.label ?? label)\n : itemConfig?.label;\n\n if (labelFormatter) {\n return (\n <div className={cn('font-medium', labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n );\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn('font-medium', labelClassName)}>{value}</div>;\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== 'dot';\n\n return (\n <div\n className={cn(\n `${menuSurface} gap-1.5 px-3 py-2 text-xs grid min-w-[8rem] items-start`,\n className,\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"gap-1.5 grid\">\n {payload\n .filter((item) => item.type !== 'none')\n .map((item, index) => {\n const key = `${nameKey ?? item.name ?? item.dataKey ?? 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(\n config,\n item,\n key,\n );\n const indicatorColor =\n color ?? item.payload?.fill ?? item.color;\n\n return (\n <div\n key={index}\n className={cn(\n 'gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 flex w-full flex-wrap items-stretch [&>svg]:text-muted-foreground',\n indicator === 'dot' && 'items-center',\n )}\n >\n {formatter &&\n item?.value !== undefined &&\n item.name ? (\n formatter(\n item.value,\n item.name,\n item,\n index,\n item.payload,\n )\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n 'shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)',\n {\n 'h-2.5 w-2.5':\n indicator ===\n 'dot',\n 'w-1':\n indicator ===\n 'line',\n 'w-0 border-[1.5px] border-dashed bg-transparent':\n indicator ===\n 'dashed',\n 'my-0.5':\n nestLabel &&\n indicator ===\n 'dashed',\n },\n )}\n style={\n {\n '--color-bg':\n indicatorColor,\n '--color-border':\n indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n 'flex flex-1 justify-between leading-none',\n nestLabel\n ? 'items-end'\n : 'items-center',\n )}\n >\n <div className=\"gap-1.5 grid\">\n {nestLabel\n ? tooltipLabel\n : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label ??\n item.name}\n </span>\n </div>\n {item.value != null && (\n <span className=\"font-mono font-medium text-foreground tabular-nums\">\n {typeof item.value ===\n 'number'\n ? item.value.toLocaleString()\n : String(item.value)}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\nconst ChartLegend = RechartsPrimitive.Legend;\n\nfunction ChartLegendContent({\n className,\n hideIcon = false,\n payload,\n verticalAlign = 'bottom',\n nameKey,\n}: React.ComponentProps<'div'> & {\n hideIcon?: boolean;\n nameKey?: string;\n} & RechartsPrimitive.DefaultLegendContentProps) {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n className={cn(\n 'gap-4 flex items-center justify-center',\n verticalAlign === 'top' ? 'pb-3' : 'pt-3',\n className,\n )}\n >\n {payload\n .filter((item) => item.type !== 'none')\n .map((item, index) => {\n const key = `${nameKey ?? item.dataKey ?? 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(\n config,\n item,\n key,\n );\n\n return (\n <div\n key={index}\n className={cn(\n 'gap-1.5 [&>svg]:h-3 [&>svg]:w-3 flex items-center [&>svg]:text-muted-foreground',\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n}\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string,\n) {\n if (typeof payload !== 'object' || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n 'payload' in payload &&\n typeof payload.payload === 'object' &&\n payload.payload !== null\n ? payload.payload\n : undefined;\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === 'string'\n ) {\n const configLabelKey = payload[key as keyof typeof payload] as string;\n return configLabelKey in config ? config[configLabelKey] : config[key];\n }\n\n if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === 'string'\n ) {\n const configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string;\n return configLabelKey in config ? config[configLabelKey] : config[key];\n }\n\n return config[key];\n}\n\nexport {\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n ChartTooltip,\n ChartTooltipContent,\n};\n","import * as CheckboxPrimitive from '@radix-ui/react-checkbox';\nimport { CheckIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { focusRing } from '@/lib/language';\nimport { cn } from '@/lib/utils';\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n `peer size-5 shadow-xs shrink-0 rounded-md border border-border transition-all disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground ${focusRing}`,\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"flex items-center justify-center text-current transition-none\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox };\n","import { Button } from '@/components/ui/button';\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/ui/command';\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from '@/components/ui/popover';\nimport { cn } from '@/lib/utils';\nimport { Check, ChevronsUpDown } from 'lucide-react';\nimport { useState } from 'react';\n\nexport interface ComboboxOption {\n value: string;\n label: string;\n}\n\nexport interface ComboboxLabels {\n placeholder: string;\n searchPlaceholder: string;\n emptyText: string;\n}\n\ninterface ComboboxProps {\n id?: string;\n value: string;\n options: ComboboxOption[];\n onChange: (value: string) => void;\n placeholder?: ComboboxLabels['placeholder'];\n searchPlaceholder?: ComboboxLabels['searchPlaceholder'];\n emptyText?: ComboboxLabels['emptyText'];\n disabled?: boolean;\n invalid?: boolean;\n}\n\nexport function Combobox({\n id,\n value,\n options,\n onChange,\n placeholder = 'Select an option',\n searchPlaceholder = 'Search...',\n emptyText = 'No results.',\n disabled = false,\n invalid = false,\n}: ComboboxProps) {\n const [open, setOpen] = useState(false);\n const selected = options.find((option) => option.value === value);\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n data-slot=\"combobox\"\n id={id}\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n className={cn(\n 'h-11 rounded-2xl w-full justify-between border-border bg-muted/40 hover:bg-muted disabled:cursor-not-allowed disabled:opacity-50',\n !selected && 'text-muted-foreground',\n invalid && 'border-destructive ring-destructive',\n )}\n >\n {selected ? selected.label : placeholder}\n <ChevronsUpDown className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent\n className=\"p-0 w-[var(--radix-popover-trigger-width)]\"\n align=\"start\"\n >\n <Command>\n <CommandInput\n placeholder={searchPlaceholder}\n className=\"h-11\"\n />\n <CommandList>\n <CommandEmpty>{emptyText}</CommandEmpty>\n <CommandGroup>\n {options.map((option) => (\n <CommandItem\n key={option.value}\n value={option.label}\n onSelect={() => {\n onChange(option.value);\n setOpen(false);\n }}\n className=\"h-11 rounded-xl\"\n >\n <Check\n className={cn(\n 'mr-2 h-4 w-4',\n selected?.value === option.value\n ? 'opacity-100'\n : 'opacity-0',\n )}\n />\n {option.label}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n );\n}\n","'use client';\n\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react';\nimport { ContextMenu as ContextMenuPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { menuSurface } from '@/lib/language';\nimport { cn } from '@/lib/utils';\n\nfunction ContextMenu({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Root>) {\n return <ContextMenuPrimitive.Root data-slot=\"context-menu\" {...props} />;\n}\n\nfunction ContextMenuTrigger({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Trigger>) {\n return (\n <ContextMenuPrimitive.Trigger\n data-slot=\"context-menu-trigger\"\n {...props}\n />\n );\n}\n\nfunction ContextMenuGroup({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Group>) {\n return (\n <ContextMenuPrimitive.Group data-slot=\"context-menu-group\" {...props} />\n );\n}\n\nfunction ContextMenuPortal({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Portal>) {\n return (\n <ContextMenuPrimitive.Portal\n data-slot=\"context-menu-portal\"\n {...props}\n />\n );\n}\n\nfunction ContextMenuSub({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Sub>) {\n return <ContextMenuPrimitive.Sub data-slot=\"context-menu-sub\" {...props} />;\n}\n\nfunction ContextMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.RadioGroup>) {\n return (\n <ContextMenuPrimitive.RadioGroup\n data-slot=\"context-menu-radio-group\"\n {...props}\n />\n );\n}\n\nfunction ContextMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <ContextMenuPrimitive.SubTrigger\n data-slot=\"context-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"px-2 py-1.5 text-sm data-[inset]:pl-8 [&_svg:not([class*='size-'])]:size-4 rounded-xl flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-muted-foreground\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </ContextMenuPrimitive.SubTrigger>\n );\n}\n\nfunction ContextMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.SubContent>) {\n return (\n <ContextMenuPrimitive.SubContent\n data-slot=\"context-menu-sub-content\"\n className={cn(\n `${menuSurface} p-1.5 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 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden`,\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ContextMenuContent({\n className,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Content>) {\n return (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n data-slot=\"context-menu-content\"\n className={cn(\n `${menuSurface} p-1.5 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 z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto`,\n className,\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n );\n}\n\nfunction ContextMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: 'default' | 'destructive';\n}) {\n return (\n <ContextMenuPrimitive.Item\n data-slot=\"context-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"gap-2 px-2 py-1.5 text-sm data-[inset]:pl-8 [&_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 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/20 [&_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 />\n );\n}\n\nfunction ContextMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.CheckboxItem>) {\n return (\n <ContextMenuPrimitive.CheckboxItem\n data-slot=\"context-menu-checkbox-item\"\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 >\n <span className=\"left-2 size-3.5 pointer-events-none absolute flex items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction ContextMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.RadioItem>) {\n return (\n <ContextMenuPrimitive.RadioItem\n data-slot=\"context-menu-radio-item\"\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 >\n <span className=\"left-2 size-3.5 pointer-events-none absolute flex items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n );\n}\n\nfunction ContextMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <ContextMenuPrimitive.Label\n data-slot=\"context-menu-label\"\n data-inset={inset}\n className={cn(\n 'px-2 py-1.5 text-sm font-medium data-[inset]:pl-8 text-foreground',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ContextMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Separator>) {\n return (\n <ContextMenuPrimitive.Separator\n data-slot=\"context-menu-separator\"\n className={cn('-mx-1 my-1 h-px bg-border', className)}\n {...props}\n />\n );\n}\n\nfunction ContextMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"context-menu-shortcut\"\n className={cn(\n 'text-xs tracking-widest ml-auto text-muted-foreground',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n ContextMenu,\n ContextMenuCheckboxItem,\n ContextMenuContent,\n ContextMenuGroup,\n ContextMenuItem,\n ContextMenuLabel,\n ContextMenuPortal,\n ContextMenuRadioGroup,\n ContextMenuRadioItem,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuTrigger,\n};\n","import { Badge } from '@/components/ui/badge';\nimport { Button } from '@/components/ui/button';\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandList,\n} from '@/components/ui/command';\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from '@/components/ui/popover';\nimport { cn } from '@/lib/utils';\nimport { Column } from '@tanstack/react-table';\nimport { Check, PlusCircle } from 'lucide-react';\n\nexport interface DataTableFilter {\n columnId: string;\n label: string;\n options: { label: string; value: string }[];\n}\n\nexport interface DataTableServerFilter {\n paramKey: string;\n label: string;\n options: { label: string; value: string }[];\n}\n\nexport interface DataTableFacetedFilterLabels {\n noOptionsLabel: string;\n}\n\nfunction FilterPopover({\n label,\n options,\n selected,\n onToggle,\n width,\n noOptionsLabel = 'No options.',\n}: {\n label: string;\n options: { label: string; value: string }[];\n selected: Set<string>;\n onToggle: (value: string) => void;\n width: string;\n noOptionsLabel?: DataTableFacetedFilterLabels['noOptionsLabel'];\n}) {\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n data-slot=\"data-table-faceted-filter\"\n className=\"h-11 rounded-2xl border-dashed border-border\"\n >\n <PlusCircle className=\"mr-2 size-4\" />\n {label}\n {selected.size > 0 && (\n <Badge\n variant=\"secondary\"\n className=\"ml-2 px-2 rounded-full tabular-nums\"\n >\n {selected.size}\n </Badge>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className={cn('p-0', width)} align=\"start\">\n <Command>\n <CommandList>\n <CommandEmpty>{noOptionsLabel}</CommandEmpty>\n <CommandGroup>\n {options.map((option) => (\n <CommandItem\n key={option.value}\n value={option.label}\n onSelect={() => onToggle(option.value)}\n className=\"h-10 rounded-xl\"\n >\n <div\n className={cn(\n 'mr-2 size-4 flex items-center justify-center rounded-md border border-border',\n selected.has(option.value)\n ? 'bg-primary text-primary-foreground'\n : 'opacity-50',\n )}\n >\n {selected.has(option.value) && (\n <Check className=\"size-3\" />\n )}\n </div>\n {option.label}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n );\n}\n\nexport function FacetedFilter<TData>({\n column,\n filter,\n noOptionsLabel,\n}: {\n column?: Column<TData, unknown>;\n filter: DataTableFilter;\n noOptionsLabel?: DataTableFacetedFilterLabels['noOptionsLabel'];\n}) {\n const selected = new Set((column?.getFilterValue() as string[]) ?? []);\n\n const toggle = (value: string) => {\n const next = new Set(selected);\n if (next.has(value)) {\n next.delete(value);\n } else {\n next.add(value);\n }\n const arr = Array.from(next);\n column?.setFilterValue(arr.length ? arr : undefined);\n };\n\n return (\n <FilterPopover\n label={filter.label}\n options={filter.options}\n selected={selected}\n onToggle={toggle}\n width=\"w-[220px]\"\n noOptionsLabel={noOptionsLabel}\n />\n );\n}\n\nexport function ServerFacetedFilter({\n filter,\n selected,\n onChange,\n noOptionsLabel,\n}: {\n filter: DataTableServerFilter;\n selected: string[];\n onChange: (values: string[]) => void;\n noOptionsLabel?: DataTableFacetedFilterLabels['noOptionsLabel'];\n}) {\n const selectedSet = new Set(selected);\n\n const toggle = (value: string) => {\n const next = new Set(selectedSet);\n if (next.has(value)) {\n next.delete(value);\n } else {\n next.add(value);\n }\n onChange(Array.from(next));\n };\n\n return (\n <FilterPopover\n label={filter.label}\n options={filter.options}\n selected={selectedSet}\n onToggle={toggle}\n width=\"w-[240px]\"\n noOptionsLabel={noOptionsLabel}\n />\n );\n}\n","import { Button } from '@/components/ui/button';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport type { IconComponent } from '@/types';\nimport { MoreVertical } from 'lucide-react';\n\nexport interface DataTableRowAction<TData> {\n label: string;\n icon?: IconComponent;\n variant?: 'default' | 'destructive';\n onClick: (row: TData) => void;\n}\n\nexport function RowActionsMenu<TData>({\n row,\n actions,\n}: {\n row: TData;\n actions: DataTableRowAction<TData>[];\n}) {\n return (\n <div\n className=\"flex justify-end\"\n data-slot=\"data-table-row-actions\"\n onClick={(event) => event.stopPropagation()}\n >\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-8 rounded-xl text-muted-foreground hover:text-foreground\"\n >\n <MoreVertical className=\"size-4\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"rounded-2xl\">\n {actions.map((action) => (\n <DropdownMenuItem\n key={action.label}\n onClick={() => action.onClick(row)}\n className={\n action.variant === 'destructive'\n ? 'rounded-xl text-destructive focus:text-destructive'\n : 'rounded-xl'\n }\n >\n {action.icon && <action.icon className=\"size-4\" />}\n {action.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n );\n}\n","import {\n elevatedSurface,\n nestedEdgeToEdge,\n nestedRadius,\n nestedSurfaceReset,\n} from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport * as React from 'react';\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div\n data-slot=\"table-container\"\n className={cn(\n elevatedSurface,\n nestedSurfaceReset,\n nestedEdgeToEdge,\n 'relative w-full overflow-hidden bg-card',\n )}\n >\n <div\n className={cn(\n nestedRadius,\n nestedSurfaceReset,\n nestedEdgeToEdge,\n 'w-full overflow-x-auto',\n )}\n >\n <table\n ref={ref}\n className={cn('text-sm w-full caption-bottom', className)}\n {...props}\n />\n </div>\n </div>\n));\nTable.displayName = 'Table';\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />\n));\nTableHeader.displayName = 'TableHeader';\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n));\nTableBody.displayName = 'TableBody';\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n 'font-medium border-t bg-muted/50 [&>tr]:last:border-b-0',\n className,\n )}\n {...props}\n />\n));\nTableFooter.displayName = 'TableFooter';\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted',\n className,\n )}\n {...props}\n />\n));\nTableRow.displayName = 'TableRow';\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-11 px-4 text-xs font-medium tracking-wider [&:has([role=checkbox])]:pr-0 text-left align-middle text-muted-foreground uppercase',\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = 'TableHead';\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n 'p-4 [&:has([role=checkbox])]:pr-0 align-middle',\n className,\n )}\n {...props}\n />\n));\nTableCell.displayName = 'TableCell';\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\n 'mt-4 px-4 pb-4 text-sm text-muted-foreground',\n className,\n )}\n {...props}\n />\n));\nTableCaption.displayName = 'TableCaption';\n\nexport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n};\n","import { Button } from '@/components/ui/button';\nimport type {\n DataTableFilter,\n DataTableServerFilter,\n} from '@/components/ui/data-table-faceted-filter';\nimport {\n FacetedFilter,\n ServerFacetedFilter,\n} from '@/components/ui/data-table-faceted-filter';\nimport {\n type DataTableRowAction,\n RowActionsMenu,\n} from '@/components/ui/data-table-row-actions';\nimport { Input } from '@/components/ui/input';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n} from '@/components/ui/select';\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from '@/components/ui/table';\nimport { elevatedSurface } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport {\n ColumnDef,\n ColumnFiltersState,\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type Row,\n SortingState,\n useReactTable,\n} from '@tanstack/react-table';\nimport {\n ArrowUpDown,\n ChevronLeft,\n ChevronRight,\n Plus,\n Search,\n X,\n} from 'lucide-react';\nimport { type ReactNode, useMemo, useState } from 'react';\n\nexport type {\n DataTableFilter,\n DataTableServerFilter,\n} from '@/components/ui/data-table-faceted-filter';\nexport type { DataTableRowAction } from '@/components/ui/data-table-row-actions';\n\nfunction pageRange(current: number, last: number): (number | 'ellipsis')[] {\n if (last <= 7) {\n return Array.from({ length: last }, (_, i) => i + 1);\n }\n const pages: (number | 'ellipsis')[] = [1];\n const left = Math.max(2, current - 1);\n const right = Math.min(last - 1, current + 1);\n if (left > 2) pages.push('ellipsis');\n for (let i = left; i <= right; i++) pages.push(i);\n if (right < last - 1) pages.push('ellipsis');\n pages.push(last);\n return pages;\n}\n\nexport interface DataTableLabels {\n searchPlaceholder: string;\n emptyLabel: string;\n createLabel: string;\n clearFiltersLabel: string;\n paginationLabel: (page: number, pages: number) => string;\n noOptionsLabel: string;\n totalLabel: (total: number) => string;\n}\n\ninterface DataTableProps<TData, TValue> {\n columns: ColumnDef<TData, TValue>[];\n data: TData[];\n searchPlaceholder?: DataTableLabels['searchPlaceholder'];\n emptyLabel?: DataTableLabels['emptyLabel'];\n createLabel?: DataTableLabels['createLabel'];\n clearFiltersLabel?: DataTableLabels['clearFiltersLabel'];\n paginationLabel?: DataTableLabels['paginationLabel'];\n noOptionsLabel?: DataTableLabels['noOptionsLabel'];\n totalLabel?: DataTableLabels['totalLabel'];\n searchKey?: string;\n pageSize?: number;\n pageSizeOptions?: number[];\n onPageSizeChange?: (size: number) => void;\n filters?: DataTableFilter[];\n serverFilters?: DataTableServerFilter[];\n filterValues?: Record<string, string[]>;\n onFilterChange?: (paramKey: string, values: string[]) => void;\n canClearFilters?: boolean;\n onClearFilters?: () => void;\n toolbarExtra?: ReactNode;\n toolbarAction?: ReactNode;\n renderRow?: (row: Row<TData>) => ReactNode;\n onRowClick?: (row: TData) => void;\n isRowActive?: (row: TData) => boolean;\n rowActions?: DataTableRowAction<TData>[];\n searchValue?: string;\n onSearchChange?: (value: string) => void;\n manualPagination?: boolean;\n pageCount?: number;\n pageIndex?: number;\n total?: number;\n onPageChange?: (pageIndex: number) => void;\n onCreate?: () => void;\n}\n\nexport function DataTable<TData, TValue>({\n columns,\n data,\n searchKey,\n searchPlaceholder = 'Search...',\n pageSize = 10,\n pageSizeOptions = [10, 25, 50, 100],\n onPageSizeChange,\n filters,\n serverFilters,\n filterValues,\n onFilterChange,\n canClearFilters,\n onClearFilters,\n toolbarExtra,\n toolbarAction,\n emptyLabel = 'No results.',\n clearFiltersLabel = 'Clear filters',\n paginationLabel = (page, pages) => `Page ${page} of ${pages}`,\n noOptionsLabel = 'No options.',\n totalLabel = (total) => `${total.toLocaleString('en-US')} records`,\n renderRow,\n onRowClick,\n isRowActive,\n rowActions,\n searchValue,\n onSearchChange,\n manualPagination = false,\n pageCount,\n pageIndex = 0,\n total,\n onPageChange,\n onCreate,\n createLabel = 'New',\n}: DataTableProps<TData, TValue>) {\n const [sorting, setSorting] = useState<SortingState>([]);\n const [globalFilter, setGlobalFilter] = useState('');\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n\n const serverSearch = onSearchChange !== undefined;\n\n const tableColumns = useMemo<ColumnDef<TData, TValue>[]>(() => {\n if (!rowActions || rowActions.length === 0) {\n return columns;\n }\n\n return [\n ...columns,\n {\n id: '__actions',\n header: '',\n enableSorting: false,\n cell: ({ row }) => (\n <RowActionsMenu row={row.original} actions={rowActions} />\n ),\n },\n ];\n }, [columns, rowActions]);\n\n const table = useReactTable({\n data,\n columns: tableColumns,\n state: {\n sorting,\n columnFilters,\n ...(serverSearch ? {} : { globalFilter }),\n },\n onSortingChange: setSorting,\n onGlobalFilterChange: serverSearch ? undefined : setGlobalFilter,\n onColumnFiltersChange: setColumnFilters,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n ...(manualPagination\n ? { manualPagination: true, pageCount: pageCount ?? -1 }\n : { getPaginationRowModel: getPaginationRowModel() }),\n initialState: { pagination: { pageSize } },\n });\n\n const hasServerSelection =\n serverFilters?.some(\n (filter) => (filterValues?.[filter.paramKey]?.length ?? 0) > 0,\n ) ?? false;\n const hasToolbar =\n searchKey !== undefined ||\n (filters && filters.length > 0) ||\n (serverFilters && serverFilters.length > 0) ||\n onCreate !== undefined ||\n toolbarExtra !== undefined ||\n toolbarAction !== undefined;\n const showFooter = manualPagination || table.getPageCount() > 1;\n const currentPage = manualPagination\n ? pageIndex + 1\n : table.getState().pagination.pageIndex + 1;\n const lastPage = manualPagination\n ? Math.max(1, pageCount ?? 1)\n : table.getPageCount();\n const canPrev = manualPagination\n ? pageIndex > 0\n : table.getCanPreviousPage();\n const canNext = manualPagination\n ? pageIndex + 1 < (pageCount ?? 1)\n : table.getCanNextPage();\n const prev = () =>\n manualPagination ? onPageChange?.(pageIndex - 1) : table.previousPage();\n const next = () =>\n manualPagination ? onPageChange?.(pageIndex + 1) : table.nextPage();\n const goTo = (page: number) =>\n manualPagination\n ? onPageChange?.(page - 1)\n : table.setPageIndex(page - 1);\n\n const activePageSize = manualPagination\n ? pageSize\n : table.getState().pagination.pageSize;\n const changePageSize = (size: number) =>\n onPageSizeChange ? onPageSizeChange(size) : table.setPageSize(size);\n const sizeChoices = [...new Set([...pageSizeOptions, activePageSize])].sort(\n (a, b) => a - b,\n );\n\n return (\n <div\n data-slot=\"data-table\"\n className={cn(elevatedSurface, 'space-y-4 p-5 bg-card')}\n >\n {hasToolbar && (\n <div className=\"gap-2 flex flex-wrap items-center\">\n {searchKey !== undefined && (\n <div className=\"relative min-w-[200px] flex-1\">\n <Search className=\"left-4 size-4 pointer-events-none absolute top-1/2 z-10 -translate-y-1/2 text-muted-foreground\" />\n <Input\n value={\n serverSearch\n ? (searchValue ?? '')\n : globalFilter\n }\n onChange={(e) =>\n serverSearch\n ? onSearchChange?.(e.target.value)\n : setGlobalFilter(e.target.value)\n }\n placeholder={searchPlaceholder}\n className=\"h-11 rounded-2xl pl-11 font-medium focus:shadow-lg border-none bg-muted/50 focus:bg-muted\"\n />\n </div>\n )}\n {filters?.map((filter) => (\n <FacetedFilter\n key={filter.columnId}\n column={table.getColumn(filter.columnId)}\n filter={filter}\n noOptionsLabel={noOptionsLabel}\n />\n ))}\n {serverFilters?.map((filter) => (\n <ServerFacetedFilter\n key={filter.paramKey}\n filter={filter}\n selected={filterValues?.[filter.paramKey] ?? []}\n onChange={(values) =>\n onFilterChange?.(filter.paramKey, values)\n }\n noOptionsLabel={noOptionsLabel}\n />\n ))}\n {toolbarExtra}\n {(columnFilters.length > 0 ||\n hasServerSelection ||\n (canClearFilters && onClearFilters)) && (\n <Button\n variant=\"ghost\"\n onClick={() => {\n if (columnFilters.length > 0) {\n table.resetColumnFilters();\n }\n if (hasServerSelection || canClearFilters) {\n onClearFilters?.();\n }\n }}\n className=\"h-11 rounded-2xl\"\n >\n {clearFiltersLabel}\n <X className=\"ml-1 size-4\" />\n </Button>\n )}\n {onCreate && (\n <Button\n onClick={onCreate}\n aria-label={createLabel}\n size=\"icon\"\n className=\"size-11 rounded-2xl shrink-0 cursor-pointer bg-primary text-primary-foreground hover:bg-primary/90\"\n >\n <Plus className=\"size-5\" />\n </Button>\n )}\n {toolbarAction && (\n <div className=\"ml-auto\">{toolbarAction}</div>\n )}\n </div>\n )}\n\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow\n key={headerGroup.id}\n className=\"hover:bg-transparent\"\n >\n {headerGroup.headers.map((header) => (\n <TableHead\n key={header.id}\n className=\"h-11 px-4 font-medium tracking-wider text-[11px] text-muted-foreground uppercase\"\n >\n {header.isPlaceholder ? null : header.column.getCanSort() ? (\n <button\n type=\"button\"\n onClick={header.column.getToggleSortingHandler()}\n className=\"gap-1 inline-flex items-center transition-colors hover:text-foreground\"\n >\n {flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n <ArrowUpDown className=\"size-3 opacity-50\" />\n </button>\n ) : (\n flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )\n )}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows.length ? (\n table.getRowModel().rows.map((row) =>\n renderRow ? (\n renderRow(row)\n ) : (\n <TableRow\n key={row.id}\n onClick={\n onRowClick\n ? () => onRowClick(row.original)\n : undefined\n }\n data-active={\n isRowActive?.(row.original) || undefined\n }\n className={cn(\n 'border-border transition-colors hover:bg-muted/50',\n onRowClick && 'cursor-pointer',\n 'data-[active=true]:bg-primary/5',\n )}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell\n key={cell.id}\n className=\"px-4 py-3\"\n >\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n )}\n </TableCell>\n ))}\n </TableRow>\n ),\n )\n ) : (\n <TableRow>\n <TableCell\n colSpan={tableColumns.length}\n className=\"h-24 text-sm font-medium text-center text-muted-foreground italic\"\n >\n {emptyLabel}\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n\n {showFooter && (\n <div className=\"gap-3 pt-4 flex flex-wrap items-center justify-between border-t border-border\">\n <div className=\"gap-3 flex items-center\">\n <Select\n value={String(activePageSize)}\n onValueChange={(value) =>\n changePageSize(Number(value))\n }\n >\n <SelectTrigger className=\"h-9 rounded-xl w-[74px]\">\n <span>{activePageSize}</span>\n </SelectTrigger>\n <SelectContent className=\"rounded-xl\">\n {sizeChoices.map((size) => (\n <SelectItem\n key={size}\n value={String(size)}\n className=\"font-medium\"\n >\n {size}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <span className=\"text-xs font-medium text-muted-foreground\">\n {paginationLabel(currentPage, lastPage)}\n {total !== undefined && ` · ${totalLabel(total)}`}\n </span>\n </div>\n <div className=\"gap-1.5 flex items-center\">\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"size-9 rounded-xl\"\n onClick={prev}\n disabled={!canPrev}\n >\n <ChevronLeft className=\"size-4\" />\n </Button>\n {pageRange(currentPage, lastPage).map((page, index) =>\n page === 'ellipsis' ? (\n <span\n key={`ellipsis-${index}`}\n className=\"px-1 text-sm font-medium text-muted-foreground\"\n >\n …\n </span>\n ) : (\n <Button\n key={page}\n variant=\"outline\"\n onClick={() => goTo(page)}\n className={cn(\n 'h-9 min-w-9 rounded-xl px-2.5 tabular-nums',\n page === currentPage &&\n 'border-primary bg-primary text-primary-foreground hover:bg-primary/90',\n )}\n >\n {page}\n </Button>\n ),\n )}\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"size-9 rounded-xl\"\n onClick={next}\n disabled={!canNext}\n >\n <ChevronRight className=\"size-4\" />\n </Button>\n </div>\n </div>\n )}\n </div>\n );\n}\n","import { Button } from '@/components/ui/button';\nimport { Calendar } from '@/components/ui/calendar';\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from '@/components/ui/popover';\nimport { format } from 'date-fns';\nimport { CalendarRange, X } from 'lucide-react';\nimport { useState } from 'react';\nimport { type DateRange } from 'react-day-picker';\n\nfunction parse(value?: string): Date | undefined {\n return value ? new Date(`${value}T00:00:00`) : undefined;\n}\n\nexport interface DateRangeFilterLabels {\n emptyLabel: string;\n dateFormat: string;\n}\n\nexport function DateRangeFilter({\n from,\n to,\n onChange,\n emptyLabel = 'Date range',\n dateFormat = 'dd MMM yy',\n}: {\n from?: string;\n to?: string;\n onChange: (range: { from?: string; to?: string }) => void;\n} & Partial<DateRangeFilterLabels>) {\n const [open, setOpen] = useState(false);\n const selected: DateRange | undefined =\n from || to ? { from: parse(from), to: parse(to) } : undefined;\n const label = from\n ? to && to !== from\n ? `${format(parse(from)!, dateFormat)} - ${format(parse(to)!, dateFormat)}`\n : format(parse(from)!, dateFormat)\n : emptyLabel;\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n data-slot=\"date-range-filter\"\n className=\"h-11 rounded-2xl cursor-pointer border-dashed border-border\"\n >\n <CalendarRange className=\"mr-2 size-4\" />\n {label}\n {(from || to) && (\n <span\n role=\"button\"\n tabIndex={0}\n onClick={(event) => {\n event.stopPropagation();\n onChange({ from: undefined, to: undefined });\n }}\n className=\"ml-2 inline-flex\"\n >\n <X className=\"size-3.5 opacity-60 hover:opacity-100\" />\n </span>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent\n className=\"p-2 w-auto\"\n align=\"end\"\n sideOffset={4}\n collisionPadding={16}\n >\n <Calendar\n mode=\"range\"\n numberOfMonths={2}\n defaultMonth={parse(from)}\n selected={selected}\n onSelect={(range) =>\n onChange({\n from: range?.from\n ? format(range.from, 'yyyy-MM-dd')\n : undefined,\n to: range?.to\n ? format(range.to, 'yyyy-MM-dd')\n : undefined,\n })\n }\n className=\"rounded-2xl bg-transparent\"\n />\n </PopoverContent>\n </Popover>\n );\n}\n","import * as React from 'react';\nimport { Drawer as DrawerPrimitive } from 'vaul';\n\nimport { floatingSurface } from '@/lib/language';\nimport { cn } from '@/lib/utils';\n\nfunction Drawer({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) {\n return <DrawerPrimitive.Root data-slot=\"drawer\" {...props} />;\n}\n\nfunction DrawerTrigger({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {\n return <DrawerPrimitive.Trigger data-slot=\"drawer-trigger\" {...props} />;\n}\n\nfunction DrawerPortal({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Portal>) {\n return <DrawerPrimitive.Portal data-slot=\"drawer-portal\" {...props} />;\n}\n\nfunction DrawerClose({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Close>) {\n return <DrawerPrimitive.Close data-slot=\"drawer-close\" {...props} />;\n}\n\nfunction DrawerOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Overlay>) {\n return (\n <DrawerPrimitive.Overlay\n data-slot=\"drawer-overlay\"\n className={cn(\n 'inset-0 bg-black/60 backdrop-blur-sm data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0 fixed z-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Content>) {\n return (\n <DrawerPortal data-slot=\"drawer-portal\">\n <DrawerOverlay />\n <DrawerPrimitive.Content\n data-slot=\"drawer-content\"\n className={cn(\n `${floatingSurface} group/drawer-content fixed z-50 flex h-auto flex-col border-border`,\n 'data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:rounded-b-3xl data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:border-b',\n 'data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:rounded-t-3xl data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:border-t',\n 'data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:sm:max-w-sm data-[vaul-drawer-direction=right]:rounded-l-3xl data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l',\n 'data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=left]:rounded-r-3xl data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r',\n className,\n )}\n {...props}\n >\n <div className=\"mt-4 h-2 mx-auto hidden w-[100px] shrink-0 rounded-full bg-muted group-data-[vaul-drawer-direction=bottom]/drawer-content:block\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n );\n}\n\nfunction DrawerHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\n 'gap-0.5 p-4 md:gap-1.5 md:text-left flex flex-col group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"drawer-footer\"\n className={cn('gap-2 p-4 mt-auto flex flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction DrawerTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Title>) {\n return (\n <DrawerPrimitive.Title\n data-slot=\"drawer-title\"\n className={cn('font-semibold text-foreground', className)}\n {...props}\n />\n );\n}\n\nfunction DrawerDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Description>) {\n return (\n <DrawerPrimitive.Description\n data-slot=\"drawer-description\"\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n );\n}\n\nexport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerOverlay,\n DrawerPortal,\n DrawerTitle,\n DrawerTrigger,\n};\n","export function FieldError({ message }: { message?: string }) {\n if (!message) {\n return null;\n }\n\n return (\n <p\n className=\"ml-1 text-xs font-medium text-destructive\"\n data-slot=\"field-error\"\n >\n {message}\n </p>\n );\n}\n","'use client';\n\nimport * as LabelPrimitive from '@radix-ui/react-label';\nimport { Slot } from '@radix-ui/react-slot';\nimport * as React from 'react';\nimport {\n Controller,\n FormProvider,\n useFormContext,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from 'react-hook-form';\n\nimport { Label } from '@/components/ui/label';\nimport { cn } from '@/lib/utils';\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue,\n);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState, formState } = useFormContext();\n\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue,\n);\n\nconst FormItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div\n ref={ref}\n className={cn('space-y-2', className)}\n data-slot=\"form-item\"\n {...props}\n />\n </FormItemContext.Provider>\n );\n});\nFormItem.displayName = 'FormItem';\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n ref={ref}\n className={cn(error && 'text-destructive', className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n});\nFormLabel.displayName = 'FormLabel';\n\nconst FormControl = React.forwardRef<\n React.ElementRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n});\nFormControl.displayName = 'FormControl';\n\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn('text-[0.8rem] text-muted-foreground', className)}\n {...props}\n />\n );\n});\nFormDescription.displayName = 'FormDescription';\n\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? '') : children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn(\n 'font-medium text-[0.8rem] text-destructive',\n className,\n )}\n {...props}\n >\n {body}\n </p>\n );\n});\nFormMessage.displayName = 'FormMessage';\n\nexport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n useFormField,\n};\n","'use client';\n\nimport { HoverCard as HoverCardPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { panelSurface } from '@/lib/language';\nimport { cn } from '@/lib/utils';\n\nfunction HoverCard({\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nfunction HoverCardTrigger({\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return (\n <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n );\n}\n\nfunction HoverCardContent({\n className,\n align = 'center',\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n `${panelSurface} w-64 p-4 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 z-50 origin-(--radix-hover-card-content-transform-origin) bg-popover/90 outline-hidden`,\n className,\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardContent, HoverCardTrigger };\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';\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 }\n>(({ index, className, ...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 data-slot=\"input-otp-slot\"\n className={cn(\n glassControl,\n controlFill,\n 'size-11 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 >\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 { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react';\nimport { Menubar as MenubarPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { menuSurface } from '@/lib/language';\nimport { cn } from '@/lib/utils';\n\nfunction Menubar({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Root>) {\n return (\n <MenubarPrimitive.Root\n data-slot=\"menubar\"\n className={cn(\n 'h-9 gap-1 p-1 shadow-sm backdrop-blur-xl rounded-2xl flex items-center border border-border bg-card/60',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarMenu({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Menu>) {\n return <MenubarPrimitive.Menu data-slot=\"menubar-menu\" {...props} />;\n}\n\nfunction MenubarGroup({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Group>) {\n return <MenubarPrimitive.Group data-slot=\"menubar-group\" {...props} />;\n}\n\nfunction MenubarPortal({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Portal>) {\n return <MenubarPrimitive.Portal data-slot=\"menubar-portal\" {...props} />;\n}\n\nfunction MenubarRadioGroup({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>) {\n return (\n <MenubarPrimitive.RadioGroup\n data-slot=\"menubar-radio-group\"\n {...props}\n />\n );\n}\n\nfunction MenubarTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Trigger>) {\n return (\n <MenubarPrimitive.Trigger\n data-slot=\"menubar-trigger\"\n className={cn(\n 'px-2 py-1 text-sm font-medium rounded-xl flex items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarContent({\n className,\n align = 'start',\n alignOffset = -4,\n sideOffset = 8,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Content>) {\n return (\n <MenubarPortal>\n <MenubarPrimitive.Content\n data-slot=\"menubar-content\"\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n `${menuSurface} p-1.5 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]: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 z-50 min-w-[12rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden`,\n className,\n )}\n {...props}\n />\n </MenubarPortal>\n );\n}\n\nfunction MenubarItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Item> & {\n inset?: boolean;\n variant?: 'default' | 'destructive';\n}) {\n return (\n <MenubarPrimitive.Item\n data-slot=\"menubar-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"gap-2 px-2 py-1.5 text-sm data-[inset]:pl-8 [&_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 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/20 [&_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 />\n );\n}\n\nfunction MenubarCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.CheckboxItem>) {\n return (\n <MenubarPrimitive.CheckboxItem\n data-slot=\"menubar-checkbox-item\"\n className={cn(\n \"gap-2 rounded-xl py-1.5 pr-2 pl-8 text-sm [&_svg:not([class*='size-'])]:size-4 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 >\n <span className=\"left-2 size-3.5 pointer-events-none absolute flex items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n );\n}\n\nfunction MenubarRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.RadioItem>) {\n return (\n <MenubarPrimitive.RadioItem\n data-slot=\"menubar-radio-item\"\n className={cn(\n \"gap-2 rounded-xl py-1.5 pr-2 pl-8 text-sm [&_svg:not([class*='size-'])]:size-4 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 >\n <span className=\"left-2 size-3.5 pointer-events-none absolute flex items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n );\n}\n\nfunction MenubarLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <MenubarPrimitive.Label\n data-slot=\"menubar-label\"\n data-inset={inset}\n className={cn(\n 'px-2 py-1.5 text-sm font-medium data-[inset]:pl-8',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Separator>) {\n return (\n <MenubarPrimitive.Separator\n data-slot=\"menubar-separator\"\n className={cn('-mx-1 my-1 h-px bg-border', className)}\n {...props}\n />\n );\n}\n\nfunction MenubarShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"menubar-shortcut\"\n className={cn(\n 'text-xs tracking-widest ml-auto text-muted-foreground',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarSub({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Sub>) {\n return <MenubarPrimitive.Sub data-slot=\"menubar-sub\" {...props} />;\n}\n\nfunction MenubarSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <MenubarPrimitive.SubTrigger\n data-slot=\"menubar-sub-trigger\"\n data-inset={inset}\n className={cn(\n 'px-2 py-1.5 text-sm data-[inset]:pl-8 rounded-xl flex cursor-default items-center outline-none select-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"h-4 w-4 ml-auto\" />\n </MenubarPrimitive.SubTrigger>\n );\n}\n\nfunction MenubarSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.SubContent>) {\n return (\n <MenubarPrimitive.SubContent\n data-slot=\"menubar-sub-content\"\n className={cn(\n `${menuSurface} p-1.5 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 z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden`,\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Menubar,\n MenubarCheckboxItem,\n MenubarContent,\n MenubarGroup,\n MenubarItem,\n MenubarLabel,\n MenubarMenu,\n MenubarPortal,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSeparator,\n MenubarShortcut,\n MenubarSub,\n MenubarSubContent,\n MenubarSubTrigger,\n MenubarTrigger,\n};\n","import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu';\nimport { cva } from 'class-variance-authority';\nimport { ChevronDownIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { panelSurface } from '@/lib/language';\nimport { cn } from '@/lib/utils';\n\nfunction NavigationMenu({\n className,\n children,\n viewport = true,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {\n viewport?: boolean;\n}) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n data-viewport={viewport}\n className={cn(\n 'group/navigation-menu relative flex max-w-max flex-1 items-center justify-center',\n className,\n )}\n {...props}\n >\n {children}\n {viewport && <NavigationMenuViewport />}\n </NavigationMenuPrimitive.Root>\n );\n}\n\nfunction NavigationMenuList({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn(\n 'group gap-1 flex flex-1 list-none items-center justify-center',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuItem({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Item>) {\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn('relative', className)}\n {...props}\n />\n );\n}\n\nconst navigationMenuTriggerStyle = cva(\n 'group inline-flex h-11 w-max items-center justify-center rounded-xl bg-background px-4 text-sm font-medium data-[state=open]:font-semibold hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[active=true]:bg-accent/50 data-[state=open]:bg-accent/50 data-[active=true]:text-accent-foreground transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50',\n);\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), 'group', className)}\n {...props}\n >\n {children}{' '}\n <ChevronDownIcon\n className=\"ml-1 size-3 relative top-[1px] transition duration-300 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n );\n}\n\nfunction NavigationMenuContent({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Content>) {\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(\n 'data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 top-0 left-0 p-2 pr-2.5 md:absolute md:w-auto w-full',\n 'group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:shadow-2xl group-data-[viewport=false]/navigation-menu:backdrop-blur-xl group-data-[viewport=false]/navigation-menu:rounded-2xl group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:border-border group-data-[viewport=false]/navigation-menu:bg-popover/90 group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuViewport({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>) {\n return (\n <div\n className={cn(\n 'left-0 absolute top-full isolate z-50 flex justify-center',\n )}\n >\n <NavigationMenuPrimitive.Viewport\n data-slot=\"navigation-menu-viewport\"\n className={cn(\n `${panelSurface} origin-top-center data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 mt-1.5 md:w-[var(--radix-navigation-menu-viewport-width)] relative h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden bg-popover/90`,\n className,\n )}\n {...props}\n />\n </div>\n );\n}\n\nfunction NavigationMenuLink({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Link>) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n \"gap-1 p-2 text-sm [&_svg:not([class*='size-'])]:size-4 rounded-xl data-[active=true]:font-semibold flex flex-col transition-[color,box-shadow] outline-none hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuIndicator({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>) {\n return (\n <NavigationMenuPrimitive.Indicator\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n 'data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in h-1.5 top-full z-[1] flex items-end justify-center overflow-hidden',\n className,\n )}\n {...props}\n >\n <div className=\"h-2 w-2 shadow-md rounded-tl-xs relative top-[60%] rotate-45 bg-border\" />\n </NavigationMenuPrimitive.Indicator>\n );\n}\n\nexport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuIndicator,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n navigationMenuTriggerStyle,\n NavigationMenuViewport,\n};\n","import {\n ChevronLeftIcon,\n ChevronRightIcon,\n MoreHorizontalIcon,\n} from 'lucide-react';\nimport * as React from 'react';\n\nimport { buttonVariants, type Button } from '@/components/ui/button';\nimport { cn } from '@/lib/utils';\n\nfunction Pagination({ className, ...props }: React.ComponentProps<'nav'>) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n className={cn('mx-auto flex w-full justify-center', className)}\n {...props}\n />\n );\n}\n\nfunction PaginationContent({\n className,\n ...props\n}: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"pagination-content\"\n className={cn('gap-1 flex flex-row items-center', className)}\n {...props}\n />\n );\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<'li'>) {\n return <li data-slot=\"pagination-item\" {...props} />;\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean;\n} & Pick<React.ComponentProps<typeof Button>, 'size'> &\n React.ComponentProps<'a'>;\n\nfunction PaginationLink({\n className,\n isActive,\n size = 'icon',\n ...props\n}: PaginationLinkProps) {\n return (\n <a\n aria-current={isActive ? 'page' : undefined}\n data-slot=\"pagination-link\"\n data-active={isActive}\n className={cn(\n buttonVariants({\n variant: isActive ? 'outline' : 'ghost',\n size,\n }),\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction PaginationPrevious({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn('gap-1 px-2.5 sm:pl-2.5', className)}\n {...props}\n >\n <ChevronLeftIcon />\n <span className=\"sm:block hidden\">Previous</span>\n </PaginationLink>\n );\n}\n\nfunction PaginationNext({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn('gap-1 px-2.5 sm:pr-2.5', className)}\n {...props}\n >\n <span className=\"sm:block hidden\">Next</span>\n <ChevronRightIcon />\n </PaginationLink>\n );\n}\n\nfunction PaginationEllipsis({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\n 'size-9 rounded-xl flex items-center justify-center',\n className,\n )}\n {...props}\n >\n <MoreHorizontalIcon className=\"size-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n );\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n};\n","import { useId } from 'react';\n\ninterface PlaceholderPatternProps {\n className?: string;\n}\n\nexport function PlaceholderPattern({ className }: PlaceholderPatternProps) {\n const patternId = useId();\n\n return (\n <svg data-slot=\"placeholder-pattern\" className={className} fill=\"none\">\n <defs>\n <pattern\n id={patternId}\n x=\"0\"\n y=\"0\"\n width=\"10\"\n height=\"10\"\n patternUnits=\"userSpaceOnUse\"\n >\n <path\n d=\"M-3 13 15-5M-5 5l18-18M-1 21 17 3\"\n stroke=\"currentColor\"\n ></path>\n </pattern>\n </defs>\n <rect\n stroke=\"none\"\n fill={`url(#${patternId})`}\n width=\"100%\"\n height=\"100%\"\n ></rect>\n </svg>\n );\n}\n","'use client';\n\nimport { Progress as ProgressPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nfunction Progress({\n className,\n value,\n ...props\n}: React.ComponentProps<typeof ProgressPrimitive.Root>) {\n return (\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n className={cn(\n 'h-2 relative w-full overflow-hidden rounded-full bg-primary/20',\n className,\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"h-full w-full flex-1 bg-primary transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n );\n}\n\nexport { Progress };\n","import { CircleIcon } from 'lucide-react';\nimport { RadioGroup as RadioGroupPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { focusRing } from '@/lib/language';\nimport { cn } from '@/lib/utils';\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn('gap-3 grid', className)}\n {...props}\n />\n );\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n `size-5 shadow-xs aspect-square shrink-0 rounded-full border border-border text-primary transition-[color,box-shadow] disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 ${focusRing}`,\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <CircleIcon className=\"size-2.5 absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 fill-primary\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n}\n\nexport { RadioGroup, RadioGroupItem };\n","'use client';\n\nimport * as ResizablePrimitive from 'react-resizable-panels';\n\nimport { elevatedSurface, nestedSurfaceReset } from '@/lib/language';\nimport { cn } from '@/lib/utils';\n\nfunction ResizablePanelGroup({\n className,\n ...props\n}: ResizablePrimitive.GroupProps) {\n return (\n <ResizablePrimitive.Group\n data-slot=\"resizable-panel-group\"\n className={cn(\n elevatedSurface,\n nestedSurfaceReset,\n 'flex h-full w-full overflow-hidden bg-card aria-[orientation=vertical]:flex-col',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ResizablePanel({ ...props }: ResizablePrimitive.PanelProps) {\n return <ResizablePrimitive.Panel data-slot=\"resizable-panel\" {...props} />;\n}\n\nfunction ResizableHandle({\n withHandle,\n className,\n ...props\n}: ResizablePrimitive.SeparatorProps & {\n withHandle?: boolean;\n}) {\n return (\n <ResizablePrimitive.Separator\n data-slot=\"resizable-handle\"\n className={cn(\n 'after:inset-y-0 after:w-1 aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:translate-x-0 relative flex w-px items-center justify-center bg-border after:absolute after:left-1/2 after:-translate-x-1/2 focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90',\n className,\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"h-8 w-1.5 z-10 rounded-full bg-muted-foreground/40 transition-colors group-hover:bg-muted-foreground/60\" />\n )}\n </ResizablePrimitive.Separator>\n );\n}\n\nexport { ResizableHandle, ResizablePanel, ResizablePanelGroup };\n","import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\nimport * as React from 'react';\n\nimport {\n elevatedSurface,\n nestedEdgeToEdge,\n nestedSurfaceReset,\n} from '@/lib/language';\nimport { cn } from '@/lib/utils';\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n ref={ref}\n className={cn(\n elevatedSurface,\n nestedSurfaceReset,\n nestedEdgeToEdge,\n 'relative overflow-hidden bg-card',\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n));\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<\n typeof ScrollAreaPrimitive.ScrollAreaScrollbar\n >\n>(({ className, orientation = 'vertical', ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n ref={ref}\n orientation={orientation}\n className={cn(\n 'flex touch-none transition-colors select-none',\n orientation === 'vertical' &&\n 'w-2.5 h-full border-l border-l-transparent p-[1px]',\n orientation === 'horizontal' &&\n 'h-2.5 flex-col border-t border-t-transparent p-[1px]',\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\nexport { ScrollArea, ScrollBar };\n","import { Slider as SliderPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { focusRing } from '@/lib/language';\nimport { cn } from '@/lib/utils';\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: React.ComponentProps<typeof SliderPrimitive.Root>) {\n const _values = React.useMemo(\n () =>\n Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max],\n [value, defaultValue, min, max],\n );\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n 'data-[orientation=vertical]:min-h-44 relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col',\n className,\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n 'data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:w-1.5 relative grow overflow-hidden rounded-full bg-muted data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full',\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n 'absolute bg-primary data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full',\n )}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className={cn(\n 'size-5 shadow-sm block shrink-0 rounded-full border border-primary bg-background transition-[color,box-shadow] disabled:pointer-events-none disabled:opacity-50',\n focusRing,\n )}\n />\n ))}\n </SliderPrimitive.Root>\n );\n}\n\nexport { Slider };\n","import {\n CircleCheckIcon,\n InfoIcon,\n Loader2Icon,\n OctagonXIcon,\n TriangleAlertIcon,\n} from 'lucide-react';\nimport { useEffect, useState } from 'react';\nimport { Toaster as Sonner, type ToasterProps } from 'sonner';\n\nfunction useDocumentScheme(): 'light' | 'dark' {\n const [scheme, setScheme] = useState<'light' | 'dark'>('light');\n\n useEffect(() => {\n const root = document.documentElement;\n const read = () =>\n setScheme(root.classList.contains('dark') ? 'dark' : 'light');\n\n read();\n\n const observer = new MutationObserver(read);\n observer.observe(root, {\n attributes: true,\n attributeFilter: ['class'],\n });\n\n return () => observer.disconnect();\n }, []);\n\n return scheme;\n}\n\nconst Toaster = ({ theme, ...props }: ToasterProps) => {\n const scheme = useDocumentScheme();\n\n return (\n <Sonner\n theme={theme ?? scheme}\n className=\"toaster group [&_[data-sonner-toast]]:shadow-2xl [&_[data-sonner-toast]]:backdrop-blur-xl\"\n icons={{\n success: <CircleCheckIcon className=\"size-4\" />,\n info: <InfoIcon className=\"size-4\" />,\n warning: <TriangleAlertIcon className=\"size-4\" />,\n error: <OctagonXIcon className=\"size-4\" />,\n loading: <Loader2Icon className=\"size-4 animate-spin\" />,\n }}\n style={\n {\n '--normal-bg':\n 'color-mix(in oklab, var(--popover) 90%, transparent)',\n '--normal-text': 'var(--popover-foreground)',\n '--normal-border': 'var(--border)',\n '--border-radius': '1rem',\n } as React.CSSProperties\n }\n {...props}\n />\n );\n};\n\nexport { Toaster };\n","import * as TogglePrimitive from '@radix-ui/react-toggle';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { controlFill, focusRing, glassControl } from '@/lib/language';\nimport { cn } from '@/lib/utils';\n\nconst toggleVariants = cva(\n `inline-flex items-center justify-center gap-2 rounded-xl text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:font-semibold data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 transition-[color,box-shadow] aria-invalid:ring-destructive/20 aria-invalid:border-destructive ${focusRing}`,\n {\n variants: {\n variant: {\n default: 'bg-transparent',\n outline: `${glassControl} ${controlFill} hover:bg-accent hover:text-accent-foreground`,\n },\n size: {\n default: 'h-11 px-4 min-w-11',\n sm: 'h-9 px-3 min-w-9',\n lg: 'h-12 px-6 min-w-12',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nfunction Toggle({\n className,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Toggle, toggleVariants };\n","import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';\nimport { type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { toggleVariants } from '@/components/ui/toggle';\nimport { cn } from '@/lib/utils';\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants>\n>({\n size: 'default',\n variant: 'default',\n});\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n children,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <ToggleGroupPrimitive.Root\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n className={cn(\n 'group/toggle-group data-[variant=outline]:shadow-xs rounded-2xl flex items-center',\n className,\n )}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n );\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext);\n\n return (\n <ToggleGroupPrimitive.Item\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n 'min-w-0 first:rounded-l-2xl last:rounded-r-2xl shrink-0 rounded-none shadow-none focus:z-10 focus-visible:z-10 data-[variant=outline]:border-l-0 data-[variant=outline]:first:border-l',\n className,\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n );\n}\n\nexport { ToggleGroup, ToggleGroupItem };\n"]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ReactNode, ReactElement, PropsWithChildren } from 'react';
|
|
2
|
+
import { d as TourLabels } from './types-u1qfmJQi.js';
|
|
3
|
+
import { U as UrlLike, N as NavGroup, a as NavItem, S as SharedUser, B as BreadcrumbItem, L as LinkComponent } from './types-Cno1_Ijx.js';
|
|
4
|
+
|
|
5
|
+
declare const InertiaLink: LinkComponent;
|
|
6
|
+
declare function useCurrentUrl(): string;
|
|
7
|
+
declare function AppSidebar(props: {
|
|
8
|
+
logo: ReactNode;
|
|
9
|
+
logoHref: UrlLike;
|
|
10
|
+
groups: NavGroup[];
|
|
11
|
+
footerItems?: NavItem[];
|
|
12
|
+
user: SharedUser;
|
|
13
|
+
settingsHref: UrlLike;
|
|
14
|
+
logoutHref: UrlLike;
|
|
15
|
+
onSettingsClick?: () => void;
|
|
16
|
+
onLogout?: () => void;
|
|
17
|
+
}): ReactElement;
|
|
18
|
+
declare function AppSidebarHeader(props: {
|
|
19
|
+
breadcrumbs?: BreadcrumbItem[];
|
|
20
|
+
onSearchClick?: () => void;
|
|
21
|
+
searchLabel?: string;
|
|
22
|
+
}): ReactElement;
|
|
23
|
+
declare function Breadcrumbs(props: {
|
|
24
|
+
breadcrumbs: BreadcrumbItem[];
|
|
25
|
+
}): ReactElement;
|
|
26
|
+
declare function NavMain(props: {
|
|
27
|
+
items: NavItem[];
|
|
28
|
+
label?: string;
|
|
29
|
+
}): ReactElement;
|
|
30
|
+
declare function SettingsLayout(props: PropsWithChildren<{
|
|
31
|
+
items: NavItem[];
|
|
32
|
+
title?: string;
|
|
33
|
+
description?: string;
|
|
34
|
+
wide?: boolean;
|
|
35
|
+
}>): ReactElement;
|
|
36
|
+
declare function InertiaTourProvider({ children, progressUrl, labels, }: PropsWithChildren<{
|
|
37
|
+
progressUrl: (tour: string) => string;
|
|
38
|
+
labels?: Partial<TourLabels>;
|
|
39
|
+
}>): ReactElement;
|
|
40
|
+
|
|
41
|
+
export { AppSidebar, AppSidebarHeader, Breadcrumbs, InertiaLink, InertiaTourProvider, NavMain, SettingsLayout, useCurrentUrl };
|