@doscientos/ui 0.1.19 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/use-autosave.ts","../src/hooks/use-debounced-value.ts","../src/hooks/use-form-dirty.ts","../src/lib/action-ripple.ts","../src/lib/cn.ts","../src/lib/text-match.ts","../src/ui/accordion/accordion.tsx","../src/ui/alert/alert.tsx","../src/ui/app-shell/app-shell.tsx","../src/ui/avatar/avatar.tsx","../src/ui/badge/badge.tsx","../src/ui/breadcrumb/breadcrumb.tsx","../src/ui/button-group/button-group.tsx","../src/ui/separator/separator.tsx","../src/ui/button/button.tsx","../src/ui/card/card.tsx","../src/ui/checkbox/checkbox.tsx","../src/ui/combobox/combobox.tsx","../src/ui/command/command.tsx","../src/ui/modal-dialog/modal-dialog.tsx","../src/ui/confirm-dialog/confirm-dialog.tsx","../src/ui/dialog/dialog.tsx","../src/ui/drawer/drawer.tsx","../src/ui/dropdown-menu/dropdown-menu.tsx","../src/ui/empty-state/empty-state.tsx","../src/ui/field/field.tsx","../src/ui/label/label.tsx","../src/ui/form-feedback/form-feedback.tsx","../src/ui/form-row/form-row.tsx","../src/ui/icon-button/icon-button.tsx","../src/ui/tooltip/tooltip.tsx","../src/ui/input-group/input-group.tsx","../src/ui/input/input.tsx","../src/ui/textarea/textarea.tsx","../src/ui/kbd/kbd.tsx","../src/ui/loading-overlay/loading-overlay.tsx","../src/ui/menu/menu.tsx","../src/ui/otp-input/otp-input.tsx","../src/ui/page-header/page-header.tsx","../src/ui/pagination/pagination.tsx","../src/ui/popover/popover.tsx","../src/ui/quantity-input/quantity-input.tsx","../src/ui/search-field/search-field.tsx","../src/ui/select/select.tsx","../src/ui/sheet/sheet.tsx","../src/ui/sidebar/sidebar.tsx","../src/ui/skeleton/skeleton.tsx","../src/ui/submit-button/submit-button.tsx","../src/ui/switch/switch.tsx","../src/ui/table/table.tsx","../src/ui/tabs/tabs.tsx","../src/ui/toast/toast.tsx","../src/ui/toolbar/toolbar.tsx"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\n\nexport type AutosaveStatus = \"idle\" | \"saving\" | \"saved\" | \"error\";\n\nexport type UseAutosaveOptions<T> = {\n data: T;\n onSave: (data: T) => Promise<void>;\n debounceMs?: number;\n enabled?: boolean;\n serialize?: (data: T) => string;\n};\n\n/** Debounced autosave with stale-value protection and an explicit `saveNow`. */\nexport function useAutosave<T>({\n data,\n onSave,\n debounceMs = 1_000,\n enabled = true,\n serialize = JSON.stringify,\n}: UseAutosaveOptions<T>) {\n const [status, setStatus] = useState<AutosaveStatus>(\"idle\");\n const [error, setError] = useState<Error | null>(null);\n const lastSaved = useRef<string | null>(null);\n const saveRef = useRef(onSave);\n const serializeRef = useRef(serialize);\n\n useEffect(() => {\n saveRef.current = onSave;\n serializeRef.current = serialize;\n }, [onSave, serialize]);\n\n const save = useCallback(async (value: T) => {\n setStatus(\"saving\");\n setError(null);\n try {\n await saveRef.current(value);\n lastSaved.current = serializeRef.current(value);\n setStatus(\"saved\");\n } catch (cause) {\n setError(cause instanceof Error ? cause : new Error(\"No se pudo guardar.\"));\n setStatus(\"error\");\n }\n }, []);\n\n useEffect(() => {\n if (!enabled) return;\n const snapshot = serializeRef.current(data);\n if (lastSaved.current === null) {\n lastSaved.current = snapshot;\n return;\n }\n if (snapshot === lastSaved.current) return;\n const timeout = window.setTimeout(() => void save(data), debounceMs);\n return () => window.clearTimeout(timeout);\n }, [data, debounceMs, enabled, save]);\n\n return { status, error, saveNow: () => save(data) };\n}","import { useEffect, useState } from \"react\";\n\n/** Returns a value only after it has been stable for the supplied delay. */\nexport function useDebouncedValue<T>(value: T, delay: number = 250) {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const timeout = window.setTimeout(() => setDebouncedValue(value), delay);\n return () => window.clearTimeout(timeout);\n }, [delay, value]);\n\n return debouncedValue;\n}","import { type RefCallback, useCallback, useRef, useState } from \"react\";\n\nexport function formSnapshot(form: HTMLFormElement): string {\n const entries: Array<[string, string]> = Array.from(new FormData(form), ([key, value]) => [key, typeof value === \"string\" ? value : value.name]);\n entries.sort(([left], [right]) => left.localeCompare(right));\n return JSON.stringify(entries);\n}\n\nexport interface UseFormDirtyResult<T extends HTMLFormElement = HTMLFormElement> {\n formRef: RefCallback<T | null>;\n isDirty: boolean;\n markDirty: () => void;\n reset: () => void;\n}\n\n/** Tracks changes in native form controls and supports controlled fields. */\nexport function useFormDirty<T extends HTMLFormElement = HTMLFormElement>(): UseFormDirtyResult<T> {\n const formElement = useRef<T | null>(null);\n const baseline = useRef<string | null>(null);\n const [isDirty, setIsDirty] = useState(false);\n\n const recompute = useCallback(() => {\n if (formElement.current && baseline.current !== null) {\n setIsDirty(formSnapshot(formElement.current) !== baseline.current);\n }\n }, []);\n\n const reset = useCallback(() => {\n if (formElement.current) {\n baseline.current = formSnapshot(formElement.current);\n setIsDirty(false);\n }\n }, []);\n\n const formRef = useCallback<RefCallback<T | null>>((form) => {\n if (formElement.current) {\n formElement.current.removeEventListener(\"input\", recompute);\n formElement.current.removeEventListener(\"change\", recompute);\n formElement.current.removeEventListener(\"reset\", recompute);\n }\n formElement.current = form;\n if (form) {\n baseline.current = formSnapshot(form);\n setIsDirty(false);\n form.addEventListener(\"input\", recompute);\n form.addEventListener(\"change\", recompute);\n form.addEventListener(\"reset\", recompute);\n }\n }, [recompute]);\n\n return { formRef, isDirty, markDirty: () => setIsDirty(true), reset };\n}\n","import { cva } from \"class-variance-authority\";\n\n/**\n * Adds a subtle, centered press ripple to an interactive element.\n * The effect owns the element's `::after` pseudo-element.\n */\nexport const actionRipple = cva(\n \"relative isolate overflow-hidden after:pointer-events-none after:absolute after:top-1/2 after:left-1/2 after:aspect-square after:w-full after:-translate-x-1/2 after:-translate-y-1/2 after:scale-0 after:rounded-full after:bg-current after:opacity-0 after:content-[''] after:transition-[scale,opacity] after:duration-300 after:ease-out active:after:scale-150 active:after:opacity-10 data-pressed:after:scale-150 data-pressed:after:opacity-10 motion-reduce:after:hidden\",\n);","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/** Merges conditional class names, resolving conflicting Tailwind utilities. */\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}","export type TextMatchPart = {\n text: string;\n match: boolean;\n};\n\nfunction normalize(value: string) {\n return value.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\").toLocaleLowerCase();\n}\n\nfunction normalizedTextWithRanges(value: string) {\n const ranges: Array<{ start: number; end: number }> = [];\n let normalized = \"\";\n let sourceIndex = 0;\n\n for (const character of value) {\n const start = sourceIndex;\n sourceIndex += character.length;\n const normalizedCharacter = normalize(character);\n normalized += normalizedCharacter;\n for (let index = 0; index < normalizedCharacter.length; index += 1) {\n ranges.push({ start, end: sourceIndex });\n }\n }\n\n return { normalized, ranges };\n}\n\n/**\n * Splits text into matching and non-matching chunks. Matching is case- and\n * accent-insensitive while preserving the original text for rendering.\n */\nexport function getTextMatchParts(text: string, query: string): TextMatchPart[] {\n const term = normalize(query.trim());\n if (!term) return [{ text, match: false }];\n\n const { normalized, ranges } = normalizedTextWithRanges(text);\n const parts: TextMatchPart[] = [];\n let sourceCursor = 0;\n let index = normalized.indexOf(term);\n\n while (index !== -1) {\n const rangeStart = ranges[index]?.start;\n const rangeEnd = ranges[index + term.length - 1]?.end;\n if (rangeStart === undefined || rangeEnd === undefined) break;\n if (rangeStart > sourceCursor) parts.push({ text: text.slice(sourceCursor, rangeStart), match: false });\n parts.push({ text: text.slice(rangeStart, rangeEnd), match: true });\n sourceCursor = rangeEnd;\n index = normalized.indexOf(term, index + term.length);\n }\n\n if (sourceCursor < text.length) parts.push({ text: text.slice(sourceCursor), match: false });\n return parts.length ? parts : [{ text, match: false }];\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\nimport {\n DisclosurePanel as AccordionContentPrimitive,\n Heading as AccordionHeaderPrimitive,\n Disclosure as AccordionItemPrimitive,\n DisclosureGroup as AccordionPrimitive,\n Button as AccordionTriggerPrimitive,\n type ButtonProps,\n type DisclosureGroupProps,\n type DisclosurePanelProps,\n type DisclosureProps,\n} from \"react-aria-components\"\nimport { cn } from \"~/lib/cn\"\n\n\nfunction Accordion({ className, ...props }: DisclosureGroupProps) {\n return (\n <AccordionPrimitive\n data-slot=\"accordion\"\n className={cn(\"flex w-full flex-col text-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionItem({ className, ...props }: DisclosureProps) {\n return (\n <AccordionItemPrimitive\n data-slot=\"accordion-item\"\n className={cn(\"border-border not-last:border-b\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: Omit<ButtonProps, \"children\"> & { children: React.ReactNode }) {\n return (\n <AccordionHeaderPrimitive className=\"flex\">\n <AccordionTriggerPrimitive\n slot=\"trigger\"\n data-slot=\"accordion-trigger\"\n className={cn(\n \"group/accordion-trigger relative flex flex-1 items-start justify-between gap-3 rounded-lg border border-transparent px-2.5 py-2.5 text-left text-sm font-medium text-foreground transition-colors outline-none hover:bg-muted/50 aria-expanded:bg-muted/50 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon\n data-slot=\"accordion-trigger-icon\"\n className=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\"\n />\n <ChevronUpIcon\n data-slot=\"accordion-trigger-icon\"\n className=\"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\"\n />\n </AccordionTriggerPrimitive>\n </AccordionHeaderPrimitive>\n )\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: DisclosurePanelProps) {\n return (\n <AccordionContentPrimitive\n data-slot=\"accordion-content\"\n className=\"h-(--disclosure-panel-height) overflow-clip text-sm text-muted-foreground transition-[height] data-open:animate-accordion-down data-closed:animate-accordion-up\"\n {...props}\n >\n <div\n className={cn(\n \"px-2.5 pt-0 pb-3 [&_a]:text-foreground [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-primary [&_p:not(:last-child)]:mb-4\",\n className\n )}\n >\n {children}\n </div>\n </AccordionContentPrimitive>\n )\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\n\nconst alertVariants = cva(\n \"group/alert relative grid w-full gap-0.5 rounded-lg border border-border px-2.5 py-2 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground\",\n info: \"border-info/30 bg-info/5 text-info\",\n success: \"border-success/30 bg-success/5 text-success\",\n warning: \"border-warning/30 bg-warning/5 text-warning\",\n destructive:\n \"border-destructive/30 bg-destructive/5 text-destructive *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nexport type AlertProps = React.ComponentProps<\"div\"> & VariantProps<typeof alertVariants>;\n\nfunction Alert({ className, variant, ...props }: AlertProps) {\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 \"font-medium group-has-[>svg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n \"text-sm text-balance text-muted-foreground md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"alert-action\" className={cn(\"absolute top-2 right-2\", className)} {...props} />\n );\n}\n\nexport { Alert, AlertAction, AlertDescription, AlertTitle, alertVariants };\n","import type * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\n\nexport type AppShellBreakpoint = \"sm\" | \"md\" | \"lg\";\n\nexport type AppShellProps = React.ComponentProps<\"div\"> & {\n /** Breakpoint at which the persistent sidebar replaces the mobile header. */\n sidebarBreakpoint?: AppShellBreakpoint;\n};\n\nexport function AppShell({\n className,\n sidebarBreakpoint = \"md\",\n ...props\n}: AppShellProps) {\n return (\n <div\n data-slot=\"app-shell\"\n data-sidebar-breakpoint={sidebarBreakpoint}\n className={cn(\"bg-background text-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport function AppShellSidebar({ className, ...props }: React.ComponentProps<\"aside\">) {\n return (\n <aside\n data-slot=\"app-shell-sidebar\"\n className={cn(\"w-56 shrink-0 border-r border-border bg-card text-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport function AppShellMain({ className, ...props }: React.ComponentProps<\"main\">) {\n return <main data-slot=\"app-shell-main\" className={cn(\"bg-background\", className)} {...props} />;\n}\n\nexport function AppShellHeader({ className, ...props }: React.ComponentProps<\"header\">) {\n return (\n <header\n data-slot=\"app-shell-header\"\n className={cn(\"border-b border-border bg-background px-4\", className)}\n {...props}\n />\n );\n}\n\nexport function AppShellMobileHeader({\n className,\n ...props\n}: React.ComponentProps<\"header\">) {\n return (\n <header\n data-slot=\"app-shell-mobile-header\"\n className={cn(\"h-14 shrink-0 items-center gap-2 border-b border-border bg-background px-3\", className)}\n {...props}\n />\n );\n}\n\nexport type AppShellContentProps = React.ComponentProps<\"div\"> & {\n /** Maximum content width. Use `full` for dense application screens. */\n size?: \"default\" | \"wide\" | \"full\";\n /** Adds the standard responsive content padding. */\n padded?: boolean;\n /** Lets this region scroll while the surrounding shell remains fixed. */\n scrollable?: boolean;\n};\n\nexport function AppShellContent({\n className,\n size = \"wide\",\n padded = true,\n scrollable = true,\n ...props\n}: AppShellContentProps) {\n return (\n <div\n data-slot=\"app-shell-content\"\n data-size={size}\n data-padded={padded || undefined}\n data-scrollable={scrollable || undefined}\n className={className}\n {...props}\n />\n );\n}\n","import { createContext, useContext, useEffect, useState } from \"react\";\nimport { cn } from \"../../lib/cn\";\n\nexport type AvatarProps = React.ComponentProps<\"div\"> & { size?: \"xs\" | \"sm\" | \"default\" | \"lg\" };\n\nconst sizes = { xs: \"size-5 text-[10px]\", sm: \"size-6 text-xs\", default: \"size-8 text-sm\", lg: \"size-10 text-base\" };\n\ntype AvatarStatus = \"idle\" | \"loading\" | \"loaded\" | \"error\";\nconst AvatarContext = createContext<{\n status: AvatarStatus;\n setStatus: (status: AvatarStatus) => void;\n} | null>(null);\n\nexport function Avatar({ className, size = \"default\", children, ...props }: AvatarProps) {\n const [status, setStatus] = useState<AvatarStatus>(\"idle\");\n return <AvatarContext.Provider value={{ status, setStatus }}><div data-slot=\"avatar\" data-size={size} className={cn(\"group/avatar relative flex shrink-0 overflow-hidden rounded-full bg-muted text-muted-foreground\", sizes[size], className)} {...props}>{children}</div></AvatarContext.Provider>;\n}\n\nexport function AvatarImage({ className, src, onError, onLoad, ...props }: React.ComponentProps<\"img\">) {\n const avatar = useContext(AvatarContext);\n const [failed, setFailed] = useState(false);\n\n useEffect(() => {\n setFailed(false);\n avatar?.setStatus(src ? \"loading\" : \"idle\");\n }, [avatar?.setStatus, src]);\n\n if (failed || avatar?.status === \"error\") return null;\n return <img data-slot=\"avatar-image\" src={src} className={cn(\"aspect-square size-full object-cover\", className)} onLoad={(event) => { avatar?.setStatus(\"loaded\"); onLoad?.(event); }} onError={(event) => { setFailed(true); avatar?.setStatus(\"error\"); onError?.(event); }} {...props} />;\n}\n\nexport function AvatarFallback({ className, ...props }: React.ComponentProps<\"span\">) {\n const avatar = useContext(AvatarContext);\n if (avatar?.status === \"loaded\") return null;\n return <span data-slot=\"avatar-fallback\" className={cn(\"flex size-full items-center justify-center font-medium\", className)} {...props} />;\n}\n\nexport function AvatarBadge({ className, ...props }: React.ComponentProps<\"span\">) {\n return <span data-slot=\"avatar-badge\" className={cn(\"absolute right-0 bottom-0 size-2.5 rounded-full bg-success ring-2 ring-background\", className)} {...props} />;\n}\n\nexport function AvatarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"avatar-group\" className={cn(\"flex -space-x-2 [&>[data-slot=avatar]]:ring-2 [&>[data-slot=avatar]]:ring-background\", className)} {...props} />;\n}\n\nexport function AvatarGroupCount({ className, ...props }: React.ComponentProps<\"span\">) {\n return <span data-slot=\"avatar-group-count\" className={cn(\"flex size-8 items-center justify-center rounded-full bg-muted text-xs font-medium text-muted-foreground ring-2 ring-background\", className)} {...props} />;\n}\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\nimport { Link, type LinkProps } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport const badgeVariants = cva(\n \"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 [&>svg]:pointer-events-none [&>svg]:size-3\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground\",\n secondary: \"bg-secondary text-secondary-foreground\",\n neutral: \"bg-muted text-muted-foreground\",\n success: \"bg-success/10 text-success\",\n warning: \"bg-warning/10 text-warning\",\n info: \"bg-info/10 text-info\",\n danger: \"bg-destructive/10 text-destructive\",\n destructive: \"bg-destructive text-destructive-foreground\",\n outline: \"border border-border text-foreground\",\n ghost: \"text-foreground hover:bg-muted\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n },\n defaultVariants: { variant: \"default\" },\n },\n);\n\nexport type BadgeProps = React.ComponentProps<\"span\"> & VariantProps<typeof badgeVariants>;\n\nexport function Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <span\n data-slot=\"badge\"\n data-variant={variant ?? \"default\"}\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport type BadgeLinkProps = Omit<LinkProps, \"className\"> &\n VariantProps<typeof badgeVariants> & { className?: string };\n\nexport function BadgeLink({ className, variant, ...props }: BadgeLinkProps) {\n return (\n <Link\n data-slot=\"badge\"\n data-variant={variant ?? \"default\"}\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n","import { Breadcrumb as AriaBreadcrumb, Breadcrumbs as AriaBreadcrumbs, Link as AriaLink } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport function Breadcrumbs({ className, ...props }: React.ComponentProps<typeof AriaBreadcrumbs>) {\n return <AriaBreadcrumbs data-slot=\"breadcrumbs\" className={cn(\"flex flex-wrap items-center gap-1.5 text-sm text-muted-foreground\", className)} {...props} />;\n}\n\nexport function Breadcrumb({ className, ...props }: React.ComponentProps<typeof AriaBreadcrumb>) {\n return <AriaBreadcrumb data-slot=\"breadcrumb\" className={cn(\"inline-flex items-center gap-1.5\", className)} {...props} />;\n}\n\nexport function BreadcrumbLink({ className, ...props }: React.ComponentProps<typeof AriaLink>) {\n return <AriaLink data-slot=\"breadcrumb-link\" className={cn(\"transition-colors hover:text-foreground\", className)} {...props} />;\n}\n\nexport function BreadcrumbPage({ className, ...props }: React.ComponentProps<\"span\">) {\n return <span data-slot=\"breadcrumb-page\" aria-current=\"page\" className={cn(\"font-medium text-foreground\", className)} {...props} />;\n}\n\nexport function BreadcrumbSeparator({ children = \"/\", className, ...props }: React.ComponentProps<\"span\">) {\n return <span data-slot=\"breadcrumb-separator\" aria-hidden=\"true\" className={cn(\"text-muted-foreground/60\", className)} {...props}>{children}</span>;\n}\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport { Separator } from \"../separator/separator\";\n\nconst buttonGroupVariants = cva(\n \"flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-lg [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n {\n variants: {\n orientation: {\n horizontal:\n \"**:data-slot:rounded-r-none [&_[data-slot]~[data-slot]]:rounded-l-none [&_[data-slot]~[data-slot]]:border-l-0 [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-lg!\",\n vertical:\n \"flex-col **:data-slot:rounded-b-none [&_[data-slot]~[data-slot]]:rounded-t-none [&_[data-slot]~[data-slot]]:border-t-0 [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg!\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n },\n);\n\nfunction ButtonGroup({\n className,\n orientation,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof buttonGroupVariants>) {\n return (\n // biome-ignore lint/a11y/useSemanticElements: fieldset would impose form semantics on a generic action group.\n <div\n role=\"group\"\n data-slot=\"button-group\"\n data-orientation={orientation}\n className={cn(buttonGroupVariants({ orientation }), className)}\n {...props}\n />\n );\n}\n\nfunction ButtonGroupText({\n className,\n render,\n ...props\n}: React.ComponentProps<\"div\"> & {\n render?: (props: React.HTMLAttributes<HTMLElement>) => React.ReactNode;\n}) {\n if (render) {\n const renderProps = {\n \"data-slot\": \"button-group-text\",\n className: cn(\n \"flex items-center gap-2 rounded-lg border border-border bg-muted px-2.5 text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className,\n ),\n ...props,\n };\n\n return render(renderProps);\n }\n\n return (\n <div\n data-slot=\"button-group-text\"\n className={cn(\n \"flex items-center gap-2 rounded-lg border border-border bg-muted px-2.5 text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn(\n \"relative self-stretch bg-input data-horizontal:mx-px data-horizontal:w-auto data-vertical:my-px data-vertical:h-auto\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants };\n","\"use client\";\n\nimport { Separator as SeparatorPrimitive } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport type SeparatorProps = React.ComponentProps<typeof SeparatorPrimitive>;\n\nfunction Separator({ className, orientation = \"horizontal\", ...props }: SeparatorProps) {\n return (\n <SeparatorPrimitive\n data-slot=\"separator\"\n orientation={orientation}\n className={cn(\n \"block shrink-0 border-0 bg-border aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=vertical]:w-px aria-[orientation=vertical]:self-stretch [:is(hr)]:h-px [:is(hr)]:w-full\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n","\"use client\";\n\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\nimport {\n Button as ButtonPrimitive,\n type ButtonProps as ButtonPrimitiveProps,\n Link as LinkPrimitive,\n type LinkProps as LinkPrimitiveProps,\n} from \"react-aria-components\";\n\nimport { actionRipple } from \"../../lib/action-ripple\";\nimport { cn } from \"../../lib/cn\";\n\nconst buttonVariants = cva(\n cn(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n actionRipple(),\n ),\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/80\",\n outline:\n \"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground\",\n ghost:\n \"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50\",\n destructive:\n \"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40\",\n link: \"text-primary underline-offset-4 hover:underline after:hidden\",\n },\n size: {\n default:\n \"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: \"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n icon: \"size-8\",\n \"icon-xs\":\n \"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\":\n \"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg\",\n \"icon-lg\": \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nexport type ButtonProps = Omit<ButtonPrimitiveProps, \"className\"> &\n React.RefAttributes<HTMLButtonElement> &\n VariantProps<typeof buttonVariants> & {\n className?: string;\n };\n\nfunction Button({ className, variant = \"default\", size = \"default\", ...props }: ButtonProps) {\n return (\n <ButtonPrimitive\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 type LinkButtonProps = Omit<LinkPrimitiveProps, \"className\"> &\n VariantProps<typeof buttonVariants> & {\n className?: string;\n };\n\nfunction LinkButton({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: LinkButtonProps) {\n return (\n <LinkPrimitive\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, LinkButton };\n","import type * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\n\nexport type CardProps = React.ComponentProps<\"div\"> & { size?: \"default\" | \"sm\" };\n\nfunction Card({ className, size = \"default\", ...props }: CardProps) {\n return (\n <div\n data-slot=\"card\"\n data-size={size}\n className={cn(\n \"group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl border border-border bg-card py-(--card-spacing) text-sm text-card-foreground shadow-sm [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl\",\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 \"group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)\",\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(\n \"text-base leading-snug font-medium group-data-[size=sm]/card:text-sm\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\"col-start-2 row-span-2 row-start-1 self-start justify-self-end\", className)}\n {...props}\n />\n );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"card-content\" className={cn(\"px-(--card-spacing)\", className)} {...props} />\n );\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\n \"flex items-center rounded-b-xl border-t border-border bg-muted/50 p-(--card-spacing)\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };\n","import { Check } from \"lucide-react\";\nimport {\n Checkbox as AriaCheckbox,\n type CheckboxProps as AriaCheckboxProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport type CheckboxProps = Omit<AriaCheckboxProps, \"className\"> & { className?: string };\n\nexport function Checkbox({ className, children, ...props }: CheckboxProps) {\n return (\n <AriaCheckbox\n data-slot=\"checkbox\"\n className={cn(\n \"group inline-flex items-center gap-2 text-sm text-foreground data-disabled:cursor-not-allowed data-disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n {(state) => (\n <>\n <span\n aria-hidden=\"true\"\n className=\"grid size-4 place-items-center rounded border border-border bg-background text-primary-foreground transition-colors group-data-selected:border-primary group-data-selected:bg-primary group-data-focus-visible:ring-3 group-data-focus-visible:ring-ring/50\"\n >\n <Check className=\"size-3 opacity-0 transition-opacity group-data-selected:opacity-100 motion-reduce:transition-none\" />\n </span>\n {typeof children === \"function\" ? children(state) : children}\n </>\n )}\n </AriaCheckbox>\n );\n}\n","import { Fragment, useMemo, useState, type ReactNode } from \"react\";\nimport { ComboBox as AriaComboBox, ComboBoxValue, FieldError, Input, Label, ListBox, ListBoxItem, Popover, Text, type ComboBoxProps, type InputProps, type ListBoxItemProps, type ListBoxProps } from \"react-aria-components\";\nimport type { Key } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\nimport { getTextMatchParts } from \"../../lib/text-match\";\n\nexport const Combobox = AriaComboBox;\nexport { ComboBoxValue as ComboboxValue };\nexport type { ComboBoxProps };\n\nexport function ComboboxInput({ className, ...props }: InputProps) { return <Input data-slot=\"combobox-input\" className={cn(\"h-9 w-full rounded-lg border border-border bg-background px-2.5 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-3 focus-visible:ring-ring/50\", className)} {...props} />; }\nexport function ComboboxContent({ className, ...props }: React.ComponentProps<typeof Popover>) { return <Popover data-slot=\"combobox-content\" className={cn(\"max-h-72 w-(--trigger-width) overflow-hidden rounded-xl border border-border bg-background p-1.5 text-foreground shadow-lg motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out\", className)} {...props} />; }\nexport function ComboboxList<T extends object>({ className, emptyState, ...props }: ListBoxProps<T> & { emptyState?: React.ReactNode }) { return <ListBox data-slot=\"combobox-list\" className={cn(\"max-h-64 overflow-y-auto\", className)} renderEmptyState={emptyState ? () => emptyState : undefined} {...props} />; }\nexport function ComboboxItem<T extends object>({ className, children, ...props }: ListBoxItemProps<T>) { return <ListBoxItem data-slot=\"combobox-item\" className={cn(\"flex w-full cursor-default items-center justify-between rounded-md px-2 py-2 text-sm outline-none transition-colors data-focused:bg-muted data-focused:text-foreground data-hovered:bg-muted data-disabled:pointer-events-none data-disabled:opacity-50\", className)} {...props}>{children}</ListBoxItem>; }\nexport function HighlightMatch({ text, query, className }: { text: string; query: string; className?: string }) { return <span className={className}>{getTextMatchParts(text, query).map((part, index) => part.match ? <mark key={`${part.text}-${index}`} className=\"rounded bg-accent px-0.5 text-accent-foreground\">{part.text}</mark> : <Fragment key={`${part.text}-${index}`}>{part.text}</Fragment>)}</span>; }\n\nexport type AutocompleteComboboxProps<T extends object> = Omit<ComboBoxProps<T>, \"children\" | \"items\" | \"inputValue\" | \"onInputChange\" | \"selectedKey\" | \"onSelectionChange\" | \"defaultFilter\"> & { items: readonly T[]; getItemKey: (item: T) => Key; getItemLabel: (item: T) => string; renderItem?: (item: T, query: string) => ReactNode; inputValue?: string; onInputChange?: (value: string) => void; selectedKey?: Key | null; onSelectionChange?: (key: Key | null, item?: T) => void; label?: ReactNode; description?: ReactNode; errorMessage?: ReactNode; emptyState?: ReactNode; suggestion?: boolean; placeholder?: string };\n\n/** A safe, keyboard-first autocomplete for users, contracts and other entities. */\nexport function AutocompleteCombobox<T extends object>({ items, getItemKey, getItemLabel, renderItem, inputValue: controlledInputValue, onInputChange, selectedKey, onSelectionChange, label, description, errorMessage, emptyState = <p className=\"px-3 py-7 text-center text-sm text-muted-foreground\">No hay resultados.</p>, suggestion = true, placeholder, className, onKeyDown: _onKeyDown, ...props }: AutocompleteComboboxProps<T>) {\n const [internalInputValue, setInternalInputValue] = useState(\"\");\n const inputValue = controlledInputValue ?? internalInputValue;\n const setInputValue = (value: string) => { setInternalInputValue(value); onInputChange?.(value); };\n const normalizedQuery = inputValue.trim().toLocaleLowerCase();\n const filteredItems = useMemo(() => normalizedQuery ? items.filter((item) => getItemLabel(item).toLocaleLowerCase().includes(normalizedQuery)) : [...items], [getItemLabel, items, normalizedQuery]);\n const suggestedItem = useMemo(() => !suggestion || !normalizedQuery ? undefined : items.find((item) => getItemLabel(item).toLocaleLowerCase().startsWith(normalizedQuery) && getItemLabel(item).length > inputValue.length), [getItemLabel, inputValue.length, items, normalizedQuery, suggestion]);\n const suggestionLabel = suggestedItem ? getItemLabel(suggestedItem) : undefined;\n const acceptSuggestion = () => { if (!suggestedItem || !suggestionLabel) return false; setInputValue(suggestionLabel); onSelectionChange?.(getItemKey(suggestedItem), suggestedItem); return true; };\n const handleKeyDown = (event: Parameters<NonNullable<InputProps[\"onKeyDown\"]>>[0]) => { if ((event.key === \"Tab\" || event.key === \"Enter\") && acceptSuggestion()) event.preventDefault(); };\n return <AriaComboBox<T> {...props} className={cn(\"group/combobox flex w-full flex-col gap-1.5\", className)} items={filteredItems} selectedKey={selectedKey} inputValue={inputValue} onInputChange={setInputValue} onSelectionChange={(key) => { const item = filteredItems.find((candidate) => String(getItemKey(candidate)) === String(key)); if (item) setInputValue(getItemLabel(item)); onSelectionChange?.(key, item); }}>\n {label && <Label className=\"text-sm font-medium text-foreground\">{label}</Label>}\n <div className=\"relative\">{suggestionLabel && <span aria-hidden=\"true\" className=\"pointer-events-none absolute inset-y-0 left-2.5 z-0 flex items-center whitespace-pre text-sm text-muted-foreground/60\"><span className=\"text-transparent\">{inputValue}</span>{suggestionLabel.slice(inputValue.length)}</span>}<ComboboxInput aria-autocomplete={suggestionLabel ? \"both\" : \"list\"} placeholder={placeholder} onKeyDown={handleKeyDown} className=\"relative z-10 bg-transparent\" /></div>\n {description && <Text slot=\"description\" className=\"text-xs text-muted-foreground\">{description}</Text>}\n {errorMessage && <FieldError className=\"text-xs text-destructive\">{errorMessage}</FieldError>}\n <ComboboxContent><ComboboxList<T> emptyState={emptyState}>{(item) => <ComboboxItem id={getItemKey(item)} textValue={getItemLabel(item)}>{renderItem ? renderItem(item, inputValue) : <HighlightMatch text={getItemLabel(item)} query={inputValue} />}</ComboboxItem>}</ComboboxList></ComboboxContent>\n </AriaComboBox>;\n}\n","import { ComboBox as AriaComboBox, Input as AriaInput, ListBox, ListBoxItem, Popover, type ComboBoxProps, type ListBoxItemProps } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport function Command<T extends object>({ className, ...props }: ComboBoxProps<T>) {\n return <AriaComboBox data-slot=\"command\" className={cn(\"w-full\", className)} {...props} />;\n}\n\nexport function CommandInput({ className, ...props }: React.ComponentProps<typeof AriaInput>) {\n return <AriaInput data-slot=\"command-input\" className={cn(\"h-9 w-full border-0 bg-transparent px-3 text-sm text-foreground outline-none placeholder:text-muted-foreground\", className)} {...props} />;\n}\n\nexport function CommandContent({ className, ...props }: React.ComponentProps<typeof Popover>) {\n return <Popover data-slot=\"command-content\" className={cn(\"w-(--trigger-width) overflow-hidden rounded-xl border border-border bg-background p-1.5 shadow-lg outline-none\", className)} {...props} />;\n}\n\nexport function CommandList<T extends object>({ className, ...props }: React.ComponentProps<typeof ListBox<T>>) {\n return <ListBox data-slot=\"command-list\" className={cn(\"max-h-72 overflow-y-auto\", className)} {...props} />;\n}\n\nexport function CommandItem<T extends object>({ className, ...props }: ListBoxItemProps<T>) {\n return <ListBoxItem data-slot=\"command-item\" className={cn(\"flex cursor-default items-center rounded-md px-2 py-1.5 text-sm outline-none data-focused:bg-muted data-disabled:pointer-events-none data-disabled:opacity-50\", className)} {...props} />;\n}\n","import type * as React from \"react\";\nimport { X } from \"lucide-react\";\nimport {\n Dialog as AriaDialog,\n Heading,\n Modal,\n ModalOverlay,\n Text,\n type ModalOverlayProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\nimport { Button } from \"../button/button\";\n\nconst sizeClasses = {\n sm: \"w-[min(calc(100dvw-2rem),24rem)]\",\n md: \"w-[min(calc(100dvw-2rem),28rem)]\",\n lg: \"w-[min(calc(100dvw-2rem),36rem)]\",\n} as const;\n\nexport type ModalDialogProps = Omit<\n ModalOverlayProps,\n \"children\" | \"className\" | \"isOpen\" | \"onOpenChange\"\n> & {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title: React.ReactNode;\n description?: React.ReactNode;\n children?: React.ReactNode;\n footer?: React.ReactNode;\n size?: keyof typeof sizeClasses;\n showCloseButton?: boolean;\n className?: string;\n footerClassName?: string;\n};\n\n/**\n * Accessible modal with a consistent title, optional description, body and footer.\n * Its width is self-contained so consumer CSS cannot override it with max-width utilities.\n */\nexport function ModalDialog({\n open,\n onOpenChange,\n title,\n description,\n children,\n footer,\n size = \"sm\",\n showCloseButton = true,\n className,\n footerClassName,\n ...props\n}: ModalDialogProps) {\n const layoutClass = children\n ? footer\n ? \"grid-rows-[auto_minmax(0,1fr)_auto]\"\n : \"grid-rows-[auto_minmax(0,1fr)]\"\n : \"grid-rows-[auto_auto]\";\n\n return (\n <ModalOverlay\n isOpen={open}\n onOpenChange={onOpenChange}\n className=\"fixed inset-0 z-50 grid place-items-center bg-black/20 p-4 backdrop-blur-[1px] motion-safe:data-entering:animate-ui-overlay-in motion-safe:data-exiting:animate-ui-overlay-out\"\n {...props}\n >\n <Modal\n className={cn(\n \"max-h-[calc(100dvh-2rem)] outline-none motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out\",\n sizeClasses[size],\n className,\n )}\n >\n <AriaDialog\n className={cn(\n \"grid max-h-[calc(100dvh-2rem)] overflow-hidden rounded-xl bg-background text-foreground shadow-xl outline-none\",\n layoutClass,\n )}\n >\n {({ close }) => (\n <>\n <header data-slot=\"modal-dialog-header\" className=\"flex items-start gap-3 border-b border-border px-5 py-4\">\n <div className=\"min-w-0 flex-1\">\n <Heading slot=\"title\" className=\"font-heading text-base leading-none font-medium\">\n {title}\n </Heading>\n {description ? (\n <Text slot=\"description\" className=\"mt-2 text-sm text-muted-foreground\">\n {description}\n </Text>\n ) : null}\n </div>\n {showCloseButton ? (\n <Button\n aria-label=\"Cerrar diálogo\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"-mr-2 -mt-1\"\n onPress={close}\n >\n <X aria-hidden=\"true\" className=\"size-4\" />\n </Button>\n ) : null}\n </header>\n {children ? (\n <div data-slot=\"modal-dialog-body\" className=\"min-h-0 overflow-y-auto px-5 py-4\">\n {children}\n </div>\n ) : null}\n {footer ? (\n <footer\n data-slot=\"modal-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 border-t border-border bg-muted/50 px-5 py-4 sm:flex-row sm:flex-wrap sm:justify-end\",\n footerClassName,\n )}\n >\n {footer}\n </footer>\n ) : null}\n </>\n )}\n </AriaDialog>\n </Modal>\n </ModalOverlay>\n );\n}\n","import type * as React from \"react\";\nimport { Button } from \"../button/button\";\nimport { ModalDialog } from \"../modal-dialog/modal-dialog\";\n\nexport type ConfirmDialogProps = {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title: string;\n description?: React.ReactNode;\n confirmLabel?: string;\n cancelLabel?: string;\n destructive?: boolean;\n pending?: boolean;\n onConfirm: () => void;\n};\n\n/** Controlled confirmation dialog for irreversible actions. */\nexport function ConfirmDialog({\n open,\n onOpenChange,\n title,\n description,\n confirmLabel = \"Confirmar\",\n cancelLabel = \"Cancelar\",\n destructive = false,\n pending = false,\n onConfirm,\n}: ConfirmDialogProps) {\n return (\n <ModalDialog\n open={open}\n onOpenChange={onOpenChange}\n title={title}\n description={description}\n showCloseButton={false}\n footer={\n <>\n <Button variant=\"outline\" isDisabled={pending} onPress={() => onOpenChange(false)}>\n {cancelLabel}\n </Button>\n <Button variant={destructive ? \"destructive\" : \"default\"} isDisabled={pending} onPress={onConfirm}>\n {confirmLabel}\n </Button>\n </>\n }\n />\n );\n}\n","\"use client\";\n\nimport { XIcon } from \"lucide-react\";\nimport * as React from \"react\";\nimport {\n Dialog as AriaDialog,\n Heading,\n Modal,\n ModalOverlay,\n type ModalOverlayProps,\n Text,\n} from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\nimport { Button } from \"../button/button\";\n\ntype DialogContextValue = { open: boolean; setOpen: (open: boolean) => void };\ntype SlottableProps = React.HTMLAttributes<HTMLElement> & { \"data-slot\"?: string };\nconst DialogContext = React.createContext<DialogContextValue | null>(null);\n\nfunction useDialogContext() {\n const context = React.useContext(DialogContext);\n if (!context) throw new Error(\"Dialog components must be rendered within Dialog.\");\n return context;\n}\n\ntype DialogProps = {\n children: React.ReactNode;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n open?: boolean;\n};\n\nfunction Dialog({ children, defaultOpen = false, onOpenChange, open: controlledOpen }: DialogProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen);\n const open = controlledOpen ?? uncontrolledOpen;\n const setOpen = React.useCallback(\n (nextOpen: boolean) => {\n if (controlledOpen === undefined) setUncontrolledOpen(nextOpen);\n onOpenChange?.(nextOpen);\n },\n [controlledOpen, onOpenChange],\n );\n\n return <DialogContext.Provider value={{ open, setOpen }}>{children}</DialogContext.Provider>;\n}\n\ntype DialogTriggerProps = Omit<React.ComponentProps<typeof Button>, \"onPress\"> & { asChild?: boolean };\n\nfunction DialogTrigger({ asChild = false, children, onClick, ...props }: DialogTriggerProps) {\n const { setOpen } = useDialogContext();\n const handleClick: React.MouseEventHandler<HTMLElement> = (event) => {\n onClick?.(event as React.MouseEvent<HTMLButtonElement>);\n if (!event.defaultPrevented) setOpen(true);\n };\n\n if (asChild && React.isValidElement<SlottableProps>(children)) {\n const child = children as React.ReactElement<SlottableProps>;\n return React.cloneElement(child, {\n ...(props as React.HTMLAttributes<HTMLElement>),\n \"data-slot\": \"dialog-trigger\",\n onClick: (event: React.MouseEvent<HTMLElement>) => {\n child.props.onClick?.(event);\n handleClick(event);\n },\n });\n }\n\n return (\n <Button data-slot=\"dialog-trigger\" onPress={() => setOpen(true)} {...props}>\n {children}\n </Button>\n );\n}\n\nfunction DialogPortal({ children }: { children?: React.ReactNode }) {\n return <>{children}</>;\n}\n\ntype DialogOverlayProps = Omit<ModalOverlayProps, \"children\" | \"className\" | \"isOpen\" | \"onOpenChange\"> & {\n children?: React.ReactNode;\n className?: string;\n};\n\nfunction DialogOverlay({ children, className, ...props }: DialogOverlayProps) {\n const { open, setOpen } = useDialogContext();\n if (!open) return null;\n\n return (\n <ModalOverlay\n data-slot=\"dialog-overlay\"\n isDismissable\n isOpen={open}\n onOpenChange={setOpen}\n className={cn(\n \"fixed inset-0 isolate z-50 grid place-items-center bg-black/10 p-4 duration-100 supports-backdrop-filter:backdrop-blur-xs data-entering:animate-ui-overlay-in data-exiting:animate-ui-overlay-out\",\n className,\n )}\n {...props}\n >\n {children}\n </ModalOverlay>\n );\n}\n\ntype DialogContentProps = Omit<React.ComponentProps<typeof AriaDialog>, \"children\" | \"className\"> & {\n children?: React.ReactNode;\n className?: string;\n onOverlayClick?: React.MouseEventHandler<HTMLDivElement>;\n showCloseButton?: boolean;\n};\n\nfunction DialogContent({\n children,\n className,\n onOverlayClick,\n showCloseButton = true,\n ...props\n}: DialogContentProps) {\n const { setOpen } = useDialogContext();\n\n return (\n <DialogPortal>\n <DialogOverlay\n onClick={(event) => {\n if (event.target === event.currentTarget) onOverlayClick?.(event);\n }}\n >\n <Modal\n className={cn(\n \"w-full max-w-[calc(100%-2rem)] max-h-[calc(100dvh-2rem)] outline-none sm:max-w-sm\",\n className,\n )}\n >\n <AriaDialog\n data-slot=\"dialog-content\"\n className={cn(\n \"grid max-h-[calc(100dvh-2rem)] gap-4 overflow-y-auto rounded-xl bg-background p-4 text-sm text-foreground ring-1 ring-foreground/10 outline-none\",\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton ? (\n <Button\n aria-label=\"Cerrar diálogo\"\n data-slot=\"dialog-close\"\n variant=\"ghost\"\n className=\"absolute top-2 right-2\"\n size=\"icon-sm\"\n onPress={() => setOpen(false)}\n >\n <XIcon />\n </Button>\n ) : null}\n </AriaDialog>\n </Modal>\n </DialogOverlay>\n </DialogPortal>\n );\n}\n\ntype DialogCloseProps = Omit<React.ComponentProps<typeof Button>, \"onPress\"> & { asChild?: boolean };\n\nfunction DialogClose({ asChild = false, children, onClick, ...props }: DialogCloseProps) {\n const { setOpen } = useDialogContext();\n if (asChild && React.isValidElement<SlottableProps>(children)) {\n const child = children as React.ReactElement<SlottableProps>;\n return React.cloneElement(child, {\n ...(props as React.HTMLAttributes<HTMLElement>),\n \"data-slot\": \"dialog-close\",\n onClick: (event: React.MouseEvent<HTMLElement>) => {\n child.props.onClick?.(event);\n if (!event.defaultPrevented) setOpen(false);\n },\n });\n }\n\n return (\n <Button data-slot=\"dialog-close\" onPress={() => setOpen(false)} {...props}>\n {children}\n </Button>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"dialog-header\" className={cn(\"flex flex-col gap-2\", className)} {...props} />;\n}\n\nfunction DialogFooter({ className, showCloseButton = false, children, ...props }: React.ComponentProps<\"div\"> & { showCloseButton?: boolean }) {\n return (\n <div data-slot=\"dialog-footer\" className={cn(\"-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:flex-wrap sm:justify-end\", className)} {...props}>\n {children}\n {showCloseButton ? <DialogClose variant=\"outline\">Cerrar</DialogClose> : null}\n </div>\n );\n}\n\nfunction DialogTitle({ className, ...props }: Omit<React.ComponentProps<typeof Heading>, \"slot\">) {\n return <Heading slot=\"title\" data-slot=\"dialog-title\" className={cn(\"font-heading text-base leading-none font-medium\", className)} {...props} />;\n}\n\nfunction DialogDescription({ className, ...props }: Omit<React.ComponentProps<typeof Text>, \"slot\">) {\n return <Text slot=\"description\" data-slot=\"dialog-description\" className={cn(\"text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground\", className)} {...props} />;\n}\n\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };\n","import { Dialog as AriaDialog, Modal, ModalOverlay, type ModalOverlayProps } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport interface DrawerProps extends Omit<ModalOverlayProps, \"children\" | \"className\"> { children: React.ReactNode; side?: \"left\" | \"right\" | \"bottom\"; className?: string; }\n\nconst sideStyles = { left: \"inset-y-0 left-0 h-full w-[min(22rem,calc(100%-2rem))] data-entering:animate-ui-surface-in\", right: \"inset-y-0 right-0 h-full w-[min(22rem,calc(100%-2rem))] data-entering:animate-ui-surface-in\", bottom: \"inset-x-0 bottom-0 max-h-[85vh] w-full data-entering:animate-ui-surface-in\" };\n\nexport function Drawer({ children, side = \"right\", className, ...props }: DrawerProps) {\n return <ModalOverlay isDismissable className=\"fixed inset-0 z-50 bg-black/20 backdrop-blur-[1px] motion-safe:data-entering:animate-ui-overlay-in motion-safe:data-exiting:animate-ui-overlay-out\" {...props}><Modal className={cn(\"absolute grid gap-4 overflow-y-auto rounded-xl border border-border bg-background p-5 text-foreground shadow-xl outline-none\", sideStyles[side], className)}><AriaDialog data-slot=\"drawer\" className=\"outline-none\">{children}</AriaDialog></Modal></ModalOverlay>;\n}\n\nexport function DrawerHeader({ className, ...props }: React.ComponentProps<\"div\">) { return <div data-slot=\"drawer-header\" className={cn(\"flex flex-col gap-1.5\", className)} {...props} />; }\nexport function DrawerFooter({ className, ...props }: React.ComponentProps<\"div\">) { return <div data-slot=\"drawer-footer\" className={cn(\"mt-auto flex flex-col-reverse gap-2 pt-4 sm:flex-row sm:justify-end\", className)} {...props} />; }\nexport function DrawerTitle({ className, ...props }: React.ComponentProps<\"h2\">) { return <h2 data-slot=\"drawer-title\" className={cn(\"text-base font-semibold\", className)} {...props} />; }\nexport function DrawerDescription({ className, ...props }: React.ComponentProps<\"p\">) { return <p data-slot=\"drawer-description\" className={cn(\"text-sm text-muted-foreground\", className)} {...props} />; }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cva } from \"class-variance-authority\"\nimport { CheckIcon, ChevronRightIcon } from \"lucide-react\"\nimport {\n composeRenderProps,\n Header as HeaderPrimitive,\n MenuItem as MenuItemPrimitive,\n Menu as MenuPrimitive,\n MenuSection as MenuSectionPrimitive,\n MenuTrigger as MenuTriggerPrimitive,\n Popover as PopoverPrimitive,\n Separator as SeparatorPrimitive,\n SubmenuTrigger as SubmenuTriggerPrimitive,\n type MenuItemProps as MenuItemPrimitiveProps,\n type MenuSectionProps as MenuSectionPrimitiveProps,\n} from \"react-aria-components\"\nimport { cn } from \"~/lib/cn\"\n\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof MenuTriggerPrimitive>) {\n return <MenuTriggerPrimitive data-slot=\"dropdown-menu-trigger\" {...props} />\n}\n\nfunction DropdownMenu({\n \"data-slot\": dataSlot = \"dropdown-menu-content\",\n placement = \"bottom start\",\n offset = 4,\n crossOffset = 0,\n className,\n children,\n ...props\n}: Omit<\n React.ComponentProps<typeof MenuPrimitive<object>>,\n \"children\" | \"className\"\n> &\n Pick<\n React.ComponentProps<typeof PopoverPrimitive>,\n \"placement\" | \"offset\" | \"crossOffset\"\n > & {\n \"data-slot\"?: string\n className?: string\n children?: React.ReactNode\n }) {\n return (\n <PopoverPrimitive\n data-slot={dataSlot}\n placement={placement}\n offset={offset}\n crossOffset={crossOffset}\n className={cn(\"z-50 w-(--trigger-width) min-w-32 origin-(--trigger-anchor-point) overflow-x-hidden overflow-y-auto rounded-lg border border-border bg-popover p-1 text-popover-foreground shadow-lg outline-none motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out\", className)}\n >\n <MenuPrimitive\n className=\"max-h-[inherit] overflow-x-hidden overflow-y-auto outline-hidden\"\n {...props}\n >\n {children}\n </MenuPrimitive>\n </PopoverPrimitive>\n )\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: Omit<MenuSectionPrimitiveProps<object>, \"children\"> & {\n children?: React.ReactNode\n}) {\n return <MenuSectionPrimitive data-slot=\"dropdown-menu-group\" {...props} />\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof HeaderPrimitive> & {\n inset?: boolean\n}) {\n return (\n <HeaderPrimitive\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst dropdownMenuItemVariants = cva(\n \"group/dropdown-menu-item relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n selectionMode: {\n none: \"gap-1.5 rounded-md px-1.5 py-1 text-sm focus:bg-muted focus:text-foreground not-data-[variant=destructive]:focus:**:text-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive\",\n single:\n \"gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm focus:bg-muted focus:text-foreground focus:**:text-foreground data-inset:pl-7 [&_svg:not([class*='size-'])]:size-4\",\n multiple:\n \"gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm focus:bg-muted focus:text-foreground focus:**:text-foreground data-inset:pl-7 [&_svg:not([class*='size-'])]:size-4\",\n },\n },\n }\n)\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n children,\n ...props\n}: MenuItemPrimitiveProps<object> & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}) {\n return (\n <MenuItemPrimitive\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n textValue={typeof children === \"string\" ? children : props.textValue}\n className={composeRenderProps(className, (className, { selectionMode }) =>\n cn(dropdownMenuItemVariants({ selectionMode }), className)\n )}\n {...props}\n >\n {composeRenderProps(\n children,\n (children, { isSelected, selectionMode }) => (\n <>\n {selectionMode !== \"none\" ? (\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot={\n selectionMode === \"single\"\n ? \"dropdown-menu-radio-item-indicator\"\n : \"dropdown-menu-checkbox-item-indicator\"\n }\n >\n {isSelected ? <CheckIcon /> : null}\n </span>\n ) : null}\n {children}\n </>\n )\n )}\n </MenuItemPrimitive>\n )\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps<typeof SubmenuTriggerPrimitive>) {\n return <SubmenuTriggerPrimitive data-slot=\"dropdown-menu-sub\" {...props} />\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenuItemPrimitiveProps<object> & {\n inset?: boolean\n}) {\n return (\n <MenuItemPrimitive\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n textValue={typeof children === \"string\" ? children : props.textValue}\n className={cn(\n \"flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-muted focus:text-foreground focus:**:text-foreground data-inset:pl-7 data-open:bg-muted data-open:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {composeRenderProps(children, (children) => (\n <>\n {children}\n <ChevronRightIcon className=\"cn-rtl-flip ml-auto\" />\n </>\n ))}\n </MenuItemPrimitive>\n )\n}\n\nfunction DropdownMenuSubContent({\n placement = \"end top\",\n crossOffset = -3,\n offset = 0,\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenu>) {\n return (\n <DropdownMenu\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\"w-auto min-w-24 rounded-lg border border-border bg-popover p-1 text-popover-foreground shadow-lg\", className)}\n placement={placement}\n crossOffset={crossOffset}\n offset={offset}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive>) {\n return (\n <SeparatorPrimitive\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", 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 \"ml-auto text-xs tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n DropdownMenuTrigger,\n DropdownMenu,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n}\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\n\nexport function EmptyState({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-state\"\n className={cn(\n \"flex min-h-44 w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-xl border border-dashed border-border p-6 text-center text-balance\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function EmptyStateHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-state-header\"\n className={cn(\"flex max-w-sm flex-col items-center gap-2\", className)}\n {...props}\n />\n );\n}\n\nexport const emptyStateMediaVariants = cva(\n \"mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"size-8 rounded-lg bg-muted text-foreground [&_svg:not([class*='size-'])]:size-4\",\n },\n },\n defaultVariants: { variant: \"default\" },\n },\n);\n\nexport function EmptyStateMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof emptyStateMediaVariants>) {\n return (\n <div\n data-slot=\"empty-state-media\"\n data-variant={variant}\n className={cn(emptyStateMediaVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport function EmptyStateTitle({ className, ...props }: React.ComponentProps<\"h3\">) {\n return (\n <h3\n data-slot=\"empty-state-title\"\n className={cn(\"text-sm font-medium tracking-tight text-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport function EmptyStateDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"empty-state-description\"\n className={cn(\n \"max-w-sm text-sm/relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function EmptyStateContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-state-content\"\n className={cn(\n \"flex w-full max-w-sm min-w-0 flex-col items-center gap-2.5 text-sm\",\n className,\n )}\n {...props}\n />\n );\n}\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport { Label } from \"../label/label\";\nimport { Separator } from \"../separator/separator\";\n\nexport function FieldSet({ className, ...props }: React.ComponentProps<\"fieldset\">) {\n return (\n <fieldset data-slot=\"field-set\" className={cn(\"flex flex-col gap-4\", className)} {...props} />\n );\n}\n\nexport function FieldLegend({\n className,\n variant = \"legend\",\n ...props\n}: React.ComponentProps<\"legend\"> & { variant?: \"legend\" | \"label\" }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n \"mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function FieldGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n \"group/field-group @container/field-group flex w-full flex-col gap-5\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport const fieldVariants = cva(\n \"group/field flex w-full gap-2 data-[invalid=true]:text-destructive\",\n {\n variants: {\n orientation: {\n vertical: \"flex-col *:w-full [&>.sr-only]:w-auto\",\n horizontal:\n \"flex-row items-center has-[>[data-slot=field-content]]:items-start *:data-[slot=field-label]:flex-auto\",\n responsive:\n \"flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:*:data-[slot=field-label]:flex-auto\",\n },\n },\n defaultVariants: { orientation: \"vertical\" },\n },\n);\n\nexport type FieldProps = React.ComponentProps<\"div\"> & VariantProps<typeof fieldVariants>;\n\nexport function Field({ className, orientation = \"vertical\", ...props }: FieldProps) {\n return (\n // biome-ignore lint/a11y/useSemanticElements: FieldSet provides native fieldset semantics when they are appropriate.\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n );\n}\n\nexport function FieldContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn(\"flex flex-1 flex-col gap-0.5 leading-snug\", className)}\n {...props}\n />\n );\n}\n\nexport function FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n \"flex w-fit gap-2 leading-snug text-foreground group-data-[disabled=true]/field:opacity-50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function FieldTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-title\"\n className={cn(\"flex w-fit items-center gap-2 text-sm font-medium\", className)}\n {...props}\n />\n );\n}\n\nexport function FieldDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n \"text-left text-sm leading-normal text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function FieldSeparator({ className, children, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={Boolean(children) || undefined}\n className={cn(\"relative -my-2 h-5 text-sm\", className)}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children ? (\n <span\n data-slot=\"field-separator-content\"\n className=\"relative mx-auto block w-fit bg-background px-2 text-muted-foreground\"\n >\n {children}\n </span>\n ) : null}\n </div>\n );\n}\n\nexport type FieldErrorProps = React.ComponentProps<\"div\"> & {\n errors?: Array<{ message?: string } | undefined>;\n};\n\nexport function FieldError({ className, children, errors, ...props }: FieldErrorProps) {\n const messages = [...new Set(errors?.flatMap((error) => error?.message ?? []) ?? [])];\n const content =\n children ??\n (messages.length === 1 ? (\n messages[0]\n ) : messages.length > 1 ? (\n <ul className=\"ml-4 list-disc\">\n {messages.map((message) => (\n <li key={message}>{message}</li>\n ))}\n </ul>\n ) : null);\n if (!content) return null;\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn(\"text-sm text-destructive\", className)}\n {...props}\n >\n {content}\n </div>\n );\n}\n","import { forwardRef, type ComponentPropsWithRef } from \"react\";\nimport { Label as LabelPrimitive } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport const Label = forwardRef<HTMLLabelElement, ComponentPropsWithRef<typeof LabelPrimitive>>(function Label({ className, ...props }, ref) {\n return <LabelPrimitive ref={ref} data-slot=\"label\" className={cn(\"flex items-center gap-2 text-sm font-medium leading-none select-none\", className)} {...props} />;\n});\n\nexport type LabelProps = ComponentPropsWithRef<typeof Label>;\n","import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { CheckCircle, LoaderCircle, CircleAlert } from \"lucide-react\";\nimport { cn } from \"../../lib/cn\";\n\nexport type FormFeedbackState = { status: \"idle\" } | { status: \"pending\" } | { status: \"success\"; message?: string } | { status: \"error\"; message: string };\n\nexport function useFormFeedback(options?: { successResetMs?: number }) {\n const resetMs = options?.successResetMs ?? 2500;\n const [state, setState] = useState<FormFeedbackState>({ status: \"idle\" });\n const timer = useRef<ReturnType<typeof setTimeout> | null>(null);\n const clearTimer = useCallback(() => { if (timer.current) clearTimeout(timer.current); timer.current = null; }, []);\n useEffect(() => () => clearTimer(), [clearTimer]);\n const setPending = useCallback(() => { clearTimer(); setState({ status: \"pending\" }); }, [clearTimer]);\n const setSuccess = useCallback((message?: string) => { clearTimer(); setState({ status: \"success\", message }); if (resetMs > 0) timer.current = setTimeout(() => setState({ status: \"idle\" }), resetMs); }, [clearTimer, resetMs]);\n const setError = useCallback((message: string) => { clearTimer(); setState({ status: \"error\", message }); }, [clearTimer]);\n const reset = useCallback(() => { clearTimer(); setState({ status: \"idle\" }); }, [clearTimer]);\n return { state, pending: state.status === \"pending\", setPending, setSuccess, setError, reset };\n}\n\nexport interface FormFeedbackProps { state: FormFeedbackState; className?: string; pendingLabel?: string; successLabel?: string; }\n\nexport function FormFeedback({ state, className, pendingLabel = \"Guardando…\", successLabel = \"Guardado\" }: FormFeedbackProps) {\n if (state.status === \"idle\") return <span aria-hidden=\"true\" className={cn(\"inline-flex h-5 items-center\", className)} />;\n const error = state.status === \"error\";\n const success = state.status === \"success\";\n return <span role={error ? \"alert\" : \"status\"} aria-live=\"polite\" className={cn(\"inline-flex h-5 items-center gap-1.5 text-xs\", error && \"text-destructive\", success && \"text-success\", state.status === \"pending\" && \"text-muted-foreground\", className)}>\n {state.status === \"pending\" && <LoaderCircle aria-hidden=\"true\" className=\"size-3.5 animate-spin\" />}\n {success && <CheckCircle aria-hidden=\"true\" className=\"size-3.5\" />}\n {error && <CircleAlert aria-hidden=\"true\" className=\"size-3.5\" />}\n <span>{state.status === \"pending\" ? pendingLabel : success ? state.message ?? successLabel : state.message}</span>\n </span>;\n}\n","import type { ReactNode } from \"react\";\nimport { cn } from \"../../lib/cn\";\n\nexport interface FormRowProps {\n label: ReactNode;\n htmlFor: string;\n required?: boolean;\n hint?: ReactNode;\n error?: ReactNode;\n className?: string;\n children: ReactNode;\n}\n\nexport function FormRow({ label, htmlFor, required, hint, error, className, children }: FormRowProps) {\n const hintId = hint ? `${htmlFor}-hint` : undefined;\n const errorId = error ? `${htmlFor}-error` : undefined;\n return <div data-slot=\"form-row\" className={cn(\"flex flex-col gap-1.5\", className)}>\n <label htmlFor={htmlFor} className=\"text-sm font-medium text-foreground\">{label}{required && <><span aria-hidden=\"true\" className=\"ml-0.5 text-destructive\">*</span><span className=\"sr-only\"> (obligatorio)</span></>}</label>\n {children}\n {hint && <p id={hintId} className=\"text-xs text-muted-foreground\">{hint}</p>}\n {error && <p id={errorId} role=\"alert\" className=\"text-xs font-medium text-destructive\">{error}</p>}\n </div>;\n}\n","import type { ReactNode } from \"react\";\nimport { Link } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\nimport { Button, type ButtonProps, buttonVariants } from \"../button/button\";\nimport { Tooltip, TooltipTrigger } from \"../tooltip/tooltip\";\n\nexport type IconButtonProps = Omit<ButtonProps, \"children\"> & {\n\t/** Accessible name and text shown in the tooltip. */\n\tlabel: string;\n\t/** Optional href for rendering the action as an accessible link. */\n\thref?: string;\n\tchildren?: ReactNode;\n};\n\n/** A consistently sized icon-only action with an accessible tooltip. */\nexport function IconButton({\n\tlabel,\n\tchildren,\n\thref,\n\tclassName,\n\tvariant,\n\t...props\n}: IconButtonProps) {\n\tconst linkClassName = cn(\n\t\tbuttonVariants({ variant, size: \"icon\" }),\n\t\tclassName,\n\t);\n\n\treturn (\n\t\t<TooltipTrigger>\n\t\t\t{href ? (\n\t\t\t\t<Link\n\t\t\t\t\tdata-slot=\"icon-button\"\n\t\t\t\t\taria-label={label}\n\t\t\t\t\thref={href}\n\t\t\t\t\tclassName={linkClassName}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</Link>\n\t\t\t) : (\n\t\t\t\t<Button\n\t\t\t\t\tdata-slot=\"icon-button\"\n\t\t\t\t\taria-label={label}\n\t\t\t\t\tvariant={variant}\n\t\t\t\t\tsize=\"icon\"\n\t\t\t\t\tclassName={className}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t\t<Tooltip>{label}</Tooltip>\n\t\t</TooltipTrigger>\n\t);\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport {\n Focusable,\n OverlayArrow,\n Tooltip as TooltipPrimitive,\n TooltipTrigger as TooltipTriggerPrimitive,\n} from \"react-aria-components\"\nimport { cn } from \"~/lib/cn\"\n\n\nfunction TooltipTrigger({\n delay = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipTriggerPrimitive>) {\n const [trigger, tooltip] = React.Children.toArray(children)\n\n return (\n <TooltipTriggerPrimitive\n data-slot=\"tooltip-trigger\"\n delay={delay}\n {...props}\n >\n <Focusable>\n {trigger as React.ComponentProps<typeof Focusable>[\"children\"]}\n </Focusable>\n {tooltip}\n </TooltipTriggerPrimitive>\n )\n}\n\nfunction Tooltip({\n className,\n placement = \"top\",\n offset = 4,\n crossOffset = 0,\n children,\n ...props\n}: Omit<\n React.ComponentProps<typeof TooltipPrimitive>,\n \"children\" | \"className\"\n> & {\n className?: string\n children?: React.ReactNode\n}) {\n return (\n <TooltipPrimitive\n data-slot=\"tooltip-content\"\n placement={placement}\n offset={offset}\n crossOffset={crossOffset}\n className={cn(\n \"z-50 inline-flex w-fit max-w-xs origin-(--trigger-anchor-point) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background shadow-md outline-none motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out has-data-[slot=kbd]:pr-1.5 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm\",\n className\n )}\n {...props}\n >\n {children}\n <OverlayArrow\n className=\"z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-xs bg-foreground fill-foreground\"\n style={({ placement, defaultStyle }) => ({\n ...defaultStyle,\n rotate: \"0deg\",\n translate: \"0 0\",\n transform:\n placement === \"bottom\"\n ? \"translate(-50%, calc(50% + 2px)) rotate(45deg)\"\n : placement === \"top\"\n ? \"translate(-50%, calc(-50% - 2px)) rotate(45deg)\"\n : placement === \"left\"\n ? \"translate(calc(-50% - 2px), -50%) rotate(45deg)\"\n : \"translate(calc(50% + 2px), -50%) rotate(45deg)\",\n })}\n />\n </TooltipPrimitive>\n )\n}\n\nexport { Tooltip, TooltipTrigger }\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/cn\";\nimport { Button, type ButtonProps } from \"../button/button\";\nimport { Input } from \"../input/input\";\nimport { Textarea } from \"../textarea/textarea\";\n\nexport function InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n // biome-ignore lint/a11y/useSemanticElements: fieldset cannot preserve this inline control composition.\n <div\n role=\"group\"\n data-slot=\"input-group\"\n className={cn(\n \"group/input-group relative flex min-h-8 w-full min-w-0 items-center rounded-lg border border-border transition-colors outline-none has-disabled:bg-muted/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align^=block]]:h-auto has-[>[data-align^=block]]:flex-col\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport const inputGroupAddonVariants = cva(\n \"flex cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\": \"order-first pl-2\",\n \"inline-end\": \"order-last pr-2\",\n \"block-start\": \"order-first w-full justify-start px-2.5 pt-2\",\n \"block-end\": \"order-last w-full justify-start px-2.5 pb-2\",\n },\n },\n defaultVariants: { align: \"inline-start\" },\n },\n);\nexport function InputGroupAddon({\n className,\n align = \"inline-start\",\n onClick,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n // biome-ignore lint/a11y/useSemanticElements: this addon delegates focus to its associated input.\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented && !(event.target as HTMLElement).closest(\"button\"))\n event.currentTarget.parentElement?.querySelector<HTMLElement>(\"input, textarea\")?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\"shrink-0 shadow-none\", {\n variants: {\n size: { xs: \"h-6 px-1.5 text-xs\", sm: \"h-7 px-2\", \"icon-xs\": \"size-6\", \"icon-sm\": \"size-7\" },\n },\n defaultVariants: { size: \"xs\" },\n});\nexport type InputGroupButtonProps = Omit<ButtonProps, \"size\"> &\n VariantProps<typeof inputGroupButtonVariants>;\nexport function InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: InputGroupButtonProps) {\n const buttonSize = size === \"icon-xs\" || size === \"icon-sm\" ? size : size;\n return (\n <Button\n data-slot=\"input-group-button\"\n type={type}\n size={buttonSize}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nexport function InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"input-group-text\"\n className={cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function InputGroupInput({ className, ...props }: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function InputGroupTextarea({ className, ...props }: React.ComponentProps<typeof Textarea>) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0\",\n className,\n )}\n {...props}\n />\n );\n}\n","import { forwardRef } from \"react\";\nimport { Input as AriaInput, type InputProps as AriaInputProps } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\ntype CompatibleRef<T> = ((instance: T | null) => unknown) | { readonly current: T | null } | null;\n\nexport type InputProps = Omit<AriaInputProps, \"ref\"> & { ref?: CompatibleRef<HTMLInputElement> };\n\nconst InputImpl = forwardRef<HTMLInputElement, AriaInputProps>(function Input({ className, type, ...props }, ref) {\n return <AriaInput ref={ref} type={type} data-slot=\"input\" className={cn(\"h-8 w-full min-w-0 rounded-lg border border-border bg-background px-2.5 py-1 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive\", className)} {...props} />;\n});\n\n/** Forward-ref component with a ref type compatible across React 19 type releases. */\nexport const Input = InputImpl as unknown as (props: InputProps) => ReturnType<typeof InputImpl>;\n","import { forwardRef } from \"react\";\nimport { TextArea as AriaTextArea, type TextAreaProps as AriaTextAreaProps } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\ntype CompatibleRef<T> = ((instance: T | null) => unknown) | { readonly current: T | null } | null;\n\nexport type TextareaProps = Omit<AriaTextAreaProps, \"ref\"> & { ref?: CompatibleRef<HTMLTextAreaElement> };\n\nconst TextareaImpl = forwardRef<HTMLTextAreaElement, AriaTextAreaProps>(function Textarea({ className, ...props }, ref) {\n return <AriaTextArea ref={ref} data-slot=\"textarea\" className={cn(\"min-h-20 w-full rounded-lg border border-border bg-background px-2.5 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive\", className)} {...props} />;\n});\n\n/** Forward-ref component with a ref type compatible across React 19 type releases. */\nexport const Textarea = TextareaImpl as unknown as (props: TextareaProps) => ReturnType<typeof TextareaImpl>;\n","import type * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\n\nexport function Kbd({ className, ...props }: React.ComponentProps<\"kbd\">) {\n return <kbd data-slot=\"kbd\" className={cn(\"pointer-events-none inline-flex h-5 min-w-5 items-center justify-center gap-1 rounded-sm bg-muted px-1 font-sans text-xs font-medium text-muted-foreground select-none\", className)} {...props} />;\n}\n\nexport function KbdGroup({ className, ...props }: React.ComponentProps<\"span\">) {\n return <span data-slot=\"kbd-group\" className={cn(\"inline-flex items-center gap-1\", className)} {...props} />;\n}\n","import type * as React from \"react\";\nimport { LoaderCircle } from \"lucide-react\";\nimport { cn } from \"../../lib/cn\";\nexport function LoadingOverlay({ label = \"Cargando\", className, ...props }: React.ComponentProps<\"div\"> & { label?: string }) { return <div role=\"status\" aria-live=\"polite\" className={cn(\"absolute inset-0 z-10 flex items-center justify-center bg-background/70 backdrop-blur-[2px]\", className)} {...props}><div className=\"flex items-center gap-2 rounded-lg border border-border bg-background px-3 py-2 text-sm shadow-sm\"><LoaderCircle className=\"animate-spin\" aria-hidden=\"true\" /><span>{label}</span></div></div>; }\n","import {\n Menu as AriaMenu,\n MenuItem as AriaMenuItem,\n MenuTrigger as AriaMenuTrigger,\n Popover,\n type MenuItemProps,\n type MenuProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport const MenuTrigger = AriaMenuTrigger;\n\nexport function MenuContent({ className, ...props }: React.ComponentProps<typeof Popover>) {\n return <Popover data-slot=\"menu-content\" className={cn(\"min-w-40 overflow-hidden rounded-xl border border-border bg-background p-1.5 text-foreground shadow-lg motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out\", className)} {...props} />;\n}\n\nexport function Menu<T extends object>({ className, ...props }: MenuProps<T>) {\n return <AriaMenu data-slot=\"menu\" className={cn(\"outline-none\", className)} {...props} />;\n}\n\nexport function MenuItem<T extends object>({ className, children, ...props }: MenuItemProps<T>) {\n return <AriaMenuItem data-slot=\"menu-item\" className={cn(\"flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none data-focused:bg-muted data-disabled:pointer-events-none data-disabled:opacity-50\", className)} {...props}>{children}</AriaMenuItem>;\n}\n","import {\n forwardRef,\n type PointerEvent as ReactPointerEvent,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { Input as AriaInput, type InputProps as AriaInputProps } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\ntype CompatibleRef<T> = ((instance: T | null) => unknown) | { readonly current: T | null } | null;\n\nexport type OtpInputProps = Omit<\n AriaInputProps,\n \"children\" | \"className\" | \"defaultValue\" | \"maxLength\" | \"onChange\" | \"type\" | \"value\"\n> & {\n /** Number of numeric characters in the code. */\n length?: number;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n onComplete?: (value: string) => void;\n className?: string;\n inputClassName?: string;\n ref?: CompatibleRef<HTMLInputElement>;\n};\n\nfunction normalizeOtp(value: string, length: number) {\n return value.replace(/[^0-9]/g, \"\").slice(0, length);\n}\n\nconst OtpInputImpl = forwardRef<HTMLInputElement, OtpInputProps>(function OtpInput(\n {\n length = 6,\n value,\n defaultValue = \"\",\n onChange,\n onComplete,\n className,\n inputClassName,\n disabled,\n onBlur,\n onFocus,\n onKeyUp,\n onSelect,\n ...props\n },\n forwardedRef,\n) {\n const slotCount = Math.max(1, Math.floor(length));\n const controlled = value !== undefined;\n const [internalValue, setInternalValue] = useState(() => normalizeOtp(defaultValue, slotCount));\n const code = normalizeOtp(controlled ? value : internalValue, slotCount);\n const slots = Array.from({ length: slotCount }, (_, index) => `otp-slot-${index + 1}`);\n const inputRef = useRef<HTMLInputElement>(null);\n const [focused, setFocused] = useState(false);\n const [selectionStart, setSelectionStart] = useState(0);\n const invalid = props[\"aria-invalid\"] === true || props[\"aria-invalid\"] === \"true\";\n const activeIndex =\n code.length === slotCount\n ? slotCount - 1\n : Math.min(selectionStart, code.length, slotCount - 1);\n\n useImperativeHandle(forwardedRef, () => inputRef.current as HTMLInputElement);\n\n function updateSelection(input: HTMLInputElement) {\n setSelectionStart(input.selectionStart ?? code.length);\n }\n\n function commitValue(rawValue: string) {\n const nextValue = normalizeOtp(rawValue, slotCount);\n if (!controlled) setInternalValue(nextValue);\n if (nextValue === code) return;\n onChange?.(nextValue);\n if (nextValue.length === slotCount) onComplete?.(nextValue);\n }\n\n function handlePointerDown(event: ReactPointerEvent<HTMLDivElement>) {\n if (disabled) return;\n event.preventDefault();\n const input = inputRef.current;\n if (!input) return;\n const bounds = event.currentTarget.getBoundingClientRect();\n const offset = bounds.width > 0 ? (event.clientX - bounds.left) / bounds.width : 1;\n const position = Math.min(Math.max(Math.floor(offset * slotCount), 0), code.length);\n input.focus();\n input.setSelectionRange(position, position);\n setSelectionStart(position);\n }\n\n return (\n <div\n data-slot=\"otp-input\"\n data-disabled={disabled || undefined}\n data-invalid={invalid || undefined}\n className={cn(\"relative inline-grid max-w-full gap-2\", className)}\n style={{ gridTemplateColumns: `repeat(${slotCount}, minmax(0, 2.5rem))` }}\n onPointerDown={handlePointerDown}\n >\n <AriaInput\n {...props}\n ref={inputRef}\n type=\"text\"\n inputMode={props.inputMode ?? \"numeric\"}\n autoComplete={props.autoComplete ?? \"one-time-code\"}\n pattern={props.pattern ?? \"[0-9]*\"}\n maxLength={slotCount}\n value={code}\n disabled={disabled}\n data-slot=\"otp-input-control\"\n className={cn(\n \"absolute inset-0 z-10 size-full cursor-text appearance-none rounded-lg border-0 bg-transparent text-base text-transparent caret-transparent outline-none selection:bg-transparent disabled:cursor-not-allowed\",\n inputClassName,\n )}\n onChange={(event) => {\n commitValue(event.currentTarget.value);\n updateSelection(event.currentTarget);\n }}\n onFocus={(event) => {\n setFocused(true);\n updateSelection(event.currentTarget);\n onFocus?.(event);\n }}\n onBlur={(event) => {\n setFocused(false);\n onBlur?.(event);\n }}\n onSelect={(event) => {\n updateSelection(event.currentTarget);\n onSelect?.(event);\n }}\n onKeyUp={(event) => {\n updateSelection(event.currentTarget);\n onKeyUp?.(event);\n }}\n />\n {slots.map((slot, index) => (\n <span\n key={slot}\n aria-hidden=\"true\"\n data-slot=\"otp-input-slot\"\n data-active={(focused && index === activeIndex) || undefined}\n className={cn(\n \"pointer-events-none grid size-10 place-items-center rounded-lg border border-border bg-background text-base font-medium tabular-nums text-foreground transition-[border-color,box-shadow]\",\n focused && index === activeIndex && \"border-ring ring-3 ring-ring/50\",\n invalid && \"border-destructive\",\n disabled && \"opacity-50\",\n )}\n >\n {code[index] ?? \"\"}\n </span>\n ))}\n </div>\n );\n});\n\n/** A single accessible input visually split into slots for numeric one-time codes. */\nexport const OtpInput = OtpInputImpl as unknown as (\n props: OtpInputProps,\n) => ReturnType<typeof OtpInputImpl>;\n","import type * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\n\nexport function PageHeader({ className, ...props }: React.ComponentProps<\"header\">) {\n return <header data-slot=\"page-header\" className={cn(\"flex flex-col gap-4 py-2 sm:flex-row sm:items-center sm:justify-between\", className)} {...props} />;\n}\nexport function PageHeaderHeading({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"page-header-heading\" className={cn(\"min-w-0\", className)} {...props} />;\n}\nexport function PageHeaderTitle({ className, ...props }: React.ComponentProps<\"h1\">) {\n return <h1 data-slot=\"page-header-title\" className={cn(\"truncate text-xl font-semibold tracking-tight md:text-2xl\", className)} {...props} />;\n}\nexport function PageHeaderDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return <p data-slot=\"page-header-description\" className={cn(\"mt-1 text-sm text-muted-foreground\", className)} {...props} />;\n}\nexport function PageHeaderActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"page-header-actions\" className={cn(\"flex shrink-0 items-center gap-2\", className)} {...props} />;\n}\n","import { ChevronLeft, ChevronRight } from \"lucide-react\";\nimport { Button } from \"../button/button\";\nimport { cn } from \"../../lib/cn\";\nexport type PaginationProps = { page: number; pageCount: number; onPageChange: (page: number) => void; className?: string };\nexport function Pagination({ page, pageCount, onPageChange, className }: PaginationProps) {\n const pages = Array.from({ length: pageCount }, (_, index) => index + 1);\n return <nav aria-label=\"Paginación\" className={cn(\"flex items-center justify-between gap-4\", className)}><p className=\"text-sm text-muted-foreground\">Página {page} de {pageCount}</p><div className=\"flex items-center gap-1\"><Button aria-label=\"Página anterior\" isDisabled={page <= 1} onPress={() => onPageChange(page - 1)} size=\"icon\" variant=\"ghost\"><ChevronLeft /></Button>{pages.map((item) => <Button key={item} aria-current={item === page ? \"page\" : undefined} aria-label={`Página ${item}`} onPress={() => onPageChange(item)} size=\"icon\" variant={item === page ? \"secondary\" : \"ghost\"}>{item}</Button>)}<Button aria-label=\"Página siguiente\" isDisabled={page >= pageCount} onPress={() => onPageChange(page + 1)} size=\"icon\" variant=\"ghost\"><ChevronRight /></Button></div></nav>;\n}\n","import {\n DialogTrigger as AriaDialogTrigger,\n Popover as AriaPopover,\n type DialogTriggerProps,\n type PopoverProps as AriaPopoverProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport type PopoverProps = Omit<AriaPopoverProps, \"className\"> & { className?: string };\nexport type { DialogTriggerProps as PopoverTriggerProps };\n\n/** Wrap a trigger and Popover surface; React Aria handles focus and positioning. */\nexport const PopoverTrigger = AriaDialogTrigger;\n\nexport function Popover({ className, ...props }: PopoverProps) {\n return <AriaPopover data-slot=\"popover\" offset={6} className={cn(\"min-w-48 rounded-xl border border-border bg-background p-1.5 text-foreground shadow-lg outline-none motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out\", className)} {...props} />;\n}\n\nexport const PopoverContent = Popover;\n","import { Minus, Plus } from \"lucide-react\";\nimport {\n Button as AriaButton,\n Group as AriaGroup,\n Input as AriaInput,\n NumberField as AriaNumberField,\n type NumberFieldProps as AriaNumberFieldProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport type QuantityInputProps = Omit<AriaNumberFieldProps, \"children\" | \"className\"> & {\n className?: string;\n inputClassName?: string;\n decrementAriaLabel?: string;\n incrementAriaLabel?: string;\n};\n\n/** A compact quantity control with accessible stepper buttons and numeric keyboard support. */\nexport function QuantityInput({\n className,\n inputClassName,\n decrementAriaLabel = \"Disminuir cantidad\",\n incrementAriaLabel = \"Aumentar cantidad\",\n minValue = 0,\n step = 1,\n ...props\n}: QuantityInputProps) {\n return (\n <AriaNumberField\n {...props}\n minValue={minValue}\n step={step}\n data-slot=\"quantity-input\"\n className={cn(\"group/quantity-input inline-flex min-w-0 data-disabled:cursor-not-allowed data-disabled:opacity-50\", className)}\n >\n <AriaGroup\n data-slot=\"quantity-input-group\"\n className=\"flex h-8 min-w-0 items-stretch overflow-hidden rounded-lg border border-border bg-background text-foreground transition-[border-color,box-shadow] focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 group-data-invalid/quantity-input:border-destructive\"\n >\n <AriaButton slot=\"decrement\" aria-label={decrementAriaLabel} data-slot=\"quantity-input-decrement\" className=\"flex size-8 shrink-0 cursor-pointer items-center justify-center border-r border-border text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground data-focus-visible:bg-muted data-pressed:bg-muted data-disabled:pointer-events-none\">\n <Minus aria-hidden=\"true\" className=\"size-4\" />\n </AriaButton>\n <AriaInput data-slot=\"quantity-input-value\" className={cn(\"w-14 min-w-0 bg-transparent px-1 text-center text-sm tabular-nums outline-none\", inputClassName)} />\n <AriaButton slot=\"increment\" aria-label={incrementAriaLabel} data-slot=\"quantity-input-increment\" className=\"flex size-8 shrink-0 cursor-pointer items-center justify-center border-l border-border text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground data-focus-visible:bg-muted data-pressed:bg-muted data-disabled:pointer-events-none\">\n <Plus aria-hidden=\"true\" className=\"size-4\" />\n </AriaButton>\n </AriaGroup>\n </AriaNumberField>\n );\n}","import {\n SearchField as AriaSearchField,\n Button,\n Input,\n type SearchFieldProps as AriaSearchFieldProps,\n type ButtonProps,\n type InputProps,\n} from \"react-aria-components\";\nimport { X } from \"lucide-react\";\nimport { cn } from \"../../lib/cn\";\n\nexport const SearchField = AriaSearchField;\nexport type { AriaSearchFieldProps as SearchFieldProps };\n\nexport function SearchInput({ className, ...props }: InputProps) {\n return <Input data-slot=\"search-input\" className={cn(\"h-8 w-full min-w-0 rounded-lg border border-border bg-background px-2.5 py-1 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-3 focus-visible:ring-ring/50\", className)} {...props} />;\n}\n\nexport function SearchClearButton({ className, children = <X aria-hidden=\"true\" className=\"size-4\" />, ...props }: Omit<ButtonProps, \"className\"> & { className?: string }) {\n return <Button slot=\"clear\" data-slot=\"search-clear\" className={cn(\"absolute top-1/2 right-1 rounded p-1 text-muted-foreground outline-none hover:bg-muted data-focus-visible:ring-2 data-focus-visible:ring-ring\", className)} {...props}>{children}</Button>;\n}\n","import {\n Button as AriaButton,\n Select as AriaSelect,\n SelectValue as AriaSelectValue,\n ListBox,\n ListBoxItem,\n Popover,\n type SelectProps as AriaSelectProps,\n type ButtonProps,\n type ListBoxItemProps,\n type ListBoxProps,\n} from \"react-aria-components\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from \"../../lib/cn\";\n\nexport const Select = AriaSelect;\nexport type { AriaSelectProps as SelectProps };\n\nexport function SelectTrigger({ className, children, ...props }: ButtonProps) {\n return <AriaButton data-slot=\"select-trigger\" className={cn(\"group/select-trigger flex h-8 w-full min-w-36 items-center gap-2 rounded-lg border border-border bg-background px-2.5 text-left text-sm text-foreground outline-none data-focus-visible:ring-3 data-focus-visible:ring-ring/50 data-disabled:cursor-not-allowed data-disabled:opacity-50\", className)} {...props}>{(state) => <>{typeof children === \"function\" ? children(state) : children}<ChevronDown aria-hidden=\"true\" className=\"ml-auto size-4 text-muted-foreground transition-transform group-data-pressed/select-trigger:rotate-180 motion-reduce:transition-none\" /></>}</AriaButton>;\n}\n\nexport function SelectValue({ className, ...props }: React.ComponentProps<typeof AriaSelectValue>) {\n return <AriaSelectValue data-slot=\"select-value\" className={cn(\"flex-1 truncate data-placeholder:text-muted-foreground\", className)} {...props} />;\n}\n\nexport function SelectContent({ className, ...props }: React.ComponentProps<typeof Popover>) {\n return <Popover data-slot=\"select-content\" className={cn(\"w-(--trigger-width) overflow-hidden rounded-xl border border-border bg-background p-1.5 text-foreground shadow-lg motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out\", className)} {...props} />;\n}\n\nexport function SelectList<T extends object>({ className, ...props }: ListBoxProps<T>) {\n return <ListBox data-slot=\"select-list\" className={cn(\"max-h-64 overflow-y-auto\", className)} {...props} />;\n}\n\nexport function SelectItem<T extends object>({ className, children, ...props }: ListBoxItemProps<T>) {\n return <ListBoxItem data-slot=\"select-item\" className={cn(\"flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none data-focused:bg-muted data-selected:bg-muted data-disabled:pointer-events-none data-disabled:opacity-50\", className)} {...props}>{children}</ListBoxItem>;\n}\n","\"use client\";\n\nimport { XIcon } from \"lucide-react\";\nimport type * as React from \"react\";\nimport {\n Heading,\n ModalOverlay as ModalOverlayPrimitive,\n type ModalOverlayProps as ModalOverlayPrimitiveProps,\n Modal as ModalPrimitive,\n Dialog as SheetPrimitive,\n type DialogProps as SheetPrimitiveProps,\n DialogTrigger as SheetTriggerPrimitive,\n type DialogTriggerProps as SheetTriggerPrimitiveProps,\n Text,\n} from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\nimport { Button, type ButtonProps } from \"../button/button\";\n\nfunction SheetTrigger({ ...props }: SheetTriggerPrimitiveProps) {\n return <SheetTriggerPrimitive data-slot=\"sheet-trigger\" {...props} />;\n}\n\nfunction SheetClose({ className, variant = \"outline\", size = \"default\", ...props }: ButtonProps) {\n return (\n <Button\n slot=\"close\"\n data-slot=\"sheet-close\"\n variant={variant}\n size={size}\n className={cn(className)}\n {...props}\n />\n );\n}\n\nfunction SheetOverlay({\n className,\n children,\n ...props\n}: Omit<ModalOverlayPrimitiveProps, \"className\" | \"children\"> & {\n className?: string;\n children: React.ReactNode;\n}) {\n return (\n <ModalOverlayPrimitive\n data-slot=\"sheet-overlay\"\n isDismissable\n className={cn(\n \"fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-entering:opacity-0 data-exiting:opacity-0 supports-backdrop-filter:backdrop-blur-xs\",\n className,\n )}\n {...props}\n >\n {children}\n </ModalOverlayPrimitive>\n );\n}\n\nfunction Sheet({\n className,\n children,\n side = \"right\",\n showCloseButton = true,\n ...props\n}: Omit<ModalOverlayPrimitiveProps, \"className\" | \"children\"> &\n Pick<React.ComponentProps<typeof ModalPrimitive>, \"isDismissable\"> & {\n className?: string;\n children: React.ReactNode;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n showCloseButton?: boolean;\n }) {\n return (\n <SheetOverlay {...props}>\n <ModalPrimitive\n data-slot=\"sheet-content\"\n data-side={side}\n className={cn(\n \"fixed z-50 flex flex-col gap-4 border-border bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-entering:opacity-0 data-exiting:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-entering:translate-y-10 data-[side=bottom]:data-exiting:translate-y-10 data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-entering:-translate-x-10 data-[side=left]:data-exiting:-translate-x-10 data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-entering:translate-x-10 data-[side=right]:data-exiting:translate-x-10 data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-entering:-translate-y-10 data-[side=top]:data-exiting:-translate-y-10 data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm\",\n className,\n )}\n >\n <SheetPrimitive\n data-slot=\"sheet\"\n className=\"[display:inherit] h-full max-h-[inherit] [flex-direction:inherit] gap-[inherit] outline-none\"\n >\n {children}\n {showCloseButton && (\n <SheetClose variant=\"ghost\" className=\"absolute top-3 right-3\" size=\"icon-sm\">\n <XIcon />\n <span className=\"sr-only\">Cerrar</span>\n </SheetClose>\n )}\n </SheetPrimitive>\n </ModalPrimitive>\n </SheetOverlay>\n );\n}\n\nfunction SheetContent({\n className,\n children,\n side = \"right\",\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof Sheet> & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n showCloseButton?: boolean;\n}) {\n return (\n <Sheet className={className} side={side} showCloseButton={showCloseButton} {...props}>\n {children}\n </Sheet>\n );\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\"flex flex-col gap-0.5 p-4\", className)}\n {...props}\n />\n );\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n );\n}\n\nfunction SheetTitle({ className, ...props }: Omit<React.ComponentProps<typeof Heading>, \"slot\">) {\n return (\n <Heading\n slot=\"title\"\n data-slot=\"sheet-title\"\n className={cn(\"text-base font-medium text-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: Omit<React.ComponentProps<typeof Text>, \"slot\">) {\n return (\n <Text\n slot=\"description\"\n data-slot=\"sheet-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Sheet,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n type SheetPrimitiveProps,\n SheetTitle,\n SheetTrigger,\n type SheetTriggerPrimitiveProps,\n};\n","import {\n\tChevronLeft,\n\tChevronRight,\n\tEllipsis,\n\tSearch,\n} from \"lucide-react\";\nimport {\n\tcreateContext,\n\ttype ReactNode,\n\tuseContext,\n\tuseMemo,\n\tuseState,\n} from \"react\";\nimport { Link, type LinkProps } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\nimport { Button, type ButtonProps } from \"../button/button\";\n\ntype SidebarContextValue = {\n\tcollapsed: boolean;\n\tsetCollapsed: (value: boolean) => void;\n\ttoggle: () => void;\n};\nconst SidebarContext = createContext<SidebarContextValue | null>(null);\n\nexport function useSidebar() {\n\tconst context = useContext(SidebarContext);\n\tif (!context)\n\t\tthrow new Error(\"useSidebar must be used inside SidebarProvider\");\n\treturn context;\n}\n\nexport function SidebarProvider({\n\tdefaultCollapsed = false,\n\tchildren,\n}: {\n\tdefaultCollapsed?: boolean;\n\tchildren: ReactNode;\n}) {\n\tconst [collapsed, setCollapsed] = useState(defaultCollapsed);\n\tconst value = useMemo(\n\t\t() => ({\n\t\t\tcollapsed,\n\t\t\tsetCollapsed,\n\t\t\ttoggle: () => setCollapsed((current) => !current),\n\t\t}),\n\t\t[collapsed],\n\t);\n\treturn (\n\t\t<SidebarContext.Provider value={value}>{children}</SidebarContext.Provider>\n\t);\n}\n\nexport function Sidebar({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"aside\">) {\n\tconst { collapsed } = useSidebar();\n\treturn (\n\t\t<aside\n\t\t\tdata-slot=\"sidebar\"\n\t\t\tdata-collapsed={collapsed || undefined}\n\t\t\tclassName={cn(\n\t\t\t\t\"group/sidebar flex h-full w-56 shrink-0 flex-col border-r border-border bg-card text-foreground transition-[width] duration-200 ease-out motion-reduce:transition-none data-[collapsed]:w-16\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function SidebarHeader({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-header\"\n\t\t\tclassName={cn(\"flex items-center gap-2 px-4 py-5\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function SidebarSearch({\n\tlabel = \"Buscar…\",\n\tshortcut = \"⌘K\",\n\tclassName,\n\t...props\n}: React.ComponentProps<\"button\"> & { label?: string; shortcut?: string }) {\n\treturn (\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tdata-slot=\"sidebar-search\"\n\t\t\tclassName={cn(\n\t\t\t\t\"group flex w-full items-center gap-2 rounded-md border border-border bg-background px-2.5 py-1.5 text-sm text-muted-foreground transition-colors hover:border-primary/40 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<Search className=\"size-4 shrink-0\" />\n\t\t\t<span className=\"flex-1 text-left\">{label}</span>\n\t\t\t<kbd className=\"rounded bg-secondary px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground\">\n\t\t\t\t{shortcut}\n\t\t\t</kbd>\n\t\t</button>\n\t);\n}\n\nexport function SidebarContent({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"nav\">) {\n\treturn (\n\t\t<nav\n\t\t\tdata-slot=\"sidebar-content\"\n\t\t\taria-label=\"Navegación principal\"\n\t\t\tclassName={cn(\"min-h-0 flex-1 overflow-y-auto px-2 py-1\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function SidebarFooter({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-footer\"\n\t\t\tclassName={cn(\n\t\t\t\t\"mt-auto flex flex-col gap-2 border-t border-border p-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function SidebarGroup({\n\tlabel,\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<\"section\"> & { label?: string }) {\n\tconst { collapsed } = useSidebar();\n\treturn (\n\t\t<section\n\t\t\tdata-slot=\"sidebar-group\"\n\t\t\tclassName={cn(\"mb-4 last:mb-0\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{label && (\n\t\t\t\t<h2\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"mb-1 px-3 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground\",\n\t\t\t\t\t\tcollapsed && \"sr-only\",\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{label}\n\t\t\t\t</h2>\n\t\t\t)}\n\t\t\t{children}\n\t\t</section>\n\t);\n}\n\nexport type SidebarItemProps = LinkProps & {\n\ticon?: ReactNode;\n\tactive?: boolean;\n\tbadge?: ReactNode;\n\tlabel?: string;\n};\nexport function SidebarItem({\n\ticon,\n\tactive,\n\tbadge,\n\tlabel,\n\tchildren,\n\tclassName,\n\t...props\n}: SidebarItemProps) {\n\tconst { collapsed } = useSidebar();\n\tconst content = typeof children === \"function\" ? label : (children ?? label);\n\treturn (\n\t\t<Link\n\t\t\tdata-slot=\"sidebar-item\"\n\t\t\taria-current={active ? \"page\" : undefined}\n\t\t\taria-label={collapsed && label ? label : undefined}\n\t\t\tclassName={cn(\n\t\t\t\t\"group/item relative flex min-h-9 items-center gap-2.5 rounded-md px-2.5 py-2 text-sm text-muted-foreground outline-none transition-[background-color,color,transform] duration-150 hover:bg-secondary/60 hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring/40 data-[current=page]:bg-secondary data-[current=page]:font-medium data-[current=page]:text-foreground data-pressed:scale-[0.98] motion-reduce:transition-none\",\n\t\t\t\tcollapsed && \"justify-center px-0\",\n\t\t\t\ttypeof className === \"function\" ? className : className,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{(values) => (\n\t\t\t\t<>\n\t\t\t\t\t<span className=\"flex size-4 shrink-0 items-center justify-center\">\n\t\t\t\t\t\t{icon}\n\t\t\t\t\t</span>\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={cn(\"min-w-0 flex-1 truncate\", collapsed && \"sr-only\")}\n\t\t\t\t\t>\n\t\t\t\t\t\t{typeof children === \"function\" ? children(values) : content}\n\t\t\t\t\t</span>\n\t\t\t\t\t{badge && !collapsed && (\n\t\t\t\t\t\t<span className=\"text-xs text-muted-foreground\">{badge}</span>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</Link>\n\t);\n}\n\nexport function SidebarSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"hr\">) {\n\treturn (\n\t\t<hr\n\t\t\tdata-slot=\"sidebar-separator\"\n\t\t\tclassName={cn(\"my-2 h-px border-0 bg-border\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function SidebarTrigger({ className, ...props }: ButtonProps) {\n\tconst { collapsed, toggle } = useSidebar();\n\treturn (\n\t\t<Button\n\t\t\taria-label={collapsed ? \"Expandir navegación\" : \"Colapsar navegación\"}\n\t\t\tonPress={toggle}\n\t\t\tsize=\"icon\"\n\t\t\tvariant=\"ghost\"\n\t\t\tclassName={cn(\"ml-auto\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{collapsed ? <ChevronRight /> : <ChevronLeft />}\n\t\t</Button>\n\t);\n}\n\nexport function SidebarRail({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"button\">) {\n\tconst { toggle } = useSidebar();\n\treturn (\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\taria-label=\"Alternar navegación\"\n\t\t\tonClick={toggle}\n\t\t\tclassName={cn(\n\t\t\t\t\"absolute inset-y-0 right-0 z-20 hidden w-1 -translate-x-1/2 cursor-ew-resize bg-transparent transition-colors hover:bg-border lg:block\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function SidebarMore({ className, ...props }: ButtonProps) {\n\treturn (\n\t\t<Button\n\t\t\taria-label=\"Más opciones\"\n\t\t\tsize=\"icon\"\n\t\t\tvariant=\"ghost\"\n\t\t\tclassName={cn(\"size-7\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<Ellipsis />\n\t\t</Button>\n\t);\n}\n","import type * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\n\nexport function Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div aria-hidden=\"true\" data-slot=\"skeleton\" className={cn(\"animate-pulse rounded-md bg-muted\", className)} {...props} />;\n}\n","import { useFormStatus } from \"react-dom\";\nimport { LoaderCircle } from \"lucide-react\";\nimport { Button, type ButtonProps } from \"../button/button\";\n\nexport interface SubmitButtonProps extends Omit<ButtonProps, \"type\"> { pendingLabel?: string; loading?: boolean; children: React.ReactNode; }\n\nexport function SubmitButton({ pendingLabel = \"Guardando…\", loading = false, children, isDisabled, size = \"sm\", ...props }: SubmitButtonProps) {\n const { pending } = useFormStatus();\n const busy = pending || loading;\n return <Button type=\"submit\" size={size} isDisabled={busy || isDisabled} aria-busy={busy || undefined} {...props}>{busy ? <><LoaderCircle aria-hidden=\"true\" className=\"size-3.5 animate-spin\" />{pendingLabel}</> : children}</Button>;\n}\n","\"use client\";\n\nimport { useEffect, useRef, type ReactNode } from \"react\";\nimport {\n Switch as AriaSwitch,\n type SwitchProps as AriaSwitchProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nconst switchSizes = {\n sm: {\n control: \"h-4 w-[1.875rem] p-0.5\",\n thumb: \"h-3\",\n idleWidth: \"0.75rem\",\n activeWidth: \"1rem\",\n selectedOffset: \"0.875rem\",\n activeSelectedOffset: \"0.625rem\",\n },\n md: {\n control: \"h-5 w-9 p-0.5\",\n thumb: \"h-4\",\n idleWidth: \"1rem\",\n activeWidth: \"1.25rem\",\n selectedOffset: \"1rem\",\n activeSelectedOffset: \"0.75rem\",\n },\n lg: {\n control: \"h-6 w-11 p-0.5\",\n thumb: \"h-5\",\n idleWidth: \"1.25rem\",\n activeWidth: \"1.5rem\",\n selectedOffset: \"1.25rem\",\n activeSelectedOffset: \"1rem\",\n },\n} as const;\n\nexport type SwitchProps = Omit<AriaSwitchProps, \"className\"> & {\n className?: string;\n size?: keyof typeof switchSizes;\n description?: ReactNode;\n icon?: ReactNode;\n selectedIcon?: ReactNode;\n};\n\n/** Accessible React Aria switch with semantic tokens and a compact capsule thumb. */\nexport function Switch({\n className,\n children,\n description,\n icon,\n inputRef,\n isDisabled,\n isReadOnly,\n selectedIcon,\n size = \"sm\",\n ...props\n}: SwitchProps) {\n const styles = switchSizes[size];\n const fallbackInputRef = useRef<HTMLInputElement>(null);\n const resolvedInputRef = inputRef ?? fallbackInputRef;\n\n useEffect(() => {\n const input = resolvedInputRef.current;\n if (!input) return;\n\n const handleDirectionalKey = (event: KeyboardEvent) => {\n if (\n event.target !== input || event.defaultPrevented || isDisabled || isReadOnly ||\n event.altKey || event.ctrlKey || event.metaKey || event.shiftKey\n ) return;\n\n const nextSelected = event.key === \"ArrowRight\" ? true : event.key === \"ArrowLeft\" ? false : null;\n if (nextSelected === null) return;\n\n event.preventDefault();\n if (input.checked !== nextSelected) input.click();\n };\n\n const ownerDocument = input.ownerDocument;\n ownerDocument.addEventListener(\"keydown\", handleDirectionalKey);\n return () => ownerDocument.removeEventListener(\"keydown\", handleDirectionalKey);\n }, [isDisabled, isReadOnly, resolvedInputRef]);\n\n return (\n <AriaSwitch\n data-slot=\"switch\"\n data-size={size}\n inputRef={resolvedInputRef}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n className={cn(\n \"group/switch inline-flex cursor-pointer items-center gap-3 text-sm text-foreground outline-none select-none\",\n \"data-disabled:cursor-not-allowed data-disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n {(state) => {\n const isThumbActive = state.isHovered || state.isPressed;\n const thumbOffset = state.isSelected\n ? isThumbActive ? styles.activeSelectedOffset : styles.selectedOffset\n : \"0\";\n\n return <>\n <span\n aria-hidden=\"true\"\n data-slot=\"switch-control\"\n className={cn(\n \"relative inline-flex shrink-0 items-center overflow-hidden rounded-full border border-border bg-input shadow-inner\",\n \"transition-[background-color,border-color,box-shadow] duration-200 ease-out motion-reduce:transition-none\",\n \"group-data-hovered/switch:bg-muted-foreground/25\",\n \"group-data-selected/switch:border-primary group-data-selected/switch:bg-primary\",\n \"group-data-selected/switch:group-data-hovered/switch:bg-primary/85\",\n \"group-data-focus-visible/switch:ring-3 group-data-focus-visible/switch:ring-ring/50\",\n styles.control,\n )}\n >\n <span\n data-slot=\"switch-thumb\"\n style={{\n transform: `translate3d(${thumbOffset}, 0, 0)`,\n width: isThumbActive ? styles.activeWidth : styles.idleWidth,\n }}\n className={cn(\n \"grid shrink-0 place-items-center rounded-full border border-border/60 bg-background text-[0.625rem] text-muted-foreground shadow-sm\",\n \"will-change-[transform,width] transition-[transform,width,background-color,color,border-color] duration-[240ms] ease-[cubic-bezier(0.2,0.8,0.2,1)] motion-reduce:transition-none\",\n \"group-data-selected/switch:border-primary-foreground/20\",\n \"group-data-selected/switch:bg-primary-foreground group-data-selected/switch:text-primary\",\n styles.thumb,\n )}\n >\n {state.isSelected ? (selectedIcon ?? icon) : icon}\n </span>\n </span>\n {children || description ? (\n <span className=\"grid gap-0.5 leading-tight\">\n {children ? <span data-slot=\"switch-label\" className=\"font-medium\">{typeof children === \"function\" ? children(state) : children}</span> : null}\n {description ? <span data-slot=\"switch-description\" className=\"text-xs font-normal text-muted-foreground\">{description}</span> : null}\n </span>\n ) : null}\n </>;\n }}\n </AriaSwitch>\n );\n}\n","import type * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\n\n/** Presentational table primitives. Sorting, pagination and data state stay in the application. */\nexport function Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div data-slot=\"table-container\" className=\"relative w-full overflow-x-auto\">\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n );\n}\n\nexport function TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return <thead data-slot=\"table-header\" className={cn(\"[&_tr]:border-b\", className)} {...props} />;\n}\nexport function 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}\nexport function TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"border-b border-border transition-colors hover:bg-muted/50 has-aria-expanded:bg-muted/50 data-[state=selected]:bg-muted\",\n className,\n )}\n {...props}\n />\n );\n}\nexport function TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n );\n}\nexport function TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\"p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0\", className)}\n {...props}\n />\n );\n}\nexport function TableCaption({ className, ...props }: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport function TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\"border-t border-border bg-muted/50 font-medium [&>tr]:last:border-b-0\", className)}\n {...props}\n />\n );\n}\n","import {\n Tab as AriaTab,\n TabList as AriaTabList,\n TabPanel as AriaTabPanel,\n TabPanels as AriaTabPanels,\n Tabs as AriaTabs,\n composeRenderProps,\n type TabListProps as AriaTabListProps,\n type TabPanelProps as AriaTabPanelProps,\n type TabPanelsProps as AriaTabPanelsProps,\n type TabProps as AriaTabProps,\n type TabsProps as AriaTabsProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport type TabsProps = AriaTabsProps;\nexport type TabProps = AriaTabProps;\nexport type TabPanelProps = AriaTabPanelProps;\n\nexport function Tabs({ className, ...props }: AriaTabsProps) {\n return <AriaTabs data-slot=\"tabs\" className={composeRenderProps(className, (value) => cn(\"flex flex-col gap-2\", value))} {...props} />;\n}\n\nexport function TabsList<T extends object>({ className, ...props }: AriaTabListProps<T>) {\n return <AriaTabList data-slot=\"tabs-list\" className={composeRenderProps(className, (value) => cn(\"inline-flex w-fit items-center gap-1 rounded-lg bg-muted p-1 text-muted-foreground\", value))} {...props} />;\n}\n\nexport function TabsTrigger({ className, ...props }: AriaTabProps) {\n return <AriaTab data-slot=\"tabs-trigger\" className={composeRenderProps(className, (value) => cn(\"inline-flex h-7 items-center justify-center gap-1.5 rounded-md px-2.5 text-sm font-medium outline-none transition-colors data-hovered:text-foreground data-selected:bg-background data-selected:text-foreground data-selected:shadow-sm data-focus-visible:ring-3 data-focus-visible:ring-ring/50 data-disabled:cursor-not-allowed data-disabled:opacity-50\", value))} {...props} />;\n}\n\nexport function TabsPanels<T extends object>({ className, ...props }: AriaTabPanelsProps<T>) {\n return <AriaTabPanels data-slot=\"tabs-panels\" className={cn(\"min-w-0\", className)} {...props} />;\n}\n\nexport function TabsContent({ className, ...props }: AriaTabPanelProps) {\n return <AriaTabPanel data-slot=\"tabs-content\" className={composeRenderProps(className, (value) => cn(\"text-sm outline-none data-focus-visible:ring-3 data-focus-visible:ring-ring/50\", value))} {...props} />;\n}\n","import { useEffect, type ReactNode } from \"react\";\nimport { sileo, Toaster as SileoToaster } from \"sileo\";\n\nexport type ToastVariant = \"default\" | \"success\" | \"error\" | \"warning\" | \"info\";\nexport type ToastPosition = \"top-left\" | \"top-center\" | \"top-right\" | \"bottom-left\" | \"bottom-center\" | \"bottom-right\";\nexport type ToastAction = { label: string; onPress: () => void };\nexport type ToastOptions = { title: string; description?: string; variant?: ToastVariant; duration?: number; position?: ToastPosition; action?: ToastAction };\nexport type ToastData = ToastOptions & { id: string; state: \"open\" | \"closing\" };\ntype ToastPromiseOptions<T> = { loading: string; success: string | ((value: T) => string); error: string | ((error: unknown) => string); description?: string; position?: ToastPosition };\n\nfunction toSileoOptions({ title, description, duration, position, action }: ToastOptions) {\n return {\n title,\n description,\n duration: duration === 0 ? null : duration,\n position,\n button: action ? { title: action.label, onClick: action.onPress } : undefined,\n };\n}\n\nfunction create(options: ToastOptions) {\n const sileoOptions = toSileoOptions(options);\n if (options.action) return sileo.action(sileoOptions);\n if (options.variant === \"success\") return sileo.success(sileoOptions);\n if (options.variant === \"error\") return sileo.error(sileoOptions);\n if (options.variant === \"warning\") return sileo.warning(sileoOptions);\n if (options.variant === \"info\") return sileo.info(sileoOptions);\n return sileo.show(sileoOptions);\n}\n\nexport const toast = Object.assign((options: ToastOptions) => create(options), {\n success: (title: string, options?: Omit<ToastOptions, \"title\" | \"variant\">) => create({ ...options, title, variant: \"success\" }),\n error: (title: string, options?: Omit<ToastOptions, \"title\" | \"variant\">) => create({ ...options, title, variant: \"error\" }),\n warning: (title: string, options?: Omit<ToastOptions, \"title\" | \"variant\">) => create({ ...options, title, variant: \"warning\" }),\n info: (title: string, options?: Omit<ToastOptions, \"title\" | \"variant\">) => create({ ...options, title, variant: \"info\" }),\n dismiss: (id: string) => sileo.dismiss(id),\n promise: <T,>(promise: Promise<T>, options: ToastPromiseOptions<T>) => {\n const shared = { description: options.description, position: options.position };\n return sileo.promise(promise, {\n loading: { ...shared, title: options.loading },\n success: (value) => ({ ...shared, title: typeof options.success === \"function\" ? options.success(value) : options.success }),\n error: (error) => ({ ...shared, title: typeof options.error === \"function\" ? options.error(error) : options.error }),\n position: options.position,\n });\n },\n});\n\nexport function useToast() { return toast; }\nexport function ToastProvider({ children }: { children: ReactNode }) { return <>{children}<Toaster /></>; }\n\nexport function Toaster({ position }: { position?: ToastPosition }) {\n return <SileoToaster position={position} options={{ fill: \"var(--ui-secondary)\" }} />;\n}\n\nexport function ToastViewport({ position, visiblePosition, className }: { position: ToastPosition; visiblePosition?: ToastPosition; className?: string }) {\n void className;\n if (visiblePosition && visiblePosition !== position) return null;\n return <Toaster position={position} />;\n}\n\nexport function Toast({ id, title, description, variant = \"default\", action, state = \"open\", duration = 0, position, onDismiss }: ToastData & { onDismiss?: () => void }) {\n useEffect(() => {\n if (state !== \"open\") return;\n const toastId = create({ title, description, variant, action, duration, position });\n return () => {\n sileo.dismiss(toastId);\n onDismiss?.();\n };\n }, [action, description, duration, id, onDismiss, position, state, title, variant]);\n return null;\n}\n","import type * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\nexport function Toolbar({ className, ...props }: React.ComponentProps<\"div\">) { return <div role=\"toolbar\" data-slot=\"toolbar\" className={cn(\"flex flex-wrap items-center gap-2\", className)} {...props} />; }\nexport function ToolbarGroup({ className, ...props }: React.ComponentProps<\"div\">) { return <div data-slot=\"toolbar-group\" className={cn(\"flex items-center gap-2\", className)} {...props} />; }\nexport function ToolbarSpacer({ className, ...props }: React.ComponentProps<\"div\">) { return <div aria-hidden=\"true\" className={cn(\"hidden flex-1 sm:block\", className)} {...props} />; }\n"],"mappings":"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","names":["useEffect","useState","useCallback","useRef","useState","cva","jsx","cva","jsx","useEffect","useState","jsx","useState","useEffect","cva","jsx","cva","jsx","cva","jsx","jsx","cva","cva","jsx","cva","jsx","jsx","jsxs","Fragment","useState","jsx","jsxs","jsx","Fragment","useState","jsxs","AriaComboBox","ListBox","ListBoxItem","Popover","jsx","AriaComboBox","Popover","ListBox","ListBoxItem","Text","Fragment","jsx","jsxs","Text","Fragment","jsx","jsxs","React","AriaDialog","Heading","Modal","ModalOverlay","Text","Fragment","jsx","jsxs","ModalOverlay","Modal","AriaDialog","Heading","Text","AriaDialog","Modal","ModalOverlay","jsx","ModalOverlay","Modal","AriaDialog","cva","SeparatorPrimitive","Fragment","jsx","jsxs","cva","className","children","SeparatorPrimitive","cva","jsx","cva","cva","jsx","Label","jsx","jsxs","cva","Label","FieldError","useCallback","useEffect","useRef","useState","jsx","jsxs","useState","useRef","useCallback","useEffect","Fragment","jsx","jsxs","Link","React","jsx","jsxs","placement","jsx","jsxs","Link","cva","forwardRef","AriaInput","jsx","forwardRef","Input","AriaInput","forwardRef","jsx","forwardRef","Textarea","jsx","cva","Input","Textarea","jsx","LoaderCircle","jsx","jsxs","LoaderCircle","Popover","jsx","Popover","forwardRef","useRef","useState","AriaInput","jsx","jsxs","forwardRef","useState","useRef","AriaInput","OtpInput","jsx","jsx","jsxs","jsx","Popover","AriaInput","jsx","jsxs","AriaInput","Button","Input","X","jsx","Input","X","Button","AriaButton","ListBox","ListBoxItem","Popover","Fragment","jsx","jsxs","AriaButton","Popover","ListBox","ListBoxItem","XIcon","Heading","Text","jsx","jsxs","XIcon","Heading","Text","ChevronLeft","ChevronRight","createContext","useContext","useMemo","useState","Link","Fragment","jsx","jsxs","createContext","useContext","useState","useMemo","Link","ChevronRight","ChevronLeft","jsx","LoaderCircle","Fragment","jsx","jsxs","LoaderCircle","useEffect","useRef","Fragment","jsx","jsxs","useRef","useEffect","jsx","composeRenderProps","jsx","composeRenderProps","useEffect","Fragment","jsx","jsxs","jsx"]}
1
+ {"version":3,"sources":["../src/hooks/use-autosave.ts","../src/hooks/use-debounced-value.ts","../src/hooks/use-form-dirty.ts","../src/lib/action-ripple.ts","../src/lib/cn.ts","../src/lib/text-match.ts","../src/ui/accordion/accordion.tsx","../src/ui/alert/alert.tsx","../src/ui/app-shell/app-shell.tsx","../src/ui/avatar/avatar.tsx","../src/ui/badge/badge.tsx","../src/ui/breadcrumb/breadcrumb.tsx","../src/ui/button-group/button-group.tsx","../src/ui/separator/separator.tsx","../src/ui/button/button.tsx","../src/ui/card/card.tsx","../src/ui/checkbox/checkbox.tsx","../src/ui/combobox/combobox.tsx","../src/ui/command/command.tsx","../src/ui/modal-dialog/modal-dialog.tsx","../src/ui/confirm-dialog/confirm-dialog.tsx","../src/ui/dialog/dialog.tsx","../src/ui/drawer/drawer.tsx","../src/ui/dropdown-menu/dropdown-menu.tsx","../src/ui/empty-state/empty-state.tsx","../src/ui/field/field.tsx","../src/ui/label/label.tsx","../src/ui/form-feedback/form-feedback.tsx","../src/ui/form-row/form-row.tsx","../src/ui/icon-button/icon-button.tsx","../src/ui/tooltip/tooltip.tsx","../src/ui/input-group/input-group.tsx","../src/ui/input/input.tsx","../src/ui/textarea/textarea.tsx","../src/ui/kbd/kbd.tsx","../src/ui/loading-overlay/loading-overlay.tsx","../src/ui/menu/menu.tsx","../src/ui/otp-input/otp-input.tsx","../src/ui/page-header/page-header.tsx","../src/ui/pagination/pagination.tsx","../src/ui/popover/popover.tsx","../src/ui/quantity-input/quantity-input.tsx","../src/ui/search-field/search-field.tsx","../src/ui/select/select.tsx","../src/ui/sheet/sheet.tsx","../src/ui/sidebar/sidebar.tsx","../src/ui/skeleton/skeleton.tsx","../src/ui/submit-button/submit-button.tsx","../src/ui/switch/switch.tsx","../src/ui/table/table.tsx","../src/ui/tabs/tabs.tsx","../src/ui/toast/toast.tsx","../src/ui/toolbar/toolbar.tsx"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\n\nexport type AutosaveStatus = \"idle\" | \"saving\" | \"saved\" | \"error\";\n\nexport type UseAutosaveOptions<T> = {\n data: T;\n onSave: (data: T) => Promise<void>;\n debounceMs?: number;\n enabled?: boolean;\n serialize?: (data: T) => string;\n};\n\n/** Debounced autosave with stale-value protection and an explicit `saveNow`. */\nexport function useAutosave<T>({\n data,\n onSave,\n debounceMs = 1_000,\n enabled = true,\n serialize = JSON.stringify,\n}: UseAutosaveOptions<T>) {\n const [status, setStatus] = useState<AutosaveStatus>(\"idle\");\n const [error, setError] = useState<Error | null>(null);\n const lastSaved = useRef<string | null>(null);\n const saveRef = useRef(onSave);\n const serializeRef = useRef(serialize);\n\n useEffect(() => {\n saveRef.current = onSave;\n serializeRef.current = serialize;\n }, [onSave, serialize]);\n\n const save = useCallback(async (value: T) => {\n setStatus(\"saving\");\n setError(null);\n try {\n await saveRef.current(value);\n lastSaved.current = serializeRef.current(value);\n setStatus(\"saved\");\n } catch (cause) {\n setError(cause instanceof Error ? cause : new Error(\"No se pudo guardar.\"));\n setStatus(\"error\");\n }\n }, []);\n\n useEffect(() => {\n if (!enabled) return;\n const snapshot = serializeRef.current(data);\n if (lastSaved.current === null) {\n lastSaved.current = snapshot;\n return;\n }\n if (snapshot === lastSaved.current) return;\n const timeout = window.setTimeout(() => void save(data), debounceMs);\n return () => window.clearTimeout(timeout);\n }, [data, debounceMs, enabled, save]);\n\n return { status, error, saveNow: () => save(data) };\n}","import { useEffect, useState } from \"react\";\n\n/** Returns a value only after it has been stable for the supplied delay. */\nexport function useDebouncedValue<T>(value: T, delay: number = 250) {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const timeout = window.setTimeout(() => setDebouncedValue(value), delay);\n return () => window.clearTimeout(timeout);\n }, [delay, value]);\n\n return debouncedValue;\n}","import { type RefCallback, useCallback, useRef, useState } from \"react\";\n\nexport function formSnapshot(form: HTMLFormElement): string {\n const entries: Array<[string, string]> = Array.from(new FormData(form), ([key, value]) => [key, typeof value === \"string\" ? value : value.name]);\n entries.sort(([left], [right]) => left.localeCompare(right));\n return JSON.stringify(entries);\n}\n\nexport interface UseFormDirtyResult<T extends HTMLFormElement = HTMLFormElement> {\n formRef: RefCallback<T | null>;\n isDirty: boolean;\n markDirty: () => void;\n reset: () => void;\n}\n\n/** Tracks changes in native form controls and supports controlled fields. */\nexport function useFormDirty<T extends HTMLFormElement = HTMLFormElement>(): UseFormDirtyResult<T> {\n const formElement = useRef<T | null>(null);\n const baseline = useRef<string | null>(null);\n const [isDirty, setIsDirty] = useState(false);\n\n const recompute = useCallback(() => {\n if (formElement.current && baseline.current !== null) {\n setIsDirty(formSnapshot(formElement.current) !== baseline.current);\n }\n }, []);\n\n const reset = useCallback(() => {\n if (formElement.current) {\n baseline.current = formSnapshot(formElement.current);\n setIsDirty(false);\n }\n }, []);\n\n const formRef = useCallback<RefCallback<T | null>>((form) => {\n if (formElement.current) {\n formElement.current.removeEventListener(\"input\", recompute);\n formElement.current.removeEventListener(\"change\", recompute);\n formElement.current.removeEventListener(\"reset\", recompute);\n }\n formElement.current = form;\n if (form) {\n baseline.current = formSnapshot(form);\n setIsDirty(false);\n form.addEventListener(\"input\", recompute);\n form.addEventListener(\"change\", recompute);\n form.addEventListener(\"reset\", recompute);\n }\n }, [recompute]);\n\n return { formRef, isDirty, markDirty: () => setIsDirty(true), reset };\n}\n","import { cva } from \"class-variance-authority\";\n\n/**\n * Adds a subtle, centered press ripple to an interactive element.\n * The effect owns the element's `::after` pseudo-element.\n */\nexport const actionRipple = cva(\n \"relative isolate overflow-hidden after:pointer-events-none after:absolute after:top-1/2 after:left-1/2 after:aspect-square after:w-full after:-translate-x-1/2 after:-translate-y-1/2 after:scale-0 after:rounded-full after:bg-current after:opacity-0 after:content-[''] after:transition-[scale,opacity] after:duration-300 after:ease-out active:after:scale-150 active:after:opacity-10 data-pressed:after:scale-150 data-pressed:after:opacity-10 motion-reduce:after:hidden\",\n);","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/** Merges conditional class names, resolving conflicting Tailwind utilities. */\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}","export type TextMatchPart = {\n text: string;\n match: boolean;\n};\n\nfunction normalize(value: string) {\n return value.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\").toLocaleLowerCase();\n}\n\nfunction normalizedTextWithRanges(value: string) {\n const ranges: Array<{ start: number; end: number }> = [];\n let normalized = \"\";\n let sourceIndex = 0;\n\n for (const character of value) {\n const start = sourceIndex;\n sourceIndex += character.length;\n const normalizedCharacter = normalize(character);\n normalized += normalizedCharacter;\n for (let index = 0; index < normalizedCharacter.length; index += 1) {\n ranges.push({ start, end: sourceIndex });\n }\n }\n\n return { normalized, ranges };\n}\n\n/**\n * Splits text into matching and non-matching chunks. Matching is case- and\n * accent-insensitive while preserving the original text for rendering.\n */\nexport function getTextMatchParts(text: string, query: string): TextMatchPart[] {\n const term = normalize(query.trim());\n if (!term) return [{ text, match: false }];\n\n const { normalized, ranges } = normalizedTextWithRanges(text);\n const parts: TextMatchPart[] = [];\n let sourceCursor = 0;\n let index = normalized.indexOf(term);\n\n while (index !== -1) {\n const rangeStart = ranges[index]?.start;\n const rangeEnd = ranges[index + term.length - 1]?.end;\n if (rangeStart === undefined || rangeEnd === undefined) break;\n if (rangeStart > sourceCursor) parts.push({ text: text.slice(sourceCursor, rangeStart), match: false });\n parts.push({ text: text.slice(rangeStart, rangeEnd), match: true });\n sourceCursor = rangeEnd;\n index = normalized.indexOf(term, index + term.length);\n }\n\n if (sourceCursor < text.length) parts.push({ text: text.slice(sourceCursor), match: false });\n return parts.length ? parts : [{ text, match: false }];\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\nimport {\n DisclosurePanel as AccordionContentPrimitive,\n Heading as AccordionHeaderPrimitive,\n Disclosure as AccordionItemPrimitive,\n DisclosureGroup as AccordionPrimitive,\n Button as AccordionTriggerPrimitive,\n type ButtonProps,\n type DisclosureGroupProps,\n type DisclosurePanelProps,\n type DisclosureProps,\n} from \"react-aria-components\"\nimport { cn } from \"../../lib/cn\"\n\n\nfunction Accordion({ className, ...props }: DisclosureGroupProps) {\n return (\n <AccordionPrimitive\n data-slot=\"accordion\"\n className={cn(\"flex w-full flex-col text-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionItem({ className, ...props }: DisclosureProps) {\n return (\n <AccordionItemPrimitive\n data-slot=\"accordion-item\"\n className={cn(\"border-border not-last:border-b\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: Omit<ButtonProps, \"children\"> & { children: React.ReactNode }) {\n return (\n <AccordionHeaderPrimitive className=\"flex\">\n <AccordionTriggerPrimitive\n slot=\"trigger\"\n data-slot=\"accordion-trigger\"\n className={cn(\n \"group/accordion-trigger relative flex flex-1 items-start justify-between gap-3 rounded-lg border border-transparent px-2.5 py-2.5 text-left text-sm font-medium text-foreground transition-colors outline-none hover:bg-muted/50 aria-expanded:bg-muted/50 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon\n data-slot=\"accordion-trigger-icon\"\n className=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\"\n />\n <ChevronUpIcon\n data-slot=\"accordion-trigger-icon\"\n className=\"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\"\n />\n </AccordionTriggerPrimitive>\n </AccordionHeaderPrimitive>\n )\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: DisclosurePanelProps) {\n return (\n <AccordionContentPrimitive\n data-slot=\"accordion-content\"\n className=\"h-(--disclosure-panel-height) overflow-clip text-sm text-muted-foreground transition-[height] data-open:animate-accordion-down data-closed:animate-accordion-up\"\n {...props}\n >\n <div\n className={cn(\n \"px-2.5 pt-0 pb-3 [&_a]:text-foreground [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-primary [&_p:not(:last-child)]:mb-4\",\n className\n )}\n >\n {children}\n </div>\n </AccordionContentPrimitive>\n )\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\n\nconst alertVariants = cva(\n \"group/alert relative grid w-full gap-0.5 rounded-lg border border-border px-2.5 py-2 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground\",\n info: \"border-info/30 bg-info/5 text-info\",\n success: \"border-success/30 bg-success/5 text-success\",\n warning: \"border-warning/30 bg-warning/5 text-warning\",\n destructive:\n \"border-destructive/30 bg-destructive/5 text-destructive *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nexport type AlertProps = React.ComponentProps<\"div\"> & VariantProps<typeof alertVariants>;\n\nfunction Alert({ className, variant, ...props }: AlertProps) {\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 \"font-medium group-has-[>svg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n \"text-sm text-balance text-muted-foreground md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"alert-action\" className={cn(\"absolute top-2 right-2\", className)} {...props} />\n );\n}\n\nexport { Alert, AlertAction, AlertDescription, AlertTitle, alertVariants };\n","import type * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\n\nexport type AppShellBreakpoint = \"sm\" | \"md\" | \"lg\";\n\nexport type AppShellProps = React.ComponentProps<\"div\"> & {\n /** Breakpoint at which the persistent sidebar replaces the mobile header. */\n sidebarBreakpoint?: AppShellBreakpoint;\n};\n\nexport function AppShell({\n className,\n sidebarBreakpoint = \"md\",\n ...props\n}: AppShellProps) {\n return (\n <div\n data-slot=\"app-shell\"\n data-sidebar-breakpoint={sidebarBreakpoint}\n className={cn(\"bg-background text-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport function AppShellSidebar({ className, ...props }: React.ComponentProps<\"aside\">) {\n return (\n <aside\n data-slot=\"app-shell-sidebar\"\n className={cn(\"w-56 shrink-0 border-r border-border bg-card text-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport function AppShellMain({ className, ...props }: React.ComponentProps<\"main\">) {\n return <main data-slot=\"app-shell-main\" className={cn(\"bg-background\", className)} {...props} />;\n}\n\nexport function AppShellHeader({ className, ...props }: React.ComponentProps<\"header\">) {\n return (\n <header\n data-slot=\"app-shell-header\"\n className={cn(\"border-b border-border bg-background px-4\", className)}\n {...props}\n />\n );\n}\n\nexport function AppShellMobileHeader({\n className,\n ...props\n}: React.ComponentProps<\"header\">) {\n return (\n <header\n data-slot=\"app-shell-mobile-header\"\n className={cn(\"h-14 shrink-0 items-center gap-2 border-b border-border bg-background px-3\", className)}\n {...props}\n />\n );\n}\n\nexport type AppShellContentProps = React.ComponentProps<\"div\"> & {\n /** Maximum content width. Use `full` for dense application screens. */\n size?: \"default\" | \"wide\" | \"full\";\n /** Adds the standard responsive content padding. */\n padded?: boolean;\n /** Lets this region scroll while the surrounding shell remains fixed. */\n scrollable?: boolean;\n};\n\nexport function AppShellContent({\n className,\n size = \"wide\",\n padded = true,\n scrollable = true,\n ...props\n}: AppShellContentProps) {\n return (\n <div\n data-slot=\"app-shell-content\"\n data-size={size}\n data-padded={padded || undefined}\n data-scrollable={scrollable || undefined}\n className={className}\n {...props}\n />\n );\n}\n","import { createContext, useContext, useEffect, useState } from \"react\";\nimport { cn } from \"../../lib/cn\";\n\nexport type AvatarProps = React.ComponentProps<\"div\"> & { size?: \"xs\" | \"sm\" | \"default\" | \"lg\" };\n\nconst sizes = { xs: \"size-5 text-[10px]\", sm: \"size-6 text-xs\", default: \"size-8 text-sm\", lg: \"size-10 text-base\" };\n\ntype AvatarStatus = \"idle\" | \"loading\" | \"loaded\" | \"error\";\nconst AvatarContext = createContext<{\n status: AvatarStatus;\n setStatus: (status: AvatarStatus) => void;\n} | null>(null);\n\nexport function Avatar({ className, size = \"default\", children, ...props }: AvatarProps) {\n const [status, setStatus] = useState<AvatarStatus>(\"idle\");\n return <AvatarContext.Provider value={{ status, setStatus }}><div data-slot=\"avatar\" data-size={size} className={cn(\"group/avatar relative flex shrink-0 overflow-hidden rounded-full bg-muted text-muted-foreground\", sizes[size], className)} {...props}>{children}</div></AvatarContext.Provider>;\n}\n\nexport function AvatarImage({ className, src, onError, onLoad, ...props }: React.ComponentProps<\"img\">) {\n const avatar = useContext(AvatarContext);\n const [failed, setFailed] = useState(false);\n\n useEffect(() => {\n setFailed(false);\n avatar?.setStatus(src ? \"loading\" : \"idle\");\n }, [avatar?.setStatus, src]);\n\n if (failed || avatar?.status === \"error\") return null;\n return <img data-slot=\"avatar-image\" src={src} className={cn(\"aspect-square size-full object-cover\", className)} onLoad={(event) => { avatar?.setStatus(\"loaded\"); onLoad?.(event); }} onError={(event) => { setFailed(true); avatar?.setStatus(\"error\"); onError?.(event); }} {...props} />;\n}\n\nexport function AvatarFallback({ className, ...props }: React.ComponentProps<\"span\">) {\n const avatar = useContext(AvatarContext);\n if (avatar?.status === \"loaded\") return null;\n return <span data-slot=\"avatar-fallback\" className={cn(\"flex size-full items-center justify-center font-medium\", className)} {...props} />;\n}\n\nexport function AvatarBadge({ className, ...props }: React.ComponentProps<\"span\">) {\n return <span data-slot=\"avatar-badge\" className={cn(\"absolute right-0 bottom-0 size-2.5 rounded-full bg-success ring-2 ring-background\", className)} {...props} />;\n}\n\nexport function AvatarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"avatar-group\" className={cn(\"flex -space-x-2 [&>[data-slot=avatar]]:ring-2 [&>[data-slot=avatar]]:ring-background\", className)} {...props} />;\n}\n\nexport function AvatarGroupCount({ className, ...props }: React.ComponentProps<\"span\">) {\n return <span data-slot=\"avatar-group-count\" className={cn(\"flex size-8 items-center justify-center rounded-full bg-muted text-xs font-medium text-muted-foreground ring-2 ring-background\", className)} {...props} />;\n}\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\nimport { Link, type LinkProps } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport const badgeVariants = cva(\n \"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 [&>svg]:pointer-events-none [&>svg]:size-3\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground\",\n secondary: \"bg-secondary text-secondary-foreground\",\n neutral: \"bg-muted text-muted-foreground\",\n success: \"bg-success/10 text-success\",\n warning: \"bg-warning/10 text-warning\",\n info: \"bg-info/10 text-info\",\n danger: \"bg-destructive/10 text-destructive\",\n destructive: \"bg-destructive text-destructive-foreground\",\n outline: \"border border-border text-foreground\",\n ghost: \"text-foreground hover:bg-muted\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n },\n defaultVariants: { variant: \"default\" },\n },\n);\n\nexport type BadgeProps = React.ComponentProps<\"span\"> & VariantProps<typeof badgeVariants>;\n\nexport function Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <span\n data-slot=\"badge\"\n data-variant={variant ?? \"default\"}\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport type BadgeLinkProps = Omit<LinkProps, \"className\"> &\n VariantProps<typeof badgeVariants> & { className?: string };\n\nexport function BadgeLink({ className, variant, ...props }: BadgeLinkProps) {\n return (\n <Link\n data-slot=\"badge\"\n data-variant={variant ?? \"default\"}\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n","import { Breadcrumb as AriaBreadcrumb, Breadcrumbs as AriaBreadcrumbs, Link as AriaLink } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport function Breadcrumbs({ className, ...props }: React.ComponentProps<typeof AriaBreadcrumbs>) {\n return <AriaBreadcrumbs data-slot=\"breadcrumbs\" className={cn(\"flex flex-wrap items-center gap-1.5 text-sm text-muted-foreground\", className)} {...props} />;\n}\n\nexport function Breadcrumb({ className, ...props }: React.ComponentProps<typeof AriaBreadcrumb>) {\n return <AriaBreadcrumb data-slot=\"breadcrumb\" className={cn(\"inline-flex items-center gap-1.5\", className)} {...props} />;\n}\n\nexport function BreadcrumbLink({ className, ...props }: React.ComponentProps<typeof AriaLink>) {\n return <AriaLink data-slot=\"breadcrumb-link\" className={cn(\"transition-colors hover:text-foreground\", className)} {...props} />;\n}\n\nexport function BreadcrumbPage({ className, ...props }: React.ComponentProps<\"span\">) {\n return <span data-slot=\"breadcrumb-page\" aria-current=\"page\" className={cn(\"font-medium text-foreground\", className)} {...props} />;\n}\n\nexport function BreadcrumbSeparator({ children = \"/\", className, ...props }: React.ComponentProps<\"span\">) {\n return <span data-slot=\"breadcrumb-separator\" aria-hidden=\"true\" className={cn(\"text-muted-foreground/60\", className)} {...props}>{children}</span>;\n}\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport { Separator } from \"../separator/separator\";\n\nconst buttonGroupVariants = cva(\n \"flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-lg [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n {\n variants: {\n orientation: {\n horizontal:\n \"**:data-slot:rounded-r-none [&_[data-slot]~[data-slot]]:rounded-l-none [&_[data-slot]~[data-slot]]:border-l-0 [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-lg!\",\n vertical:\n \"flex-col **:data-slot:rounded-b-none [&_[data-slot]~[data-slot]]:rounded-t-none [&_[data-slot]~[data-slot]]:border-t-0 [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg!\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n },\n);\n\nfunction ButtonGroup({\n className,\n orientation,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof buttonGroupVariants>) {\n return (\n // biome-ignore lint/a11y/useSemanticElements: fieldset would impose form semantics on a generic action group.\n <div\n role=\"group\"\n data-slot=\"button-group\"\n data-orientation={orientation}\n className={cn(buttonGroupVariants({ orientation }), className)}\n {...props}\n />\n );\n}\n\nfunction ButtonGroupText({\n className,\n render,\n ...props\n}: React.ComponentProps<\"div\"> & {\n render?: (props: React.HTMLAttributes<HTMLElement>) => React.ReactNode;\n}) {\n if (render) {\n const renderProps = {\n \"data-slot\": \"button-group-text\",\n className: cn(\n \"flex items-center gap-2 rounded-lg border border-border bg-muted px-2.5 text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className,\n ),\n ...props,\n };\n\n return render(renderProps);\n }\n\n return (\n <div\n data-slot=\"button-group-text\"\n className={cn(\n \"flex items-center gap-2 rounded-lg border border-border bg-muted px-2.5 text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn(\n \"relative self-stretch bg-input data-horizontal:mx-px data-horizontal:w-auto data-vertical:my-px data-vertical:h-auto\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants };\n","\"use client\";\n\nimport { Separator as SeparatorPrimitive } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport type SeparatorProps = React.ComponentProps<typeof SeparatorPrimitive>;\n\nfunction Separator({ className, orientation = \"horizontal\", ...props }: SeparatorProps) {\n return (\n <SeparatorPrimitive\n data-slot=\"separator\"\n orientation={orientation}\n className={cn(\n \"block shrink-0 border-0 bg-border aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=vertical]:w-px aria-[orientation=vertical]:self-stretch [:is(hr)]:h-px [:is(hr)]:w-full\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n","\"use client\";\n\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\nimport {\n Button as ButtonPrimitive,\n type ButtonProps as ButtonPrimitiveProps,\n Link as LinkPrimitive,\n type LinkProps as LinkPrimitiveProps,\n} from \"react-aria-components\";\n\nimport { actionRipple } from \"../../lib/action-ripple\";\nimport { cn } from \"../../lib/cn\";\n\nconst buttonVariants = cva(\n cn(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n actionRipple(),\n ),\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/80\",\n outline:\n \"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground\",\n ghost:\n \"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50\",\n destructive:\n \"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40\",\n link: \"text-primary underline-offset-4 hover:underline after:hidden\",\n },\n size: {\n default:\n \"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: \"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n icon: \"size-8\",\n \"icon-xs\":\n \"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\":\n \"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg\",\n \"icon-lg\": \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nexport type ButtonProps = Omit<ButtonPrimitiveProps, \"className\"> &\n React.RefAttributes<HTMLButtonElement> &\n VariantProps<typeof buttonVariants> & {\n className?: string;\n };\n\nfunction Button({ className, variant = \"default\", size = \"default\", ...props }: ButtonProps) {\n return (\n <ButtonPrimitive\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 type LinkButtonProps = Omit<LinkPrimitiveProps, \"className\"> &\n VariantProps<typeof buttonVariants> & {\n className?: string;\n };\n\nfunction LinkButton({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: LinkButtonProps) {\n return (\n <LinkPrimitive\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, LinkButton };\n","import type * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\n\nexport type CardProps = React.ComponentProps<\"div\"> & { size?: \"default\" | \"sm\" };\n\nfunction Card({ className, size = \"default\", ...props }: CardProps) {\n return (\n <div\n data-slot=\"card\"\n data-size={size}\n className={cn(\n \"group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl border border-border bg-card py-(--card-spacing) text-sm text-card-foreground shadow-sm [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl\",\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 \"group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)\",\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(\n \"text-base leading-snug font-medium group-data-[size=sm]/card:text-sm\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\"col-start-2 row-span-2 row-start-1 self-start justify-self-end\", className)}\n {...props}\n />\n );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"card-content\" className={cn(\"px-(--card-spacing)\", className)} {...props} />\n );\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\n \"flex items-center rounded-b-xl border-t border-border bg-muted/50 p-(--card-spacing)\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };\n","import { Check } from \"lucide-react\";\nimport {\n Checkbox as AriaCheckbox,\n type CheckboxProps as AriaCheckboxProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport type CheckboxProps = Omit<AriaCheckboxProps, \"className\"> & { className?: string };\n\nexport function Checkbox({ className, children, ...props }: CheckboxProps) {\n return (\n <AriaCheckbox\n data-slot=\"checkbox\"\n className={cn(\n \"group inline-flex items-center gap-2 text-sm text-foreground data-disabled:cursor-not-allowed data-disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n {(state) => (\n <>\n <span\n aria-hidden=\"true\"\n className=\"grid size-4 place-items-center rounded border border-border bg-background text-primary-foreground transition-colors group-data-selected:border-primary group-data-selected:bg-primary group-data-focus-visible:ring-3 group-data-focus-visible:ring-ring/50\"\n >\n <Check className=\"size-3 opacity-0 transition-opacity group-data-selected:opacity-100 motion-reduce:transition-none\" />\n </span>\n {typeof children === \"function\" ? children(state) : children}\n </>\n )}\n </AriaCheckbox>\n );\n}\n","import { Fragment, useMemo, useState, type ReactNode } from \"react\";\nimport { ComboBox as AriaComboBox, ComboBoxValue, FieldError, Input, Label, ListBox, ListBoxItem, Popover, Text, type ComboBoxProps, type InputProps, type ListBoxItemProps, type ListBoxProps } from \"react-aria-components\";\nimport type { Key } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\nimport { getTextMatchParts } from \"../../lib/text-match\";\n\nexport const Combobox = AriaComboBox;\nexport { ComboBoxValue as ComboboxValue };\nexport type { ComboBoxProps };\n\nexport function ComboboxInput({ className, ...props }: InputProps) { return <Input data-slot=\"combobox-input\" className={cn(\"h-9 w-full rounded-lg border border-border bg-background px-2.5 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-3 focus-visible:ring-ring/50\", className)} {...props} />; }\nexport function ComboboxContent({ className, ...props }: React.ComponentProps<typeof Popover>) { return <Popover data-slot=\"combobox-content\" className={cn(\"max-h-72 w-(--trigger-width) overflow-hidden rounded-xl border border-border bg-background p-1.5 text-foreground shadow-lg motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out\", className)} {...props} />; }\nexport function ComboboxList<T extends object>({ className, emptyState, ...props }: ListBoxProps<T> & { emptyState?: React.ReactNode }) { return <ListBox data-slot=\"combobox-list\" className={cn(\"max-h-64 overflow-y-auto\", className)} renderEmptyState={emptyState ? () => emptyState : undefined} {...props} />; }\nexport function ComboboxItem<T extends object>({ className, children, ...props }: ListBoxItemProps<T>) { return <ListBoxItem data-slot=\"combobox-item\" className={cn(\"flex w-full cursor-default items-center justify-between rounded-md px-2 py-2 text-sm outline-none transition-colors data-focused:bg-muted data-focused:text-foreground data-hovered:bg-muted data-disabled:pointer-events-none data-disabled:opacity-50\", className)} {...props}>{children}</ListBoxItem>; }\nexport function HighlightMatch({ text, query, className }: { text: string; query: string; className?: string }) { return <span className={className}>{getTextMatchParts(text, query).map((part, index) => part.match ? <mark key={`${part.text}-${index}`} className=\"rounded bg-accent px-0.5 text-accent-foreground\">{part.text}</mark> : <Fragment key={`${part.text}-${index}`}>{part.text}</Fragment>)}</span>; }\n\nexport type AutocompleteComboboxProps<T extends object> = Omit<ComboBoxProps<T>, \"children\" | \"items\" | \"inputValue\" | \"onInputChange\" | \"selectedKey\" | \"onSelectionChange\" | \"defaultFilter\"> & { items: readonly T[]; getItemKey: (item: T) => Key; getItemLabel: (item: T) => string; renderItem?: (item: T, query: string) => ReactNode; inputValue?: string; onInputChange?: (value: string) => void; selectedKey?: Key | null; onSelectionChange?: (key: Key | null, item?: T) => void; label?: ReactNode; description?: ReactNode; errorMessage?: ReactNode; emptyState?: ReactNode; suggestion?: boolean; placeholder?: string };\n\n/** A safe, keyboard-first autocomplete for users, contracts and other entities. */\nexport function AutocompleteCombobox<T extends object>({ items, getItemKey, getItemLabel, renderItem, inputValue: controlledInputValue, onInputChange, selectedKey, onSelectionChange, label, description, errorMessage, emptyState = <p className=\"px-3 py-7 text-center text-sm text-muted-foreground\">No hay resultados.</p>, suggestion = true, placeholder, className, onKeyDown: _onKeyDown, ...props }: AutocompleteComboboxProps<T>) {\n const [internalInputValue, setInternalInputValue] = useState(\"\");\n const inputValue = controlledInputValue ?? internalInputValue;\n const setInputValue = (value: string) => { setInternalInputValue(value); onInputChange?.(value); };\n const normalizedQuery = inputValue.trim().toLocaleLowerCase();\n const filteredItems = useMemo(() => normalizedQuery ? items.filter((item) => getItemLabel(item).toLocaleLowerCase().includes(normalizedQuery)) : [...items], [getItemLabel, items, normalizedQuery]);\n const suggestedItem = useMemo(() => !suggestion || !normalizedQuery ? undefined : items.find((item) => getItemLabel(item).toLocaleLowerCase().startsWith(normalizedQuery) && getItemLabel(item).length > inputValue.length), [getItemLabel, inputValue.length, items, normalizedQuery, suggestion]);\n const suggestionLabel = suggestedItem ? getItemLabel(suggestedItem) : undefined;\n const acceptSuggestion = () => { if (!suggestedItem || !suggestionLabel) return false; setInputValue(suggestionLabel); onSelectionChange?.(getItemKey(suggestedItem), suggestedItem); return true; };\n const handleKeyDown = (event: Parameters<NonNullable<InputProps[\"onKeyDown\"]>>[0]) => { if ((event.key === \"Tab\" || event.key === \"Enter\") && acceptSuggestion()) event.preventDefault(); };\n return <AriaComboBox<T> {...props} className={cn(\"group/combobox flex w-full flex-col gap-1.5\", className)} items={filteredItems} selectedKey={selectedKey} inputValue={inputValue} onInputChange={setInputValue} onSelectionChange={(key) => { const item = filteredItems.find((candidate) => String(getItemKey(candidate)) === String(key)); if (item) setInputValue(getItemLabel(item)); onSelectionChange?.(key, item); }}>\n {label && <Label className=\"text-sm font-medium text-foreground\">{label}</Label>}\n <div className=\"relative\">{suggestionLabel && <span aria-hidden=\"true\" className=\"pointer-events-none absolute inset-y-0 left-2.5 z-0 flex items-center whitespace-pre text-sm text-muted-foreground/60\"><span className=\"text-transparent\">{inputValue}</span>{suggestionLabel.slice(inputValue.length)}</span>}<ComboboxInput aria-autocomplete={suggestionLabel ? \"both\" : \"list\"} placeholder={placeholder} onKeyDown={handleKeyDown} className=\"relative z-10 bg-transparent\" /></div>\n {description && <Text slot=\"description\" className=\"text-xs text-muted-foreground\">{description}</Text>}\n {errorMessage && <FieldError className=\"text-xs text-destructive\">{errorMessage}</FieldError>}\n <ComboboxContent><ComboboxList<T> emptyState={emptyState}>{(item) => <ComboboxItem id={getItemKey(item)} textValue={getItemLabel(item)}>{renderItem ? renderItem(item, inputValue) : <HighlightMatch text={getItemLabel(item)} query={inputValue} />}</ComboboxItem>}</ComboboxList></ComboboxContent>\n </AriaComboBox>;\n}\n","import { ComboBox as AriaComboBox, Input as AriaInput, ListBox, ListBoxItem, Popover, type ComboBoxProps, type ListBoxItemProps } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport function Command<T extends object>({ className, ...props }: ComboBoxProps<T>) {\n return <AriaComboBox data-slot=\"command\" className={cn(\"w-full\", className)} {...props} />;\n}\n\nexport function CommandInput({ className, ...props }: React.ComponentProps<typeof AriaInput>) {\n return <AriaInput data-slot=\"command-input\" className={cn(\"h-9 w-full border-0 bg-transparent px-3 text-sm text-foreground outline-none placeholder:text-muted-foreground\", className)} {...props} />;\n}\n\nexport function CommandContent({ className, ...props }: React.ComponentProps<typeof Popover>) {\n return <Popover data-slot=\"command-content\" className={cn(\"w-(--trigger-width) overflow-hidden rounded-xl border border-border bg-background p-1.5 shadow-lg outline-none\", className)} {...props} />;\n}\n\nexport function CommandList<T extends object>({ className, ...props }: React.ComponentProps<typeof ListBox<T>>) {\n return <ListBox data-slot=\"command-list\" className={cn(\"max-h-72 overflow-y-auto\", className)} {...props} />;\n}\n\nexport function CommandItem<T extends object>({ className, ...props }: ListBoxItemProps<T>) {\n return <ListBoxItem data-slot=\"command-item\" className={cn(\"flex cursor-default items-center rounded-md px-2 py-1.5 text-sm outline-none data-focused:bg-muted data-disabled:pointer-events-none data-disabled:opacity-50\", className)} {...props} />;\n}\n","import type * as React from \"react\";\nimport { X } from \"lucide-react\";\nimport {\n Dialog as AriaDialog,\n Heading,\n Modal,\n ModalOverlay,\n Text,\n type ModalOverlayProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\nimport { Button } from \"../button/button\";\n\nconst sizeClasses = {\n sm: \"w-[min(calc(100dvw-2rem),24rem)]\",\n md: \"w-[min(calc(100dvw-2rem),28rem)]\",\n lg: \"w-[min(calc(100dvw-2rem),36rem)]\",\n} as const;\n\nexport type ModalDialogProps = Omit<\n ModalOverlayProps,\n \"children\" | \"className\" | \"isOpen\" | \"onOpenChange\"\n> & {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title: React.ReactNode;\n description?: React.ReactNode;\n children?: React.ReactNode;\n footer?: React.ReactNode;\n size?: keyof typeof sizeClasses;\n showCloseButton?: boolean;\n className?: string;\n footerClassName?: string;\n};\n\n/**\n * Accessible modal with a consistent title, optional description, body and footer.\n * Its width is self-contained so consumer CSS cannot override it with max-width utilities.\n */\nexport function ModalDialog({\n open,\n onOpenChange,\n title,\n description,\n children,\n footer,\n size = \"sm\",\n showCloseButton = true,\n className,\n footerClassName,\n ...props\n}: ModalDialogProps) {\n const layoutClass = children\n ? footer\n ? \"grid-rows-[auto_minmax(0,1fr)_auto]\"\n : \"grid-rows-[auto_minmax(0,1fr)]\"\n : \"grid-rows-[auto_auto]\";\n\n return (\n <ModalOverlay\n isOpen={open}\n onOpenChange={onOpenChange}\n className=\"fixed inset-0 z-50 grid place-items-center bg-black/20 p-4 backdrop-blur-[1px] motion-safe:data-entering:animate-ui-overlay-in motion-safe:data-exiting:animate-ui-overlay-out\"\n {...props}\n >\n <Modal\n className={cn(\n \"max-h-[calc(100dvh-2rem)] outline-none motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out\",\n sizeClasses[size],\n className,\n )}\n >\n <AriaDialog\n className={cn(\n \"grid max-h-[calc(100dvh-2rem)] overflow-hidden rounded-xl bg-background text-foreground shadow-xl outline-none\",\n layoutClass,\n )}\n >\n {({ close }) => (\n <>\n <header data-slot=\"modal-dialog-header\" className=\"flex items-start gap-3 border-b border-border px-5 py-4\">\n <div className=\"min-w-0 flex-1\">\n <Heading slot=\"title\" className=\"font-heading text-base leading-none font-medium\">\n {title}\n </Heading>\n {description ? (\n <Text slot=\"description\" className=\"mt-2 text-sm text-muted-foreground\">\n {description}\n </Text>\n ) : null}\n </div>\n {showCloseButton ? (\n <Button\n aria-label=\"Cerrar diálogo\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"-mr-2 -mt-1\"\n onPress={close}\n >\n <X aria-hidden=\"true\" className=\"size-4\" />\n </Button>\n ) : null}\n </header>\n {children ? (\n <div data-slot=\"modal-dialog-body\" className=\"min-h-0 overflow-y-auto px-5 py-4\">\n {children}\n </div>\n ) : null}\n {footer ? (\n <footer\n data-slot=\"modal-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 border-t border-border bg-muted/50 px-5 py-4 sm:flex-row sm:flex-wrap sm:justify-end\",\n footerClassName,\n )}\n >\n {footer}\n </footer>\n ) : null}\n </>\n )}\n </AriaDialog>\n </Modal>\n </ModalOverlay>\n );\n}\n","import type * as React from \"react\";\nimport { Button } from \"../button/button\";\nimport { ModalDialog } from \"../modal-dialog/modal-dialog\";\n\nexport type ConfirmDialogProps = {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title: string;\n description?: React.ReactNode;\n confirmLabel?: string;\n cancelLabel?: string;\n destructive?: boolean;\n pending?: boolean;\n onConfirm: () => void;\n};\n\n/** Controlled confirmation dialog for irreversible actions. */\nexport function ConfirmDialog({\n open,\n onOpenChange,\n title,\n description,\n confirmLabel = \"Confirmar\",\n cancelLabel = \"Cancelar\",\n destructive = false,\n pending = false,\n onConfirm,\n}: ConfirmDialogProps) {\n return (\n <ModalDialog\n open={open}\n onOpenChange={onOpenChange}\n title={title}\n description={description}\n showCloseButton={false}\n footer={\n <>\n <Button variant=\"outline\" isDisabled={pending} onPress={() => onOpenChange(false)}>\n {cancelLabel}\n </Button>\n <Button variant={destructive ? \"destructive\" : \"default\"} isDisabled={pending} onPress={onConfirm}>\n {confirmLabel}\n </Button>\n </>\n }\n />\n );\n}\n","\"use client\";\n\nimport { XIcon } from \"lucide-react\";\nimport * as React from \"react\";\nimport {\n Dialog as AriaDialog,\n Heading,\n Modal,\n ModalOverlay,\n type ModalOverlayProps,\n Text,\n} from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\nimport { Button } from \"../button/button\";\n\ntype DialogContextValue = { open: boolean; setOpen: (open: boolean) => void };\ntype SlottableProps = React.HTMLAttributes<HTMLElement> & { \"data-slot\"?: string };\nconst DialogContext = React.createContext<DialogContextValue | null>(null);\n\nfunction useDialogContext() {\n const context = React.useContext(DialogContext);\n if (!context) throw new Error(\"Dialog components must be rendered within Dialog.\");\n return context;\n}\n\ntype DialogProps = {\n children: React.ReactNode;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n open?: boolean;\n};\n\nfunction Dialog({ children, defaultOpen = false, onOpenChange, open: controlledOpen }: DialogProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen);\n const open = controlledOpen ?? uncontrolledOpen;\n const setOpen = React.useCallback(\n (nextOpen: boolean) => {\n if (controlledOpen === undefined) setUncontrolledOpen(nextOpen);\n onOpenChange?.(nextOpen);\n },\n [controlledOpen, onOpenChange],\n );\n\n return <DialogContext.Provider value={{ open, setOpen }}>{children}</DialogContext.Provider>;\n}\n\ntype DialogTriggerProps = Omit<React.ComponentProps<typeof Button>, \"onPress\"> & { asChild?: boolean };\n\nfunction DialogTrigger({ asChild = false, children, onClick, ...props }: DialogTriggerProps) {\n const { setOpen } = useDialogContext();\n const handleClick: React.MouseEventHandler<HTMLElement> = (event) => {\n onClick?.(event as React.MouseEvent<HTMLButtonElement>);\n if (!event.defaultPrevented) setOpen(true);\n };\n\n if (asChild && React.isValidElement<SlottableProps>(children)) {\n const child = children as React.ReactElement<SlottableProps>;\n return React.cloneElement(child, {\n ...(props as React.HTMLAttributes<HTMLElement>),\n \"data-slot\": \"dialog-trigger\",\n onClick: (event: React.MouseEvent<HTMLElement>) => {\n child.props.onClick?.(event);\n handleClick(event);\n },\n });\n }\n\n return (\n <Button data-slot=\"dialog-trigger\" onPress={() => setOpen(true)} {...props}>\n {children}\n </Button>\n );\n}\n\nfunction DialogPortal({ children }: { children?: React.ReactNode }) {\n return <>{children}</>;\n}\n\ntype DialogOverlayProps = Omit<ModalOverlayProps, \"children\" | \"className\" | \"isOpen\" | \"onOpenChange\"> & {\n children?: React.ReactNode;\n className?: string;\n};\n\nfunction DialogOverlay({ children, className, ...props }: DialogOverlayProps) {\n const { open, setOpen } = useDialogContext();\n if (!open) return null;\n\n return (\n <ModalOverlay\n data-slot=\"dialog-overlay\"\n isDismissable\n isOpen={open}\n onOpenChange={setOpen}\n className={cn(\n \"fixed inset-0 isolate z-50 grid place-items-center bg-black/10 p-4 duration-100 supports-backdrop-filter:backdrop-blur-xs data-entering:animate-ui-overlay-in data-exiting:animate-ui-overlay-out\",\n className,\n )}\n {...props}\n >\n {children}\n </ModalOverlay>\n );\n}\n\ntype DialogContentProps = Omit<React.ComponentProps<typeof AriaDialog>, \"children\" | \"className\"> & {\n children?: React.ReactNode;\n className?: string;\n onOverlayClick?: React.MouseEventHandler<HTMLDivElement>;\n showCloseButton?: boolean;\n};\n\nfunction DialogContent({\n children,\n className,\n onOverlayClick,\n showCloseButton = true,\n ...props\n}: DialogContentProps) {\n const { setOpen } = useDialogContext();\n\n return (\n <DialogPortal>\n <DialogOverlay\n onClick={(event) => {\n if (event.target === event.currentTarget) onOverlayClick?.(event);\n }}\n >\n <Modal\n className={cn(\n \"w-full max-w-[calc(100%-2rem)] max-h-[calc(100dvh-2rem)] outline-none sm:max-w-sm\",\n className,\n )}\n >\n <AriaDialog\n data-slot=\"dialog-content\"\n className={cn(\n \"grid max-h-[calc(100dvh-2rem)] gap-4 overflow-y-auto rounded-xl bg-background p-4 text-sm text-foreground ring-1 ring-foreground/10 outline-none\",\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton ? (\n <Button\n aria-label=\"Cerrar diálogo\"\n data-slot=\"dialog-close\"\n variant=\"ghost\"\n className=\"absolute top-2 right-2\"\n size=\"icon-sm\"\n onPress={() => setOpen(false)}\n >\n <XIcon />\n </Button>\n ) : null}\n </AriaDialog>\n </Modal>\n </DialogOverlay>\n </DialogPortal>\n );\n}\n\ntype DialogCloseProps = Omit<React.ComponentProps<typeof Button>, \"onPress\"> & { asChild?: boolean };\n\nfunction DialogClose({ asChild = false, children, onClick, ...props }: DialogCloseProps) {\n const { setOpen } = useDialogContext();\n if (asChild && React.isValidElement<SlottableProps>(children)) {\n const child = children as React.ReactElement<SlottableProps>;\n return React.cloneElement(child, {\n ...(props as React.HTMLAttributes<HTMLElement>),\n \"data-slot\": \"dialog-close\",\n onClick: (event: React.MouseEvent<HTMLElement>) => {\n child.props.onClick?.(event);\n if (!event.defaultPrevented) setOpen(false);\n },\n });\n }\n\n return (\n <Button data-slot=\"dialog-close\" onPress={() => setOpen(false)} {...props}>\n {children}\n </Button>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"dialog-header\" className={cn(\"flex flex-col gap-2\", className)} {...props} />;\n}\n\nfunction DialogFooter({ className, showCloseButton = false, children, ...props }: React.ComponentProps<\"div\"> & { showCloseButton?: boolean }) {\n return (\n <div data-slot=\"dialog-footer\" className={cn(\"-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:flex-wrap sm:justify-end\", className)} {...props}>\n {children}\n {showCloseButton ? <DialogClose variant=\"outline\">Cerrar</DialogClose> : null}\n </div>\n );\n}\n\nfunction DialogTitle({ className, ...props }: Omit<React.ComponentProps<typeof Heading>, \"slot\">) {\n return <Heading slot=\"title\" data-slot=\"dialog-title\" className={cn(\"font-heading text-base leading-none font-medium\", className)} {...props} />;\n}\n\nfunction DialogDescription({ className, ...props }: Omit<React.ComponentProps<typeof Text>, \"slot\">) {\n return <Text slot=\"description\" data-slot=\"dialog-description\" className={cn(\"text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground\", className)} {...props} />;\n}\n\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };\n","import { Dialog as AriaDialog, Modal, ModalOverlay, type ModalOverlayProps } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport interface DrawerProps extends Omit<ModalOverlayProps, \"children\" | \"className\"> { children: React.ReactNode; side?: \"left\" | \"right\" | \"bottom\"; className?: string; }\n\nconst sideStyles = { left: \"inset-y-0 left-0 h-full w-[min(22rem,calc(100%-2rem))] data-entering:animate-ui-surface-in\", right: \"inset-y-0 right-0 h-full w-[min(22rem,calc(100%-2rem))] data-entering:animate-ui-surface-in\", bottom: \"inset-x-0 bottom-0 max-h-[85vh] w-full data-entering:animate-ui-surface-in\" };\n\nexport function Drawer({ children, side = \"right\", className, ...props }: DrawerProps) {\n return <ModalOverlay isDismissable className=\"fixed inset-0 z-50 bg-black/20 backdrop-blur-[1px] motion-safe:data-entering:animate-ui-overlay-in motion-safe:data-exiting:animate-ui-overlay-out\" {...props}><Modal className={cn(\"absolute grid gap-4 overflow-y-auto rounded-xl border border-border bg-background p-5 text-foreground shadow-xl outline-none\", sideStyles[side], className)}><AriaDialog data-slot=\"drawer\" className=\"outline-none\">{children}</AriaDialog></Modal></ModalOverlay>;\n}\n\nexport function DrawerHeader({ className, ...props }: React.ComponentProps<\"div\">) { return <div data-slot=\"drawer-header\" className={cn(\"flex flex-col gap-1.5\", className)} {...props} />; }\nexport function DrawerFooter({ className, ...props }: React.ComponentProps<\"div\">) { return <div data-slot=\"drawer-footer\" className={cn(\"mt-auto flex flex-col-reverse gap-2 pt-4 sm:flex-row sm:justify-end\", className)} {...props} />; }\nexport function DrawerTitle({ className, ...props }: React.ComponentProps<\"h2\">) { return <h2 data-slot=\"drawer-title\" className={cn(\"text-base font-semibold\", className)} {...props} />; }\nexport function DrawerDescription({ className, ...props }: React.ComponentProps<\"p\">) { return <p data-slot=\"drawer-description\" className={cn(\"text-sm text-muted-foreground\", className)} {...props} />; }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cva } from \"class-variance-authority\"\nimport { CheckIcon, ChevronRightIcon } from \"lucide-react\"\nimport {\n composeRenderProps,\n Header as HeaderPrimitive,\n MenuItem as MenuItemPrimitive,\n Menu as MenuPrimitive,\n MenuSection as MenuSectionPrimitive,\n MenuTrigger as MenuTriggerPrimitive,\n Popover as PopoverPrimitive,\n Separator as SeparatorPrimitive,\n SubmenuTrigger as SubmenuTriggerPrimitive,\n type MenuItemProps as MenuItemPrimitiveProps,\n type MenuSectionProps as MenuSectionPrimitiveProps,\n} from \"react-aria-components\"\nimport { cn } from \"../../lib/cn\"\n\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof MenuTriggerPrimitive>) {\n return <MenuTriggerPrimitive data-slot=\"dropdown-menu-trigger\" {...props} />\n}\n\nfunction DropdownMenu({\n \"data-slot\": dataSlot = \"dropdown-menu-content\",\n placement = \"bottom start\",\n offset = 4,\n crossOffset = 0,\n className,\n children,\n ...props\n}: Omit<\n React.ComponentProps<typeof MenuPrimitive<object>>,\n \"children\" | \"className\"\n> &\n Pick<\n React.ComponentProps<typeof PopoverPrimitive>,\n \"placement\" | \"offset\" | \"crossOffset\"\n > & {\n \"data-slot\"?: string\n className?: string\n children?: React.ReactNode\n }) {\n return (\n <PopoverPrimitive\n data-slot={dataSlot}\n placement={placement}\n offset={offset}\n crossOffset={crossOffset}\n className={cn(\"z-50 w-(--trigger-width) min-w-32 origin-(--trigger-anchor-point) overflow-x-hidden overflow-y-auto rounded-lg border border-border bg-popover p-1 text-popover-foreground shadow-lg outline-none motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out\", className)}\n >\n <MenuPrimitive\n className=\"max-h-[inherit] overflow-x-hidden overflow-y-auto outline-hidden\"\n {...props}\n >\n {children}\n </MenuPrimitive>\n </PopoverPrimitive>\n )\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: Omit<MenuSectionPrimitiveProps<object>, \"children\"> & {\n children?: React.ReactNode\n}) {\n return <MenuSectionPrimitive data-slot=\"dropdown-menu-group\" {...props} />\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof HeaderPrimitive> & {\n inset?: boolean\n}) {\n return (\n <HeaderPrimitive\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst dropdownMenuItemVariants = cva(\n \"group/dropdown-menu-item relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n selectionMode: {\n none: \"gap-1.5 rounded-md px-1.5 py-1 text-sm focus:bg-muted focus:text-foreground not-data-[variant=destructive]:focus:**:text-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive\",\n single:\n \"gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm focus:bg-muted focus:text-foreground focus:**:text-foreground data-inset:pl-7 [&_svg:not([class*='size-'])]:size-4\",\n multiple:\n \"gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm focus:bg-muted focus:text-foreground focus:**:text-foreground data-inset:pl-7 [&_svg:not([class*='size-'])]:size-4\",\n },\n },\n }\n)\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n children,\n ...props\n}: MenuItemPrimitiveProps<object> & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}) {\n return (\n <MenuItemPrimitive\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n textValue={typeof children === \"string\" ? children : props.textValue}\n className={composeRenderProps(className, (className, { selectionMode }) =>\n cn(dropdownMenuItemVariants({ selectionMode }), className)\n )}\n {...props}\n >\n {composeRenderProps(\n children,\n (children, { isSelected, selectionMode }) => (\n <>\n {selectionMode !== \"none\" ? (\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot={\n selectionMode === \"single\"\n ? \"dropdown-menu-radio-item-indicator\"\n : \"dropdown-menu-checkbox-item-indicator\"\n }\n >\n {isSelected ? <CheckIcon /> : null}\n </span>\n ) : null}\n {children}\n </>\n )\n )}\n </MenuItemPrimitive>\n )\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps<typeof SubmenuTriggerPrimitive>) {\n return <SubmenuTriggerPrimitive data-slot=\"dropdown-menu-sub\" {...props} />\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenuItemPrimitiveProps<object> & {\n inset?: boolean\n}) {\n return (\n <MenuItemPrimitive\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n textValue={typeof children === \"string\" ? children : props.textValue}\n className={cn(\n \"flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-muted focus:text-foreground focus:**:text-foreground data-inset:pl-7 data-open:bg-muted data-open:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {composeRenderProps(children, (children) => (\n <>\n {children}\n <ChevronRightIcon className=\"cn-rtl-flip ml-auto\" />\n </>\n ))}\n </MenuItemPrimitive>\n )\n}\n\nfunction DropdownMenuSubContent({\n placement = \"end top\",\n crossOffset = -3,\n offset = 0,\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenu>) {\n return (\n <DropdownMenu\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\"w-auto min-w-24 rounded-lg border border-border bg-popover p-1 text-popover-foreground shadow-lg\", className)}\n placement={placement}\n crossOffset={crossOffset}\n offset={offset}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive>) {\n return (\n <SeparatorPrimitive\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", 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 \"ml-auto text-xs tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n DropdownMenuTrigger,\n DropdownMenu,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n}\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\n\nexport function EmptyState({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-state\"\n className={cn(\n \"flex min-h-44 w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-xl border border-dashed border-border p-6 text-center text-balance\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function EmptyStateHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-state-header\"\n className={cn(\"flex max-w-sm flex-col items-center gap-2\", className)}\n {...props}\n />\n );\n}\n\nexport const emptyStateMediaVariants = cva(\n \"mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"size-8 rounded-lg bg-muted text-foreground [&_svg:not([class*='size-'])]:size-4\",\n },\n },\n defaultVariants: { variant: \"default\" },\n },\n);\n\nexport function EmptyStateMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof emptyStateMediaVariants>) {\n return (\n <div\n data-slot=\"empty-state-media\"\n data-variant={variant}\n className={cn(emptyStateMediaVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport function EmptyStateTitle({ className, ...props }: React.ComponentProps<\"h3\">) {\n return (\n <h3\n data-slot=\"empty-state-title\"\n className={cn(\"text-sm font-medium tracking-tight text-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport function EmptyStateDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"empty-state-description\"\n className={cn(\n \"max-w-sm text-sm/relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function EmptyStateContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-state-content\"\n className={cn(\n \"flex w-full max-w-sm min-w-0 flex-col items-center gap-2.5 text-sm\",\n className,\n )}\n {...props}\n />\n );\n}\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport { Label } from \"../label/label\";\nimport { Separator } from \"../separator/separator\";\n\nexport function FieldSet({ className, ...props }: React.ComponentProps<\"fieldset\">) {\n return (\n <fieldset data-slot=\"field-set\" className={cn(\"flex flex-col gap-4\", className)} {...props} />\n );\n}\n\nexport function FieldLegend({\n className,\n variant = \"legend\",\n ...props\n}: React.ComponentProps<\"legend\"> & { variant?: \"legend\" | \"label\" }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n \"mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function FieldGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n \"group/field-group @container/field-group flex w-full flex-col gap-5\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport const fieldVariants = cva(\n \"group/field flex w-full gap-2 data-[invalid=true]:text-destructive\",\n {\n variants: {\n orientation: {\n vertical: \"flex-col *:w-full [&>.sr-only]:w-auto\",\n horizontal:\n \"flex-row items-center has-[>[data-slot=field-content]]:items-start *:data-[slot=field-label]:flex-auto\",\n responsive:\n \"flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:*:data-[slot=field-label]:flex-auto\",\n },\n },\n defaultVariants: { orientation: \"vertical\" },\n },\n);\n\nexport type FieldProps = React.ComponentProps<\"div\"> & VariantProps<typeof fieldVariants>;\n\nexport function Field({ className, orientation = \"vertical\", ...props }: FieldProps) {\n return (\n // biome-ignore lint/a11y/useSemanticElements: FieldSet provides native fieldset semantics when they are appropriate.\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n );\n}\n\nexport function FieldContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn(\"flex flex-1 flex-col gap-0.5 leading-snug\", className)}\n {...props}\n />\n );\n}\n\nexport function FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n \"flex w-fit gap-2 leading-snug text-foreground group-data-[disabled=true]/field:opacity-50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function FieldTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-title\"\n className={cn(\"flex w-fit items-center gap-2 text-sm font-medium\", className)}\n {...props}\n />\n );\n}\n\nexport function FieldDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n \"text-left text-sm leading-normal text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function FieldSeparator({ className, children, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={Boolean(children) || undefined}\n className={cn(\"relative -my-2 h-5 text-sm\", className)}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children ? (\n <span\n data-slot=\"field-separator-content\"\n className=\"relative mx-auto block w-fit bg-background px-2 text-muted-foreground\"\n >\n {children}\n </span>\n ) : null}\n </div>\n );\n}\n\nexport type FieldErrorProps = React.ComponentProps<\"div\"> & {\n errors?: Array<{ message?: string } | undefined>;\n};\n\nexport function FieldError({ className, children, errors, ...props }: FieldErrorProps) {\n const messages = [...new Set(errors?.flatMap((error) => error?.message ?? []) ?? [])];\n const content =\n children ??\n (messages.length === 1 ? (\n messages[0]\n ) : messages.length > 1 ? (\n <ul className=\"ml-4 list-disc\">\n {messages.map((message) => (\n <li key={message}>{message}</li>\n ))}\n </ul>\n ) : null);\n if (!content) return null;\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn(\"text-sm text-destructive\", className)}\n {...props}\n >\n {content}\n </div>\n );\n}\n","import { forwardRef, type ComponentPropsWithRef } from \"react\";\nimport { Label as LabelPrimitive } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport const Label = forwardRef<HTMLLabelElement, ComponentPropsWithRef<typeof LabelPrimitive>>(function Label({ className, ...props }, ref) {\n return <LabelPrimitive ref={ref} data-slot=\"label\" className={cn(\"flex items-center gap-2 text-sm font-medium leading-none select-none\", className)} {...props} />;\n});\n\nexport type LabelProps = ComponentPropsWithRef<typeof Label>;\n","import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { CheckCircle, LoaderCircle, CircleAlert } from \"lucide-react\";\nimport { cn } from \"../../lib/cn\";\n\nexport type FormFeedbackState = { status: \"idle\" } | { status: \"pending\" } | { status: \"success\"; message?: string } | { status: \"error\"; message: string };\n\nexport function useFormFeedback(options?: { successResetMs?: number }) {\n const resetMs = options?.successResetMs ?? 2500;\n const [state, setState] = useState<FormFeedbackState>({ status: \"idle\" });\n const timer = useRef<ReturnType<typeof setTimeout> | null>(null);\n const clearTimer = useCallback(() => { if (timer.current) clearTimeout(timer.current); timer.current = null; }, []);\n useEffect(() => () => clearTimer(), [clearTimer]);\n const setPending = useCallback(() => { clearTimer(); setState({ status: \"pending\" }); }, [clearTimer]);\n const setSuccess = useCallback((message?: string) => { clearTimer(); setState({ status: \"success\", message }); if (resetMs > 0) timer.current = setTimeout(() => setState({ status: \"idle\" }), resetMs); }, [clearTimer, resetMs]);\n const setError = useCallback((message: string) => { clearTimer(); setState({ status: \"error\", message }); }, [clearTimer]);\n const reset = useCallback(() => { clearTimer(); setState({ status: \"idle\" }); }, [clearTimer]);\n return { state, pending: state.status === \"pending\", setPending, setSuccess, setError, reset };\n}\n\nexport interface FormFeedbackProps { state: FormFeedbackState; className?: string; pendingLabel?: string; successLabel?: string; }\n\nexport function FormFeedback({ state, className, pendingLabel = \"Guardando…\", successLabel = \"Guardado\" }: FormFeedbackProps) {\n if (state.status === \"idle\") return <span aria-hidden=\"true\" className={cn(\"inline-flex h-5 items-center\", className)} />;\n const error = state.status === \"error\";\n const success = state.status === \"success\";\n return <span role={error ? \"alert\" : \"status\"} aria-live=\"polite\" className={cn(\"inline-flex h-5 items-center gap-1.5 text-xs\", error && \"text-destructive\", success && \"text-success\", state.status === \"pending\" && \"text-muted-foreground\", className)}>\n {state.status === \"pending\" && <LoaderCircle aria-hidden=\"true\" className=\"size-3.5 animate-spin\" />}\n {success && <CheckCircle aria-hidden=\"true\" className=\"size-3.5\" />}\n {error && <CircleAlert aria-hidden=\"true\" className=\"size-3.5\" />}\n <span>{state.status === \"pending\" ? pendingLabel : success ? state.message ?? successLabel : state.message}</span>\n </span>;\n}\n","import type { ReactNode } from \"react\";\nimport { cn } from \"../../lib/cn\";\n\nexport interface FormRowProps {\n label: ReactNode;\n htmlFor: string;\n required?: boolean;\n hint?: ReactNode;\n error?: ReactNode;\n className?: string;\n children: ReactNode;\n}\n\nexport function FormRow({ label, htmlFor, required, hint, error, className, children }: FormRowProps) {\n const hintId = hint ? `${htmlFor}-hint` : undefined;\n const errorId = error ? `${htmlFor}-error` : undefined;\n return <div data-slot=\"form-row\" className={cn(\"flex flex-col gap-1.5\", className)}>\n <label htmlFor={htmlFor} className=\"text-sm font-medium text-foreground\">{label}{required && <><span aria-hidden=\"true\" className=\"ml-0.5 text-destructive\">*</span><span className=\"sr-only\"> (obligatorio)</span></>}</label>\n {children}\n {hint && <p id={hintId} className=\"text-xs text-muted-foreground\">{hint}</p>}\n {error && <p id={errorId} role=\"alert\" className=\"text-xs font-medium text-destructive\">{error}</p>}\n </div>;\n}\n","import type { ReactNode } from \"react\";\nimport { Link } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\nimport { Button, type ButtonProps, buttonVariants } from \"../button/button\";\nimport { Tooltip, TooltipTrigger } from \"../tooltip/tooltip\";\n\nexport type IconButtonProps = Omit<ButtonProps, \"children\"> & {\n\t/** Accessible name and text shown in the tooltip. */\n\tlabel: string;\n\t/** Optional href for rendering the action as an accessible link. */\n\thref?: string;\n\tchildren?: ReactNode;\n};\n\n/** A consistently sized icon-only action with an accessible tooltip. */\nexport function IconButton({\n\tlabel,\n\tchildren,\n\thref,\n\tclassName,\n\tvariant,\n\t...props\n}: IconButtonProps) {\n\tconst linkClassName = cn(\n\t\tbuttonVariants({ variant, size: \"icon\" }),\n\t\tclassName,\n\t);\n\n\treturn (\n\t\t<TooltipTrigger>\n\t\t\t{href ? (\n\t\t\t\t<Link\n\t\t\t\t\tdata-slot=\"icon-button\"\n\t\t\t\t\taria-label={label}\n\t\t\t\t\thref={href}\n\t\t\t\t\tclassName={linkClassName}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</Link>\n\t\t\t) : (\n\t\t\t\t<Button\n\t\t\t\t\tdata-slot=\"icon-button\"\n\t\t\t\t\taria-label={label}\n\t\t\t\t\tvariant={variant}\n\t\t\t\t\tsize=\"icon\"\n\t\t\t\t\tclassName={className}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t\t<Tooltip>{label}</Tooltip>\n\t\t</TooltipTrigger>\n\t);\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport {\n Focusable,\n OverlayArrow,\n Tooltip as TooltipPrimitive,\n TooltipTrigger as TooltipTriggerPrimitive,\n} from \"react-aria-components\"\nimport { cn } from \"../../lib/cn\"\n\n\nfunction TooltipTrigger({\n delay = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipTriggerPrimitive>) {\n const [trigger, tooltip] = React.Children.toArray(children)\n\n return (\n <TooltipTriggerPrimitive\n data-slot=\"tooltip-trigger\"\n delay={delay}\n {...props}\n >\n <Focusable>\n {trigger as React.ComponentProps<typeof Focusable>[\"children\"]}\n </Focusable>\n {tooltip}\n </TooltipTriggerPrimitive>\n )\n}\n\nfunction Tooltip({\n className,\n placement = \"top\",\n offset = 4,\n crossOffset = 0,\n children,\n ...props\n}: Omit<\n React.ComponentProps<typeof TooltipPrimitive>,\n \"children\" | \"className\"\n> & {\n className?: string\n children?: React.ReactNode\n}) {\n return (\n <TooltipPrimitive\n data-slot=\"tooltip-content\"\n placement={placement}\n offset={offset}\n crossOffset={crossOffset}\n className={cn(\n \"z-50 inline-flex w-fit max-w-xs origin-(--trigger-anchor-point) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background shadow-md outline-none motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out has-data-[slot=kbd]:pr-1.5 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm\",\n className\n )}\n {...props}\n >\n {children}\n <OverlayArrow\n className=\"z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-xs bg-foreground fill-foreground\"\n style={({ placement, defaultStyle }) => ({\n ...defaultStyle,\n rotate: \"0deg\",\n translate: \"0 0\",\n transform:\n placement === \"bottom\"\n ? \"translate(-50%, calc(50% + 2px)) rotate(45deg)\"\n : placement === \"top\"\n ? \"translate(-50%, calc(-50% - 2px)) rotate(45deg)\"\n : placement === \"left\"\n ? \"translate(calc(-50% - 2px), -50%) rotate(45deg)\"\n : \"translate(calc(50% + 2px), -50%) rotate(45deg)\",\n })}\n />\n </TooltipPrimitive>\n )\n}\n\nexport { Tooltip, TooltipTrigger }\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/cn\";\nimport { Button, type ButtonProps } from \"../button/button\";\nimport { Input } from \"../input/input\";\nimport { Textarea } from \"../textarea/textarea\";\n\nexport function InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n // biome-ignore lint/a11y/useSemanticElements: fieldset cannot preserve this inline control composition.\n <div\n role=\"group\"\n data-slot=\"input-group\"\n className={cn(\n \"group/input-group relative flex min-h-8 w-full min-w-0 items-center rounded-lg border border-border transition-colors outline-none has-disabled:bg-muted/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align^=block]]:h-auto has-[>[data-align^=block]]:flex-col\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport const inputGroupAddonVariants = cva(\n \"flex cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\": \"order-first pl-2\",\n \"inline-end\": \"order-last pr-2\",\n \"block-start\": \"order-first w-full justify-start px-2.5 pt-2\",\n \"block-end\": \"order-last w-full justify-start px-2.5 pb-2\",\n },\n },\n defaultVariants: { align: \"inline-start\" },\n },\n);\nexport function InputGroupAddon({\n className,\n align = \"inline-start\",\n onClick,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n // biome-ignore lint/a11y/useSemanticElements: this addon delegates focus to its associated input.\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented && !(event.target as HTMLElement).closest(\"button\"))\n event.currentTarget.parentElement?.querySelector<HTMLElement>(\"input, textarea\")?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\"shrink-0 shadow-none\", {\n variants: {\n size: { xs: \"h-6 px-1.5 text-xs\", sm: \"h-7 px-2\", \"icon-xs\": \"size-6\", \"icon-sm\": \"size-7\" },\n },\n defaultVariants: { size: \"xs\" },\n});\nexport type InputGroupButtonProps = Omit<ButtonProps, \"size\"> &\n VariantProps<typeof inputGroupButtonVariants>;\nexport function InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: InputGroupButtonProps) {\n const buttonSize = size === \"icon-xs\" || size === \"icon-sm\" ? size : size;\n return (\n <Button\n data-slot=\"input-group-button\"\n type={type}\n size={buttonSize}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nexport function InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"input-group-text\"\n className={cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function InputGroupInput({ className, ...props }: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function InputGroupTextarea({ className, ...props }: React.ComponentProps<typeof Textarea>) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0\",\n className,\n )}\n {...props}\n />\n );\n}\n","import { forwardRef } from \"react\";\nimport { Input as AriaInput, type InputProps as AriaInputProps } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\ntype CompatibleRef<T> = ((instance: T | null) => unknown) | { readonly current: T | null } | null;\n\nexport type InputProps = Omit<AriaInputProps, \"ref\"> & { ref?: CompatibleRef<HTMLInputElement> };\n\nconst InputImpl = forwardRef<HTMLInputElement, AriaInputProps>(function Input({ className, type, ...props }, ref) {\n return <AriaInput ref={ref} type={type} data-slot=\"input\" className={cn(\"h-8 w-full min-w-0 rounded-lg border border-border bg-background px-2.5 py-1 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive\", className)} {...props} />;\n});\n\n/** Forward-ref component with a ref type compatible across React 19 type releases. */\nexport const Input = InputImpl as unknown as (props: InputProps) => ReturnType<typeof InputImpl>;\n","import { forwardRef } from \"react\";\nimport { TextArea as AriaTextArea, type TextAreaProps as AriaTextAreaProps } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\ntype CompatibleRef<T> = ((instance: T | null) => unknown) | { readonly current: T | null } | null;\n\nexport type TextareaProps = Omit<AriaTextAreaProps, \"ref\"> & { ref?: CompatibleRef<HTMLTextAreaElement> };\n\nconst TextareaImpl = forwardRef<HTMLTextAreaElement, AriaTextAreaProps>(function Textarea({ className, ...props }, ref) {\n return <AriaTextArea ref={ref} data-slot=\"textarea\" className={cn(\"min-h-20 w-full rounded-lg border border-border bg-background px-2.5 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive\", className)} {...props} />;\n});\n\n/** Forward-ref component with a ref type compatible across React 19 type releases. */\nexport const Textarea = TextareaImpl as unknown as (props: TextareaProps) => ReturnType<typeof TextareaImpl>;\n","import type * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\n\nexport function Kbd({ className, ...props }: React.ComponentProps<\"kbd\">) {\n return <kbd data-slot=\"kbd\" className={cn(\"pointer-events-none inline-flex h-5 min-w-5 items-center justify-center gap-1 rounded-sm bg-muted px-1 font-sans text-xs font-medium text-muted-foreground select-none\", className)} {...props} />;\n}\n\nexport function KbdGroup({ className, ...props }: React.ComponentProps<\"span\">) {\n return <span data-slot=\"kbd-group\" className={cn(\"inline-flex items-center gap-1\", className)} {...props} />;\n}\n","import type * as React from \"react\";\nimport { LoaderCircle } from \"lucide-react\";\nimport { cn } from \"../../lib/cn\";\nexport function LoadingOverlay({ label = \"Cargando\", className, ...props }: React.ComponentProps<\"div\"> & { label?: string }) { return <div role=\"status\" aria-live=\"polite\" className={cn(\"absolute inset-0 z-10 flex items-center justify-center bg-background/70 backdrop-blur-[2px]\", className)} {...props}><div className=\"flex items-center gap-2 rounded-lg border border-border bg-background px-3 py-2 text-sm shadow-sm\"><LoaderCircle className=\"animate-spin\" aria-hidden=\"true\" /><span>{label}</span></div></div>; }\n","import {\n Menu as AriaMenu,\n MenuItem as AriaMenuItem,\n MenuTrigger as AriaMenuTrigger,\n Popover,\n type MenuItemProps,\n type MenuProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport const MenuTrigger = AriaMenuTrigger;\n\nexport function MenuContent({ className, ...props }: React.ComponentProps<typeof Popover>) {\n return <Popover data-slot=\"menu-content\" className={cn(\"min-w-40 overflow-hidden rounded-xl border border-border bg-background p-1.5 text-foreground shadow-lg motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out\", className)} {...props} />;\n}\n\nexport function Menu<T extends object>({ className, ...props }: MenuProps<T>) {\n return <AriaMenu data-slot=\"menu\" className={cn(\"outline-none\", className)} {...props} />;\n}\n\nexport function MenuItem<T extends object>({ className, children, ...props }: MenuItemProps<T>) {\n return <AriaMenuItem data-slot=\"menu-item\" className={cn(\"flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none data-focused:bg-muted data-disabled:pointer-events-none data-disabled:opacity-50\", className)} {...props}>{children}</AriaMenuItem>;\n}\n","import {\n forwardRef,\n type PointerEvent as ReactPointerEvent,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { Input as AriaInput, type InputProps as AriaInputProps } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\ntype CompatibleRef<T> = ((instance: T | null) => unknown) | { readonly current: T | null } | null;\n\nexport type OtpInputProps = Omit<\n AriaInputProps,\n \"children\" | \"className\" | \"defaultValue\" | \"maxLength\" | \"onChange\" | \"type\" | \"value\"\n> & {\n /** Number of numeric characters in the code. */\n length?: number;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n onComplete?: (value: string) => void;\n className?: string;\n inputClassName?: string;\n ref?: CompatibleRef<HTMLInputElement>;\n};\n\nfunction normalizeOtp(value: string, length: number) {\n return value.replace(/[^0-9]/g, \"\").slice(0, length);\n}\n\nconst OtpInputImpl = forwardRef<HTMLInputElement, OtpInputProps>(function OtpInput(\n {\n length = 6,\n value,\n defaultValue = \"\",\n onChange,\n onComplete,\n className,\n inputClassName,\n disabled,\n onBlur,\n onFocus,\n onKeyUp,\n onSelect,\n ...props\n },\n forwardedRef,\n) {\n const slotCount = Math.max(1, Math.floor(length));\n const controlled = value !== undefined;\n const [internalValue, setInternalValue] = useState(() => normalizeOtp(defaultValue, slotCount));\n const code = normalizeOtp(controlled ? value : internalValue, slotCount);\n const slots = Array.from({ length: slotCount }, (_, index) => `otp-slot-${index + 1}`);\n const inputRef = useRef<HTMLInputElement>(null);\n const [focused, setFocused] = useState(false);\n const [selectionStart, setSelectionStart] = useState(0);\n const invalid = props[\"aria-invalid\"] === true || props[\"aria-invalid\"] === \"true\";\n const activeIndex =\n code.length === slotCount\n ? slotCount - 1\n : Math.min(selectionStart, code.length, slotCount - 1);\n\n useImperativeHandle(forwardedRef, () => inputRef.current as HTMLInputElement);\n\n function updateSelection(input: HTMLInputElement) {\n setSelectionStart(input.selectionStart ?? code.length);\n }\n\n function commitValue(rawValue: string) {\n const nextValue = normalizeOtp(rawValue, slotCount);\n if (!controlled) setInternalValue(nextValue);\n if (nextValue === code) return;\n onChange?.(nextValue);\n if (nextValue.length === slotCount) onComplete?.(nextValue);\n }\n\n function handlePointerDown(event: ReactPointerEvent<HTMLDivElement>) {\n if (disabled) return;\n event.preventDefault();\n const input = inputRef.current;\n if (!input) return;\n const bounds = event.currentTarget.getBoundingClientRect();\n const offset = bounds.width > 0 ? (event.clientX - bounds.left) / bounds.width : 1;\n const position = Math.min(Math.max(Math.floor(offset * slotCount), 0), code.length);\n input.focus();\n input.setSelectionRange(position, position);\n setSelectionStart(position);\n }\n\n return (\n <div\n data-slot=\"otp-input\"\n data-disabled={disabled || undefined}\n data-invalid={invalid || undefined}\n className={cn(\"relative inline-grid max-w-full gap-2\", className)}\n style={{ gridTemplateColumns: `repeat(${slotCount}, minmax(0, 2.5rem))` }}\n onPointerDown={handlePointerDown}\n >\n <AriaInput\n {...props}\n ref={inputRef}\n type=\"text\"\n inputMode={props.inputMode ?? \"numeric\"}\n autoComplete={props.autoComplete ?? \"one-time-code\"}\n pattern={props.pattern ?? \"[0-9]*\"}\n maxLength={slotCount}\n value={code}\n disabled={disabled}\n data-slot=\"otp-input-control\"\n className={cn(\n \"absolute inset-0 z-10 size-full cursor-text appearance-none rounded-lg border-0 bg-transparent text-base text-transparent caret-transparent outline-none selection:bg-transparent disabled:cursor-not-allowed\",\n inputClassName,\n )}\n onChange={(event) => {\n commitValue(event.currentTarget.value);\n updateSelection(event.currentTarget);\n }}\n onFocus={(event) => {\n setFocused(true);\n updateSelection(event.currentTarget);\n onFocus?.(event);\n }}\n onBlur={(event) => {\n setFocused(false);\n onBlur?.(event);\n }}\n onSelect={(event) => {\n updateSelection(event.currentTarget);\n onSelect?.(event);\n }}\n onKeyUp={(event) => {\n updateSelection(event.currentTarget);\n onKeyUp?.(event);\n }}\n />\n {slots.map((slot, index) => (\n <span\n key={slot}\n aria-hidden=\"true\"\n data-slot=\"otp-input-slot\"\n data-active={(focused && index === activeIndex) || undefined}\n className={cn(\n \"pointer-events-none grid size-10 place-items-center rounded-lg border border-border bg-background text-base font-medium tabular-nums text-foreground transition-[border-color,box-shadow]\",\n focused && index === activeIndex && \"border-ring ring-3 ring-ring/50\",\n invalid && \"border-destructive\",\n disabled && \"opacity-50\",\n )}\n >\n {code[index] ?? \"\"}\n </span>\n ))}\n </div>\n );\n});\n\n/** A single accessible input visually split into slots for numeric one-time codes. */\nexport const OtpInput = OtpInputImpl as unknown as (\n props: OtpInputProps,\n) => ReturnType<typeof OtpInputImpl>;\n","import type * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\n\nexport function PageHeader({ className, ...props }: React.ComponentProps<\"header\">) {\n return <header data-slot=\"page-header\" className={cn(\"flex flex-col gap-4 py-2 sm:flex-row sm:items-center sm:justify-between\", className)} {...props} />;\n}\nexport function PageHeaderHeading({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"page-header-heading\" className={cn(\"min-w-0\", className)} {...props} />;\n}\nexport function PageHeaderTitle({ className, ...props }: React.ComponentProps<\"h1\">) {\n return <h1 data-slot=\"page-header-title\" className={cn(\"truncate text-xl font-semibold tracking-tight md:text-2xl\", className)} {...props} />;\n}\nexport function PageHeaderDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return <p data-slot=\"page-header-description\" className={cn(\"mt-1 text-sm text-muted-foreground\", className)} {...props} />;\n}\nexport function PageHeaderActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"page-header-actions\" className={cn(\"flex shrink-0 items-center gap-2\", className)} {...props} />;\n}\n","import { ChevronLeft, ChevronRight } from \"lucide-react\";\nimport { Button } from \"../button/button\";\nimport { cn } from \"../../lib/cn\";\nexport type PaginationProps = { page: number; pageCount: number; onPageChange: (page: number) => void; className?: string };\nexport function Pagination({ page, pageCount, onPageChange, className }: PaginationProps) {\n const pages = Array.from({ length: pageCount }, (_, index) => index + 1);\n return <nav aria-label=\"Paginación\" className={cn(\"flex items-center justify-between gap-4\", className)}><p className=\"text-sm text-muted-foreground\">Página {page} de {pageCount}</p><div className=\"flex items-center gap-1\"><Button aria-label=\"Página anterior\" isDisabled={page <= 1} onPress={() => onPageChange(page - 1)} size=\"icon\" variant=\"ghost\"><ChevronLeft /></Button>{pages.map((item) => <Button key={item} aria-current={item === page ? \"page\" : undefined} aria-label={`Página ${item}`} onPress={() => onPageChange(item)} size=\"icon\" variant={item === page ? \"secondary\" : \"ghost\"}>{item}</Button>)}<Button aria-label=\"Página siguiente\" isDisabled={page >= pageCount} onPress={() => onPageChange(page + 1)} size=\"icon\" variant=\"ghost\"><ChevronRight /></Button></div></nav>;\n}\n","import {\n DialogTrigger as AriaDialogTrigger,\n Popover as AriaPopover,\n type DialogTriggerProps,\n type PopoverProps as AriaPopoverProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport type PopoverProps = Omit<AriaPopoverProps, \"className\"> & { className?: string };\nexport type { DialogTriggerProps as PopoverTriggerProps };\n\n/** Wrap a trigger and Popover surface; React Aria handles focus and positioning. */\nexport const PopoverTrigger = AriaDialogTrigger;\n\nexport function Popover({ className, ...props }: PopoverProps) {\n return <AriaPopover data-slot=\"popover\" offset={6} className={cn(\"min-w-48 rounded-xl border border-border bg-background p-1.5 text-foreground shadow-lg outline-none motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out\", className)} {...props} />;\n}\n\nexport const PopoverContent = Popover;\n","import { Minus, Plus } from \"lucide-react\";\nimport {\n Button as AriaButton,\n Group as AriaGroup,\n Input as AriaInput,\n NumberField as AriaNumberField,\n type NumberFieldProps as AriaNumberFieldProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport type QuantityInputProps = Omit<AriaNumberFieldProps, \"children\" | \"className\"> & {\n className?: string;\n inputClassName?: string;\n decrementAriaLabel?: string;\n incrementAriaLabel?: string;\n};\n\n/** A compact quantity control with accessible stepper buttons and numeric keyboard support. */\nexport function QuantityInput({\n className,\n inputClassName,\n decrementAriaLabel = \"Disminuir cantidad\",\n incrementAriaLabel = \"Aumentar cantidad\",\n minValue = 0,\n step = 1,\n ...props\n}: QuantityInputProps) {\n return (\n <AriaNumberField\n {...props}\n minValue={minValue}\n step={step}\n data-slot=\"quantity-input\"\n className={cn(\"group/quantity-input inline-flex min-w-0 data-disabled:cursor-not-allowed data-disabled:opacity-50\", className)}\n >\n <AriaGroup\n data-slot=\"quantity-input-group\"\n className=\"flex h-8 min-w-0 items-stretch overflow-hidden rounded-lg border border-border bg-background text-foreground transition-[border-color,box-shadow] focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 group-data-invalid/quantity-input:border-destructive\"\n >\n <AriaButton slot=\"decrement\" aria-label={decrementAriaLabel} data-slot=\"quantity-input-decrement\" className=\"flex size-8 shrink-0 cursor-pointer items-center justify-center border-r border-border text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground data-focus-visible:bg-muted data-pressed:bg-muted data-disabled:pointer-events-none\">\n <Minus aria-hidden=\"true\" className=\"size-4\" />\n </AriaButton>\n <AriaInput data-slot=\"quantity-input-value\" className={cn(\"w-14 min-w-0 bg-transparent px-1 text-center text-sm tabular-nums outline-none\", inputClassName)} />\n <AriaButton slot=\"increment\" aria-label={incrementAriaLabel} data-slot=\"quantity-input-increment\" className=\"flex size-8 shrink-0 cursor-pointer items-center justify-center border-l border-border text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground data-focus-visible:bg-muted data-pressed:bg-muted data-disabled:pointer-events-none\">\n <Plus aria-hidden=\"true\" className=\"size-4\" />\n </AriaButton>\n </AriaGroup>\n </AriaNumberField>\n );\n}","import {\n SearchField as AriaSearchField,\n Button,\n Input,\n type SearchFieldProps as AriaSearchFieldProps,\n type ButtonProps,\n type InputProps,\n} from \"react-aria-components\";\nimport { X } from \"lucide-react\";\nimport { cn } from \"../../lib/cn\";\n\nexport const SearchField = AriaSearchField;\nexport type { AriaSearchFieldProps as SearchFieldProps };\n\nexport function SearchInput({ className, ...props }: InputProps) {\n return <Input data-slot=\"search-input\" className={cn(\"h-8 w-full min-w-0 rounded-lg border border-border bg-background px-2.5 py-1 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-3 focus-visible:ring-ring/50\", className)} {...props} />;\n}\n\nexport function SearchClearButton({ className, children = <X aria-hidden=\"true\" className=\"size-4\" />, ...props }: Omit<ButtonProps, \"className\"> & { className?: string }) {\n return <Button slot=\"clear\" data-slot=\"search-clear\" className={cn(\"absolute top-1/2 right-1 rounded p-1 text-muted-foreground outline-none hover:bg-muted data-focus-visible:ring-2 data-focus-visible:ring-ring\", className)} {...props}>{children}</Button>;\n}\n","import {\n Button as AriaButton,\n Select as AriaSelect,\n SelectValue as AriaSelectValue,\n ListBox,\n ListBoxItem,\n Popover,\n type SelectProps as AriaSelectProps,\n type ButtonProps,\n type ListBoxItemProps,\n type ListBoxProps,\n} from \"react-aria-components\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from \"../../lib/cn\";\n\nexport const Select = AriaSelect;\nexport type { AriaSelectProps as SelectProps };\n\nexport function SelectTrigger({ className, children, ...props }: ButtonProps) {\n return <AriaButton data-slot=\"select-trigger\" className={cn(\"group/select-trigger flex h-8 w-full min-w-36 items-center gap-2 rounded-lg border border-border bg-background px-2.5 text-left text-sm text-foreground outline-none data-focus-visible:ring-3 data-focus-visible:ring-ring/50 data-disabled:cursor-not-allowed data-disabled:opacity-50\", className)} {...props}>{(state) => <>{typeof children === \"function\" ? children(state) : children}<ChevronDown aria-hidden=\"true\" className=\"ml-auto size-4 text-muted-foreground transition-transform group-data-pressed/select-trigger:rotate-180 motion-reduce:transition-none\" /></>}</AriaButton>;\n}\n\nexport function SelectValue({ className, ...props }: React.ComponentProps<typeof AriaSelectValue>) {\n return <AriaSelectValue data-slot=\"select-value\" className={cn(\"flex-1 truncate data-placeholder:text-muted-foreground\", className)} {...props} />;\n}\n\nexport function SelectContent({ className, ...props }: React.ComponentProps<typeof Popover>) {\n return <Popover data-slot=\"select-content\" className={cn(\"w-(--trigger-width) overflow-hidden rounded-xl border border-border bg-background p-1.5 text-foreground shadow-lg motion-safe:data-entering:animate-ui-surface-in motion-safe:data-exiting:animate-ui-surface-out\", className)} {...props} />;\n}\n\nexport function SelectList<T extends object>({ className, ...props }: ListBoxProps<T>) {\n return <ListBox data-slot=\"select-list\" className={cn(\"max-h-64 overflow-y-auto\", className)} {...props} />;\n}\n\nexport function SelectItem<T extends object>({ className, children, ...props }: ListBoxItemProps<T>) {\n return <ListBoxItem data-slot=\"select-item\" className={cn(\"flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none data-focused:bg-muted data-selected:bg-muted data-disabled:pointer-events-none data-disabled:opacity-50\", className)} {...props}>{children}</ListBoxItem>;\n}\n","\"use client\";\n\nimport { XIcon } from \"lucide-react\";\nimport type * as React from \"react\";\nimport {\n Heading,\n ModalOverlay as ModalOverlayPrimitive,\n type ModalOverlayProps as ModalOverlayPrimitiveProps,\n Modal as ModalPrimitive,\n Dialog as SheetPrimitive,\n type DialogProps as SheetPrimitiveProps,\n DialogTrigger as SheetTriggerPrimitive,\n type DialogTriggerProps as SheetTriggerPrimitiveProps,\n Text,\n} from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\nimport { Button, type ButtonProps } from \"../button/button\";\n\nfunction SheetTrigger({ ...props }: SheetTriggerPrimitiveProps) {\n return <SheetTriggerPrimitive data-slot=\"sheet-trigger\" {...props} />;\n}\n\nfunction SheetClose({ className, variant = \"outline\", size = \"default\", ...props }: ButtonProps) {\n return (\n <Button\n slot=\"close\"\n data-slot=\"sheet-close\"\n variant={variant}\n size={size}\n className={cn(className)}\n {...props}\n />\n );\n}\n\nfunction SheetOverlay({\n className,\n children,\n ...props\n}: Omit<ModalOverlayPrimitiveProps, \"className\" | \"children\"> & {\n className?: string;\n children: React.ReactNode;\n}) {\n return (\n <ModalOverlayPrimitive\n data-slot=\"sheet-overlay\"\n isDismissable\n className={cn(\n \"fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-entering:opacity-0 data-exiting:opacity-0 supports-backdrop-filter:backdrop-blur-xs\",\n className,\n )}\n {...props}\n >\n {children}\n </ModalOverlayPrimitive>\n );\n}\n\nfunction Sheet({\n className,\n children,\n side = \"right\",\n showCloseButton = true,\n ...props\n}: Omit<ModalOverlayPrimitiveProps, \"className\" | \"children\"> &\n Pick<React.ComponentProps<typeof ModalPrimitive>, \"isDismissable\"> & {\n className?: string;\n children: React.ReactNode;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n showCloseButton?: boolean;\n }) {\n return (\n <SheetOverlay {...props}>\n <ModalPrimitive\n data-slot=\"sheet-content\"\n data-side={side}\n className={cn(\n \"fixed z-50 flex flex-col gap-4 border-border bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-entering:opacity-0 data-exiting:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-entering:translate-y-10 data-[side=bottom]:data-exiting:translate-y-10 data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-entering:-translate-x-10 data-[side=left]:data-exiting:-translate-x-10 data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-entering:translate-x-10 data-[side=right]:data-exiting:translate-x-10 data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-entering:-translate-y-10 data-[side=top]:data-exiting:-translate-y-10 data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm\",\n className,\n )}\n >\n <SheetPrimitive\n data-slot=\"sheet\"\n className=\"[display:inherit] h-full max-h-[inherit] [flex-direction:inherit] gap-[inherit] outline-none\"\n >\n {children}\n {showCloseButton && (\n <SheetClose variant=\"ghost\" className=\"absolute top-3 right-3\" size=\"icon-sm\">\n <XIcon />\n <span className=\"sr-only\">Cerrar</span>\n </SheetClose>\n )}\n </SheetPrimitive>\n </ModalPrimitive>\n </SheetOverlay>\n );\n}\n\nfunction SheetContent({\n className,\n children,\n side = \"right\",\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof Sheet> & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n showCloseButton?: boolean;\n}) {\n return (\n <Sheet className={className} side={side} showCloseButton={showCloseButton} {...props}>\n {children}\n </Sheet>\n );\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\"flex flex-col gap-0.5 p-4\", className)}\n {...props}\n />\n );\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n );\n}\n\nfunction SheetTitle({ className, ...props }: Omit<React.ComponentProps<typeof Heading>, \"slot\">) {\n return (\n <Heading\n slot=\"title\"\n data-slot=\"sheet-title\"\n className={cn(\"text-base font-medium text-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: Omit<React.ComponentProps<typeof Text>, \"slot\">) {\n return (\n <Text\n slot=\"description\"\n data-slot=\"sheet-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Sheet,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n type SheetPrimitiveProps,\n SheetTitle,\n SheetTrigger,\n type SheetTriggerPrimitiveProps,\n};\n","import {\n\tChevronLeft,\n\tChevronRight,\n\tEllipsis,\n\tSearch,\n} from \"lucide-react\";\nimport {\n\tcreateContext,\n\ttype ReactNode,\n\tuseContext,\n\tuseMemo,\n\tuseState,\n} from \"react\";\nimport { Link, type LinkProps } from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\nimport { Button, type ButtonProps } from \"../button/button\";\n\ntype SidebarContextValue = {\n\tcollapsed: boolean;\n\tsetCollapsed: (value: boolean) => void;\n\ttoggle: () => void;\n};\nconst SidebarContext = createContext<SidebarContextValue | null>(null);\n\nexport function useSidebar() {\n\tconst context = useContext(SidebarContext);\n\tif (!context)\n\t\tthrow new Error(\"useSidebar must be used inside SidebarProvider\");\n\treturn context;\n}\n\nexport function SidebarProvider({\n\tdefaultCollapsed = false,\n\tchildren,\n}: {\n\tdefaultCollapsed?: boolean;\n\tchildren: ReactNode;\n}) {\n\tconst [collapsed, setCollapsed] = useState(defaultCollapsed);\n\tconst value = useMemo(\n\t\t() => ({\n\t\t\tcollapsed,\n\t\t\tsetCollapsed,\n\t\t\ttoggle: () => setCollapsed((current) => !current),\n\t\t}),\n\t\t[collapsed],\n\t);\n\treturn (\n\t\t<SidebarContext.Provider value={value}>{children}</SidebarContext.Provider>\n\t);\n}\n\nexport function Sidebar({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"aside\">) {\n\tconst { collapsed } = useSidebar();\n\treturn (\n\t\t<aside\n\t\t\tdata-slot=\"sidebar\"\n\t\t\tdata-collapsed={collapsed || undefined}\n\t\t\tclassName={cn(\n\t\t\t\t\"group/sidebar flex h-full w-56 shrink-0 flex-col border-r border-border bg-card text-foreground transition-[width] duration-200 ease-out motion-reduce:transition-none data-[collapsed]:w-16\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function SidebarHeader({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-header\"\n\t\t\tclassName={cn(\"flex items-center gap-2 px-4 py-5\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function SidebarSearch({\n\tlabel = \"Buscar…\",\n\tshortcut = \"⌘K\",\n\tclassName,\n\t...props\n}: React.ComponentProps<\"button\"> & { label?: string; shortcut?: string }) {\n\treturn (\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tdata-slot=\"sidebar-search\"\n\t\t\tclassName={cn(\n\t\t\t\t\"group flex w-full items-center gap-2 rounded-md border border-border bg-background px-2.5 py-1.5 text-sm text-muted-foreground transition-colors hover:border-primary/40 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<Search className=\"size-4 shrink-0\" />\n\t\t\t<span className=\"flex-1 text-left\">{label}</span>\n\t\t\t<kbd className=\"rounded bg-secondary px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground\">\n\t\t\t\t{shortcut}\n\t\t\t</kbd>\n\t\t</button>\n\t);\n}\n\nexport function SidebarContent({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"nav\">) {\n\treturn (\n\t\t<nav\n\t\t\tdata-slot=\"sidebar-content\"\n\t\t\taria-label=\"Navegación principal\"\n\t\t\tclassName={cn(\"min-h-0 flex-1 overflow-y-auto px-2 py-1\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function SidebarFooter({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-footer\"\n\t\t\tclassName={cn(\n\t\t\t\t\"mt-auto flex flex-col gap-2 border-t border-border p-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function SidebarGroup({\n\tlabel,\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<\"section\"> & { label?: string }) {\n\tconst { collapsed } = useSidebar();\n\treturn (\n\t\t<section\n\t\t\tdata-slot=\"sidebar-group\"\n\t\t\tclassName={cn(\"mb-4 last:mb-0\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{label && (\n\t\t\t\t<h2\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"mb-1 px-3 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground\",\n\t\t\t\t\t\tcollapsed && \"sr-only\",\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{label}\n\t\t\t\t</h2>\n\t\t\t)}\n\t\t\t{children}\n\t\t</section>\n\t);\n}\n\nexport type SidebarItemProps = LinkProps & {\n\ticon?: ReactNode;\n\tactive?: boolean;\n\tbadge?: ReactNode;\n\tlabel?: string;\n};\nexport function SidebarItem({\n\ticon,\n\tactive,\n\tbadge,\n\tlabel,\n\tchildren,\n\tclassName,\n\t...props\n}: SidebarItemProps) {\n\tconst { collapsed } = useSidebar();\n\tconst content = typeof children === \"function\" ? label : (children ?? label);\n\treturn (\n\t\t<Link\n\t\t\tdata-slot=\"sidebar-item\"\n\t\t\taria-current={active ? \"page\" : undefined}\n\t\t\taria-label={collapsed && label ? label : undefined}\n\t\t\tclassName={cn(\n\t\t\t\t\"group/item relative flex min-h-9 items-center gap-2.5 rounded-md px-2.5 py-2 text-sm text-muted-foreground outline-none transition-[background-color,color,transform] duration-150 hover:bg-secondary/60 hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring/40 data-[current=page]:bg-secondary data-[current=page]:font-medium data-[current=page]:text-foreground data-pressed:scale-[0.98] motion-reduce:transition-none\",\n\t\t\t\tcollapsed && \"justify-center px-0\",\n\t\t\t\ttypeof className === \"function\" ? className : className,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{(values) => (\n\t\t\t\t<>\n\t\t\t\t\t<span className=\"flex size-4 shrink-0 items-center justify-center\">\n\t\t\t\t\t\t{icon}\n\t\t\t\t\t</span>\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={cn(\"min-w-0 flex-1 truncate\", collapsed && \"sr-only\")}\n\t\t\t\t\t>\n\t\t\t\t\t\t{typeof children === \"function\" ? children(values) : content}\n\t\t\t\t\t</span>\n\t\t\t\t\t{badge && !collapsed && (\n\t\t\t\t\t\t<span className=\"text-xs text-muted-foreground\">{badge}</span>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</Link>\n\t);\n}\n\nexport function SidebarSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"hr\">) {\n\treturn (\n\t\t<hr\n\t\t\tdata-slot=\"sidebar-separator\"\n\t\t\tclassName={cn(\"my-2 h-px border-0 bg-border\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function SidebarTrigger({ className, ...props }: ButtonProps) {\n\tconst { collapsed, toggle } = useSidebar();\n\treturn (\n\t\t<Button\n\t\t\taria-label={collapsed ? \"Expandir navegación\" : \"Colapsar navegación\"}\n\t\t\tonPress={toggle}\n\t\t\tsize=\"icon\"\n\t\t\tvariant=\"ghost\"\n\t\t\tclassName={cn(\"ml-auto\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{collapsed ? <ChevronRight /> : <ChevronLeft />}\n\t\t</Button>\n\t);\n}\n\nexport function SidebarRail({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"button\">) {\n\tconst { toggle } = useSidebar();\n\treturn (\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\taria-label=\"Alternar navegación\"\n\t\t\tonClick={toggle}\n\t\t\tclassName={cn(\n\t\t\t\t\"absolute inset-y-0 right-0 z-20 hidden w-1 -translate-x-1/2 cursor-ew-resize bg-transparent transition-colors hover:bg-border lg:block\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function SidebarMore({ className, ...props }: ButtonProps) {\n\treturn (\n\t\t<Button\n\t\t\taria-label=\"Más opciones\"\n\t\t\tsize=\"icon\"\n\t\t\tvariant=\"ghost\"\n\t\t\tclassName={cn(\"size-7\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<Ellipsis />\n\t\t</Button>\n\t);\n}\n","import type * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\n\nexport function Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div aria-hidden=\"true\" data-slot=\"skeleton\" className={cn(\"animate-pulse rounded-md bg-muted\", className)} {...props} />;\n}\n","import { useFormStatus } from \"react-dom\";\nimport { LoaderCircle } from \"lucide-react\";\nimport { Button, type ButtonProps } from \"../button/button\";\n\nexport interface SubmitButtonProps extends Omit<ButtonProps, \"type\"> { pendingLabel?: string; loading?: boolean; children: React.ReactNode; }\n\nexport function SubmitButton({ pendingLabel = \"Guardando…\", loading = false, children, isDisabled, size = \"sm\", ...props }: SubmitButtonProps) {\n const { pending } = useFormStatus();\n const busy = pending || loading;\n return <Button type=\"submit\" size={size} isDisabled={busy || isDisabled} aria-busy={busy || undefined} {...props}>{busy ? <><LoaderCircle aria-hidden=\"true\" className=\"size-3.5 animate-spin\" />{pendingLabel}</> : children}</Button>;\n}\n","\"use client\";\n\nimport { useEffect, useRef, type ReactNode } from \"react\";\nimport {\n Switch as AriaSwitch,\n type SwitchProps as AriaSwitchProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nconst switchSizes = {\n sm: {\n control: \"h-4 w-[1.875rem] p-0.5\",\n thumb: \"h-3\",\n idleWidth: \"0.75rem\",\n activeWidth: \"1rem\",\n selectedOffset: \"0.875rem\",\n activeSelectedOffset: \"0.625rem\",\n },\n md: {\n control: \"h-5 w-9 p-0.5\",\n thumb: \"h-4\",\n idleWidth: \"1rem\",\n activeWidth: \"1.25rem\",\n selectedOffset: \"1rem\",\n activeSelectedOffset: \"0.75rem\",\n },\n lg: {\n control: \"h-6 w-11 p-0.5\",\n thumb: \"h-5\",\n idleWidth: \"1.25rem\",\n activeWidth: \"1.5rem\",\n selectedOffset: \"1.25rem\",\n activeSelectedOffset: \"1rem\",\n },\n} as const;\n\nexport type SwitchProps = Omit<AriaSwitchProps, \"className\"> & {\n className?: string;\n size?: keyof typeof switchSizes;\n description?: ReactNode;\n icon?: ReactNode;\n selectedIcon?: ReactNode;\n};\n\n/** Accessible React Aria switch with semantic tokens and a compact capsule thumb. */\nexport function Switch({\n className,\n children,\n description,\n icon,\n inputRef,\n isDisabled,\n isReadOnly,\n selectedIcon,\n size = \"sm\",\n ...props\n}: SwitchProps) {\n const styles = switchSizes[size];\n const fallbackInputRef = useRef<HTMLInputElement>(null);\n const resolvedInputRef = inputRef ?? fallbackInputRef;\n\n useEffect(() => {\n const input = resolvedInputRef.current;\n if (!input) return;\n\n const handleDirectionalKey = (event: KeyboardEvent) => {\n if (\n event.target !== input || event.defaultPrevented || isDisabled || isReadOnly ||\n event.altKey || event.ctrlKey || event.metaKey || event.shiftKey\n ) return;\n\n const nextSelected = event.key === \"ArrowRight\" ? true : event.key === \"ArrowLeft\" ? false : null;\n if (nextSelected === null) return;\n\n event.preventDefault();\n if (input.checked !== nextSelected) input.click();\n };\n\n const ownerDocument = input.ownerDocument;\n ownerDocument.addEventListener(\"keydown\", handleDirectionalKey);\n return () => ownerDocument.removeEventListener(\"keydown\", handleDirectionalKey);\n }, [isDisabled, isReadOnly, resolvedInputRef]);\n\n return (\n <AriaSwitch\n data-slot=\"switch\"\n data-size={size}\n inputRef={resolvedInputRef}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n className={cn(\n \"group/switch inline-flex cursor-pointer items-center gap-3 text-sm text-foreground outline-none select-none\",\n \"data-disabled:cursor-not-allowed data-disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n {(state) => {\n const isThumbActive = state.isHovered || state.isPressed;\n const thumbOffset = state.isSelected\n ? isThumbActive ? styles.activeSelectedOffset : styles.selectedOffset\n : \"0\";\n\n return <>\n <span\n aria-hidden=\"true\"\n data-slot=\"switch-control\"\n className={cn(\n \"relative inline-flex shrink-0 items-center overflow-hidden rounded-full border border-border bg-input shadow-inner\",\n \"transition-[background-color,border-color,box-shadow] duration-200 ease-out motion-reduce:transition-none\",\n \"group-data-hovered/switch:bg-muted-foreground/25\",\n \"group-data-selected/switch:border-primary group-data-selected/switch:bg-primary\",\n \"group-data-selected/switch:group-data-hovered/switch:bg-primary/85\",\n \"group-data-focus-visible/switch:ring-3 group-data-focus-visible/switch:ring-ring/50\",\n styles.control,\n )}\n >\n <span\n data-slot=\"switch-thumb\"\n style={{\n transform: `translate3d(${thumbOffset}, 0, 0)`,\n width: isThumbActive ? styles.activeWidth : styles.idleWidth,\n }}\n className={cn(\n \"grid shrink-0 place-items-center rounded-full border border-border/60 bg-background text-[0.625rem] text-muted-foreground shadow-sm\",\n \"will-change-[transform,width] transition-[transform,width,background-color,color,border-color] duration-[240ms] ease-[cubic-bezier(0.2,0.8,0.2,1)] motion-reduce:transition-none\",\n \"group-data-selected/switch:border-primary-foreground/20\",\n \"group-data-selected/switch:bg-primary-foreground group-data-selected/switch:text-primary\",\n styles.thumb,\n )}\n >\n {state.isSelected ? (selectedIcon ?? icon) : icon}\n </span>\n </span>\n {children || description ? (\n <span className=\"grid gap-0.5 leading-tight\">\n {children ? <span data-slot=\"switch-label\" className=\"font-medium\">{typeof children === \"function\" ? children(state) : children}</span> : null}\n {description ? <span data-slot=\"switch-description\" className=\"text-xs font-normal text-muted-foreground\">{description}</span> : null}\n </span>\n ) : null}\n </>;\n }}\n </AriaSwitch>\n );\n}\n","import type * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\n\n/** Presentational table primitives. Sorting, pagination and data state stay in the application. */\nexport function Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div data-slot=\"table-container\" className=\"relative w-full overflow-x-auto\">\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n );\n}\n\nexport function TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return <thead data-slot=\"table-header\" className={cn(\"[&_tr]:border-b\", className)} {...props} />;\n}\nexport function 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}\nexport function TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"border-b border-border transition-colors hover:bg-muted/50 has-aria-expanded:bg-muted/50 data-[state=selected]:bg-muted\",\n className,\n )}\n {...props}\n />\n );\n}\nexport function TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n );\n}\nexport function TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\"p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0\", className)}\n {...props}\n />\n );\n}\nexport function TableCaption({ className, ...props }: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport function TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\"border-t border-border bg-muted/50 font-medium [&>tr]:last:border-b-0\", className)}\n {...props}\n />\n );\n}\n","import {\n Tab as AriaTab,\n TabList as AriaTabList,\n TabPanel as AriaTabPanel,\n TabPanels as AriaTabPanels,\n Tabs as AriaTabs,\n composeRenderProps,\n type TabListProps as AriaTabListProps,\n type TabPanelProps as AriaTabPanelProps,\n type TabPanelsProps as AriaTabPanelsProps,\n type TabProps as AriaTabProps,\n type TabsProps as AriaTabsProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../lib/cn\";\n\nexport type TabsProps = AriaTabsProps;\nexport type TabProps = AriaTabProps;\nexport type TabPanelProps = AriaTabPanelProps;\n\nexport function Tabs({ className, ...props }: AriaTabsProps) {\n return <AriaTabs data-slot=\"tabs\" className={composeRenderProps(className, (value) => cn(\"flex flex-col gap-2\", value))} {...props} />;\n}\n\nexport function TabsList<T extends object>({ className, ...props }: AriaTabListProps<T>) {\n return <AriaTabList data-slot=\"tabs-list\" className={composeRenderProps(className, (value) => cn(\"inline-flex w-fit items-center gap-1 rounded-lg bg-muted p-1 text-muted-foreground\", value))} {...props} />;\n}\n\nexport function TabsTrigger({ className, ...props }: AriaTabProps) {\n return <AriaTab data-slot=\"tabs-trigger\" className={composeRenderProps(className, (value) => cn(\"inline-flex h-7 items-center justify-center gap-1.5 rounded-md px-2.5 text-sm font-medium outline-none transition-colors data-hovered:text-foreground data-selected:bg-background data-selected:text-foreground data-selected:shadow-sm data-focus-visible:ring-3 data-focus-visible:ring-ring/50 data-disabled:cursor-not-allowed data-disabled:opacity-50\", value))} {...props} />;\n}\n\nexport function TabsPanels<T extends object>({ className, ...props }: AriaTabPanelsProps<T>) {\n return <AriaTabPanels data-slot=\"tabs-panels\" className={cn(\"min-w-0\", className)} {...props} />;\n}\n\nexport function TabsContent({ className, ...props }: AriaTabPanelProps) {\n return <AriaTabPanel data-slot=\"tabs-content\" className={composeRenderProps(className, (value) => cn(\"text-sm outline-none data-focus-visible:ring-3 data-focus-visible:ring-ring/50\", value))} {...props} />;\n}\n","import { useEffect, type ReactNode } from \"react\";\nimport { sileo, Toaster as SileoToaster } from \"sileo\";\n\nexport type ToastVariant = \"default\" | \"success\" | \"error\" | \"warning\" | \"info\";\nexport type ToastPosition = \"top-left\" | \"top-center\" | \"top-right\" | \"bottom-left\" | \"bottom-center\" | \"bottom-right\";\nexport type ToastAction = { label: string; onPress: () => void };\nexport type ToastOptions = { title: string; description?: string; variant?: ToastVariant; duration?: number; position?: ToastPosition; action?: ToastAction };\nexport type ToastData = ToastOptions & { id: string; state: \"open\" | \"closing\" };\ntype ToastPromiseOptions<T> = { loading: string; success: string | ((value: T) => string); error: string | ((error: unknown) => string); description?: string; position?: ToastPosition };\n\nfunction toSileoOptions({ title, description, duration, position, action }: ToastOptions) {\n return {\n title,\n description,\n duration: duration === 0 ? null : duration,\n position,\n button: action ? { title: action.label, onClick: action.onPress } : undefined,\n };\n}\n\nfunction create(options: ToastOptions) {\n const sileoOptions = toSileoOptions(options);\n if (options.action) return sileo.action(sileoOptions);\n if (options.variant === \"success\") return sileo.success(sileoOptions);\n if (options.variant === \"error\") return sileo.error(sileoOptions);\n if (options.variant === \"warning\") return sileo.warning(sileoOptions);\n if (options.variant === \"info\") return sileo.info(sileoOptions);\n return sileo.show(sileoOptions);\n}\n\nexport const toast = Object.assign((options: ToastOptions) => create(options), {\n success: (title: string, options?: Omit<ToastOptions, \"title\" | \"variant\">) => create({ ...options, title, variant: \"success\" }),\n error: (title: string, options?: Omit<ToastOptions, \"title\" | \"variant\">) => create({ ...options, title, variant: \"error\" }),\n warning: (title: string, options?: Omit<ToastOptions, \"title\" | \"variant\">) => create({ ...options, title, variant: \"warning\" }),\n info: (title: string, options?: Omit<ToastOptions, \"title\" | \"variant\">) => create({ ...options, title, variant: \"info\" }),\n dismiss: (id: string) => sileo.dismiss(id),\n promise: <T,>(promise: Promise<T>, options: ToastPromiseOptions<T>) => {\n const shared = { description: options.description, position: options.position };\n return sileo.promise(promise, {\n loading: { ...shared, title: options.loading },\n success: (value) => ({ ...shared, title: typeof options.success === \"function\" ? options.success(value) : options.success }),\n error: (error) => ({ ...shared, title: typeof options.error === \"function\" ? options.error(error) : options.error }),\n position: options.position,\n });\n },\n});\n\nexport function useToast() { return toast; }\nexport function ToastProvider({ children }: { children: ReactNode }) { return <>{children}<Toaster /></>; }\n\nexport function Toaster({ position }: { position?: ToastPosition }) {\n return <SileoToaster position={position} options={{ fill: \"var(--ui-secondary)\" }} />;\n}\n\nexport function ToastViewport({ position, visiblePosition, className }: { position: ToastPosition; visiblePosition?: ToastPosition; className?: string }) {\n void className;\n if (visiblePosition && visiblePosition !== position) return null;\n return <Toaster position={position} />;\n}\n\nexport function Toast({ id, title, description, variant = \"default\", action, state = \"open\", duration = 0, position, onDismiss }: ToastData & { onDismiss?: () => void }) {\n useEffect(() => {\n if (state !== \"open\") return;\n const toastId = create({ title, description, variant, action, duration, position });\n return () => {\n sileo.dismiss(toastId);\n onDismiss?.();\n };\n }, [action, description, duration, id, onDismiss, position, state, title, variant]);\n return null;\n}\n","import type * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\nexport function Toolbar({ className, ...props }: React.ComponentProps<\"div\">) { return <div role=\"toolbar\" data-slot=\"toolbar\" className={cn(\"flex flex-wrap items-center gap-2\", className)} {...props} />; }\nexport function ToolbarGroup({ className, ...props }: React.ComponentProps<\"div\">) { return <div data-slot=\"toolbar-group\" className={cn(\"flex items-center gap-2\", className)} {...props} />; }\nexport function ToolbarSpacer({ className, ...props }: React.ComponentProps<\"div\">) { return <div aria-hidden=\"true\" className={cn(\"hidden flex-1 sm:block\", className)} {...props} />; }\n"],"mappings":"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","names":["useEffect","useState","useCallback","useRef","useState","cva","jsx","cva","jsx","useEffect","useState","jsx","useState","useEffect","cva","jsx","cva","jsx","cva","jsx","jsx","cva","cva","jsx","cva","jsx","jsx","jsxs","Fragment","useState","jsx","jsxs","jsx","Fragment","useState","jsxs","AriaComboBox","ListBox","ListBoxItem","Popover","jsx","AriaComboBox","Popover","ListBox","ListBoxItem","Text","Fragment","jsx","jsxs","Text","Fragment","jsx","jsxs","React","AriaDialog","Heading","Modal","ModalOverlay","Text","Fragment","jsx","jsxs","ModalOverlay","Modal","AriaDialog","Heading","Text","AriaDialog","Modal","ModalOverlay","jsx","ModalOverlay","Modal","AriaDialog","cva","SeparatorPrimitive","Fragment","jsx","jsxs","cva","className","children","SeparatorPrimitive","cva","jsx","cva","cva","jsx","Label","jsx","jsxs","cva","Label","FieldError","useCallback","useEffect","useRef","useState","jsx","jsxs","useState","useRef","useCallback","useEffect","Fragment","jsx","jsxs","Link","React","jsx","jsxs","placement","jsx","jsxs","Link","cva","forwardRef","AriaInput","jsx","forwardRef","Input","AriaInput","forwardRef","jsx","forwardRef","Textarea","jsx","cva","Input","Textarea","jsx","LoaderCircle","jsx","jsxs","LoaderCircle","Popover","jsx","Popover","forwardRef","useRef","useState","AriaInput","jsx","jsxs","forwardRef","useState","useRef","AriaInput","OtpInput","jsx","jsx","jsxs","jsx","Popover","AriaInput","jsx","jsxs","AriaInput","Button","Input","X","jsx","Input","X","Button","AriaButton","ListBox","ListBoxItem","Popover","Fragment","jsx","jsxs","AriaButton","Popover","ListBox","ListBoxItem","XIcon","Heading","Text","jsx","jsxs","XIcon","Heading","Text","ChevronLeft","ChevronRight","createContext","useContext","useMemo","useState","Link","Fragment","jsx","jsxs","createContext","useContext","useState","useMemo","Link","ChevronRight","ChevronLeft","jsx","LoaderCircle","Fragment","jsx","jsxs","LoaderCircle","useEffect","useRef","Fragment","jsx","jsxs","useRef","useEffect","jsx","composeRenderProps","jsx","composeRenderProps","useEffect","Fragment","jsx","jsxs","jsx"]}