@akira-io/ui 1.0.0 → 1.1.1

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 (73) hide show
  1. package/README.md +15 -10
  2. package/dist/blocks.d.ts +162 -9
  3. package/dist/blocks.js +1410 -36
  4. package/dist/blocks.js.map +1 -1
  5. package/dist/button-Bj6My68b.d.ts +17 -0
  6. package/dist/chunk-2WIIRDHT.js +83 -0
  7. package/dist/chunk-2WIIRDHT.js.map +1 -0
  8. package/dist/{chunk-A2SIZOEA.js → chunk-4SOQAVUP.js} +125 -45
  9. package/dist/chunk-4SOQAVUP.js.map +1 -0
  10. package/dist/chunk-5AJFQ6C4.js +35 -0
  11. package/dist/chunk-5AJFQ6C4.js.map +1 -0
  12. package/dist/chunk-CFDDAFPJ.js +1243 -0
  13. package/dist/chunk-CFDDAFPJ.js.map +1 -0
  14. package/dist/chunk-FWQFB37J.js +45 -0
  15. package/dist/chunk-FWQFB37J.js.map +1 -0
  16. package/dist/chunk-IQMRJXEO.js +59 -0
  17. package/dist/chunk-IQMRJXEO.js.map +1 -0
  18. package/dist/chunk-L2H5GIF7.js +22 -0
  19. package/dist/chunk-L2H5GIF7.js.map +1 -0
  20. package/dist/chunk-ODYCBCKS.js +290 -0
  21. package/dist/chunk-ODYCBCKS.js.map +1 -0
  22. package/dist/{chunk-5MQWJVM2.js → chunk-QHZWW55M.js} +383 -326
  23. package/dist/chunk-QHZWW55M.js.map +1 -0
  24. package/dist/chunk-RPCL7VFQ.js +123 -0
  25. package/dist/chunk-RPCL7VFQ.js.map +1 -0
  26. package/dist/chunk-T2INZOCM.js +165 -0
  27. package/dist/chunk-T2INZOCM.js.map +1 -0
  28. package/dist/chunk-TGF54WAO.js +29 -0
  29. package/dist/chunk-TGF54WAO.js.map +1 -0
  30. package/dist/chunk-XZCC6MTE.js +26 -0
  31. package/dist/chunk-XZCC6MTE.js.map +1 -0
  32. package/dist/{chunk-UXL33CZ4.js → chunk-YOVY3KT6.js} +13 -11
  33. package/dist/chunk-YOVY3KT6.js.map +1 -0
  34. package/dist/code.d.ts +9 -0
  35. package/dist/code.js +650 -0
  36. package/dist/code.js.map +1 -0
  37. package/dist/context-YWbxMH0C.d.ts +383 -0
  38. package/dist/editor.d.ts +128 -0
  39. package/dist/editor.js +450 -0
  40. package/dist/editor.js.map +1 -0
  41. package/dist/index.d.ts +298 -222
  42. package/dist/index.js +1300 -670
  43. package/dist/index.js.map +1 -1
  44. package/dist/inertia.d.ts +47 -2
  45. package/dist/inertia.js +138 -7
  46. package/dist/inertia.js.map +1 -1
  47. package/dist/input-Dpi7pXeR.d.ts +6 -0
  48. package/dist/json-viewer-BARA2RCW.d.ts +51 -0
  49. package/dist/{language-Bft6rBBt.d.ts → language-Dgjr9bm3.d.ts} +1 -1
  50. package/dist/locales/pt.d.ts +26 -4
  51. package/dist/locales/pt.js +127 -1
  52. package/dist/locales/pt.js.map +1 -1
  53. package/dist/password-input-DcXX7SG9.d.ts +51 -0
  54. package/dist/shells.d.ts +45 -7
  55. package/dist/shells.js +96 -60
  56. package/dist/shells.js.map +1 -1
  57. package/dist/sidebar-DqkFRUxQ.d.ts +81 -0
  58. package/dist/types-B-eGPoFD.d.ts +111 -0
  59. package/dist/types-cmBL8zOc.d.ts +51 -0
  60. package/package.json +170 -130
  61. package/theme.css +20 -0
  62. package/themes/nosferry.css +4 -0
  63. package/dist/chunk-42BJBH56.js +0 -786
  64. package/dist/chunk-42BJBH56.js.map +0 -1
  65. package/dist/chunk-5MQWJVM2.js.map +0 -1
  66. package/dist/chunk-A2SIZOEA.js.map +0 -1
  67. package/dist/chunk-POE7OYET.js +0 -96
  68. package/dist/chunk-POE7OYET.js.map +0 -1
  69. package/dist/chunk-UXL33CZ4.js.map +0 -1
  70. package/dist/date-range-filter-QEa8fhUM.d.ts +0 -149
  71. package/dist/sidebar-BDhG9SUU.d.ts +0 -88
  72. package/dist/types-Cno1_Ijx.d.ts +0 -40
  73. package/dist/types-cOieac8G.d.ts +0 -77
@@ -1,276 +1,87 @@
1
- import { cn, elevatedSurface, nestedSurfaceReset, menuSurface, focusRing, floatingSurface, Button, Input } from './chunk-POE7OYET.js';
2
- import * as AvatarPrimitive from '@radix-ui/react-avatar';
1
+ import { Separator } from './chunk-TGF54WAO.js';
2
+ import { Input } from './chunk-XZCC6MTE.js';
3
+ import { cn, menuSurface, focusRing, floatingSurface, Button } from './chunk-ODYCBCKS.js';
4
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
5
+ import { CheckIcon, CircleIcon, ChevronRightIcon, ChevronRight, MoreHorizontal, XIcon, PanelLeftIcon } from 'lucide-react';
3
6
  import { jsx, jsxs } from 'react/jsx-runtime';
7
+ import * as AvatarPrimitive from '@radix-ui/react-avatar';
4
8
  import { Slot } from '@radix-ui/react-slot';
5
- import { ChevronRight, MoreHorizontal, CheckIcon, CircleIcon, ChevronRightIcon, XIcon, PanelLeftIcon } from 'lucide-react';
6
9
  import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
7
- import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
8
- import * as SeparatorPrimitive from '@radix-ui/react-separator';
9
10
  import * as SheetPrimitive from '@radix-ui/react-dialog';
10
11
  import * as React2 from 'react';
11
12
  import { useState, useEffect } from 'react';
12
13
  import * as TooltipPrimitive from '@radix-ui/react-tooltip';
13
14
  import { cva } from 'class-variance-authority';
14
15
 
