@akira-io/ui 1.1.0 → 1.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.
Files changed (68) hide show
  1. package/dist/blocks.d.ts +27 -27
  2. package/dist/blocks.js +79 -66
  3. package/dist/blocks.js.map +1 -1
  4. package/dist/{chunk-SA5LM2GD.js → chunk-2HLBBU3O.js} +44 -20
  5. package/dist/chunk-2HLBBU3O.js.map +1 -0
  6. package/dist/{chunk-MNGNBEYN.js → chunk-3HKIYFWI.js} +263 -166
  7. package/dist/chunk-3HKIYFWI.js.map +1 -0
  8. package/dist/{chunk-UUTXPPRN.js → chunk-DW42Z75X.js} +147 -90
  9. package/dist/chunk-DW42Z75X.js.map +1 -0
  10. package/dist/{chunk-DSD7MVLL.js → chunk-I5UZAJB4.js} +13 -9
  11. package/dist/chunk-I5UZAJB4.js.map +1 -0
  12. package/dist/{chunk-JAHTUAQL.js → chunk-MCMBS2SB.js} +6 -5
  13. package/dist/chunk-MCMBS2SB.js.map +1 -0
  14. package/dist/{chunk-YOVY3KT6.js → chunk-NGMG2UWX.js} +3 -3
  15. package/dist/{chunk-YOVY3KT6.js.map → chunk-NGMG2UWX.js.map} +1 -1
  16. package/dist/{chunk-6QM5BA7B.js → chunk-O5DZTX7D.js} +40 -23
  17. package/dist/chunk-O5DZTX7D.js.map +1 -0
  18. package/dist/{chunk-5AJFQ6C4.js → chunk-QNF4LJVT.js} +2 -2
  19. package/dist/chunk-QNF4LJVT.js.map +1 -0
  20. package/dist/{chunk-LKSM3WLK.js → chunk-SBLZ6T3D.js} +6 -5
  21. package/dist/chunk-SBLZ6T3D.js.map +1 -0
  22. package/dist/{chunk-KYWA5UYN.js → chunk-SH5QZCOW.js} +46 -28
  23. package/dist/chunk-SH5QZCOW.js.map +1 -0
  24. package/dist/chunk-UTSTTTH5.js +48 -0
  25. package/dist/chunk-UTSTTTH5.js.map +1 -0
  26. package/dist/code.d.ts +5 -2
  27. package/dist/code.js +52 -53
  28. package/dist/code.js.map +1 -1
  29. package/dist/{context-VgHq4U98.d.ts → context-OwSoVEri.d.ts} +55 -27
  30. package/dist/editor.d.ts +8 -6
  31. package/dist/editor.js +31 -18
  32. package/dist/editor.js.map +1 -1
  33. package/dist/field-DWm5NXeV.d.ts +39 -0
  34. package/dist/index.d.ts +230 -238
  35. package/dist/index.js +451 -337
  36. package/dist/index.js.map +1 -1
  37. package/dist/inertia.d.ts +1 -1
  38. package/dist/inertia.js +6 -7
  39. package/dist/inertia.js.map +1 -1
  40. package/dist/{button-B6wQRe7p.d.ts → input-Dxnsxi-f.d.ts} +6 -2
  41. package/dist/{json-viewer-BTHBACj9.d.ts → json-viewer-BARA2RCW.d.ts} +3 -2
  42. package/dist/{language-Dgjr9bm3.d.ts → language-Cv_N_53L.d.ts} +5 -2
  43. package/dist/locales/pt.d.ts +9 -9
  44. package/dist/locales/pt.js +7 -1
  45. package/dist/locales/pt.js.map +1 -1
  46. package/dist/shells.d.ts +6 -7
  47. package/dist/shells.js +9 -9
  48. package/dist/shells.js.map +1 -1
  49. package/dist/sidebar-Bp6Q46j-.d.ts +80 -0
  50. package/dist/{types-CT0rBsFc.d.ts → types-B-eGPoFD.d.ts} +3 -2
  51. package/dist/{types-B4QS3h5p.d.ts → types-cmBL8zOc.d.ts} +4 -1
  52. package/package.json +3 -3
  53. package/dist/chunk-5AJFQ6C4.js.map +0 -1
  54. package/dist/chunk-6QM5BA7B.js.map +0 -1
  55. package/dist/chunk-6X4TKSF6.js +0 -21
  56. package/dist/chunk-6X4TKSF6.js.map +0 -1
  57. package/dist/chunk-DSD7MVLL.js.map +0 -1
  58. package/dist/chunk-JAHTUAQL.js.map +0 -1
  59. package/dist/chunk-KYWA5UYN.js.map +0 -1
  60. package/dist/chunk-LKSM3WLK.js.map +0 -1
  61. package/dist/chunk-MNGNBEYN.js.map +0 -1
  62. package/dist/chunk-SA5LM2GD.js.map +0 -1
  63. package/dist/chunk-UUEWFCKT.js +0 -28
  64. package/dist/chunk-UUEWFCKT.js.map +0 -1
  65. package/dist/chunk-UUTXPPRN.js.map +0 -1
  66. package/dist/input-4uxAHW6y.d.ts +0 -5
  67. package/dist/password-input-r39y2pCT.d.ts +0 -50
  68. package/dist/sidebar-BhOIlSjt.d.ts +0 -80
package/dist/index.js CHANGED
@@ -1,21 +1,20 @@
1
- import { Popover, PopoverTrigger, PopoverContent, Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, Select, SelectTrigger, SelectContent, SelectItem, Calendar, FieldContext, FieldError, useField, ConfirmDialog } from './chunk-UUTXPPRN.js';
2
- export { Alert, AlertDescription, AlertTitle, Calendar, CalendarDayButton, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ConfirmDialog, FieldError, FloatingSheet, FloatingSheetBody, FloatingSheetFooter, FloatingSheetStack, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, confirmDialogDefaultLabels, floatingSheetDefaultLabels, useField } from './chunk-UUTXPPRN.js';
3
- export { CopyButton, copyButtonLabels } from './chunk-JAHTUAQL.js';
4
- import { toggleVariants } from './chunk-LKSM3WLK.js';
5
- export { Toggle, toggleVariants } from './chunk-LKSM3WLK.js';
6
- import { Label } from './chunk-6QM5BA7B.js';
7
- export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Label } from './chunk-6QM5BA7B.js';
1
+ import { Popover, PopoverTrigger, PopoverContent, Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, Select, SelectTrigger, SelectContent, SelectItem, Calendar, FieldContext, FieldError, useField, ConfirmDialog } from './chunk-DW42Z75X.js';
2
+ export { Alert, AlertDescription, AlertTitle, Calendar, CalendarDayButton, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ConfirmDialog, FieldError, FloatingSheet, FloatingSheetBody, FloatingSheetFooter, FloatingSheetStack, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, alertDefaultLabels, confirmDialogDefaultLabels, floatingSheetDefaultLabels, useField } from './chunk-DW42Z75X.js';
3
+ export { CopyButton, copyButtonLabels } from './chunk-MCMBS2SB.js';
4
+ import { toggleVariants } from './chunk-SBLZ6T3D.js';
5
+ export { Toggle, toggleVariants } from './chunk-SBLZ6T3D.js';
6
+ import { Label } from './chunk-O5DZTX7D.js';
7
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Label } from './chunk-O5DZTX7D.js';
8
8
  import { useAppearance } from './chunk-IQMRJXEO.js';
9
- export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, cardVariants } from './chunk-SA5LM2GD.js';
10
- import { useUiLabels } from './chunk-5AJFQ6C4.js';
11
- export { UiLocaleProvider, useUiLabels, useUiLocale } from './chunk-5AJFQ6C4.js';
12
- import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuItem } from './chunk-MNGNBEYN.js';
13
- export { Avatar, AvatarFallback, AvatarImage, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Collapsible, CollapsibleContent, CollapsibleTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Icon, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, useSidebar } from './chunk-MNGNBEYN.js';
14
- export { Separator } from './chunk-UUEWFCKT.js';
15
- import { Input } from './chunk-6X4TKSF6.js';
16
- export { Input } from './chunk-6X4TKSF6.js';
17
- import { cn, focusRing, nestedRadius, nestedSurfaceReset, nestedEdgeToEdge, elevatedSurface, modalSurface, Button, menuSurface, fieldSurface, floatingSurface, panelSurface, buttonVariants, Spinner } from './chunk-DSD7MVLL.js';
18
- export { Button, Spinner, buttonVariants, cn, controlFill, elevatedSurface, focusRing, menuHighlight, nestedEdgeToEdge, nestedRadius, nestedSurfaceReset, recessedSurface, spinnerVariants, surface } from './chunk-DSD7MVLL.js';
9
+ export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, cardVariants } from './chunk-2HLBBU3O.js';
10
+ import { useUiLabels } from './chunk-QNF4LJVT.js';
11
+ export { UiLocaleProvider, useUiLabels, useUiLocale } from './chunk-QNF4LJVT.js';
12
+ import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuItem } from './chunk-3HKIYFWI.js';
13
+ export { Avatar, AvatarFallback, AvatarImage, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Collapsible, CollapsibleContent, CollapsibleTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Icon, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, useSidebar } from './chunk-3HKIYFWI.js';
14
+ import { Input } from './chunk-UTSTTTH5.js';
15
+ export { Input, Separator } from './chunk-UTSTTTH5.js';
16
+ import { cn, focusRing, nestedRadius, nestedSurfaceReset, nestedEdgeToEdge, elevatedSurface, modalSurface, Button, menuSurface, fieldFocus, fieldSurface, floatingSurface, panelSurface, buttonVariants, Spinner } from './chunk-I5UZAJB4.js';
17
+ export { Button, Spinner, buttonVariants, cn, controlFill, elevatedSurface, focusRing, menuHighlight, nestedEdgeToEdge, nestedRadius, nestedSurfaceReset, recessedSurface, spinnerVariants, surface } from './chunk-I5UZAJB4.js';
19
18
  import * as React3 from 'react';
20
19
  import { useState, useRef, useCallback, useEffect, useMemo, useId } from 'react';
21
20
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -160,37 +159,38 @@ function useConfirmDialog() {
160
159
  }
161
160
  function Accordion({
162
161
  className,
162
+ slotName = "accordion",
163
163
  ...props
164
164
  }) {
165
165
  return /* @__PURE__ */ jsx(
166
166
  AccordionPrimitive.Root,
167
167
  {
168
- "data-slot": "accordion",
169
168
  className: cn(elevatedSurface, "px-5 bg-card", className),
170
- ...props
169
+ ...props,
170
+ "data-slot": slotName
171
171
  }
172
172
  );
173
173
  }
174
- var AccordionItem = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
174
+ var AccordionItem = React3.forwardRef(({ className, slotName = "accordion-item", ...props }, ref) => /* @__PURE__ */ jsx(
175
175
  AccordionPrimitive.Item,
176
176
  {
177
- "data-slot": "accordion-item",
178
177
  ref,
179
178
  className: cn("border-b border-border last:border-b-0", className),
180
- ...props
179
+ ...props,
180
+ "data-slot": slotName
181
181
  }
182
182
  ));
183
183
  AccordionItem.displayName = "AccordionItem";
