@moduix/solid-tailwind 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 (124) hide show
  1. package/dist/components/accordion/Accordion.js +19 -13
  2. package/dist/components/accordion/Accordion.jsx +7 -7
  3. package/dist/components/alert/Alert.js +19 -13
  4. package/dist/components/alert/Alert.jsx +7 -7
  5. package/dist/components/angle-slider/AngleSlider.d.ts +2 -6
  6. package/dist/components/angle-slider/AngleSlider.js +21 -16
  7. package/dist/components/angle-slider/AngleSlider.jsx +10 -11
  8. package/dist/components/avatar/Avatar.js +10 -7
  9. package/dist/components/avatar/Avatar.jsx +6 -6
  10. package/dist/components/bleed/Bleed.js +1 -1
  11. package/dist/components/bleed/Bleed.jsx +1 -1
  12. package/dist/components/button/Button.js +1 -6
  13. package/dist/components/button/Button.jsx +2 -4
  14. package/dist/components/card/Card.js +54 -44
  15. package/dist/components/card/Card.jsx +12 -12
  16. package/dist/components/carousel/Carousel.d.ts +1 -1
  17. package/dist/components/carousel/Carousel.js +32 -23
  18. package/dist/components/carousel/Carousel.jsx +12 -13
  19. package/dist/components/checkbox/Checkbox.js +16 -14
  20. package/dist/components/checkbox/Checkbox.jsx +6 -6
  21. package/dist/components/clipboard/Clipboard.js +28 -17
  22. package/dist/components/clipboard/Clipboard.jsx +12 -11
  23. package/dist/components/collapsible/Collapsible.js +16 -11
  24. package/dist/components/collapsible/Collapsible.jsx +6 -6
  25. package/dist/components/color-picker/ColorPicker.js +69 -48
  26. package/dist/components/color-picker/ColorPicker.jsx +28 -28
  27. package/dist/components/combobox/Combobox.js +44 -31
  28. package/dist/components/combobox/Combobox.jsx +18 -18
  29. package/dist/components/command-palette/CommandPalette.js +72 -53
  30. package/dist/components/command-palette/CommandPalette.jsx +29 -32
  31. package/dist/components/container/Container.js +5 -5
  32. package/dist/components/container/Container.jsx +5 -5
  33. package/dist/components/date-input/DateInput.js +18 -12
  34. package/dist/components/date-input/DateInput.jsx +7 -7
  35. package/dist/components/date-picker/DatePicker.js +73 -51
  36. package/dist/components/date-picker/DatePicker.jsx +29 -29
  37. package/dist/components/dialog/Dialog.js +30 -20
  38. package/dist/components/dialog/Dialog.jsx +10 -10
  39. package/dist/components/drawer/Drawer.js +45 -30
  40. package/dist/components/drawer/Drawer.jsx +15 -15
  41. package/dist/components/editable/Editable.js +24 -17
  42. package/dist/components/editable/Editable.jsx +10 -10
  43. package/dist/components/empty/Empty.js +1 -1
  44. package/dist/components/empty/Empty.jsx +1 -1
  45. package/dist/components/file-upload/FileUpload.js +39 -28
  46. package/dist/components/file-upload/FileUpload.jsx +17 -17
  47. package/dist/components/floating-panel/FloatingPanel.js +35 -23
  48. package/dist/components/floating-panel/FloatingPanel.jsx +12 -12
  49. package/dist/components/hover-card/HoverCard.js +16 -11
  50. package/dist/components/hover-card/HoverCard.jsx +6 -6
  51. package/dist/components/image-cropper/ImageCropper.js +21 -14
  52. package/dist/components/image-cropper/ImageCropper.jsx +7 -7
  53. package/dist/components/input-group/InputGroup.js +3 -2
  54. package/dist/components/input-group/InputGroup.jsx +3 -2
  55. package/dist/components/json-tree-view/JsonTreeView.js +1 -1
  56. package/dist/components/json-tree-view/JsonTreeView.jsx +1 -1
  57. package/dist/components/lightbox/Lightbox.d.ts +1 -0
  58. package/dist/components/lightbox/Lightbox.js +41 -27
  59. package/dist/components/lightbox/Lightbox.jsx +13 -12
  60. package/dist/components/listbox/Listbox.js +48 -32
  61. package/dist/components/listbox/Listbox.jsx +17 -17
  62. package/dist/components/marquee/Marquee.js +18 -12
  63. package/dist/components/marquee/Marquee.jsx +9 -9
  64. package/dist/components/menu/Menu.js +66 -44
  65. package/dist/components/menu/Menu.jsx +28 -28
  66. package/dist/components/navigation-menu/NavigationMenu.js +36 -24
  67. package/dist/components/navigation-menu/NavigationMenu.jsx +12 -12
  68. package/dist/components/number-input/NumberInput.js +19 -14
  69. package/dist/components/number-input/NumberInput.jsx +9 -9
  70. package/dist/components/pagination/Pagination.js +10 -9
  71. package/dist/components/pagination/Pagination.jsx +8 -8
  72. package/dist/components/password-input/PasswordInput.js +16 -11
  73. package/dist/components/password-input/PasswordInput.jsx +6 -6
  74. package/dist/components/pin-input/PinInput.js +15 -10
  75. package/dist/components/pin-input/PinInput.jsx +6 -6
  76. package/dist/components/popover/Popover.js +37 -25
  77. package/dist/components/popover/Popover.jsx +13 -13
  78. package/dist/components/progress-circular/ProgressCircular.js +18 -13
  79. package/dist/components/progress-circular/ProgressCircular.jsx +8 -8
  80. package/dist/components/progress-linear/ProgressLinear.js +17 -12
  81. package/dist/components/progress-linear/ProgressLinear.jsx +7 -7
  82. package/dist/components/qr-code/QrCode.js +8 -7
  83. package/dist/components/qr-code/QrCode.jsx +6 -6
  84. package/dist/components/rating-group/RatingGroup.js +15 -10
  85. package/dist/components/rating-group/RatingGroup.jsx +6 -6
  86. package/dist/components/segment-group/SegmentGroup.js +17 -12
  87. package/dist/components/segment-group/SegmentGroup.jsx +7 -7
  88. package/dist/components/select/Select.js +50 -35
  89. package/dist/components/select/Select.jsx +20 -20
  90. package/dist/components/sidebar/Sidebar.js +72 -43
  91. package/dist/components/sidebar/Sidebar.jsx +34 -27
  92. package/dist/components/signature-pad/SignaturePad.js +16 -12
  93. package/dist/components/signature-pad/SignaturePad.jsx +8 -8
  94. package/dist/components/slider/Slider.js +29 -20
  95. package/dist/components/slider/Slider.jsx +11 -11
  96. package/dist/components/split-button/SplitButton.d.ts +4 -3
  97. package/dist/components/split-button/SplitButton.js +20 -9
  98. package/dist/components/split-button/SplitButton.jsx +13 -7
  99. package/dist/components/splitter/Splitter.js +13 -9
  100. package/dist/components/splitter/Splitter.jsx +5 -5
  101. package/dist/components/steps/Steps.js +34 -23
  102. package/dist/components/steps/Steps.jsx +12 -12
  103. package/dist/components/swap/Swap.js +9 -6
  104. package/dist/components/swap/Swap.jsx +3 -3
  105. package/dist/components/switch/Switch.js +9 -7
  106. package/dist/components/switch/Switch.jsx +5 -5
  107. package/dist/components/tabs/Tabs.js +18 -12
  108. package/dist/components/tabs/Tabs.jsx +6 -6
  109. package/dist/components/tags-input/TagsInput.js +28 -20
  110. package/dist/components/tags-input/TagsInput.jsx +12 -12
  111. package/dist/components/timer/Timer.js +21 -14
  112. package/dist/components/timer/Timer.jsx +7 -7
  113. package/dist/components/toast/Toast.js +11 -9
  114. package/dist/components/toast/Toast.jsx +7 -7
  115. package/dist/components/toc/Toc.js +31 -20
  116. package/dist/components/toc/Toc.jsx +10 -10
  117. package/dist/components/tooltip/Tooltip.js +13 -9
  118. package/dist/components/tooltip/Tooltip.jsx +5 -5
  119. package/dist/components/tour/Tour.js +38 -26
  120. package/dist/components/tour/Tour.jsx +13 -13
  121. package/dist/components/tree-view/TreeView.js +39 -28
  122. package/dist/components/tree-view/TreeView.jsx +17 -17
  123. package/dist/styles/animations.css +8 -8
  124. package/package.json +10 -11
