@moduix/react 1.1.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/README.md +16 -16
  2. package/dist/components/accordion/Accordion.css +8 -1
  3. package/dist/components/accordion/Accordion.d.ts +3 -2
  4. package/dist/components/accordion/Accordion.js +17 -5
  5. package/dist/components/accordion/Accordion.module.js +1 -0
  6. package/dist/components/accordion/index.d.ts +2 -2
  7. package/dist/components/alert/Alert.css +19 -5
  8. package/dist/components/alert/Alert.d.ts +5 -3
  9. package/dist/components/alert/Alert.js +17 -5
  10. package/dist/components/alert/Alert.module.js +1 -0
  11. package/dist/components/angle-slider/AngleSlider.d.ts +18 -2
  12. package/dist/components/angle-slider/AngleSlider.js +34 -18
  13. package/dist/components/angle-slider/index.d.ts +2 -2
  14. package/dist/components/aspect-ratio/AspectRatio.css +3 -1
  15. package/dist/components/aspect-ratio/AspectRatio.js +2 -2
  16. package/dist/components/avatar/Avatar.d.ts +6 -3
  17. package/dist/components/avatar/Avatar.js +12 -5
  18. package/dist/components/avatar/index.d.ts +2 -2
  19. package/dist/components/badge/Badge.css +44 -1
  20. package/dist/components/badge/Badge.d.ts +2 -2
  21. package/dist/components/badge/Badge.js +1 -1
  22. package/dist/components/bleed/Bleed.d.ts +6 -4
  23. package/dist/components/bleed/Bleed.js +3 -3
  24. package/dist/components/breadcrumbs/Breadcrumbs.css +7 -1
  25. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +18 -0
  26. package/dist/components/breadcrumbs/Breadcrumbs.js +18 -4
  27. package/dist/components/breadcrumbs/Breadcrumbs.module.js +2 -1
  28. package/dist/components/breadcrumbs/index.d.ts +2 -0
  29. package/dist/components/button/Button.css +21 -1
  30. package/dist/components/button/Button.d.ts +6 -0
  31. package/dist/components/button/Button.js +12 -7
  32. package/dist/components/card/Card.css +20 -4
  33. package/dist/components/card/Card.d.ts +1 -0
  34. package/dist/components/card/Card.js +12 -1
  35. package/dist/components/card/Card.module.js +1 -0
  36. package/dist/components/carousel/Carousel.css +2 -0
  37. package/dist/components/carousel/Carousel.d.ts +4 -0
  38. package/dist/components/carousel/Carousel.js +15 -2
  39. package/dist/components/checkbox/Checkbox.d.ts +2 -3
  40. package/dist/components/checkbox/Checkbox.js +25 -22
  41. package/dist/components/checkbox/index.d.ts +2 -2
  42. package/dist/components/clipboard/Clipboard.css +1 -1
  43. package/dist/components/clipboard/Clipboard.d.ts +2 -0
  44. package/dist/components/clipboard/Clipboard.js +15 -4
  45. package/dist/components/close-button/CloseButton.d.ts +12 -2
  46. package/dist/components/close-button/CloseButton.js +9 -9
  47. package/dist/components/collapsible/Collapsible.css +9 -2
  48. package/dist/components/collapsible/Collapsible.d.ts +3 -2
  49. package/dist/components/collapsible/Collapsible.js +18 -6
  50. package/dist/components/collapsible/Collapsible.module.js +1 -0
  51. package/dist/components/collapsible/index.d.ts +2 -2
  52. package/dist/components/color-picker/ColorPicker.css +35 -6
  53. package/dist/components/color-picker/ColorPicker.d.ts +3 -3
  54. package/dist/components/color-picker/ColorPicker.js +78 -27
  55. package/dist/components/color-picker/ColorPicker.module.js +1 -0
  56. package/dist/components/color-picker/index.d.ts +2 -2
  57. package/dist/components/combobox/Combobox.css +37 -8
  58. package/dist/components/combobox/Combobox.d.ts +9 -2
  59. package/dist/components/combobox/Combobox.js +34 -8
  60. package/dist/components/combobox/index.d.ts +2 -2
  61. package/dist/components/command-palette/CommandPalette.css +40 -74
  62. package/dist/components/command-palette/CommandPalette.d.ts +13 -3
  63. package/dist/components/command-palette/CommandPalette.js +54 -43
  64. package/dist/components/command-palette/CommandPalette.module.js +0 -2
  65. package/dist/components/container/Container.js +1 -1
  66. package/dist/components/date-input/DateInput.css +3 -1
  67. package/dist/components/date-input/DateInput.d.ts +12 -7
  68. package/dist/components/date-input/DateInput.js +35 -14
  69. package/dist/components/date-input/index.d.ts +2 -2
  70. package/dist/components/date-picker/DatePicker.css +41 -13
  71. package/dist/components/date-picker/DatePicker.d.ts +30 -2
  72. package/dist/components/date-picker/DatePicker.js +94 -9
  73. package/dist/components/date-picker/index.d.ts +2 -2
  74. package/dist/components/dialog/Dialog.css +14 -10
  75. package/dist/components/dialog/Dialog.d.ts +2 -2
  76. package/dist/components/dialog/Dialog.js +3 -3
  77. package/dist/components/dialog/index.d.ts +2 -2
  78. package/dist/components/drawer/Drawer.d.ts +2 -2
  79. package/dist/components/drawer/Drawer.js +3 -3
  80. package/dist/components/drawer/index.d.ts +2 -2
  81. package/dist/components/editable/Editable.d.ts +9 -2
  82. package/dist/components/editable/Editable.js +14 -5
  83. package/dist/components/editable/index.d.ts +2 -2
  84. package/dist/components/empty/Empty.js +1 -1
  85. package/dist/components/field/Field.css +0 -4
  86. package/dist/components/field/Field.d.ts +3 -2
  87. package/dist/components/field/Field.js +6 -5
  88. package/dist/components/field/Field.module.js +0 -1
  89. package/dist/components/field/index.d.ts +2 -2
  90. package/dist/components/fieldset/Fieldset.d.ts +2 -2
  91. package/dist/components/fieldset/Fieldset.js +3 -3
  92. package/dist/components/fieldset/index.d.ts +2 -2
  93. package/dist/components/file-upload/FileUpload.css +81 -8
  94. package/dist/components/file-upload/FileUpload.d.ts +22 -5
  95. package/dist/components/file-upload/FileUpload.js +79 -21
  96. package/dist/components/file-upload/FileUpload.module.js +3 -0
  97. package/dist/components/file-upload/index.d.ts +2 -2
  98. package/dist/components/floating-panel/FloatingPanel.css +14 -10
  99. package/dist/components/floating-panel/FloatingPanel.d.ts +11 -3
  100. package/dist/components/floating-panel/FloatingPanel.js +15 -9
  101. package/dist/components/heading/Heading.js +1 -1
  102. package/dist/components/highlight/Highlight.js +1 -1
  103. package/dist/components/hover-card/HoverCard.css +14 -10
  104. package/dist/components/hover-card/HoverCard.d.ts +3 -2
  105. package/dist/components/hover-card/HoverCard.js +5 -4
  106. package/dist/components/hover-card/index.d.ts +2 -2
  107. package/dist/components/image/Image.css +7 -0
  108. package/dist/components/image/Image.d.ts +12 -0
  109. package/dist/components/image/Image.js +28 -0
  110. package/dist/components/image/Image.module.js +5 -0
  111. package/dist/components/image/index.d.ts +2 -0
  112. package/dist/components/image-cropper/ImageCropper.d.ts +7 -2
  113. package/dist/components/image-cropper/ImageCropper.js +25 -3
  114. package/dist/components/image-cropper/index.d.ts +2 -2
  115. package/dist/components/input/Input.js +1 -1
  116. package/dist/components/input-group/InputGroup.d.ts +3 -0
  117. package/dist/components/input-group/InputGroup.js +1 -1
  118. package/dist/components/kbd/Kbd.js +1 -1
  119. package/dist/components/lightbox/Lightbox.css +12 -10
  120. package/dist/components/lightbox/Lightbox.d.ts +4 -2
  121. package/dist/components/lightbox/Lightbox.js +9 -7
  122. package/dist/components/lightbox/index.d.ts +2 -2
  123. package/dist/components/list/List.js +1 -1
  124. package/dist/components/listbox/Listbox.css +60 -1
  125. package/dist/components/listbox/Listbox.d.ts +14 -2
  126. package/dist/components/listbox/Listbox.js +41 -5
  127. package/dist/components/listbox/Listbox.module.js +3 -0
  128. package/dist/components/listbox/index.d.ts +2 -2
  129. package/dist/components/marquee/Marquee.d.ts +2 -1
  130. package/dist/components/marquee/Marquee.js +4 -3
  131. package/dist/components/marquee/index.d.ts +2 -2
  132. package/dist/components/menu/Menu.css +14 -8
  133. package/dist/components/menu/Menu.d.ts +3 -2
  134. package/dist/components/menu/Menu.js +6 -5
  135. package/dist/components/menu/index.d.ts +2 -2
  136. package/dist/components/native-select/NativeSelect.d.ts +6 -2
  137. package/dist/components/native-select/NativeSelect.js +5 -4
  138. package/dist/components/number-input/NumberInput.css +0 -6
  139. package/dist/components/number-input/NumberInput.d.ts +7 -2
  140. package/dist/components/number-input/NumberInput.js +17 -4
  141. package/dist/components/number-input/index.d.ts +2 -2
  142. package/dist/components/pagination/Pagination.d.ts +4 -0
  143. package/dist/components/pagination/Pagination.js +13 -4
  144. package/dist/components/password-input/PasswordInput.d.ts +4 -0
  145. package/dist/components/password-input/PasswordInput.js +10 -2
  146. package/dist/components/pin-input/PinInput.d.ts +6 -1
  147. package/dist/components/pin-input/PinInput.js +25 -16
  148. package/dist/components/popover/Popover.css +20 -11
  149. package/dist/components/popover/Popover.js +1 -1
  150. package/dist/components/progress-circular/ProgressCircular.d.ts +6 -0
  151. package/dist/components/progress-circular/ProgressCircular.js +14 -3
  152. package/dist/components/progress-linear/ProgressLinear.d.ts +3 -0
  153. package/dist/components/progress-linear/ProgressLinear.js +6 -3
  154. package/dist/components/qr-code/QrCode.css +3 -2
  155. package/dist/components/qr-code/QrCode.d.ts +2 -2
  156. package/dist/components/qr-code/QrCode.js +3 -3
  157. package/dist/components/qr-code/index.d.ts +2 -2
  158. package/dist/components/radio-group/RadioGroup.d.ts +8 -4
  159. package/dist/components/radio-group/RadioGroup.js +22 -14
  160. package/dist/components/radio-group/index.d.ts +2 -2
  161. package/dist/components/rating-group/RatingGroup.css +3 -3
  162. package/dist/components/rating-group/RatingGroup.d.ts +11 -4
  163. package/dist/components/rating-group/RatingGroup.js +29 -18
  164. package/dist/components/rating-group/index.d.ts +2 -2
  165. package/dist/components/scroll-area/ScrollArea.css +7 -2
  166. package/dist/components/scroll-area/ScrollArea.d.ts +3 -0
  167. package/dist/components/scroll-area/ScrollArea.js +9 -6
  168. package/dist/components/segment-group/SegmentGroup.d.ts +13 -3
  169. package/dist/components/segment-group/SegmentGroup.js +23 -15
  170. package/dist/components/segment-group/index.d.ts +2 -2
  171. package/dist/components/select/Select.css +24 -15
  172. package/dist/components/select/Select.d.ts +18 -4
  173. package/dist/components/select/Select.js +65 -20
  174. package/dist/components/separator/Separator.js +1 -1
  175. package/dist/components/sidebar/Sidebar.css +144 -4
  176. package/dist/components/sidebar/Sidebar.d.ts +26 -0
  177. package/dist/components/sidebar/Sidebar.js +105 -13
  178. package/dist/components/sidebar/Sidebar.module.js +6 -0
  179. package/dist/components/signature-pad/SignaturePad.css +12 -41
  180. package/dist/components/signature-pad/SignaturePad.d.ts +14 -6
  181. package/dist/components/signature-pad/SignaturePad.js +56 -17
  182. package/dist/components/signature-pad/index.d.ts +2 -2
  183. package/dist/components/simple-grid/SimpleGrid.js +3 -3
  184. package/dist/components/skeleton/Skeleton.js +1 -1
  185. package/dist/components/slider/Slider.css +6 -4
  186. package/dist/components/slider/Slider.d.ts +12 -3
  187. package/dist/components/slider/Slider.js +24 -15
  188. package/dist/components/slider/index.d.ts +2 -2
  189. package/dist/components/spinner/Spinner.js +2 -2
  190. package/dist/components/split-button/SplitButton.d.ts +1 -1
  191. package/dist/components/split-button/SplitButton.js +3 -4
  192. package/dist/components/splitter/Splitter.css +13 -12
  193. package/dist/components/splitter/Splitter.d.ts +2 -2
  194. package/dist/components/splitter/Splitter.js +12 -11
  195. package/dist/components/splitter/index.d.ts +2 -2
  196. package/dist/components/stack/Stack.d.ts +1 -3
  197. package/dist/components/stack/Stack.js +4 -6
  198. package/dist/components/steps/Steps.d.ts +2 -1
  199. package/dist/components/steps/Steps.js +5 -4
  200. package/dist/components/swap/Swap.css +45 -0
  201. package/dist/components/swap/Swap.d.ts +11 -0
  202. package/dist/components/swap/Swap.js +39 -0
  203. package/dist/components/swap/Swap.module.js +11 -0
  204. package/dist/components/swap/index.d.ts +2 -0
  205. package/dist/components/switch/Switch.css +2 -2
  206. package/dist/components/switch/Switch.d.ts +4 -4
  207. package/dist/components/switch/Switch.js +19 -16
  208. package/dist/components/switch/index.d.ts +2 -2
  209. package/dist/components/table/Table.css +3 -3
  210. package/dist/components/table/Table.js +3 -2
  211. package/dist/components/table/Table.module.js +0 -1
  212. package/dist/components/tabs/Tabs.css +3 -1
  213. package/dist/components/tabs/Tabs.d.ts +3 -2
  214. package/dist/components/tabs/Tabs.js +5 -4
  215. package/dist/components/tabs/index.d.ts +2 -2
  216. package/dist/components/tag/Tag.css +12 -42
  217. package/dist/components/tag/Tag.js +7 -20
  218. package/dist/components/tags-input/TagsInput.css +3 -40
  219. package/dist/components/tags-input/TagsInput.d.ts +7 -4
  220. package/dist/components/tags-input/TagsInput.js +33 -21
  221. package/dist/components/tags-input/index.d.ts +2 -2
  222. package/dist/components/text/Text.d.ts +2 -2
  223. package/dist/components/text/Text.js +1 -1
  224. package/dist/components/textarea/Textarea.js +1 -1
  225. package/dist/components/timer/Timer.d.ts +14 -2
  226. package/dist/components/timer/Timer.js +13 -5
  227. package/dist/components/timer/index.d.ts +2 -2
  228. package/dist/components/toast/Toast.d.ts +3 -1
  229. package/dist/components/toast/Toast.js +11 -2
  230. package/dist/components/toggle/Toggle.css +3 -3
  231. package/dist/components/toggle/Toggle.d.ts +3 -2
  232. package/dist/components/toggle/Toggle.js +5 -4
  233. package/dist/components/toggle/index.d.ts +2 -2
  234. package/dist/components/toggle-group/ToggleGroup.d.ts +3 -2
  235. package/dist/components/toggle-group/ToggleGroup.js +4 -3
  236. package/dist/components/toggle-group/index.d.ts +2 -2
  237. package/dist/components/tooltip/Tooltip.css +14 -10
  238. package/dist/components/tooltip/Tooltip.d.ts +3 -2
  239. package/dist/components/tooltip/Tooltip.js +10 -3
  240. package/dist/components/tooltip/index.d.ts +2 -2
  241. package/dist/components/tour/Tour.css +23 -18
  242. package/dist/components/tour/Tour.d.ts +6 -0
  243. package/dist/components/tour/Tour.js +8 -1
  244. package/dist/components/tree-view/TreeView.css +1 -1
  245. package/dist/components/tree-view/TreeView.d.ts +2 -2
  246. package/dist/components/tree-view/TreeView.js +4 -4
  247. package/dist/components/tree-view/index.d.ts +2 -2
  248. package/dist/index.d.ts +40 -39
  249. package/dist/index.js +40 -39
  250. package/dist/lib/moduix/icons/ui/Icons.d.ts +1 -45
  251. package/dist/lib/moduix/icons/ui/Icons.js +36 -263
  252. package/dist/lib/moduix/icons/ui/index.d.ts +2 -2
  253. package/dist/lib/moduix/overlayPortal.js +1 -1
  254. package/package.json +4 -3