184
- var AccordionTrigger = React3.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
184
+ var AccordionTrigger = React3.forwardRef(({ className, children, slotName = "accordion-trigger", ...props }, ref) => /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
185
185
  AccordionPrimitive.Trigger,
186
186
  {
187
- "data-slot": "accordion-trigger",
188
187
  ref,
189
188
  className: cn(
190
189
  `text-base py-4 font-medium rounded-xl data-[state=open]:font-semibold flex flex-1 items-center justify-between transition-all [&[data-state=open]>svg]:rotate-180 ${focusRing}`,
191
190
  className
192
191
  ),
193
192
  ...props,
193
+ "data-slot": slotName,
194
194
  children: [
195
195
  children,
196
196
  /* @__PURE__ */ jsx(ChevronDown, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
@@ -198,63 +198,56 @@ var AccordionTrigger = React3.forwardRef(({ className, children, ...props }, ref
198
198
  }
199
199
  ) }));
200
200
  AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
201
- var AccordionContent = React3.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
201
+ var AccordionContent = React3.forwardRef(({ className, children, slotName = "accordion-content", ...props }, ref) => /* @__PURE__ */ jsx(
202
202
  AccordionPrimitive.Content,
203
203
  {
204
- "data-slot": "accordion-content",
205
204
  ref,
206
205
  className: "text-md data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden transition-all",
207
206
  ...props,
207
+ "data-slot": slotName,
208
208
  children: /* @__PURE__ */ jsx("div", { className: cn("pb-4 pt-0", className), children })
209
209
  }
210
210
  ));
211
211
  AccordionContent.displayName = AccordionPrimitive.Content.displayName;
212
212
  function AlertDialog({
213
+ slotName = "alert-dialog",
213
214
  ...props
214
215
  }) {
215
- return /* @__PURE__ */ jsx(AlertDialog$1.Root, { "data-slot": "alert-dialog", ...props });
216
+ return /* @__PURE__ */ jsx(AlertDialog$1.Root, { ...props, "data-slot": slotName });
216
217
  }
217
218
  function AlertDialogTrigger({
219
+ slotName = "alert-dialog-trigger",
218
220
  ...props
219
221
  }) {
220
- return /* @__PURE__ */ jsx(
221
- AlertDialog$1.Trigger,
222
- {
223
- "data-slot": "alert-dialog-trigger",
224
- ...props
225
- }
226
- );
222
+ return /* @__PURE__ */ jsx(AlertDialog$1.Trigger, { ...props, "data-slot": slotName });
227
223
  }
228
224
  function AlertDialogPortal({
225
+ slotName = "alert-dialog-portal",
229
226
  ...props
230
227
  }) {
231
- return /* @__PURE__ */ jsx(
232
- AlertDialog$1.Portal,
233
- {
234
- "data-slot": "alert-dialog-portal",
235
- ...props
236
- }
237
- );
228
+ return /* @__PURE__ */ jsx(AlertDialog$1.Portal, { ...props, "data-slot": slotName });
238
229
  }
239
230
  function AlertDialogOverlay({
240
231
  className,
232
+ slotName = "alert-dialog-overlay",
241
233
  ...props
242
234
  }) {
243
235
  return /* @__PURE__ */ jsx(
244
236
  AlertDialog$1.Overlay,
245
237
  {
246
- "data-slot": "alert-dialog-overlay",
247
238
  className: cn(
248
239
  "inset-0 bg-black/60 backdrop-blur-sm data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0 fixed z-50",
249
240
  className
250
241
  ),
251
- ...props
242
+ ...props,
243
+ "data-slot": slotName
252
244
  }
253
245
  );
254
246
  }
255
247
  function AlertDialogContent({
256
248
  className,
257
249
  size = "default",
250
+ slotName = "alert-dialog-content",
258
251
  ...props
259
252
  }) {
260
253
  return /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
@@ -262,91 +255,96 @@ function AlertDialogContent({
262
255
  /* @__PURE__ */ jsx(
263
256
  AlertDialog$1.Content,
264
257
  {
265
- "data-slot": "alert-dialog-content",
266
258
  "data-size": size,
267
259
  className: cn(
268
260
  `${modalSurface} group/alert-dialog-content gap-4 p-6 md:p-8 data-[size=sm]:max-w-xs data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[size=default]:sm:max-w-lg fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] duration-200`,
269
261
  className
270
262
  ),
271
- ...props
263
+ ...props,
264
+ "data-slot": slotName
272
265
  }
273
266
  )
274
267
  ] });
275
268
  }
276
269
  function AlertDialogHeader({
277
270
  className,
271
+ slotName = "alert-dialog-header",
278
272
  ...props
279
273
  }) {
280
274
  return /* @__PURE__ */ jsx(
281
275
  "div",
282
276
  {
283
- "data-slot": "alert-dialog-header",
284
277
  className: cn(
285
278
  "gap-1.5 has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr] grid grid-rows-[auto_1fr] place-items-center text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr]",
286
279
  className
287
280
  ),
288
- ...props
281
+ ...props,
282
+ "data-slot": slotName
289
283
  }
290
284
  );
291
285
  }
292
286
  function AlertDialogFooter({
293
287
  className,
288
+ slotName = "alert-dialog-footer",
294
289
  ...props
295
290
  }) {
296
291
  return /* @__PURE__ */ jsx(
297
292
  "div",
298
293
  {
299
- "data-slot": "alert-dialog-footer",
300
294
  className: cn(
301
295
  "gap-2 sm:flex-row sm:justify-end flex flex-col-reverse group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2",
302
296
  className
303
297
  ),
304
- ...props
298
+ ...props,
299
+ "data-slot": slotName
305
300
  }
306
301
  );
307
302
  }
308
303
  function AlertDialogTitle({
309
304
  className,
305
+ slotName = "alert-dialog-title",
310
306
  ...props
311
307
  }) {
312
308
  return /* @__PURE__ */ jsx(
313
309
  AlertDialog$1.Title,
314
310
  {
315
- "data-slot": "alert-dialog-title",
316
311
  className: cn(
317
312
  "text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",
318
313
  className
319
314
  ),
320
- ...props
315
+ ...props,
316
+ "data-slot": slotName
321
317
  }
322
318
  );
323
319
  }
324
320
  function AlertDialogDescription({
325
321
  className,
322
+ slotName = "alert-dialog-description",
326
323
  ...props
327
324
  }) {
328
325
  return /* @__PURE__ */ jsx(
329
326
  AlertDialog$1.Description,
330
327
  {
331
- "data-slot": "alert-dialog-description",
332
328
  className: cn("text-sm text-muted-foreground", className),
333
- ...props
329
+ ...props,
330
+ "data-slot": slotName
334
331
  }
335
332
  );
336
333
  }
337
334
  function AlertDialogMedia({
338
335
  className,
336
+ slotName = "alert-dialog-media",
339
337
  ...props
340
338
  }) {
341
339
  return /* @__PURE__ */ jsx(
342
340
  "div",
343
341
  {
344
- "data-slot": "alert-dialog-media",
345
342
  className: cn(
346
343
  "mb-2 size-16 sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8 rounded-2xl inline-flex items-center justify-center bg-muted",
347
344
  className
348
345
  ),
349
- ...props
346
+ ...props,
347
+ "data-slot": slotName
350
348
  }
351
349
  );
352
350
  }
@@ -354,14 +352,15 @@ function AlertDialogAction({
354
352
  className,
355
353
  variant = "default",
356
354
  size = "default",
355
+ slotName = "alert-dialog-action",
357
356
  ...props
358
357
  }) {
359
358
  return /* @__PURE__ */ jsx(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsx(
360
359
  AlertDialog$1.Action,
361
360
  {
362
- "data-slot": "alert-dialog-action",
363
361
  className: cn(className),
364
- ...props
362
+ ...props,
363
+ "data-slot": slotName
365
364
  }
366
365
  ) });
367
366
  }
@@ -369,14 +368,15 @@ function AlertDialogCancel({
369
368
  className,
370
369
  variant = "outline",
371
370
  size = "default",
371
+ slotName = "alert-dialog-cancel",
372
372
  ...props
373
373
  }) {
374
374
  return /* @__PURE__ */ jsx(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsx(
375
375
  AlertDialog$1.Cancel,
376
376
  {
377
- "data-slot": "alert-dialog-cancel",
378
377
  className: cn(className),
379
- ...props
378
+ ...props,
379
+ "data-slot": slotName
380
380
  }
381
381
  ) });
382
382
  }