@@ -1,11 +1,12 @@
1
1
  import { createComponent, insert, memo, mergeProps, template } from "solid-js/web";
2
2
  import { ark } from "@ark-ui/solid/factory";
3
+ import { Splitter } from "@ark-ui/solid/splitter";
3
4
  import { createContext, splitProps, useContext } from "solid-js";
4
5
  import { cn } from "../../internal/cn.js";
5
6
  import { ChevronLeftIcon } from "../../internal/icons/ui/Icons.js";
6
7
  import { Input } from "../input/index.js";
7
8
  import { Separator } from "../separator/index.js";
8
- import { Splitter, useSplitterContext } from "../splitter/index.js";
9
+ import { Splitter as index_js_Splitter, useSplitterContext } from "../splitter/index.js";
9
10
  import { Tooltip } from "../tooltip/index.js";
10
11
  var _tmpl$ = /*#__PURE__*/ template("<span data-slot=sidebar-navigation-sub-label>");
11
12
  const sidebarPanel = {
@@ -61,7 +62,8 @@ function SidebarRoot(props) {
61
62
  'class',
62
63
  'defaultSize',
63
64
  'panelId',
64
- 'side'
65
+ 'side',
66
+ 'style'
65
67
  ]);
66
68
  const panelId = ()=>local.panelId ?? 'sidebar';
67
69
  const side = ()=>local.side ?? 'left';
@@ -84,7 +86,14 @@ function SidebarRoot(props) {
84
86
  },
85
87
  "data-slot": "sidebar-root",
86
88
  get ["class"] () {
87
- return cn('isolate h-dvh min-h-96 w-full min-w-0 rounded-none border border-border bg-background text-foreground shadow-none', local.class);
89
+ return cn('group/splitter relative box-border h-112 min-h-0 w-full min-w-0 rounded-md border border-border bg-card text-foreground shadow-sm data-dragging:cursor-col-resize data-dragging:data-[orientation=vertical]:cursor-row-resize', 'isolate h-dvh min-h-96 w-full min-w-0 rounded-none border border-border bg-background text-foreground shadow-none', local.class);
90
+ },
91
+ get style () {
92
+ return memo(()=>'string' == typeof local.style)() ? `width:;height:;${local.style}` : {
93
+ width: void 0,
94
+ height: void 0,
95
+ ...local.style
96
+ };
88
97
  }
89
98
  }));
90
99
  }
@@ -120,7 +129,7 @@ function SidebarPanel(props) {
120
129
  return collapsed() ? 'collapsed' : 'expanded';
121
130
  },
122
131
  get ["class"] () {
123
- return cn('group/sidebar-panel @container/sidebar-panel relative flex min-h-0 min-w-0 flex-col overflow-hidden bg-card p-0 text-card-foreground transition-colors duration-200 ease-in-out motion-reduce:transition-none', local.class);
132
+ return cn('box-border min-h-50 min-w-0 overflow-auto rounded-none border-0 border-border bg-card p-4 text-card-foreground shadow-none group-data-[orientation=vertical]/splitter:min-h-0 data-dragging:select-none', 'group/sidebar-panel @container/sidebar-panel relative flex min-h-0 min-w-0 flex-col overflow-hidden bg-card p-0 text-card-foreground transition-colors duration-200 ease-in-out motion-reduce:transition-none', local.class);
124
133
  }
125
134
  }));
126
135
  }
@@ -136,19 +145,23 @@ function SidebarInset(props) {
136
145
  },
137
146
  "data-slot": "sidebar-inset",
138
147
  get ["class"] () {
139
- return cn('relative min-w-0 overflow-auto bg-background p-0 text-foreground', local.class);
148
+ return cn('box-border min-h-50 min-w-0 overflow-auto rounded-none border-0 border-border bg-card p-4 text-card-foreground shadow-none group-data-[orientation=vertical]/splitter:min-h-0 data-dragging:select-none', 'relative min-w-0 overflow-auto bg-background p-0 text-foreground', local.class);
140
149
  }
141
150
  }));
142
151
  }
143
152
  function SidebarResizeTrigger(props) {
144
153
  const [local, others] = splitProps(props, [
145
154
  'aria-label',
155
+ 'asChild',
146
156
  'class',
147
157
  'children'
148
158
  ]);
149
159
  const config = useSidebarConfig();
150
160
  const id = ()=>'left' === config.side() ? `${config.panelId()}:content` : `content:${config.panelId()}`;
151
161
  return createComponent(Splitter.ResizeTrigger, mergeProps(others, {
162
+ get asChild () {
163
+ return local.asChild;
164
+ },
152
165
  get id () {
153
166
  return id();
154
167
  },
@@ -160,10 +173,10 @@ function SidebarResizeTrigger(props) {
160
173
  },
161
174
  "data-slot": "sidebar-resize-trigger",
162
175
  get ["class"] () {
163
- return cn('z-2', local.class);
176
+ return cn("group/trigger relative z-1 box-border flex w-px min-w-px cursor-col-resize appearance-none items-center justify-center border-0 bg-transparent p-0 outline-0 transition-opacity duration-200 ease-in-out before:absolute before:h-full before:w-[0.5px] before:rounded-full before:bg-border before:transition-[background-color] before:duration-200 before:ease-in-out before:content-[''] after:absolute after:z-1 after:h-full after:w-2.5 after:content-[''] data-disabled:cursor-default data-disabled:opacity-50 data-dragging:before:bg-muted-foreground/40 data-[orientation=vertical]:h-px data-[orientation=vertical]:min-h-px data-[orientation=vertical]:w-full data-[orientation=vertical]:min-w-0 data-[orientation=vertical]:cursor-row-resize data-[orientation=vertical]:before:h-[0.5px] data-[orientation=vertical]:before:w-full data-[orientation=vertical]:after:h-2.5 data-[orientation=vertical]:after:w-full [@media(hover:hover)]:[&:not(:disabled):not([data-disabled]):hover]:before:bg-muted-foreground/40", 'z-2', local.class);
164
177
  },
165
178
  get children () {
166
- return local.children;
179
+ return memo(()=>!!(void 0 === local.children && !local.asChild))() ? createComponent(index_js_Splitter.ResizeTriggerIndicator, {}) : local.children;
167
180
  }
168
181
  }));
169
182
  }
@@ -202,7 +215,6 @@ function SidebarTrigger(props) {
202
215
  get ["data-side"] () {
203
216
  return config.side();
204
217
  },
205
- "data-slot": "sidebar-trigger",
206
218
  get ["data-state"] () {
207
219
  return collapsed() ? 'collapsed' : 'expanded';
208
220
  },
@@ -211,6 +223,7 @@ function SidebarTrigger(props) {
211
223
  },
212
224
  onClick: handleClick
213
225
  }, others, {
226
+ "data-slot": "sidebar-trigger",
214
227
  get children () {
215
228
  return memo(()=>!!(void 0 === local.children && !local.asChild))() ? createComponent(ChevronLeftIcon, {}) : local.children;
216
229
  }
@@ -223,11 +236,12 @@ function SidebarLabel(props) {
223
236
  return createComponent(ark.span, mergeProps({
224
237
  "data-scope": "sidebar",
225
238
  "data-part": "label",
226
- "data-slot": "sidebar-label",
227
239
  get ["class"] () {
228
240
  return cn('min-w-0 truncate group-data-[state=collapsed]/sidebar-panel:sr-only', local.class);
229
241
  }
230
- }, others));
242
+ }, others, {
243
+ "data-slot": "sidebar-label"
244
+ }));
231
245
  }