15
- function Avatar({
16
- className,
17
- ...props
18
- }) {
19
- return /* @__PURE__ */ jsx(
20
- AvatarPrimitive.Root,
21
- {
22
- "data-slot": "avatar",
23
- className: cn(
24
- "size-8 relative flex shrink-0 overflow-hidden rounded-full",
25
- className
26
- ),
27
- ...props
28
- }
29
- );
30
- }
31
- function AvatarImage({
32
- className,
33
- ...props
34
- }) {
35
- return /* @__PURE__ */ jsx(
36
- AvatarPrimitive.Image,
37
- {
38
- "data-slot": "avatar-image",
39
- className: cn("aspect-square size-full", className),
40
- ...props
41
- }
42
- );
43
- }
44
- function AvatarFallback({
45
- className,
46
- ...props
47
- }) {
48
- return /* @__PURE__ */ jsx(
49
- AvatarPrimitive.Fallback,
50
- {
51
- "data-slot": "avatar-fallback",
52
- className: cn(
53
- "flex size-full items-center justify-center rounded-full bg-muted",
54
- className
55
- ),
56
- ...props
57
- }
58
- );
59
- }
60
- function Breadcrumb({ ...props }) {
61
- return /* @__PURE__ */ jsx("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
62
- }
63
- function BreadcrumbList({ className, ...props }) {
64
- return /* @__PURE__ */ jsx(
65
- "ol",
66
- {
67
- "data-slot": "breadcrumb-list",
68
- className: cn(
69
- "gap-1.5 text-sm sm:gap-2.5 flex flex-wrap items-center break-words text-muted-foreground",
70
- className
71
- ),
72
- ...props
73
- }
74
- );
75
- }
76
- function BreadcrumbItem({ className, ...props }) {
77
- return /* @__PURE__ */ jsx(
78
- "li",
79
- {
80
- "data-slot": "breadcrumb-item",
81
- className: cn("gap-1.5 inline-flex items-center", className),
82
- ...props
83
- }
84
- );
85
- }
86
- function BreadcrumbLink({
87
- asChild,
88
- className,
89
- ...props
90
- }) {
91
- const Comp = asChild ? Slot : "a";
92
- return /* @__PURE__ */ jsx(
93
- Comp,
94
- {
95
- "data-slot": "breadcrumb-link",
96
- className: cn("transition-colors hover:text-foreground", className),
97
- ...props
98
- }
99
- );
100
- }
101
- function BreadcrumbPage({ className, ...props }) {
102
- return /* @__PURE__ */ jsx(
103
- "span",
104
- {
105
- "data-slot": "breadcrumb-page",
106
- role: "link",
107
- "aria-disabled": "true",
108
- "aria-current": "page",
109
- className: cn("font-semibold text-foreground", className),
110
- ...props
111
- }
112
- );
113
- }
114
- function BreadcrumbSeparator({
115
- children,
116
- className,
117
- ...props
118
- }) {
119
- return /* @__PURE__ */ jsx(
120
- "li",
121
- {
122
- "data-slot": "breadcrumb-separator",
123
- role: "presentation",
124
- "aria-hidden": "true",
125
- className: cn("[&>svg]:size-3.5", className),
126
- ...props,
127
- children: children ?? /* @__PURE__ */ jsx(ChevronRight, {})
128
- }
129
- );
130
- }
131
- function BreadcrumbEllipsis({
132
- className,
133
- ...props
134
- }) {
135
- return /* @__PURE__ */ jsxs(
136
- "span",
137
- {
138
- "data-slot": "breadcrumb-ellipsis",
139
- role: "presentation",
140
- "aria-hidden": "true",
141
- className: cn(
142
- "size-9 rounded-xl flex items-center justify-center",
143
- className
144
- ),
145
- ...props,
146
- children: [
147
- /* @__PURE__ */ jsx(MoreHorizontal, { className: "size-4" }),
148
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More" })
149
- ]
150
- }
151
- );
152
- }
153
- function Collapsible({
154
- className,
155
- ...props
156
- }) {
157
- return /* @__PURE__ */ jsx(
158
- CollapsiblePrimitive.Root,
159
- {
160
- "data-slot": "collapsible",
161
- className: cn(
162
- elevatedSurface,
163
- nestedSurfaceReset,
164
- "p-5 bg-card",
165
- className
166
- ),
167
- ...props
168
- }
169
- );
170
- }
171
- function CollapsibleTrigger2({
172
- ...props
173
- }) {
174
- return /* @__PURE__ */ jsx(
175
- CollapsiblePrimitive.CollapsibleTrigger,
176
- {
177
- "data-slot": "collapsible-trigger",
178
- ...props
179
- }
180
- );
181
- }
182
- function CollapsibleContent2({
183
- ...props
184
- }) {
185
- return /* @__PURE__ */ jsx(
186
- CollapsiblePrimitive.CollapsibleContent,
187
- {
188
- "data-slot": "collapsible-content",
189
- ...props
190
- }
191
- );
192
- }
193
16
  function DropdownMenu({
194
17
  modal = false,
18
+ slotName = "dropdown-menu",
195
19
  ...props
196
20
  }) {
197
21
  return /* @__PURE__ */ jsx(
198
22
  DropdownMenuPrimitive.Root,
199
23
  {
200
- "data-slot": "dropdown-menu",
201
24
  modal,
202
- ...props
25
+ ...props,
26
+ "data-slot": slotName
203
27
  }
204
28
  );
205
29
  }
206
30
  function DropdownMenuPortal({
31
+ slotName = "dropdown-menu-portal",
207
32
  ...props
208
33
  }) {
209
- return /* @__PURE__ */ jsx(
210
- DropdownMenuPrimitive.Portal,
211
- {
212
- "data-slot": "dropdown-menu-portal",
213
- ...props
214
- }
215
- );
34
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { ...props, "data-slot": slotName });
216
35
  }
217
36
  function DropdownMenuTrigger({
37
+ slotName = "dropdown-menu-trigger",
218
38
  ...props
219
39
  }) {
220
- return /* @__PURE__ */ jsx(
221
- DropdownMenuPrimitive.Trigger,
222
- {
223
- "data-slot": "dropdown-menu-trigger",
224
- ...props
225
- }
226
- );
40
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Trigger, { ...props, "data-slot": slotName });
227
41
  }
228
42
  function DropdownMenuContent({
229
43
  className,
230
44
  sideOffset = 4,
45
+ slotName = "dropdown-menu-content",
231
46
  ...props
232
47
  }) {
233
48
  return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
234
49
  DropdownMenuPrimitive.Content,
235
50
  {
236
- "data-slot": "dropdown-menu-content",
237
51
  sideOffset,
238
52
  className: cn(
239
53
  `${menuSurface} data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 p-1.5 z-50 min-w-[8rem] overflow-hidden`,
240
54
  className
241
55
  ),
242
- ...props
56
+ ...props,
57
+ "data-slot": slotName
243
58
  }
244
59
  ) });
245
60
  }
246
61
  function DropdownMenuGroup({
62
+ slotName = "dropdown-menu-group",
247
63
  ...props
248
64
  }) {
249
- return /* @__PURE__ */ jsx(
250
- DropdownMenuPrimitive.Group,
251
- {
252
- "data-slot": "dropdown-menu-group",
253
- ...props
254
- }
255
- );
65
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Group, { ...props, "data-slot": slotName });
256
66
  }