@@ -389,12 +389,12 @@ function ToggleGroup({
389
389
  variant,
390
390
  size,
391
391
  children,
392
+ slotName = "toggle-group",
392
393
  ...props
393
394
  }) {
394
395
  return /* @__PURE__ */ jsx(
395
396
  ToggleGroupPrimitive.Root,
396
397
  {
397
- "data-slot": "toggle-group",
398
398
  "data-variant": variant,
399
399
  "data-size": size,
400
400
  className: cn(
@@ -402,6 +402,7 @@ function ToggleGroup({
402
402
  className
403
403
  ),
404
404
  ...props,
405
+ "data-slot": slotName,
405
406
  children: /* @__PURE__ */ jsx(ToggleGroupContext.Provider, { value: { variant, size }, children })
406
407
  }
407
408
  );
@@ -411,13 +412,13 @@ function ToggleGroupItem({
411
412
  children,
412
413
  variant,
413
414
  size,
415
+ slotName = "toggle-group-item",
414
416
  ...props
415
417
  }) {
416
418
  const context = React3.useContext(ToggleGroupContext);
417
419
  return /* @__PURE__ */ jsx(
418
420
  ToggleGroupPrimitive.Item,
419
421
  {
420
- "data-slot": "toggle-group-item",
421
422
  "data-variant": context.variant || variant,
422
423
  "data-size": context.size || size,
423
424
  className: cn(
@@ -429,6 +430,7 @@ function ToggleGroupItem({
429
430
  className
430
431
  ),
431
432
  ...props,
433
+ "data-slot": slotName,
432
434
  children
433
435
  }
434
436
  );
@@ -452,6 +454,7 @@ function AppearanceToggle({
452
454
  className,
453
455
  variant = "segmented",
454
456
  labels: labelOverrides,
457
+ slotName = "appearance-toggle",
455
458
  ...props
456
459
  }) {
457
460
  const labels = useUiLabels(
@@ -466,15 +469,15 @@ function AppearanceToggle({
466
469
  return /* @__PURE__ */ jsx(
467
470
  "div",
468
471
  {
469
- "data-slot": "appearance-toggle",
470
472
  "data-variant": "menu",
471
473
  className: cn("inline-flex", className),
472
474
  ...props,
475
+ "data-slot": slotName,
473
476
  children: /* @__PURE__ */ jsxs(DropdownMenu, { children: [
474
477
  /* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
475
478
  Button,
476
479
  {
477
- "data-slot": "appearance-toggle-trigger",
480
+ slotName: "appearance-toggle-trigger",
478
481
  variant: "ghost",
479
482
  size: "icon-sm",
480
483
  "aria-label": labels.groupLabel,
@@ -489,7 +492,7 @@ function AppearanceToggle({
489
492
  children: OPTIONS.map((option) => /* @__PURE__ */ jsxs(
490
493
  DropdownMenuRadioItem,
491
494
  {
492
- "data-slot": "appearance-toggle-item",
495
+ slotName: "appearance-toggle-item",
493
496
  value: option.value,
494
497
  children: [
495
498
  /* @__PURE__ */ jsx(option.icon, { "aria-hidden": "true" }),
@@ -507,10 +510,10 @@ function AppearanceToggle({
507
510
  return /* @__PURE__ */ jsx(
508
511
  "div",
509
512
  {
510
- "data-slot": "appearance-toggle",
511
513
  "data-variant": "segmented",
512
514
  className: cn("inline-flex", className),
513
515
  ...props,
516
+ "data-slot": slotName,
514
517
  children: /* @__PURE__ */ jsx(
515
518
  ToggleGroup,
516
519
  {
@@ -526,7 +529,7 @@ function AppearanceToggle({
526
529
  children: OPTIONS.map((option) => /* @__PURE__ */ jsxs(
527
530
  ToggleGroupItem,
528
531
  {
529
- "data-slot": "appearance-toggle-item",
532
+ slotName: "appearance-toggle-item",
530
533
  value: option.value,
531
534
  "aria-label": option.label(labels),
532
535
  children: [
@@ -542,18 +545,19 @@ function AppearanceToggle({
542
545
  );
543
546
  }
544
547
  function AspectRatio({
548
+ slotName = "aspect-ratio",
545
549
  ...props
546
550
  }) {
547
- return /* @__PURE__ */ jsx(AspectRatio$1.Root, { "data-slot": "aspect-ratio", ...props });
551
+ return /* @__PURE__ */ jsx(AspectRatio$1.Root, { ...props, "data-slot": slotName });
548
552
  }
549
553
  var badgeVariants = cva(
550
- "inline-flex items-center justify-center rounded-full border px-2.5 py-1 text-xs font-semibold w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
554
+ "inline-flex items-center justify-center rounded-full border px-2.5 py-1 text-xs font-semibold w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:outline-solid focus-visible:outline-1 focus-visible:outline-offset-0 focus-visible:outline-ring aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
551
555
  {
552
556
  variants: {
553
557
  variant: {
554
558
  default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
555
559
  secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
556
- destructive: "border-transparent bg-destructive text-destructive-foreground [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
560
+ destructive: "border-transparent bg-destructive text-destructive-foreground [a&]:hover:bg-destructive/90 focus-visible:outline-destructive",
557
561
  outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
558
562
  }
559
563
  },
@@ -566,15 +570,16 @@ function Badge({
566
570
  className,
567
571
  variant,
568
572
  asChild = false,
573
+ slotName = "badge",
569
574
  ...props
570
575
  }) {
571
576
  const Comp = asChild ? Slot : "span";
572
577
  return /* @__PURE__ */ jsx(
573
578
  Comp,
574
579
  {
575
- "data-slot": "badge",
576
580
  className: cn(badgeVariants({ variant }), className),
577
- ...props
581
+ ...props,
582
+ "data-slot": slotName
578
583
  }
579
584
  );
580
585
  }
@@ -593,6 +598,7 @@ function Carousel({
593
598
  plugins,
594
599
  className,
595
600
  children,
601
+ slotName = "carousel",
596
602
  ...props
597
603
  }) {
598
604
  const [carouselRef, api] = useEmblaCarousel(
@@ -667,22 +673,26 @@ function Carousel({
667
673
  ),
668
674
  role: "region",
669
675
  "aria-roledescription": "carousel",
670
- "data-slot": "carousel",
671
676
  ...props,
677
+ "data-slot": slotName,
672
678
  children
673
679
  }
674
680
  )
675
681
  }
676
682
  );
677
683
  }
678
- function CarouselContent({ className, ...props }) {
684
+ function CarouselContent({
685
+ className,
686
+ slotName = "carousel-content",
687
+ ...props
688
+ }) {
679
689
  const { carouselRef, orientation } = useCarousel();
680
690
  return /* @__PURE__ */ jsx(
681
691
  "div",
682
692
  {
683
693
  ref: carouselRef,
684
694
  className: cn(nestedRadius, "overflow-hidden"),
685
- "data-slot": "carousel-content",
695
+ "data-slot": slotName,
686
696
  children: /* @__PURE__ */ jsx(
687
697
  "div",
688
698
  {
@@ -697,20 +707,24 @@ function CarouselContent({ className, ...props }) {
697
707
  }
698
708
  );
699
709
  }
700
- function CarouselItem({ className, ...props }) {
710
+ function CarouselItem({
711
+ className,
712
+ slotName = "carousel-item",
713
+ ...props
714
+ }) {
701
715
  const { orientation } = useCarousel();
702
716
  return /* @__PURE__ */ jsx(
703
717
  "div",
704
718
  {
705
719
  role: "group",
706
720
  "aria-roledescription": "slide",
707
- "data-slot": "carousel-item",
708
721
  className: cn(
709
722
  "min-w-0 shrink-0 grow-0 basis-full",
710
723
  orientation === "horizontal" ? "pl-4" : "pt-4",
711
724
  className
712
725
  ),
713
- ...props
726
+ ...props,
727
+ "data-slot": slotName
714
728
  }
715
729
  );
716
730
  }
@@ -718,13 +732,13 @@ function CarouselPrevious({
718
732
  className,
719
733
  variant = "outline",
720
734
  size = "icon",
735
+ slotName = "carousel-previous",
721
736
  ...props
722
737
  }) {
723
738
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
724
739
  return /* @__PURE__ */ jsxs(
725
740
  Button,
726
741
  {
727
- "data-slot": "carousel-previous",
728
742
  variant,
729
743
  size,
730
744
  className: cn(
@@ -735,6 +749,7 @@ function CarouselPrevious({
735
749
  disabled: !canScrollPrev,
736
750
  onClick: scrollPrev,
737
751
  ...props,
752
+ slotName,
738
753
  children: [
739
754
  /* @__PURE__ */ jsx(ArrowLeft, {}),
740
755
  /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Previous slide" })
@@ -746,13 +761,13 @@ function CarouselNext({
746
761
  className,
747
762
  variant = "outline",
748
763
  size = "icon",
764
+ slotName = "carousel-next",
749
765
  ...props
750
766
  }) {
751
767
  const { orientation, scrollNext, canScrollNext } = useCarousel();
752
768
  return /* @__PURE__ */ jsxs(
753
769
  Button,
754
770
  {
755
- "data-slot": "carousel-next",
756
771
  variant,
757
772
  size,
758
773
  className: cn(
@@ -763,6 +778,7 @@ function CarouselNext({
763
778
  disabled: !canScrollNext,
764
779
  onClick: scrollNext,
765
780
  ...props,
781
+ slotName,
766
782
  children: [
767
783
  /* @__PURE__ */ jsx(ArrowRight, {}),
768
784
  /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Next slide" })
@@ -786,6 +802,7 @@ function ChartContainer({
786
802
  children,
787
803
  config,
788
804
  initialDimension = INITIAL_DIMENSION,
805
+ slotName = "chart",
789
806
  ...props
790
807
  }) {
791
808
  const uniqueId = React3.useId();
@@ -793,7 +810,6 @@ function ChartContainer({
793
810
  return /* @__PURE__ */ jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs(
794
811
  "div",
795
812
  {
796
- "data-slot": "chart",
797
813
  "data-chart": chartId,
798
814
  className: cn(
799
815
  elevatedSurface,
@@ -803,6 +819,7 @@ function ChartContainer({
803
819
  className
804
820
  ),
805
821
  ...props,
822
+ "data-slot": slotName,
806
823
  children: [
807
824
  /* @__PURE__ */ jsx(ChartStyle, { id: chartId, config }),
808
825
  /* @__PURE__ */ jsx(
@@ -1029,17 +1046,18 @@ function getPayloadConfigFromPayload(config, payload, key) {
1029
1046
  }
1030
1047
  function Checkbox({
1031
1048
  className,
1049
+ slotName = "checkbox",
1032
1050
  ...props
1033
1051
  }) {
1034
1052
  return /* @__PURE__ */ jsx(
1035
1053
  CheckboxPrimitive.Root,
1036
1054
  {
1037
- "data-slot": "checkbox",
1038
1055
  className: cn(
1039
1056
  `peer size-5 shadow-xs shrink-0 rounded-md border border-border transition-all disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground ${focusRing}`,
1040
1057
  className
1041
1058
  ),
1042
1059
  ...props,
1060
+ "data-slot": slotName,
1043
1061
  children: /* @__PURE__ */ jsx(
1044
1062
  CheckboxPrimitive.Indicator,
1045
1063
  {
@@ -1057,7 +1075,6 @@ var comboboxDefaultLabels = {
1057
1075
  emptyText: "No results."
1058
1076
  };
1059
1077
  function Combobox({
1060
- id,
1061
1078
  value,
1062
1079
  options,
1063
1080
  onChange,
@@ -1065,7 +1082,12 @@ function Combobox({
1065
1082
  searchPlaceholder,
1066
1083
  emptyText,
1067
1084
  disabled = false,
1068
- invalid = false
1085
+ invalid = false,
1086
+ required,
1087
+ className,
1088
+ "aria-invalid": ariaInvalid,
1089
+ slotName = "combobox",
1090
+ ...trigger
1069
1091
  }) {
1070
1092
  const labels = useUiLabels("combobox", comboboxDefaultLabels, {
1071
1093
  placeholder,
@@ -1078,17 +1100,21 @@ function Combobox({
1078
1100
  /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
1079
1101
  Button,
1080
1102
  {
1081
- "data-slot": "combobox",
1082
- id,
1083
1103
  variant: "outline",
1104
+ ...trigger,
1084
1105
  role: "combobox",
1085
1106
  "aria-expanded": open,
1107
+ "aria-required": required || void 0,
1108
+ "aria-invalid": ariaInvalid ?? (invalid || void 0),
1086
1109
  disabled,
1087
1110
  className: cn(
1088
1111
  "h-11 rounded-2xl w-full justify-between border-border bg-muted/40 hover:bg-muted disabled:cursor-not-allowed disabled:opacity-50",
1112
+ fieldFocus,
1089
1113
  !selected && "text-muted-foreground",
1090
- invalid && "border-destructive ring-destructive"
1114
+ invalid && "border-destructive ring-destructive",
1115
+ className
1091
1116
  ),
1117
+ slotName,
1092
1118
  children: [
1093
1119
  selected ? selected.label : labels.placeholder,
1094
1120
  /* @__PURE__ */ jsx(ChevronsUpDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" })
@@ -1141,69 +1167,58 @@ function Combobox({
1141
1167
  ] });
1142
1168
  }
1143
1169
  function ContextMenu({
1170
+ slotName = "context-menu",
1144
1171
  ...props
1145
1172
  }) {
1146
- return /* @__PURE__ */ jsx(ContextMenu$1.Root, { "data-slot": "context-menu", ...props });
1173
+ return /* @__PURE__ */ jsx(ContextMenu$1.Root, { ...props, "data-slot": slotName });
1147
1174
  }
1148
1175
  function ContextMenuTrigger({
1176
+ slotName = "context-menu-trigger",
1149
1177
  ...props
1150
1178
  }) {
1151
- return /* @__PURE__ */ jsx(
1152
- ContextMenu$1.Trigger,
1153
- {
1154
- "data-slot": "context-menu-trigger",
1155
- ...props
1156
- }
1157
- );
1179
+ return /* @__PURE__ */ jsx(ContextMenu$1.Trigger, { ...props, "data-slot": slotName });
1158
1180
  }
1159
1181
  function ContextMenuGroup({
1182
+ slotName = "context-menu-group",
1160
1183
  ...props
1161
1184
  }) {
1162
- return /* @__PURE__ */ jsx(ContextMenu$1.Group, { "data-slot": "context-menu-group", ...props });
1185
+ return /* @__PURE__ */ jsx(ContextMenu$1.Group, { ...props, "data-slot": slotName });
1163
1186
  }
1164
1187
  function ContextMenuPortal({
1188
+ slotName = "context-menu-portal",
1165
1189
  ...props
1166
1190
  }) {
1167
- return /* @__PURE__ */ jsx(
1168
- ContextMenu$1.Portal,
1169
- {
1170
- "data-slot": "context-menu-portal",
1171
- ...props
1172
- }
1173
- );
1191
+ return /* @__PURE__ */ jsx(ContextMenu$1.Portal, { ...props, "data-slot": slotName });
1174
1192
  }
1175
1193
  function ContextMenuSub({
1194
+ slotName = "context-menu-sub",
1176
1195
  ...props
1177
1196
  }) {
1178
- return /* @__PURE__ */ jsx(ContextMenu$1.Sub, { "data-slot": "context-menu-sub", ...props });
1197
+ return /* @__PURE__ */ jsx(ContextMenu$1.Sub, { ...props, "data-slot": slotName });
1179
1198
  }
1180
1199
  function ContextMenuRadioGroup({
1200
+ slotName = "context-menu-radio-group",
1181
1201
  ...props
1182
1202
  }) {
1183
- return /* @__PURE__ */ jsx(
1184
- ContextMenu$1.RadioGroup,
1185
- {
1186
- "data-slot": "context-menu-radio-group",
1187
- ...props
1188
- }
1189
- );
1203
+ return /* @__PURE__ */ jsx(ContextMenu$1.RadioGroup, { ...props, "data-slot": slotName });
1190
1204
  }
1191
1205
  function ContextMenuSubTrigger({
1192
1206
  className,
1193
1207
  inset,
1194
1208
  children,
1209
+ slotName = "context-menu-sub-trigger",
1195
1210
  ...props
1196
1211
  }) {
1197
1212
  return /* @__PURE__ */ jsxs(
1198
1213
  ContextMenu$1.SubTrigger,
1199
1214
  {
1200
- "data-slot": "context-menu-sub-trigger",
1201
1215
  "data-inset": inset,
1202
1216
  className: cn(
1203
1217
  "px-2 py-1.5 text-sm data-[inset]:pl-8 [&_svg:not([class*='size-'])]:size-4 rounded-xl flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-muted-foreground",
1204
1218
  className
1205
1219
  ),
1206
1220
  ...props,
1221
+ "data-slot": slotName,
1207
1222
  children: [
1208
1223
  children,
1209
1224
  /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ml-auto" })
@@ -1213,33 +1228,35 @@ function ContextMenuSubTrigger({
1213
1228
  }
1214
1229
  function ContextMenuSubContent({
1215
1230
  className,
1231
+ slotName = "context-menu-sub-content",
1216
1232
  ...props
1217
1233
  }) {
1218
1234
  return /* @__PURE__ */ jsx(
1219
1235
  ContextMenu$1.SubContent,
1220
1236
  {
1221
- "data-slot": "context-menu-sub-content",
1222
1237
  className: cn(
1223
1238
  `${menuSurface} p-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden`,
1224
1239
  className
1225
1240
  ),
1226
- ...props
1241
+ ...props,
1242
+ "data-slot": slotName
1227
1243
  }
1228
1244
  );
1229
1245
  }
1230
1246
  function ContextMenuContent({
1231
1247
  className,
1248
+ slotName = "context-menu-content",
1232
1249
  ...props
1233
1250
  }) {
1234
1251
  return /* @__PURE__ */ jsx(ContextMenu$1.Portal, { children: /* @__PURE__ */ jsx(
1235
1252
  ContextMenu$1.Content,
1236
1253
  {
1237
- "data-slot": "context-menu-content",
1238
1254
  className: cn(
1239
1255
  `${menuSurface} p-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto`,
1240
1256
  className
1241
1257
  ),
1242
- ...props
1258
+ ...props,
1259
+ "data-slot": slotName
1243
1260
  }
1244
1261
  ) });
1245
1262
  }
@@ -1247,19 +1264,20 @@ function ContextMenuItem({
1247
1264
  className,
1248
1265
  inset,
1249
1266
  variant = "default",
1267
+ slotName = "context-menu-item",
1250
1268
  ...props
1251
1269
  }) {
1252
1270
  return /* @__PURE__ */ jsx(
1253
1271
  ContextMenu$1.Item,
1254
1272
  {
1255
- "data-slot": "context-menu-item",
1256
1273
  "data-inset": inset,
1257
1274
  "data-variant": variant,
1258
1275
  className: cn(
1259
1276
  "gap-2 px-2 py-1.5 text-sm data-[inset]:pl-8 [&_svg:not([class*='size-'])]:size-4 rounded-xl relative flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",
1260
1277
  className
1261
1278
  ),
1262
- ...props
1279
+ ...props,
1280
+ "data-slot": slotName
1263
1281
  }
1264
1282
  );
1265
1283
  }
@@ -1267,18 +1285,19 @@ function ContextMenuCheckboxItem({
1267
1285
  className,
1268
1286
  children,
1269
1287
  checked,
1288
+ slotName = "context-menu-checkbox-item",
1270
1289
  ...props
1271
1290
  }) {
1272
1291
  return /* @__PURE__ */ jsxs(
1273
1292
  ContextMenu$1.CheckboxItem,
1274
1293
  {
1275
- "data-slot": "context-menu-checkbox-item",
1276
1294
  className: cn(
1277
1295
  "gap-2 py-1.5 pr-2 pl-8 text-sm [&_svg:not([class*='size-'])]:size-4 rounded-xl relative flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
1278
1296
  className
1279
1297
  ),
1280
1298
  checked,
1281
1299
  ...props,
1300
+ "data-slot": slotName,
1282
1301
  children: [
1283
1302
  /* @__PURE__ */ jsx("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenu$1.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) }) }),
1284
1303
  children
@@ -1289,17 +1308,18 @@ function ContextMenuCheckboxItem({
1289
1308
  function ContextMenuRadioItem({
1290
1309
  className,
1291
1310
  children,
1311
+ slotName = "context-menu-radio-item",
1292
1312
  ...props
1293
1313
  }) {
1294
1314
  return /* @__PURE__ */ jsxs(
1295
1315
  ContextMenu$1.RadioItem,
1296
1316
  {
1297
- "data-slot": "context-menu-radio-item",
1298
1317
  className: cn(
1299
1318
  "gap-2 py-1.5 pr-2 pl-8 text-sm [&_svg:not([class*='size-'])]:size-4 rounded-xl relative flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
1300
1319
  className
1301
1320
  ),
1302
1321
  ...props,
1322
+ "data-slot": slotName,
1303
1323
  children: [
1304
1324
  /* @__PURE__ */ jsx("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenu$1.ItemIndicator, { children: /* @__PURE__ */ jsx(CircleIcon, { className: "size-2 fill-current" }) }) }),
1305
1325
  children
@@ -1310,47 +1330,50 @@ function ContextMenuRadioItem({
1310
1330
  function ContextMenuLabel({
1311
1331
  className,
1312
1332
  inset,
1333
+ slotName = "context-menu-label",
1313
1334
  ...props
1314
1335
  }) {
1315
1336
  return /* @__PURE__ */ jsx(
1316
1337
  ContextMenu$1.Label,
1317
1338
  {
1318
- "data-slot": "context-menu-label",
1319
1339
  "data-inset": inset,
1320
1340
  className: cn(
1321
1341
  "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8 text-foreground",
1322
1342
  className
1323
1343
  ),
1324
- ...props
1344
+ ...props,
1345
+ "data-slot": slotName
1325
1346
  }
1326
1347
  );
1327
1348
  }
1328
1349
  function ContextMenuSeparator({
1329
1350
  className,
1351
+ slotName = "context-menu-separator",
1330
1352
  ...props
1331
1353
  }) {
1332
1354
  return /* @__PURE__ */ jsx(
1333
1355
  ContextMenu$1.Separator,
1334
1356
  {
1335
- "data-slot": "context-menu-separator",
1336
1357
  className: cn("-mx-1 my-1 h-px bg-border", className),
1337
- ...props
1358
+ ...props,
1359
+ "data-slot": slotName
1338
1360
  }
1339
1361
  );
1340
1362
  }
1341
1363
  function ContextMenuShortcut({
1342
1364
  className,
1365
+ slotName = "context-menu-shortcut",
1343
1366
  ...props
1344
1367
  }) {
1345
1368
  return /* @__PURE__ */ jsx(
1346
1369
  "span",
1347
1370
  {
1348
- "data-slot": "context-menu-shortcut",
1349
1371
  className: cn(
1350
1372
  "text-xs tracking-widest ml-auto text-muted-foreground",
1351
1373
  className
1352
1374
  ),
1353
- ...props
1375
+ ...props,
1376
+ "data-slot": slotName
1354
1377
  }
1355
1378
  );
1356
1379
  }
@@ -1363,15 +1386,16 @@ function FilterPopover({
1363
1386
  selected,
1364
1387
  onToggle,
1365
1388
  width,
1366
- noOptionsLabel
1389
+ noOptionsLabel,
1390
+ slotName = "data-table-faceted-filter"
1367
1391
  }) {
1368
1392
  return /* @__PURE__ */ jsxs(Popover, { children: [
1369
1393
  /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
1370
1394
  Button,
1371
1395
  {
1372
1396
  variant: "outline",
1373
- "data-slot": "data-table-faceted-filter",
1374
1397
  className: "h-11 rounded-2xl border-dashed border-border",
1398
+ slotName,
1375
1399
  children: [
1376
1400
  /* @__PURE__ */ jsx(PlusCircle, { className: "mr-2 size-4" }),
1377
1401
  label,
@@ -1481,14 +1505,15 @@ function ServerFacetedFilter({
1481
1505
  }
1482
1506
  function RowActionsMenu({
1483
1507
  row,
1484
- actions
1508
+ actions,
1509
+ slotName = "data-table-row-actions"
1485
1510
  }) {
1486
1511
  return /* @__PURE__ */ jsx(
1487
1512
  "div",
1488
1513
  {
1489
1514
  className: "flex justify-end",
1490
- "data-slot": "data-table-row-actions",
1491
1515
  onClick: (event) => event.stopPropagation(),
1516
+ "data-slot": slotName,
1492
1517
  children: /* @__PURE__ */ jsxs(DropdownMenu, { children: [
1493
1518
  /* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
1494
1519
  Button,
@@ -1524,18 +1549,19 @@ function EmptyState({
1524
1549
  description,
1525
1550
  actions,
1526
1551
  compact = false,
1527
- className
1552
+ className,
1553
+ slotName = "empty-state"
1528
1554
  }) {
1529
1555
  return /* @__PURE__ */ jsxs(
1530
1556
  "div",
1531
1557
  {
1532
- "data-slot": "empty-state",
1533
1558
  "data-compact": compact || void 0,
1534
1559
  className: cn(
1535
1560
  "flex h-full w-full flex-col items-center justify-center text-center",
1536
1561
  compact ? "gap-2 px-4 py-6" : "gap-3 px-6 py-12",
1537
1562
  className
1538
1563
  ),
1564
+ "data-slot": slotName,
1539
1565
  children: [
1540
1566
  /* @__PURE__ */ jsx(
1541
1567
  "span",
@@ -1593,16 +1619,16 @@ function EmptyState({
1593
1619
  }
1594
1620
  );
1595
1621
  }
1596
- var Table = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1622
+ var Table = React3.forwardRef(({ className, slotName = "table-container", ...props }, ref) => /* @__PURE__ */ jsx(
1597
1623
  "div",
1598
1624
  {
1599
- "data-slot": "table-container",
1600
1625
  className: cn(
1601
1626
  elevatedSurface,
1602
1627
  nestedSurfaceReset,
1603
1628
  nestedEdgeToEdge,
1604
1629
  "relative w-full overflow-hidden bg-card"
1605
1630
  ),
1631
+ "data-slot": slotName,
1606
1632
  children: /* @__PURE__ */ jsx(
1607
1633
  "div",
1608
1634
  {
@@ -1751,7 +1777,8 @@ function DataTable({
1751
1777
  total,
1752
1778
  onPageChange,
1753
1779
  onCreate,
1754
- createLabel
1780
+ createLabel,
1781
+ slotName = "data-table"
1755
1782
  }) {
1756
1783
  const labels = useUiLabels("dataTable", dataTableDefaultLabels, {
1757
1784
  searchPlaceholder,
@@ -1817,8 +1844,8 @@ function DataTable({
1817
1844
  return /* @__PURE__ */ jsxs(
1818
1845
  "div",
1819
1846
  {
1820
- "data-slot": "data-table",
1821
1847
  className: cn(elevatedSurface, "space-y-4 p-5 bg-card"),
1848
+ "data-slot": slotName,
1822
1849
  children: [
1823
1850
  hasToolbar && /* @__PURE__ */ jsxs("div", { className: "gap-2 flex flex-wrap items-center", children: [
1824
1851
  searchKey !== void 0 && /* @__PURE__ */ jsxs("div", { className: "relative min-w-[200px] flex-1", children: [
@@ -1829,7 +1856,7 @@ function DataTable({
1829
1856
  value: serverSearch ? searchValue ?? "" : globalFilter,
1830
1857
  onChange: (e) => serverSearch ? onSearchChange?.(e.target.value) : setGlobalFilter(e.target.value),
1831
1858
  placeholder: labels.searchPlaceholder,
1832
- className: "h-11 rounded-2xl pl-11 font-medium focus:shadow-lg border-none bg-muted/50 focus:bg-muted"
1859
+ className: `h-11 rounded-2xl pl-11 font-medium border-none bg-muted/50 focus:bg-muted`
1833
1860
  }
1834
1861
  )
1835
1862
  ] }),
@@ -2034,18 +2061,19 @@ function CalendarPopover({
2034
2061
  trigger,
2035
2062
  align = "start",
2036
2063
  className,
2037
- children
2064
+ children,
2065
+ slotName = "calendar-popover"
2038
2066
  }) {
2039
2067
  return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange, children: [
2040
2068
  /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: trigger }),
2041
2069
  /* @__PURE__ */ jsx(
2042
2070
  PopoverContent,
2043
2071
  {
2044
- "data-slot": "calendar-popover",
2045
2072
  className: cn("p-2 w-auto", className),
2046
2073
  align,
2047
2074
  sideOffset: 4,
2048
2075
  collisionPadding: 16,
2076
+ slotName,
2049
2077
  children
2050
2078
  }
2051
2079
  )
@@ -2056,7 +2084,7 @@ var datePickerDefaultLabels = {
2056
2084
  dateFormat: "dd MMM yy",
2057
2085
  clearLabel: "Clear date"
2058
2086
  };
2059
- var triggerClasses = `h-11 px-4 text-sm font-medium flex w-full cursor-pointer items-center gap-2 text-left transition-all disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 ${fieldSurface} ${focusRing}`;
2087
+ var triggerClasses = `h-11 px-4 text-sm font-medium flex w-full cursor-pointer items-center gap-2 text-left transition-all disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 ${fieldSurface} ${fieldFocus}`;
2060
2088
  function boundaries(minDate, maxDate, disabledDays) {
2061
2089
  const matchers = [];
2062
2090
  if (minDate) {
@@ -2072,7 +2100,6 @@ function boundaries(minDate, maxDate, disabledDays) {
2072
2100
  }
2073
2101
  function DatePicker(props) {
2074
2102
  const {
2075
- id,
2076
2103
  value,
2077
2104
  defaultValue,
2078
2105
  onChange,
@@ -2082,11 +2109,15 @@ function DatePicker(props) {
2082
2109
  disabled = false,
2083
2110
  clearable = true,
2084
2111
  invalid = false,
2112
+ required,
2085
2113
  formatDate,
2086
2114
  placeholder,
2087
2115
  dateFormat,
2088
2116
  clearLabel,
2089
- className
2117
+ className,
2118
+ "aria-invalid": ariaInvalid,
2119
+ slotName = "date-picker",
2120
+ ...trigger
2090
2121
  } = props;
2091
2122
  const labels = useUiLabels("datePicker", datePickerDefaultLabels, {
2092
2123
  placeholder,
@@ -2105,77 +2136,71 @@ function DatePicker(props) {
2105
2136
  }
2106
2137
  onChange?.(next);
2107
2138
  }
2108
- return /* @__PURE__ */ jsxs(
2109
- "div",
2110
- {
2111
- "data-slot": "date-picker",
2112
- className: cn("relative w-full", className),
2113
- children: [
2114
- /* @__PURE__ */ jsx(
2115
- CalendarPopover,
2139
+ return /* @__PURE__ */ jsxs("div", { className: cn("relative w-full", className), "data-slot": slotName, children: [
2140
+ /* @__PURE__ */ jsx(
2141
+ CalendarPopover,
2142
+ {
2143
+ open,
2144
+ onOpenChange: setOpen,
2145
+ trigger: /* @__PURE__ */ jsxs(
2146
+ "button",
2116
2147
  {
2117
- open,
2118
- onOpenChange: setOpen,
2119
- trigger: /* @__PURE__ */ jsxs(
2120
- "button",
2121
- {
2122
- type: "button",
2123
- id,
2124
- "data-slot": "date-picker-trigger",
2125
- disabled,
2126
- "aria-invalid": invalid || void 0,
2127
- className: cn(triggerClasses, showClear && "pr-11"),
2128
- children: [
2129
- /* @__PURE__ */ jsx(CalendarIcon, { className: "size-4 shrink-0 opacity-60" }),
2130
- /* @__PURE__ */ jsx(
2131
- "span",
2132
- {
2133
- className: cn(
2134
- "truncate",
2135
- !selected && "text-muted-foreground"
2136
- ),
2137
- children: label
2138
- }
2139
- )
2140
- ]
2141
- }
2142
- ),
2143
- children: /* @__PURE__ */ jsx(
2144
- Calendar,
2145
- {
2146
- mode: "single",
2147
- autoFocus: true,
2148
- selected,
2149
- defaultMonth: selected ?? minDate,
2150
- startMonth: minDate,
2151
- endMonth: maxDate,
2152
- disabled: boundaries(minDate, maxDate, disabledDays),
2153
- onSelect: (date) => {
2154
- if (!date) {
2155
- return;
2156
- }
2157
- commit(date);
2158
- setOpen(false);
2159
- },
2160
- className: "rounded-2xl bg-transparent"
2161
- }
2162
- )
2148
+ ...trigger,
2149
+ type: "button",
2150
+ "data-slot": "date-picker-trigger",
2151
+ disabled,
2152
+ "aria-required": required || void 0,
2153
+ "aria-invalid": ariaInvalid ?? (invalid || void 0),
2154
+ className: cn(triggerClasses, showClear && "pr-11"),
2155
+ children: [
2156
+ /* @__PURE__ */ jsx(CalendarIcon, { className: "size-4 shrink-0 opacity-60" }),
2157
+ /* @__PURE__ */ jsx(
2158
+ "span",
2159
+ {
2160
+ className: cn(
2161
+ "truncate",
2162
+ !selected && "text-muted-foreground"
2163
+ ),
2164
+ children: label
2165
+ }
2166
+ )
2167
+ ]
2163
2168
  }
2164
2169
  ),
2165
- showClear && /* @__PURE__ */ jsx(
2166
- "button",
2170
+ children: /* @__PURE__ */ jsx(
2171
+ Calendar,
2167
2172
  {
2168
- type: "button",
2169
- "data-slot": "date-picker-clear",
2170
- "aria-label": labels.clearLabel,
2171
- onClick: () => commit(void 0),
2172
- className: `size-7 rounded-xl right-2 absolute top-1/2 inline-flex -translate-y-1/2 cursor-pointer items-center justify-center text-muted-foreground hover:text-foreground ${focusRing}`,
2173
- children: /* @__PURE__ */ jsx(X, { className: "size-3.5" })
2173
+ mode: "single",
2174
+ autoFocus: true,
2175
+ selected,
2176
+ defaultMonth: selected ?? minDate,
2177
+ startMonth: minDate,
2178
+ endMonth: maxDate,
2179
+ disabled: boundaries(minDate, maxDate, disabledDays),
2180
+ onSelect: (date) => {
2181
+ if (!date) {
2182
+ return;
2183
+ }
2184
+ commit(date);
2185
+ setOpen(false);
2186
+ },
2187
+ className: "rounded-2xl bg-transparent"
2174
2188
  }
2175
2189
  )
2176
- ]
2177
- }
2178
- );
2190
+ }
2191
+ ),
2192
+ showClear && /* @__PURE__ */ jsx(
2193
+ "button",
2194
+ {
2195
+ type: "button",
2196
+ "data-slot": "date-picker-clear",
2197
+ "aria-label": labels.clearLabel,
2198
+ onClick: () => commit(void 0),
2199
+ className: `size-7 rounded-xl right-2 absolute top-1/2 inline-flex -translate-y-1/2 cursor-pointer items-center justify-center text-muted-foreground hover:text-foreground ${focusRing}`,
2200
+ children: /* @__PURE__ */ jsx(X, { className: "size-3.5" })
2201
+ }
2202
+ )
2203
+ ] });
2179
2204
  }
2180
2205
  function parse(value) {
2181
2206
  return value ? /* @__PURE__ */ new Date(`${value}T00:00:00`) : void 0;
@@ -2189,7 +2214,10 @@ function DateRangeFilter({
2189
2214
  to,
2190
2215
  onChange,
2191
2216
  emptyLabel,
2192
- dateFormat
2217
+ dateFormat,
2218
+ className,
2219
+ slotName = "date-range-filter",
2220
+ ...trigger
2193
2221
  }) {
2194
2222
  const labels = useUiLabels(
2195
2223
  "dateRangeFilter",
@@ -2209,8 +2237,12 @@ function DateRangeFilter({
2209
2237
  Button,
2210
2238
  {
2211
2239
  variant: "outline",
2212
- "data-slot": "date-range-filter",
2213
- className: "h-11 rounded-2xl cursor-pointer border-dashed border-border",
2240
+ ...trigger,
2241
+ className: cn(
2242
+ "h-11 rounded-2xl cursor-pointer border-dashed border-border",
2243
+ className
2244
+ ),
2245
+ slotName,
2214
2246
  children: [
2215
2247
  /* @__PURE__ */ jsx(CalendarRange, { className: "mr-2 size-4" }),
2216
2248
  label,
@@ -2248,52 +2280,57 @@ function DateRangeFilter({
2248
2280
  );
2249
2281
  }
2250
2282
  function Drawer({
2283
+ slotName = "drawer",
2251
2284
  ...props
2252
2285
  }) {
2253
- return /* @__PURE__ */ jsx(Drawer$1.Root, { "data-slot": "drawer", ...props });
2286
+ return /* @__PURE__ */ jsx(Drawer$1.Root, { ...props, "data-slot": slotName });
2254
2287
  }
2255
2288
  function DrawerTrigger({
2289
+ slotName = "drawer-trigger",
2256
2290
  ...props
2257
2291
  }) {
2258
- return /* @__PURE__ */ jsx(Drawer$1.Trigger, { "data-slot": "drawer-trigger", ...props });
2292
+ return /* @__PURE__ */ jsx(Drawer$1.Trigger, { ...props, "data-slot": slotName });
2259
2293
  }
2260
2294
  function DrawerPortal({
2295
+ slotName = "drawer-portal",
2261
2296
  ...props
2262
2297
  }) {
2263
- return /* @__PURE__ */ jsx(Drawer$1.Portal, { "data-slot": "drawer-portal", ...props });
2298
+ return /* @__PURE__ */ jsx(Drawer$1.Portal, { ...props, "data-slot": slotName });
2264
2299
  }
2265
2300
  function DrawerClose({
2301
+ slotName = "drawer-close",
2266
2302
  ...props
2267
2303
  }) {
2268
- return /* @__PURE__ */ jsx(Drawer$1.Close, { "data-slot": "drawer-close", ...props });
2304
+ return /* @__PURE__ */ jsx(Drawer$1.Close, { ...props, "data-slot": slotName });
2269
2305
  }
2270
2306
  function DrawerOverlay({
2271
2307
  className,
2308
+ slotName = "drawer-overlay",
2272
2309
  ...props
2273
2310
  }) {
2274
2311
  return /* @__PURE__ */ jsx(
2275
2312
  Drawer$1.Overlay,
2276
2313
  {
2277
- "data-slot": "drawer-overlay",
2278
2314
  className: cn(
2279
2315
  "inset-0 bg-black/60 backdrop-blur-sm data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0 fixed z-50",
2280
2316
  className
2281
2317
  ),
2282
- ...props
2318
+ ...props,
2319
+ "data-slot": slotName
2283
2320
  }
2284
2321
  );
2285
2322
  }
2286
2323
  function DrawerContent({
2287
2324
  className,
2288
2325
  children,
2326
+ slotName = "drawer-content",
2289
2327
  ...props
2290
2328
  }) {
2291
- return /* @__PURE__ */ jsxs(DrawerPortal, { "data-slot": "drawer-portal", children: [
2329
+ return /* @__PURE__ */ jsxs(DrawerPortal, { slotName: "drawer-portal", children: [
2292
2330
  /* @__PURE__ */ jsx(DrawerOverlay, {}),
2293
2331
  /* @__PURE__ */ jsxs(
2294
2332
  Drawer$1.Content,
2295
2333
  {
2296
- "data-slot": "drawer-content",
2297
2334
  className: cn(
2298
2335
  `${floatingSurface} group/drawer-content fixed z-50 flex h-auto flex-col border-border`,
2299
2336
  "data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:rounded-b-3xl data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:border-b",
@@ -2303,6 +2340,7 @@ function DrawerContent({
2303
2340
  className
2304
2341
  ),
2305
2342
  ...props,
2343
+ "data-slot": slotName,
2306
2344
  children: [
2307
2345
  /* @__PURE__ */ jsx("div", { className: "mt-4 h-2 mx-auto hidden w-[100px] shrink-0 rounded-full bg-muted group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
2308
2346
  children
@@ -2311,52 +2349,62 @@ function DrawerContent({
2311
2349
  )
2312
2350
  ] });
2313
2351
  }
2314
- function DrawerHeader({ className, ...props }) {
2352
+ function DrawerHeader({
2353
+ className,
2354
+ slotName = "drawer-header",
2355
+ ...props
2356
+ }) {
2315
2357
  return /* @__PURE__ */ jsx(
2316
2358
  "div",
2317
2359
  {
2318
- "data-slot": "drawer-header",
2319
2360
  className: cn(
2320
2361
  "gap-0.5 p-4 md:gap-1.5 md:text-left flex flex-col group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center",
2321
2362
  className
2322
2363
  ),
2323
- ...props
2364
+ ...props,
2365
+ "data-slot": slotName
2324
2366
  }
2325
2367
  );
2326
2368
  }
2327
- function DrawerFooter({ className, ...props }) {
2369
+ function DrawerFooter({
2370
+ className,
2371
+ slotName = "drawer-footer",
2372
+ ...props
2373
+ }) {
2328
2374
  return /* @__PURE__ */ jsx(
2329
2375
  "div",
2330
2376
  {
2331
- "data-slot": "drawer-footer",
2332
2377
  className: cn("gap-2 p-4 mt-auto flex flex-col", className),
2333
- ...props
2378
+ ...props,
2379
+ "data-slot": slotName
2334
2380
  }
2335
2381
  );
2336
2382
  }
2337
2383
  function DrawerTitle({
2338
2384
  className,
2385
+ slotName = "drawer-title",
2339
2386
  ...props
2340
2387
  }) {
2341
2388
  return /* @__PURE__ */ jsx(
2342
2389
  Drawer$1.Title,
2343
2390
  {
2344
- "data-slot": "drawer-title",
2345
2391
  className: cn("font-semibold text-foreground", className),
2346
- ...props
2392
+ ...props,
2393
+ "data-slot": slotName
2347
2394
  }
2348
2395
  );
2349
2396
  }
2350
2397
  function DrawerDescription({
2351
2398
  className,
2399
+ slotName = "drawer-description",
2352
2400
  ...props
2353
2401
  }) {
2354
2402
  return /* @__PURE__ */ jsx(
2355
2403
  Drawer$1.Description,
2356
2404
  {
2357
- "data-slot": "drawer-description",
2358
2405
  className: cn("text-sm text-muted-foreground", className),
2359
- ...props
2406
+ ...props,
2407
+ "data-slot": slotName
2360
2408
  }
2361
2409
  );
2362
2410
  }
@@ -2368,6 +2416,7 @@ function Field({
2368
2416
  error,
2369
2417
  invalid,
2370
2418
  required = false,
2419
+ slotName = "field",
2371
2420
  ...props
2372
2421
  }) {
2373
2422
  const generatedId = React3.useId();
@@ -2390,7 +2439,6 @@ function Field({
2390
2439
  return /* @__PURE__ */ jsx(FieldContext.Provider, { value: field, children: /* @__PURE__ */ jsxs(
2391
2440
  "div",
2392
2441
  {
2393
- "data-slot": "field",
2394
2442
  "data-orientation": orientation,
2395
2443
  "data-invalid": isInvalid ? "true" : void 0,
2396
2444
  className: cn(
@@ -2399,6 +2447,7 @@ function Field({
2399
2447
  className
2400
2448
  ),
2401
2449
  ...props,
2450
+ "data-slot": slotName,
2402
2451
  children: [
2403
2452
  children,
2404
2453
  /* @__PURE__ */ jsx(FieldError, { message: error })
@@ -2408,14 +2457,15 @@ function Field({
2408
2457
  }
2409
2458
  function FieldGroup({
2410
2459
  className,
2460
+ slotName = "field-group",
2411
2461
  ...props
2412
2462
  }) {
2413
2463
  return /* @__PURE__ */ jsx(
2414
2464
  "div",
2415
2465
  {
2416
- "data-slot": "field-group",
2417
2466
  className: cn("gap-6 flex w-full flex-col", className),
2418
- ...props
2467
+ ...props,
2468
+ "data-slot": slotName
2419
2469
  }
2420
2470
  );
2421
2471
  }
@@ -2423,13 +2473,13 @@ function FieldLabel({
2423
2473
  className,
2424
2474
  children,
2425
2475
  requiredLabel = "Required",
2476
+ slotName = "field-label",
2426
2477
  ...props
2427
2478
  }) {
2428
2479
  const { controlId, invalid, required } = useField();
2429
2480
  return /* @__PURE__ */ jsxs(
2430
2481
  Label,
2431
2482
  {
2432
- "data-slot": "field-label",
2433
2483
  htmlFor: controlId,
2434
2484
  className: cn(
2435
2485
  "gap-1 flex items-center group-data-[orientation=horizontal]/field:col-start-1 group-data-[orientation=horizontal]/field:row-start-1",
@@ -2437,6 +2487,7 @@ function FieldLabel({
2437
2487
  className
2438
2488
  ),
2439
2489
  ...props,
2490
+ slotName,
2440
2491
  children: [
2441
2492
  children,
2442
2493
  required ? /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -2457,6 +2508,7 @@ function FieldLabel({
2457
2508
  }
2458
2509
  function FieldDescription({
2459
2510
  className,
2511
+ slotName = "field-description",
2460
2512
  ...props
2461
2513
  }) {
2462
2514
  const { descriptionId, setHasDescription } = useField();
@@ -2468,12 +2520,12 @@ function FieldDescription({
2468
2520
  "p",
2469
2521
  {
2470
2522
  id: descriptionId,
2471
- "data-slot": "field-description",
2472
2523
  className: cn(
2473
2524
  "ml-1 text-xs font-medium text-muted-foreground group-data-[orientation=horizontal]/field:col-start-1 group-data-[orientation=horizontal]/field:row-start-2",
2474
2525
  className
2475
2526
  ),
2476
- ...props
2527
+ ...props,
2528
+ "data-slot": slotName
2477
2529
  }
2478
2530
  );
2479
2531
  }
@@ -2497,7 +2549,7 @@ function FieldControl({
2497
2549
  return /* @__PURE__ */ jsx(
2498
2550
  Slot,
2499
2551
  {
2500
- "data-slot": "field-control",
2552
+ "data-field-control": "true",
2501
2553
  id: controlId,
2502
2554
  "aria-describedby": describedBy || void 0,
2503
2555
  "aria-invalid": invalid ? true : void 0,
@@ -2540,15 +2592,15 @@ var useFormField = () => {
2540
2592
  var FormItemContext = React3.createContext(
2541
2593
  {}
2542
2594
  );
2543
- var FormItem = React3.forwardRef(({ className, ...props }, ref) => {
2595
+ var FormItem = React3.forwardRef(({ className, slotName = "form-item", ...props }, ref) => {
2544
2596
  const id = React3.useId();
2545
2597
  return /* @__PURE__ */ jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx(
2546
2598
  "div",
2547
2599
  {
2548
2600
  ref,
2549
2601
  className: cn("space-y-2", className),
2550
- "data-slot": "form-item",
2551
- ...props
2602
+ ...props,
2603
+ "data-slot": slotName
2552
2604
  }
2553
2605
  ) });
2554
2606
  });
@@ -2615,90 +2667,93 @@ var FormMessage = React3.forwardRef(({ className, children, ...props }, ref) =>
2615
2667
  });
2616
2668
  FormMessage.displayName = "FormMessage";
2617
2669
  function HoverCard({
2670
+ slotName = "hover-card",
2618
2671
  ...props
2619
2672
  }) {
2620
- return /* @__PURE__ */ jsx(HoverCard$1.Root, { "data-slot": "hover-card", ...props });
2673
+ return /* @__PURE__ */ jsx(HoverCard$1.Root, { ...props, "data-slot": slotName });
2621
2674
  }
2622
2675
  function HoverCardTrigger({
2676
+ slotName = "hover-card-trigger",
2623
2677
  ...props
2624
2678
  }) {
2625
- return /* @__PURE__ */ jsx(HoverCard$1.Trigger, { "data-slot": "hover-card-trigger", ...props });
2679
+ return /* @__PURE__ */ jsx(HoverCard$1.Trigger, { ...props, "data-slot": slotName });
2626
2680
  }
2627
2681
  function HoverCardContent({
2628
2682
  className,
2629
2683
  align = "center",
2630
2684
  sideOffset = 4,
2685
+ slotName = "hover-card-content",
2631
2686
  ...props
2632
2687
  }) {
2633
2688
  return /* @__PURE__ */ jsx(HoverCard$1.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsx(
2634
2689
  HoverCard$1.Content,
2635
2690
  {
2636
- "data-slot": "hover-card-content",
2637
2691
  align,
2638
2692
  sideOffset,
2639
2693
  className: cn(
2640
2694
  `${panelSurface} w-64 p-4 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 origin-(--radix-hover-card-content-transform-origin) bg-popover/90 outline-hidden`,
2641
2695
  className
2642
2696
  ),
2643
- ...props
2697
+ ...props,
2698
+ "data-slot": slotName
2644
2699
  }
2645
2700
  ) });
2646
2701
  }
2647
2702
  function Menubar({
2648
2703
  className,
2704
+ slotName = "menubar",
2649
2705
  ...props
2650
2706
  }) {
2651
2707
  return /* @__PURE__ */ jsx(
2652
2708
  Menubar$1.Root,
2653
2709
  {
2654
- "data-slot": "menubar",
2655
2710
  className: cn(
2656
2711
  "h-9 gap-1 p-1 shadow-sm backdrop-blur-xl rounded-2xl flex items-center border border-border bg-card/60",
2657
2712
  className
2658
2713
  ),
2659
- ...props
2714
+ ...props,
2715
+ "data-slot": slotName
2660
2716
  }
2661
2717
  );
2662
2718
  }
2663
2719
  function MenubarMenu({
2720
+ slotName = "menubar-menu",
2664
2721
  ...props
2665
2722
  }) {
2666
- return /* @__PURE__ */ jsx(Menubar$1.Menu, { "data-slot": "menubar-menu", ...props });
2723
+ return /* @__PURE__ */ jsx(Menubar$1.Menu, { ...props, "data-slot": slotName });
2667
2724
  }
2668
2725
  function MenubarGroup({
2726
+ slotName = "menubar-group",
2669
2727
  ...props
2670
2728
  }) {
2671
- return /* @__PURE__ */ jsx(Menubar$1.Group, { "data-slot": "menubar-group", ...props });
2729
+ return /* @__PURE__ */ jsx(Menubar$1.Group, { ...props, "data-slot": slotName });
2672
2730
  }
2673
2731
  function MenubarPortal({
2732
+ slotName = "menubar-portal",
2674
2733
  ...props
2675
2734
  }) {
2676
- return /* @__PURE__ */ jsx(Menubar$1.Portal, { "data-slot": "menubar-portal", ...props });
2735
+ return /* @__PURE__ */ jsx(Menubar$1.Portal, { ...props, "data-slot": slotName });
2677
2736
  }
2678
2737
  function MenubarRadioGroup({
2738
+ slotName = "menubar-radio-group",
2679
2739
  ...props
2680
2740
  }) {
2681
- return /* @__PURE__ */ jsx(
2682
- Menubar$1.RadioGroup,
2683
- {
2684
- "data-slot": "menubar-radio-group",
2685
- ...props
2686
- }
2687
- );
2741
+ return /* @__PURE__ */ jsx(Menubar$1.RadioGroup, { ...props, "data-slot": slotName });
2688
2742
  }
2689
2743
  function MenubarTrigger({
2690
2744
  className,
2745
+ slotName = "menubar-trigger",
2691
2746
  ...props
2692
2747
  }) {
2693
2748
  return /* @__PURE__ */ jsx(
2694
2749
  Menubar$1.Trigger,
2695
2750
  {
2696
- "data-slot": "menubar-trigger",
2697
2751
  className: cn(
2698
2752
  "px-2 py-1 text-sm font-medium rounded-xl flex items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
2699
2753
  className
2700
2754
  ),
2701
- ...props
2755
+ ...props,
2756
+ "data-slot": slotName
2702
2757
  }
2703
2758
  );
2704
2759
  }
@@ -2707,12 +2762,12 @@ function MenubarContent({
2707
2762
  align = "start",
2708
2763
  alignOffset = -4,
2709
2764
  sideOffset = 8,
2765
+ slotName = "menubar-content",
2710
2766
  ...props
2711
2767
  }) {
2712
2768
  return /* @__PURE__ */ jsx(MenubarPortal, { children: /* @__PURE__ */ jsx(
2713
2769
  Menubar$1.Content,
2714
2770
  {
2715
- "data-slot": "menubar-content",
2716
2771
  align,
2717
2772
  alignOffset,
2718
2773
  sideOffset,
@@ -2720,7 +2775,8 @@ function MenubarContent({
2720
2775
  `${menuSurface} p-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 min-w-[12rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden`,
2721
2776
  className
2722
2777
  ),
2723
- ...props
2778
+ ...props,
2779
+ "data-slot": slotName
2724
2780
  }
2725
2781
  ) });
2726
2782
  }
@@ -2728,19 +2784,20 @@ function MenubarItem({
2728
2784
  className,
2729
2785
  inset,
2730
2786
  variant = "default",
2787
+ slotName = "menubar-item",
2731
2788
  ...props
2732
2789
  }) {
2733
2790
  return /* @__PURE__ */ jsx(
2734
2791
  Menubar$1.Item,
2735
2792
  {
2736
- "data-slot": "menubar-item",
2737
2793
  "data-inset": inset,
2738
2794
  "data-variant": variant,
2739
2795
  className: cn(
2740
2796
  "gap-2 px-2 py-1.5 text-sm data-[inset]:pl-8 [&_svg:not([class*='size-'])]:size-4 rounded-xl relative flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",
2741
2797
  className
2742
2798
  ),
2743
- ...props
2799
+ ...props,
2800
+ "data-slot": slotName
2744
2801
  }
2745
2802
  );
2746
2803
  }
@@ -2748,18 +2805,19 @@ function MenubarCheckboxItem({
2748
2805
  className,
2749
2806
  children,
2750
2807
  checked,
2808
+ slotName = "menubar-checkbox-item",
2751
2809
  ...props
2752
2810
  }) {
2753
2811
  return /* @__PURE__ */ jsxs(
2754
2812
  Menubar$1.CheckboxItem,
2755
2813
  {
2756
- "data-slot": "menubar-checkbox-item",
2757
2814
  className: cn(
2758
2815
  "gap-2 rounded-xl py-1.5 pr-2 pl-8 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
2759
2816
  className
2760
2817
  ),
2761
2818
  checked,
2762
2819
  ...props,
2820
+ "data-slot": slotName,
2763
2821
  children: [
2764
2822
  /* @__PURE__ */ jsx("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx(Menubar$1.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) }) }),
2765
2823
  children
@@ -2770,17 +2828,18 @@ function MenubarCheckboxItem({
2770
2828
  function MenubarRadioItem({
2771
2829
  className,
2772
2830
  children,
2831
+ slotName = "menubar-radio-item",
2773
2832
  ...props
2774
2833
  }) {
2775
2834
  return /* @__PURE__ */ jsxs(
2776
2835
  Menubar$1.RadioItem,
2777
2836
  {
2778
- "data-slot": "menubar-radio-item",
2779
2837
  className: cn(
2780
2838
  "gap-2 rounded-xl py-1.5 pr-2 pl-8 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
2781
2839
  className
2782
2840
  ),
2783
2841
  ...props,
2842
+ "data-slot": slotName,
2784
2843
  children: [
2785
2844
  /* @__PURE__ */ jsx("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx(Menubar$1.ItemIndicator, { children: /* @__PURE__ */ jsx(CircleIcon, { className: "size-2 fill-current" }) }) }),
2786
2845
  children
@@ -2791,71 +2850,76 @@ function MenubarRadioItem({
2791
2850
  function MenubarLabel({
2792
2851
  className,
2793
2852
  inset,
2853
+ slotName = "menubar-label",
2794
2854
  ...props
2795
2855
  }) {
2796
2856
  return /* @__PURE__ */ jsx(
2797
2857
  Menubar$1.Label,
2798
2858
  {
2799
- "data-slot": "menubar-label",
2800
2859
  "data-inset": inset,
2801
2860
  className: cn(
2802
2861
  "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
2803
2862
  className
2804
2863
  ),
2805
- ...props
2864
+ ...props,
2865
+ "data-slot": slotName
2806
2866
  }
2807
2867
  );
2808
2868
  }
2809
2869
  function MenubarSeparator({
2810
2870
  className,
2871
+ slotName = "menubar-separator",
2811
2872
  ...props
2812
2873
  }) {
2813
2874
  return /* @__PURE__ */ jsx(
2814
2875
  Menubar$1.Separator,
2815
2876
  {
2816
- "data-slot": "menubar-separator",
2817
2877
  className: cn("-mx-1 my-1 h-px bg-border", className),
2818
- ...props
2878
+ ...props,
2879
+ "data-slot": slotName
2819
2880
  }
2820
2881
  );
2821
2882
  }
2822
2883
  function MenubarShortcut({
2823
2884
  className,
2885
+ slotName = "menubar-shortcut",
2824
2886
  ...props
2825
2887
  }) {
2826
2888
  return /* @__PURE__ */ jsx(
2827
2889
  "span",
2828
2890
  {
2829
- "data-slot": "menubar-shortcut",
2830
2891
  className: cn(
2831
2892
  "text-xs tracking-widest ml-auto text-muted-foreground",
2832
2893
  className
2833
2894
  ),
2834
- ...props
2895
+ ...props,
2896
+ "data-slot": slotName
2835
2897
  }
2836
2898
  );
2837
2899
  }
2838
2900
  function MenubarSub({
2901
+ slotName = "menubar-sub",
2839
2902
  ...props
2840
2903
  }) {
2841
- return /* @__PURE__ */ jsx(Menubar$1.Sub, { "data-slot": "menubar-sub", ...props });
2904
+ return /* @__PURE__ */ jsx(Menubar$1.Sub, { ...props, "data-slot": slotName });
2842
2905
  }
2843
2906
  function MenubarSubTrigger({
2844
2907
  className,
2845
2908
  inset,
2846
2909
  children,
2910
+ slotName = "menubar-sub-trigger",
2847
2911
  ...props
2848
2912
  }) {
2849
2913
  return /* @__PURE__ */ jsxs(
2850
2914
  Menubar$1.SubTrigger,
2851
2915
  {
2852
- "data-slot": "menubar-sub-trigger",
2853
2916
  "data-inset": inset,
2854
2917
  className: cn(
2855
2918
  "px-2 py-1.5 text-sm data-[inset]:pl-8 rounded-xl flex cursor-default items-center outline-none select-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
2856
2919
  className
2857
2920
  ),
2858
2921
  ...props,
2922
+ "data-slot": slotName,
2859
2923
  children: [
2860
2924
  children,
2861
2925
  /* @__PURE__ */ jsx(ChevronRightIcon, { className: "h-4 w-4 ml-auto" })
@@ -2865,17 +2929,18 @@ function MenubarSubTrigger({
2865
2929
  }
2866
2930
  function MenubarSubContent({
2867
2931
  className,
2932
+ slotName = "menubar-sub-content",
2868
2933
  ...props
2869
2934
  }) {
2870
2935
  return /* @__PURE__ */ jsx(
2871
2936
  Menubar$1.SubContent,
2872
2937
  {
2873
- "data-slot": "menubar-sub-content",
2874
2938
  className: cn(
2875
2939
  `${menuSurface} p-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden`,
2876
2940
  className
2877
2941
  ),
2878
- ...props
2942
+ ...props,
2943
+ "data-slot": slotName
2879
2944
  }
2880
2945
  );
2881
2946
  }
@@ -2883,18 +2948,19 @@ function NavigationMenu({
2883
2948
  className,
2884
2949
  children,
2885
2950
  viewport = true,
2951
+ slotName = "navigation-menu",
2886
2952
  ...props
2887
2953
  }) {
2888
2954
  return /* @__PURE__ */ jsxs(
2889
2955
  NavigationMenuPrimitive.Root,
2890
2956
  {
2891
- "data-slot": "navigation-menu",
2892
2957
  "data-viewport": viewport,
2893
2958
  className: cn(
2894
2959
  "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
2895
2960
  className
2896
2961
  ),
2897
2962
  ...props,
2963
+ "data-slot": slotName,
2898
2964
  children: [
2899
2965
  children,
2900
2966
  viewport && /* @__PURE__ */ jsx(NavigationMenuViewport, {})
@@ -2904,47 +2970,50 @@ function NavigationMenu({
2904
2970
  }
2905
2971
  function NavigationMenuList({
2906
2972
  className,
2973
+ slotName = "navigation-menu-list",
2907
2974
  ...props
2908
2975
  }) {
2909
2976
  return /* @__PURE__ */ jsx(
2910
2977
  NavigationMenuPrimitive.List,
2911
2978
  {
2912
- "data-slot": "navigation-menu-list",
2913
2979
  className: cn(
2914
2980
  "group gap-1 flex flex-1 list-none items-center justify-center",
2915
2981
  className
2916
2982
  ),
2917
- ...props
2983
+ ...props,
2984
+ "data-slot": slotName
2918
2985
  }
2919
2986
  );
2920
2987
  }
2921
2988
  function NavigationMenuItem({
2922
2989
  className,
2990
+ slotName = "navigation-menu-item",
2923
2991
  ...props
2924
2992
  }) {
2925
2993
  return /* @__PURE__ */ jsx(
2926
2994
  NavigationMenuPrimitive.Item,
2927
2995
  {
2928
- "data-slot": "navigation-menu-item",
2929
2996
  className: cn("relative", className),
2930
- ...props
2997
+ ...props,
2998
+ "data-slot": slotName
2931
2999
  }
2932
3000
  );
2933
3001
  }
2934
3002
  var navigationMenuTriggerStyle = cva(
2935
- "group inline-flex h-11 w-max items-center justify-center rounded-xl bg-background px-4 text-sm font-medium data-[state=open]:font-semibold hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[active=true]:bg-accent/50 data-[state=open]:bg-accent/50 data-[active=true]:text-accent-foreground transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50"
3003
+ "group inline-flex h-11 w-max items-center justify-center rounded-xl bg-background px-4 text-sm font-medium data-[state=open]:font-semibold hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[active=true]:bg-accent/50 data-[state=open]:bg-accent/50 data-[active=true]:text-accent-foreground transition-[color,box-shadow] outline-none focus-visible:outline-solid focus-visible:outline-1 focus-visible:outline-offset-0 focus-visible:outline-ring"
2936
3004
  );
2937
3005
  function NavigationMenuTrigger({
2938
3006
  className,
2939
3007
  children,
3008
+ slotName = "navigation-menu-trigger",
2940
3009
  ...props
2941
3010
  }) {
2942
3011
  return /* @__PURE__ */ jsxs(
2943
3012
  NavigationMenuPrimitive.Trigger,
2944
3013
  {
2945
- "data-slot": "navigation-menu-trigger",
2946
3014
  className: cn(navigationMenuTriggerStyle(), "group", className),
2947
3015
  ...props,
3016
+ "data-slot": slotName,
2948
3017
  children: [
2949
3018
  children,
2950
3019
  " ",
@@ -2961,23 +3030,25 @@ function NavigationMenuTrigger({
2961
3030
  }
2962
3031
  function NavigationMenuContent({
2963
3032
  className,
3033
+ slotName = "navigation-menu-content",
2964
3034
  ...props
2965
3035
  }) {
2966
3036
  return /* @__PURE__ */ jsx(
2967
3037
  NavigationMenuPrimitive.Content,
2968
3038
  {
2969
- "data-slot": "navigation-menu-content",
2970
3039
  className: cn(
2971
3040
  "data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 top-0 left-0 p-2 pr-2.5 md:absolute md:w-auto w-full",
2972
3041
  "group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:shadow-2xl group-data-[viewport=false]/navigation-menu:backdrop-blur-xl group-data-[viewport=false]/navigation-menu:rounded-2xl group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:border-border group-data-[viewport=false]/navigation-menu:bg-popover/90 group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none",
2973
3042
  className
2974
3043
  ),
2975
- ...props
3044
+ ...props,
3045
+ "data-slot": slotName
2976
3046
  }
2977
3047
  );
2978
3048
  }
2979
3049
  function NavigationMenuViewport({
2980
3050
  className,
3051
+ slotName = "navigation-menu-viewport",
2981
3052
  ...props
2982
3053
  }) {
2983
3054
  return /* @__PURE__ */ jsx(
@@ -2989,12 +3060,12 @@ function NavigationMenuViewport({
2989
3060
  children: /* @__PURE__ */ jsx(
2990
3061
  NavigationMenuPrimitive.Viewport,
2991
3062
  {
2992
- "data-slot": "navigation-menu-viewport",
2993
3063
  className: cn(
2994
3064
  `${panelSurface} origin-top-center data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 mt-1.5 md:w-[var(--radix-navigation-menu-viewport-width)] relative h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden bg-popover/90`,
2995
3065
  className
2996
3066
  ),
2997
- ...props
3067
+ ...props,
3068
+ "data-slot": slotName
2998
3069
  }
2999
3070
  )
3000
3071
  }
@@ -3002,76 +3073,86 @@ function NavigationMenuViewport({
3002
3073
  }
3003
3074
  function NavigationMenuLink({
3004
3075
  className,
3076
+ slotName = "navigation-menu-link",
3005
3077
  ...props
3006
3078
  }) {
3007
3079
  return /* @__PURE__ */ jsx(
3008
3080
  NavigationMenuPrimitive.Link,
3009
3081
  {
3010
- "data-slot": "navigation-menu-link",
3011
3082
  className: cn(
3012
- "gap-1 p-2 text-sm [&_svg:not([class*='size-'])]:size-4 rounded-xl data-[active=true]:font-semibold flex flex-col transition-[color,box-shadow] outline-none hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground",
3083
+ "gap-1 p-2 text-sm [&_svg:not([class*='size-'])]:size-4 rounded-xl data-[active=true]:font-semibold flex flex-col transition-[color,box-shadow] outline-none hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:outline-1 focus-visible:outline-offset-0 focus-visible:outline-ring focus-visible:outline-solid data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground",
3013
3084
  className
3014
3085
  ),
3015
- ...props
3086
+ ...props,
3087
+ "data-slot": slotName
3016
3088
  }
3017
3089
  );
3018
3090
  }
3019
3091
  function NavigationMenuIndicator({
3020
3092
  className,
3093
+ slotName = "navigation-menu-indicator",
3021
3094
  ...props
3022
3095
  }) {
3023
3096
  return /* @__PURE__ */ jsx(
3024
3097
  NavigationMenuPrimitive.Indicator,
3025
3098
  {
3026
- "data-slot": "navigation-menu-indicator",
3027
3099
  className: cn(
3028
3100
  "data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in h-1.5 top-full z-[1] flex items-end justify-center overflow-hidden",
3029
3101
  className
3030
3102
  ),
3031
3103
  ...props,
3104
+ "data-slot": slotName,
3032
3105
  children: /* @__PURE__ */ jsx("div", { className: "h-2 w-2 shadow-md rounded-tl-xs relative top-[60%] rotate-45 bg-border" })
3033
3106
  }
3034
3107
  );
3035
3108
  }
3036
- function Pagination({ className, ...props }) {
3109
+ function Pagination({
3110
+ className,
3111
+ slotName = "pagination",
3112
+ ...props
3113
+ }) {
3037
3114
  return /* @__PURE__ */ jsx(
3038
3115
  "nav",
3039
3116
  {
3040
3117
  role: "navigation",
3041
3118
  "aria-label": "pagination",
3042
- "data-slot": "pagination",
3043
3119
  className: cn("mx-auto flex w-full justify-center", className),
3044
- ...props
3120
+ ...props,
3121
+ "data-slot": slotName
3045
3122
  }
3046
3123
  );
3047
3124
  }
3048
3125
  function PaginationContent({
3049
3126
  className,
3127
+ slotName = "pagination-content",
3050
3128
  ...props
3051
3129
  }) {
3052
3130
  return /* @__PURE__ */ jsx(
3053
3131
  "ul",
3054
3132
  {
3055
- "data-slot": "pagination-content",
3056
3133
  className: cn("gap-1 flex flex-row items-center", className),
3057
- ...props
3134
+ ...props,
3135
+ "data-slot": slotName
3058
3136
  }
3059
3137
  );
3060
3138
  }
3061
- function PaginationItem({ ...props }) {
3062
- return /* @__PURE__ */ jsx("li", { "data-slot": "pagination-item", ...props });
3139
+ function PaginationItem({
3140
+ slotName = "pagination-item",
3141
+ ...props
3142
+ }) {
3143
+ return /* @__PURE__ */ jsx("li", { ...props, "data-slot": slotName });
3063
3144
  }
3064
3145
  function PaginationLink({
3065
3146
  className,
3066
3147
  isActive,
3067
3148
  size = "icon",
3149
+ slotName = "pagination-link",
3068
3150
  ...props
3069
3151
  }) {
3070
3152
  return /* @__PURE__ */ jsx(
3071
3153
  "a",
3072
3154
  {
3073
3155
  "aria-current": isActive ? "page" : void 0,
3074
- "data-slot": "pagination-link",
3075
3156
  "data-active": isActive,
3076
3157
  className: cn(
3077
3158
  buttonVariants({
@@ -3080,7 +3161,8 @@ function PaginationLink({
3080
3161
  }),
3081
3162
  className
3082
3163
  ),
3083
- ...props
3164
+ ...props,
3165
+ "data-slot": slotName
3084
3166
  }
3085
3167
  );
3086
3168
  }
@@ -3122,18 +3204,19 @@ function PaginationNext({
3122
3204
  }
3123
3205
  function PaginationEllipsis({
3124
3206
  className,
3207
+ slotName = "pagination-ellipsis",
3125
3208
  ...props
3126
3209
  }) {
3127
3210
  return /* @__PURE__ */ jsxs(
3128
3211
  "span",
3129
3212
  {
3130
3213
  "aria-hidden": true,
3131
- "data-slot": "pagination-ellipsis",
3132
3214
  className: cn(
3133
3215
  "size-9 rounded-xl flex items-center justify-center",
3134
3216
  className
3135
3217
  ),
3136
3218
  ...props,
3219
+ "data-slot": slotName,
3137
3220
  children: [
3138
3221
  /* @__PURE__ */ jsx(MoreHorizontalIcon, { className: "size-4" }),
3139
3222
  /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More pages" })
@@ -3141,15 +3224,24 @@ function PaginationEllipsis({
3141
3224
  }
3142
3225
  );
3143
3226
  }
3227
+ var passwordInputDefaultLabels = {
3228
+ showLabel: "Show password",
3229
+ hideLabel: "Hide password"
3230
+ };
3144
3231
  function PasswordInput({
3145
3232
  className,
3146
3233
  revealable = true,
3147
- showLabel = "Show password",
3148
- hideLabel = "Hide password",
3234
+ showLabel,
3235
+ hideLabel,
3236
+ slotName = "password-input",
3149
3237
  ...props
3150
3238
  }) {
3239
+ const labels = useUiLabels("passwordInput", passwordInputDefaultLabels, {
3240
+ showLabel,
3241
+ hideLabel
3242
+ });
3151
3243
  const [visible, setVisible] = React3.useState(false);
3152
- return /* @__PURE__ */ jsxs("div", { "data-slot": "password-input", className: "relative w-full", children: [
3244
+ return /* @__PURE__ */ jsxs("div", { className: "relative w-full", "data-slot": slotName, children: [
3153
3245
  /* @__PURE__ */ jsx(
3154
3246
  Input,
3155
3247
  {
@@ -3164,8 +3256,8 @@ function PasswordInput({
3164
3256
  type: "button",
3165
3257
  variant: "ghost",
3166
3258
  size: "icon-sm",
3167
- "data-slot": "password-input-toggle",
3168
- "aria-label": visible ? hideLabel : showLabel,
3259
+ slotName: "password-input-toggle",
3260
+ "aria-label": visible ? labels.hideLabel : labels.showLabel,
3169
3261
  "aria-pressed": visible,
3170
3262
  disabled: props.disabled,
3171
3263
  onMouseDown: (event) => event.preventDefault(),
@@ -3176,9 +3268,12 @@ function PasswordInput({
3176
3268
  ) : null
3177
3269
  ] });
3178
3270
  }
3179
- function PlaceholderPattern({ className }) {
3271
+ function PlaceholderPattern({
3272
+ className,
3273
+ slotName = "placeholder-pattern"
3274
+ }) {
3180
3275
  const patternId = useId();
3181
- return /* @__PURE__ */ jsxs("svg", { "data-slot": "placeholder-pattern", className, fill: "none", children: [
3276
+ return /* @__PURE__ */ jsxs("svg", { className, fill: "none", "data-slot": slotName, children: [
3182
3277
  /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx(
3183
3278
  "pattern",
3184
3279
  {
@@ -3211,17 +3306,18 @@ function PlaceholderPattern({ className }) {
3211
3306
  function Progress({
3212
3307
  className,
3213
3308
  value,
3309
+ slotName = "progress",
3214
3310
  ...props
3215
3311
  }) {
3216
3312
  return /* @__PURE__ */ jsx(
3217
3313
  Progress$1.Root,
3218
3314
  {
3219
- "data-slot": "progress",
3220
3315
  className: cn(
3221
3316
  "h-2 relative w-full overflow-hidden rounded-full bg-primary/20",
3222
3317
  className
3223
3318
  ),
3224
3319
  ...props,
3320
+ "data-slot": slotName,
3225
3321
  children: /* @__PURE__ */ jsx(
3226
3322
  Progress$1.Indicator,
3227
3323
  {
@@ -3235,30 +3331,32 @@ function Progress({
3235
3331
  }
3236
3332
  function RadioGroup({
3237
3333
  className,
3334
+ slotName = "radio-group",
3238
3335
  ...props
3239
3336
  }) {
3240
3337
  return /* @__PURE__ */ jsx(
3241
3338
  RadioGroup$1.Root,
3242
3339
  {
3243
- "data-slot": "radio-group",
3244
3340
  className: cn("gap-3 grid", className),
3245
- ...props
3341
+ ...props,
3342
+ "data-slot": slotName
3246
3343
  }
3247
3344
  );
3248
3345
  }
3249
3346
  function RadioGroupItem({
3250
3347
  className,
3348
+ slotName = "radio-group-item",
3251
3349
  ...props
3252
3350
  }) {
3253
3351
  return /* @__PURE__ */ jsx(
3254
3352
  RadioGroup$1.Item,
3255
3353
  {
3256
- "data-slot": "radio-group-item",
3257
3354
  className: cn(
3258
3355
  `size-5 shadow-xs aspect-square shrink-0 rounded-full border border-border text-primary transition-[color,box-shadow] disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 ${focusRing}`,
3259
3356
  className
3260
3357
  ),
3261
3358
  ...props,
3359
+ "data-slot": slotName,
3262
3360
  children: /* @__PURE__ */ jsx(
3263
3361
  RadioGroup$1.Indicator,
3264
3362
  {
@@ -3272,39 +3370,44 @@ function RadioGroupItem({
3272
3370
  }
3273
3371
  function ResizablePanelGroup({
3274
3372
  className,
3373
+ slotName = "resizable-panel-group",
3275
3374
  ...props
3276
3375
  }) {
3277
3376
  return /* @__PURE__ */ jsx(
3278
3377
  ResizablePrimitive.Group,
3279
3378
  {
3280
- "data-slot": "resizable-panel-group",
3281
3379
  className: cn(
3282
3380
  elevatedSurface,
3283
3381
  nestedSurfaceReset,
3284
3382
  "flex h-full w-full overflow-hidden bg-card aria-[orientation=vertical]:flex-col",
3285
3383
  className
3286
3384
  ),
3287
- ...props
3385
+ ...props,
3386
+ "data-slot": slotName
3288
3387
  }
3289
3388
  );
3290
3389
  }
3291
- function ResizablePanel({ ...props }) {
3292
- return /* @__PURE__ */ jsx(ResizablePrimitive.Panel, { "data-slot": "resizable-panel", ...props });
3390
+ function ResizablePanel({
3391
+ slotName = "resizable-panel",
3392
+ ...props
3393
+ }) {
3394
+ return /* @__PURE__ */ jsx(ResizablePrimitive.Panel, { ...props, "data-slot": slotName });
3293
3395
  }
3294
3396
  function ResizableHandle({
3295
3397
  withHandle,
3296
3398
  className,
3399
+ slotName = "resizable-handle",
3297
3400
  ...props
3298
3401
  }) {
3299
3402
  return /* @__PURE__ */ jsx(
3300
3403
  ResizablePrimitive.Separator,
3301
3404
  {
3302
- "data-slot": "resizable-handle",
3303
3405
  className: cn(
3304
- "after:inset-y-0 after:w-1 aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:translate-x-0 relative flex w-px items-center justify-center bg-border after:absolute after:left-1/2 after:-translate-x-1/2 focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90",
3406
+ "after:inset-y-0 after:w-1 aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:translate-x-0 relative flex w-px items-center justify-center bg-border after:absolute after:left-1/2 after:-translate-x-1/2 focus-visible:outline-1 focus-visible:outline-offset-0 focus-visible:outline-ring focus-visible:outline-solid aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90",
3305
3407
  className
3306
3408
  ),
3307
3409
  ...props,
3410
+ "data-slot": slotName,
3308
3411
  children: withHandle && /* @__PURE__ */ jsx("div", { className: "h-8 w-1.5 z-10 rounded-full bg-muted-foreground/40 transition-colors group-hover:bg-muted-foreground/60" })
3309
3412
  }
3310
3413
  );
@@ -3323,6 +3426,7 @@ function SaveStatus({
3323
3426
  savedDuration = SAVED_DURATION,
3324
3427
  labels,
3325
3428
  className,
3429
+ slotName = "save-status",
3326
3430
  ...props
3327
3431
  }) {
3328
3432
  const text = useUiLabels("saveStatus", saveStatusLabels, labels);
@@ -3341,7 +3445,6 @@ function SaveStatus({
3341
3445
  "div",
3342
3446
  {
3343
3447
  ...props,
3344
- "data-slot": "save-status",
3345
3448
  "data-state": status,
3346
3449
  "data-faded": hidden || void 0,
3347
3450
  role: "status",
@@ -3352,6 +3455,7 @@ function SaveStatus({
3352
3455
  hidden ? "opacity-0" : "opacity-100",
3353
3456
  className
3354
3457
  ),
3458
+ "data-slot": slotName,
3355
3459
  children: [
3356
3460
  status === "idle" && showIdle && /* @__PURE__ */ jsx(
3357
3461
  "span",
@@ -3398,10 +3502,9 @@ function SaveStatus({
3398
3502
  }
3399
3503
  );
3400
3504
  }
3401
- var ScrollArea = React3.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
3505
+ var ScrollArea = React3.forwardRef(({ className, children, slotName = "scroll-area", ...props }, ref) => /* @__PURE__ */ jsxs(
3402
3506
  ScrollAreaPrimitive.Root,
3403
3507
  {
3404
- "data-slot": "scroll-area",
3405
3508
  ref,
3406
3509
  className: cn(
3407
3510
  elevatedSurface,
@@ -3411,6 +3514,7 @@ var ScrollArea = React3.forwardRef(({ className, children, ...props }, ref) => /
3411
3514
  className
3412
3515
  ),
3413
3516
  ...props,
3517
+ "data-slot": slotName,
3414
3518
  children: [
3415
3519
  /* @__PURE__ */ jsx(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
3416
3520
  /* @__PURE__ */ jsx(ScrollBar, {}),
@@ -3419,22 +3523,29 @@ var ScrollArea = React3.forwardRef(({ className, children, ...props }, ref) => /
3419
3523
  }
3420
3524
  ));
3421
3525
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
3422
- var ScrollBar = React3.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx(
3423
- ScrollAreaPrimitive.ScrollAreaScrollbar,
3424
- {
3425
- "data-slot": "scroll-area-scrollbar",
3426
- ref,
3427
- orientation,
3428
- className: cn(
3429
- "flex touch-none transition-colors select-none",
3430
- orientation === "vertical" && "w-2.5 h-full border-l border-l-transparent p-[1px]",
3431
- orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-[1px]",
3432
- className
3433
- ),
3434
- ...props,
3435
- children: /* @__PURE__ */ jsx(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
3436
- }
3437
- ));
3526
+ var ScrollBar = React3.forwardRef(
3527
+ ({
3528
+ className,
3529
+ orientation = "vertical",
3530
+ slotName = "scroll-area-scrollbar",
3531
+ ...props
3532
+ }, ref) => /* @__PURE__ */ jsx(
3533
+ ScrollAreaPrimitive.ScrollAreaScrollbar,
3534
+ {
3535
+ ref,
3536
+ orientation,
3537
+ className: cn(
3538
+ "flex touch-none transition-colors select-none",
3539
+ orientation === "vertical" && "w-2.5 h-full border-l border-l-transparent p-[1px]",
3540
+ orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-[1px]",
3541
+ className
3542
+ ),
3543
+ ...props,
3544
+ "data-slot": slotName,
3545
+ children: /* @__PURE__ */ jsx(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
3546
+ }
3547
+ )
3548
+ );
3438
3549
  ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
3439
3550
  function Slider({
3440
3551
  className,
@@ -3442,6 +3553,7 @@ function Slider({
3442
3553
  value,
3443
3554
  min = 0,
3444
3555
  max = 100,
3556
+ slotName = "slider",
3445
3557
  ...props
3446
3558
  }) {
3447
3559
  const _values = React3.useMemo(
@@ -3451,7 +3563,6 @@ function Slider({
3451
3563
  return /* @__PURE__ */ jsxs(
3452
3564
  Slider$1.Root,
3453
3565
  {
3454
- "data-slot": "slider",
3455
3566
  defaultValue,
3456
3567
  value,
3457
3568
  min,
@@ -3461,6 +3572,7 @@ function Slider({
3461
3572
  className
3462
3573
  ),
3463
3574
  ...props,
3575
+ "data-slot": slotName,
3464
3576
  children: [
3465
3577
  /* @__PURE__ */ jsx(
3466
3578
  Slider$1.Track,
@@ -3553,6 +3665,7 @@ function StatusBadge({
3553
3665
  status = "neutral",
3554
3666
  dot = false,
3555
3667
  children,
3668
+ slotName = "status-badge",
3556
3669
  ...props
3557
3670
  }) {
3558
3671
  const resolvedStatus = status ?? "neutral";
@@ -3560,13 +3673,13 @@ function StatusBadge({
3560
3673
  Badge,
3561
3674
  {
3562
3675
  variant: "outline",
3563
- "data-slot": "status-badge",
3564
3676
  "data-status": resolvedStatus,
3565
3677
  className: cn(
3566
3678
  statusBadgeVariants({ status: resolvedStatus }),
3567
3679
  className
3568
3680
  ),
3569
3681
  ...props,
3682
+ slotName,
3570
3683
  children: [
3571
3684
  dot && /* @__PURE__ */ jsx(
3572
3685
  "span",
@@ -3599,20 +3712,21 @@ function TextLink({
3599
3712
  className,
3600
3713
  variant = "default",
3601
3714
  asChild = false,
3715
+ slotName = "text-link",
3602
3716
  ...props
3603
3717
  }) {
3604
3718
  const Comp = asChild ? Slot : "a";
3605
3719
  return /* @__PURE__ */ jsx(
3606
3720
  Comp,
3607
3721
  {
3608
- "data-slot": "text-link",
3609
3722
  "data-variant": variant,
3610
3723
  className: cn(textLinkVariants({ variant }), className),
3611
- ...props
3724
+ ...props,
3725
+ "data-slot": slotName
3612
3726
  }
3613
3727
  );
3614
3728
  }
3615
3729
 
3616
- export { AUTOSAVE_DELAY, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AppearanceToggle, AspectRatio, Badge, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Combobox, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DataTable, DatePicker, DateRangeFilter, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, EmptyState, FacetedFilter, Field, FieldControl, FieldDescription, FieldGroup, FieldLabel, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PasswordInput, PlaceholderPattern, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, RowActionsMenu, SAVED_DURATION, SaveStatus, ScrollArea, ScrollBar, ServerFacetedFilter, Slider, StatusBadge, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, TextLink, Toaster, ToggleGroup, ToggleGroupItem, appearanceToggleDefaultLabels, badgeVariants, comboboxDefaultLabels, dataTableDefaultLabels, dataTableFacetedFilterDefaultLabels, datePickerDefaultLabels, dateRangeFilterDefaultLabels, emptyStateLabels, navigationMenuTriggerStyle, saveStatusLabels, statusBadgeVariants, textLinkVariants, useAutosave, useConfirmDialog, useFormField };
3730
+ export { AUTOSAVE_DELAY, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AppearanceToggle, AspectRatio, Badge, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Combobox, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DataTable, DatePicker, DateRangeFilter, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, EmptyState, FacetedFilter, Field, FieldControl, FieldDescription, FieldGroup, FieldLabel, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PasswordInput, PlaceholderPattern, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, RowActionsMenu, SAVED_DURATION, SaveStatus, ScrollArea, ScrollBar, ServerFacetedFilter, Slider, StatusBadge, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, TextLink, Toaster, ToggleGroup, ToggleGroupItem, appearanceToggleDefaultLabels, badgeVariants, comboboxDefaultLabels, dataTableDefaultLabels, dataTableFacetedFilterDefaultLabels, datePickerDefaultLabels, dateRangeFilterDefaultLabels, emptyStateLabels, navigationMenuTriggerStyle, passwordInputDefaultLabels, saveStatusLabels, statusBadgeVariants, textLinkVariants, useAutosave, useConfirmDialog, useFormField };
3617
3731
  //# sourceMappingURL=index.js.map
3618
3732
  //# sourceMappingURL=index.js.map