232
246
  function SidebarHeader(props) {
233
247
  const [local, others] = splitProps(props, [
@@ -236,11 +250,12 @@ function SidebarHeader(props) {
236
250
  return createComponent(ark.header, mergeProps({
237
251
  "data-scope": "sidebar",
238
252
  "data-part": "header",
239
- "data-slot": "sidebar-header",
240
253
  get ["class"] () {
241
254
  return cn('flex flex-none items-center gap-2 p-3 group-data-[state=collapsed]/sidebar-panel:justify-center group-data-[state=collapsed]/sidebar-panel:px-1 [&>*:only-child]:w-full group-data-[state=collapsed]/sidebar-panel:[&>*:only-child]:w-auto', local.class);
242
255
  }
243
- }, others));
256
+ }, others, {
257
+ "data-slot": "sidebar-header"
258
+ }));
244
259
  }
245
260
  function SidebarContent(props) {
246
261
  const [local, others] = splitProps(props, [
@@ -249,11 +264,12 @@ function SidebarContent(props) {
249
264
  return createComponent(ark.div, mergeProps({
250
265
  "data-scope": "sidebar",
251
266
  "data-part": "content",
252
- "data-slot": "sidebar-content",
253
267
  get ["class"] () {
254
268
  return cn('flex min-h-0 flex-auto [scrollbar-gutter:stable] flex-col overflow-auto overscroll-contain group-data-[state=collapsed]/sidebar-panel:[scrollbar-width:none] group-data-[state=collapsed]/sidebar-panel:[scrollbar-gutter:auto] group-data-[state=collapsed]/sidebar-panel:overflow-x-hidden group-data-[state=collapsed]/sidebar-panel:overflow-y-auto', local.class);
255
269
  }
256
- }, others));
270
+ }, others, {
271
+ "data-slot": "sidebar-content"
272
+ }));
257
273
  }
