@juanarenas31/metrik-ui 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,646 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes, ComponentPropsWithoutRef, ButtonHTMLAttributes, ReactNode, InputHTMLAttributes, SelectHTMLAttributes, TextareaHTMLAttributes, FormHTMLAttributes, SVGAttributes, TdHTMLAttributes, ThHTMLAttributes, RefObject } from 'react';
3
+ import * as AccordionPrimitive from '@radix-ui/react-accordion';
4
+ import * as class_variance_authority_types from 'class-variance-authority/types';
5
+ import { VariantProps } from 'class-variance-authority';
6
+ export { VariantProps, cva } from 'class-variance-authority';
7
+ import * as react_jsx_runtime from 'react/jsx-runtime';
8
+ import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
9
+ import * as AvatarPrimitive from '@radix-ui/react-avatar';
10
+ import { DayPickerProps, DateRange } from 'react-day-picker';
11
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
12
+ import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
13
+ import * as DialogPrimitive from '@radix-ui/react-dialog';
14
+ import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
15
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
16
+ import * as _radix_ui_react_slot from '@radix-ui/react-slot';
17
+ import * as LabelPrimitive from '@radix-ui/react-label';
18
+ import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
19
+ import * as PopoverPrimitive from '@radix-ui/react-popover';
20
+ import * as ProgressPrimitive from '@radix-ui/react-progress';
21
+ import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
22
+ import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
23
+ import * as SelectPrimitive from '@radix-ui/react-select';
24
+ import * as SeparatorPrimitive from '@radix-ui/react-separator';
25
+ import * as SliderPrimitive from '@radix-ui/react-slider';
26
+ import { ToasterProps } from 'sonner';
27
+ export { ToasterProps, toast } from 'sonner';
28
+ import * as SwitchPrimitive from '@radix-ui/react-switch';
29
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
30
+ import * as TogglePrimitive from '@radix-ui/react-toggle';
31
+ import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
32
+ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
33
+ import * as VisuallyHiddenPrimitive from '@radix-ui/react-visually-hidden';
34
+ import { ClassValue } from 'clsx';
35
+
36
+ declare const Accordion: react.ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & react.RefAttributes<HTMLDivElement>>;
37
+ declare const AccordionItem: react.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionItemProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
38
+ declare const AccordionTrigger: react.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionTriggerProps & react.RefAttributes<HTMLButtonElement>, "ref"> & react.RefAttributes<HTMLButtonElement>>;
39
+ declare const AccordionContent: react.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
40
+
41
+ /**
42
+ * Combina clases de Tailwind resolviendo conflictos.
43
+ * @example cn("px-2 py-1", isActive && "bg-primary", className)
44
+ */
45
+ declare function cn(...inputs: ClassValue[]): string;
46
+
47
+ declare const alertVariants: (props?: ({
48
+ tone?: "info" | "success" | "warning" | "danger" | null | undefined;
49
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
50
+ type AlertVariants = VariantProps<typeof alertVariants>;
51
+
52
+ interface AlertProps extends HTMLAttributes<HTMLDivElement>, AlertVariants {
53
+ icon?: React.ReactNode | false;
54
+ }
55
+ declare const Alert: react.ForwardRefExoticComponent<AlertProps & react.RefAttributes<HTMLDivElement>>;
56
+ declare const AlertTitle: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
57
+ declare const AlertDescription: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
58
+
59
+ declare const AlertDialog: react.FC<AlertDialogPrimitive.AlertDialogProps>;
60
+ declare const AlertDialogTrigger: react.ForwardRefExoticComponent<AlertDialogPrimitive.AlertDialogTriggerProps & react.RefAttributes<HTMLButtonElement>>;
61
+ declare const AlertDialogPortal: react.FC<AlertDialogPrimitive.AlertDialogPortalProps>;
62
+ declare const AlertDialogOverlay: react.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogOverlayProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
63
+ declare const AlertDialogContent: react.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
64
+ declare function AlertDialogHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
65
+ declare function AlertDialogFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
66
+ declare const AlertDialogTitle: react.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogTitleProps & react.RefAttributes<HTMLHeadingElement>, "ref"> & react.RefAttributes<HTMLHeadingElement>>;
67
+ declare const AlertDialogDescription: react.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogDescriptionProps & react.RefAttributes<HTMLParagraphElement>, "ref"> & react.RefAttributes<HTMLParagraphElement>>;
68
+ declare const AlertDialogAction: react.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogActionProps & react.RefAttributes<HTMLButtonElement>, "ref"> & react.RefAttributes<HTMLButtonElement>>;
69
+ declare const AlertDialogCancel: react.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogCancelProps & react.RefAttributes<HTMLButtonElement>, "ref"> & react.RefAttributes<HTMLButtonElement>>;
70
+
71
+ declare const avatarVariants: (props?: ({
72
+ size?: "sm" | "md" | "lg" | "xl" | null | undefined;
73
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
74
+ interface AvatarProps extends ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>, VariantProps<typeof avatarVariants> {
75
+ }
76
+ declare const Avatar: react.ForwardRefExoticComponent<AvatarProps & react.RefAttributes<HTMLSpanElement>>;
77
+ declare const AvatarImage: react.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarImageProps & react.RefAttributes<HTMLImageElement>, "ref"> & react.RefAttributes<HTMLImageElement>>;
78
+ declare const AvatarFallback: react.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarFallbackProps & react.RefAttributes<HTMLSpanElement>, "ref"> & react.RefAttributes<HTMLSpanElement>>;
79
+
80
+ declare const badgeVariants: (props?: ({
81
+ tone?: "success" | "warning" | "danger" | "primary" | "neutral" | "accent" | "solid" | null | undefined;
82
+ size?: "sm" | "md" | "lg" | null | undefined;
83
+ dot?: boolean | null | undefined;
84
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
85
+ type BadgeVariants = VariantProps<typeof badgeVariants>;
86
+
87
+ interface BadgeProps extends HTMLAttributes<HTMLSpanElement>, BadgeVariants {
88
+ }
89
+ declare const Badge: react.ForwardRefExoticComponent<BadgeProps & react.RefAttributes<HTMLSpanElement>>;
90
+
91
+ declare const Breadcrumb: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & react.RefAttributes<HTMLElement>>;
92
+ declare const BreadcrumbList: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.OlHTMLAttributes<HTMLOListElement>, HTMLOListElement>, "ref"> & react.RefAttributes<HTMLOListElement>>;
93
+ declare const BreadcrumbItem: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & react.RefAttributes<HTMLLIElement>>;
94
+ declare const BreadcrumbLink: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & {
95
+ asChild?: boolean;
96
+ } & react.RefAttributes<HTMLAnchorElement>>;
97
+ declare const BreadcrumbPage: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & react.RefAttributes<HTMLSpanElement>>;
98
+ declare function BreadcrumbSeparator({ children, className, ...props }: ComponentPropsWithoutRef<"li">): react_jsx_runtime.JSX.Element;
99
+ declare function BreadcrumbEllipsis({ className, ...props }: ComponentPropsWithoutRef<"span">): react_jsx_runtime.JSX.Element;
100
+
101
+ declare const buttonVariants: (props?: ({
102
+ variant?: "link" | "danger" | "primary" | "secondary" | "outline" | "ghost" | null | undefined;
103
+ size?: "icon" | "sm" | "md" | "lg" | null | undefined;
104
+ fullWidth?: boolean | null | undefined;
105
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
106
+ type ButtonVariants = VariantProps<typeof buttonVariants>;
107
+
108
+ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, ButtonVariants {
109
+ /** Renderiza el hijo en lugar de un <button> · útil para envolver <Link>. */
110
+ asChild?: boolean;
111
+ /** Muestra un spinner y deshabilita el botón. */
112
+ loading?: boolean;
113
+ /** Icono a la izquierda del texto. */
114
+ leftIcon?: ReactNode;
115
+ /** Icono a la derecha del texto. */
116
+ rightIcon?: ReactNode;
117
+ }
118
+ declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
119
+
120
+ type CalendarProps = DayPickerProps;
121
+ /**
122
+ * Calendario basado en `react-day-picker` (v10), estilizado con tokens metrik.
123
+ * Soporta `mode="single" | "multiple" | "range"`.
124
+ */
125
+ declare function Calendar({ className, classNames, showOutsideDays, ...props }: CalendarProps): react_jsx_runtime.JSX.Element;
126
+
127
+ type DivProps = HTMLAttributes<HTMLDivElement>;
128
+ declare const Card: react.ForwardRefExoticComponent<DivProps & react.RefAttributes<HTMLDivElement>>;
129
+ declare const CardHeader: react.ForwardRefExoticComponent<DivProps & react.RefAttributes<HTMLDivElement>>;
130
+ declare const CardTitle: react.ForwardRefExoticComponent<DivProps & react.RefAttributes<HTMLDivElement>>;
131
+ declare const CardDescription: react.ForwardRefExoticComponent<DivProps & react.RefAttributes<HTMLDivElement>>;
132
+ declare const CardContent: react.ForwardRefExoticComponent<DivProps & react.RefAttributes<HTMLDivElement>>;
133
+ declare const CardFooter: react.ForwardRefExoticComponent<DivProps & react.RefAttributes<HTMLDivElement>>;
134
+
135
+ interface CheckboxProps extends ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> {
136
+ }
137
+ declare const Checkbox: react.ForwardRefExoticComponent<CheckboxProps & react.RefAttributes<HTMLButtonElement>>;
138
+
139
+ interface ChipOption {
140
+ value: string;
141
+ label: string;
142
+ }
143
+ interface ChipSelectorProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
144
+ options: ChipOption[];
145
+ value: string[];
146
+ onValueChange: (value: string[]) => void;
147
+ /** Permite quitar todos. Si false, mantiene al menos uno. */
148
+ allowEmpty?: boolean;
149
+ }
150
+ /**
151
+ * Selector de múltiples opciones en forma de chips toggleables.
152
+ *
153
+ * @example
154
+ * <ChipSelector options={tags} value={sel} onValueChange={setSel} />
155
+ */
156
+ declare const ChipSelector: react.ForwardRefExoticComponent<ChipSelectorProps & react.RefAttributes<HTMLDivElement>>;
157
+
158
+ declare const Collapsible: react.ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleProps & react.RefAttributes<HTMLDivElement>>;
159
+ declare const CollapsibleTrigger: react.ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleTriggerProps & react.RefAttributes<HTMLButtonElement>>;
160
+ declare const CollapsibleContent: react.ForwardRefExoticComponent<Omit<CollapsiblePrimitive.CollapsibleContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
161
+
162
+ interface ComboboxOption {
163
+ value: string;
164
+ label: string;
165
+ }
166
+ interface ComboboxProps {
167
+ options: ComboboxOption[];
168
+ value?: string;
169
+ onValueChange?: (value: string) => void;
170
+ placeholder?: string;
171
+ searchPlaceholder?: string;
172
+ emptyText?: string;
173
+ disabled?: boolean;
174
+ className?: string;
175
+ }
176
+ /**
177
+ * Select con búsqueda (Popover + Command). Selección única.
178
+ *
179
+ * @example
180
+ * <Combobox options={programas} value={prog} onValueChange={setProg} />
181
+ */
182
+ declare const Combobox: react.ForwardRefExoticComponent<ComboboxProps & react.RefAttributes<HTMLButtonElement>>;
183
+
184
+ declare const Dialog: react.FC<DialogPrimitive.DialogProps>;
185
+ declare const DialogTrigger: react.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & react.RefAttributes<HTMLButtonElement>>;
186
+ declare const DialogClose: react.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & react.RefAttributes<HTMLButtonElement>>;
187
+ declare const DialogPortal: react.FC<DialogPrimitive.DialogPortalProps>;
188
+ declare const DialogOverlay: react.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
189
+ interface DialogContentProps extends ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {
190
+ /** Esconde el botón de cierre por defecto (× en la esquina). */
191
+ hideCloseButton?: boolean;
192
+ }
193
+ declare const DialogContent: react.ForwardRefExoticComponent<DialogContentProps & react.RefAttributes<HTMLDivElement>>;
194
+ declare function DialogHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
195
+ declare function DialogFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
196
+ declare const DialogTitle: react.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & react.RefAttributes<HTMLHeadingElement>, "ref"> & react.RefAttributes<HTMLHeadingElement>>;
197
+ declare const DialogDescription: react.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & react.RefAttributes<HTMLParagraphElement>, "ref"> & react.RefAttributes<HTMLParagraphElement>>;
198
+
199
+ declare const Command: react.ForwardRefExoticComponent<Omit<{
200
+ children?: React.ReactNode;
201
+ } & Pick<Pick<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof react.HTMLAttributes<HTMLDivElement>> & {
202
+ ref?: React.Ref<HTMLDivElement>;
203
+ } & {
204
+ asChild?: boolean;
205
+ }, "key" | keyof react.HTMLAttributes<HTMLDivElement> | "asChild"> & {
206
+ label?: string;
207
+ shouldFilter?: boolean;
208
+ filter?: (value: string, search: string, keywords?: string[]) => number;
209
+ defaultValue?: string;
210
+ value?: string;
211
+ onValueChange?: (value: string) => void;
212
+ loop?: boolean;
213
+ disablePointerSelection?: boolean;
214
+ vimBindings?: boolean;
215
+ } & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
216
+ declare function CommandDialog({ children, ...props }: ComponentPropsWithoutRef<typeof Dialog>): react_jsx_runtime.JSX.Element;
217
+ declare const CommandInput: react.ForwardRefExoticComponent<Omit<Omit<Pick<Pick<react.DetailedHTMLProps<react.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "key" | keyof react.InputHTMLAttributes<HTMLInputElement>> & {
218
+ ref?: React.Ref<HTMLInputElement>;
219
+ } & {
220
+ asChild?: boolean;
221
+ }, "key" | "asChild" | keyof react.InputHTMLAttributes<HTMLInputElement>>, "onChange" | "value" | "type"> & {
222
+ value?: string;
223
+ onValueChange?: (search: string) => void;
224
+ } & react.RefAttributes<HTMLInputElement>, "ref"> & react.RefAttributes<HTMLInputElement>>;
225
+ declare const CommandList: react.ForwardRefExoticComponent<Omit<{
226
+ children?: React.ReactNode;
227
+ } & Pick<Pick<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof react.HTMLAttributes<HTMLDivElement>> & {
228
+ ref?: React.Ref<HTMLDivElement>;
229
+ } & {
230
+ asChild?: boolean;
231
+ }, "key" | keyof react.HTMLAttributes<HTMLDivElement> | "asChild"> & {
232
+ label?: string;
233
+ } & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
234
+ declare const CommandEmpty: react.ForwardRefExoticComponent<Omit<{
235
+ children?: React.ReactNode;
236
+ } & Pick<Pick<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof react.HTMLAttributes<HTMLDivElement>> & {
237
+ ref?: React.Ref<HTMLDivElement>;
238
+ } & {
239
+ asChild?: boolean;
240
+ }, "key" | keyof react.HTMLAttributes<HTMLDivElement> | "asChild"> & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
241
+ declare const CommandGroup: react.ForwardRefExoticComponent<Omit<{
242
+ children?: React.ReactNode;
243
+ } & Omit<Pick<Pick<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof react.HTMLAttributes<HTMLDivElement>> & {
244
+ ref?: React.Ref<HTMLDivElement>;
245
+ } & {
246
+ asChild?: boolean;
247
+ }, "key" | keyof react.HTMLAttributes<HTMLDivElement> | "asChild">, "value" | "heading"> & {
248
+ heading?: React.ReactNode;
249
+ value?: string;
250
+ forceMount?: boolean;
251
+ } & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
252
+ declare const CommandSeparator: react.ForwardRefExoticComponent<Omit<Pick<Pick<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof react.HTMLAttributes<HTMLDivElement>> & {
253
+ ref?: React.Ref<HTMLDivElement>;
254
+ } & {
255
+ asChild?: boolean;
256
+ }, "key" | keyof react.HTMLAttributes<HTMLDivElement> | "asChild"> & {
257
+ alwaysRender?: boolean;
258
+ } & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
259
+ declare const CommandItem: react.ForwardRefExoticComponent<Omit<{
260
+ children?: React.ReactNode;
261
+ } & Omit<Pick<Pick<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof react.HTMLAttributes<HTMLDivElement>> & {
262
+ ref?: React.Ref<HTMLDivElement>;
263
+ } & {
264
+ asChild?: boolean;
265
+ }, "key" | keyof react.HTMLAttributes<HTMLDivElement> | "asChild">, "onSelect" | "disabled" | "value"> & {
266
+ disabled?: boolean;
267
+ onSelect?: (value: string) => void;
268
+ value?: string;
269
+ keywords?: string[];
270
+ forceMount?: boolean;
271
+ } & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
272
+ declare function CommandShortcut({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): react_jsx_runtime.JSX.Element;
273
+
274
+ declare const ContextMenu: react.FC<ContextMenuPrimitive.ContextMenuProps>;
275
+ declare const ContextMenuTrigger: react.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuTriggerProps & react.RefAttributes<HTMLSpanElement>>;
276
+ declare const ContextMenuGroup: react.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuGroupProps & react.RefAttributes<HTMLDivElement>>;
277
+ declare const ContextMenuPortal: react.FC<ContextMenuPrimitive.ContextMenuPortalProps>;
278
+ declare const ContextMenuSub: react.FC<ContextMenuPrimitive.ContextMenuSubProps>;
279
+ declare const ContextMenuRadioGroup: react.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuRadioGroupProps & react.RefAttributes<HTMLDivElement>>;
280
+ declare const ContextMenuContent: react.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
281
+ declare const ContextMenuItem: react.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuItemProps & react.RefAttributes<HTMLDivElement>, "ref"> & {
282
+ inset?: boolean;
283
+ destructive?: boolean;
284
+ } & react.RefAttributes<HTMLDivElement>>;
285
+ declare const ContextMenuCheckboxItem: react.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuCheckboxItemProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
286
+ declare const ContextMenuRadioItem: react.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuRadioItemProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
287
+ declare const ContextMenuLabel: react.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuLabelProps & react.RefAttributes<HTMLDivElement>, "ref"> & {
288
+ inset?: boolean;
289
+ } & react.RefAttributes<HTMLDivElement>>;
290
+ declare const ContextMenuSeparator: react.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSeparatorProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
291
+ declare function ContextMenuShortcut({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): react_jsx_runtime.JSX.Element;
292
+ declare const ContextMenuSubTrigger: react.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubTriggerProps & react.RefAttributes<HTMLDivElement>, "ref"> & {
293
+ inset?: boolean;
294
+ } & react.RefAttributes<HTMLDivElement>>;
295
+ declare const ContextMenuSubContent: react.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
296
+
297
+ interface DateRangePillProps {
298
+ value?: DateRange;
299
+ onValueChange?: (range: DateRange | undefined) => void;
300
+ placeholder?: string;
301
+ disabled?: boolean;
302
+ numberOfMonths?: number;
303
+ className?: string;
304
+ }
305
+ /**
306
+ * Pastilla compacta que abre un calendario de rango (desde–hasta).
307
+ * Ideal para filtrar reportes por periodo.
308
+ */
309
+ declare const DateRangePill: react.ForwardRefExoticComponent<DateRangePillProps & react.RefAttributes<HTMLButtonElement>>;
310
+
311
+ declare const DropdownMenu: react.FC<DropdownMenuPrimitive.DropdownMenuProps>;
312
+ declare const DropdownMenuTrigger: react.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & react.RefAttributes<HTMLButtonElement>>;
313
+ declare const DropdownMenuGroup: react.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & react.RefAttributes<HTMLDivElement>>;
314
+ declare const DropdownMenuPortal: react.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
315
+ declare const DropdownMenuSub: react.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
316
+ declare const DropdownMenuRadioGroup: react.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & react.RefAttributes<HTMLDivElement>>;
317
+ declare const DropdownMenuContent: react.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
318
+ declare const DropdownMenuItem: react.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & react.RefAttributes<HTMLDivElement>, "ref"> & {
319
+ inset?: boolean;
320
+ destructive?: boolean;
321
+ } & react.RefAttributes<HTMLDivElement>>;
322
+ declare const DropdownMenuCheckboxItem: react.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
323
+ declare const DropdownMenuRadioItem: react.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
324
+ declare const DropdownMenuLabel: react.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & react.RefAttributes<HTMLDivElement>, "ref"> & {
325
+ inset?: boolean;
326
+ } & react.RefAttributes<HTMLDivElement>>;
327
+ declare const DropdownMenuSeparator: react.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
328
+ declare function DropdownMenuShortcut({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): react_jsx_runtime.JSX.Element;
329
+ declare const DropdownMenuSubTrigger: react.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & react.RefAttributes<HTMLDivElement>, "ref"> & {
330
+ inset?: boolean;
331
+ } & react.RefAttributes<HTMLDivElement>>;
332
+ declare const DropdownMenuSubContent: react.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
333
+
334
+ interface EmptyStateProps extends HTMLAttributes<HTMLDivElement> {
335
+ icon?: ReactNode;
336
+ title: string;
337
+ description?: string;
338
+ /** Acción opcional (p. ej. un <Button>). */
339
+ action?: ReactNode;
340
+ }
341
+ /**
342
+ * Estado vacío · para listas, tablas o resultados sin datos.
343
+ *
344
+ * @example
345
+ * <EmptyState icon={<Inbox />} title="Sin reportes" description="Crea el primero." action={<Button>Nuevo</Button>} />
346
+ */
347
+ declare const EmptyState: react.ForwardRefExoticComponent<EmptyStateProps & react.RefAttributes<HTMLDivElement>>;
348
+
349
+ interface FileDropzoneProps {
350
+ /** Lista controlada de archivos. Si se omite, el componente la gestiona internamente. */
351
+ value?: File[];
352
+ onFilesChange?: (files: File[]) => void;
353
+ accept?: string;
354
+ multiple?: boolean;
355
+ disabled?: boolean;
356
+ className?: string;
357
+ hint?: string;
358
+ }
359
+ /**
360
+ * Zona de arrastrar-y-soltar archivos, con click de respaldo y lista de
361
+ * archivos seleccionados.
362
+ */
363
+ declare const FileDropzone: react.ForwardRefExoticComponent<FileDropzoneProps & react.RefAttributes<HTMLInputElement>>;
364
+
365
+ interface FloatingInputProps extends InputHTMLAttributes<HTMLInputElement> {
366
+ label: string;
367
+ }
368
+ declare const FloatingInput: react.ForwardRefExoticComponent<FloatingInputProps & react.RefAttributes<HTMLInputElement>>;
369
+ interface FloatingTextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
370
+ label: string;
371
+ }
372
+ declare const FloatingTextarea: react.ForwardRefExoticComponent<FloatingTextareaProps & react.RefAttributes<HTMLTextAreaElement>>;
373
+ interface FloatingSelectProps extends SelectHTMLAttributes<HTMLSelectElement> {
374
+ label: string;
375
+ }
376
+ declare const FloatingSelect: react.ForwardRefExoticComponent<FloatingSelectProps & react.RefAttributes<HTMLSelectElement>>;
377
+ interface FloatingFileInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "type"> {
378
+ label: string;
379
+ }
380
+ declare const FloatingFileInput: react.ForwardRefExoticComponent<FloatingFileInputProps & react.RefAttributes<HTMLInputElement>>;
381
+ interface FloatingDatePickerProps {
382
+ label: string;
383
+ value?: Date;
384
+ onValueChange?: (date: Date | undefined) => void;
385
+ disabled?: boolean;
386
+ className?: string;
387
+ /** Formateador del valor mostrado. Por defecto `toLocaleDateString("es")`. */
388
+ format?: (date: Date) => string;
389
+ }
390
+ declare const FloatingDatePicker: react.ForwardRefExoticComponent<FloatingDatePickerProps & react.RefAttributes<HTMLButtonElement>>;
391
+
392
+ /**
393
+ * Form ligero · sin react-hook-form. `FormField` cablea ids y errores entre
394
+ * Label / Control / Message para accesibilidad. Para validación, pásale el
395
+ * mensaje de error a `<FormField error="...">` o a `<FormMessage>`.
396
+ */
397
+ declare const Form: react.ForwardRefExoticComponent<FormHTMLAttributes<HTMLFormElement> & react.RefAttributes<HTMLFormElement>>;
398
+ interface FormFieldProps extends HTMLAttributes<HTMLDivElement> {
399
+ error?: string;
400
+ }
401
+ declare const FormField: react.ForwardRefExoticComponent<FormFieldProps & react.RefAttributes<HTMLDivElement>>;
402
+ declare const FormLabel: react.ForwardRefExoticComponent<Omit<LabelProps & react.RefAttributes<HTMLLabelElement>, "ref"> & react.RefAttributes<HTMLLabelElement>>;
403
+ declare const FormControl: react.ForwardRefExoticComponent<Omit<_radix_ui_react_slot.SlotProps & react.RefAttributes<HTMLElement>, "ref"> & react.RefAttributes<HTMLElement>>;
404
+ declare function FormDescription({ className, ...props }: HTMLAttributes<HTMLParagraphElement>): react_jsx_runtime.JSX.Element;
405
+ declare function FormMessage({ className, children, ...props }: HTMLAttributes<HTMLParagraphElement>): react_jsx_runtime.JSX.Element | null;
406
+
407
+ declare const HoverCard: react.FC<HoverCardPrimitive.HoverCardProps>;
408
+ declare const HoverCardTrigger: react.ForwardRefExoticComponent<HoverCardPrimitive.HoverCardTriggerProps & react.RefAttributes<HTMLAnchorElement>>;
409
+ declare const HoverCardContent: react.ForwardRefExoticComponent<Omit<HoverCardPrimitive.HoverCardContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
410
+
411
+ declare const inputVariants: (props?: ({
412
+ size?: "sm" | "md" | "lg" | null | undefined;
413
+ state?: "default" | "success" | "error" | null | undefined;
414
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
415
+ type InputVariants = VariantProps<typeof inputVariants>;
416
+
417
+ interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size">, InputVariants {
418
+ }
419
+ declare const Input: react.ForwardRefExoticComponent<InputProps & react.RefAttributes<HTMLInputElement>>;
420
+
421
+ interface LabelProps extends ComponentPropsWithoutRef<typeof LabelPrimitive.Root> {
422
+ required?: boolean;
423
+ }
424
+ declare const Label: react.ForwardRefExoticComponent<LabelProps & react.RefAttributes<HTMLLabelElement>>;
425
+
426
+ declare function Pagination({ className, ...props }: ComponentPropsWithoutRef<"nav">): react_jsx_runtime.JSX.Element;
427
+ declare const PaginationContent: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "ref"> & react.RefAttributes<HTMLUListElement>>;
428
+ declare const PaginationItem: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & react.RefAttributes<HTMLLIElement>>;
429
+ interface PaginationLinkProps extends ComponentPropsWithoutRef<"a"> {
430
+ isActive?: boolean;
431
+ size?: "sm" | "md" | "icon";
432
+ }
433
+ declare function PaginationLink({ className, isActive, size, ...props }: PaginationLinkProps): react_jsx_runtime.JSX.Element;
434
+ declare function PaginationPrevious({ className, ...props }: PaginationLinkProps): react_jsx_runtime.JSX.Element;
435
+ declare function PaginationNext({ className, ...props }: PaginationLinkProps): react_jsx_runtime.JSX.Element;
436
+ declare function PaginationEllipsis({ className, ...props }: ComponentPropsWithoutRef<"span">): react_jsx_runtime.JSX.Element;
437
+
438
+ declare const Popover: react.FC<PopoverPrimitive.PopoverProps>;
439
+ declare const PopoverTrigger: react.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & react.RefAttributes<HTMLButtonElement>>;
440
+ declare const PopoverAnchor: react.ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & react.RefAttributes<HTMLDivElement>>;
441
+ declare const PopoverContent: react.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
442
+
443
+ interface ProgressProps extends ComponentPropsWithoutRef<typeof ProgressPrimitive.Root> {
444
+ /** Color de la barra. */
445
+ tone?: "primary" | "success" | "danger" | "warning";
446
+ }
447
+ declare const Progress: react.ForwardRefExoticComponent<ProgressProps & react.RefAttributes<HTMLDivElement>>;
448
+
449
+ declare const RadioGroup: react.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
450
+ declare const RadioGroupItem: react.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupItemProps & react.RefAttributes<HTMLButtonElement>, "ref"> & react.RefAttributes<HTMLButtonElement>>;
451
+
452
+ interface RichTextEditorProps {
453
+ /** HTML inicial (no controlado). */
454
+ defaultValue?: string;
455
+ /** Se dispara con el HTML cada vez que cambia el contenido. */
456
+ onChange?: (html: string) => void;
457
+ placeholder?: string;
458
+ className?: string;
459
+ disabled?: boolean;
460
+ }
461
+ /**
462
+ * Editor de texto enriquecido ligero, basado en `contenteditable` +
463
+ * `document.execCommand` (sin dependencias). Soporta negrita, cursiva,
464
+ * subrayado, listas y enlaces. Para necesidades avanzadas, migrar a Tiptap.
465
+ */
466
+ declare const RichTextEditor: react.ForwardRefExoticComponent<RichTextEditorProps & react.RefAttributes<HTMLDivElement>>;
467
+
468
+ declare const ScrollArea: react.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
469
+ declare const ScrollBar: react.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaScrollbarProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
470
+
471
+ declare const Select: react.FC<SelectPrimitive.SelectProps>;
472
+ declare const SelectGroup: react.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & react.RefAttributes<HTMLDivElement>>;
473
+ declare const SelectValue: react.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & react.RefAttributes<HTMLSpanElement>>;
474
+ declare const SelectTrigger: react.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & react.RefAttributes<HTMLButtonElement>, "ref"> & react.RefAttributes<HTMLButtonElement>>;
475
+ declare const SelectContent: react.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
476
+ declare const SelectLabel: react.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
477
+ declare const SelectItem: react.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
478
+ declare const SelectSeparator: react.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
479
+
480
+ interface SeparatorProps extends ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root> {
481
+ }
482
+ declare const Separator: react.ForwardRefExoticComponent<SeparatorProps & react.RefAttributes<HTMLDivElement>>;
483
+
484
+ declare const Sheet: react.FC<DialogPrimitive.DialogProps>;
485
+ declare const SheetTrigger: react.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & react.RefAttributes<HTMLButtonElement>>;
486
+ declare const SheetClose: react.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & react.RefAttributes<HTMLButtonElement>>;
487
+ declare const SheetPortal: react.FC<DialogPrimitive.DialogPortalProps>;
488
+ declare const SheetOverlay: react.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
489
+ declare const sheetVariants: (props?: ({
490
+ side?: "left" | "right" | "top" | "bottom" | null | undefined;
491
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
492
+ interface SheetContentProps extends ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof sheetVariants> {
493
+ }
494
+ declare const SheetContent: react.ForwardRefExoticComponent<SheetContentProps & react.RefAttributes<HTMLDivElement>>;
495
+ declare function SheetHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
496
+ declare function SheetFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
497
+ declare const SheetTitle: react.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & react.RefAttributes<HTMLHeadingElement>, "ref"> & react.RefAttributes<HTMLHeadingElement>>;
498
+ declare const SheetDescription: react.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & react.RefAttributes<HTMLParagraphElement>, "ref"> & react.RefAttributes<HTMLParagraphElement>>;
499
+
500
+ interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {
501
+ circle?: boolean;
502
+ }
503
+ declare const Skeleton: react.ForwardRefExoticComponent<SkeletonProps & react.RefAttributes<HTMLDivElement>>;
504
+
505
+ declare const Slider: react.ForwardRefExoticComponent<Omit<SliderPrimitive.SliderProps & react.RefAttributes<HTMLSpanElement>, "ref"> & react.RefAttributes<HTMLSpanElement>>;
506
+
507
+ /**
508
+ * Toaster (tostadora) basado en `sonner`. Sincroniza el tema con `useTheme`
509
+ * y estiliza las notificaciones con los tokens de metrik.
510
+ *
511
+ * @example
512
+ * // monta una sola vez cerca de la raíz
513
+ * <Toaster />
514
+ * // dispara desde cualquier parte
515
+ * toast.success("Reporte guardado");
516
+ */
517
+ declare function Toaster(props: ToasterProps): react_jsx_runtime.JSX.Element;
518
+
519
+ interface SpinnerProps extends SVGAttributes<SVGSVGElement> {
520
+ size?: "sm" | "md" | "lg" | "xl";
521
+ label?: string;
522
+ }
523
+ declare const Spinner: react.ForwardRefExoticComponent<SpinnerProps & react.RefAttributes<SVGSVGElement>>;
524
+
525
+ interface SwitchProps extends ComponentPropsWithoutRef<typeof SwitchPrimitive.Root> {
526
+ }
527
+ declare const Switch: react.ForwardRefExoticComponent<SwitchProps & react.RefAttributes<HTMLButtonElement>>;
528
+
529
+ declare const Table: react.ForwardRefExoticComponent<HTMLAttributes<HTMLTableElement> & react.RefAttributes<HTMLTableElement>>;
530
+ declare const TableHeader: react.ForwardRefExoticComponent<HTMLAttributes<HTMLTableSectionElement> & react.RefAttributes<HTMLTableSectionElement>>;
531
+ declare const TableBody: react.ForwardRefExoticComponent<HTMLAttributes<HTMLTableSectionElement> & react.RefAttributes<HTMLTableSectionElement>>;
532
+ declare const TableFooter: react.ForwardRefExoticComponent<HTMLAttributes<HTMLTableSectionElement> & react.RefAttributes<HTMLTableSectionElement>>;
533
+ declare const TableRow: react.ForwardRefExoticComponent<HTMLAttributes<HTMLTableRowElement> & react.RefAttributes<HTMLTableRowElement>>;
534
+ declare const TableHead: react.ForwardRefExoticComponent<ThHTMLAttributes<HTMLTableCellElement> & react.RefAttributes<HTMLTableCellElement>>;
535
+ declare const TableCell: react.ForwardRefExoticComponent<TdHTMLAttributes<HTMLTableCellElement> & react.RefAttributes<HTMLTableCellElement>>;
536
+ declare const TableCaption: react.ForwardRefExoticComponent<HTMLAttributes<HTMLTableCaptionElement> & react.RefAttributes<HTMLTableCaptionElement>>;
537
+
538
+ declare const Tabs: react.ForwardRefExoticComponent<TabsPrimitive.TabsProps & react.RefAttributes<HTMLDivElement>>;
539
+ declare const TabsList: react.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & react.RefAttributes<HTMLDivElement>, "ref"> & {
540
+ variant?: "underline" | "pill";
541
+ } & react.RefAttributes<HTMLDivElement>>;
542
+ declare const TabsTrigger: react.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & react.RefAttributes<HTMLButtonElement>, "ref"> & react.RefAttributes<HTMLButtonElement>>;
543
+ declare const TabsContent: react.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
544
+
545
+ interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
546
+ invalid?: boolean;
547
+ }
548
+ declare const Textarea: react.ForwardRefExoticComponent<TextareaProps & react.RefAttributes<HTMLTextAreaElement>>;
549
+
550
+ declare const toggleVariants: (props?: ({
551
+ variant?: "default" | "outline" | null | undefined;
552
+ size?: "sm" | "md" | "lg" | null | undefined;
553
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
554
+ type ToggleVariants = VariantProps<typeof toggleVariants>;
555
+
556
+ interface ToggleProps extends ComponentPropsWithoutRef<typeof TogglePrimitive.Root>, ToggleVariants {
557
+ }
558
+ declare const Toggle: react.ForwardRefExoticComponent<ToggleProps & react.RefAttributes<HTMLButtonElement>>;
559
+
560
+ declare const ToggleGroup: react.ForwardRefExoticComponent<(ComponentPropsWithoutRef<react.ForwardRefExoticComponent<(ToggleGroupPrimitive.ToggleGroupSingleProps | ToggleGroupPrimitive.ToggleGroupMultipleProps) & react.RefAttributes<HTMLDivElement>>> & ToggleVariants) & react.RefAttributes<HTMLDivElement>>;
561
+ declare const ToggleGroupItem: react.ForwardRefExoticComponent<Omit<ToggleGroupPrimitive.ToggleGroupItemProps & react.RefAttributes<HTMLButtonElement>, "ref"> & ToggleVariants & react.RefAttributes<HTMLButtonElement>>;
562
+
563
+ declare const TooltipProvider: react.FC<TooltipPrimitive.TooltipProviderProps>;
564
+ declare const Tooltip: react.FC<TooltipPrimitive.TooltipProps>;
565
+ declare const TooltipTrigger: react.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & react.RefAttributes<HTMLButtonElement>>;
566
+ interface TooltipContentProps extends ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> {
567
+ }
568
+ declare const TooltipContent: react.ForwardRefExoticComponent<TooltipContentProps & react.RefAttributes<HTMLDivElement>>;
569
+
570
+ /**
571
+ * Oculta contenido visualmente pero lo mantiene accesible para lectores de
572
+ * pantalla. Útil para etiquetas de iconos, encabezados de tablas, etc.
573
+ */
574
+ declare const VisuallyHidden: react.ForwardRefExoticComponent<VisuallyHiddenPrimitive.VisuallyHiddenProps & react.RefAttributes<HTMLSpanElement>>;
575
+
576
+ type Theme = "light" | "dark" | "system";
577
+ /**
578
+ * Hook para controlar el tema · light · dark · system.
579
+ * Persiste en localStorage y reacciona a prefers-color-scheme.
580
+ *
581
+ * @example
582
+ * const { theme, setTheme, resolvedTheme } = useTheme();
583
+ * <Switch checked={theme === "dark"} onCheckedChange={v => setTheme(v ? "dark" : "light")} />
584
+ */
585
+ declare function useTheme(defaultTheme?: Theme): {
586
+ theme: Theme;
587
+ resolvedTheme: "light" | "dark";
588
+ setTheme: (next: Theme) => void;
589
+ toggleTheme: () => void;
590
+ };
591
+
592
+ interface DisclosureControls {
593
+ isOpen: boolean;
594
+ open: () => void;
595
+ close: () => void;
596
+ toggle: () => void;
597
+ setOpen: (v: boolean) => void;
598
+ }
599
+ /**
600
+ * Hook para manejar el estado abierto/cerrado de modals, drawers, popovers, etc.
601
+ * @example
602
+ * const dialog = useDisclosure();
603
+ * <Dialog open={dialog.isOpen} onOpenChange={dialog.setOpen}>...</Dialog>
604
+ */
605
+ declare function useDisclosure(initial?: boolean): DisclosureControls;
606
+
607
+ /**
608
+ * Hook para escuchar media queries.
609
+ * @example
610
+ * const isDesktop = useMediaQuery("(min-width: 1024px)");
611
+ */
612
+ declare function useMediaQuery(query: string): boolean;
613
+ declare const useBreakpoint: {
614
+ sm: () => boolean;
615
+ md: () => boolean;
616
+ lg: () => boolean;
617
+ xl: () => boolean;
618
+ "2xl": () => boolean;
619
+ };
620
+
621
+ /**
622
+ * Devuelve el valor después de un retraso · útil para inputs de búsqueda.
623
+ * @example
624
+ * const debounced = useDebounce(query, 300);
625
+ * useEffect(() => fetch("/api?q=" + debounced), [debounced]);
626
+ */
627
+ declare function useDebounce<T>(value: T, delay?: number): T;
628
+
629
+ /**
630
+ * Estado sincronizado con localStorage · serializa con JSON.
631
+ * @example
632
+ * const [filters, setFilters] = useLocalStorage("metrik-filters", { period: "month" });
633
+ */
634
+ declare function useLocalStorage<T>(key: string, initialValue: T): readonly [T, react.Dispatch<react.SetStateAction<T>>, () => void];
635
+
636
+ /**
637
+ * Llama al handler cuando se hace click fuera del ref.
638
+ * @example
639
+ * const ref = useRef(null);
640
+ * useClickOutside(ref, () => setOpen(false));
641
+ */
642
+ declare function useClickOutside<T extends HTMLElement>(ref: RefObject<T | null>, handler: (event: MouseEvent | TouchEvent) => void, enabled?: boolean): void;
643
+
644
+ declare function useToggle(initial?: boolean): [boolean, () => void, (v: boolean) => void];
645
+
646
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, type AlertVariants, Avatar, AvatarFallback, AvatarImage, type AvatarProps, Badge, type BadgeProps, type BadgeVariants, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, type ButtonProps, type ButtonVariants, Calendar, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, type CheckboxProps, type ChipOption, ChipSelector, type ChipSelectorProps, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, type ComboboxOption, type ComboboxProps, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DateRangePill, type DateRangePillProps, Dialog, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, type DisclosureControls, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, type EmptyStateProps, FileDropzone, type FileDropzoneProps, FloatingDatePicker, type FloatingDatePickerProps, FloatingFileInput, type FloatingFileInputProps, FloatingInput, type FloatingInputProps, FloatingSelect, type FloatingSelectProps, FloatingTextarea, type FloatingTextareaProps, Form, FormControl, FormDescription, FormField, type FormFieldProps, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Input, type InputProps, type InputVariants, Label, type LabelProps, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, type PaginationLinkProps, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, type ProgressProps, RadioGroup, RadioGroupItem, RichTextEditor, type RichTextEditorProps, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, Separator, type SeparatorProps, Sheet, SheetClose, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, type SkeletonProps, Slider, Spinner, type SpinnerProps, Switch, type SwitchProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type TextareaProps, type Theme, Toaster, Toggle, ToggleGroup, ToggleGroupItem, type ToggleProps, type ToggleVariants, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, VisuallyHidden, alertVariants, badgeVariants, buttonVariants, cn, inputVariants, toggleVariants, useBreakpoint, useClickOutside, useDebounce, useDisclosure, useLocalStorage, useMediaQuery, useTheme, useToggle };