@json-render/shadcn 0.9.0 → 0.10.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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components.tsx","../src/ui/button.tsx","../src/lib/utils.ts","../src/ui/card.tsx","../src/ui/input.tsx","../src/ui/label.tsx","../src/ui/textarea.tsx","../src/ui/checkbox.tsx","../src/ui/switch.tsx","../src/ui/progress.tsx","../src/ui/separator.tsx","../src/ui/alert.tsx","../src/ui/dialog.tsx","../src/ui/accordion.tsx","../src/ui/avatar.tsx","../src/ui/badge.tsx","../src/ui/radio-group.tsx","../src/ui/select.tsx","../src/ui/carousel.tsx","../src/ui/collapsible.tsx","../src/ui/table.tsx","../src/ui/drawer.tsx","../src/ui/dropdown-menu.tsx","../src/ui/pagination.tsx","../src/ui/popover.tsx","../src/ui/skeleton.tsx","../src/ui/slider.tsx","../src/ui/tabs.tsx","../src/ui/toggle.tsx","../src/ui/toggle-group.tsx","../src/ui/tooltip.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\nimport {\n useBoundProp,\n useStateBinding,\n useFieldValidation,\n type BaseComponentProps,\n} from \"@json-render/react\";\n\nimport { Button } from \"./ui/button\";\nimport {\n Card,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n} from \"./ui/card\";\nimport { Input } from \"./ui/input\";\nimport { Label } from \"./ui/label\";\nimport { Textarea } from \"./ui/textarea\";\nimport { Checkbox } from \"./ui/checkbox\";\nimport { Switch } from \"./ui/switch\";\nimport { Progress } from \"./ui/progress\";\nimport { Separator } from \"./ui/separator\";\nimport { Alert, AlertTitle, AlertDescription } from \"./ui/alert\";\nimport {\n Dialog as DialogPrimitive,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"./ui/dialog\";\nimport {\n Accordion as AccordionPrimitive,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from \"./ui/accordion\";\nimport {\n Avatar as AvatarPrimitive,\n AvatarImage,\n AvatarFallback,\n} from \"./ui/avatar\";\nimport { Badge } from \"./ui/badge\";\nimport { RadioGroup, RadioGroupItem } from \"./ui/radio-group\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"./ui/select\";\nimport {\n Carousel as CarouselPrimitive,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n} from \"./ui/carousel\";\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"./ui/collapsible\";\nimport {\n Table as TablePrimitive,\n TableBody,\n TableCaption,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"./ui/table\";\nimport {\n Drawer as DrawerPrimitive,\n DrawerContent,\n DrawerDescription,\n DrawerHeader,\n DrawerTitle,\n} from \"./ui/drawer\";\nimport {\n DropdownMenu as DropdownMenuPrimitive,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"./ui/dropdown-menu\";\nimport {\n Pagination as PaginationPrimitive,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n} from \"./ui/pagination\";\nimport {\n Popover as PopoverPrimitive,\n PopoverContent,\n PopoverTrigger,\n} from \"./ui/popover\";\nimport { Skeleton } from \"./ui/skeleton\";\nimport { Slider } from \"./ui/slider\";\nimport {\n Tabs as TabsPrimitive,\n TabsList,\n TabsTrigger,\n TabsContent,\n} from \"./ui/tabs\";\nimport { Toggle } from \"./ui/toggle\";\nimport { ToggleGroup, ToggleGroupItem } from \"./ui/toggle-group\";\nimport {\n Tooltip as TooltipPrimitive,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"./ui/tooltip\";\nimport { cn } from \"./lib/utils\";\n\nimport { type ShadcnProps } from \"./catalog\";\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\nfunction getPaginationRange(\n current: number,\n total: number,\n): Array<number | \"ellipsis\"> {\n if (total <= 7) {\n return Array.from({ length: total }, (_, i) => i + 1);\n }\n const pages: Array<number | \"ellipsis\"> = [];\n pages.push(1);\n if (current > 3) {\n pages.push(\"ellipsis\");\n }\n const start = Math.max(2, current - 1);\n const end = Math.min(total - 1, current + 1);\n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n if (current < total - 2) {\n pages.push(\"ellipsis\");\n }\n pages.push(total);\n return pages;\n}\n\n// =============================================================================\n// Standard Component Implementations\n// =============================================================================\n\n/**\n * Standard shadcn/ui component implementations.\n *\n * Pass to `defineRegistry()` from `@json-render/react` to create a\n * component registry for rendering JSON specs with shadcn/ui components.\n *\n * @example\n * ```ts\n * import { defineRegistry } from \"@json-render/react\";\n * import { shadcnComponents } from \"@json-render/shadcn\";\n *\n * const { registry } = defineRegistry(catalog, {\n * components: {\n * Card: shadcnComponents.Card,\n * Button: shadcnComponents.Button,\n * },\n * });\n * ```\n */\nexport const shadcnComponents = {\n // ── Layout ────────────────────────────────────────────────────────────\n\n Card: ({ props, children }: BaseComponentProps<ShadcnProps<\"Card\">>) => {\n const maxWidthClass =\n props.maxWidth === \"sm\"\n ? \"max-w-xs sm:min-w-[280px]\"\n : props.maxWidth === \"md\"\n ? \"max-w-sm sm:min-w-[320px]\"\n : props.maxWidth === \"lg\"\n ? \"max-w-md sm:min-w-[360px]\"\n : \"w-full\";\n const centeredClass = props.centered ? \"mx-auto\" : \"\";\n\n return (\n <Card className={cn(maxWidthClass, centeredClass)}>\n {(props.title || props.description) && (\n <CardHeader>\n {props.title && <CardTitle>{props.title}</CardTitle>}\n {props.description && (\n <CardDescription>{props.description}</CardDescription>\n )}\n </CardHeader>\n )}\n <CardContent className=\"flex flex-col gap-3\">{children}</CardContent>\n </Card>\n );\n },\n\n Stack: ({ props, children }: BaseComponentProps<ShadcnProps<\"Stack\">>) => {\n const isHorizontal = props.direction === \"horizontal\";\n const gapMap: Record<string, string> = {\n none: \"gap-0\",\n sm: \"gap-2\",\n md: \"gap-3\",\n lg: \"gap-4\",\n };\n const alignMap: Record<string, string> = {\n start: \"items-start\",\n center: \"items-center\",\n end: \"items-end\",\n stretch: \"items-stretch\",\n };\n const justifyMap: Record<string, string> = {\n start: \"\",\n center: \"justify-center\",\n end: \"justify-end\",\n between: \"justify-between\",\n around: \"justify-around\",\n };\n\n const gapClass = gapMap[props.gap ?? \"md\"] ?? \"gap-3\";\n const alignClass = alignMap[props.align ?? \"start\"] ?? \"items-start\";\n const justifyClass = justifyMap[props.justify ?? \"\"] ?? \"\";\n\n return (\n <div\n className={`flex ${isHorizontal ? \"flex-row flex-wrap\" : \"flex-col\"} ${gapClass} ${alignClass} ${justifyClass}`}\n >\n {children}\n </div>\n );\n },\n\n Grid: ({ props, children }: BaseComponentProps<ShadcnProps<\"Grid\">>) => {\n const colsMap: Record<number, string> = {\n 1: \"grid-cols-1\",\n 2: \"grid-cols-2\",\n 3: \"grid-cols-3\",\n 4: \"grid-cols-4\",\n 5: \"grid-cols-5\",\n 6: \"grid-cols-6\",\n };\n const gridGapMap: Record<string, string> = {\n sm: \"gap-2\",\n md: \"gap-3\",\n lg: \"gap-4\",\n };\n\n const n = Math.max(1, Math.min(6, props.columns ?? 1));\n const cols = colsMap[n] ?? \"grid-cols-1\";\n const gridGap = gridGapMap[props.gap ?? \"md\"] ?? \"gap-3\";\n\n return <div className={`grid ${cols} ${gridGap}`}>{children}</div>;\n },\n\n Separator: ({ props }: BaseComponentProps<ShadcnProps<\"Separator\">>) => {\n return (\n <Separator\n orientation={props.orientation ?? \"horizontal\"}\n className={props.orientation === \"vertical\" ? \"h-full mx-2\" : \"my-3\"}\n />\n );\n },\n\n Tabs: ({\n props,\n children,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"Tabs\">>) => {\n const tabs = props.tabs ?? [];\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(\n props.defaultValue ?? tabs[0]?.value ?? \"\",\n );\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? tabs[0]?.value ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n\n return (\n <TabsPrimitive\n value={value}\n onValueChange={(v) => {\n setValue(v);\n emit(\"change\");\n }}\n >\n <TabsList>\n {tabs.map((tab) => (\n <TabsTrigger key={tab.value} value={tab.value}>\n {tab.label}\n </TabsTrigger>\n ))}\n </TabsList>\n {children}\n </TabsPrimitive>\n );\n },\n\n Accordion: ({ props }: BaseComponentProps<ShadcnProps<\"Accordion\">>) => {\n const items = props.items ?? [];\n const isMultiple = props.type === \"multiple\";\n\n const itemElements = items.map((item, i) => (\n <AccordionItem key={i} value={`item-${i}`}>\n <AccordionTrigger>{item.title}</AccordionTrigger>\n <AccordionContent>{item.content}</AccordionContent>\n </AccordionItem>\n ));\n\n if (isMultiple) {\n return (\n <AccordionPrimitive type=\"multiple\" className=\"w-full\">\n {itemElements}\n </AccordionPrimitive>\n );\n }\n return (\n <AccordionPrimitive type=\"single\" collapsible className=\"w-full\">\n {itemElements}\n </AccordionPrimitive>\n );\n },\n\n Collapsible: ({\n props,\n children,\n }: BaseComponentProps<ShadcnProps<\"Collapsible\">>) => {\n const [open, setOpen] = useState(props.defaultOpen ?? false);\n return (\n <Collapsible open={open} onOpenChange={setOpen} className=\"w-full\">\n <CollapsibleTrigger asChild>\n <button className=\"flex w-full items-center justify-between rounded-md border border-border px-4 py-2 text-sm font-medium hover:bg-muted transition-colors\">\n {props.title}\n <svg\n className={`h-4 w-4 transition-transform ${open ? \"rotate-180\" : \"\"}`}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M19 9l-7 7-7-7\"\n />\n </svg>\n </button>\n </CollapsibleTrigger>\n <CollapsibleContent className=\"pt-2\">{children}</CollapsibleContent>\n </Collapsible>\n );\n },\n\n Dialog: ({ props, children }: BaseComponentProps<ShadcnProps<\"Dialog\">>) => {\n const [open, setOpen] = useStateBinding<boolean>(props.openPath ?? \"\");\n return (\n <DialogPrimitive open={open ?? false} onOpenChange={(v) => setOpen(v)}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>{props.title}</DialogTitle>\n {props.description && (\n <DialogDescription>{props.description}</DialogDescription>\n )}\n </DialogHeader>\n {children}\n </DialogContent>\n </DialogPrimitive>\n );\n },\n\n Drawer: ({ props, children }: BaseComponentProps<ShadcnProps<\"Drawer\">>) => {\n const [open, setOpen] = useStateBinding<boolean>(props.openPath ?? \"\");\n return (\n <DrawerPrimitive open={open ?? false} onOpenChange={(v) => setOpen(v)}>\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>{props.title}</DrawerTitle>\n {props.description && (\n <DrawerDescription>{props.description}</DrawerDescription>\n )}\n </DrawerHeader>\n <div className=\"p-4\">{children}</div>\n </DrawerContent>\n </DrawerPrimitive>\n );\n },\n\n Carousel: ({ props }: BaseComponentProps<ShadcnProps<\"Carousel\">>) => {\n const items = props.items ?? [];\n return (\n <CarouselPrimitive className=\"w-full\">\n <CarouselContent>\n {items.map((item, i) => (\n <CarouselItem\n key={i}\n className=\"basis-3/4 md:basis-1/2 lg:basis-1/3\"\n >\n <div className=\"border border-border rounded-lg p-4 bg-card h-full\">\n {item.title && (\n <h4 className=\"font-semibold text-sm mb-1\">{item.title}</h4>\n )}\n {item.description && (\n <p className=\"text-sm text-muted-foreground\">\n {item.description}\n </p>\n )}\n </div>\n </CarouselItem>\n ))}\n </CarouselContent>\n <CarouselPrevious />\n <CarouselNext />\n </CarouselPrimitive>\n );\n },\n\n // ── Data Display ──────────────────────────────────────────────────────\n\n Table: ({ props }: BaseComponentProps<ShadcnProps<\"Table\">>) => {\n const columns = props.columns ?? [];\n const rows = (props.rows ?? []).map((row) => row.map(String));\n\n return (\n <div className=\"rounded-md border border-border overflow-hidden\">\n <TablePrimitive>\n {props.caption && <TableCaption>{props.caption}</TableCaption>}\n <TableHeader>\n <TableRow>\n {columns.map((col) => (\n <TableHead key={col}>{col}</TableHead>\n ))}\n </TableRow>\n </TableHeader>\n <TableBody>\n {rows.map((row, i) => (\n <TableRow key={i}>\n {row.map((cell, j) => (\n <TableCell key={j}>{cell}</TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n </TablePrimitive>\n </div>\n );\n },\n\n Heading: ({ props }: BaseComponentProps<ShadcnProps<\"Heading\">>) => {\n const level = props.level ?? \"h2\";\n const headingClass =\n level === \"h1\"\n ? \"text-2xl font-bold\"\n : level === \"h3\"\n ? \"text-base font-semibold\"\n : level === \"h4\"\n ? \"text-sm font-semibold\"\n : \"text-lg font-semibold\";\n\n if (level === \"h1\")\n return <h1 className={`${headingClass} text-left`}>{props.text}</h1>;\n if (level === \"h3\")\n return <h3 className={`${headingClass} text-left`}>{props.text}</h3>;\n if (level === \"h4\")\n return <h4 className={`${headingClass} text-left`}>{props.text}</h4>;\n return <h2 className={`${headingClass} text-left`}>{props.text}</h2>;\n },\n\n Text: ({ props }: BaseComponentProps<ShadcnProps<\"Text\">>) => {\n const textClass =\n props.variant === \"caption\"\n ? \"text-xs\"\n : props.variant === \"muted\"\n ? \"text-sm text-muted-foreground\"\n : props.variant === \"lead\"\n ? \"text-xl text-muted-foreground\"\n : props.variant === \"code\"\n ? \"font-mono text-sm bg-muted px-1.5 py-0.5 rounded\"\n : \"text-sm\";\n\n if (props.variant === \"code\") {\n return <code className={`${textClass} text-left`}>{props.text}</code>;\n }\n return <p className={`${textClass} text-left`}>{props.text}</p>;\n },\n\n Image: ({ props }: BaseComponentProps<ShadcnProps<\"Image\">>) => {\n if (props.src) {\n return (\n <img\n src={props.src}\n alt={props.alt ?? \"\"}\n width={props.width ?? undefined}\n height={props.height ?? undefined}\n className=\"rounded max-w-full\"\n />\n );\n }\n return (\n <div\n className=\"bg-muted border border-border rounded flex items-center justify-center text-xs text-muted-foreground\"\n style={{ width: props.width ?? 80, height: props.height ?? 60 }}\n >\n {props.alt || \"img\"}\n </div>\n );\n },\n\n Avatar: ({ props }: BaseComponentProps<ShadcnProps<\"Avatar\">>) => {\n const name = props.name || \"?\";\n const initials = name\n .split(\" \")\n .map((n) => n[0])\n .join(\"\")\n .slice(0, 2)\n .toUpperCase();\n const sizeClass =\n props.size === \"lg\"\n ? \"h-12 w-12\"\n : props.size === \"sm\"\n ? \"h-8 w-8\"\n : \"h-10 w-10\";\n\n return (\n <AvatarPrimitive className={sizeClass}>\n {props.src && <AvatarImage src={props.src} alt={name} />}\n <AvatarFallback>{initials}</AvatarFallback>\n </AvatarPrimitive>\n );\n },\n\n Badge: ({ props }: BaseComponentProps<ShadcnProps<\"Badge\">>) => {\n return <Badge variant={props.variant ?? \"default\"}>{props.text}</Badge>;\n },\n\n Alert: ({ props }: BaseComponentProps<ShadcnProps<\"Alert\">>) => {\n const variant = props.type === \"error\" ? \"destructive\" : \"default\";\n const customClass =\n props.type === \"success\"\n ? \"border-green-200 bg-green-50 text-green-900 dark:border-green-800 dark:bg-green-950 dark:text-green-100\"\n : props.type === \"warning\"\n ? \"border-yellow-200 bg-yellow-50 text-yellow-900 dark:border-yellow-800 dark:bg-yellow-950 dark:text-yellow-100\"\n : props.type === \"info\"\n ? \"border-blue-200 bg-blue-50 text-blue-900 dark:border-blue-800 dark:bg-blue-950 dark:text-blue-100\"\n : \"\";\n\n return (\n <Alert variant={variant} className={customClass}>\n <AlertTitle>{props.title}</AlertTitle>\n {props.message && <AlertDescription>{props.message}</AlertDescription>}\n </Alert>\n );\n },\n\n Progress: ({ props }: BaseComponentProps<ShadcnProps<\"Progress\">>) => {\n const value = Math.min(100, Math.max(0, props.value || 0));\n return (\n <div className=\"space-y-2\">\n {props.label && (\n <Label className=\"text-sm text-muted-foreground\">{props.label}</Label>\n )}\n <Progress value={value} />\n </div>\n );\n },\n\n Skeleton: ({ props }: BaseComponentProps<ShadcnProps<\"Skeleton\">>) => {\n return (\n <Skeleton\n className={props.rounded ? \"rounded-full\" : \"rounded-md\"}\n style={{\n width: props.width ?? \"100%\",\n height: props.height ?? \"1.25rem\",\n }}\n />\n );\n },\n\n Spinner: ({ props }: BaseComponentProps<ShadcnProps<\"Spinner\">>) => {\n const sizeClass =\n props.size === \"lg\"\n ? \"h-8 w-8\"\n : props.size === \"sm\"\n ? \"h-4 w-4\"\n : \"h-6 w-6\";\n return (\n <div className=\"flex items-center gap-2\">\n <svg\n className={`${sizeClass} animate-spin text-muted-foreground`}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z\"\n />\n </svg>\n {props.label && (\n <span className=\"text-sm text-muted-foreground\">{props.label}</span>\n )}\n </div>\n );\n },\n\n Tooltip: ({ props }: BaseComponentProps<ShadcnProps<\"Tooltip\">>) => {\n return (\n <TooltipProvider>\n <TooltipPrimitive>\n <TooltipTrigger asChild>\n <span className=\"text-sm underline decoration-dotted cursor-help\">\n {props.text}\n </span>\n </TooltipTrigger>\n <TooltipContent>\n <p>{props.content}</p>\n </TooltipContent>\n </TooltipPrimitive>\n </TooltipProvider>\n );\n },\n\n Popover: ({ props }: BaseComponentProps<ShadcnProps<\"Popover\">>) => {\n return (\n <PopoverPrimitive>\n <PopoverTrigger asChild>\n <Button variant=\"outline\" className=\"text-sm\">\n {props.trigger}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-64\">\n <p className=\"text-sm\">{props.content}</p>\n </PopoverContent>\n </PopoverPrimitive>\n );\n },\n\n // ── Form Inputs ───────────────────────────────────────────────────────\n\n Input: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"Input\">>) => {\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(\"\");\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n\n const hasValidation = !!(bindings?.value && props.checks?.length);\n const { errors, validate } = useFieldValidation(\n bindings?.value ?? \"\",\n hasValidation ? { checks: props.checks ?? [] } : undefined,\n );\n\n return (\n <div className=\"space-y-2\">\n {props.label && (\n <Label htmlFor={props.name ?? undefined}>{props.label}</Label>\n )}\n <Input\n id={props.name ?? undefined}\n name={props.name ?? undefined}\n type={props.type ?? \"text\"}\n placeholder={props.placeholder ?? \"\"}\n value={value}\n onChange={(e) => setValue(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") emit(\"submit\");\n }}\n onFocus={() => emit(\"focus\")}\n onBlur={() => {\n if (hasValidation) validate();\n emit(\"blur\");\n }}\n />\n {errors.length > 0 && (\n <p className=\"text-sm text-destructive\">{errors[0]}</p>\n )}\n </div>\n );\n },\n\n Textarea: ({\n props,\n bindings,\n }: BaseComponentProps<ShadcnProps<\"Textarea\">>) => {\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(\"\");\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n\n const hasValidation = !!(bindings?.value && props.checks?.length);\n const { errors, validate } = useFieldValidation(\n bindings?.value ?? \"\",\n hasValidation ? { checks: props.checks ?? [] } : undefined,\n );\n\n return (\n <div className=\"space-y-2\">\n {props.label && (\n <Label htmlFor={props.name ?? undefined}>{props.label}</Label>\n )}\n <Textarea\n id={props.name ?? undefined}\n name={props.name ?? undefined}\n placeholder={props.placeholder ?? \"\"}\n rows={props.rows ?? 3}\n value={value}\n onChange={(e) => setValue(e.target.value)}\n onBlur={() => {\n if (hasValidation) validate();\n }}\n />\n {errors.length > 0 && (\n <p className=\"text-sm text-destructive\">{errors[0]}</p>\n )}\n </div>\n );\n },\n\n Select: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"Select\">>) => {\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState<string>(\"\");\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n const rawOptions = props.options ?? [];\n const options = rawOptions.map((opt) =>\n typeof opt === \"string\" ? opt : String(opt ?? \"\"),\n );\n\n const hasValidation = !!(bindings?.value && props.checks?.length);\n const { errors, validate } = useFieldValidation(\n bindings?.value ?? \"\",\n hasValidation ? { checks: props.checks ?? [] } : undefined,\n );\n\n return (\n <div className=\"space-y-2\">\n <Label>{props.label}</Label>\n <Select\n value={value}\n onValueChange={(v) => {\n setValue(v);\n if (hasValidation) validate();\n emit(\"change\");\n }}\n >\n <SelectTrigger className=\"w-full\">\n <SelectValue placeholder={props.placeholder ?? \"Select...\"} />\n </SelectTrigger>\n <SelectContent>\n {options.map((opt, idx) => (\n <SelectItem key={`${idx}-${opt}`} value={opt || `option-${idx}`}>\n {opt}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {errors.length > 0 && (\n <p className=\"text-sm text-destructive\">{errors[0]}</p>\n )}\n </div>\n );\n },\n\n Checkbox: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"Checkbox\">>) => {\n const [boundChecked, setBoundChecked] = useBoundProp<boolean>(\n props.checked as boolean | undefined,\n bindings?.checked,\n );\n const [localChecked, setLocalChecked] = useState(!!props.checked);\n const isBound = !!bindings?.checked;\n const checked = isBound ? (boundChecked ?? false) : localChecked;\n const setChecked = isBound ? setBoundChecked : setLocalChecked;\n\n return (\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id={props.name ?? undefined}\n checked={checked}\n onCheckedChange={(c) => {\n setChecked(c === true);\n emit(\"change\");\n }}\n />\n <Label htmlFor={props.name ?? undefined} className=\"cursor-pointer\">\n {props.label}\n </Label>\n </div>\n );\n },\n\n Radio: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"Radio\">>) => {\n const rawOptions = props.options ?? [];\n const options = rawOptions.map((opt) =>\n typeof opt === \"string\" ? opt : String(opt ?? \"\"),\n );\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(options[0] ?? \"\");\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n\n return (\n <div className=\"space-y-2\">\n {props.label && <Label>{props.label}</Label>}\n <RadioGroup\n value={value}\n onValueChange={(v) => {\n setValue(v);\n emit(\"change\");\n }}\n >\n {options.map((opt, idx) => (\n <div key={`${idx}-${opt}`} className=\"flex items-center space-x-2\">\n <RadioGroupItem\n value={opt || `option-${idx}`}\n id={`${props.name}-${idx}-${opt}`}\n />\n <Label\n htmlFor={`${props.name}-${idx}-${opt}`}\n className=\"cursor-pointer\"\n >\n {opt}\n </Label>\n </div>\n ))}\n </RadioGroup>\n </div>\n );\n },\n\n Switch: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"Switch\">>) => {\n const [boundChecked, setBoundChecked] = useBoundProp<boolean>(\n props.checked as boolean | undefined,\n bindings?.checked,\n );\n const [localChecked, setLocalChecked] = useState(!!props.checked);\n const isBound = !!bindings?.checked;\n const checked = isBound ? (boundChecked ?? false) : localChecked;\n const setChecked = isBound ? setBoundChecked : setLocalChecked;\n\n return (\n <div className=\"flex items-center justify-between space-x-2\">\n <Label htmlFor={props.name ?? undefined} className=\"cursor-pointer\">\n {props.label}\n </Label>\n <Switch\n id={props.name ?? undefined}\n checked={checked}\n onCheckedChange={(c) => {\n setChecked(c);\n emit(\"change\");\n }}\n />\n </div>\n );\n },\n\n Slider: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"Slider\">>) => {\n const [boundValue, setBoundValue] = useBoundProp<number>(\n props.value as number | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(props.min ?? 0);\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? props.min ?? 0) : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n\n return (\n <div className=\"space-y-2\">\n {props.label && (\n <div className=\"flex justify-between\">\n <Label className=\"text-sm\">{props.label}</Label>\n <span className=\"text-sm text-muted-foreground\">{value}</span>\n </div>\n )}\n <Slider\n value={[value]}\n min={props.min ?? 0}\n max={props.max ?? 100}\n step={props.step ?? 1}\n onValueChange={(v) => {\n setValue(v[0] ?? 0);\n emit(\"change\");\n }}\n />\n </div>\n );\n },\n\n // ── Actions ───────────────────────────────────────────────────────────\n\n Button: ({ props, emit }: BaseComponentProps<ShadcnProps<\"Button\">>) => {\n const variant =\n props.variant === \"danger\"\n ? \"destructive\"\n : props.variant === \"secondary\"\n ? \"secondary\"\n : \"default\";\n\n return (\n <Button\n variant={variant}\n disabled={props.disabled ?? false}\n onClick={() => emit(\"press\")}\n >\n {props.label}\n </Button>\n );\n },\n\n Link: ({ props, on }: BaseComponentProps<ShadcnProps<\"Link\">>) => {\n return (\n <a\n href={props.href ?? \"#\"}\n className=\"text-primary underline-offset-4 hover:underline text-sm font-medium\"\n onClick={(e) => {\n const press = on(\"press\");\n if (press.shouldPreventDefault) e.preventDefault();\n press.emit();\n }}\n >\n {props.label}\n </a>\n );\n },\n\n DropdownMenu: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"DropdownMenu\">>) => {\n const items = props.items ?? [];\n const [, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n return (\n <DropdownMenuPrimitive>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\">{props.label}</Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent>\n {items.map((item) => (\n <DropdownMenuItem\n key={item.value}\n onClick={() => {\n setBoundValue(item.value);\n emit(\"select\");\n }}\n >\n {item.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenuPrimitive>\n );\n },\n\n Toggle: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"Toggle\">>) => {\n const [boundPressed, setBoundPressed] = useBoundProp<boolean>(\n props.pressed as boolean | undefined,\n bindings?.pressed,\n );\n const [localPressed, setLocalPressed] = useState(props.pressed ?? false);\n const isBound = !!bindings?.pressed;\n const pressed = isBound ? (boundPressed ?? false) : localPressed;\n const setPressed = isBound ? setBoundPressed : setLocalPressed;\n\n return (\n <Toggle\n variant={props.variant ?? \"default\"}\n pressed={pressed}\n onPressedChange={(v) => {\n setPressed(v);\n emit(\"change\");\n }}\n >\n {props.label}\n </Toggle>\n );\n },\n\n ToggleGroup: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"ToggleGroup\">>) => {\n const type = props.type ?? \"single\";\n const items = props.items ?? [];\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(items[0]?.value ?? \"\");\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n\n if (type === \"multiple\") {\n const selected = value ? value.split(\",\").filter(Boolean) : [];\n return (\n <ToggleGroup\n type=\"multiple\"\n value={selected}\n onValueChange={(v) => {\n setValue(v.join(\",\"));\n emit(\"change\");\n }}\n >\n {items.map((item) => (\n <ToggleGroupItem key={item.value} value={item.value}>\n {item.label}\n </ToggleGroupItem>\n ))}\n </ToggleGroup>\n );\n }\n\n return (\n <ToggleGroup\n type=\"single\"\n value={value}\n onValueChange={(v) => {\n if (v) {\n setValue(v);\n emit(\"change\");\n }\n }}\n >\n {items.map((item) => (\n <ToggleGroupItem key={item.value} value={item.value}>\n {item.label}\n </ToggleGroupItem>\n ))}\n </ToggleGroup>\n );\n },\n\n ButtonGroup: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"ButtonGroup\">>) => {\n const buttons = props.buttons ?? [];\n const [boundSelected, setBoundSelected] = useBoundProp<string>(\n props.selected as string | undefined,\n bindings?.selected,\n );\n const [localValue, setLocalValue] = useState(buttons[0]?.value ?? \"\");\n const isBound = !!bindings?.selected;\n const value = isBound ? (boundSelected ?? \"\") : localValue;\n const setValue = isBound ? setBoundSelected : setLocalValue;\n\n return (\n <div className=\"inline-flex rounded-md border border-border\">\n {buttons.map((btn, i) => (\n <button\n key={btn.value}\n className={`px-3 py-1.5 text-sm transition-colors ${\n value === btn.value\n ? \"bg-primary text-primary-foreground\"\n : \"bg-background hover:bg-muted\"\n } ${i > 0 ? \"border-l border-border\" : \"\"} ${\n i === 0 ? \"rounded-l-md\" : \"\"\n } ${i === buttons.length - 1 ? \"rounded-r-md\" : \"\"}`}\n onClick={() => {\n setValue(btn.value);\n emit(\"change\");\n }}\n >\n {btn.label}\n </button>\n ))}\n </div>\n );\n },\n\n Pagination: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"Pagination\">>) => {\n const [boundPage, setBoundPage] = useBoundProp<number>(\n props.page as number | undefined,\n bindings?.page,\n );\n const currentPage = boundPage ?? 1;\n const totalPages = props.totalPages ?? 1;\n const pages = getPaginationRange(currentPage, totalPages);\n\n return (\n <PaginationPrimitive>\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n if (currentPage > 1) {\n setBoundPage(currentPage - 1);\n emit(\"change\");\n }\n }}\n />\n </PaginationItem>\n {pages.map((page, idx) =>\n page === \"ellipsis\" ? (\n <PaginationItem key={`ellipsis-${idx}`}>\n <PaginationEllipsis />\n </PaginationItem>\n ) : (\n <PaginationItem key={page}>\n <PaginationLink\n href=\"#\"\n isActive={page === currentPage}\n onClick={(e) => {\n e.preventDefault();\n setBoundPage(page);\n emit(\"change\");\n }}\n >\n {page}\n </PaginationLink>\n </PaginationItem>\n ),\n )}\n <PaginationItem>\n <PaginationNext\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n if (currentPage < totalPages) {\n setBoundPage(currentPage + 1);\n emit(\"change\");\n }\n }}\n />\n </PaginationItem>\n </PaginationContent>\n </PaginationPrimitive>\n );\n },\n};\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Slot } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-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\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n xs: \"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n \"icon-xs\": \"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\": \"size-8\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot.Root : \"button\";\n\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Card({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card\"\n className={cn(\n \"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm\",\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(\n \"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6\",\n className,\n )}\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(\"leading-none font-semibold\", 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-muted-foreground text-sm\", 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(\"flex items-center px-6 [.border-t]:pt-6\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n","import * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import * as React from \"react\";\nimport { Label as LabelPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n","import * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Textarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { CheckIcon } from \"lucide-react\";\nimport { Checkbox as CheckboxPrimitive } from \"radix-ui\";\n\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 border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Switch as SwitchPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Switch({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root> & {\n size?: \"sm\" | \"default\";\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n \"peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 group/switch inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6\",\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0\",\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n","import * as React from \"react\";\nimport { Progress as ProgressPrimitive } from \"radix-ui\";\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 \"bg-primary/20 relative h-2 w-full overflow-hidden rounded-full\",\n className,\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"bg-primary h-full w-full flex-1 transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n );\n}\n\nexport { Progress };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Separator as SeparatorPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current\",\n {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground\",\n destructive:\n \"text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90\",\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 \"col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight\",\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 \"text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Alert, AlertTitle, AlertDescription };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { XIcon } from \"lucide-react\";\nimport { Dialog as DialogPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean;\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n \"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg\",\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogFooter({\n className,\n showCloseButton = false,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showCloseButton?: boolean;\n}) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close asChild>\n <Button variant=\"outline\">Close</Button>\n </DialogPrimitive.Close>\n )}\n </div>\n );\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"text-lg leading-none font-semibold\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n","import * as React from \"react\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport { Accordion as AccordionPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Accordion({\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"border-b last:border-b-0\", className)}\n {...props}\n />\n );\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm\"\n {...props}\n >\n <div className={cn(\"pt-0 pb-4\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n );\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Avatar as AvatarPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Avatar({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn(\n \"relative flex size-10 shrink-0 overflow-hidden rounded-full\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\"aspect-square size-full\", className)}\n {...props}\n />\n );\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n \"bg-muted flex size-full items-center justify-center rounded-full\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Avatar, AvatarImage, AvatarFallback };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Slot } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center justify-center rounded-full border border-transparent px-2 py-0.5 text-xs font-medium 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: \"bg-primary text-primary-foreground [a&]:hover:bg-primary/90\",\n secondary:\n \"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90\",\n destructive:\n \"bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border-border 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 = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : \"span\";\n\n return (\n <Comp\n data-slot=\"badge\"\n data-variant={variant}\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { CircleIcon } from \"lucide-react\";\nimport { RadioGroup as RadioGroupPrimitive } from \"radix-ui\";\n\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(\"grid gap-3\", 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 \"border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\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=\"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n}\n\nexport { RadioGroup, RadioGroupItem };\n","import * as React from \"react\";\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\nimport { Select as SelectPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Select({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: \"sm\" | \"default\";\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"size-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"item-aligned\",\n align = \"center\",\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n align={align}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn(\"text-muted-foreground px-2 py-1.5 text-xs\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className,\n )}\n {...props}\n >\n <span\n data-slot=\"select-item-indicator\"\n className=\"absolute right-2 flex size-3.5 items-center justify-center\"\n >\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"bg-border pointer-events-none -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\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\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\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 || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\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=\"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 \"absolute size-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -left-12 -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 \"absolute size-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -right-12 -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 type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n};\n","import * as React from \"react\";\nimport { Collapsible as CollapsiblePrimitive } from \"radix-ui\";\n\nfunction Collapsible({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />;\n}\n\nfunction CollapsibleTrigger({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n return (\n <CollapsiblePrimitive.CollapsibleTrigger\n data-slot=\"collapsible-trigger\"\n {...props}\n />\n );\n}\n\nfunction CollapsibleContent({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return (\n <CollapsiblePrimitive.CollapsibleContent\n data-slot=\"collapsible-content\"\n {...props}\n />\n );\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n","import * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div\n data-slot=\"table-container\"\n className=\"relative w-full overflow-x-auto\"\n >\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"[&_tr]:border-b\", className)}\n {...props}\n />\n );\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n );\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n \"bg-muted/50 border-t font-medium [&>tr]:last:border-b-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"text-muted-foreground mt-4 text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","import * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\n\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 \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/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 \"group/drawer-content bg-background fixed z-50 flex h-auto flex-col\",\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]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg 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]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg 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]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm\",\n \"data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm\",\n className,\n )}\n {...props}\n >\n <div className=\"bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full 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 \"flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left\",\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(\"mt-auto flex flex-col gap-2 p-4\", 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(\"text-foreground font-semibold\", 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-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\nimport { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return (\n <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n );\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md\",\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return (\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n );\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-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 DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"bg-border -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"text-muted-foreground ml-auto text-xs tracking-widest\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n","import * as React from \"react\";\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n MoreHorizontalIcon,\n} from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\nimport { buttonVariants, type Button } from \"./button\";\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(\"flex flex-row items-center gap-1\", 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=\"hidden sm:block\">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=\"hidden sm:block\">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(\"flex size-9 items-center justify-center\", className)}\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 PaginationLink,\n PaginationItem,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Popover as PopoverPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nfunction PopoverHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"popover-header\"\n className={cn(\"flex flex-col gap-1 text-sm\", className)}\n {...props}\n />\n );\n}\n\nfunction PopoverTitle({ className, ...props }: React.ComponentProps<\"h2\">) {\n return (\n <div\n data-slot=\"popover-title\"\n className={cn(\"font-medium\", className)}\n {...props}\n />\n );\n}\n\nfunction PopoverDescription({\n className,\n ...props\n}: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"popover-description\"\n className={cn(\"text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Popover,\n PopoverTrigger,\n PopoverContent,\n PopoverAnchor,\n PopoverHeader,\n PopoverTitle,\n PopoverDescription,\n};\n","import { cn } from \"../lib/utils\";\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"bg-accent animate-pulse rounded-md\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slider as SliderPrimitive } from \"radix-ui\";\n\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 \"relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 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 \"bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5\",\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n \"bg-primary absolute 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=\"border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n );\n}\n\nexport { Slider };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Tabs as TabsPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Tabs({\n className,\n orientation = \"horizontal\",\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n data-orientation={orientation}\n orientation={orientation}\n className={cn(\n \"group/tabs flex gap-2 data-[orientation=horizontal]:flex-col\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst tabsListVariants = cva(\n \"rounded-lg p-[3px] group-data-[orientation=horizontal]/tabs:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col\",\n {\n variants: {\n variant: {\n default: \"bg-muted\",\n line: \"gap-1 bg-transparent\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nfunction TabsList({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List> &\n VariantProps<typeof tabsListVariants>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n data-variant={variant}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground/60 hover:text-foreground dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n \"group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent\",\n \"data-[state=active]:bg-background dark:data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 data-[state=active]:text-foreground\",\n \"after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 outline-none\", className)}\n {...props}\n />\n );\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Toggle as TogglePrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center gap-2 rounded-md 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]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-2 min-w-9\",\n sm: \"h-8 px-1.5 min-w-8\",\n lg: \"h-10 px-2.5 min-w-10\",\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","\"use client\";\n\nimport * as React from \"react\";\nimport { type VariantProps } from \"class-variance-authority\";\nimport { ToggleGroup as ToggleGroupPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\nimport { toggleVariants } from \"./toggle\";\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number;\n }\n>({\n size: \"default\",\n variant: \"default\",\n spacing: 0,\n});\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n children,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants> & {\n spacing?: number;\n }) {\n return (\n <ToggleGroupPrimitive.Root\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n \"group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs\",\n className,\n )}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size, spacing }}>\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 data-spacing={context.spacing}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n \"w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10\",\n \"data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=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","\"use client\";\n\nimport * as React from \"react\";\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />;\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n \"bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance\",\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n"],"mappings":";;;;;AAEA,SAAS,YAAAA,iBAAgB;AACzB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;;;ACPP,SAAS,WAA8B;AACvC,SAAS,YAAY;;;ACFrB,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ADgDI;AA/CJ,IAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,aACE;AAAA,QACF,SACE;AAAA,QACF,WACE;AAAA,QACF,OACE;AAAA,QACF,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,WAAW;AAAA,QACX,WAAW;AAAA,QACX,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,SAAS,OAAO;AAAA,EACd;AAAA,EACA,UAAU;AAAA,EACV,OAAO;AAAA,EACP,UAAU;AAAA,EACV,GAAG;AACL,GAGK;AACH,QAAM,OAAO,UAAU,KAAK,OAAO;AAEnC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,gBAAc;AAAA,MACd,aAAW;AAAA,MACX,WAAW,GAAG,eAAe,EAAE,SAAS,MAAM,UAAU,CAAC,CAAC;AAAA,MACzD,GAAG;AAAA;AAAA,EACN;AAEJ;;;AEvDI,gBAAAC,YAAA;AAFJ,SAAS,KAAK,EAAE,WAAW,GAAG,MAAM,GAAgC;AAClE,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,WAAW,EAAE,WAAW,GAAG,MAAM,GAAgC;AACxE,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,UAAU,EAAE,WAAW,GAAG,MAAM,GAAgC;AACvE,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,8BAA8B,SAAS;AAAA,MACpD,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,gBAAgB,EAAE,WAAW,GAAG,MAAM,GAAgC;AAC7E,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,iCAAiC,SAAS;AAAA,MACvD,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,YAAY,EAAE,WAAW,GAAG,MAAM,GAAgC;AACzE,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,QAAQ,SAAS;AAAA,MAC9B,GAAG;AAAA;AAAA,EACN;AAEJ;;;ACpDI,gBAAAC,YAAA;AAFJ,SAAS,MAAM,EAAE,WAAW,MAAM,GAAG,MAAM,GAAkC;AAC3E,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;ACjBA,SAAS,SAAS,sBAAsB;AASpC,gBAAAC,YAAA;AALJ,SAAS,MAAM;AAAA,EACb;AAAA,EACA,GAAG;AACL,GAAqD;AACnD,SACE,gBAAAA;AAAA,IAAC,eAAe;AAAA,IAAf;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;ACbI,gBAAAC,YAAA;AAFJ,SAAS,SAAS,EAAE,WAAW,GAAG,MAAM,GAAqC;AAC3E,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;ACZA,SAAS,iBAAiB;AAC1B,SAAS,YAAY,yBAAyB;AAqBtC,gBAAAC,YAAA;AAjBR,SAAS,SAAS;AAAA,EAChB;AAAA,EACA,GAAG;AACL,GAAwD;AACtD,SACE,gBAAAA;AAAA,IAAC,kBAAkB;AAAA,IAAlB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,0BAAAA;AAAA,QAAC,kBAAkB;AAAA,QAAlB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,UAEV,0BAAAA,KAAC,aAAU,WAAU,YAAW;AAAA;AAAA,MAClC;AAAA;AAAA,EACF;AAEJ;;;AC1BA,SAAS,UAAU,uBAAuB;AAqBpC,gBAAAC,YAAA;AAjBN,SAAS,OAAO;AAAA,EACd;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,GAEG;AACD,SACE,gBAAAA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,aAAW;AAAA,MACX,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,0BAAAA;AAAA,QAAC,gBAAgB;AAAA,QAAhB;AAAA,UACC,aAAU;AAAA,UACV,WAAW;AAAA,YACT;AAAA,UACF;AAAA;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;;;AC/BA,SAAS,YAAY,yBAAyB;AAkBxC,gBAAAC,YAAA;AAdN,SAAS,SAAS;AAAA,EAChB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAwD;AACtD,SACE,gBAAAA;AAAA,IAAC,kBAAkB;AAAA,IAAlB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,0BAAAA;AAAA,QAAC,kBAAkB;AAAA,QAAlB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,UACV,OAAO,EAAE,WAAW,eAAe,OAAO,SAAS,EAAE,KAAK;AAAA;AAAA,MAC5D;AAAA;AAAA,EACF;AAEJ;;;ACvBA,SAAS,aAAa,0BAA0B;AAW5C,gBAAAC,YAAA;AAPJ,SAAS,UAAU;AAAA,EACjB;AAAA,EACA,cAAc;AAAA,EACd,aAAa;AAAA,EACb,GAAG;AACL,GAAyD;AACvD,SACE,gBAAAA;AAAA,IAAC,mBAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;ACxBA,SAAS,OAAAC,YAA8B;AA0BnC,gBAAAC,aAAA;AAtBJ,IAAM,gBAAgBC;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,aACE;AAAA,MACJ;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAEA,SAAS,MAAM;AAAA,EACb;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAqE;AACnE,SACE,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,MAAK;AAAA,MACL,WAAW,GAAG,cAAc,EAAE,QAAQ,CAAC,GAAG,SAAS;AAAA,MAClD,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,WAAW,EAAE,WAAW,GAAG,MAAM,GAAgC;AACxE,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA,GAAG;AACL,GAAgC;AAC9B,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;AC5DA,SAAS,aAAa;AACtB,SAAS,UAAU,uBAAuB;AAQjC,gBAAAE,OA0DC,YA1DD;AAHT,SAAS,OAAO;AAAA,EACd,GAAG;AACL,GAAsD;AACpD,SAAO,gBAAAA,MAAC,gBAAgB,MAAhB,EAAqB,aAAU,UAAU,GAAG,OAAO;AAC7D;AAQA,SAAS,aAAa;AAAA,EACpB,GAAG;AACL,GAAwD;AACtD,SAAO,gBAAAC,MAAC,gBAAgB,QAAhB,EAAuB,aAAU,iBAAiB,GAAG,OAAO;AACtE;AAQA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA,GAAG;AACL,GAAyD;AACvD,SACE,gBAAAC;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA,kBAAkB;AAAA,EAClB,GAAG;AACL,GAEG;AACD,SACE,qBAAC,gBAAa,aAAU,iBACtB;AAAA,oBAAAA,MAAC,iBAAc;AAAA,IACf;AAAA,MAAC,gBAAgB;AAAA,MAAhB;AAAA,QACC,aAAU;AAAA,QACV,WAAW;AAAA,UACT;AAAA,UACA;AAAA,QACF;AAAA,QACC,GAAG;AAAA,QAEH;AAAA;AAAA,UACA,mBACC;AAAA,YAAC,gBAAgB;AAAA,YAAhB;AAAA,cACC,aAAU;AAAA,cACV,WAAU;AAAA,cAEV;AAAA,gCAAAA,MAAC,SAAM;AAAA,gBACP,gBAAAA,MAAC,UAAK,WAAU,WAAU,mBAAK;AAAA;AAAA;AAAA,UACjC;AAAA;AAAA;AAAA,IAEJ;AAAA,KACF;AAEJ;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,MAAM,GAAgC;AAC1E,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,gDAAgD,SAAS;AAAA,MACtE,GAAG;AAAA;AAAA,EACN;AAEJ;AA6BA,SAAS,YAAY;AAAA,EACnB;AAAA,EACA,GAAG;AACL,GAAuD;AACrD,SACE,gBAAAC;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,sCAAsC,SAAS;AAAA,MAC5D,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,kBAAkB;AAAA,EACzB;AAAA,EACA,GAAG;AACL,GAA6D;AAC3D,SACE,gBAAAA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,iCAAiC,SAAS;AAAA,MACvD,GAAG;AAAA;AAAA,EACN;AAEJ;;;AC/IA,SAAS,uBAAuB;AAChC,SAAS,aAAa,0BAA0B;AAOvC,gBAAAC,OAuBH,QAAAC,aAvBG;AAHT,SAAS,UAAU;AAAA,EACjB,GAAG;AACL,GAAyD;AACvD,SAAO,gBAAAD,MAAC,mBAAmB,MAAnB,EAAwB,aAAU,aAAa,GAAG,OAAO;AACnE;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA,GAAG;AACL,GAAyD;AACvD,SACE,gBAAAA;AAAA,IAAC,mBAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,4BAA4B,SAAS;AAAA,MAClD,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA4D;AAC1D,SACE,gBAAAA,MAAC,mBAAmB,QAAnB,EAA0B,WAAU,QACnC,0BAAAC;AAAA,IAAC,mBAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,QACD,gBAAAD,MAAC,mBAAgB,WAAU,+GAA8G;AAAA;AAAA;AAAA,EAC3I,GACF;AAEJ;AAEA,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA4D;AAC1D,SACE,gBAAAA;AAAA,IAAC,mBAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAU;AAAA,MACT,GAAG;AAAA,MAEJ,0BAAAA,MAAC,SAAI,WAAW,GAAG,aAAa,SAAS,GAAI,UAAS;AAAA;AAAA,EACxD;AAEJ;;;AC1DA,SAAS,UAAU,uBAAuB;AAStC,gBAAAE,aAAA;AALJ,SAAS,OAAO;AAAA,EACd;AAAA,EACA,GAAG;AACL,GAAsD;AACpD,SACE,gBAAAA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,YAAY;AAAA,EACnB;AAAA,EACA,GAAG;AACL,GAAuD;AACrD,SACE,gBAAAA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,2BAA2B,SAAS;AAAA,MACjD,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA,GAAG;AACL,GAA0D;AACxD,SACE,gBAAAA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;ACjDA,SAAS,OAAAC,YAA8B;AACvC,SAAS,QAAAC,aAAY;AAkCjB,gBAAAC,aAAA;AA9BJ,IAAM,gBAAgBC;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,WACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,MACJ;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAEA,SAAS,MAAM;AAAA,EACb;AAAA,EACA,UAAU;AAAA,EACV,UAAU;AAAA,EACV,GAAG;AACL,GAC8D;AAC5D,QAAM,OAAO,UAAUC,MAAK,OAAO;AAEnC,SACE,gBAAAF;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,gBAAc;AAAA,MACd,WAAW,GAAG,cAAc,EAAE,QAAQ,CAAC,GAAG,SAAS;AAAA,MAClD,GAAG;AAAA;AAAA,EACN;AAEJ;;;ACxCA,SAAS,kBAAkB;AAC3B,SAAS,cAAc,2BAA2B;AAS9C,gBAAAG,aAAA;AALJ,SAAS,WAAW;AAAA,EAClB;AAAA,EACA,GAAG;AACL,GAA0D;AACxD,SACE,gBAAAA;AAAA,IAAC,oBAAoB;AAAA,IAApB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,cAAc,SAAS;AAAA,MACpC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA,GAAG;AACL,GAA0D;AACxD,SACE,gBAAAA;AAAA,IAAC,oBAAoB;AAAA,IAApB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,0BAAAA;AAAA,QAAC,oBAAoB;AAAA,QAApB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,UAEV,0BAAAA,MAAC,cAAW,WAAU,mFAAkF;AAAA;AAAA,MAC1G;AAAA;AAAA,EACF;AAEJ;;;ACzCA,SAAS,aAAAC,YAAW,mBAAAC,kBAAiB,qBAAqB;AAC1D,SAAS,UAAU,uBAAuB;AAOjC,gBAAAC,OAwBL,QAAAC,aAxBK;AAHT,SAAS,OAAO;AAAA,EACd,GAAG;AACL,GAAsD;AACpD,SAAO,gBAAAD,MAAC,gBAAgB,MAAhB,EAAqB,aAAU,UAAU,GAAG,OAAO;AAC7D;AAQA,SAAS,YAAY;AAAA,EACnB,GAAG;AACL,GAAuD;AACrD,SAAO,gBAAAE,MAAC,gBAAgB,OAAhB,EAAsB,aAAU,gBAAgB,GAAG,OAAO;AACpE;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA,GAAG;AACL,GAEG;AACD,SACE,gBAAAC;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,aAAW;AAAA,MACX,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,QACD,gBAAAD,MAAC,gBAAgB,MAAhB,EAAqB,SAAO,MAC3B,0BAAAA,MAACE,kBAAA,EAAgB,WAAU,qBAAoB,GACjD;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,GAAG;AACL,GAAyD;AACvD,SACE,gBAAAF,MAAC,gBAAgB,QAAhB,EACC,0BAAAC;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA,aAAa,YACX;AAAA,QACF;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,wBAAAD,MAAC,wBAAqB;AAAA,QACtB,gBAAAA;AAAA,UAAC,gBAAgB;AAAA,UAAhB;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA,aAAa,YACX;AAAA,YACJ;AAAA,YAEC;AAAA;AAAA,QACH;AAAA,QACA,gBAAAA,MAAC,0BAAuB;AAAA;AAAA;AAAA,EAC1B,GACF;AAEJ;AAeA,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAsD;AACpD,SACE,gBAAAG;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,wBAAAC;AAAA,UAAC;AAAA;AAAA,YACC,aAAU;AAAA,YACV,WAAU;AAAA,YAEV,0BAAAA,MAAC,gBAAgB,eAAhB,EACC,0BAAAA,MAACC,YAAA,EAAU,WAAU,UAAS,GAChC;AAAA;AAAA,QACF;AAAA,QACA,gBAAAD,MAAC,gBAAgB,UAAhB,EAA0B,UAAS;AAAA;AAAA;AAAA,EACtC;AAEJ;AAeA,SAAS,qBAAqB;AAAA,EAC5B;AAAA,EACA,GAAG;AACL,GAAgE;AAC9D,SACE,gBAAAE;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,0BAAAA,MAAC,iBAAc,WAAU,UAAS;AAAA;AAAA,EACpC;AAEJ;AAEA,SAAS,uBAAuB;AAAA,EAC9B;AAAA,EACA,GAAG;AACL,GAAkE;AAChE,SACE,gBAAAA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,0BAAAA,MAACC,kBAAA,EAAgB,WAAU,UAAS;AAAA;AAAA,EACtC;AAEJ;;;AC5KA,YAAY,WAAW;AACvB,OAAO,sBAEA;AACP,SAAS,WAAW,kBAAkB;AAkHhC,gBAAAC,OA8DF,QAAAC,aA9DE;AAxFN,IAAM,kBAAwB,oBAA2C,IAAI;AAE7E,SAAS,cAAc;AACrB,QAAM,UAAgB,iBAAW,eAAe;AAEhD,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,gDAAgD;AAAA,EAClE;AAEA,SAAO;AACT;AAEA,SAAS,SAAS;AAAA,EAChB,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAgD;AAC9C,QAAM,CAAC,aAAa,GAAG,IAAI;AAAA,IACzB;AAAA,MACE,GAAG;AAAA,MACH,MAAM,gBAAgB,eAAe,MAAM;AAAA,IAC7C;AAAA,IACA;AAAA,EACF;AACA,QAAM,CAAC,eAAe,gBAAgB,IAAU,eAAS,KAAK;AAC9D,QAAM,CAAC,eAAe,gBAAgB,IAAU,eAAS,KAAK;AAE9D,QAAM,WAAiB,kBAAY,CAACC,SAAqB;AACvD,QAAI,CAACA,KAAK;AACV,qBAAiBA,KAAI,cAAc,CAAC;AACpC,qBAAiBA,KAAI,cAAc,CAAC;AAAA,EACtC,GAAG,CAAC,CAAC;AAEL,QAAM,aAAmB,kBAAY,MAAM;AACzC,SAAK,WAAW;AAAA,EAClB,GAAG,CAAC,GAAG,CAAC;AAER,QAAM,aAAmB,kBAAY,MAAM;AACzC,SAAK,WAAW;AAAA,EAClB,GAAG,CAAC,GAAG,CAAC;AAER,QAAM,gBAAsB;AAAA,IAC1B,CAAC,UAA+C;AAC9C,UAAI,MAAM,QAAQ,aAAa;AAC7B,cAAM,eAAe;AACrB,mBAAW;AAAA,MACb,WAAW,MAAM,QAAQ,cAAc;AACrC,cAAM,eAAe;AACrB,mBAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA,CAAC,YAAY,UAAU;AAAA,EACzB;AAEA,EAAM,gBAAU,MAAM;AACpB,QAAI,CAAC,OAAO,CAAC,OAAQ;AACrB,WAAO,GAAG;AAAA,EACZ,GAAG,CAAC,KAAK,MAAM,CAAC;AAEhB,EAAM,gBAAU,MAAM;AACpB,QAAI,CAAC,IAAK;AACV,aAAS,GAAG;AACZ,QAAI,GAAG,UAAU,QAAQ;AACzB,QAAI,GAAG,UAAU,QAAQ;AAEzB,WAAO,MAAM;AACX,WAAK,IAAI,UAAU,QAAQ;AAAA,IAC7B;AAAA,EACF,GAAG,CAAC,KAAK,QAAQ,CAAC;AAElB,SACE,gBAAAF;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA,aACE,gBAAgB,MAAM,SAAS,MAAM,aAAa;AAAA,QACpD;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MAEA,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,kBAAkB;AAAA,UAClB,WAAW,GAAG,YAAY,SAAS;AAAA,UACnC,MAAK;AAAA,UACL,wBAAqB;AAAA,UACrB,aAAU;AAAA,UACT,GAAG;AAAA,UAEH;AAAA;AAAA,MACH;AAAA;AAAA,EACF;AAEJ;AAEA,SAAS,gBAAgB,EAAE,WAAW,GAAG,MAAM,GAAgC;AAC7E,QAAM,EAAE,aAAa,YAAY,IAAI,YAAY;AAEjD,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL,WAAU;AAAA,MACV,aAAU;AAAA,MAEV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA,gBAAgB,eAAe,UAAU;AAAA,YACzC;AAAA,UACF;AAAA,UACC,GAAG;AAAA;AAAA,MACN;AAAA;AAAA,EACF;AAEJ;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,MAAM,GAAgC;AAC1E,QAAM,EAAE,YAAY,IAAI,YAAY;AAEpC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,wBAAqB;AAAA,MACrB,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA,gBAAgB,eAAe,SAAS;AAAA,QACxC;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA,UAAU;AAAA,EACV,OAAO;AAAA,EACP,GAAG;AACL,GAAwC;AACtC,QAAM,EAAE,aAAa,YAAY,cAAc,IAAI,YAAY;AAE/D,SACE,gBAAAC;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA,gBAAgB,eACZ,sCACA;AAAA,QACJ;AAAA,MACF;AAAA,MACA,UAAU,CAAC;AAAA,MACX,SAAS;AAAA,MACR,GAAG;AAAA,MAEJ;AAAA,wBAAAD,MAAC,aAAU;AAAA,QACX,gBAAAA,MAAC,UAAK,WAAU,WAAU,4BAAc;AAAA;AAAA;AAAA,EAC1C;AAEJ;AAEA,SAAS,aAAa;AAAA,EACpB;AAAA,EACA,UAAU;AAAA,EACV,OAAO;AAAA,EACP,GAAG;AACL,GAAwC;AACtC,QAAM,EAAE,aAAa,YAAY,cAAc,IAAI,YAAY;AAE/D,SACE,gBAAAC;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA,gBAAgB,eACZ,uCACA;AAAA,QACJ;AAAA,MACF;AAAA,MACA,UAAU,CAAC;AAAA,MACX,SAAS;AAAA,MACR,GAAG;AAAA,MAEJ;AAAA,wBAAAD,MAAC,cAAW;AAAA,QACZ,gBAAAA,MAAC,UAAK,WAAU,WAAU,wBAAU;AAAA;AAAA;AAAA,EACtC;AAEJ;;;ACtOA,SAAS,eAAe,4BAA4B;AAK3C,gBAAAG,aAAA;AAHT,SAAS,YAAY;AAAA,EACnB,GAAG;AACL,GAA2D;AACzD,SAAO,gBAAAA,MAAC,qBAAqB,MAArB,EAA0B,aAAU,eAAe,GAAG,OAAO;AACvE;AAEA,SAAS,mBAAmB;AAAA,EAC1B,GAAG;AACL,GAAyE;AACvE,SACE,gBAAAA;AAAA,IAAC,qBAAqB;AAAA,IAArB;AAAA,MACC,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,mBAAmB;AAAA,EAC1B,GAAG;AACL,GAAyE;AACvE,SACE,gBAAAA;AAAA,IAAC,qBAAqB;AAAA,IAArB;AAAA,MACC,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACN;AAEJ;;;ACnBM,gBAAAC,aAAA;AANN,SAAS,MAAM,EAAE,WAAW,GAAG,MAAM,GAAkC;AACrE,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAU;AAAA,MAEV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,aAAU;AAAA,UACV,WAAW,GAAG,iCAAiC,SAAS;AAAA,UACvD,GAAG;AAAA;AAAA,MACN;AAAA;AAAA,EACF;AAEJ;AAEA,SAAS,YAAY,EAAE,WAAW,GAAG,MAAM,GAAkC;AAC3E,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,mBAAmB,SAAS;AAAA,MACzC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,UAAU,EAAE,WAAW,GAAG,MAAM,GAAkC;AACzE,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,8BAA8B,SAAS;AAAA,MACpD,GAAG;AAAA;AAAA,EACN;AAEJ;AAeA,SAAS,SAAS,EAAE,WAAW,GAAG,MAAM,GAA+B;AACrE,SACE,gBAAAC;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,UAAU,EAAE,WAAW,GAAG,MAAM,GAA+B;AACtE,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,UAAU,EAAE,WAAW,GAAG,MAAM,GAA+B;AACtE,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,aAAa;AAAA,EACpB;AAAA,EACA,GAAG;AACL,GAAoC;AAClC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,sCAAsC,SAAS;AAAA,MAC5D,GAAG;AAAA;AAAA,EACN;AAEJ;;;ACrGA,SAAS,UAAU,uBAAuB;AAOjC,gBAAAC,OA6CH,QAAAC,aA7CG;AAHT,SAAS,OAAO;AAAA,EACd,GAAG;AACL,GAAsD;AACpD,SAAO,gBAAAD,MAAC,gBAAgB,MAAhB,EAAqB,aAAU,UAAU,GAAG,OAAO;AAC7D;AAQA,SAAS,aAAa;AAAA,EACpB,GAAG;AACL,GAAwD;AACtD,SAAO,gBAAAE,MAAC,gBAAgB,QAAhB,EAAuB,aAAU,iBAAiB,GAAG,OAAO;AACtE;AAQA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA,GAAG;AACL,GAAyD;AACvD,SACE,gBAAAC;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAyD;AACvD,SACE,gBAAAC,MAAC,gBAAa,aAAU,iBACtB;AAAA,oBAAAD,MAAC,iBAAc;AAAA,IACf,gBAAAC;AAAA,MAAC,gBAAgB;AAAA,MAAhB;AAAA,QACC,aAAU;AAAA,QACV,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACC,GAAG;AAAA,QAEJ;AAAA,0BAAAD,MAAC,SAAI,WAAU,mIAAkI;AAAA,UAChJ;AAAA;AAAA;AAAA,IACH;AAAA,KACF;AAEJ;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,MAAM,GAAgC;AAC1E,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAYA,SAAS,YAAY;AAAA,EACnB;AAAA,EACA,GAAG;AACL,GAAuD;AACrD,SACE,gBAAAE;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,iCAAiC,SAAS;AAAA,MACvD,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,kBAAkB;AAAA,EACzB;AAAA,EACA,GAAG;AACL,GAA6D;AAC3D,SACE,gBAAAA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,iCAAiC,SAAS;AAAA,MACvD,GAAG;AAAA;AAAA,EACN;AAEJ;;;ACpHA,SAAS,aAAAC,YAAW,kBAAkB,cAAAC,mBAAkB;AACxD,SAAS,gBAAgB,6BAA6B;AAO7C,gBAAAC,OAgFL,QAAAC,aAhFK;AAHT,SAAS,aAAa;AAAA,EACpB,GAAG;AACL,GAA4D;AAC1D,SAAO,gBAAAD,MAAC,sBAAsB,MAAtB,EAA2B,aAAU,iBAAiB,GAAG,OAAO;AAC1E;AAUA,SAAS,oBAAoB;AAAA,EAC3B,GAAG;AACL,GAA+D;AAC7D,SACE,gBAAAE;AAAA,IAAC,sBAAsB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,oBAAoB;AAAA,EAC3B;AAAA,EACA,aAAa;AAAA,EACb,GAAG;AACL,GAA+D;AAC7D,SACE,gBAAAA,MAAC,sBAAsB,QAAtB,EACC,0BAAAA;AAAA,IAAC,sBAAsB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN,GACF;AAEJ;AAUA,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,GAAG;AACL,GAGG;AACD,SACE,gBAAAC;AAAA,IAAC,sBAAsB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACV,cAAY;AAAA,MACZ,gBAAc;AAAA,MACd,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;ACjFA;AAAA,EACE;AAAA,EACA,oBAAAC;AAAA,EACA;AAAA,OACK;AAOH,gBAAAC,OA4DA,QAAAC,aA5DA;AAFJ,SAAS,WAAW,EAAE,WAAW,GAAG,MAAM,GAAgC;AACxE,SACE,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAW;AAAA,MACX,aAAU;AAAA,MACV,WAAW,GAAG,sCAAsC,SAAS;AAAA,MAC5D,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,kBAAkB;AAAA,EACzB;AAAA,EACA,GAAG;AACL,GAA+B;AAC7B,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,oCAAoC,SAAS;AAAA,MAC1D,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,eAAe,EAAE,GAAG,MAAM,GAA+B;AAChE,SAAO,gBAAAA,MAAC,QAAG,aAAU,mBAAmB,GAAG,OAAO;AACpD;AAOA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,GAAwB;AACtB,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,gBAAc,WAAW,SAAS;AAAA,MAClC,aAAU;AAAA,MACV,eAAa;AAAA,MACb,WAAW;AAAA,QACT,eAAe;AAAA,UACb,SAAS,WAAW,YAAY;AAAA,UAChC;AAAA,QACF,CAAC;AAAA,QACD;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA,GAAG;AACL,GAAgD;AAC9C,SACE,gBAAAC;AAAA,IAAC;AAAA;AAAA,MACC,cAAW;AAAA,MACX,MAAK;AAAA,MACL,WAAW,GAAG,0BAA0B,SAAS;AAAA,MAChD,GAAG;AAAA,MAEJ;AAAA,wBAAAD,MAAC,mBAAgB;AAAA,QACjB,gBAAAA,MAAC,UAAK,WAAU,mBAAkB,sBAAQ;AAAA;AAAA;AAAA,EAC5C;AAEJ;AAEA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA,GAAG;AACL,GAAgD;AAC9C,SACE,gBAAAC;AAAA,IAAC;AAAA;AAAA,MACC,cAAW;AAAA,MACX,MAAK;AAAA,MACL,WAAW,GAAG,0BAA0B,SAAS;AAAA,MAChD,GAAG;AAAA,MAEJ;AAAA,wBAAAD,MAAC,UAAK,WAAU,mBAAkB,kBAAI;AAAA,QACtC,gBAAAA,MAACE,mBAAA,EAAiB;AAAA;AAAA;AAAA,EACpB;AAEJ;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA,GAAG;AACL,GAAiC;AAC/B,SACE,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC,eAAW;AAAA,MACX,aAAU;AAAA,MACV,WAAW,GAAG,2CAA2C,SAAS;AAAA,MACjE,GAAG;AAAA,MAEJ;AAAA,wBAAAD,MAAC,sBAAmB,WAAU,UAAS;AAAA,QACvC,gBAAAA,MAAC,UAAK,WAAU,WAAU,wBAAU;AAAA;AAAA;AAAA,EACtC;AAEJ;;;ACjHA,SAAS,WAAW,wBAAwB;AAOnC,gBAAAG,aAAA;AAHT,SAAS,QAAQ;AAAA,EACf,GAAG;AACL,GAAuD;AACrD,SAAO,gBAAAA,MAAC,iBAAiB,MAAjB,EAAsB,aAAU,WAAW,GAAG,OAAO;AAC/D;AAEA,SAAS,eAAe;AAAA,EACtB,GAAG;AACL,GAA0D;AACxD,SAAO,gBAAAA,MAAC,iBAAiB,SAAjB,EAAyB,aAAU,mBAAmB,GAAG,OAAO;AAC1E;AAEA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,GAAG;AACL,GAA0D;AACxD,SACE,gBAAAA,MAAC,iBAAiB,QAAjB,EACC,0BAAAA;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN,GACF;AAEJ;;;ACnCI,gBAAAC,aAAA;AAFJ,SAAS,SAAS,EAAE,WAAW,GAAG,MAAM,GAAgC;AACtE,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,sCAAsC,SAAS;AAAA,MAC5D,GAAG;AAAA;AAAA,EACN;AAEJ;;;ACRA,YAAYC,YAAW;AACvB,SAAS,UAAU,uBAAuB;AAuBtC,SAkBI,OAAAC,OAlBJ,QAAAC,aAAA;AAnBJ,SAAS,OAAO;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA,MAAM;AAAA,EACN,MAAM;AAAA,EACN,GAAG;AACL,GAAsD;AACpD,QAAM,UAAgB;AAAA,IACpB,MACE,MAAM,QAAQ,KAAK,IACf,QACA,MAAM,QAAQ,YAAY,IACxB,eACA,CAAC,KAAK,GAAG;AAAA,IACjB,CAAC,OAAO,cAAc,KAAK,GAAG;AAAA,EAChC;AAEA,SACE,gBAAAA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,wBAAAD;AAAA,UAAC,gBAAgB;AAAA,UAAhB;AAAA,YACC,aAAU;AAAA,YACV,WAAW;AAAA,cACT;AAAA,YACF;AAAA,YAEA,0BAAAA;AAAA,cAAC,gBAAgB;AAAA,cAAhB;AAAA,gBACC,aAAU;AAAA,gBACV,WAAW;AAAA,kBACT;AAAA,gBACF;AAAA;AAAA,YACF;AAAA;AAAA,QACF;AAAA,QACC,MAAM,KAAK,EAAE,QAAQ,QAAQ,OAAO,GAAG,CAAC,GAAG,UAC1C,gBAAAA;AAAA,UAAC,gBAAgB;AAAA,UAAhB;AAAA,YACC,aAAU;AAAA,YAEV,WAAU;AAAA;AAAA,UADL;AAAA,QAEP,CACD;AAAA;AAAA;AAAA,EACH;AAEJ;;;ACzDA,SAAS,OAAAE,YAA8B;AACvC,SAAS,QAAQ,qBAAqB;AAUlC,gBAAAC,aAAA;AANJ,SAAS,KAAK;AAAA,EACZ;AAAA,EACA,cAAc;AAAA,EACd,GAAG;AACL,GAAoD;AAClD,SACE,gBAAAA;AAAA,IAAC,cAAc;AAAA,IAAd;AAAA,MACC,aAAU;AAAA,MACV,oBAAkB;AAAA,MAClB;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,IAAM,mBAAmBC;AAAA,EACvB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAEA,SAAS,SAAS;AAAA,EAChB;AAAA,EACA,UAAU;AAAA,EACV,GAAG;AACL,GACyC;AACvC,SACE,gBAAAD;AAAA,IAAC,cAAc;AAAA,IAAd;AAAA,MACC,aAAU;AAAA,MACV,gBAAc;AAAA,MACd,WAAW,GAAG,iBAAiB,EAAE,QAAQ,CAAC,GAAG,SAAS;AAAA,MACrD,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,YAAY;AAAA,EACnB;AAAA,EACA,GAAG;AACL,GAAuD;AACrD,SACE,gBAAAA;AAAA,IAAC,cAAc;AAAA,IAAd;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;AC1EA,SAAS,OAAAE,YAA8B;AACvC,SAAS,UAAU,uBAAuB;AAkCtC,gBAAAC,aAAA;AA9BJ,IAAM,iBAAiBC;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,SACE;AAAA,MACJ;AAAA,MACA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,SAAS,OAAO;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GACuC;AACrC,SACE,gBAAAD;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,eAAe,EAAE,SAAS,MAAM,UAAU,CAAC,CAAC;AAAA,MACzD,GAAG;AAAA;AAAA,EACN;AAEJ;;;ACxCA,YAAYE,YAAW;AAEvB,SAAS,eAAe,4BAA4B;AAuC9C,gBAAAC,aAAA;AAlCN,IAAM,qBAA2B,qBAI/B;AAAA,EACA,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AACX,CAAC;AAED,SAAS,YAAY;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA,GAAG;AACL,GAGK;AACH,SACE,gBAAAA;AAAA,IAAC,qBAAqB;AAAA,IAArB;AAAA,MACC,aAAU;AAAA,MACV,gBAAc;AAAA,MACd,aAAW;AAAA,MACX,gBAAc;AAAA,MACd,OAAO,EAAE,SAAS,QAAQ;AAAA,MAC1B,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,0BAAAA,MAAC,mBAAmB,UAAnB,EAA4B,OAAO,EAAE,SAAS,MAAM,QAAQ,GAC1D,UACH;AAAA;AAAA,EACF;AAEJ;AAEA,SAAS,gBAAgB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GACuC;AACrC,QAAM,UAAgB,kBAAW,kBAAkB;AAEnD,SACE,gBAAAA;AAAA,IAAC,qBAAqB;AAAA,IAArB;AAAA,MACC,aAAU;AAAA,MACV,gBAAc,QAAQ,WAAW;AAAA,MACjC,aAAW,QAAQ,QAAQ;AAAA,MAC3B,gBAAc,QAAQ;AAAA,MACtB,WAAW;AAAA,QACT,eAAe;AAAA,UACb,SAAS,QAAQ,WAAW;AAAA,UAC5B,MAAM,QAAQ,QAAQ;AAAA,QACxB,CAAC;AAAA,QACD;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;;;AC7EA,SAAS,WAAW,wBAAwB;AASxC,gBAAAC,OA4BE,QAAAC,aA5BF;AALJ,SAAS,gBAAgB;AAAA,EACvB,gBAAgB;AAAA,EAChB,GAAG;AACL,GAA2D;AACzD,SACE,gBAAAD;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,QAAQ;AAAA,EACf,GAAG;AACL,GAAuD;AACrD,SAAO,gBAAAA,MAAC,iBAAiB,MAAjB,EAAsB,aAAU,WAAW,GAAG,OAAO;AAC/D;AAEA,SAAS,eAAe;AAAA,EACtB,GAAG;AACL,GAA0D;AACxD,SAAO,gBAAAA,MAAC,iBAAiB,SAAjB,EAAyB,aAAU,mBAAmB,GAAG,OAAO;AAC1E;AAEA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA,GAAG;AACL,GAA0D;AACxD,SACE,gBAAAA,MAAC,iBAAiB,QAAjB,EACC,0BAAAC;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,QACD,gBAAAD,MAAC,iBAAiB,OAAjB,EAAuB,WAAU,sGAAqG;AAAA;AAAA;AAAA,EACzI,GACF;AAEJ;;;A9BuIU,SACkB,OAAAE,OADlB,QAAAC,cAAA;AAhEV,SAAS,mBACP,SACA,OAC4B;AAC5B,MAAI,SAAS,GAAG;AACd,WAAO,MAAM,KAAK,EAAE,QAAQ,MAAM,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC;AAAA,EACtD;AACA,QAAM,QAAoC,CAAC;AAC3C,QAAM,KAAK,CAAC;AACZ,MAAI,UAAU,GAAG;AACf,UAAM,KAAK,UAAU;AAAA,EACvB;AACA,QAAM,QAAQ,KAAK,IAAI,GAAG,UAAU,CAAC;AACrC,QAAM,MAAM,KAAK,IAAI,QAAQ,GAAG,UAAU,CAAC;AAC3C,WAAS,IAAI,OAAO,KAAK,KAAK,KAAK;AACjC,UAAM,KAAK,CAAC;AAAA,EACd;AACA,MAAI,UAAU,QAAQ,GAAG;AACvB,UAAM,KAAK,UAAU;AAAA,EACvB;AACA,QAAM,KAAK,KAAK;AAChB,SAAO;AACT;AAyBO,IAAM,mBAAmB;AAAA;AAAA,EAG9B,MAAM,CAAC,EAAE,OAAO,SAAS,MAA+C;AACtE,UAAM,gBACJ,MAAM,aAAa,OACf,8BACA,MAAM,aAAa,OACjB,8BACA,MAAM,aAAa,OACjB,8BACA;AACV,UAAM,gBAAgB,MAAM,WAAW,YAAY;AAEnD,WACE,gBAAAA,OAAC,QAAK,WAAW,GAAG,eAAe,aAAa,GAC5C;AAAA,aAAM,SAAS,MAAM,gBACrB,gBAAAA,OAAC,cACE;AAAA,cAAM,SAAS,gBAAAD,MAAC,aAAW,gBAAM,OAAM;AAAA,QACvC,MAAM,eACL,gBAAAA,MAAC,mBAAiB,gBAAM,aAAY;AAAA,SAExC;AAAA,MAEF,gBAAAA,MAAC,eAAY,WAAU,uBAAuB,UAAS;AAAA,OACzD;AAAA,EAEJ;AAAA,EAEA,OAAO,CAAC,EAAE,OAAO,SAAS,MAAgD;AACxE,UAAM,eAAe,MAAM,cAAc;AACzC,UAAM,SAAiC;AAAA,MACrC,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AACA,UAAM,WAAmC;AAAA,MACvC,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,SAAS;AAAA,IACX;AACA,UAAM,aAAqC;AAAA,MACzC,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,SAAS;AAAA,MACT,QAAQ;AAAA,IACV;AAEA,UAAM,WAAW,OAAO,MAAM,OAAO,IAAI,KAAK;AAC9C,UAAM,aAAa,SAAS,MAAM,SAAS,OAAO,KAAK;AACvD,UAAM,eAAe,WAAW,MAAM,WAAW,EAAE,KAAK;AAExD,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,QAAQ,eAAe,uBAAuB,UAAU,IAAI,QAAQ,IAAI,UAAU,IAAI,YAAY;AAAA,QAE5G;AAAA;AAAA,IACH;AAAA,EAEJ;AAAA,EAEA,MAAM,CAAC,EAAE,OAAO,SAAS,MAA+C;AACtE,UAAM,UAAkC;AAAA,MACtC,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AACA,UAAM,aAAqC;AAAA,MACzC,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAEA,UAAM,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,MAAM,WAAW,CAAC,CAAC;AACrD,UAAM,OAAO,QAAQ,CAAC,KAAK;AAC3B,UAAM,UAAU,WAAW,MAAM,OAAO,IAAI,KAAK;AAEjD,WAAO,gBAAAA,MAAC,SAAI,WAAW,QAAQ,IAAI,IAAI,OAAO,IAAK,UAAS;AAAA,EAC9D;AAAA,EAEA,WAAW,CAAC,EAAE,MAAM,MAAoD;AACtE,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,aAAa,MAAM,eAAe;AAAA,QAClC,WAAW,MAAM,gBAAgB,aAAa,gBAAgB;AAAA;AAAA,IAChE;AAAA,EAEJ;AAAA,EAEA,MAAM,CAAC;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAA+C;AAC7C,UAAM,OAAO,MAAM,QAAQ,CAAC;AAC5B,UAAM,CAAC,YAAY,aAAa,IAAI;AAAA,MAClC,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AACA,UAAM,CAAC,YAAY,aAAa,IAAIE;AAAA,MAClC,MAAM,gBAAgB,KAAK,CAAC,GAAG,SAAS;AAAA,IAC1C;AACA,UAAM,UAAU,CAAC,CAAC,UAAU;AAC5B,UAAM,QAAQ,UAAW,cAAc,KAAK,CAAC,GAAG,SAAS,KAAM;AAC/D,UAAM,WAAW,UAAU,gBAAgB;AAE3C,WACE,gBAAAD;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAe,CAAC,MAAM;AACpB,mBAAS,CAAC;AACV,eAAK,QAAQ;AAAA,QACf;AAAA,QAEA;AAAA,0BAAAD,MAAC,YACE,eAAK,IAAI,CAAC,QACT,gBAAAA,MAAC,eAA4B,OAAO,IAAI,OACrC,cAAI,SADW,IAAI,KAEtB,CACD,GACH;AAAA,UACC;AAAA;AAAA;AAAA,IACH;AAAA,EAEJ;AAAA,EAEA,WAAW,CAAC,EAAE,MAAM,MAAoD;AACtE,UAAM,QAAQ,MAAM,SAAS,CAAC;AAC9B,UAAM,aAAa,MAAM,SAAS;AAElC,UAAM,eAAe,MAAM,IAAI,CAAC,MAAM,MACpC,gBAAAC,OAAC,iBAAsB,OAAO,QAAQ,CAAC,IACrC;AAAA,sBAAAD,MAAC,oBAAkB,eAAK,OAAM;AAAA,MAC9B,gBAAAA,MAAC,oBAAkB,eAAK,SAAQ;AAAA,SAFd,CAGpB,CACD;AAED,QAAI,YAAY;AACd,aACE,gBAAAA,MAAC,aAAmB,MAAK,YAAW,WAAU,UAC3C,wBACH;AAAA,IAEJ;AACA,WACE,gBAAAA,MAAC,aAAmB,MAAK,UAAS,aAAW,MAAC,WAAU,UACrD,wBACH;AAAA,EAEJ;AAAA,EAEA,aAAa,CAAC;AAAA,IACZ;AAAA,IACA;AAAA,EACF,MAAsD;AACpD,UAAM,CAAC,MAAM,OAAO,IAAIE,UAAS,MAAM,eAAe,KAAK;AAC3D,WACE,gBAAAD,OAAC,eAAY,MAAY,cAAc,SAAS,WAAU,UACxD;AAAA,sBAAAD,MAAC,sBAAmB,SAAO,MACzB,0BAAAC,OAAC,YAAO,WAAU,2IACf;AAAA,cAAM;AAAA,QACP,gBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,gCAAgC,OAAO,eAAe,EAAE;AAAA,YACnE,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,QAAO;AAAA,YACP,aAAa;AAAA,YAEb,0BAAAA;AAAA,cAAC;AAAA;AAAA,gBACC,eAAc;AAAA,gBACd,gBAAe;AAAA,gBACf,GAAE;AAAA;AAAA,YACJ;AAAA;AAAA,QACF;AAAA,SACF,GACF;AAAA,MACA,gBAAAA,MAAC,sBAAmB,WAAU,QAAQ,UAAS;AAAA,OACjD;AAAA,EAEJ;AAAA,EAEA,QAAQ,CAAC,EAAE,OAAO,SAAS,MAAiD;AAC1E,UAAM,CAAC,MAAM,OAAO,IAAI,gBAAyB,MAAM,YAAY,EAAE;AACrE,WACE,gBAAAA,MAAC,UAAgB,MAAM,QAAQ,OAAO,cAAc,CAAC,MAAM,QAAQ,CAAC,GAClE,0BAAAC,OAAC,iBACC;AAAA,sBAAAA,OAAC,gBACC;AAAA,wBAAAD,MAAC,eAAa,gBAAM,OAAM;AAAA,QACzB,MAAM,eACL,gBAAAA,MAAC,qBAAmB,gBAAM,aAAY;AAAA,SAE1C;AAAA,MACC;AAAA,OACH,GACF;AAAA,EAEJ;AAAA,EAEA,QAAQ,CAAC,EAAE,OAAO,SAAS,MAAiD;AAC1E,UAAM,CAAC,MAAM,OAAO,IAAI,gBAAyB,MAAM,YAAY,EAAE;AACrE,WACE,gBAAAA,MAAC,UAAgB,MAAM,QAAQ,OAAO,cAAc,CAAC,MAAM,QAAQ,CAAC,GAClE,0BAAAC,OAAC,iBACC;AAAA,sBAAAA,OAAC,gBACC;AAAA,wBAAAD,MAAC,eAAa,gBAAM,OAAM;AAAA,QACzB,MAAM,eACL,gBAAAA,MAAC,qBAAmB,gBAAM,aAAY;AAAA,SAE1C;AAAA,MACA,gBAAAA,MAAC,SAAI,WAAU,OAAO,UAAS;AAAA,OACjC,GACF;AAAA,EAEJ;AAAA,EAEA,UAAU,CAAC,EAAE,MAAM,MAAmD;AACpE,UAAM,QAAQ,MAAM,SAAS,CAAC;AAC9B,WACE,gBAAAC,OAAC,YAAkB,WAAU,UAC3B;AAAA,sBAAAD,MAAC,mBACE,gBAAM,IAAI,CAAC,MAAM,MAChB,gBAAAA;AAAA,QAAC;AAAA;AAAA,UAEC,WAAU;AAAA,UAEV,0BAAAC,OAAC,SAAI,WAAU,sDACZ;AAAA,iBAAK,SACJ,gBAAAD,MAAC,QAAG,WAAU,8BAA8B,eAAK,OAAM;AAAA,YAExD,KAAK,eACJ,gBAAAA,MAAC,OAAE,WAAU,iCACV,eAAK,aACR;AAAA,aAEJ;AAAA;AAAA,QAZK;AAAA,MAaP,CACD,GACH;AAAA,MACA,gBAAAA,MAAC,oBAAiB;AAAA,MAClB,gBAAAA,MAAC,gBAAa;AAAA,OAChB;AAAA,EAEJ;AAAA;AAAA,EAIA,OAAO,CAAC,EAAE,MAAM,MAAgD;AAC9D,UAAM,UAAU,MAAM,WAAW,CAAC;AAClC,UAAM,QAAQ,MAAM,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,MAAM,CAAC;AAE5D,WACE,gBAAAA,MAAC,SAAI,WAAU,mDACb,0BAAAC,OAAC,SACE;AAAA,YAAM,WAAW,gBAAAD,MAAC,gBAAc,gBAAM,SAAQ;AAAA,MAC/C,gBAAAA,MAAC,eACC,0BAAAA,MAAC,YACE,kBAAQ,IAAI,CAAC,QACZ,gBAAAA,MAAC,aAAqB,iBAAN,GAAU,CAC3B,GACH,GACF;AAAA,MACA,gBAAAA,MAAC,aACE,eAAK,IAAI,CAAC,KAAK,MACd,gBAAAA,MAAC,YACE,cAAI,IAAI,CAAC,MAAM,MACd,gBAAAA,MAAC,aAAmB,kBAAJ,CAAS,CAC1B,KAHY,CAIf,CACD,GACH;AAAA,OACF,GACF;AAAA,EAEJ;AAAA,EAEA,SAAS,CAAC,EAAE,MAAM,MAAkD;AAClE,UAAM,QAAQ,MAAM,SAAS;AAC7B,UAAM,eACJ,UAAU,OACN,uBACA,UAAU,OACR,4BACA,UAAU,OACR,0BACA;AAEV,QAAI,UAAU;AACZ,aAAO,gBAAAA,MAAC,QAAG,WAAW,GAAG,YAAY,cAAe,gBAAM,MAAK;AACjE,QAAI,UAAU;AACZ,aAAO,gBAAAA,MAAC,QAAG,WAAW,GAAG,YAAY,cAAe,gBAAM,MAAK;AACjE,QAAI,UAAU;AACZ,aAAO,gBAAAA,MAAC,QAAG,WAAW,GAAG,YAAY,cAAe,gBAAM,MAAK;AACjE,WAAO,gBAAAA,MAAC,QAAG,WAAW,GAAG,YAAY,cAAe,gBAAM,MAAK;AAAA,EACjE;AAAA,EAEA,MAAM,CAAC,EAAE,MAAM,MAA+C;AAC5D,UAAM,YACJ,MAAM,YAAY,YACd,YACA,MAAM,YAAY,UAChB,kCACA,MAAM,YAAY,SAChB,kCACA,MAAM,YAAY,SAChB,qDACA;AAEZ,QAAI,MAAM,YAAY,QAAQ;AAC5B,aAAO,gBAAAA,MAAC,UAAK,WAAW,GAAG,SAAS,cAAe,gBAAM,MAAK;AAAA,IAChE;AACA,WAAO,gBAAAA,MAAC,OAAE,WAAW,GAAG,SAAS,cAAe,gBAAM,MAAK;AAAA,EAC7D;AAAA,EAEA,OAAO,CAAC,EAAE,MAAM,MAAgD;AAC9D,QAAI,MAAM,KAAK;AACb,aACE,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,KAAK,MAAM;AAAA,UACX,KAAK,MAAM,OAAO;AAAA,UAClB,OAAO,MAAM,SAAS;AAAA,UACtB,QAAQ,MAAM,UAAU;AAAA,UACxB,WAAU;AAAA;AAAA,MACZ;AAAA,IAEJ;AACA,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,OAAO,MAAM,SAAS,IAAI,QAAQ,MAAM,UAAU,GAAG;AAAA,QAE7D,gBAAM,OAAO;AAAA;AAAA,IAChB;AAAA,EAEJ;AAAA,EAEA,QAAQ,CAAC,EAAE,MAAM,MAAiD;AAChE,UAAM,OAAO,MAAM,QAAQ;AAC3B,UAAM,WAAW,KACd,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EACf,KAAK,EAAE,EACP,MAAM,GAAG,CAAC,EACV,YAAY;AACf,UAAM,YACJ,MAAM,SAAS,OACX,cACA,MAAM,SAAS,OACb,YACA;AAER,WACE,gBAAAC,OAAC,UAAgB,WAAW,WACzB;AAAA,YAAM,OAAO,gBAAAD,MAAC,eAAY,KAAK,MAAM,KAAK,KAAK,MAAM;AAAA,MACtD,gBAAAA,MAAC,kBAAgB,oBAAS;AAAA,OAC5B;AAAA,EAEJ;AAAA,EAEA,OAAO,CAAC,EAAE,MAAM,MAAgD;AAC9D,WAAO,gBAAAA,MAAC,SAAM,SAAS,MAAM,WAAW,WAAY,gBAAM,MAAK;AAAA,EACjE;AAAA,EAEA,OAAO,CAAC,EAAE,MAAM,MAAgD;AAC9D,UAAM,UAAU,MAAM,SAAS,UAAU,gBAAgB;AACzD,UAAM,cACJ,MAAM,SAAS,YACX,4GACA,MAAM,SAAS,YACb,kHACA,MAAM,SAAS,SACb,sGACA;AAEV,WACE,gBAAAC,OAAC,SAAM,SAAkB,WAAW,aAClC;AAAA,sBAAAD,MAAC,cAAY,gBAAM,OAAM;AAAA,MACxB,MAAM,WAAW,gBAAAA,MAAC,oBAAkB,gBAAM,SAAQ;AAAA,OACrD;AAAA,EAEJ;AAAA,EAEA,UAAU,CAAC,EAAE,MAAM,MAAmD;AACpE,UAAM,QAAQ,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,MAAM,SAAS,CAAC,CAAC;AACzD,WACE,gBAAAC,OAAC,SAAI,WAAU,aACZ;AAAA,YAAM,SACL,gBAAAD,MAAC,SAAM,WAAU,iCAAiC,gBAAM,OAAM;AAAA,MAEhE,gBAAAA,MAAC,YAAS,OAAc;AAAA,OAC1B;AAAA,EAEJ;AAAA,EAEA,UAAU,CAAC,EAAE,MAAM,MAAmD;AACpE,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,MAAM,UAAU,iBAAiB;AAAA,QAC5C,OAAO;AAAA,UACL,OAAO,MAAM,SAAS;AAAA,UACtB,QAAQ,MAAM,UAAU;AAAA,QAC1B;AAAA;AAAA,IACF;AAAA,EAEJ;AAAA,EAEA,SAAS,CAAC,EAAE,MAAM,MAAkD;AAClE,UAAM,YACJ,MAAM,SAAS,OACX,YACA,MAAM,SAAS,OACb,YACA;AACR,WACE,gBAAAC,OAAC,SAAI,WAAU,2BACb;AAAA,sBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW,GAAG,SAAS;AAAA,UACvB,SAAQ;AAAA,UACR,MAAK;AAAA,UAEL;AAAA,4BAAAD;AAAA,cAAC;AAAA;AAAA,gBACC,WAAU;AAAA,gBACV,IAAG;AAAA,gBACH,IAAG;AAAA,gBACH,GAAE;AAAA,gBACF,QAAO;AAAA,gBACP,aAAY;AAAA;AAAA,YACd;AAAA,YACA,gBAAAA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAU;AAAA,gBACV,MAAK;AAAA,gBACL,GAAE;AAAA;AAAA,YACJ;AAAA;AAAA;AAAA,MACF;AAAA,MACC,MAAM,SACL,gBAAAA,MAAC,UAAK,WAAU,iCAAiC,gBAAM,OAAM;AAAA,OAEjE;AAAA,EAEJ;AAAA,EAEA,SAAS,CAAC,EAAE,MAAM,MAAkD;AAClE,WACE,gBAAAA,MAAC,mBACC,0BAAAC,OAAC,WACC;AAAA,sBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAA,MAAC,UAAK,WAAU,mDACb,gBAAM,MACT,GACF;AAAA,MACA,gBAAAA,MAAC,kBACC,0BAAAA,MAAC,OAAG,gBAAM,SAAQ,GACpB;AAAA,OACF,GACF;AAAA,EAEJ;AAAA,EAEA,SAAS,CAAC,EAAE,MAAM,MAAkD;AAClE,WACE,gBAAAC,OAAC,WACC;AAAA,sBAAAD,MAAC,kBAAe,SAAO,MACrB,0BAAAA,MAAC,UAAO,SAAQ,WAAU,WAAU,WACjC,gBAAM,SACT,GACF;AAAA,MACA,gBAAAA,MAAC,kBAAe,WAAU,QACxB,0BAAAA,MAAC,OAAE,WAAU,WAAW,gBAAM,SAAQ,GACxC;AAAA,OACF;AAAA,EAEJ;AAAA;AAAA,EAIA,OAAO,CAAC;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAgD;AAC9C,UAAM,CAAC,YAAY,aAAa,IAAI;AAAA,MAClC,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AACA,UAAM,CAAC,YAAY,aAAa,IAAIE,UAAS,EAAE;AAC/C,UAAM,UAAU,CAAC,CAAC,UAAU;AAC5B,UAAM,QAAQ,UAAW,cAAc,KAAM;AAC7C,UAAM,WAAW,UAAU,gBAAgB;AAE3C,UAAM,gBAAgB,CAAC,EAAE,UAAU,SAAS,MAAM,QAAQ;AAC1D,UAAM,EAAE,QAAQ,SAAS,IAAI;AAAA,MAC3B,UAAU,SAAS;AAAA,MACnB,gBAAgB,EAAE,QAAQ,MAAM,UAAU,CAAC,EAAE,IAAI;AAAA,IACnD;AAEA,WACE,gBAAAD,OAAC,SAAI,WAAU,aACZ;AAAA,YAAM,SACL,gBAAAD,MAAC,SAAM,SAAS,MAAM,QAAQ,QAAY,gBAAM,OAAM;AAAA,MAExD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,MAAM,QAAQ;AAAA,UAClB,MAAM,MAAM,QAAQ;AAAA,UACpB,MAAM,MAAM,QAAQ;AAAA,UACpB,aAAa,MAAM,eAAe;AAAA,UAClC;AAAA,UACA,UAAU,CAAC,MAAM,SAAS,EAAE,OAAO,KAAK;AAAA,UACxC,WAAW,CAAC,MAAM;AAChB,gBAAI,EAAE,QAAQ,QAAS,MAAK,QAAQ;AAAA,UACtC;AAAA,UACA,SAAS,MAAM,KAAK,OAAO;AAAA,UAC3B,QAAQ,MAAM;AACZ,gBAAI,cAAe,UAAS;AAC5B,iBAAK,MAAM;AAAA,UACb;AAAA;AAAA,MACF;AAAA,MACC,OAAO,SAAS,KACf,gBAAAA,MAAC,OAAE,WAAU,4BAA4B,iBAAO,CAAC,GAAE;AAAA,OAEvD;AAAA,EAEJ;AAAA,EAEA,UAAU,CAAC;AAAA,IACT;AAAA,IACA;AAAA,EACF,MAAmD;AACjD,UAAM,CAAC,YAAY,aAAa,IAAI;AAAA,MAClC,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AACA,UAAM,CAAC,YAAY,aAAa,IAAIE,UAAS,EAAE;AAC/C,UAAM,UAAU,CAAC,CAAC,UAAU;AAC5B,UAAM,QAAQ,UAAW,cAAc,KAAM;AAC7C,UAAM,WAAW,UAAU,gBAAgB;AAE3C,UAAM,gBAAgB,CAAC,EAAE,UAAU,SAAS,MAAM,QAAQ;AAC1D,UAAM,EAAE,QAAQ,SAAS,IAAI;AAAA,MAC3B,UAAU,SAAS;AAAA,MACnB,gBAAgB,EAAE,QAAQ,MAAM,UAAU,CAAC,EAAE,IAAI;AAAA,IACnD;AAEA,WACE,gBAAAD,OAAC,SAAI,WAAU,aACZ;AAAA,YAAM,SACL,gBAAAD,MAAC,SAAM,SAAS,MAAM,QAAQ,QAAY,gBAAM,OAAM;AAAA,MAExD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,MAAM,QAAQ;AAAA,UAClB,MAAM,MAAM,QAAQ;AAAA,UACpB,aAAa,MAAM,eAAe;AAAA,UAClC,MAAM,MAAM,QAAQ;AAAA,UACpB;AAAA,UACA,UAAU,CAAC,MAAM,SAAS,EAAE,OAAO,KAAK;AAAA,UACxC,QAAQ,MAAM;AACZ,gBAAI,cAAe,UAAS;AAAA,UAC9B;AAAA;AAAA,MACF;AAAA,MACC,OAAO,SAAS,KACf,gBAAAA,MAAC,OAAE,WAAU,4BAA4B,iBAAO,CAAC,GAAE;AAAA,OAEvD;AAAA,EAEJ;AAAA,EAEA,QAAQ,CAAC;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAiD;AAC/C,UAAM,CAAC,YAAY,aAAa,IAAI;AAAA,MAClC,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AACA,UAAM,CAAC,YAAY,aAAa,IAAIE,UAAiB,EAAE;AACvD,UAAM,UAAU,CAAC,CAAC,UAAU;AAC5B,UAAM,QAAQ,UAAW,cAAc,KAAM;AAC7C,UAAM,WAAW,UAAU,gBAAgB;AAC3C,UAAM,aAAa,MAAM,WAAW,CAAC;AACrC,UAAM,UAAU,WAAW;AAAA,MAAI,CAAC,QAC9B,OAAO,QAAQ,WAAW,MAAM,OAAO,OAAO,EAAE;AAAA,IAClD;AAEA,UAAM,gBAAgB,CAAC,EAAE,UAAU,SAAS,MAAM,QAAQ;AAC1D,UAAM,EAAE,QAAQ,SAAS,IAAI;AAAA,MAC3B,UAAU,SAAS;AAAA,MACnB,gBAAgB,EAAE,QAAQ,MAAM,UAAU,CAAC,EAAE,IAAI;AAAA,IACnD;AAEA,WACE,gBAAAD,OAAC,SAAI,WAAU,aACb;AAAA,sBAAAD,MAAC,SAAO,gBAAM,OAAM;AAAA,MACpB,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,eAAe,CAAC,MAAM;AACpB,qBAAS,CAAC;AACV,gBAAI,cAAe,UAAS;AAC5B,iBAAK,QAAQ;AAAA,UACf;AAAA,UAEA;AAAA,4BAAAD,MAAC,iBAAc,WAAU,UACvB,0BAAAA,MAAC,eAAY,aAAa,MAAM,eAAe,aAAa,GAC9D;AAAA,YACA,gBAAAA,MAAC,iBACE,kBAAQ,IAAI,CAAC,KAAK,QACjB,gBAAAA,MAAC,cAAiC,OAAO,OAAO,UAAU,GAAG,IAC1D,iBADc,GAAG,GAAG,IAAI,GAAG,EAE9B,CACD,GACH;AAAA;AAAA;AAAA,MACF;AAAA,MACC,OAAO,SAAS,KACf,gBAAAA,MAAC,OAAE,WAAU,4BAA4B,iBAAO,CAAC,GAAE;AAAA,OAEvD;AAAA,EAEJ;AAAA,EAEA,UAAU,CAAC;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAmD;AACjD,UAAM,CAAC,cAAc,eAAe,IAAI;AAAA,MACtC,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AACA,UAAM,CAAC,cAAc,eAAe,IAAIE,UAAS,CAAC,CAAC,MAAM,OAAO;AAChE,UAAM,UAAU,CAAC,CAAC,UAAU;AAC5B,UAAM,UAAU,UAAW,gBAAgB,QAAS;AACpD,UAAM,aAAa,UAAU,kBAAkB;AAE/C,WACE,gBAAAD,OAAC,SAAI,WAAU,+BACb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,MAAM,QAAQ;AAAA,UAClB;AAAA,UACA,iBAAiB,CAAC,MAAM;AACtB,uBAAW,MAAM,IAAI;AACrB,iBAAK,QAAQ;AAAA,UACf;AAAA;AAAA,MACF;AAAA,MACA,gBAAAA,MAAC,SAAM,SAAS,MAAM,QAAQ,QAAW,WAAU,kBAChD,gBAAM,OACT;AAAA,OACF;AAAA,EAEJ;AAAA,EAEA,OAAO,CAAC;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAgD;AAC9C,UAAM,aAAa,MAAM,WAAW,CAAC;AACrC,UAAM,UAAU,WAAW;AAAA,MAAI,CAAC,QAC9B,OAAO,QAAQ,WAAW,MAAM,OAAO,OAAO,EAAE;AAAA,IAClD;AACA,UAAM,CAAC,YAAY,aAAa,IAAI;AAAA,MAClC,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AACA,UAAM,CAAC,YAAY,aAAa,IAAIE,UAAS,QAAQ,CAAC,KAAK,EAAE;AAC7D,UAAM,UAAU,CAAC,CAAC,UAAU;AAC5B,UAAM,QAAQ,UAAW,cAAc,KAAM;AAC7C,UAAM,WAAW,UAAU,gBAAgB;AAE3C,WACE,gBAAAD,OAAC,SAAI,WAAU,aACZ;AAAA,YAAM,SAAS,gBAAAD,MAAC,SAAO,gBAAM,OAAM;AAAA,MACpC,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,eAAe,CAAC,MAAM;AACpB,qBAAS,CAAC;AACV,iBAAK,QAAQ;AAAA,UACf;AAAA,UAEC,kBAAQ,IAAI,CAAC,KAAK,QACjB,gBAAAC,OAAC,SAA0B,WAAU,+BACnC;AAAA,4BAAAD;AAAA,cAAC;AAAA;AAAA,gBACC,OAAO,OAAO,UAAU,GAAG;AAAA,gBAC3B,IAAI,GAAG,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG;AAAA;AAAA,YACjC;AAAA,YACA,gBAAAA;AAAA,cAAC;AAAA;AAAA,gBACC,SAAS,GAAG,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG;AAAA,gBACpC,WAAU;AAAA,gBAET;AAAA;AAAA,YACH;AAAA,eAVQ,GAAG,GAAG,IAAI,GAAG,EAWvB,CACD;AAAA;AAAA,MACH;AAAA,OACF;AAAA,EAEJ;AAAA,EAEA,QAAQ,CAAC;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAiD;AAC/C,UAAM,CAAC,cAAc,eAAe,IAAI;AAAA,MACtC,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AACA,UAAM,CAAC,cAAc,eAAe,IAAIE,UAAS,CAAC,CAAC,MAAM,OAAO;AAChE,UAAM,UAAU,CAAC,CAAC,UAAU;AAC5B,UAAM,UAAU,UAAW,gBAAgB,QAAS;AACpD,UAAM,aAAa,UAAU,kBAAkB;AAE/C,WACE,gBAAAD,OAAC,SAAI,WAAU,+CACb;AAAA,sBAAAD,MAAC,SAAM,SAAS,MAAM,QAAQ,QAAW,WAAU,kBAChD,gBAAM,OACT;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,MAAM,QAAQ;AAAA,UAClB;AAAA,UACA,iBAAiB,CAAC,MAAM;AACtB,uBAAW,CAAC;AACZ,iBAAK,QAAQ;AAAA,UACf;AAAA;AAAA,MACF;AAAA,OACF;AAAA,EAEJ;AAAA,EAEA,QAAQ,CAAC;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAiD;AAC/C,UAAM,CAAC,YAAY,aAAa,IAAI;AAAA,MAClC,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AACA,UAAM,CAAC,YAAY,aAAa,IAAIE,UAAS,MAAM,OAAO,CAAC;AAC3D,UAAM,UAAU,CAAC,CAAC,UAAU;AAC5B,UAAM,QAAQ,UAAW,cAAc,MAAM,OAAO,IAAK;AACzD,UAAM,WAAW,UAAU,gBAAgB;AAE3C,WACE,gBAAAD,OAAC,SAAI,WAAU,aACZ;AAAA,YAAM,SACL,gBAAAA,OAAC,SAAI,WAAU,wBACb;AAAA,wBAAAD,MAAC,SAAM,WAAU,WAAW,gBAAM,OAAM;AAAA,QACxC,gBAAAA,MAAC,UAAK,WAAU,iCAAiC,iBAAM;AAAA,SACzD;AAAA,MAEF,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAO,CAAC,KAAK;AAAA,UACb,KAAK,MAAM,OAAO;AAAA,UAClB,KAAK,MAAM,OAAO;AAAA,UAClB,MAAM,MAAM,QAAQ;AAAA,UACpB,eAAe,CAAC,MAAM;AACpB,qBAAS,EAAE,CAAC,KAAK,CAAC;AAClB,iBAAK,QAAQ;AAAA,UACf;AAAA;AAAA,MACF;AAAA,OACF;AAAA,EAEJ;AAAA;AAAA,EAIA,QAAQ,CAAC,EAAE,OAAO,KAAK,MAAiD;AACtE,UAAM,UACJ,MAAM,YAAY,WACd,gBACA,MAAM,YAAY,cAChB,cACA;AAER,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,UAAU,MAAM,YAAY;AAAA,QAC5B,SAAS,MAAM,KAAK,OAAO;AAAA,QAE1B,gBAAM;AAAA;AAAA,IACT;AAAA,EAEJ;AAAA,EAEA,MAAM,CAAC,EAAE,OAAO,GAAG,MAA+C;AAChE,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAM,MAAM,QAAQ;AAAA,QACpB,WAAU;AAAA,QACV,SAAS,CAAC,MAAM;AACd,gBAAM,QAAQ,GAAG,OAAO;AACxB,cAAI,MAAM,qBAAsB,GAAE,eAAe;AACjD,gBAAM,KAAK;AAAA,QACb;AAAA,QAEC,gBAAM;AAAA;AAAA,IACT;AAAA,EAEJ;AAAA,EAEA,cAAc,CAAC;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAuD;AACrD,UAAM,QAAQ,MAAM,SAAS,CAAC;AAC9B,UAAM,CAAC,EAAE,aAAa,IAAI;AAAA,MACxB,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AACA,WACE,gBAAAC,OAAC,gBACC;AAAA,sBAAAD,MAAC,uBAAoB,SAAO,MAC1B,0BAAAA,MAAC,UAAO,SAAQ,WAAW,gBAAM,OAAM,GACzC;AAAA,MACA,gBAAAA,MAAC,uBACE,gBAAM,IAAI,CAAC,SACV,gBAAAA;AAAA,QAAC;AAAA;AAAA,UAEC,SAAS,MAAM;AACb,0BAAc,KAAK,KAAK;AACxB,iBAAK,QAAQ;AAAA,UACf;AAAA,UAEC,eAAK;AAAA;AAAA,QAND,KAAK;AAAA,MAOZ,CACD,GACH;AAAA,OACF;AAAA,EAEJ;AAAA,EAEA,QAAQ,CAAC;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAiD;AAC/C,UAAM,CAAC,cAAc,eAAe,IAAI;AAAA,MACtC,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AACA,UAAM,CAAC,cAAc,eAAe,IAAIE,UAAS,MAAM,WAAW,KAAK;AACvE,UAAM,UAAU,CAAC,CAAC,UAAU;AAC5B,UAAM,UAAU,UAAW,gBAAgB,QAAS;AACpD,UAAM,aAAa,UAAU,kBAAkB;AAE/C,WACE,gBAAAF;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,MAAM,WAAW;AAAA,QAC1B;AAAA,QACA,iBAAiB,CAAC,MAAM;AACtB,qBAAW,CAAC;AACZ,eAAK,QAAQ;AAAA,QACf;AAAA,QAEC,gBAAM;AAAA;AAAA,IACT;AAAA,EAEJ;AAAA,EAEA,aAAa,CAAC;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAsD;AACpD,UAAM,OAAO,MAAM,QAAQ;AAC3B,UAAM,QAAQ,MAAM,SAAS,CAAC;AAC9B,UAAM,CAAC,YAAY,aAAa,IAAI;AAAA,MAClC,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AACA,UAAM,CAAC,YAAY,aAAa,IAAIE,UAAS,MAAM,CAAC,GAAG,SAAS,EAAE;AAClE,UAAM,UAAU,CAAC,CAAC,UAAU;AAC5B,UAAM,QAAQ,UAAW,cAAc,KAAM;AAC7C,UAAM,WAAW,UAAU,gBAAgB;AAE3C,QAAI,SAAS,YAAY;AACvB,YAAM,WAAW,QAAQ,MAAM,MAAM,GAAG,EAAE,OAAO,OAAO,IAAI,CAAC;AAC7D,aACE,gBAAAF;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,OAAO;AAAA,UACP,eAAe,CAAC,MAAM;AACpB,qBAAS,EAAE,KAAK,GAAG,CAAC;AACpB,iBAAK,QAAQ;AAAA,UACf;AAAA,UAEC,gBAAM,IAAI,CAAC,SACV,gBAAAA,MAAC,mBAAiC,OAAO,KAAK,OAC3C,eAAK,SADc,KAAK,KAE3B,CACD;AAAA;AAAA,MACH;AAAA,IAEJ;AAEA,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL;AAAA,QACA,eAAe,CAAC,MAAM;AACpB,cAAI,GAAG;AACL,qBAAS,CAAC;AACV,iBAAK,QAAQ;AAAA,UACf;AAAA,QACF;AAAA,QAEC,gBAAM,IAAI,CAAC,SACV,gBAAAA,MAAC,mBAAiC,OAAO,KAAK,OAC3C,eAAK,SADc,KAAK,KAE3B,CACD;AAAA;AAAA,IACH;AAAA,EAEJ;AAAA,EAEA,aAAa,CAAC;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAsD;AACpD,UAAM,UAAU,MAAM,WAAW,CAAC;AAClC,UAAM,CAAC,eAAe,gBAAgB,IAAI;AAAA,MACxC,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AACA,UAAM,CAAC,YAAY,aAAa,IAAIE,UAAS,QAAQ,CAAC,GAAG,SAAS,EAAE;AACpE,UAAM,UAAU,CAAC,CAAC,UAAU;AAC5B,UAAM,QAAQ,UAAW,iBAAiB,KAAM;AAChD,UAAM,WAAW,UAAU,mBAAmB;AAE9C,WACE,gBAAAF,MAAC,SAAI,WAAU,+CACZ,kBAAQ,IAAI,CAAC,KAAK,MACjB,gBAAAA;AAAA,MAAC;AAAA;AAAA,QAEC,WAAW,yCACT,UAAU,IAAI,QACV,uCACA,8BACN,IAAI,IAAI,IAAI,2BAA2B,EAAE,IACvC,MAAM,IAAI,iBAAiB,EAC7B,IAAI,MAAM,QAAQ,SAAS,IAAI,iBAAiB,EAAE;AAAA,QAClD,SAAS,MAAM;AACb,mBAAS,IAAI,KAAK;AAClB,eAAK,QAAQ;AAAA,QACf;AAAA,QAEC,cAAI;AAAA;AAAA,MAbA,IAAI;AAAA,IAcX,CACD,GACH;AAAA,EAEJ;AAAA,EAEA,YAAY,CAAC;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAqD;AACnD,UAAM,CAAC,WAAW,YAAY,IAAI;AAAA,MAChC,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AACA,UAAM,cAAc,aAAa;AACjC,UAAM,aAAa,MAAM,cAAc;AACvC,UAAM,QAAQ,mBAAmB,aAAa,UAAU;AAExD,WACE,gBAAAA,MAAC,cACC,0BAAAC,OAAC,qBACC;AAAA,sBAAAD,MAAC,kBACC,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAS,CAAC,MAAM;AACd,cAAE,eAAe;AACjB,gBAAI,cAAc,GAAG;AACnB,2BAAa,cAAc,CAAC;AAC5B,mBAAK,QAAQ;AAAA,YACf;AAAA,UACF;AAAA;AAAA,MACF,GACF;AAAA,MACC,MAAM;AAAA,QAAI,CAAC,MAAM,QAChB,SAAS,aACP,gBAAAA,MAAC,kBACC,0BAAAA,MAAC,sBAAmB,KADD,YAAY,GAAG,EAEpC,IAEA,gBAAAA,MAAC,kBACC,0BAAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,UAAU,SAAS;AAAA,YACnB,SAAS,CAAC,MAAM;AACd,gBAAE,eAAe;AACjB,2BAAa,IAAI;AACjB,mBAAK,QAAQ;AAAA,YACf;AAAA,YAEC;AAAA;AAAA,QACH,KAXmB,IAYrB;AAAA,MAEJ;AAAA,MACA,gBAAAA,MAAC,kBACC,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAS,CAAC,MAAM;AACd,cAAE,eAAe;AACjB,gBAAI,cAAc,YAAY;AAC5B,2BAAa,cAAc,CAAC;AAC5B,mBAAK,QAAQ;AAAA,YACf;AAAA,UACF;AAAA;AAAA,MACF,GACF;AAAA,OACF,GACF;AAAA,EAEJ;AACF;","names":["useState","jsx","jsx","jsx","jsx","jsx","jsx","jsx","jsx","cva","jsx","cva","jsx","jsx","jsx","jsx","jsx","jsxs","jsx","cva","Slot","jsx","cva","Slot","jsx","CheckIcon","ChevronDownIcon","jsx","jsxs","jsx","jsxs","ChevronDownIcon","jsxs","jsx","CheckIcon","jsx","ChevronDownIcon","jsx","jsxs","api","jsx","jsx","jsx","jsx","jsxs","jsx","jsx","jsxs","jsx","CheckIcon","CircleIcon","jsx","jsxs","jsx","jsx","ChevronRightIcon","jsx","jsxs","ChevronRightIcon","jsx","jsx","React","jsx","jsxs","cva","jsx","cva","cva","jsx","cva","React","jsx","jsx","jsxs","jsx","jsxs","useState"]}
1
+ {"version":3,"sources":["../src/components.tsx","../src/ui/button.tsx","../src/lib/utils.ts","../src/ui/card.tsx","../src/ui/input.tsx","../src/ui/label.tsx","../src/ui/textarea.tsx","../src/ui/checkbox.tsx","../src/ui/switch.tsx","../src/ui/progress.tsx","../src/ui/separator.tsx","../src/ui/alert.tsx","../src/ui/dialog.tsx","../src/ui/accordion.tsx","../src/ui/avatar.tsx","../src/ui/badge.tsx","../src/ui/radio-group.tsx","../src/ui/select.tsx","../src/ui/carousel.tsx","../src/ui/collapsible.tsx","../src/ui/table.tsx","../src/ui/drawer.tsx","../src/ui/dropdown-menu.tsx","../src/ui/pagination.tsx","../src/ui/popover.tsx","../src/ui/skeleton.tsx","../src/ui/slider.tsx","../src/ui/tabs.tsx","../src/ui/toggle.tsx","../src/ui/toggle-group.tsx","../src/ui/tooltip.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\nimport {\n useBoundProp,\n useStateBinding,\n useFieldValidation,\n type BaseComponentProps,\n} from \"@json-render/react\";\n\nimport { Button } from \"./ui/button\";\nimport {\n Card,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n} from \"./ui/card\";\nimport { Input } from \"./ui/input\";\nimport { Label } from \"./ui/label\";\nimport { Textarea } from \"./ui/textarea\";\nimport { Checkbox } from \"./ui/checkbox\";\nimport { Switch } from \"./ui/switch\";\nimport { Progress } from \"./ui/progress\";\nimport { Separator } from \"./ui/separator\";\nimport { Alert, AlertTitle, AlertDescription } from \"./ui/alert\";\nimport {\n Dialog as DialogPrimitive,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"./ui/dialog\";\nimport {\n Accordion as AccordionPrimitive,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from \"./ui/accordion\";\nimport {\n Avatar as AvatarPrimitive,\n AvatarImage,\n AvatarFallback,\n} from \"./ui/avatar\";\nimport { Badge } from \"./ui/badge\";\nimport { RadioGroup, RadioGroupItem } from \"./ui/radio-group\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"./ui/select\";\nimport {\n Carousel as CarouselPrimitive,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n} from \"./ui/carousel\";\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"./ui/collapsible\";\nimport {\n Table as TablePrimitive,\n TableBody,\n TableCaption,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"./ui/table\";\nimport {\n Drawer as DrawerPrimitive,\n DrawerContent,\n DrawerDescription,\n DrawerHeader,\n DrawerTitle,\n} from \"./ui/drawer\";\nimport {\n DropdownMenu as DropdownMenuPrimitive,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"./ui/dropdown-menu\";\nimport {\n Pagination as PaginationPrimitive,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n} from \"./ui/pagination\";\nimport {\n Popover as PopoverPrimitive,\n PopoverContent,\n PopoverTrigger,\n} from \"./ui/popover\";\nimport { Skeleton } from \"./ui/skeleton\";\nimport { Slider } from \"./ui/slider\";\nimport {\n Tabs as TabsPrimitive,\n TabsList,\n TabsTrigger,\n TabsContent,\n} from \"./ui/tabs\";\nimport { Toggle } from \"./ui/toggle\";\nimport { ToggleGroup, ToggleGroupItem } from \"./ui/toggle-group\";\nimport {\n Tooltip as TooltipPrimitive,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"./ui/tooltip\";\nimport { cn } from \"./lib/utils\";\n\nimport { type ShadcnProps } from \"./catalog\";\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\nfunction getPaginationRange(\n current: number,\n total: number,\n): Array<number | \"ellipsis\"> {\n if (total <= 7) {\n return Array.from({ length: total }, (_, i) => i + 1);\n }\n const pages: Array<number | \"ellipsis\"> = [];\n pages.push(1);\n if (current > 3) {\n pages.push(\"ellipsis\");\n }\n const start = Math.max(2, current - 1);\n const end = Math.min(total - 1, current + 1);\n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n if (current < total - 2) {\n pages.push(\"ellipsis\");\n }\n pages.push(total);\n return pages;\n}\n\n// =============================================================================\n// Standard Component Implementations\n// =============================================================================\n\n/**\n * Standard shadcn/ui component implementations.\n *\n * Pass to `defineRegistry()` from `@json-render/react` to create a\n * component registry for rendering JSON specs with shadcn/ui components.\n *\n * @example\n * ```ts\n * import { defineRegistry } from \"@json-render/react\";\n * import { shadcnComponents } from \"@json-render/shadcn\";\n *\n * const { registry } = defineRegistry(catalog, {\n * components: {\n * Card: shadcnComponents.Card,\n * Button: shadcnComponents.Button,\n * },\n * });\n * ```\n */\nexport const shadcnComponents = {\n // ── Layout ────────────────────────────────────────────────────────────\n\n Card: ({ props, children }: BaseComponentProps<ShadcnProps<\"Card\">>) => {\n const maxWidthClass =\n props.maxWidth === \"sm\"\n ? \"max-w-xs sm:min-w-[280px]\"\n : props.maxWidth === \"md\"\n ? \"max-w-sm sm:min-w-[320px]\"\n : props.maxWidth === \"lg\"\n ? \"max-w-md sm:min-w-[360px]\"\n : \"w-full\";\n const centeredClass = props.centered ? \"mx-auto\" : \"\";\n\n return (\n <Card className={cn(maxWidthClass, centeredClass)}>\n {(props.title || props.description) && (\n <CardHeader>\n {props.title && <CardTitle>{props.title}</CardTitle>}\n {props.description && (\n <CardDescription>{props.description}</CardDescription>\n )}\n </CardHeader>\n )}\n <CardContent className=\"flex flex-col gap-3\">{children}</CardContent>\n </Card>\n );\n },\n\n Stack: ({ props, children }: BaseComponentProps<ShadcnProps<\"Stack\">>) => {\n const isHorizontal = props.direction === \"horizontal\";\n const gapMap: Record<string, string> = {\n none: \"gap-0\",\n sm: \"gap-2\",\n md: \"gap-3\",\n lg: \"gap-4\",\n };\n const alignMap: Record<string, string> = {\n start: \"items-start\",\n center: \"items-center\",\n end: \"items-end\",\n stretch: \"items-stretch\",\n };\n const justifyMap: Record<string, string> = {\n start: \"\",\n center: \"justify-center\",\n end: \"justify-end\",\n between: \"justify-between\",\n around: \"justify-around\",\n };\n\n const gapClass = gapMap[props.gap ?? \"md\"] ?? \"gap-3\";\n const alignClass = alignMap[props.align ?? \"start\"] ?? \"items-start\";\n const justifyClass = justifyMap[props.justify ?? \"\"] ?? \"\";\n\n return (\n <div\n className={`flex ${isHorizontal ? \"flex-row flex-wrap\" : \"flex-col\"} ${gapClass} ${alignClass} ${justifyClass}`}\n >\n {children}\n </div>\n );\n },\n\n Grid: ({ props, children }: BaseComponentProps<ShadcnProps<\"Grid\">>) => {\n const colsMap: Record<number, string> = {\n 1: \"grid-cols-1\",\n 2: \"grid-cols-2\",\n 3: \"grid-cols-3\",\n 4: \"grid-cols-4\",\n 5: \"grid-cols-5\",\n 6: \"grid-cols-6\",\n };\n const gridGapMap: Record<string, string> = {\n sm: \"gap-2\",\n md: \"gap-3\",\n lg: \"gap-4\",\n };\n\n const n = Math.max(1, Math.min(6, props.columns ?? 1));\n const cols = colsMap[n] ?? \"grid-cols-1\";\n const gridGap = gridGapMap[props.gap ?? \"md\"] ?? \"gap-3\";\n\n return <div className={`grid ${cols} ${gridGap}`}>{children}</div>;\n },\n\n Separator: ({ props }: BaseComponentProps<ShadcnProps<\"Separator\">>) => {\n return (\n <Separator\n orientation={props.orientation ?? \"horizontal\"}\n className={props.orientation === \"vertical\" ? \"h-full mx-2\" : \"my-3\"}\n />\n );\n },\n\n Tabs: ({\n props,\n children,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"Tabs\">>) => {\n const tabs = props.tabs ?? [];\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(\n props.defaultValue ?? tabs[0]?.value ?? \"\",\n );\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? tabs[0]?.value ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n\n return (\n <TabsPrimitive\n value={value}\n onValueChange={(v) => {\n setValue(v);\n emit(\"change\");\n }}\n >\n <TabsList>\n {tabs.map((tab) => (\n <TabsTrigger key={tab.value} value={tab.value}>\n {tab.label}\n </TabsTrigger>\n ))}\n </TabsList>\n {children}\n </TabsPrimitive>\n );\n },\n\n Accordion: ({ props }: BaseComponentProps<ShadcnProps<\"Accordion\">>) => {\n const items = props.items ?? [];\n const isMultiple = props.type === \"multiple\";\n\n const itemElements = items.map((item, i) => (\n <AccordionItem key={i} value={`item-${i}`}>\n <AccordionTrigger>{item.title}</AccordionTrigger>\n <AccordionContent>{item.content}</AccordionContent>\n </AccordionItem>\n ));\n\n if (isMultiple) {\n return (\n <AccordionPrimitive type=\"multiple\" className=\"w-full\">\n {itemElements}\n </AccordionPrimitive>\n );\n }\n return (\n <AccordionPrimitive type=\"single\" collapsible className=\"w-full\">\n {itemElements}\n </AccordionPrimitive>\n );\n },\n\n Collapsible: ({\n props,\n children,\n }: BaseComponentProps<ShadcnProps<\"Collapsible\">>) => {\n const [open, setOpen] = useState(props.defaultOpen ?? false);\n return (\n <Collapsible open={open} onOpenChange={setOpen} className=\"w-full\">\n <CollapsibleTrigger asChild>\n <button className=\"flex w-full items-center justify-between rounded-md border border-border px-4 py-2 text-sm font-medium hover:bg-muted transition-colors\">\n {props.title}\n <svg\n className={`h-4 w-4 transition-transform ${open ? \"rotate-180\" : \"\"}`}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M19 9l-7 7-7-7\"\n />\n </svg>\n </button>\n </CollapsibleTrigger>\n <CollapsibleContent className=\"pt-2\">{children}</CollapsibleContent>\n </Collapsible>\n );\n },\n\n Dialog: ({ props, children }: BaseComponentProps<ShadcnProps<\"Dialog\">>) => {\n const [open, setOpen] = useStateBinding<boolean>(props.openPath ?? \"\");\n return (\n <DialogPrimitive open={open ?? false} onOpenChange={(v) => setOpen(v)}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>{props.title}</DialogTitle>\n {props.description && (\n <DialogDescription>{props.description}</DialogDescription>\n )}\n </DialogHeader>\n {children}\n </DialogContent>\n </DialogPrimitive>\n );\n },\n\n Drawer: ({ props, children }: BaseComponentProps<ShadcnProps<\"Drawer\">>) => {\n const [open, setOpen] = useStateBinding<boolean>(props.openPath ?? \"\");\n return (\n <DrawerPrimitive open={open ?? false} onOpenChange={(v) => setOpen(v)}>\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>{props.title}</DrawerTitle>\n {props.description && (\n <DrawerDescription>{props.description}</DrawerDescription>\n )}\n </DrawerHeader>\n <div className=\"p-4\">{children}</div>\n </DrawerContent>\n </DrawerPrimitive>\n );\n },\n\n Carousel: ({ props }: BaseComponentProps<ShadcnProps<\"Carousel\">>) => {\n const items = props.items ?? [];\n return (\n <CarouselPrimitive className=\"w-full\">\n <CarouselContent>\n {items.map((item, i) => (\n <CarouselItem\n key={i}\n className=\"basis-3/4 md:basis-1/2 lg:basis-1/3\"\n >\n <div className=\"border border-border rounded-lg p-4 bg-card h-full\">\n {item.title && (\n <h4 className=\"font-semibold text-sm mb-1\">{item.title}</h4>\n )}\n {item.description && (\n <p className=\"text-sm text-muted-foreground\">\n {item.description}\n </p>\n )}\n </div>\n </CarouselItem>\n ))}\n </CarouselContent>\n <CarouselPrevious />\n <CarouselNext />\n </CarouselPrimitive>\n );\n },\n\n // ── Data Display ──────────────────────────────────────────────────────\n\n Table: ({ props }: BaseComponentProps<ShadcnProps<\"Table\">>) => {\n const columns = props.columns ?? [];\n const rows = (props.rows ?? []).map((row) => row.map(String));\n\n return (\n <div className=\"rounded-md border border-border overflow-hidden\">\n <TablePrimitive>\n {props.caption && <TableCaption>{props.caption}</TableCaption>}\n <TableHeader>\n <TableRow>\n {columns.map((col) => (\n <TableHead key={col}>{col}</TableHead>\n ))}\n </TableRow>\n </TableHeader>\n <TableBody>\n {rows.map((row, i) => (\n <TableRow key={i}>\n {row.map((cell, j) => (\n <TableCell key={j}>{cell}</TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n </TablePrimitive>\n </div>\n );\n },\n\n Heading: ({ props }: BaseComponentProps<ShadcnProps<\"Heading\">>) => {\n const level = props.level ?? \"h2\";\n const headingClass =\n level === \"h1\"\n ? \"text-2xl font-bold\"\n : level === \"h3\"\n ? \"text-base font-semibold\"\n : level === \"h4\"\n ? \"text-sm font-semibold\"\n : \"text-lg font-semibold\";\n\n if (level === \"h1\")\n return <h1 className={`${headingClass} text-left`}>{props.text}</h1>;\n if (level === \"h3\")\n return <h3 className={`${headingClass} text-left`}>{props.text}</h3>;\n if (level === \"h4\")\n return <h4 className={`${headingClass} text-left`}>{props.text}</h4>;\n return <h2 className={`${headingClass} text-left`}>{props.text}</h2>;\n },\n\n Text: ({ props }: BaseComponentProps<ShadcnProps<\"Text\">>) => {\n const textClass =\n props.variant === \"caption\"\n ? \"text-xs\"\n : props.variant === \"muted\"\n ? \"text-sm text-muted-foreground\"\n : props.variant === \"lead\"\n ? \"text-xl text-muted-foreground\"\n : props.variant === \"code\"\n ? \"font-mono text-sm bg-muted px-1.5 py-0.5 rounded\"\n : \"text-sm\";\n\n if (props.variant === \"code\") {\n return <code className={`${textClass} text-left`}>{props.text}</code>;\n }\n return <p className={`${textClass} text-left`}>{props.text}</p>;\n },\n\n Image: ({ props }: BaseComponentProps<ShadcnProps<\"Image\">>) => {\n if (props.src) {\n return (\n <img\n src={props.src}\n alt={props.alt ?? \"\"}\n width={props.width ?? undefined}\n height={props.height ?? undefined}\n className=\"rounded max-w-full\"\n />\n );\n }\n return (\n <div\n className=\"bg-muted border border-border rounded flex items-center justify-center text-xs text-muted-foreground\"\n style={{ width: props.width ?? 80, height: props.height ?? 60 }}\n >\n {props.alt || \"img\"}\n </div>\n );\n },\n\n Avatar: ({ props }: BaseComponentProps<ShadcnProps<\"Avatar\">>) => {\n const name = props.name || \"?\";\n const initials = name\n .split(\" \")\n .map((n) => n[0])\n .join(\"\")\n .slice(0, 2)\n .toUpperCase();\n const sizeClass =\n props.size === \"lg\"\n ? \"h-12 w-12\"\n : props.size === \"sm\"\n ? \"h-8 w-8\"\n : \"h-10 w-10\";\n\n return (\n <AvatarPrimitive className={sizeClass}>\n {props.src && <AvatarImage src={props.src} alt={name} />}\n <AvatarFallback>{initials}</AvatarFallback>\n </AvatarPrimitive>\n );\n },\n\n Badge: ({ props }: BaseComponentProps<ShadcnProps<\"Badge\">>) => {\n return <Badge variant={props.variant ?? \"default\"}>{props.text}</Badge>;\n },\n\n Alert: ({ props }: BaseComponentProps<ShadcnProps<\"Alert\">>) => {\n const variant = props.type === \"error\" ? \"destructive\" : \"default\";\n const customClass =\n props.type === \"success\"\n ? \"border-green-200 bg-green-50 text-green-900 dark:border-green-800 dark:bg-green-950 dark:text-green-100\"\n : props.type === \"warning\"\n ? \"border-yellow-200 bg-yellow-50 text-yellow-900 dark:border-yellow-800 dark:bg-yellow-950 dark:text-yellow-100\"\n : props.type === \"info\"\n ? \"border-blue-200 bg-blue-50 text-blue-900 dark:border-blue-800 dark:bg-blue-950 dark:text-blue-100\"\n : \"\";\n\n return (\n <Alert variant={variant} className={customClass}>\n <AlertTitle>{props.title}</AlertTitle>\n {props.message && <AlertDescription>{props.message}</AlertDescription>}\n </Alert>\n );\n },\n\n Progress: ({ props }: BaseComponentProps<ShadcnProps<\"Progress\">>) => {\n const value = Math.min(100, Math.max(0, props.value || 0));\n return (\n <div className=\"space-y-2\">\n {props.label && (\n <Label className=\"text-sm text-muted-foreground\">{props.label}</Label>\n )}\n <Progress value={value} />\n </div>\n );\n },\n\n Skeleton: ({ props }: BaseComponentProps<ShadcnProps<\"Skeleton\">>) => {\n return (\n <Skeleton\n className={props.rounded ? \"rounded-full\" : \"rounded-md\"}\n style={{\n width: props.width ?? \"100%\",\n height: props.height ?? \"1.25rem\",\n }}\n />\n );\n },\n\n Spinner: ({ props }: BaseComponentProps<ShadcnProps<\"Spinner\">>) => {\n const sizeClass =\n props.size === \"lg\"\n ? \"h-8 w-8\"\n : props.size === \"sm\"\n ? \"h-4 w-4\"\n : \"h-6 w-6\";\n return (\n <div className=\"flex items-center gap-2\">\n <svg\n className={`${sizeClass} animate-spin text-muted-foreground`}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z\"\n />\n </svg>\n {props.label && (\n <span className=\"text-sm text-muted-foreground\">{props.label}</span>\n )}\n </div>\n );\n },\n\n Tooltip: ({ props }: BaseComponentProps<ShadcnProps<\"Tooltip\">>) => {\n return (\n <TooltipProvider>\n <TooltipPrimitive>\n <TooltipTrigger asChild>\n <span className=\"text-sm underline decoration-dotted cursor-help\">\n {props.text}\n </span>\n </TooltipTrigger>\n <TooltipContent>\n <p>{props.content}</p>\n </TooltipContent>\n </TooltipPrimitive>\n </TooltipProvider>\n );\n },\n\n Popover: ({ props }: BaseComponentProps<ShadcnProps<\"Popover\">>) => {\n return (\n <PopoverPrimitive>\n <PopoverTrigger asChild>\n <Button variant=\"outline\" className=\"text-sm\">\n {props.trigger}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-64\">\n <p className=\"text-sm\">{props.content}</p>\n </PopoverContent>\n </PopoverPrimitive>\n );\n },\n\n // ── Form Inputs ───────────────────────────────────────────────────────\n\n Input: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"Input\">>) => {\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(\"\");\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n const validateOn = props.validateOn ?? \"blur\";\n\n const hasValidation = !!(bindings?.value && props.checks?.length);\n const { errors, validate } = useFieldValidation(\n bindings?.value ?? \"\",\n hasValidation ? { checks: props.checks ?? [], validateOn } : undefined,\n );\n\n return (\n <div className=\"space-y-2\">\n {props.label && (\n <Label htmlFor={props.name ?? undefined}>{props.label}</Label>\n )}\n <Input\n id={props.name ?? undefined}\n name={props.name ?? undefined}\n type={props.type ?? \"text\"}\n placeholder={props.placeholder ?? \"\"}\n value={value}\n onChange={(e) => {\n setValue(e.target.value);\n if (hasValidation && validateOn === \"change\") validate();\n }}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") emit(\"submit\");\n }}\n onFocus={() => emit(\"focus\")}\n onBlur={() => {\n if (hasValidation && validateOn === \"blur\") validate();\n emit(\"blur\");\n }}\n />\n {errors.length > 0 && (\n <p className=\"text-sm text-destructive\">{errors[0]}</p>\n )}\n </div>\n );\n },\n\n Textarea: ({\n props,\n bindings,\n }: BaseComponentProps<ShadcnProps<\"Textarea\">>) => {\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(\"\");\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n const validateOn = props.validateOn ?? \"blur\";\n\n const hasValidation = !!(bindings?.value && props.checks?.length);\n const { errors, validate } = useFieldValidation(\n bindings?.value ?? \"\",\n hasValidation ? { checks: props.checks ?? [], validateOn } : undefined,\n );\n\n return (\n <div className=\"space-y-2\">\n {props.label && (\n <Label htmlFor={props.name ?? undefined}>{props.label}</Label>\n )}\n <Textarea\n id={props.name ?? undefined}\n name={props.name ?? undefined}\n placeholder={props.placeholder ?? \"\"}\n rows={props.rows ?? 3}\n value={value}\n onChange={(e) => {\n setValue(e.target.value);\n if (hasValidation && validateOn === \"change\") validate();\n }}\n onBlur={() => {\n if (hasValidation && validateOn === \"blur\") validate();\n }}\n />\n {errors.length > 0 && (\n <p className=\"text-sm text-destructive\">{errors[0]}</p>\n )}\n </div>\n );\n },\n\n Select: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"Select\">>) => {\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState<string>(\"\");\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n const rawOptions = props.options ?? [];\n const options = rawOptions.map((opt) =>\n typeof opt === \"string\" ? opt : String(opt ?? \"\"),\n );\n const validateOn = props.validateOn ?? \"change\";\n\n const hasValidation = !!(bindings?.value && props.checks?.length);\n const { errors, validate } = useFieldValidation(\n bindings?.value ?? \"\",\n hasValidation ? { checks: props.checks ?? [], validateOn } : undefined,\n );\n\n return (\n <div className=\"space-y-2\">\n <Label>{props.label}</Label>\n <Select\n value={value}\n onValueChange={(v) => {\n setValue(v);\n // Select has no native blur event, so only validate on \"change\"\n if (hasValidation && validateOn === \"change\") validate();\n emit(\"change\");\n }}\n >\n <SelectTrigger className=\"w-full\">\n <SelectValue placeholder={props.placeholder ?? \"Select...\"} />\n </SelectTrigger>\n <SelectContent>\n {options.map((opt, idx) => (\n <SelectItem key={`${idx}-${opt}`} value={opt || `option-${idx}`}>\n {opt}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {errors.length > 0 && (\n <p className=\"text-sm text-destructive\">{errors[0]}</p>\n )}\n </div>\n );\n },\n\n Checkbox: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"Checkbox\">>) => {\n const [boundChecked, setBoundChecked] = useBoundProp<boolean>(\n props.checked as boolean | undefined,\n bindings?.checked,\n );\n const [localChecked, setLocalChecked] = useState(!!props.checked);\n const isBound = !!bindings?.checked;\n const checked = isBound ? (boundChecked ?? false) : localChecked;\n const setChecked = isBound ? setBoundChecked : setLocalChecked;\n\n const validateOn = props.validateOn ?? \"change\";\n const hasValidation = !!(bindings?.checked && props.checks?.length);\n const { errors, validate } = useFieldValidation(\n bindings?.checked ?? \"\",\n hasValidation ? { checks: props.checks ?? [], validateOn } : undefined,\n );\n\n return (\n <div className=\"space-y-1\">\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id={props.name ?? undefined}\n checked={checked}\n onCheckedChange={(c) => {\n setChecked(c === true);\n if (hasValidation && validateOn === \"change\") validate();\n emit(\"change\");\n }}\n />\n <Label htmlFor={props.name ?? undefined} className=\"cursor-pointer\">\n {props.label}\n </Label>\n </div>\n {errors.length > 0 && (\n <p className=\"text-sm text-destructive\">{errors[0]}</p>\n )}\n </div>\n );\n },\n\n Radio: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"Radio\">>) => {\n const rawOptions = props.options ?? [];\n const options = rawOptions.map((opt) =>\n typeof opt === \"string\" ? opt : String(opt ?? \"\"),\n );\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(options[0] ?? \"\");\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n\n const validateOn = props.validateOn ?? \"change\";\n const hasValidation = !!(bindings?.value && props.checks?.length);\n const { errors, validate } = useFieldValidation(\n bindings?.value ?? \"\",\n hasValidation ? { checks: props.checks ?? [], validateOn } : undefined,\n );\n\n return (\n <div className=\"space-y-2\">\n {props.label && <Label>{props.label}</Label>}\n <RadioGroup\n value={value}\n onValueChange={(v) => {\n setValue(v);\n if (hasValidation && validateOn === \"change\") validate();\n emit(\"change\");\n }}\n >\n {options.map((opt, idx) => (\n <div key={`${idx}-${opt}`} className=\"flex items-center space-x-2\">\n <RadioGroupItem\n value={opt || `option-${idx}`}\n id={`${props.name}-${idx}-${opt}`}\n />\n <Label\n htmlFor={`${props.name}-${idx}-${opt}`}\n className=\"cursor-pointer\"\n >\n {opt}\n </Label>\n </div>\n ))}\n </RadioGroup>\n {errors.length > 0 && (\n <p className=\"text-sm text-destructive\">{errors[0]}</p>\n )}\n </div>\n );\n },\n\n Switch: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"Switch\">>) => {\n const [boundChecked, setBoundChecked] = useBoundProp<boolean>(\n props.checked as boolean | undefined,\n bindings?.checked,\n );\n const [localChecked, setLocalChecked] = useState(!!props.checked);\n const isBound = !!bindings?.checked;\n const checked = isBound ? (boundChecked ?? false) : localChecked;\n const setChecked = isBound ? setBoundChecked : setLocalChecked;\n\n const validateOn = props.validateOn ?? \"change\";\n const hasValidation = !!(bindings?.checked && props.checks?.length);\n const { errors, validate } = useFieldValidation(\n bindings?.checked ?? \"\",\n hasValidation ? { checks: props.checks ?? [], validateOn } : undefined,\n );\n\n return (\n <div className=\"space-y-1\">\n <div className=\"flex items-center justify-between space-x-2\">\n <Label htmlFor={props.name ?? undefined} className=\"cursor-pointer\">\n {props.label}\n </Label>\n <Switch\n id={props.name ?? undefined}\n checked={checked}\n onCheckedChange={(c) => {\n setChecked(c);\n if (hasValidation && validateOn === \"change\") validate();\n emit(\"change\");\n }}\n />\n </div>\n {errors.length > 0 && (\n <p className=\"text-sm text-destructive\">{errors[0]}</p>\n )}\n </div>\n );\n },\n\n Slider: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"Slider\">>) => {\n const [boundValue, setBoundValue] = useBoundProp<number>(\n props.value as number | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(props.min ?? 0);\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? props.min ?? 0) : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n\n return (\n <div className=\"space-y-2\">\n {props.label && (\n <div className=\"flex justify-between\">\n <Label className=\"text-sm\">{props.label}</Label>\n <span className=\"text-sm text-muted-foreground\">{value}</span>\n </div>\n )}\n <Slider\n value={[value]}\n min={props.min ?? 0}\n max={props.max ?? 100}\n step={props.step ?? 1}\n onValueChange={(v) => {\n setValue(v[0] ?? 0);\n emit(\"change\");\n }}\n />\n </div>\n );\n },\n\n // ── Actions ───────────────────────────────────────────────────────────\n\n Button: ({ props, emit }: BaseComponentProps<ShadcnProps<\"Button\">>) => {\n const variant =\n props.variant === \"danger\"\n ? \"destructive\"\n : props.variant === \"secondary\"\n ? \"secondary\"\n : \"default\";\n\n return (\n <Button\n variant={variant}\n disabled={props.disabled ?? false}\n onClick={() => emit(\"press\")}\n >\n {props.label}\n </Button>\n );\n },\n\n Link: ({ props, on }: BaseComponentProps<ShadcnProps<\"Link\">>) => {\n return (\n <a\n href={props.href ?? \"#\"}\n className=\"text-primary underline-offset-4 hover:underline text-sm font-medium\"\n onClick={(e) => {\n const press = on(\"press\");\n if (press.shouldPreventDefault) e.preventDefault();\n press.emit();\n }}\n >\n {props.label}\n </a>\n );\n },\n\n DropdownMenu: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"DropdownMenu\">>) => {\n const items = props.items ?? [];\n const [, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n return (\n <DropdownMenuPrimitive>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\">{props.label}</Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent>\n {items.map((item) => (\n <DropdownMenuItem\n key={item.value}\n onClick={() => {\n setBoundValue(item.value);\n emit(\"select\");\n }}\n >\n {item.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenuPrimitive>\n );\n },\n\n Toggle: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"Toggle\">>) => {\n const [boundPressed, setBoundPressed] = useBoundProp<boolean>(\n props.pressed as boolean | undefined,\n bindings?.pressed,\n );\n const [localPressed, setLocalPressed] = useState(props.pressed ?? false);\n const isBound = !!bindings?.pressed;\n const pressed = isBound ? (boundPressed ?? false) : localPressed;\n const setPressed = isBound ? setBoundPressed : setLocalPressed;\n\n return (\n <Toggle\n variant={props.variant ?? \"default\"}\n pressed={pressed}\n onPressedChange={(v) => {\n setPressed(v);\n emit(\"change\");\n }}\n >\n {props.label}\n </Toggle>\n );\n },\n\n ToggleGroup: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"ToggleGroup\">>) => {\n const type = props.type ?? \"single\";\n const items = props.items ?? [];\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(items[0]?.value ?? \"\");\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n\n if (type === \"multiple\") {\n const selected = value ? value.split(\",\").filter(Boolean) : [];\n return (\n <ToggleGroup\n type=\"multiple\"\n value={selected}\n onValueChange={(v) => {\n setValue(v.join(\",\"));\n emit(\"change\");\n }}\n >\n {items.map((item) => (\n <ToggleGroupItem key={item.value} value={item.value}>\n {item.label}\n </ToggleGroupItem>\n ))}\n </ToggleGroup>\n );\n }\n\n return (\n <ToggleGroup\n type=\"single\"\n value={value}\n onValueChange={(v) => {\n if (v) {\n setValue(v);\n emit(\"change\");\n }\n }}\n >\n {items.map((item) => (\n <ToggleGroupItem key={item.value} value={item.value}>\n {item.label}\n </ToggleGroupItem>\n ))}\n </ToggleGroup>\n );\n },\n\n ButtonGroup: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"ButtonGroup\">>) => {\n const buttons = props.buttons ?? [];\n const [boundSelected, setBoundSelected] = useBoundProp<string>(\n props.selected as string | undefined,\n bindings?.selected,\n );\n const [localValue, setLocalValue] = useState(buttons[0]?.value ?? \"\");\n const isBound = !!bindings?.selected;\n const value = isBound ? (boundSelected ?? \"\") : localValue;\n const setValue = isBound ? setBoundSelected : setLocalValue;\n\n return (\n <div className=\"inline-flex rounded-md border border-border\">\n {buttons.map((btn, i) => (\n <button\n key={btn.value}\n className={`px-3 py-1.5 text-sm transition-colors ${\n value === btn.value\n ? \"bg-primary text-primary-foreground\"\n : \"bg-background hover:bg-muted\"\n } ${i > 0 ? \"border-l border-border\" : \"\"} ${\n i === 0 ? \"rounded-l-md\" : \"\"\n } ${i === buttons.length - 1 ? \"rounded-r-md\" : \"\"}`}\n onClick={() => {\n setValue(btn.value);\n emit(\"change\");\n }}\n >\n {btn.label}\n </button>\n ))}\n </div>\n );\n },\n\n Pagination: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<ShadcnProps<\"Pagination\">>) => {\n const [boundPage, setBoundPage] = useBoundProp<number>(\n props.page as number | undefined,\n bindings?.page,\n );\n const currentPage = boundPage ?? 1;\n const totalPages = props.totalPages ?? 1;\n const pages = getPaginationRange(currentPage, totalPages);\n\n return (\n <PaginationPrimitive>\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n if (currentPage > 1) {\n setBoundPage(currentPage - 1);\n emit(\"change\");\n }\n }}\n />\n </PaginationItem>\n {pages.map((page, idx) =>\n page === \"ellipsis\" ? (\n <PaginationItem key={`ellipsis-${idx}`}>\n <PaginationEllipsis />\n </PaginationItem>\n ) : (\n <PaginationItem key={page}>\n <PaginationLink\n href=\"#\"\n isActive={page === currentPage}\n onClick={(e) => {\n e.preventDefault();\n setBoundPage(page);\n emit(\"change\");\n }}\n >\n {page}\n </PaginationLink>\n </PaginationItem>\n ),\n )}\n <PaginationItem>\n <PaginationNext\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n if (currentPage < totalPages) {\n setBoundPage(currentPage + 1);\n emit(\"change\");\n }\n }}\n />\n </PaginationItem>\n </PaginationContent>\n </PaginationPrimitive>\n );\n },\n};\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Slot } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-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\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n xs: \"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n \"icon-xs\": \"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\": \"size-8\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot.Root : \"button\";\n\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Card({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card\"\n className={cn(\n \"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm\",\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(\n \"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6\",\n className,\n )}\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(\"leading-none font-semibold\", 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-muted-foreground text-sm\", 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(\"flex items-center px-6 [.border-t]:pt-6\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n","import * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import * as React from \"react\";\nimport { Label as LabelPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n","import * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Textarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { CheckIcon } from \"lucide-react\";\nimport { Checkbox as CheckboxPrimitive } from \"radix-ui\";\n\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 border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Switch as SwitchPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Switch({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root> & {\n size?: \"sm\" | \"default\";\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n \"peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 group/switch inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6\",\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0\",\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n","import * as React from \"react\";\nimport { Progress as ProgressPrimitive } from \"radix-ui\";\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 \"bg-primary/20 relative h-2 w-full overflow-hidden rounded-full\",\n className,\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"bg-primary h-full w-full flex-1 transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n );\n}\n\nexport { Progress };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Separator as SeparatorPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current\",\n {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground\",\n destructive:\n \"text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90\",\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 \"col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight\",\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 \"text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Alert, AlertTitle, AlertDescription };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { XIcon } from \"lucide-react\";\nimport { Dialog as DialogPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean;\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n \"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg\",\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogFooter({\n className,\n showCloseButton = false,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showCloseButton?: boolean;\n}) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close asChild>\n <Button variant=\"outline\">Close</Button>\n </DialogPrimitive.Close>\n )}\n </div>\n );\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"text-lg leading-none font-semibold\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n","import * as React from \"react\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport { Accordion as AccordionPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Accordion({\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"border-b last:border-b-0\", className)}\n {...props}\n />\n );\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm\"\n {...props}\n >\n <div className={cn(\"pt-0 pb-4\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n );\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Avatar as AvatarPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Avatar({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn(\n \"relative flex size-10 shrink-0 overflow-hidden rounded-full\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\"aspect-square size-full\", className)}\n {...props}\n />\n );\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n \"bg-muted flex size-full items-center justify-center rounded-full\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Avatar, AvatarImage, AvatarFallback };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Slot } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center justify-center rounded-full border border-transparent px-2 py-0.5 text-xs font-medium 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: \"bg-primary text-primary-foreground [a&]:hover:bg-primary/90\",\n secondary:\n \"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90\",\n destructive:\n \"bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border-border 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 = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : \"span\";\n\n return (\n <Comp\n data-slot=\"badge\"\n data-variant={variant}\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { CircleIcon } from \"lucide-react\";\nimport { RadioGroup as RadioGroupPrimitive } from \"radix-ui\";\n\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(\"grid gap-3\", 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 \"border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\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=\"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n}\n\nexport { RadioGroup, RadioGroupItem };\n","import * as React from \"react\";\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\nimport { Select as SelectPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Select({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: \"sm\" | \"default\";\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"size-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"item-aligned\",\n align = \"center\",\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n align={align}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn(\"text-muted-foreground px-2 py-1.5 text-xs\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className,\n )}\n {...props}\n >\n <span\n data-slot=\"select-item-indicator\"\n className=\"absolute right-2 flex size-3.5 items-center justify-center\"\n >\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"bg-border pointer-events-none -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\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\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\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 || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\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=\"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 \"absolute size-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -left-12 -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 \"absolute size-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -right-12 -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 type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n};\n","import * as React from \"react\";\nimport { Collapsible as CollapsiblePrimitive } from \"radix-ui\";\n\nfunction Collapsible({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />;\n}\n\nfunction CollapsibleTrigger({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n return (\n <CollapsiblePrimitive.CollapsibleTrigger\n data-slot=\"collapsible-trigger\"\n {...props}\n />\n );\n}\n\nfunction CollapsibleContent({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return (\n <CollapsiblePrimitive.CollapsibleContent\n data-slot=\"collapsible-content\"\n {...props}\n />\n );\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n","import * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div\n data-slot=\"table-container\"\n className=\"relative w-full overflow-x-auto\"\n >\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"[&_tr]:border-b\", className)}\n {...props}\n />\n );\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n );\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n \"bg-muted/50 border-t font-medium [&>tr]:last:border-b-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"text-muted-foreground mt-4 text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","import * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\n\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 \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/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 \"group/drawer-content bg-background fixed z-50 flex h-auto flex-col\",\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]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg 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]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg 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]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm\",\n \"data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm\",\n className,\n )}\n {...props}\n >\n <div className=\"bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full 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 \"flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left\",\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(\"mt-auto flex flex-col gap-2 p-4\", 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(\"text-foreground font-semibold\", 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-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\nimport { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return (\n <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n );\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md\",\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return (\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n );\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-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 DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"bg-border -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"text-muted-foreground ml-auto text-xs tracking-widest\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n","import * as React from \"react\";\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n MoreHorizontalIcon,\n} from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\nimport { buttonVariants, type Button } from \"./button\";\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(\"flex flex-row items-center gap-1\", 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=\"hidden sm:block\">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=\"hidden sm:block\">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(\"flex size-9 items-center justify-center\", className)}\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 PaginationLink,\n PaginationItem,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Popover as PopoverPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nfunction PopoverHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"popover-header\"\n className={cn(\"flex flex-col gap-1 text-sm\", className)}\n {...props}\n />\n );\n}\n\nfunction PopoverTitle({ className, ...props }: React.ComponentProps<\"h2\">) {\n return (\n <div\n data-slot=\"popover-title\"\n className={cn(\"font-medium\", className)}\n {...props}\n />\n );\n}\n\nfunction PopoverDescription({\n className,\n ...props\n}: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"popover-description\"\n className={cn(\"text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Popover,\n PopoverTrigger,\n PopoverContent,\n PopoverAnchor,\n PopoverHeader,\n PopoverTitle,\n PopoverDescription,\n};\n","import { cn } from \"../lib/utils\";\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"bg-accent animate-pulse rounded-md\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slider as SliderPrimitive } from \"radix-ui\";\n\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 \"relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 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 \"bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5\",\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n \"bg-primary absolute 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=\"border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n );\n}\n\nexport { Slider };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Tabs as TabsPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Tabs({\n className,\n orientation = \"horizontal\",\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n data-orientation={orientation}\n orientation={orientation}\n className={cn(\n \"group/tabs flex gap-2 data-[orientation=horizontal]:flex-col\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst tabsListVariants = cva(\n \"rounded-lg p-[3px] group-data-[orientation=horizontal]/tabs:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col\",\n {\n variants: {\n variant: {\n default: \"bg-muted\",\n line: \"gap-1 bg-transparent\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nfunction TabsList({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List> &\n VariantProps<typeof tabsListVariants>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n data-variant={variant}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground/60 hover:text-foreground dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n \"group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent\",\n \"data-[state=active]:bg-background dark:data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 data-[state=active]:text-foreground\",\n \"after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 outline-none\", className)}\n {...props}\n />\n );\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Toggle as TogglePrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center gap-2 rounded-md 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]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-2 min-w-9\",\n sm: \"h-8 px-1.5 min-w-8\",\n lg: \"h-10 px-2.5 min-w-10\",\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","\"use client\";\n\nimport * as React from \"react\";\nimport { type VariantProps } from \"class-variance-authority\";\nimport { ToggleGroup as ToggleGroupPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\nimport { toggleVariants } from \"./toggle\";\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number;\n }\n>({\n size: \"default\",\n variant: \"default\",\n spacing: 0,\n});\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n children,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants> & {\n spacing?: number;\n }) {\n return (\n <ToggleGroupPrimitive.Root\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n \"group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs\",\n className,\n )}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size, spacing }}>\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 data-spacing={context.spacing}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n \"w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10\",\n \"data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=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","\"use client\";\n\nimport * as React from \"react\";\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />;\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n \"bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance\",\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n"],"mappings":"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","names":["useState","jsx","jsx","jsx","jsx","jsx","jsx","jsx","jsx","cva","jsx","cva","jsx","jsx","jsx","jsx","jsx","jsxs","jsx","cva","Slot","jsx","cva","Slot","jsx","CheckIcon","ChevronDownIcon","jsx","jsxs","jsx","jsxs","ChevronDownIcon","jsxs","jsx","CheckIcon","jsx","ChevronDownIcon","jsx","jsxs","api","jsx","jsx","jsx","jsx","jsxs","jsx","jsx","jsxs","jsx","CheckIcon","CircleIcon","jsx","jsxs","jsx","jsx","ChevronRightIcon","jsx","jsxs","ChevronRightIcon","jsx","jsx","React","jsx","jsxs","cva","jsx","cva","cva","jsx","cva","React","jsx","jsx","jsxs","jsx","jsxs","useState"]}