258
274
  function SidebarExpandedContent(props) {
259
275
  const [local, others] = splitProps(props, [
@@ -263,11 +279,11 @@ function SidebarExpandedContent(props) {
263
279
  return createComponent(ark.div, mergeProps({
264
280
  "data-scope": "sidebar",
265
281
  "data-part": "expanded-content",
266
- "data-slot": "sidebar-expanded-content",
267
282
  get ["class"] () {
268
283
  return local.class;
269
284
  }
270
285
  }, others, {
286
+ "data-slot": "sidebar-expanded-content",
271
287
  get hidden () {
272
288
  return collapsed();
273
289
  }
@@ -281,11 +297,11 @@ function SidebarCollapsedContent(props) {
281
297
  return createComponent(ark.div, mergeProps({
282
298
  "data-scope": "sidebar",
283
299
  "data-part": "collapsed-content",
284
- "data-slot": "sidebar-collapsed-content",
285
300
  get ["class"] () {
286
301
  return local.class;
287
302
  }
288
303
  }, others, {
304
+ "data-slot": "sidebar-collapsed-content",
289
305
  get hidden () {
290
306
  return !collapsed();
291
307
  }
@@ -298,11 +314,12 @@ function SidebarFooter(props) {
298
314
  return createComponent(ark.footer, mergeProps({
299
315
  "data-scope": "sidebar",
300
316
  "data-part": "footer",
301
- "data-slot": "sidebar-footer",
302
317
  get ["class"] () {
303
318
  return cn('flex flex-none items-center gap-2 p-3 group-data-[state=collapsed]/sidebar-panel:justify-center group-data-[state=collapsed]/sidebar-panel:px-1', local.class);
304
319
  }
305
- }, others));
320
+ }, others, {
321
+ "data-slot": "sidebar-footer"
322
+ }));
306
323
  }
307
324
  function SidebarGroup(props) {
308
325
  const [local, others] = splitProps(props, [
@@ -311,11 +328,12 @@ function SidebarGroup(props) {
311
328
  return createComponent(ark.section, mergeProps({
312
329
  "data-scope": "sidebar",
313
330
  "data-part": "group",
314
- "data-slot": "sidebar-group",
315
331
  get ["class"] () {
316
332
  return cn('flex flex-col gap-1 p-3 group-data-[state=collapsed]/sidebar-panel:px-1', local.class);
317
333
  }
318
- }, others));
334
+ }, others, {
335
+ "data-slot": "sidebar-group"
336
+ }));
319
337
  }
320
338
  function SidebarGroupHeader(props) {
321
339
  const [local, others] = splitProps(props, [
@@ -324,11 +342,12 @@ function SidebarGroupHeader(props) {
324
342
  return createComponent(ark.div, mergeProps({
325
343
  "data-scope": "sidebar",
326
344
  "data-part": "group-header",
327
- "data-slot": "sidebar-group-header",
328
345
  get ["class"] () {
329
346
  return cn('flex min-w-0 items-center gap-2', local.class);
330
347
  }
331
- }, others));
348
+ }, others, {
349
+ "data-slot": "sidebar-group-header"
350
+ }));
332
351
  }
333
352
  function SidebarGroupLabel(props) {
334
353
  const [local, others] = splitProps(props, [
@@ -337,11 +356,12 @@ function SidebarGroupLabel(props) {
337
356
  return createComponent(ark.h3, mergeProps({
338
357
  "data-scope": "sidebar",
339
358
  "data-part": "group-label",
340
- "data-slot": "sidebar-group-label",
341
359
  get ["class"] () {
342
360
  return cn('min-w-0 flex-1 truncate px-2 text-xs leading-4 font-medium text-muted-foreground group-data-[state=collapsed]/sidebar-panel:sr-only', local.class);
343
361
  }
344
- }, others));
362
+ }, others, {
363
+ "data-slot": "sidebar-group-label"
364
+ }));
345
365
  }
346
366
  function SidebarGroupAction(props) {
347
367
  const [local, others] = splitProps(props, [
@@ -354,11 +374,12 @@ function SidebarGroupAction(props) {
354
374
  },
355
375
  "data-scope": "sidebar",
356
376
  "data-part": "group-action",
357
- "data-slot": "sidebar-group-action",
358
377
  get ["class"] () {
359
378
  return cn('focus-visible:outline-offset-0.5 me-2 inline-flex size-control-xs flex-none cursor-pointer items-center justify-center rounded-md p-0 text-muted-foreground outline-0 transition-colors duration-200 ease-in-out hover:bg-accent hover:text-accent-foreground focus-visible:outline-2 focus-visible:outline-ring motion-reduce:transition-none @max-[7rem]:hidden [&>svg]:size-4', local.class);
360
379
  }
361
- }, others));
380
+ }, others, {
381
+ "data-slot": "sidebar-group-action"
382
+ }));
362
383
  }
363
384
  function SidebarNavigationList(props) {
364
385
  const [local, others] = splitProps(props, [
@@ -367,11 +388,12 @@ function SidebarNavigationList(props) {
367
388
  return createComponent(ark.ul, mergeProps({
368
389
  "data-scope": "sidebar",
369
390
  "data-part": "navigation-list",
370
- "data-slot": "sidebar-navigation-list",
371
391
  get ["class"] () {
372
392
  return cn('flex w-full min-w-0 flex-col gap-1', local.class);
373
393
  }
374
- }, others));
394
+ }, others, {
395
+ "data-slot": "sidebar-navigation-list"
396
+ }));
375
397
  }
376
398
  function SidebarNavigationItem(props) {
377
399
  const [local, others] = splitProps(props, [
@@ -380,11 +402,12 @@ function SidebarNavigationItem(props) {
380
402
  return createComponent(ark.li, mergeProps({
381
403
  "data-scope": "sidebar",
382
404
  "data-part": "navigation-item",
383
- "data-slot": "sidebar-navigation-item",
384
405
  get ["class"] () {
385
406
  return cn('relative min-w-0', local.class);
386
407
  }
387
- }, others));
408
+ }, others, {
409
+ "data-slot": "sidebar-navigation-item"
410
+ }));
388
411
  }
389
412
  function SidebarNavigationButton(props) {
390
413
  const [local, others] = splitProps(props, [
@@ -407,7 +430,6 @@ function SidebarNavigationButton(props) {
407
430
  },
408
431
  "data-scope": "sidebar",
409
432
  "data-part": "navigation-button",
410
- "data-slot": "sidebar-navigation-button",
411
433
  get ["data-active"] () {
412
434
  return local.active ? '' : void 0;
413
435
  },
@@ -417,7 +439,9 @@ function SidebarNavigationButton(props) {
417
439
  get ["class"] () {
418
440
  return cn('flex w-full min-w-0 cursor-pointer items-center gap-2 overflow-hidden rounded-md px-2 py-1 text-start text-sm leading-5 text-ellipsis whitespace-nowrap text-card-foreground outline-0 transition-colors duration-200 ease-in-out has-[+_[data-slot=sidebar-navigation-badge]]:pe-10 @max-[7rem]:has-[+_[data-slot=sidebar-navigation-badge]]:pe-2', 'focus-visible:outline-offset-0.5 focus-visible:outline-2 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-active:bg-accent data-active:font-medium data-active:text-accent-foreground motion-reduce:transition-none [&:not(:disabled):not([aria-disabled=true])]:hover:bg-accent [&:not(:disabled):not([aria-disabled=true])]:hover:text-accent-foreground', 'group-data-[state=collapsed]/sidebar-panel:mx-auto group-data-[state=collapsed]/sidebar-panel:min-h-control-md group-data-[state=collapsed]/sidebar-panel:w-control-md group-data-[state=collapsed]/sidebar-panel:justify-center group-data-[state=collapsed]/sidebar-panel:bg-transparent group-data-[state=collapsed]/sidebar-panel:px-0 group-data-[state=collapsed]/sidebar-panel:hover:bg-transparent', '[&>[data-sidebar-icon]]:shrink-0 [&>span:last-child]:min-w-0 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0', '[&>[data-scope=select][data-part=indicator]]:ms-auto @max-[7rem]:[&>[data-scope=select][data-part=indicator]]:hidden', '[&>[data-slot=collapsible-indicator]]:ms-auto [&>[data-slot=collapsible-indicator]]:size-control-xs @max-[7rem]:[&>[data-slot=collapsible-indicator]]:hidden [&>[data-slot=collapsible-indicator]>svg]:size-3', '[&>[data-slot=menu-indicator]]:ms-auto [&>[data-slot=menu-indicator]]:size-control-xs [&>[data-slot=menu-indicator]]:leading-none [&>[data-slot=menu-indicator]]:text-muted-foreground @max-[7rem]:[&>[data-slot=menu-indicator]]:hidden [&>[data-slot=menu-indicator]>svg]:block [&>[data-slot=menu-indicator]>svg]:size-4', 'sm' === local.size && 'min-h-control-sm text-xs', (void 0 === local.size || 'md' === local.size) && 'min-h-control-md', 'lg' === local.size && 'min-h-control-lg', local.class);
419
441
  }
420
- }, others));
442
+ }, others, {
443
+ "data-slot": "sidebar-navigation-button"
444
+ }));
421
445
  }
422
446
  function SidebarNavigationBadge(props) {
423
447
  const [local, others] = splitProps(props, [
@@ -426,11 +450,12 @@ function SidebarNavigationBadge(props) {
426
450
  return createComponent(ark.span, mergeProps({
427
451
  "data-scope": "sidebar",
428
452
  "data-part": "navigation-badge",
429
- "data-slot": "sidebar-navigation-badge",
430
453
  get ["class"] () {
431
454
  return cn('pointer-events-none absolute end-2.5 top-1/2 z-1 box-border inline-grid size-5 -translate-y-1/2 place-items-center rounded-full bg-primary p-0 text-[0.5625rem] leading-none font-medium text-primary-foreground tabular-nums @max-[7rem]:hidden', local.class);
432
455
  }
433
- }, others));
456
+ }, others, {
457
+ "data-slot": "sidebar-navigation-badge"
458
+ }));
434
459
  }
435
460
  function SidebarNavigationSubList(props) {
436
461
  const [local, others] = splitProps(props, [
@@ -439,11 +464,12 @@ function SidebarNavigationSubList(props) {
439
464
  return createComponent(ark.ul, mergeProps({
440
465
  "data-scope": "sidebar",
441
466
  "data-part": "navigation-sub-list",
442
- "data-slot": "sidebar-navigation-sub-list",
443
467
  get ["class"] () {
444
468
  return cn('ms-4 mt-1 flex w-auto min-w-0 flex-col gap-1 border-s border-border ps-2 group-data-[state=collapsed]/sidebar-panel:hidden', local.class);
445
469
  }
446
- }, others));
470
+ }, others, {
471
+ "data-slot": "sidebar-navigation-sub-list"
472
+ }));
447
473
  }
448
474
  function SidebarNavigationSubItem(props) {
449
475
  const [local, others] = splitProps(props, [
@@ -452,11 +478,12 @@ function SidebarNavigationSubItem(props) {
452
478
  return createComponent(ark.li, mergeProps({
453
479
  "data-scope": "sidebar",
454
480
  "data-part": "navigation-sub-item",
455
- "data-slot": "sidebar-navigation-sub-item",
456
481
  get ["class"] () {
457
482
  return cn('relative min-w-0', local.class);
458
483
  }
459
- }, others));
484
+ }, others, {
485
+ "data-slot": "sidebar-navigation-sub-item"
486
+ }));
460
487
  }
461
488
  function SidebarNavigationSubButton(props) {
462
489
  const [local, others] = splitProps(props, [
@@ -475,7 +502,6 @@ function SidebarNavigationSubButton(props) {
475
502
  },
476
503
  "data-scope": "sidebar",
477
504
  "data-part": "navigation-sub-button",
478
- "data-slot": "sidebar-navigation-sub-button",
479
505
  get ["data-active"] () {
480
506
  return local.active ? '' : void 0;
481
507
  },
@@ -483,6 +509,7 @@ function SidebarNavigationSubButton(props) {
483
509
  return cn('flex min-h-control-sm w-full min-w-0 cursor-pointer items-center gap-2 overflow-hidden rounded-md px-2 text-start text-sm leading-5 text-ellipsis whitespace-nowrap text-card-foreground outline-0 transition-[background-color,border-color,color,box-shadow] duration-200 ease-in-out has-[+_[data-slot=sidebar-navigation-badge]]:pe-10 @max-[7rem]:has-[+_[data-slot=sidebar-navigation-badge]]:pe-2', 'focus-visible:outline-offset-0.5 focus-visible:outline-2 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-active:bg-accent data-active:font-medium data-active:text-accent-foreground motion-reduce:transition-none [&:not(:disabled):not([aria-disabled=true])]:hover:bg-accent [&:not(:disabled):not([aria-disabled=true])]:hover:text-accent-foreground', '[&>[data-sidebar-icon]]:shrink-0 [&>span:last-child]:min-w-0 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0', local.class);
484
510
  }
485
511
  }, others, {
512
+ "data-slot": "sidebar-navigation-sub-button",
486
513
  get children () {
487
514
  return memo(()=>'string' == typeof local.children)() ? (()=>{
488
515
  var _el$ = _tmpl$();
@@ -543,22 +570,24 @@ function SidebarInput(props) {
543
570
  'class'
544
571
  ]);
545
572
  return createComponent(Input.Root, mergeProps({
546
- "data-slot": "sidebar-input",
547
573
  get ["class"] () {
548
574
  return cn('w-full group-data-[state=collapsed]/sidebar-panel:hidden', local.class);
549
575
  }
550
- }, others));
576
+ }, others, {
577
+ "data-slot": "sidebar-input"
578
+ }));
551
579
  }
552
580
  function SidebarSeparator(props) {
553
581
  const [local, others] = splitProps(props, [
554
582
  'class'
555
583
  ]);
556
584
  return createComponent(Separator.Root, mergeProps({
557
- "data-slot": "sidebar-separator",
558
585
  get ["class"] () {
559
586
  return cn('border-border', local.class);
560
587
  }
561
- }, others));
588
+ }, others, {
589
+ "data-slot": "sidebar-separator"
590
+ }));
562
591
  }