257
67
  function DropdownMenuItem({
258
68
  className,
259
69
  inset,
260
70
  variant = "default",
71
+ slotName = "dropdown-menu-item",
261
72
  ...props
262
73
  }) {
263
74
  return /* @__PURE__ */ jsx(
264
75
  DropdownMenuPrimitive.Item,
265
76
  {
266
- "data-slot": "dropdown-menu-item",
267
77
  "data-inset": inset,
268
78
  "data-variant": variant,
269
79
  className: cn(
270
80
  "font-medium gap-2 rounded-xl px-2 py-2 text-sm data-[inset]:pl-8 [&_svg:not([class*='size-'])]:size-5 focus:font-semibold relative flex cursor-default items-center outline-hidden transition-all select-none focus:bg-primary/10 focus:text-primary 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/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:!text-destructive",
271
81
  className
272
82
  ),
273
- ...props
83
+ ...props,
84
+ "data-slot": slotName
274
85
  }
275
86
  );
276
87
  }
@@ -278,18 +89,19 @@ function DropdownMenuCheckboxItem({
278
89
  className,
279
90
  children,
280
91
  checked,
92
+ slotName = "dropdown-menu-checkbox-item",
281
93
  ...props
282
94
  }) {
283
95
  return /* @__PURE__ */ jsxs(
284
96
  DropdownMenuPrimitive.CheckboxItem,
285
97
  {
286
- "data-slot": "dropdown-menu-checkbox-item",
287
98
  className: cn(
288
99
  "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",
289
100
  className
290
101
  ),
291
102
  checked,
292
103
  ...props,
104
+ "data-slot": slotName,
293
105
  children: [
294
106
  /* @__PURE__ */ jsx("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) }) }),
295
107
  children
@@ -298,30 +110,26 @@ function DropdownMenuCheckboxItem({
298
110
  );
299
111
  }
300
112
  function DropdownMenuRadioGroup({
113
+ slotName = "dropdown-menu-radio-group",
301
114
  ...props
302
115
  }) {
303
- return /* @__PURE__ */ jsx(
304
- DropdownMenuPrimitive.RadioGroup,
305
- {
306
- "data-slot": "dropdown-menu-radio-group",
307
- ...props
308
- }
309
- );
116
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.RadioGroup, { ...props, "data-slot": slotName });
310
117
  }
311
118
  function DropdownMenuRadioItem({
312
119
  className,
313
120
  children,
121
+ slotName = "dropdown-menu-radio-item",
314
122
  ...props
315
123
  }) {
316
124
  return /* @__PURE__ */ jsxs(
317
125
  DropdownMenuPrimitive.RadioItem,
318
126
  {
319
- "data-slot": "dropdown-menu-radio-item",
320
127
  className: cn(
321
128
  "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",
322
129
  className
323
130
  ),
324
131
  ...props,
132
+ "data-slot": slotName,
325
133
  children: [
326
134
  /* @__PURE__ */ jsx("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CircleIcon, { className: "size-2 fill-current" }) }) }),
327
135
  children
@@ -332,71 +140,76 @@ function DropdownMenuRadioItem({
332
140
  function DropdownMenuLabel({
333
141
  className,
334
142
  inset,
143
+ slotName = "dropdown-menu-label",
335
144
  ...props
336
145
  }) {
337
146
  return /* @__PURE__ */ jsx(
338
147
  DropdownMenuPrimitive.Label,
339
148
  {
340
- "data-slot": "dropdown-menu-label",
341
149
  "data-inset": inset,
342
150
  className: cn(
343
151
  "px-2 py-2 text-xs font-medium tracking-wider data-[inset]:pl-8 text-muted-foreground uppercase",
344
152
  className
345
153
  ),
346
- ...props
154
+ ...props,
155
+ "data-slot": slotName
347
156
  }
348
157
  );
349
158
  }
350
159
  function DropdownMenuSeparator({
351
160
  className,
161
+ slotName = "dropdown-menu-separator",
352
162
  ...props
353
163
  }) {
354
164
  return /* @__PURE__ */ jsx(
355
165
  DropdownMenuPrimitive.Separator,
356
166
  {
357
- "data-slot": "dropdown-menu-separator",
358
167
  className: cn("-mx-1 my-1 h-px bg-border", className),
359
- ...props
168
+ ...props,
169
+ "data-slot": slotName
360
170
  }
361
171
  );
362
172
  }
363
173
  function DropdownMenuShortcut({
364
174
  className,
175
+ slotName = "dropdown-menu-shortcut",
365
176
  ...props
366
177
  }) {
367
178
  return /* @__PURE__ */ jsx(
368
179
  "span",
369
180
  {
370
- "data-slot": "dropdown-menu-shortcut",
371
181
  className: cn(
372
182
  "text-xs tracking-widest ml-auto text-muted-foreground",
373
183
  className
374
184
  ),
375
- ...props
185
+ ...props,
186
+ "data-slot": slotName
376
187
  }
377
188
  );
378
189
  }
379
190
  function DropdownMenuSub({
191
+ slotName = "dropdown-menu-sub",
380
192
  ...props
381
193
  }) {
382
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Sub, { "data-slot": "dropdown-menu-sub", ...props });
194
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Sub, { ...props, "data-slot": slotName });
383
195
  }
384
196
  function DropdownMenuSubTrigger({
385
197
  className,
386
198
  inset,
387
199
  children,
200
+ slotName = "dropdown-menu-sub-trigger",
388
201
  ...props
389
202
  }) {
390
203
  return /* @__PURE__ */ jsxs(
391
204
  DropdownMenuPrimitive.SubTrigger,
392
205
  {
393
- "data-slot": "dropdown-menu-sub-trigger",
394
206
  "data-inset": inset,
395
207
  className: cn(
396
208
  "font-medium rounded-xl px-2 py-2 text-sm data-[inset]:pl-8 focus:font-semibold data-[state=open]:font-semibold flex cursor-default items-center outline-hidden transition-all select-none focus:bg-primary/10 focus:text-primary data-[state=open]:bg-primary/10 data-[state=open]:text-primary",
397
209
  className
398
210
  ),
399
211
  ...props,
212
+ "data-slot": slotName,
400
213
  children: [
401
214
  children,
402
215
  /* @__PURE__ */ jsx(ChevronRightIcon, { className: "size-4 ml-auto" })
@@ -406,49 +219,220 @@ function DropdownMenuSubTrigger({
406
219
  }
407
220
  function DropdownMenuSubContent({
408
221
  className,
222
+ slotName = "dropdown-menu-sub-content",
409
223
  ...props
410
224
  }) {
411
225
  return /* @__PURE__ */ jsx(
412
226
  DropdownMenuPrimitive.SubContent,
413
227
  {
414
- "data-slot": "dropdown-menu-sub-content",
415
228
  className: cn(
416
229
  `${menuSurface} data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 p-1.5 z-50 min-w-[8rem] overflow-hidden`,
417
230
  className
418
231
  ),
419
- ...props
232
+ ...props,
233
+ "data-slot": slotName
420
234
  }
421
235
  );
422
236
  }
423
- function Icon({ iconNode: IconComponent, className }) {
424
- if (!IconComponent) {
425
- return null;
426
- }
427
- return /* @__PURE__ */ jsx(IconComponent, { className });
237
+ function Avatar({
238
+ className,
239
+ slotName = "avatar",
240
+ ...props
241
+ }) {
242
+ return /* @__PURE__ */ jsx(
243
+ AvatarPrimitive.Root,
244
+ {
245
+ className: cn(
246
+ "size-8 relative flex shrink-0 overflow-hidden rounded-full",
247
+ className
248
+ ),
249
+ ...props,
250
+ "data-slot": slotName
251
+ }
252
+ );
253
+ }
254
+ function AvatarImage({
255
+ className,
256
+ slotName = "avatar-image",
257
+ ...props
258
+ }) {
259
+ return /* @__PURE__ */ jsx(
260
+ AvatarPrimitive.Image,
261
+ {
262
+ className: cn("aspect-square size-full", className),
263
+ ...props,
264
+ "data-slot": slotName
265
+ }
266
+ );
267
+ }
268
+ function AvatarFallback({
269
+ className,
270
+ slotName = "avatar-fallback",
271
+ ...props
272
+ }) {
273
+ return /* @__PURE__ */ jsx(
274
+ AvatarPrimitive.Fallback,
275
+ {
276
+ className: cn(
277
+ "flex size-full items-center justify-center rounded-full bg-muted",
278
+ className
279
+ ),
280
+ ...props,
281
+ "data-slot": slotName
282
+ }
283
+ );
284
+ }
285
+ function Breadcrumb({
286
+ slotName = "breadcrumb",
287
+ ...props
288
+ }) {
289
+ return /* @__PURE__ */ jsx("nav", { "aria-label": "breadcrumb", ...props, "data-slot": slotName });
428
290
  }
429
- function Separator2({
291
+ function BreadcrumbList({
430
292
  className,
431
- orientation = "horizontal",
432
- decorative = true,
293
+ slotName = "breadcrumb-list",
433
294
  ...props
434
295
  }) {
435
296
  return /* @__PURE__ */ jsx(
436
- SeparatorPrimitive.Root,
297
+ "ol",
437
298
  {
438
- "data-slot": "separator-root",
439
- decorative,
440
- orientation,
441
299
  className: cn(
442
- "shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
300
+ "gap-1.5 text-sm sm:gap-2.5 flex flex-wrap items-center break-words text-muted-foreground",
443
301
  className
444
302
  ),
445
- ...props
303
+ ...props,
304
+ "data-slot": slotName
446
305
  }
447
306
  );
448
307
  }
308
+ function BreadcrumbItem({
309
+ className,
310
+ slotName = "breadcrumb-item",
311
+ ...props
312
+ }) {
313
+ return /* @__PURE__ */ jsx(
314
+ "li",
315
+ {
316
+ className: cn("gap-1.5 inline-flex items-center", className),
317
+ ...props,
318
+ "data-slot": slotName
319
+ }
320
+ );
321
+ }
322
+ function BreadcrumbLink({
323
+ asChild,
324
+ className,
325
+ slotName = "breadcrumb-link",
326
+ ...props
327
+ }) {
328
+ const Comp = asChild ? Slot : "a";
329
+ return /* @__PURE__ */ jsx(
330
+ Comp,
331
+ {
332
+ className: cn("transition-colors hover:text-foreground", className),
333
+ ...props,
334
+ "data-slot": slotName
335
+ }
336
+ );
337
+ }
338
+ function BreadcrumbPage({
339
+ className,
340
+ slotName = "breadcrumb-page",
341
+ ...props
342
+ }) {
343
+ return /* @__PURE__ */ jsx(
344
+ "span",
345
+ {
346
+ role: "link",
347
+ "aria-disabled": "true",
348
+ "aria-current": "page",
349
+ className: cn("font-semibold text-foreground", className),
350
+ ...props,
351
+ "data-slot": slotName
352
+ }
353
+ );
354
+ }
355
+ function BreadcrumbSeparator({
356
+ children,
357
+ className,
358
+ slotName = "breadcrumb-separator",
359
+ ...props
360
+ }) {
361
+ return /* @__PURE__ */ jsx(
362
+ "li",
363
+ {
364
+ role: "presentation",
365
+ "aria-hidden": "true",
366
+ className: cn("[&>svg]:size-3.5", className),
367
+ ...props,
368
+ "data-slot": slotName,
369
+ children: children ?? /* @__PURE__ */ jsx(ChevronRight, {})
370
+ }
371
+ );
372
+ }
373
+ function BreadcrumbEllipsis({
374
+ className,
375
+ slotName = "breadcrumb-ellipsis",
376
+ ...props
377
+ }) {
378
+ return /* @__PURE__ */ jsxs(
379
+ "span",
380
+ {
381
+ role: "presentation",
382
+ "aria-hidden": "true",
383
+ className: cn(
384
+ "size-9 rounded-xl flex items-center justify-center",
385
+ className
386
+ ),
387
+ ...props,
388
+ "data-slot": slotName,
389
+ children: [
390
+ /* @__PURE__ */ jsx(MoreHorizontal, { className: "size-4" }),
391
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More" })
392
+ ]
393
+ }
394
+ );
395
+ }
396
+ function Collapsible({
397
+ slotName = "collapsible",
398
+ ...props
399
+ }) {
400
+ return /* @__PURE__ */ jsx(CollapsiblePrimitive.Root, { ...props, "data-slot": slotName });
401
+ }
402
+ function CollapsibleTrigger2({
403
+ slotName = "collapsible-trigger",
404
+ ...props
405
+ }) {
406
+ return /* @__PURE__ */ jsx(
407
+ CollapsiblePrimitive.CollapsibleTrigger,
408
+ {
409
+ ...props,
410
+ "data-slot": slotName
411
+ }
412
+ );
413
+ }
414
+ function CollapsibleContent2({
415
+ slotName = "collapsible-content",
416
+ ...props
417
+ }) {
418
+ return /* @__PURE__ */ jsx(
419
+ CollapsiblePrimitive.CollapsibleContent,
420
+ {
421
+ ...props,
422
+ "data-slot": slotName
423
+ }
424
+ );
425
+ }
426
+ function Icon({ iconNode: IconComponent, className }) {
427
+ if (!IconComponent) {
428
+ return null;
429
+ }
430
+ return /* @__PURE__ */ jsx(IconComponent, { className });
431
+ }
449
432
  function Sheet({
450
433
  preserveScroll = false,
451
434
  onOpenChange: onOpenChangeProp,
435
+ slotName = "sheet",
452
436
  ...props
453
437
  }) {
454
438
  const scrollPosition = React2.useRef(0);
@@ -467,40 +451,44 @@ function Sheet({
467
451
  return /* @__PURE__ */ jsx(
468
452
  SheetPrimitive.Root,
469
453
  {
470
- "data-slot": "sheet",
471
454
  ...props,
472
- onOpenChange
455
+ onOpenChange,
456
+ "data-slot": slotName
473
457
  }
474
458
  );
475
459
  }
476
460
  function SheetTrigger({
461
+ slotName = "sheet-trigger",
477
462
  ...props
478
463
  }) {
479
- return /* @__PURE__ */ jsx(SheetPrimitive.Trigger, { "data-slot": "sheet-trigger", ...props });
464
+ return /* @__PURE__ */ jsx(SheetPrimitive.Trigger, { ...props, "data-slot": slotName });
480
465
  }
481
466
  function SheetClose({
467
+ slotName = "sheet-close",
482
468
  ...props
483
469
  }) {
484
- return /* @__PURE__ */ jsx(SheetPrimitive.Close, { "data-slot": "sheet-close", ...props });
470
+ return /* @__PURE__ */ jsx(SheetPrimitive.Close, { ...props, "data-slot": slotName });
485
471
  }
486
472
  function SheetPortal({
473
+ slotName = "sheet-portal",
487
474
  ...props
488
475
  }) {
489
- return /* @__PURE__ */ jsx(SheetPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
476
+ return /* @__PURE__ */ jsx(SheetPrimitive.Portal, { ...props, "data-slot": slotName });
490
477
  }
491
478
  function SheetOverlay({
492
479
  className,
480
+ slotName = "sheet-overlay",
493
481
  ...props
494
482
  }) {
495
483
  return /* @__PURE__ */ jsx(
496
484
  SheetPrimitive.Overlay,
497
485
  {
498
- "data-slot": "sheet-overlay",
499
486
  className: cn(
500
487
  "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 inset-0 bg-black/60 backdrop-blur-sm fixed z-50",
501
488
  className
502
489
  ),
503
- ...props
490
+ ...props,
491
+ "data-slot": slotName
504
492
  }
505
493
  );
506
494
  }
@@ -508,6 +496,7 @@ function SheetContent({
508
496
  className,
509
497
  children,
510
498
  side = "right",
499
+ slotName = "sheet-content",
511
500
  ...props
512
501
  }) {
513
502
  return /* @__PURE__ */ jsxs(SheetPortal, { children: [
@@ -515,7 +504,6 @@ function SheetContent({
515
504
  /* @__PURE__ */ jsxs(
516
505
  SheetPrimitive.Content,
517
506
  {
518
- "data-slot": "sheet-content",
519
507
  className: cn(
520
508
  `${floatingSurface} data-[state=open]:animate-in data-[state=closed]:animate-out gap-4 ease-in-out fixed z-50 flex flex-col transition data-[state=closed]:duration-300 data-[state=open]:duration-500`,
521
509
  side === "right" && "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 sm:max-w-sm rounded-l-3xl h-full w-3/4 border-l border-border",
@@ -525,6 +513,7 @@ function SheetContent({
525
513
  className
526
514
  ),
527
515
  ...props,
516
+ "data-slot": slotName,
528
517
  children: [
529
518
  children,
530
519
  /* @__PURE__ */ jsxs(
@@ -545,101 +534,119 @@ function SheetContent({
545
534
  )
546
535
  ] });
547
536
  }
548
- function SheetHeader({ className, ...props }) {
537
+ function SheetHeader({
538
+ className,
539
+ slotName = "sheet-header",
540
+ ...props
541
+ }) {
549
542
  return /* @__PURE__ */ jsx(
550
543
  "div",
551
544
  {
552
- "data-slot": "sheet-header",
553
545
  className: cn("gap-1.5 p-4 flex flex-col", className),
554
- ...props
546
+ ...props,
547
+ "data-slot": slotName
555
548
  }
556
549
  );
557
550
  }
558
- function SheetFooter({ className, ...props }) {
551
+ function SheetFooter({
552
+ className,
553
+ slotName = "sheet-footer",
554
+ ...props
555
+ }) {
559
556
  return /* @__PURE__ */ jsx(
560
557
  "div",
561
558
  {
562
- "data-slot": "sheet-footer",
563
559
  className: cn("gap-2 p-4 mt-auto flex flex-col", className),
564
- ...props
560
+ ...props,
561
+ "data-slot": slotName
565
562
  }
566
563
  );
567
564
  }
568
565
  function SheetTitle({
569
566
  className,
567
+ slotName = "sheet-title",
570
568
  ...props
571
569
  }) {
572
570
  return /* @__PURE__ */ jsx(
573
571
  SheetPrimitive.Title,
574
572
  {
575
- "data-slot": "sheet-title",
576
573
  className: cn("font-semibold text-foreground", className),
577
- ...props
574
+ ...props,
575
+ "data-slot": slotName
578
576
  }
579
577
  );
580
578
  }
581
579
  function SheetDescription({
582
580
  className,
581
+ slotName = "sheet-description",
583
582
  ...props
584
583
  }) {
585
584
  return /* @__PURE__ */ jsx(
586
585
  SheetPrimitive.Description,
587
586
  {
588
- "data-slot": "sheet-description",
589
587
  className: cn("text-sm text-muted-foreground", className),
590
- ...props
588
+ ...props,
589
+ "data-slot": slotName
591
590
  }
592
591
  );
593
592
  }
594
- function Skeleton({ className, ...props }) {
593
+ function Skeleton({
594
+ className,
595
+ slotName = "skeleton",
596
+ ...props
597
+ }) {
595
598
  return /* @__PURE__ */ jsx(
596
599
  "div",
597
600
  {
598
- "data-slot": "skeleton",
599
601
  className: cn("animate-pulse rounded-xl bg-muted", className),
600
- ...props
602
+ ...props,
603
+ "data-slot": slotName
601
604
  }
602
605
  );
603
606
  }
604
607
  function TooltipProvider({
605
608
  delayDuration = 0,
609
+ slotName = "tooltip-provider",
606
610
  ...props
607
611
  }) {
608
612
  return /* @__PURE__ */ jsx(
609
613
  TooltipPrimitive.Provider,
610
614
  {
611
- "data-slot": "tooltip-provider",
612
615
  delayDuration,
613
- ...props
616
+ ...props,
617
+ "data-slot": slotName
614
618
  }
615
619
  );
616
620
  }
617
621
  function Tooltip({
622
+ slotName = "tooltip",
618
623
  ...props
619
624
  }) {
620
- return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props }) });
625
+ return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(TooltipPrimitive.Root, { ...props, "data-slot": slotName }) });
621
626
  }
622
627
  function TooltipTrigger({
628
+ slotName = "tooltip-trigger",
623
629
  ...props
624
630
  }) {
625
- return /* @__PURE__ */ jsx(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
631
+ return /* @__PURE__ */ jsx(TooltipPrimitive.Trigger, { ...props, "data-slot": slotName });
626
632
  }
627
633
  function TooltipContent({
628
634
  className,
629
635
  sideOffset = 4,
630
636
  children,
637
+ slotName = "tooltip-content",
631
638
  ...props
632
639
  }) {
633
640
  return /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
634
641
  TooltipPrimitive.Content,
635
642
  {
636
- "data-slot": "tooltip-content",
637
643
  sideOffset,
638
644
  className: cn(
639
645
  "animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 max-w-sm px-3 py-1.5 text-xs shadow-2xl rounded-xl z-50 bg-primary text-primary-foreground",
640
646
  className
641
647
  ),
642
648
  ...props,
649
+ "data-slot": slotName,
643
650
  children: [
644
651
  children,
645
652
  /* @__PURE__ */ jsx(TooltipPrimitive.Arrow, { className: "size-2.5 z-50 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-primary fill-primary" })
@@ -684,6 +691,7 @@ function SidebarProvider({
684
691
  className,
685
692
  style,
686
693
  children,
694
+ slotName = "sidebar-wrapper",
687
695
  ...props
688
696
  }) {
689
697
  const isMobile = useIsMobile();
@@ -739,7 +747,6 @@ function SidebarProvider({
739
747
  return /* @__PURE__ */ jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx(
740
748
  "div",
741
749
  {
742
- "data-slot": "sidebar-wrapper",
743
750
  style: {
744
751
  "--sidebar-width": SIDEBAR_WIDTH,
745
752
  "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
@@ -750,6 +757,7 @@ function SidebarProvider({
750
757
  className
751
758
  ),
752
759
  ...props,
760
+ "data-slot": slotName,
753
761
  children
754
762
  }
755
763
  ) }) });
@@ -760,6 +768,7 @@ function Sidebar({
760
768
  collapsible = "offcanvas",
761
769
  className,
762
770
  children,
771
+ slotName = "sidebar",
763
772
  ...props
764
773
  }) {
765
774
  const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
@@ -767,12 +776,12 @@ function Sidebar({
767
776
  return /* @__PURE__ */ jsx(
768
777
  "div",
769
778
  {
770
- "data-slot": "sidebar",
771
779
  className: cn(
772
780
  "flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",
773
781
  className
774
782
  ),
775
783
  ...props,
784
+ "data-slot": slotName,
776
785
  children
777
786
  }
778
787
  );
@@ -794,13 +803,13 @@ function Sidebar({
794
803
  SheetContent,
795
804
  {
796
805
  "data-sidebar": "sidebar",
797
- "data-slot": "sidebar",
798
806
  "data-mobile": "true",
799
807
  className: "p-0 w-(--sidebar-width) bg-sidebar text-sidebar-foreground [&>button]:hidden",
800
808
  style: {
801
809
  "--sidebar-width": SIDEBAR_WIDTH_MOBILE
802
810
  },
803
811
  side,
812
+ slotName,
804
813
  children: /* @__PURE__ */ jsx("div", { className: "flex h-full w-full flex-col", children })
805
814
  }
806
815
  )
@@ -816,7 +825,7 @@ function Sidebar({
816
825
  "data-collapsible": state === "collapsed" ? collapsible : "",
817
826
  "data-variant": variant,
818
827
  "data-side": side,
819
- "data-slot": "sidebar",
828
+ "data-slot": slotName,
820
829
  children: [
821
830
  /* @__PURE__ */ jsx(
822
831
  "div",
@@ -857,6 +866,7 @@ function Sidebar({
857
866
  function SidebarTrigger({
858
867
  className,
859
868
  onClick,
869
+ slotName = "sidebar-trigger",
860
870
  ...props
861
871
  }) {
862
872
  const { toggleSidebar } = useSidebar();
@@ -864,7 +874,6 @@ function SidebarTrigger({
864
874
  Button,
865
875
  {
866
876
  "data-sidebar": "trigger",
867
- "data-slot": "sidebar-trigger",
868
877
  variant: "ghost",
869
878
  size: "icon",
870
879
  className: cn("h-7 w-7", className),
@@ -873,6 +882,7 @@ function SidebarTrigger({
873
882
  toggleSidebar();
874
883
  },
875
884
  ...props,
885
+ slotName,
876
886
  children: [
877
887
  /* @__PURE__ */ jsx(PanelLeftIcon, {}),
878
888
  /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Toggle Sidebar" })
@@ -880,13 +890,16 @@ function SidebarTrigger({
880
890
  }
881
891
  );
882
892
  }
883
- function SidebarRail({ className, ...props }) {
893
+ function SidebarRail({
894
+ className,
895
+ slotName = "sidebar-rail",
896
+ ...props
897
+ }) {
884
898
  const { toggleSidebar } = useSidebar();
885
899
  return /* @__PURE__ */ jsx(
886
900
  "button",
887
901
  {
888
902
  "data-sidebar": "rail",
889
- "data-slot": "sidebar-rail",
890
903
  "aria-label": "Toggle Sidebar",
891
904
  tabIndex: -1,
892
905
  onClick: toggleSidebar,
@@ -900,132 +913,156 @@ function SidebarRail({ className, ...props }) {
900
913
  "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
901
914
  className
902
915
  ),
903
- ...props
916
+ ...props,
917
+ "data-slot": slotName
904
918
  }
905
919
  );
906
920
  }
907
- function SidebarInset({ className, ...props }) {
921
+ function SidebarInset({
922
+ className,
923
+ slotName = "sidebar-inset",
924
+ ...props
925
+ }) {
908
926
  return /* @__PURE__ */ jsx(
909
927
  "main",
910
928
  {
911
- "data-slot": "sidebar-inset",
912
929
  className: cn(
913
930
  "relative flex min-h-svh max-w-full flex-1 flex-col bg-background",
914
931
  "peer-data-[variant=inset]:min-h-[calc(100svh-(--spacing(4)))] md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-0",
915
932
  className
916
933
  ),
917
- ...props
934
+ ...props,
935
+ "data-slot": slotName
918
936
  }
919
937
  );
920
938
  }
921
939
  function SidebarInput({
922
940
  className,
941
+ slotName = "sidebar-input",
923
942
  ...props
924
943
  }) {
925
944
  return /* @__PURE__ */ jsx(
926
945
  Input,
927
946
  {
928
- "data-slot": "sidebar-input",
929
947
  "data-sidebar": "input",
930
948
  className: cn("h-11 w-full bg-background shadow-none", className),
931
- ...props
949
+ ...props,
950
+ slotName
932
951
  }
933
952
  );
934
953
  }
935
- function SidebarHeader({ className, ...props }) {
954
+ function SidebarHeader({
955
+ className,
956
+ slotName = "sidebar-header",
957
+ ...props
958
+ }) {
936
959
  return /* @__PURE__ */ jsx(
937
960
  "div",
938
961
  {
939
- "data-slot": "sidebar-header",
940
962
  "data-sidebar": "header",
941
963
  className: cn("gap-2 p-2 flex flex-col", className),
942
- ...props
964
+ ...props,
965
+ "data-slot": slotName
943
966
  }
944
967
  );
945
968
  }
946
- function SidebarFooter({ className, ...props }) {
969
+ function SidebarFooter({
970
+ className,
971
+ slotName = "sidebar-footer",
972
+ ...props
973
+ }) {
947
974
  return /* @__PURE__ */ jsx(
948
975
  "div",
949
976
  {
950
- "data-slot": "sidebar-footer",
951
977
  "data-sidebar": "footer",
952
978
  className: cn("gap-2 p-2 flex flex-col", className),
953
- ...props
979
+ ...props,
980
+ "data-slot": slotName
954
981
  }
955
982
  );
956
983
  }
957
984
  function SidebarSeparator({
958
985
  className,
986
+ slotName = "sidebar-separator",
959
987
  ...props
960
988
  }) {
961
989
  return /* @__PURE__ */ jsx(
962
- Separator2,
990
+ Separator,
963
991
  {
964
- "data-slot": "sidebar-separator",
965
992
  "data-sidebar": "separator",
966
993
  className: cn("mx-2 w-auto bg-sidebar-border", className),
967
- ...props
994
+ ...props,
995
+ slotName
968
996
  }
969
997
  );
970
998
  }
971
- function SidebarContent({ className, ...props }) {
999
+ function SidebarContent({
1000
+ className,
1001
+ slotName = "sidebar-content",
1002
+ ...props
1003
+ }) {
972
1004
  return /* @__PURE__ */ jsx(
973
1005
  "div",
974
1006
  {
975
- "data-slot": "sidebar-content",
976
1007
  "data-sidebar": "content",
977
1008
  className: cn(
978
1009
  "min-h-0 gap-2 flex flex-1 flex-col overflow-auto group-data-[collapsible=icon]:overflow-hidden",
979
1010
  className
980
1011
  ),
981
- ...props
1012
+ ...props,
1013
+ "data-slot": slotName
982
1014
  }
983
1015
  );
984
1016
  }
985
- function SidebarGroup({ className, ...props }) {
1017
+ function SidebarGroup({
1018
+ className,
1019
+ slotName = "sidebar-group",
1020
+ ...props
1021
+ }) {
986
1022
  return /* @__PURE__ */ jsx(
987
1023
  "div",
988
1024
  {
989
- "data-slot": "sidebar-group",
990
1025
  "data-sidebar": "group",
991
1026
  className: cn(
992
1027
  "min-w-0 p-2 relative flex w-full flex-col",
993
1028
  className
994
1029
  ),
995
- ...props
1030
+ ...props,
1031
+ "data-slot": slotName
996
1032
  }
997
1033
  );
998
1034
  }
999
1035
  function SidebarGroupLabel({
1000
1036
  className,
1001
1037
  asChild = false,
1038
+ slotName = "sidebar-group-label",
1002
1039
  ...props
1003
1040
  }) {
1004
1041
  const Comp = asChild ? Slot : "div";
1005
1042
  return /* @__PURE__ */ jsx(
1006
1043
  Comp,
1007
1044
  {
1008
- "data-slot": "sidebar-group-label",
1009
1045
  "data-sidebar": "group-label",
1010
1046
  className: cn(
1011
1047
  "h-8 rounded-xl px-2 text-xs font-medium tracking-wider [&>svg]:size-4 flex shrink-0 items-center text-sidebar-foreground/70 uppercase ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-[3px] focus-visible:ring-ring/50 [&>svg]:shrink-0",
1012
1048
  "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:pointer-events-none group-data-[collapsible=icon]:opacity-0 group-data-[collapsible=icon]:select-none",
1013
1049
  className
1014
1050
  ),
1015
- ...props
1051
+ ...props,
1052
+ "data-slot": slotName
1016
1053
  }
1017
1054
  );
1018
1055
  }
1019
1056
  function SidebarGroupAction({
1020
1057
  className,
1021
1058
  asChild = false,
1059
+ slotName = "sidebar-group-action",
1022
1060
  ...props
1023
1061
  }) {
1024
1062
  const Comp = asChild ? Slot : "button";
1025
1063
  return /* @__PURE__ */ jsx(
1026
1064
  Comp,
1027
1065
  {
1028
- "data-slot": "sidebar-group-action",
1029
1066
  "data-sidebar": "group-action",
1030
1067
  className: cn(
1031
1068
  "top-3.5 right-3 w-5 p-0 [&>svg]:size-4 rounded-xl absolute flex aspect-square items-center justify-center text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 [&>svg]:shrink-0",
@@ -1034,43 +1071,53 @@ function SidebarGroupAction({
1034
1071
  "group-data-[collapsible=icon]:hidden",
1035
1072
  className
1036
1073
  ),
1037
- ...props
1074
+ ...props,
1075
+ "data-slot": slotName
1038
1076
  }
1039
1077
  );
1040
1078
  }
1041
1079
  function SidebarGroupContent({
1042
1080
  className,
1081
+ slotName = "sidebar-group-content",
1043
1082
  ...props
1044
1083
  }) {
1045
1084
  return /* @__PURE__ */ jsx(
1046
1085
  "div",
1047
1086
  {
1048
- "data-slot": "sidebar-group-content",
1049
1087
  "data-sidebar": "group-content",
1050
1088
  className: cn("text-sm w-full", className),
1051
- ...props
1089
+ ...props,
1090
+ "data-slot": slotName
1052
1091
  }
1053
1092
  );
1054
1093
  }
1055
- function SidebarMenu({ className, ...props }) {
1094
+ function SidebarMenu({
1095
+ className,
1096
+ slotName = "sidebar-menu",
1097
+ ...props
1098
+ }) {
1056
1099
  return /* @__PURE__ */ jsx(
1057
1100
  "ul",
1058
1101
  {
1059
- "data-slot": "sidebar-menu",
1060
1102
  "data-sidebar": "menu",
1061
1103
  className: cn("min-w-0 gap-1 flex w-full flex-col", className),
1062
- ...props
1104
+ ...props,
1105
+ "data-slot": slotName
1063
1106
  }
1064
1107
  );
1065
1108
  }
1066
- function SidebarMenuItem({ className, ...props }) {
1109
+ function SidebarMenuItem({
1110
+ className,
1111
+ slotName = "sidebar-menu-item",
1112
+ ...props
1113
+ }) {
1067
1114
  return /* @__PURE__ */ jsx(
1068
1115
  "li",
1069
1116
  {
1070
- "data-slot": "sidebar-menu-item",
1071
1117
  "data-sidebar": "menu-item",
1072
1118
  className: cn("group/menu-item relative", className),
1073
- ...props
1119
+ ...props,
1120
+ "data-slot": slotName
1074
1121
  }
1075
1122
  );
1076
1123
  }
@@ -1101,6 +1148,7 @@ function SidebarMenuButton({
1101
1148
  size = "default",
1102
1149
  tooltip,
1103
1150
  className,
1151
+ slotName = "sidebar-menu-button",
1104
1152
  ...props
1105
1153
  }) {
1106
1154
  const Comp = asChild ? Slot : "button";
@@ -1108,7 +1156,6 @@ function SidebarMenuButton({
1108
1156
  const button = /* @__PURE__ */ jsx(
1109
1157
  Comp,
1110
1158
  {
1111
- "data-slot": "sidebar-menu-button",
1112
1159
  "data-sidebar": "menu-button",
1113
1160
  "data-size": size,
1114
1161
  "data-active": isActive,
@@ -1116,7 +1163,8 @@ function SidebarMenuButton({
1116
1163
  sidebarMenuButtonVariants({ variant, size }),
1117
1164
  className
1118
1165
  ),
1119
- ...props
1166
+ ...props,
1167
+ "data-slot": slotName
1120
1168
  }
1121
1169
  );
1122
1170
  if (!tooltip) {
@@ -1144,13 +1192,13 @@ function SidebarMenuAction({
1144
1192
  className,
1145
1193
  asChild = false,
1146
1194
  showOnHover = false,
1195
+ slotName = "sidebar-menu-action",
1147
1196
  ...props
1148
1197
  }) {
1149
1198
  const Comp = asChild ? Slot : "button";
1150
1199
  return /* @__PURE__ */ jsx(
1151
1200
  Comp,
1152
1201
  {
1153
- "data-slot": "sidebar-menu-action",
1154
1202
  "data-sidebar": "menu-action",
1155
1203
  className: cn(
1156
1204
  "top-1.5 right-1 w-5 p-0 [&>svg]:size-4 rounded-xl absolute flex aspect-square items-center justify-center text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform peer-hover/menu-button:text-sidebar-accent-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 [&>svg]:shrink-0",
@@ -1163,18 +1211,19 @@ function SidebarMenuAction({
1163
1211
  showOnHover && "md:opacity-0 group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground data-[state=open]:opacity-100",
1164
1212
  className
1165
1213
  ),
1166
- ...props
1214
+ ...props,
1215
+ "data-slot": slotName
1167
1216
  }
1168
1217
  );
1169
1218
  }
1170
1219
  function SidebarMenuBadge({
1171
1220
  className,
1221
+ slotName = "sidebar-menu-badge",
1172
1222
  ...props
1173
1223
  }) {
1174
1224
  return /* @__PURE__ */ jsx(
1175
1225
  "div",
1176
1226
  {
1177
- "data-slot": "sidebar-menu-badge",
1178
1227
  "data-sidebar": "menu-badge",
1179
1228
  className: cn(
1180
1229
  "right-1 h-5 min-w-5 px-1 text-xs font-medium rounded-xl pointer-events-none absolute flex items-center justify-center text-sidebar-foreground tabular-nums select-none",
@@ -1185,13 +1234,15 @@ function SidebarMenuBadge({
1185
1234
  "group-data-[collapsible=icon]:hidden",
1186
1235
  className
1187
1236
  ),
1188
- ...props
1237
+ ...props,
1238
+ "data-slot": slotName
1189
1239
  }
1190
1240
  );
1191
1241
  }
1192
1242
  function SidebarMenuSkeleton({
1193
1243
  className,
1194
1244
  showIcon = false,
1245
+ slotName = "sidebar-menu-skeleton",
1195
1246
  ...props
1196
1247
  }) {
1197
1248
  const width = React2.useMemo(() => {
@@ -1200,13 +1251,13 @@ function SidebarMenuSkeleton({
1200
1251
  return /* @__PURE__ */ jsxs(
1201
1252
  "div",
1202
1253
  {
1203
- "data-slot": "sidebar-menu-skeleton",
1204
1254
  "data-sidebar": "menu-skeleton",
1205
1255
  className: cn(
1206
1256
  "h-8 gap-2 px-2 rounded-xl flex items-center",
1207
1257
  className
1208
1258
  ),
1209
1259
  ...props,
1260
+ "data-slot": slotName,
1210
1261
  children: [
1211
1262
  showIcon && /* @__PURE__ */ jsx(
1212
1263
  Skeleton,
@@ -1229,32 +1280,37 @@ function SidebarMenuSkeleton({
1229
1280
  }
1230
1281
  );
1231
1282
  }
1232
- function SidebarMenuSub({ className, ...props }) {
1283
+ function SidebarMenuSub({
1284
+ className,
1285
+ slotName = "sidebar-menu-sub",
1286
+ ...props
1287
+ }) {
1233
1288
  return /* @__PURE__ */ jsx(
1234
1289
  "ul",
1235
1290
  {
1236
- "data-slot": "sidebar-menu-sub",
1237
1291
  "data-sidebar": "menu-sub",
1238
1292
  className: cn(
1239
1293
  "mx-3.5 min-w-0 gap-1 px-2.5 py-0.5 flex translate-x-px flex-col border-l border-sidebar-border",
1240
1294
  "group-data-[collapsible=icon]:hidden",
1241
1295
  className
1242
1296
  ),
1243
- ...props
1297
+ ...props,
1298
+ "data-slot": slotName
1244
1299
  }
1245
1300
  );
1246
1301
  }
1247
1302
  function SidebarMenuSubItem({
1248
1303
  className,
1304
+ slotName = "sidebar-menu-sub-item",
1249
1305
  ...props
1250
1306
  }) {
1251
1307
  return /* @__PURE__ */ jsx(
1252
1308
  "li",
1253
1309
  {
1254
- "data-slot": "sidebar-menu-sub-item",
1255
1310
  "data-sidebar": "menu-sub-item",
1256
1311
  className: cn("group/menu-sub-item relative", className),
1257
- ...props
1312
+ ...props,
1313
+ "data-slot": slotName
1258
1314
  }
1259
1315
  );
1260
1316
  }
@@ -1263,13 +1319,13 @@ function SidebarMenuSubButton({
1263
1319
  size = "md",
1264
1320
  isActive = false,
1265
1321
  className,
1322
+ slotName = "sidebar-menu-sub-button",
1266
1323
  ...props
1267
1324
  }) {
1268
1325
  const Comp = asChild ? Slot : "a";
1269
1326
  return /* @__PURE__ */ jsx(
1270
1327
  Comp,
1271
1328
  {
1272
- "data-slot": "sidebar-menu-sub-button",
1273
1329
  "data-sidebar": "menu-sub-button",
1274
1330
  "data-size": size,
1275
1331
  "data-active": isActive,
@@ -1281,11 +1337,12 @@ function SidebarMenuSubButton({
1281
1337
  "group-data-[collapsible=icon]:hidden",
1282
1338
  className
1283
1339
  ),
1284
- ...props
1340
+ ...props,
1341
+ "data-slot": slotName
1285
1342
  }
1286
1343
  );
1287
1344
  }
1288
1345
 
1289
- export { Avatar, AvatarFallback, AvatarImage, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Icon, Separator2 as Separator, 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, useIsMobile, useSidebar };
1290
- //# sourceMappingURL=chunk-5MQWJVM2.js.map
1291
- //# sourceMappingURL=chunk-5MQWJVM2.js.map
1346
+ export { Avatar, AvatarFallback, AvatarImage, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as 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, useIsMobile, useSidebar };
1347
+ //# sourceMappingURL=chunk-QHZWW55M.js.map
1348
+ //# sourceMappingURL=chunk-QHZWW55M.js.map