@@ -1,10 +1,19 @@
1
1
  import { OverlayPortalProps } from "../../lib/moduix/overlayPortal.js";
2
- import { ComponentProps } from "react";
2
+ import { ComponentProps, ReactNode } from "react";
3
3
  import { Select, SelectRootComponent, SelectRootProviderComponent } from "@ark-ui/react/select";
4
4
 
5
5
  //#region src/components/select/Select.d.ts
6
- type SelectRootComponent$1 = SelectRootComponent<OverlayPortalProps>;
7
- type SelectRootProviderComponent$1 = SelectRootProviderComponent<OverlayPortalProps>;
6
+ type SelectNativeFormControl = 'select' | 'input';
7
+ type SelectRootOwnProps = OverlayPortalProps & {
8
+ nativeFormControl?: SelectNativeFormControl;
9
+ };
10
+ type SelectRootComponent$1 = SelectRootComponent<SelectRootOwnProps>;
11
+ type SelectRootProviderComponent$1 = SelectRootProviderComponent<SelectRootOwnProps>;
12
+ type SelectFieldProps = Omit<ComponentProps<typeof Select.Control>, 'asChild' | 'children'> & {
13
+ clearLabel?: string;
14
+ indicator?: ReactNode;
15
+ placeholder?: ComponentProps<typeof Select.ValueText>['placeholder'];
16
+ };
8
17
  declare function SelectIndicators({
9
18
  className,
10
19
  ...props
@@ -24,8 +33,14 @@ declare function SelectItemTextLabel({
24
33
  declare const Select$1: SelectRootComponent$1 & {
25
34
  Root: SelectRootComponent$1;
26
35
  RootProvider: SelectRootProviderComponent$1;
36
+ Context: <T extends unknown>(props: Select.ContextProps<T>) => ReactNode;
37
+ ItemContext: (props: Select.ItemContextProps) => ReactNode;
38
+ useSelect: <T extends unknown>(props: import("@ark-ui/react/select").UseSelectProps<T>) => import("@ark-ui/react/select").UseSelectReturn<T>;
39
+ useSelectContext: () => import("@ark-ui/react/select").UseSelectContext<any>;
40
+ useSelectItemContext: () => import("@ark-ui/react/select").UseSelectItemContext;
27
41
  Label: import("react").ForwardRefExoticComponent<Omit<Select.LabelProps & import("react").RefAttributes<HTMLLabelElement>, "ref"> & import("react").RefAttributes<HTMLLabelElement>>;
28
42
  Control: import("react").ForwardRefExoticComponent<Omit<Select.ControlProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
43
+ Field: import("react").ForwardRefExoticComponent<Omit<SelectFieldProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
29
44
  Trigger: import("react").ForwardRefExoticComponent<Omit<Select.TriggerProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
30
45
  ValueText: import("react").ForwardRefExoticComponent<Omit<Select.ValueTextProps & import("react").RefAttributes<HTMLSpanElement>, "ref"> & import("react").RefAttributes<HTMLSpanElement>>;
31
46
  ClearTrigger: import("react").ForwardRefExoticComponent<Omit<Select.ClearTriggerProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
@@ -39,7 +54,6 @@ declare const Select$1: SelectRootComponent$1 & {
39
54
  Item: import("react").ForwardRefExoticComponent<Omit<Select.ItemProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
40
55
  ItemText: import("react").ForwardRefExoticComponent<Omit<Select.ItemTextProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
41
56
  ItemIndicator: import("react").ForwardRefExoticComponent<Omit<Select.ItemIndicatorProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
42
- HiddenSelect: import("react").ForwardRefExoticComponent<Omit<Select.HiddenSelectProps & import("react").RefAttributes<HTMLSelectElement>, "ref"> & import("react").RefAttributes<HTMLSelectElement>>;
43
57
  ItemTextContent: typeof SelectItemTextContent;
44
58
  ItemTextIcon: typeof SelectItemTextIcon;
45
59
  ItemTextLabel: typeof SelectItemTextLabel;
@@ -1,13 +1,14 @@
1
- import { CheckIcon, ChevronUpDownIcon, CloseIcon } from "../../lib/moduix/icons/ui/Icons.js";
2
1
  import { normalizeClassName } from "../../lib/moduix/normalizeClassName.js";
2
+ import { CheckIcon, ChevronUpDownIcon } from "../../lib/moduix/icons/ui/Icons.js";
3
+ import { CloseButton } from "../close-button/CloseButton.js";
3
4
  import { OverlayPortal, OverlayPortalProvider } from "../../lib/moduix/overlayPortal.js";
4
5
  import Select_module_default from "./Select.module.js";
5
- import { jsx } from "react/jsx-runtime";
6
6
  import { clsx } from "clsx";
7
- import { forwardRef } from "react";
8
- import { Select } from "@ark-ui/react/select";
7
+ import { Children, cloneElement, forwardRef } from "react";
8
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
9
+ import { Select, useSelect, useSelectContext, useSelectItemContext } from "@ark-ui/react/select";
9
10
  //#region src/components/select/Select.tsx
10
- const SelectRoot = forwardRef(function SelectRoot({ className, portalled, portalRef, ...props }, ref) {
11
+ const SelectRoot = forwardRef(function SelectRoot({ asChild, children, className, nativeFormControl = "select", portalled, portalRef, ...props }, ref) {
11
12
  return /* @__PURE__ */ jsx(OverlayPortalProvider, {
12
13
  portalled,
13
14
  portalRef,
@@ -15,11 +16,13 @@ const SelectRoot = forwardRef(function SelectRoot({ className, portalled, portal
15
16
  ref,
16
17
  "data-slot": "select-root",
17
18
  className: clsx(Select_module_default.root, normalizeClassName(className)),
18
- ...props
19
+ asChild,
20
+ ...props,
21
+ children: withNativeFormControl(children, asChild, nativeFormControl)
19
22
  })
20
23
  });
21
24
  });
22
- const SelectRootProvider = forwardRef(function SelectRootProvider({ className, portalled, portalRef, ...props }, ref) {
25
+ const SelectRootProvider = forwardRef(function SelectRootProvider({ asChild, children, className, nativeFormControl = "select", portalled, portalRef, ...props }, ref) {
23
26
  return /* @__PURE__ */ jsx(OverlayPortalProvider, {
24
27
  portalled,
25
28
  portalRef,
@@ -27,7 +30,9 @@ const SelectRootProvider = forwardRef(function SelectRootProvider({ className, p
27
30
  ref,
28
31
  "data-slot": "select-root-provider",
29
32
  className: clsx(Select_module_default.root, normalizeClassName(className)),
30
- ...props
33
+ asChild,
34
+ ...props,
35
+ children: withNativeFormControl(children, asChild, nativeFormControl)
31
36
  })
32
37
  });
33
38
  });
@@ -64,13 +69,29 @@ const SelectValueText = forwardRef(function SelectValueText({ className, ...prop
64
69
  ...props
65
70
  });
66
71
  });
67
- const SelectClearTrigger = forwardRef(function SelectClearTrigger({ className, children, ...props }, ref) {
72
+ const SelectClearTrigger = forwardRef(function SelectClearTrigger({ asChild, className, children, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...props }, ref) {
73
+ const triggerClassName = clsx(Select_module_default.clearTrigger, normalizeClassName(className));
74
+ if (asChild) return /* @__PURE__ */ jsx(Select.ClearTrigger, {
75
+ ref,
76
+ asChild: true,
77
+ "data-slot": "select-clear-trigger",
78
+ className: triggerClassName,
79
+ "aria-label": ariaLabel,
80
+ "aria-labelledby": ariaLabelledBy,
81
+ ...props,
82
+ children
83
+ });
68
84
  return /* @__PURE__ */ jsx(Select.ClearTrigger, {
69
85
  ref,
86
+ asChild: true,
70
87
  "data-slot": "select-clear-trigger",
71
- className: clsx(Select_module_default.clearTrigger, normalizeClassName(className)),
88
+ className: triggerClassName,
72
89
  ...props,
73
- children: children ?? /* @__PURE__ */ jsx(CloseIcon, {})
90
+ children: /* @__PURE__ */ jsx(CloseButton.Root, {
91
+ "aria-label": ariaLabel ?? (ariaLabelledBy == null ? "Clear selection" : void 0),
92
+ "aria-labelledby": ariaLabelledBy,
93
+ children
94
+ })
74
95
  });
75
96
  });
76
97
  const SelectIndicator = forwardRef(function SelectIndicator({ className, children, ...props }, ref) {
@@ -89,6 +110,13 @@ function SelectIndicators({ className, ...props }) {
89
110
  ...props
90
111
  });
91
112
  }
113
+ const SelectField = forwardRef(function SelectField({ clearLabel, indicator, placeholder, ...props }, ref) {
114
+ return /* @__PURE__ */ jsxs(SelectControl, {
115
+ ref,
116
+ ...props,
117
+ children: [/* @__PURE__ */ jsx(SelectTrigger, { children: /* @__PURE__ */ jsx(SelectValueText, { placeholder }) }), /* @__PURE__ */ jsxs(SelectIndicators, { children: [clearLabel && /* @__PURE__ */ jsx(SelectClearTrigger, { "aria-label": clearLabel }), /* @__PURE__ */ jsx(SelectIndicator, { children: indicator })] })]
118
+ });
119
+ });
92
120
  const SelectPositioner = forwardRef(function SelectPositioner({ className, ...props }, ref) {
93
121
  return /* @__PURE__ */ jsx(OverlayPortal, { children: /* @__PURE__ */ jsx(Select.Positioner, {
94
122
  ref,
@@ -154,14 +182,26 @@ const SelectItemIndicator = forwardRef(function SelectItemIndicator({ className,
154
182
  children: children ?? /* @__PURE__ */ jsx(CheckIcon, {})
155
183
  });
156
184
  });
157
- const SelectHiddenSelect = forwardRef(function SelectHiddenSelect({ className, ...props }, ref) {
158
- return /* @__PURE__ */ jsx(Select.HiddenSelect, {
159
- ref,
160
- "data-slot": "select-hidden-select",
161
- className: normalizeClassName(className),
162
- ...props
163
- });
164
- });
185
+ function withNativeFormControl(children, asChild, nativeFormControl) {
186
+ const formControl = /* @__PURE__ */ jsx(SelectFormControl, { nativeFormControl });
187
+ if (!asChild) return /* @__PURE__ */ jsxs(Fragment$1, { children: [children, formControl] });
188
+ const child = Children.only(children);
189
+ return cloneElement(child, {}, child.props.children, formControl);
190
+ }
191
+ function SelectFormControl({ nativeFormControl }) {
192
+ const select = useSelectContext();
193
+ if (nativeFormControl === "select") return /* @__PURE__ */ jsx(Select.HiddenSelect, { "data-slot": "select-hidden-select" });
194
+ const hiddenSelectProps = select.getHiddenSelectProps();
195
+ return /* @__PURE__ */ jsx(Fragment$1, { children: select.value.map((value) => /* @__PURE__ */ jsx("input", {
196
+ type: "hidden",
197
+ "data-slot": "select-hidden-input",
198
+ name: hiddenSelectProps.name,
199
+ form: hiddenSelectProps.form,
200
+ autoComplete: hiddenSelectProps.autoComplete,
201
+ disabled: hiddenSelectProps.disabled,
202
+ value
203
+ }, value)) });
204
+ }
165
205
  function SelectItemTextContent({ className, ...props }) {
166
206
  return /* @__PURE__ */ jsx("span", {
167
207
  "data-slot": "select-item-text-content",
@@ -186,8 +226,14 @@ function SelectItemTextLabel({ className, ...props }) {
186
226
  const Select$1 = Object.assign(SelectRoot, {
187
227
  Root: SelectRoot,
188
228
  RootProvider: SelectRootProvider,
229
+ Context: Select.Context,
230
+ ItemContext: Select.ItemContext,
231
+ useSelect,
232
+ useSelectContext,
233
+ useSelectItemContext,
189
234
  Label: SelectLabel,
190
235
  Control: SelectControl,
236
+ Field: SelectField,
191
237
  Trigger: SelectTrigger,
192
238
  ValueText: SelectValueText,
193
239
  ClearTrigger: SelectClearTrigger,
@@ -201,7 +247,6 @@ const Select$1 = Object.assign(SelectRoot, {
201
247
  Item: SelectItem,
202
248
  ItemText: SelectItemText,
203
249
  ItemIndicator: SelectItemIndicator,
204
- HiddenSelect: SelectHiddenSelect,
205
250
  ItemTextContent: SelectItemTextContent,
206
251
  ItemTextIcon: SelectItemTextIcon,
207
252
  ItemTextLabel: SelectItemTextLabel
@@ -1,9 +1,9 @@
1
1
  import { normalizeClassName } from "../../lib/moduix/normalizeClassName.js";
2
2
  import Separator_module_default from "./Separator.module.js";
3
- import { jsx } from "react/jsx-runtime";
4
3
  import { ark } from "@ark-ui/react/factory";
5
4
  import { clsx } from "clsx";
6
5
  import { forwardRef } from "react";
6
+ import { jsx } from "react/jsx-runtime";
7
7
  //#region src/components/separator/Separator.tsx
8
8
  const SeparatorRoot = forwardRef(function SeparatorRoot({ asChild, className, orientation = "horizontal", role, size = "sm", variant = "solid", "aria-orientation": ariaOrientation, ...props }, ref) {
9
9
  const resolvedRole = role ?? "separator";
@@ -22,6 +22,7 @@
22
22
  color var(--sidebar-transition, var(--transition-default));
23
23
  flex-direction: column;
24
24
  display: flex;
25
+ position: relative;
25
26
  overflow: hidden;
26
27
 
27
28
  &[data-state="collapsed"] {
@@ -36,7 +37,7 @@
36
37
  & ._3sukta_content {
37
38
  scrollbar-gutter: auto;
38
39
  scrollbar-width: none;
39
- overflow: hidden;
40
+ overflow: hidden auto;
40
41
  }
41
42
 
42
43
  & ._3sukta_label, & ._3sukta_groupLabel {
@@ -51,7 +52,7 @@
51
52
  overflow: hidden;
52
53
  }
53
54
 
54
- & ._3sukta_menuSub {
55
+ & ._3sukta_menuSub, & ._3sukta_groupAction, & ._3sukta_menuAction, & ._3sukta_menuBadge {
55
56
  display: none;
56
57
  }
57
58
 
@@ -196,7 +197,6 @@
196
197
  padding: var(--sidebar-group-padding, var(--spacing-3));
197
198
  flex-direction: column;
198
199
  display: flex;
199
- position: relative;
200
200
  }
201
201
 
202
202
  ._3sukta_groupLabel {
@@ -210,6 +210,66 @@
210
210
  margin: 0;
211
211
  }
212
212
 
213
+ ._3sukta_groupAction {
214
+ width: var(--sidebar-group-action-size, 1.5rem);
215
+ height: var(--sidebar-group-action-size, 1.5rem);
216
+ border-radius: var(--sidebar-menu-button-radius, var(--radius-md));
217
+ color: var(--sidebar-muted-color, var(--color-muted-foreground));
218
+ appearance: none;
219
+ cursor: pointer;
220
+ transition: background-color var(--sidebar-transition, var(--transition-default)),
221
+ color var(--sidebar-transition, var(--transition-default));
222
+ background-color: #0000;
223
+ border: 0;
224
+ justify-content: center;
225
+ align-items: center;
226
+ padding: 0;
227
+ display: inline-flex;
228
+
229
+ & > svg {
230
+ width: var(--sidebar-icon-size, 1rem);
231
+ height: var(--sidebar-icon-size, 1rem);
232
+ }
233
+
234
+ &:focus-visible {
235
+ outline: var(--sidebar-focus-ring-width, var(--border-width-md)) solid
236
+ var(--sidebar-focus-ring-color, var(--color-ring));
237
+ outline-offset: var(--sidebar-focus-ring-offset, var(--spacing-1));
238
+ }
239
+
240
+ @media (hover: hover) {
241
+ &:hover {
242
+ background-color: var(--sidebar-accent-bg, var(--color-accent));
243
+ color: var(--sidebar-accent-color, var(--color-accent-foreground));
244
+ }
245
+ }
246
+ }
247
+
248
+ ._3sukta_group:has(._3sukta_groupAction) {
249
+ column-gap: var(--sidebar-gap, var(--spacing-2));
250
+ row-gap: var(--sidebar-group-gap, var(--spacing-1));
251
+ grid-template-columns: minmax(0, 1fr) auto;
252
+ display: grid;
253
+ }
254
+
255
+ ._3sukta_group:has(._3sukta_groupAction) ._3sukta_groupLabel {
256
+ grid-column: 1;
257
+ }
258
+
259
+ ._3sukta_group:has(._3sukta_groupAction) ._3sukta_groupAction {
260
+ grid-column: 2;
261
+ align-self: center;
262
+ }
263
+
264
+ ._3sukta_groupContent {
265
+ width: 100%;
266
+ min-width: 0;
267
+ }
268
+
269
+ ._3sukta_group:has(._3sukta_groupAction) ._3sukta_groupContent {
270
+ grid-column: 1 / -1;
271
+ }
272
+
213
273
  ._3sukta_menu, ._3sukta_menuSub {
214
274
  gap: var(--sidebar-menu-gap, var(--spacing-1));
215
275
  flex-direction: column;
@@ -314,7 +374,79 @@
314
374
  justify-content: flex-start;
315
375
  }
316
376
 
377
+ ._3sukta_menuAction {
378
+ z-index: 1;
379
+ width: var(--sidebar-menu-action-size, 1.5rem);
380
+ height: var(--sidebar-menu-action-size, 1.5rem);
381
+ border-radius: var(--sidebar-menu-button-radius, var(--radius-md));
382
+ color: var(--sidebar-muted-color, var(--color-muted-foreground));
383
+ appearance: none;
384
+ cursor: pointer;
385
+ transition: background-color var(--sidebar-transition, var(--transition-default)),
386
+ color var(--sidebar-transition, var(--transition-default));
387
+ background-color: #0000;
388
+ border: 0;
389
+ justify-content: center;
390
+ align-items: center;
391
+ padding: 0;
392
+ display: inline-flex;
393
+ position: absolute;
394
+ inset-block-start: calc((var(--sidebar-menu-button-height, var(--size-md)) - var(--sidebar-menu-action-size, 1.5rem)) /
395
+ 2);
396
+ inset-inline-end: var(--sidebar-menu-button-padding-x, var(--spacing-2));
397
+
398
+ & > svg {
399
+ width: var(--sidebar-icon-size, 1rem);
400
+ height: var(--sidebar-icon-size, 1rem);
401
+ }
402
+
403
+ &:focus-visible {
404
+ outline: var(--sidebar-focus-ring-width, var(--border-width-md)) solid
405
+ var(--sidebar-focus-ring-color, var(--color-ring));
406
+ outline-offset: var(--sidebar-focus-ring-offset, var(--spacing-1));
407
+ }
408
+
409
+ @media (hover: hover) {
410
+ &:hover {
411
+ background-color: var(--sidebar-accent-bg, var(--color-accent));
412
+ color: var(--sidebar-accent-color, var(--color-accent-foreground));
413
+ }
414
+ }
415
+ }
416
+
417
+ ._3sukta_menuBadge {
418
+ z-index: 1;
419
+ min-width: var(--sidebar-menu-badge-min-width, 1.5rem);
420
+ min-height: var(--sidebar-menu-badge-min-width, 1.5rem);
421
+ padding-inline: var(--sidebar-menu-badge-padding-x, var(--spacing-1));
422
+ border-radius: var(--radius-full);
423
+ background-color: var(--sidebar-accent-bg, var(--color-accent));
424
+ color: var(--sidebar-accent-color, var(--color-accent-foreground));
425
+ font-size: var(--text-xs);
426
+ font-variant-numeric: tabular-nums;
427
+ justify-content: center;
428
+ align-items: center;
429
+ line-height: 1;
430
+ display: inline-flex;
431
+ position: absolute;
432
+ inset-block-start: calc((var(--sidebar-menu-button-height, var(--size-md)) -
433
+ var(--sidebar-menu-badge-min-width, 1.5rem)) /
434
+ 2);
435
+ inset-inline-end: var(--sidebar-menu-button-padding-x, var(--spacing-2));
436
+ }
437
+
438
+ ._3sukta_menuItem:has(._3sukta_menuAction) ._3sukta_menuButton, ._3sukta_menuItem:has(._3sukta_menuBadge) ._3sukta_menuButton {
439
+ padding-inline-end: calc(var(--sidebar-menu-action-size, 1.5rem) +
440
+ var(--sidebar-menu-button-padding-x, var(--spacing-2)) * 2);
441
+ }
442
+
443
+ ._3sukta_panel[data-state="collapsed"] ._3sukta_menuItem:has(._3sukta_menuAction) ._3sukta_menuButton, ._3sukta_panel[data-state="collapsed"] ._3sukta_menuItem:has(._3sukta_menuBadge) ._3sukta_menuButton {
444
+ padding-inline-end: 0;
445
+ }
446
+
317
447
  ._3sukta_menuSub {
448
+ box-sizing: border-box;
449
+ width: auto;
318
450
  border-inline-start: var(--sidebar-menu-sub-border-width, var(--border-width-sm)) solid
319
451
  var(--sidebar-border-color, var(--color-border));
320
452
  margin-block-start: var(--sidebar-menu-sub-margin-y, var(--spacing-1));
@@ -330,8 +462,16 @@
330
462
  line-height: var(--sidebar-menu-sub-button-line-height, var(--line-height-text-sm));
331
463
  }
332
464
 
465
+ ._3sukta_input {
466
+ width: 100%;
467
+ }
468
+
469
+ ._3sukta_separator {
470
+ --separator-color: var(--sidebar-border-color, var(--color-border));
471
+ }
472
+
333
473
  @media (prefers-reduced-motion: reduce) {
334
- ._3sukta_panel, ._3sukta_trigger, ._3sukta_menuButton, ._3sukta_menuSubButton {
474
+ ._3sukta_panel, ._3sukta_trigger, ._3sukta_groupAction, ._3sukta_menuButton, ._3sukta_menuAction, ._3sukta_menuSubButton {
335
475
  transition: none;
336
476
  }
337
477
  }
@@ -1,4 +1,5 @@
1
1
  import { Splitter } from "../splitter/Splitter.js";
2
+ import { Tooltip } from "../tooltip/Tooltip.js";
2
3
  import { ComponentProps } from "react";
3
4
 
4
5
  //#region src/components/sidebar/Sidebar.d.ts
@@ -27,17 +28,42 @@ declare const Sidebar: import("react").ForwardRefExoticComponent<Omit<SidebarRoo
27
28
  ResizeTrigger: import("react").ForwardRefExoticComponent<Omit<SidebarResizeTriggerProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
28
29
  Trigger: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLButtonElement>>;
29
30
  Label: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLSpanElement>>;
31
+ Input: import("react").ForwardRefExoticComponent<Omit<Omit<Omit<import("@ark-ui/react/field").FieldInputProps & import("react").RefAttributes<HTMLInputElement>, "size"> & {
32
+ size?: "xs" | "sm" | "md" | "lg" | "xl";
33
+ htmlSize?: ComponentProps<"input">["size"];
34
+ }, "ref"> & import("react").RefAttributes<HTMLInputElement>, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
30
35
  Header: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLElement>>;
31
36
  Content: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLDivElement>>;
32
37
  Footer: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLElement>>;
38
+ Separator: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & {
39
+ orientation?: "horizontal" | "vertical";
40
+ size?: "xs" | "sm" | "md" | "lg";
41
+ variant?: "solid" | "dashed" | "dotted";
42
+ } & import("react").RefAttributes<HTMLSpanElement>, "ref"> & import("react").RefAttributes<HTMLSpanElement>>;
33
43
  Group: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLElement>>;
34
44
  GroupLabel: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLHeadingElement>>;
45
+ GroupAction: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLButtonElement>>;
46
+ GroupContent: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLDivElement>>;
35
47
  Menu: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLUListElement>>;
36
48
  MenuItem: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLLIElement>>;
49
+ Tooltip: ({
50
+ children,
51
+ content,
52
+ openDelay,
53
+ closeDelay,
54
+ positioning,
55
+ ...props
56
+ }: Omit<ComponentProps<typeof Tooltip>, "children" | "disabled" | "positioning"> & {
57
+ children: ComponentProps<typeof Tooltip.Trigger>["children"];
58
+ content: ComponentProps<typeof Tooltip.Content>["children"];
59
+ positioning?: ComponentProps<typeof Tooltip>["positioning"];
60
+ }) => import("react").JSX.Element;
37
61
  MenuButton: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & {
38
62
  active?: boolean;
39
63
  size?: "sm" | "md" | "lg";
40
64
  } & import("react").RefAttributes<HTMLButtonElement>>;
65
+ MenuAction: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLButtonElement>>;
66
+ MenuBadge: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLDivElement>>;
41
67
  MenuSub: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLUListElement>>;
42
68
  MenuSubItem: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLLIElement>>;
43
69
  MenuSubButton: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & {
@@ -1,12 +1,14 @@
1
- import { ChevronLeftIcon } from "../../lib/moduix/icons/ui/Icons.js";
2
1
  import { normalizeClassName } from "../../lib/moduix/normalizeClassName.js";
3
- import { Splitter as Splitter$1 } from "../splitter/Splitter.js";
2
+ import { ChevronLeftIcon } from "../../lib/moduix/icons/ui/Icons.js";
3
+ import { Input } from "../input/Input.js";
4
+ import { Separator } from "../separator/Separator.js";
5
+ import { Splitter, useSplitterContext } from "../splitter/Splitter.js";
6
+ import { Tooltip } from "../tooltip/Tooltip.js";
4
7
  import Sidebar_module_default from "./Sidebar.module.js";
5
- import { jsx } from "react/jsx-runtime";
6
8
  import { ark } from "@ark-ui/react/factory";
7
9
  import { clsx } from "clsx";
8
10
  import { createContext, forwardRef, useContext } from "react";
9
- import { useSplitterContext } from "@ark-ui/react/splitter";
11
+ import { jsx, jsxs } from "react/jsx-runtime";
10
12
  //#region src/components/sidebar/Sidebar.tsx
11
13
  const sidebarPanel = {
12
14
  id: "sidebar",
@@ -30,6 +32,12 @@ function getDefaultSidebarSize(side) {
30
32
  defaultSize[1] = "16rem";
31
33
  return defaultSize;
32
34
  }
35
+ function getDefaultPanels(side, panelId) {
36
+ return defaultPanelsBySide[side].map((panel) => panel.id === "sidebar" ? {
37
+ ...panel,
38
+ id: panelId
39
+ } : panel);
40
+ }
33
41
  function toggleSidebarPanel(splitter, panelId) {
34
42
  if (splitter.isPanelCollapsed(panelId)) {
35
43
  splitter.expandPanel(panelId);
@@ -43,10 +51,10 @@ const SidebarRoot = forwardRef(function SidebarRoot({ className, panels, default
43
51
  panelId,
44
52
  side
45
53
  },
46
- children: /* @__PURE__ */ jsx(Splitter$1.Root, {
54
+ children: /* @__PURE__ */ jsx(Splitter.Root, {
47
55
  ...props,
48
56
  ref,
49
- panels: panels ?? defaultPanelsBySide[side],
57
+ panels: panels ?? getDefaultPanels(side, panelId),
50
58
  defaultSize: defaultSize ?? getDefaultSidebarSize(side),
51
59
  orientation: "horizontal",
52
60
  "data-side": side,
@@ -71,7 +79,7 @@ const SidebarPanel = forwardRef(function SidebarPanel({ className, id, ...props
71
79
  const splitter = useSplitterContext();
72
80
  const panelId = id ?? config.panelId;
73
81
  const collapsed = splitter.isPanelCollapsed(panelId);
74
- return /* @__PURE__ */ jsx(Splitter$1.Panel, {
82
+ return /* @__PURE__ */ jsx(Splitter.Panel, {
75
83
  ...props,
76
84
  ref,
77
85
  id: panelId,
@@ -83,7 +91,7 @@ const SidebarPanel = forwardRef(function SidebarPanel({ className, id, ...props
83
91
  });
84
92
  const SidebarInset = forwardRef(function SidebarInset({ className, id = "content", ...props }, ref) {
85
93
  const { side } = useContext(SidebarConfigContext);
86
- return /* @__PURE__ */ jsx(Splitter$1.Panel, {
94
+ return /* @__PURE__ */ jsx(Splitter.Panel, {
87
95
  ref,
88
96
  id,
89
97
  "data-side": side,
@@ -92,17 +100,18 @@ const SidebarInset = forwardRef(function SidebarInset({ className, id = "content
92
100
  ...props
93
101
  });
94
102
  });
95
- const SidebarResizeTrigger = forwardRef(function SidebarResizeTrigger({ className, id, "aria-label": ariaLabel = "Resize sidebar", ...props }, ref) {
96
- const { side } = useContext(SidebarConfigContext);
97
- const resolvedId = id ?? (side === "left" ? "sidebar:content" : "content:sidebar");
98
- return /* @__PURE__ */ jsx(Splitter$1.ResizeTrigger, {
103
+ const SidebarResizeTrigger = forwardRef(function SidebarResizeTrigger({ children, className, id, "aria-label": ariaLabel = "Resize sidebar", ...props }, ref) {
104
+ const { panelId, side } = useContext(SidebarConfigContext);
105
+ const resolvedId = id ?? (side === "left" ? `${panelId}:content` : `content:${panelId}`);
106
+ return /* @__PURE__ */ jsx(Splitter.ResizeTrigger, {
99
107
  ...props,
100
108
  ref,
101
109
  id: resolvedId,
102
110
  "aria-label": ariaLabel,
103
111
  "data-side": side,
104
112
  "data-slot": "sidebar-resize-trigger",
105
- className: clsx(Sidebar_module_default.resizeTrigger, normalizeClassName(className))
113
+ className: clsx(Sidebar_module_default.resizeTrigger, normalizeClassName(className)),
114
+ children: children === void 0 ? null : children
106
115
  });
107
116
  });
108
117
  const SidebarTrigger = forwardRef(function SidebarTrigger({ className, children, onClick, type = "button", "aria-label": ariaLabel = "Toggle sidebar", ...props }, ref) {
@@ -190,6 +199,27 @@ const SidebarGroupLabel = forwardRef(function SidebarGroupLabel({ className, ...
190
199
  ...props
191
200
  });
192
201
  });
202
+ const SidebarGroupAction = forwardRef(function SidebarGroupAction({ className, type = "button", ...props }, ref) {
203
+ return /* @__PURE__ */ jsx(ark.button, {
204
+ ref,
205
+ type,
206
+ "data-scope": "sidebar",
207
+ "data-part": "group-action",
208
+ "data-slot": "sidebar-group-action",
209
+ className: clsx(Sidebar_module_default.groupAction, normalizeClassName(className)),
210
+ ...props
211
+ });
212
+ });
213
+ const SidebarGroupContent = forwardRef(function SidebarGroupContent({ className, ...props }, ref) {
214
+ return /* @__PURE__ */ jsx(ark.div, {
215
+ ref,
216
+ "data-scope": "sidebar",
217
+ "data-part": "group-content",
218
+ "data-slot": "sidebar-group-content",
219
+ className: clsx(Sidebar_module_default.groupContent, normalizeClassName(className)),
220
+ ...props
221
+ });
222
+ });
193
223
  const SidebarMenu = forwardRef(function SidebarMenu({ className, ...props }, ref) {
194
224
  return /* @__PURE__ */ jsx(ark.ul, {
195
225
  ref,
@@ -224,6 +254,27 @@ const SidebarMenuButton = forwardRef(function SidebarMenuButton({ active = false
224
254
  ...props
225
255
  });
226
256
  });
257
+ const SidebarMenuAction = forwardRef(function SidebarMenuAction({ className, type = "button", ...props }, ref) {
258
+ return /* @__PURE__ */ jsx(ark.button, {
259
+ ref,
260
+ type,
261
+ "data-scope": "sidebar",
262
+ "data-part": "menu-action",
263
+ "data-slot": "sidebar-menu-action",
264
+ className: clsx(Sidebar_module_default.menuAction, normalizeClassName(className)),
265
+ ...props
266
+ });
267
+ });
268
+ const SidebarMenuBadge = forwardRef(function SidebarMenuBadge({ className, ...props }, ref) {
269
+ return /* @__PURE__ */ jsx(ark.div, {
270
+ ref,
271
+ "data-scope": "sidebar",
272
+ "data-part": "menu-badge",
273
+ "data-slot": "sidebar-menu-badge",
274
+ className: clsx(Sidebar_module_default.menuBadge, normalizeClassName(className)),
275
+ ...props
276
+ });
277
+ });
227
278
  const SidebarMenuSub = forwardRef(function SidebarMenuSub({ className, ...props }, ref) {
228
279
  return /* @__PURE__ */ jsx(ark.ul, {
229
280
  ref,
@@ -256,6 +307,40 @@ const SidebarMenuSubButton = forwardRef(function SidebarMenuSubButton({ active =
256
307
  ...props
257
308
  });
258
309
  });
310
+ const SidebarTooltip = function SidebarTooltip({ children, content, openDelay = 200, closeDelay = 0, positioning, ...props }) {
311
+ const { collapsed, side } = useSidebar();
312
+ return /* @__PURE__ */ jsxs(Tooltip, {
313
+ ...props,
314
+ openDelay,
315
+ closeDelay,
316
+ disabled: !collapsed,
317
+ positioning: {
318
+ placement: side === "left" ? "right" : "left",
319
+ gutter: 8,
320
+ ...positioning
321
+ },
322
+ children: [/* @__PURE__ */ jsx(Tooltip.Trigger, {
323
+ asChild: true,
324
+ children
325
+ }), /* @__PURE__ */ jsx(Tooltip.Positioner, { children: /* @__PURE__ */ jsx(Tooltip.Content, { children: content }) })]
326
+ });
327
+ };
328
+ const SidebarInput = forwardRef(function SidebarInput({ className, ...props }, ref) {
329
+ return /* @__PURE__ */ jsx(Input.Root, {
330
+ ref,
331
+ "data-slot": "sidebar-input",
332
+ className: clsx(Sidebar_module_default.input, normalizeClassName(className)),
333
+ ...props
334
+ });
335
+ });
336
+ const SidebarSeparator = forwardRef(function SidebarSeparator({ className, ...props }, ref) {
337
+ return /* @__PURE__ */ jsx(Separator.Root, {
338
+ ref,
339
+ "data-slot": "sidebar-separator",
340
+ className: clsx(Sidebar_module_default.separator, normalizeClassName(className)),
341
+ ...props
342
+ });
343
+ });
259
344
  const Sidebar = Object.assign(SidebarRoot, {
260
345
  Root: SidebarRoot,
261
346
  Panel: SidebarPanel,
@@ -263,14 +348,21 @@ const Sidebar = Object.assign(SidebarRoot, {
263
348
  ResizeTrigger: SidebarResizeTrigger,
264
349
  Trigger: SidebarTrigger,
265
350
  Label: SidebarLabel,
351
+ Input: SidebarInput,
266
352
  Header: SidebarHeader,
267
353
  Content: SidebarContent,
268
354
  Footer: SidebarFooter,
355
+ Separator: SidebarSeparator,
269
356
  Group: SidebarGroup,
270
357
  GroupLabel: SidebarGroupLabel,
358
+ GroupAction: SidebarGroupAction,
359
+ GroupContent: SidebarGroupContent,
271
360
  Menu: SidebarMenu,
272
361
  MenuItem: SidebarMenuItem,
362
+ Tooltip: SidebarTooltip,
273
363
  MenuButton: SidebarMenuButton,
364
+ MenuAction: SidebarMenuAction,
365
+ MenuBadge: SidebarMenuBadge,
274
366
  MenuSub: SidebarMenuSub,
275
367
  MenuSubItem: SidebarMenuSubItem,
276
368
  MenuSubButton: SidebarMenuSubButton