563
592
  const Sidebar = Object.assign(SidebarRoot, {
564
593
  Root: SidebarRoot,
@@ -1,10 +1,11 @@
1
1
  import { ark } from "@ark-ui/solid/factory";
2
+ import { Splitter } from "@ark-ui/solid/splitter";
2
3
  import { createContext, splitProps, useContext } from "solid-js";
3
4
  import { cn } from "../../internal/cn.jsx";
4
5
  import { ChevronLeftIcon } from "../../internal/icons/ui/Icons.jsx";
5
6
  import { Input } from "../input/index.jsx";
6
7
  import { Separator } from "../separator/index.jsx";
7
- import { Splitter, useSplitterContext } from "../splitter/index.jsx";
8
+ import { Splitter as index_jsx_Splitter, useSplitterContext } from "../splitter/index.jsx";
8
9
  import { Tooltip } from "../tooltip/index.jsx";
9
10
  const sidebarPanel = {
10
11
  id: 'sidebar',
@@ -59,7 +60,8 @@ function SidebarRoot(props) {
59
60
  'class',
60
61
  'defaultSize',
61
62
  'panelId',
62
- 'side'
63
+ 'side',
64
+ 'style'
63
65
  ]);
64
66
  const panelId = ()=>local.panelId ?? 'sidebar';
65
67
  const side = ()=>local.side ?? 'left';
@@ -67,7 +69,11 @@ function SidebarRoot(props) {
67
69
  panelId,
68
70
  side
69
71
  }}>
70
- <Splitter.Root {...others} panels={getDefaultPanels(side(), panelId())} defaultSize={local.defaultSize ?? getDefaultSidebarSize(side())} orientation="horizontal" data-side={side()} data-slot="sidebar-root" class={cn('isolate h-dvh min-h-96 w-full min-w-0 rounded-none border border-border bg-background text-foreground shadow-none', local.class)}/>
72
+ <Splitter.Root {...others} panels={getDefaultPanels(side(), panelId())} defaultSize={local.defaultSize ?? getDefaultSidebarSize(side())} orientation="horizontal" data-side={side()} data-slot="sidebar-root" class={cn('group/splitter relative box-border h-112 min-h-0 w-full min-w-0 rounded-md border border-border bg-card text-foreground shadow-sm data-dragging:cursor-col-resize data-dragging:data-[orientation=vertical]:cursor-row-resize', 'isolate h-dvh min-h-96 w-full min-w-0 rounded-none border border-border bg-background text-foreground shadow-none', local.class)} style={'string' == typeof local.style ? `width:;height:;${local.style}` : {
73
+ width: void 0,
74
+ height: void 0,
75
+ ...local.style
76
+ }}/>
71
77
  </SidebarConfigContext.Provider>;
72
78
  }
73
79
  function useSidebar() {
@@ -88,25 +94,26 @@ function SidebarPanel(props) {
88
94
  const config = useSidebarConfig();
89
95
  const splitter = useSplitterContext();
90
96
  const collapsed = ()=>splitter().isPanelCollapsed(config.panelId());
91
- return <Splitter.Panel {...others} id={config.panelId()} data-side={config.side()} data-slot="sidebar-panel" data-state={collapsed() ? 'collapsed' : 'expanded'} class={cn('group/sidebar-panel @container/sidebar-panel relative flex min-h-0 min-w-0 flex-col overflow-hidden bg-card p-0 text-card-foreground transition-colors duration-200 ease-in-out motion-reduce:transition-none', local.class)}/>;
97
+ return <Splitter.Panel {...others} id={config.panelId()} data-side={config.side()} data-slot="sidebar-panel" data-state={collapsed() ? 'collapsed' : 'expanded'} class={cn('box-border min-h-50 min-w-0 overflow-auto rounded-none border-0 border-border bg-card p-4 text-card-foreground shadow-none group-data-[orientation=vertical]/splitter:min-h-0 data-dragging:select-none', 'group/sidebar-panel @container/sidebar-panel relative flex min-h-0 min-w-0 flex-col overflow-hidden bg-card p-0 text-card-foreground transition-colors duration-200 ease-in-out motion-reduce:transition-none', local.class)}/>;
92
98
  }
93
99
  function SidebarInset(props) {
94
100
  const [local, others] = splitProps(props, [
95
101
  'class'
96
102
  ]);
97
103
  const config = useSidebarConfig();
98
- return <Splitter.Panel {...others} id="content" data-side={config.side()} data-slot="sidebar-inset" class={cn('relative min-w-0 overflow-auto bg-background p-0 text-foreground', local.class)}/>;
104
+ return <Splitter.Panel {...others} id="content" data-side={config.side()} data-slot="sidebar-inset" class={cn('box-border min-h-50 min-w-0 overflow-auto rounded-none border-0 border-border bg-card p-4 text-card-foreground shadow-none group-data-[orientation=vertical]/splitter:min-h-0 data-dragging:select-none', 'relative min-w-0 overflow-auto bg-background p-0 text-foreground', local.class)}/>;
99
105
  }
100
106
  function SidebarResizeTrigger(props) {
101
107
  const [local, others] = splitProps(props, [
102
108
  'aria-label',
109
+ 'asChild',
103
110
  'class',
104
111
  'children'
105
112
  ]);
106
113
  const config = useSidebarConfig();
107
114
  const id = ()=>'left' === config.side() ? `${config.panelId()}:content` : `content:${config.panelId()}`;
108
- return <Splitter.ResizeTrigger {...others} id={id()} aria-label={local['aria-label'] ?? 'Resize sidebar'} data-side={config.side()} data-slot="sidebar-resize-trigger" class={cn('z-2', local.class)}>
109
- {local.children}
115
+ return <Splitter.ResizeTrigger {...others} asChild={local.asChild} id={id()} aria-label={local['aria-label'] ?? 'Resize sidebar'} data-side={config.side()} data-slot="sidebar-resize-trigger" class={cn("group/trigger relative z-1 box-border flex w-px min-w-px cursor-col-resize appearance-none items-center justify-center border-0 bg-transparent p-0 outline-0 transition-opacity duration-200 ease-in-out before:absolute before:h-full before:w-[0.5px] before:rounded-full before:bg-border before:transition-[background-color] before:duration-200 before:ease-in-out before:content-[''] after:absolute after:z-1 after:h-full after:w-2.5 after:content-[''] data-disabled:cursor-default data-disabled:opacity-50 data-dragging:before:bg-muted-foreground/40 data-[orientation=vertical]:h-px data-[orientation=vertical]:min-h-px data-[orientation=vertical]:w-full data-[orientation=vertical]:min-w-0 data-[orientation=vertical]:cursor-row-resize data-[orientation=vertical]:before:h-[0.5px] data-[orientation=vertical]:before:w-full data-[orientation=vertical]:after:h-2.5 data-[orientation=vertical]:after:w-full [@media(hover:hover)]:[&:not(:disabled):not([data-disabled]):hover]:before:bg-muted-foreground/40", 'z-2', local.class)}>
116
+ {void 0 === local.children && !local.asChild ? <index_jsx_Splitter.ResizeTriggerIndicator/> : local.children}
110
117
  </Splitter.ResizeTrigger>;
111
118
  }
112
119
  function SidebarTrigger(props) {
@@ -126,7 +133,7 @@ function SidebarTrigger(props) {
126
133
  if (event.defaultPrevented) return;
127
134
  toggleSidebarPanel(splitter, config.panelId());
128
135
  };
129
- return <ark.button asChild={local.asChild} type={local.type ?? 'button'} aria-label={local['aria-label'] ?? 'Toggle sidebar'} aria-expanded={!collapsed()} data-scope="sidebar" data-part="trigger" data-side={config.side()} data-slot="sidebar-trigger" data-state={collapsed() ? 'collapsed' : 'expanded'} class={cn('relative z-4 -mx-3.5 inline-flex size-7 flex-none translate-y-10 cursor-pointer items-center justify-center rounded-full border border-border bg-background p-0 text-muted-foreground shadow-sm outline-0 transition-[background-color,color,box-shadow] duration-200 ease-in-out', 'focus-visible:outline-offset-0.5 focus-visible:outline-2 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 motion-reduce:transition-none', '[&>svg]:size-4 [&>svg]:transition-transform [&>svg]:duration-200 [&>svg]:ease-in-out data-[side=left]:data-[state=collapsed]:[&>svg]:rotate-180 data-[side=right]:data-[state=expanded]:[&>svg]:rotate-180', 'hover:bg-accent hover:text-accent-foreground', local.class)} onClick={handleClick} {...others}>
136
+ return <ark.button asChild={local.asChild} type={local.type ?? 'button'} aria-label={local['aria-label'] ?? 'Toggle sidebar'} aria-expanded={!collapsed()} data-scope="sidebar" data-part="trigger" data-side={config.side()} data-state={collapsed() ? 'collapsed' : 'expanded'} class={cn('relative z-4 -mx-3.5 inline-flex size-7 flex-none translate-y-10 cursor-pointer items-center justify-center rounded-full border border-border bg-background p-0 text-muted-foreground shadow-sm outline-0 transition-[background-color,color,box-shadow] duration-200 ease-in-out', 'focus-visible:outline-offset-0.5 focus-visible:outline-2 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 motion-reduce:transition-none', '[&>svg]:size-4 [&>svg]:transition-transform [&>svg]:duration-200 [&>svg]:ease-in-out data-[side=left]:data-[state=collapsed]:[&>svg]:rotate-180 data-[side=right]:data-[state=expanded]:[&>svg]:rotate-180', 'hover:bg-accent hover:text-accent-foreground', local.class)} onClick={handleClick} {...others} data-slot="sidebar-trigger">
130
137
  {void 0 === local.children && !local.asChild ? <ChevronLeftIcon/> : local.children}
131
138
  </ark.button>;
132
139
  }
@@ -134,76 +141,76 @@ function SidebarLabel(props) {
134
141
  const [local, others] = splitProps(props, [
135
142
  'class'
136
143
  ]);
137
- return <ark.span data-scope="sidebar" data-part="label" data-slot="sidebar-label" class={cn('min-w-0 truncate group-data-[state=collapsed]/sidebar-panel:sr-only', local.class)} {...others}/>;
144
+ return <ark.span data-scope="sidebar" data-part="label" class={cn('min-w-0 truncate group-data-[state=collapsed]/sidebar-panel:sr-only', local.class)} {...others} data-slot="sidebar-label"/>;
138
145
  }
139
146
  function SidebarHeader(props) {
140
147
  const [local, others] = splitProps(props, [
141
148
  'class'
142
149
  ]);
143
- return <ark.header data-scope="sidebar" data-part="header" data-slot="sidebar-header" class={cn('flex flex-none items-center gap-2 p-3 group-data-[state=collapsed]/sidebar-panel:justify-center group-data-[state=collapsed]/sidebar-panel:px-1 [&>*:only-child]:w-full group-data-[state=collapsed]/sidebar-panel:[&>*:only-child]:w-auto', local.class)} {...others}/>;
150
+ return <ark.header data-scope="sidebar" data-part="header" class={cn('flex flex-none items-center gap-2 p-3 group-data-[state=collapsed]/sidebar-panel:justify-center group-data-[state=collapsed]/sidebar-panel:px-1 [&>*:only-child]:w-full group-data-[state=collapsed]/sidebar-panel:[&>*:only-child]:w-auto', local.class)} {...others} data-slot="sidebar-header"/>;
144
151
  }
145
152
  function SidebarContent(props) {
146
153
  const [local, others] = splitProps(props, [
147
154
  'class'
148
155
  ]);
149
- return <ark.div data-scope="sidebar" data-part="content" data-slot="sidebar-content" class={cn('flex min-h-0 flex-auto [scrollbar-gutter:stable] flex-col overflow-auto overscroll-contain group-data-[state=collapsed]/sidebar-panel:[scrollbar-width:none] group-data-[state=collapsed]/sidebar-panel:[scrollbar-gutter:auto] group-data-[state=collapsed]/sidebar-panel:overflow-x-hidden group-data-[state=collapsed]/sidebar-panel:overflow-y-auto', local.class)} {...others}/>;
156
+ return <ark.div data-scope="sidebar" data-part="content" class={cn('flex min-h-0 flex-auto [scrollbar-gutter:stable] flex-col overflow-auto overscroll-contain group-data-[state=collapsed]/sidebar-panel:[scrollbar-width:none] group-data-[state=collapsed]/sidebar-panel:[scrollbar-gutter:auto] group-data-[state=collapsed]/sidebar-panel:overflow-x-hidden group-data-[state=collapsed]/sidebar-panel:overflow-y-auto', local.class)} {...others} data-slot="sidebar-content"/>;
150
157
  }
151
158
  function SidebarExpandedContent(props) {
152
159
  const [local, others] = splitProps(props, [
153
160
  'class'
154
161
  ]);
155
162
  const { collapsed } = useSidebar();
156
- return <ark.div data-scope="sidebar" data-part="expanded-content" data-slot="sidebar-expanded-content" class={local.class} {...others} hidden={collapsed()}/>;
163
+ return <ark.div data-scope="sidebar" data-part="expanded-content" class={local.class} {...others} data-slot="sidebar-expanded-content" hidden={collapsed()}/>;
157
164
  }
158
165
  function SidebarCollapsedContent(props) {
159
166
  const [local, others] = splitProps(props, [
160
167
  'class'
161
168
  ]);
162
169
  const { collapsed } = useSidebar();
163
- return <ark.div data-scope="sidebar" data-part="collapsed-content" data-slot="sidebar-collapsed-content" class={local.class} {...others} hidden={!collapsed()}/>;
170
+ return <ark.div data-scope="sidebar" data-part="collapsed-content" class={local.class} {...others} data-slot="sidebar-collapsed-content" hidden={!collapsed()}/>;
164
171
  }
165
172
  function SidebarFooter(props) {
166
173
  const [local, others] = splitProps(props, [
167
174
  'class'
168
175
  ]);
169
- return <ark.footer data-scope="sidebar" data-part="footer" data-slot="sidebar-footer" class={cn('flex flex-none items-center gap-2 p-3 group-data-[state=collapsed]/sidebar-panel:justify-center group-data-[state=collapsed]/sidebar-panel:px-1', local.class)} {...others}/>;
176
+ return <ark.footer data-scope="sidebar" data-part="footer" class={cn('flex flex-none items-center gap-2 p-3 group-data-[state=collapsed]/sidebar-panel:justify-center group-data-[state=collapsed]/sidebar-panel:px-1', local.class)} {...others} data-slot="sidebar-footer"/>;
170
177
  }
171
178
  function SidebarGroup(props) {
172
179
  const [local, others] = splitProps(props, [
173
180
  'class'
174
181
  ]);
175
- return <ark.section data-scope="sidebar" data-part="group" data-slot="sidebar-group" class={cn('flex flex-col gap-1 p-3 group-data-[state=collapsed]/sidebar-panel:px-1', local.class)} {...others}/>;
182
+ return <ark.section data-scope="sidebar" data-part="group" class={cn('flex flex-col gap-1 p-3 group-data-[state=collapsed]/sidebar-panel:px-1', local.class)} {...others} data-slot="sidebar-group"/>;
176
183
  }
177
184
  function SidebarGroupHeader(props) {
178
185
  const [local, others] = splitProps(props, [
179
186
  'class'
180
187
  ]);
181
- return <ark.div data-scope="sidebar" data-part="group-header" data-slot="sidebar-group-header" class={cn('flex min-w-0 items-center gap-2', local.class)} {...others}/>;
188
+ return <ark.div data-scope="sidebar" data-part="group-header" class={cn('flex min-w-0 items-center gap-2', local.class)} {...others} data-slot="sidebar-group-header"/>;
182
189
  }
183
190
  function SidebarGroupLabel(props) {
184
191
  const [local, others] = splitProps(props, [
185
192
  'class'
186
193
  ]);
187
- return <ark.h3 data-scope="sidebar" data-part="group-label" data-slot="sidebar-group-label" class={cn('min-w-0 flex-1 truncate px-2 text-xs leading-4 font-medium text-muted-foreground group-data-[state=collapsed]/sidebar-panel:sr-only', local.class)} {...others}/>;
194
+ return <ark.h3 data-scope="sidebar" data-part="group-label" class={cn('min-w-0 flex-1 truncate px-2 text-xs leading-4 font-medium text-muted-foreground group-data-[state=collapsed]/sidebar-panel:sr-only', local.class)} {...others} data-slot="sidebar-group-label"/>;
188
195
  }
189
196
  function SidebarGroupAction(props) {
190
197
  const [local, others] = splitProps(props, [
191
198
  'class',
192
199
  'type'
193
200
  ]);
194
- return <ark.button type={local.type ?? 'button'} data-scope="sidebar" data-part="group-action" data-slot="sidebar-group-action" class={cn('focus-visible:outline-offset-0.5 me-2 inline-flex size-control-xs flex-none cursor-pointer items-center justify-center rounded-md p-0 text-muted-foreground outline-0 transition-colors duration-200 ease-in-out hover:bg-accent hover:text-accent-foreground focus-visible:outline-2 focus-visible:outline-ring motion-reduce:transition-none @max-[7rem]:hidden [&>svg]:size-4', local.class)} {...others}/>;
201
+ return <ark.button type={local.type ?? 'button'} data-scope="sidebar" data-part="group-action" class={cn('focus-visible:outline-offset-0.5 me-2 inline-flex size-control-xs flex-none cursor-pointer items-center justify-center rounded-md p-0 text-muted-foreground outline-0 transition-colors duration-200 ease-in-out hover:bg-accent hover:text-accent-foreground focus-visible:outline-2 focus-visible:outline-ring motion-reduce:transition-none @max-[7rem]:hidden [&>svg]:size-4', local.class)} {...others} data-slot="sidebar-group-action"/>;
195
202
  }
196
203
  function SidebarNavigationList(props) {
197
204
  const [local, others] = splitProps(props, [
198
205
  'class'
199
206
  ]);
200
- return <ark.ul data-scope="sidebar" data-part="navigation-list" data-slot="sidebar-navigation-list" class={cn('flex w-full min-w-0 flex-col gap-1', local.class)} {...others}/>;
207
+ return <ark.ul data-scope="sidebar" data-part="navigation-list" class={cn('flex w-full min-w-0 flex-col gap-1', local.class)} {...others} data-slot="sidebar-navigation-list"/>;
201
208
  }
202
209
  function SidebarNavigationItem(props) {
203
210
  const [local, others] = splitProps(props, [
204
211
  'class'
205
212
  ]);
206
- return <ark.li data-scope="sidebar" data-part="navigation-item" data-slot="sidebar-navigation-item" class={cn('relative min-w-0', local.class)} {...others}/>;
213
+ return <ark.li data-scope="sidebar" data-part="navigation-item" class={cn('relative min-w-0', local.class)} {...others} data-slot="sidebar-navigation-item"/>;
207
214
  }
208
215
  function SidebarNavigationButton(props) {
209
216
  const [local, others] = splitProps(props, [
@@ -214,25 +221,25 @@ function SidebarNavigationButton(props) {
214
221
  'size',
215
222
  'type'
216
223
  ]);
217
- return <ark.button asChild={local.asChild} type={local.type ?? 'button'} aria-current={local['aria-current'] ?? (local.active ? 'page' : void 0)} data-scope="sidebar" data-part="navigation-button" data-slot="sidebar-navigation-button" data-active={local.active ? '' : void 0} data-size={local.size ?? 'md'} class={cn('flex w-full min-w-0 cursor-pointer items-center gap-2 overflow-hidden rounded-md px-2 py-1 text-start text-sm leading-5 text-ellipsis whitespace-nowrap text-card-foreground outline-0 transition-colors duration-200 ease-in-out has-[+_[data-slot=sidebar-navigation-badge]]:pe-10 @max-[7rem]:has-[+_[data-slot=sidebar-navigation-badge]]:pe-2', 'focus-visible:outline-offset-0.5 focus-visible:outline-2 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-active:bg-accent data-active:font-medium data-active:text-accent-foreground motion-reduce:transition-none [&:not(:disabled):not([aria-disabled=true])]:hover:bg-accent [&:not(:disabled):not([aria-disabled=true])]:hover:text-accent-foreground', 'group-data-[state=collapsed]/sidebar-panel:mx-auto group-data-[state=collapsed]/sidebar-panel:min-h-control-md group-data-[state=collapsed]/sidebar-panel:w-control-md group-data-[state=collapsed]/sidebar-panel:justify-center group-data-[state=collapsed]/sidebar-panel:bg-transparent group-data-[state=collapsed]/sidebar-panel:px-0 group-data-[state=collapsed]/sidebar-panel:hover:bg-transparent', '[&>[data-sidebar-icon]]:shrink-0 [&>span:last-child]:min-w-0 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0', '[&>[data-scope=select][data-part=indicator]]:ms-auto @max-[7rem]:[&>[data-scope=select][data-part=indicator]]:hidden', '[&>[data-slot=collapsible-indicator]]:ms-auto [&>[data-slot=collapsible-indicator]]:size-control-xs @max-[7rem]:[&>[data-slot=collapsible-indicator]]:hidden [&>[data-slot=collapsible-indicator]>svg]:size-3', '[&>[data-slot=menu-indicator]]:ms-auto [&>[data-slot=menu-indicator]]:size-control-xs [&>[data-slot=menu-indicator]]:leading-none [&>[data-slot=menu-indicator]]:text-muted-foreground @max-[7rem]:[&>[data-slot=menu-indicator]]:hidden [&>[data-slot=menu-indicator]>svg]:block [&>[data-slot=menu-indicator]>svg]:size-4', 'sm' === local.size && 'min-h-control-sm text-xs', (void 0 === local.size || 'md' === local.size) && 'min-h-control-md', 'lg' === local.size && 'min-h-control-lg', local.class)} {...others}/>;
224
+ return <ark.button asChild={local.asChild} type={local.type ?? 'button'} aria-current={local['aria-current'] ?? (local.active ? 'page' : void 0)} data-scope="sidebar" data-part="navigation-button" data-active={local.active ? '' : void 0} data-size={local.size ?? 'md'} class={cn('flex w-full min-w-0 cursor-pointer items-center gap-2 overflow-hidden rounded-md px-2 py-1 text-start text-sm leading-5 text-ellipsis whitespace-nowrap text-card-foreground outline-0 transition-colors duration-200 ease-in-out has-[+_[data-slot=sidebar-navigation-badge]]:pe-10 @max-[7rem]:has-[+_[data-slot=sidebar-navigation-badge]]:pe-2', 'focus-visible:outline-offset-0.5 focus-visible:outline-2 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-active:bg-accent data-active:font-medium data-active:text-accent-foreground motion-reduce:transition-none [&:not(:disabled):not([aria-disabled=true])]:hover:bg-accent [&:not(:disabled):not([aria-disabled=true])]:hover:text-accent-foreground', 'group-data-[state=collapsed]/sidebar-panel:mx-auto group-data-[state=collapsed]/sidebar-panel:min-h-control-md group-data-[state=collapsed]/sidebar-panel:w-control-md group-data-[state=collapsed]/sidebar-panel:justify-center group-data-[state=collapsed]/sidebar-panel:bg-transparent group-data-[state=collapsed]/sidebar-panel:px-0 group-data-[state=collapsed]/sidebar-panel:hover:bg-transparent', '[&>[data-sidebar-icon]]:shrink-0 [&>span:last-child]:min-w-0 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0', '[&>[data-scope=select][data-part=indicator]]:ms-auto @max-[7rem]:[&>[data-scope=select][data-part=indicator]]:hidden', '[&>[data-slot=collapsible-indicator]]:ms-auto [&>[data-slot=collapsible-indicator]]:size-control-xs @max-[7rem]:[&>[data-slot=collapsible-indicator]]:hidden [&>[data-slot=collapsible-indicator]>svg]:size-3', '[&>[data-slot=menu-indicator]]:ms-auto [&>[data-slot=menu-indicator]]:size-control-xs [&>[data-slot=menu-indicator]]:leading-none [&>[data-slot=menu-indicator]]:text-muted-foreground @max-[7rem]:[&>[data-slot=menu-indicator]]:hidden [&>[data-slot=menu-indicator]>svg]:block [&>[data-slot=menu-indicator]>svg]:size-4', 'sm' === local.size && 'min-h-control-sm text-xs', (void 0 === local.size || 'md' === local.size) && 'min-h-control-md', 'lg' === local.size && 'min-h-control-lg', local.class)} {...others} data-slot="sidebar-navigation-button"/>;
218
225
  }
219
226
  function SidebarNavigationBadge(props) {
220
227
  const [local, others] = splitProps(props, [
221
228
  'class'
222
229
  ]);
223
- return <ark.span data-scope="sidebar" data-part="navigation-badge" data-slot="sidebar-navigation-badge" class={cn('pointer-events-none absolute end-2.5 top-1/2 z-1 box-border inline-grid size-5 -translate-y-1/2 place-items-center rounded-full bg-primary p-0 text-[0.5625rem] leading-none font-medium text-primary-foreground tabular-nums @max-[7rem]:hidden', local.class)} {...others}/>;
230
+ return <ark.span data-scope="sidebar" data-part="navigation-badge" class={cn('pointer-events-none absolute end-2.5 top-1/2 z-1 box-border inline-grid size-5 -translate-y-1/2 place-items-center rounded-full bg-primary p-0 text-[0.5625rem] leading-none font-medium text-primary-foreground tabular-nums @max-[7rem]:hidden', local.class)} {...others} data-slot="sidebar-navigation-badge"/>;
224
231
  }
225
232
  function SidebarNavigationSubList(props) {
226
233
  const [local, others] = splitProps(props, [
227
234
  'class'
228
235
  ]);
229
- return <ark.ul data-scope="sidebar" data-part="navigation-sub-list" data-slot="sidebar-navigation-sub-list" class={cn('ms-4 mt-1 flex w-auto min-w-0 flex-col gap-1 border-s border-border ps-2 group-data-[state=collapsed]/sidebar-panel:hidden', local.class)} {...others}/>;
236
+ return <ark.ul data-scope="sidebar" data-part="navigation-sub-list" class={cn('ms-4 mt-1 flex w-auto min-w-0 flex-col gap-1 border-s border-border ps-2 group-data-[state=collapsed]/sidebar-panel:hidden', local.class)} {...others} data-slot="sidebar-navigation-sub-list"/>;
230
237
  }
231
238
  function SidebarNavigationSubItem(props) {
232
239
  const [local, others] = splitProps(props, [
233
240
  'class'
234
241
  ]);
235
- return <ark.li data-scope="sidebar" data-part="navigation-sub-item" data-slot="sidebar-navigation-sub-item" class={cn('relative min-w-0', local.class)} {...others}/>;
242
+ return <ark.li data-scope="sidebar" data-part="navigation-sub-item" class={cn('relative min-w-0', local.class)} {...others} data-slot="sidebar-navigation-sub-item"/>;
236
243
  }
237
244
  function SidebarNavigationSubButton(props) {
238
245
  const [local, others] = splitProps(props, [
@@ -242,7 +249,7 @@ function SidebarNavigationSubButton(props) {
242
249
  'children',
243
250
  'class'
244
251
  ]);
245
- return <ark.a asChild={local.asChild} aria-current={local['aria-current'] ?? (local.active ? 'page' : void 0)} data-scope="sidebar" data-part="navigation-sub-button" data-slot="sidebar-navigation-sub-button" data-active={local.active ? '' : void 0} class={cn('flex min-h-control-sm w-full min-w-0 cursor-pointer items-center gap-2 overflow-hidden rounded-md px-2 text-start text-sm leading-5 text-ellipsis whitespace-nowrap text-card-foreground outline-0 transition-[background-color,border-color,color,box-shadow] duration-200 ease-in-out has-[+_[data-slot=sidebar-navigation-badge]]:pe-10 @max-[7rem]:has-[+_[data-slot=sidebar-navigation-badge]]:pe-2', 'focus-visible:outline-offset-0.5 focus-visible:outline-2 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-active:bg-accent data-active:font-medium data-active:text-accent-foreground motion-reduce:transition-none [&:not(:disabled):not([aria-disabled=true])]:hover:bg-accent [&:not(:disabled):not([aria-disabled=true])]:hover:text-accent-foreground', '[&>[data-sidebar-icon]]:shrink-0 [&>span:last-child]:min-w-0 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0', local.class)} {...others}>
252
+ return <ark.a asChild={local.asChild} aria-current={local['aria-current'] ?? (local.active ? 'page' : void 0)} data-scope="sidebar" data-part="navigation-sub-button" data-active={local.active ? '' : void 0} class={cn('flex min-h-control-sm w-full min-w-0 cursor-pointer items-center gap-2 overflow-hidden rounded-md px-2 text-start text-sm leading-5 text-ellipsis whitespace-nowrap text-card-foreground outline-0 transition-[background-color,border-color,color,box-shadow] duration-200 ease-in-out has-[+_[data-slot=sidebar-navigation-badge]]:pe-10 @max-[7rem]:has-[+_[data-slot=sidebar-navigation-badge]]:pe-2', 'focus-visible:outline-offset-0.5 focus-visible:outline-2 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-active:bg-accent data-active:font-medium data-active:text-accent-foreground motion-reduce:transition-none [&:not(:disabled):not([aria-disabled=true])]:hover:bg-accent [&:not(:disabled):not([aria-disabled=true])]:hover:text-accent-foreground', '[&>[data-sidebar-icon]]:shrink-0 [&>span:last-child]:min-w-0 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0', local.class)} {...others} data-slot="sidebar-navigation-sub-button">
246
253
  {'string' == typeof local.children ? <span data-slot="sidebar-navigation-sub-label">{local.children}</span> : local.children}
247
254
  </ark.a>;
248
255
  }
@@ -270,13 +277,13 @@ function SidebarInput(props) {
270
277
  const [local, others] = splitProps(props, [
271
278
  'class'
272
279
  ]);
273
- return <Input.Root data-slot="sidebar-input" class={cn('w-full group-data-[state=collapsed]/sidebar-panel:hidden', local.class)} {...others}/>;
280
+ return <Input.Root class={cn('w-full group-data-[state=collapsed]/sidebar-panel:hidden', local.class)} {...others} data-slot="sidebar-input"/>;
274
281
  }
275
282
  function SidebarSeparator(props) {
276
283
  const [local, others] = splitProps(props, [
277
284
  'class'
278
285
  ]);
279
- return <Separator.Root data-slot="sidebar-separator" class={cn('border-border', local.class)} {...others}/>;
286
+ return <Separator.Root class={cn('border-border', local.class)} {...others} data-slot="sidebar-separator"/>;
280
287
  }
281
288
  const Sidebar = Object.assign(SidebarRoot, {
282
289
  Root: SidebarRoot,