@moduix/react 1.1.1 → 2.1.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 (296) hide show
  1. package/README.md +105 -177
  2. package/dist/components/accordion/Accordion.css +12 -5
  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 +24 -10
  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.css +9 -9
  12. package/dist/components/angle-slider/AngleSlider.d.ts +18 -2
  13. package/dist/components/angle-slider/AngleSlider.js +34 -18
  14. package/dist/components/angle-slider/index.d.ts +2 -2
  15. package/dist/components/aspect-ratio/AspectRatio.css +3 -1
  16. package/dist/components/aspect-ratio/AspectRatio.js +2 -2
  17. package/dist/components/avatar/Avatar.d.ts +6 -3
  18. package/dist/components/avatar/Avatar.js +12 -5
  19. package/dist/components/avatar/index.d.ts +2 -2
  20. package/dist/components/badge/Badge.css +52 -8
  21. package/dist/components/badge/Badge.d.ts +2 -2
  22. package/dist/components/badge/Badge.js +1 -1
  23. package/dist/components/bleed/Bleed.d.ts +6 -4
  24. package/dist/components/bleed/Bleed.js +3 -3
  25. package/dist/components/breadcrumbs/Breadcrumbs.css +13 -6
  26. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +18 -0
  27. package/dist/components/breadcrumbs/Breadcrumbs.js +18 -4
  28. package/dist/components/breadcrumbs/Breadcrumbs.module.js +2 -1
  29. package/dist/components/breadcrumbs/index.d.ts +2 -0
  30. package/dist/components/button/Button.css +45 -25
  31. package/dist/components/button/Button.d.ts +6 -0
  32. package/dist/components/button/Button.js +12 -7
  33. package/dist/components/card/Card.css +21 -5
  34. package/dist/components/card/Card.d.ts +1 -0
  35. package/dist/components/card/Card.js +12 -1
  36. package/dist/components/card/Card.module.js +1 -0
  37. package/dist/components/carousel/Carousel.css +19 -17
  38. package/dist/components/carousel/Carousel.d.ts +4 -0
  39. package/dist/components/carousel/Carousel.js +15 -2
  40. package/dist/components/checkbox/Checkbox.css +13 -13
  41. package/dist/components/checkbox/Checkbox.d.ts +2 -3
  42. package/dist/components/checkbox/Checkbox.js +25 -22
  43. package/dist/components/checkbox/index.d.ts +2 -2
  44. package/dist/components/clipboard/Clipboard.css +11 -11
  45. package/dist/components/clipboard/Clipboard.d.ts +2 -0
  46. package/dist/components/clipboard/Clipboard.js +15 -4
  47. package/dist/components/close-button/CloseButton.css +7 -7
  48. package/dist/components/close-button/CloseButton.d.ts +12 -2
  49. package/dist/components/close-button/CloseButton.js +9 -9
  50. package/dist/components/collapsible/Collapsible.css +13 -6
  51. package/dist/components/collapsible/Collapsible.d.ts +3 -2
  52. package/dist/components/collapsible/Collapsible.js +18 -6
  53. package/dist/components/collapsible/Collapsible.module.js +1 -0
  54. package/dist/components/collapsible/index.d.ts +2 -2
  55. package/dist/components/color-picker/ColorPicker.css +63 -27
  56. package/dist/components/color-picker/ColorPicker.d.ts +3 -3
  57. package/dist/components/color-picker/ColorPicker.js +78 -27
  58. package/dist/components/color-picker/ColorPicker.module.js +1 -0
  59. package/dist/components/color-picker/index.d.ts +2 -2
  60. package/dist/components/combobox/Combobox.css +69 -53
  61. package/dist/components/combobox/Combobox.d.ts +9 -2
  62. package/dist/components/combobox/Combobox.js +34 -8
  63. package/dist/components/combobox/index.d.ts +2 -2
  64. package/dist/components/command-palette/CommandPalette.css +67 -100
  65. package/dist/components/command-palette/CommandPalette.d.ts +13 -3
  66. package/dist/components/command-palette/CommandPalette.js +54 -43
  67. package/dist/components/command-palette/CommandPalette.module.js +0 -2
  68. package/dist/components/container/Container.js +1 -1
  69. package/dist/components/date-input/DateInput.css +8 -5
  70. package/dist/components/date-input/DateInput.d.ts +12 -7
  71. package/dist/components/date-input/DateInput.js +35 -14
  72. package/dist/components/date-input/index.d.ts +2 -2
  73. package/dist/components/date-picker/DatePicker.css +78 -57
  74. package/dist/components/date-picker/DatePicker.d.ts +30 -2
  75. package/dist/components/date-picker/DatePicker.js +94 -9
  76. package/dist/components/date-picker/index.d.ts +2 -2
  77. package/dist/components/dialog/Dialog.css +19 -14
  78. package/dist/components/dialog/Dialog.d.ts +2 -2
  79. package/dist/components/dialog/Dialog.js +3 -3
  80. package/dist/components/dialog/index.d.ts +2 -2
  81. package/dist/components/drawer/Drawer.css +6 -5
  82. package/dist/components/drawer/Drawer.d.ts +2 -2
  83. package/dist/components/drawer/Drawer.js +3 -3
  84. package/dist/components/drawer/index.d.ts +2 -2
  85. package/dist/components/editable/Editable.css +12 -10
  86. package/dist/components/editable/Editable.d.ts +9 -2
  87. package/dist/components/editable/Editable.js +14 -5
  88. package/dist/components/editable/index.d.ts +2 -2
  89. package/dist/components/empty/Empty.css +2 -2
  90. package/dist/components/empty/Empty.js +1 -1
  91. package/dist/components/field/Field.css +6 -8
  92. package/dist/components/field/Field.d.ts +3 -2
  93. package/dist/components/field/Field.js +6 -5
  94. package/dist/components/field/Field.module.js +0 -1
  95. package/dist/components/field/index.d.ts +2 -2
  96. package/dist/components/fieldset/Fieldset.d.ts +2 -2
  97. package/dist/components/fieldset/Fieldset.js +3 -3
  98. package/dist/components/fieldset/index.d.ts +2 -2
  99. package/dist/components/file-upload/FileUpload.css +96 -23
  100. package/dist/components/file-upload/FileUpload.d.ts +22 -5
  101. package/dist/components/file-upload/FileUpload.js +79 -21
  102. package/dist/components/file-upload/FileUpload.module.js +3 -0
  103. package/dist/components/file-upload/index.d.ts +2 -2
  104. package/dist/components/floating-panel/FloatingPanel.css +44 -40
  105. package/dist/components/floating-panel/FloatingPanel.d.ts +10 -2
  106. package/dist/components/floating-panel/FloatingPanel.js +15 -9
  107. package/dist/components/heading/Heading.js +1 -1
  108. package/dist/components/highlight/Highlight.css +1 -1
  109. package/dist/components/highlight/Highlight.js +1 -1
  110. package/dist/components/hover-card/HoverCard.css +19 -15
  111. package/dist/components/hover-card/HoverCard.d.ts +3 -2
  112. package/dist/components/hover-card/HoverCard.js +5 -4
  113. package/dist/components/hover-card/index.d.ts +2 -2
  114. package/dist/components/image/Image.css +7 -0
  115. package/dist/components/image/Image.d.ts +12 -0
  116. package/dist/components/image/Image.js +28 -0
  117. package/dist/components/image/Image.module.js +5 -0
  118. package/dist/components/image/index.d.ts +2 -0
  119. package/dist/components/image-cropper/ImageCropper.css +15 -11
  120. package/dist/components/image-cropper/ImageCropper.d.ts +7 -2
  121. package/dist/components/image-cropper/ImageCropper.js +25 -3
  122. package/dist/components/image-cropper/index.d.ts +2 -2
  123. package/dist/components/input/Input.css +9 -9
  124. package/dist/components/input/Input.js +1 -1
  125. package/dist/components/input-group/InputGroup.css +29 -29
  126. package/dist/components/input-group/InputGroup.d.ts +3 -0
  127. package/dist/components/input-group/InputGroup.js +1 -1
  128. package/dist/components/kbd/Kbd.css +2 -2
  129. package/dist/components/kbd/Kbd.js +1 -1
  130. package/dist/components/lightbox/Lightbox.css +19 -17
  131. package/dist/components/lightbox/Lightbox.d.ts +4 -2
  132. package/dist/components/lightbox/Lightbox.js +9 -7
  133. package/dist/components/lightbox/index.d.ts +2 -2
  134. package/dist/components/list/List.js +1 -1
  135. package/dist/components/listbox/Listbox.css +87 -26
  136. package/dist/components/listbox/Listbox.d.ts +14 -2
  137. package/dist/components/listbox/Listbox.js +41 -5
  138. package/dist/components/listbox/Listbox.module.js +3 -0
  139. package/dist/components/listbox/index.d.ts +2 -2
  140. package/dist/components/marquee/Marquee.d.ts +2 -1
  141. package/dist/components/marquee/Marquee.js +4 -3
  142. package/dist/components/marquee/index.d.ts +2 -2
  143. package/dist/components/menu/Menu.css +54 -45
  144. package/dist/components/menu/Menu.d.ts +3 -2
  145. package/dist/components/menu/Menu.js +6 -5
  146. package/dist/components/menu/index.d.ts +2 -2
  147. package/dist/components/native-select/NativeSelect.css +17 -12
  148. package/dist/components/native-select/NativeSelect.d.ts +6 -2
  149. package/dist/components/native-select/NativeSelect.js +5 -4
  150. package/dist/components/number-input/NumberInput.css +17 -24
  151. package/dist/components/number-input/NumberInput.d.ts +7 -2
  152. package/dist/components/number-input/NumberInput.js +17 -4
  153. package/dist/components/number-input/index.d.ts +2 -2
  154. package/dist/components/pagination/Pagination.css +11 -11
  155. package/dist/components/pagination/Pagination.d.ts +4 -0
  156. package/dist/components/pagination/Pagination.js +13 -4
  157. package/dist/components/password-input/PasswordInput.css +4 -4
  158. package/dist/components/password-input/PasswordInput.d.ts +4 -0
  159. package/dist/components/password-input/PasswordInput.js +10 -2
  160. package/dist/components/pin-input/PinInput.css +6 -6
  161. package/dist/components/pin-input/PinInput.d.ts +6 -1
  162. package/dist/components/pin-input/PinInput.js +25 -16
  163. package/dist/components/popover/Popover.css +29 -19
  164. package/dist/components/popover/Popover.js +1 -1
  165. package/dist/components/progress-circular/ProgressCircular.css +2 -2
  166. package/dist/components/progress-circular/ProgressCircular.d.ts +6 -0
  167. package/dist/components/progress-circular/ProgressCircular.js +14 -3
  168. package/dist/components/progress-linear/ProgressLinear.css +1 -1
  169. package/dist/components/progress-linear/ProgressLinear.d.ts +3 -0
  170. package/dist/components/progress-linear/ProgressLinear.js +6 -3
  171. package/dist/components/qr-code/QrCode.css +10 -9
  172. package/dist/components/qr-code/QrCode.d.ts +2 -2
  173. package/dist/components/qr-code/QrCode.js +3 -3
  174. package/dist/components/qr-code/index.d.ts +2 -2
  175. package/dist/components/radio-group/RadioGroup.css +12 -12
  176. package/dist/components/radio-group/RadioGroup.d.ts +8 -4
  177. package/dist/components/radio-group/RadioGroup.js +22 -14
  178. package/dist/components/radio-group/index.d.ts +2 -2
  179. package/dist/components/rating-group/RatingGroup.css +10 -10
  180. package/dist/components/rating-group/RatingGroup.d.ts +11 -4
  181. package/dist/components/rating-group/RatingGroup.js +29 -18
  182. package/dist/components/rating-group/index.d.ts +2 -2
  183. package/dist/components/scroll-area/ScrollArea.css +12 -7
  184. package/dist/components/scroll-area/ScrollArea.d.ts +3 -0
  185. package/dist/components/scroll-area/ScrollArea.js +9 -6
  186. package/dist/components/segment-group/SegmentGroup.css +4 -4
  187. package/dist/components/segment-group/SegmentGroup.d.ts +13 -3
  188. package/dist/components/segment-group/SegmentGroup.js +23 -15
  189. package/dist/components/segment-group/index.d.ts +2 -2
  190. package/dist/components/select/Select.css +81 -55
  191. package/dist/components/select/Select.d.ts +18 -4
  192. package/dist/components/select/Select.js +65 -20
  193. package/dist/components/separator/Separator.css +6 -6
  194. package/dist/components/separator/Separator.js +1 -1
  195. package/dist/components/sidebar/Sidebar.css +161 -20
  196. package/dist/components/sidebar/Sidebar.d.ts +26 -0
  197. package/dist/components/sidebar/Sidebar.js +105 -13
  198. package/dist/components/sidebar/Sidebar.module.js +6 -0
  199. package/dist/components/signature-pad/SignaturePad.css +17 -45
  200. package/dist/components/signature-pad/SignaturePad.d.ts +14 -6
  201. package/dist/components/signature-pad/SignaturePad.js +56 -17
  202. package/dist/components/signature-pad/index.d.ts +2 -2
  203. package/dist/components/simple-grid/SimpleGrid.js +3 -3
  204. package/dist/components/skeleton/Skeleton.css +1 -1
  205. package/dist/components/skeleton/Skeleton.js +1 -1
  206. package/dist/components/slider/Slider.css +17 -13
  207. package/dist/components/slider/Slider.d.ts +12 -3
  208. package/dist/components/slider/Slider.js +24 -15
  209. package/dist/components/slider/index.d.ts +2 -2
  210. package/dist/components/spinner/Spinner.css +5 -5
  211. package/dist/components/spinner/Spinner.js +2 -2
  212. package/dist/components/split-button/SplitButton.css +10 -10
  213. package/dist/components/split-button/SplitButton.d.ts +1 -1
  214. package/dist/components/split-button/SplitButton.js +3 -4
  215. package/dist/components/splitter/Splitter.css +19 -18
  216. package/dist/components/splitter/Splitter.d.ts +2 -2
  217. package/dist/components/splitter/Splitter.js +12 -11
  218. package/dist/components/splitter/index.d.ts +2 -2
  219. package/dist/components/stack/Stack.d.ts +1 -3
  220. package/dist/components/stack/Stack.js +4 -6
  221. package/dist/components/steps/Steps.css +20 -19
  222. package/dist/components/steps/Steps.d.ts +2 -1
  223. package/dist/components/steps/Steps.js +5 -4
  224. package/dist/components/swap/Swap.css +45 -0
  225. package/dist/components/swap/Swap.d.ts +11 -0
  226. package/dist/components/swap/Swap.js +39 -0
  227. package/dist/components/swap/Swap.module.js +11 -0
  228. package/dist/components/swap/index.d.ts +2 -0
  229. package/dist/components/switch/Switch.css +17 -17
  230. package/dist/components/switch/Switch.d.ts +4 -4
  231. package/dist/components/switch/Switch.js +19 -16
  232. package/dist/components/switch/index.d.ts +2 -2
  233. package/dist/components/table/Table.css +3 -3
  234. package/dist/components/table/Table.js +3 -2
  235. package/dist/components/table/Table.module.js +0 -1
  236. package/dist/components/tabs/Tabs.css +22 -20
  237. package/dist/components/tabs/Tabs.d.ts +3 -2
  238. package/dist/components/tabs/Tabs.js +5 -4
  239. package/dist/components/tabs/index.d.ts +2 -2
  240. package/dist/components/tag/Tag.css +23 -53
  241. package/dist/components/tag/Tag.js +7 -20
  242. package/dist/components/tags-input/TagsInput.css +19 -55
  243. package/dist/components/tags-input/TagsInput.d.ts +7 -4
  244. package/dist/components/tags-input/TagsInput.js +33 -21
  245. package/dist/components/tags-input/index.d.ts +2 -2
  246. package/dist/components/text/Text.d.ts +2 -2
  247. package/dist/components/text/Text.js +1 -1
  248. package/dist/components/textarea/Textarea.css +4 -3
  249. package/dist/components/textarea/Textarea.js +1 -1
  250. package/dist/components/timer/Timer.css +7 -7
  251. package/dist/components/timer/Timer.d.ts +14 -2
  252. package/dist/components/timer/Timer.js +13 -5
  253. package/dist/components/timer/index.d.ts +2 -2
  254. package/dist/components/toast/Toast.css +16 -15
  255. package/dist/components/toast/Toast.d.ts +3 -1
  256. package/dist/components/toast/Toast.js +11 -2
  257. package/dist/components/toggle/Toggle.css +23 -23
  258. package/dist/components/toggle/Toggle.d.ts +3 -2
  259. package/dist/components/toggle/Toggle.js +5 -4
  260. package/dist/components/toggle/index.d.ts +2 -2
  261. package/dist/components/toggle-group/ToggleGroup.d.ts +3 -2
  262. package/dist/components/toggle-group/ToggleGroup.js +4 -3
  263. package/dist/components/toggle-group/index.d.ts +2 -2
  264. package/dist/components/tooltip/Tooltip.css +23 -18
  265. package/dist/components/tooltip/Tooltip.d.ts +3 -2
  266. package/dist/components/tooltip/Tooltip.js +10 -3
  267. package/dist/components/tooltip/index.d.ts +2 -2
  268. package/dist/components/tour/Tour.css +37 -32
  269. package/dist/components/tour/Tour.d.ts +6 -0
  270. package/dist/components/tour/Tour.js +8 -1
  271. package/dist/components/tree-view/TreeView.css +24 -21
  272. package/dist/components/tree-view/TreeView.d.ts +2 -2
  273. package/dist/components/tree-view/TreeView.js +4 -4
  274. package/dist/components/tree-view/index.d.ts +2 -2
  275. package/dist/components/typeset/Typeset.css +317 -0
  276. package/dist/components/typeset/Typeset.d.ts +7 -0
  277. package/dist/components/typeset/Typeset.js +33 -0
  278. package/dist/components/typeset/Typeset.module.js +8 -0
  279. package/dist/index.d.ts +42 -39
  280. package/dist/index.js +42 -39
  281. package/dist/lib/moduix/icons/ui/Icons.d.ts +1 -45
  282. package/dist/lib/moduix/icons/ui/Icons.js +36 -263
  283. package/dist/lib/moduix/icons/ui/index.d.ts +2 -2
  284. package/dist/lib/moduix/overlayPortal.js +1 -1
  285. package/dist/lib/moduix/presets/contrast.css +65 -0
  286. package/dist/lib/moduix/presets/dense.css +78 -0
  287. package/dist/lib/moduix/presets/soft.css +77 -0
  288. package/dist/lib/moduix/styles/reset.css +33 -0
  289. package/dist/lib/moduix/styles/style.css +17 -4
  290. package/dist/presets/contrast.d.ts +1 -0
  291. package/dist/presets/contrast.js +1 -0
  292. package/dist/presets/dense.d.ts +1 -0
  293. package/dist/presets/dense.js +1 -0
  294. package/dist/presets/soft.d.ts +1 -0
  295. package/dist/presets/soft.js +1 -0
  296. package/package.json +7 -3
@@ -1,24 +1,28 @@
1
1
  import { normalizeClassName } from "../../lib/moduix/normalizeClassName.js";
2
2
  import DateInput_module_default from "./DateInput.module.js";
3
- import { jsx } from "react/jsx-runtime";
4
3
  import { clsx } from "clsx";
5
- import { forwardRef } from "react";
6
- import { DateInput } from "@ark-ui/react/date-input";
4
+ import { Children, cloneElement, forwardRef } from "react";
5
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
6
+ import { DateInput, useDateInput, useDateInputContext } from "@ark-ui/react/date-input";
7
7
  //#region src/components/date-input/DateInput.tsx
8
- const DateInputRoot = forwardRef(function DateInputRoot({ className, ...props }, ref) {
8
+ const DateInputRoot = forwardRef(function DateInputRoot({ asChild, children, className, names, ...props }, ref) {
9
9
  return /* @__PURE__ */ jsx(DateInput.Root, {
10
10
  ref,
11
11
  "data-slot": "date-input-root",
12
12
  className: clsx(DateInput_module_default.root, normalizeClassName(className)),
13
- ...props
13
+ asChild,
14
+ ...props,
15
+ children: withHiddenInputs(children, asChild, names)
14
16
  });
15
17
  });
16
- const DateInputRootProvider = forwardRef(function DateInputRootProvider({ className, ...props }, ref) {
18
+ const DateInputRootProvider = forwardRef(function DateInputRootProvider({ asChild, children, className, names, ...props }, ref) {
17
19
  return /* @__PURE__ */ jsx(DateInput.RootProvider, {
18
20
  ref,
19
21
  "data-slot": "date-input-root-provider",
20
22
  className: clsx(DateInput_module_default.root, normalizeClassName(className)),
21
- ...props
23
+ asChild,
24
+ ...props,
25
+ children: withHiddenInputs(children, asChild, names)
22
26
  });
23
27
  });
24
28
  const DateInputLabel = forwardRef(function DateInputLabel({ className, ...props }, ref) {
@@ -53,13 +57,28 @@ const DateInputSegment = forwardRef(function DateInputSegment({ className, ...pr
53
57
  ...props
54
58
  });
55
59
  });
56
- const DateInputHiddenInput = forwardRef(function DateInputHiddenInput(props, ref) {
57
- return /* @__PURE__ */ jsx(DateInput.HiddenInput, {
60
+ const DateInputSegments = forwardRef(function DateInputSegments(props, ref) {
61
+ return /* @__PURE__ */ jsx(DateInputSegmentGroup, {
58
62
  ref,
59
- "data-slot": "date-input-hidden-input",
60
- ...props
63
+ ...props,
64
+ children: /* @__PURE__ */ jsx(DateInput.SegmentContext, { children: (segment) => /* @__PURE__ */ jsx(DateInputSegment, { segment }) })
61
65
  });
62
66
  });
67
+ function withHiddenInputs(children, asChild, names) {
68
+ const hiddenInputs = /* @__PURE__ */ jsx(DateInputFormInputs, { names });
69
+ if (!asChild) return /* @__PURE__ */ jsxs(Fragment$1, { children: [children, hiddenInputs] });
70
+ const child = Children.only(children);
71
+ return cloneElement(child, {}, child.props.children, hiddenInputs);
72
+ }
73
+ function DateInputFormInputs({ names }) {
74
+ const dateInput = useDateInputContext();
75
+ const inputCount = Math.max(dateInput.displayValues.length, names?.length ?? 0, 1);
76
+ return /* @__PURE__ */ jsx(Fragment$1, { children: Array.from({ length: inputCount }, (_, index) => /* @__PURE__ */ jsx(DateInput.HiddenInput, {
77
+ index,
78
+ name: names?.[index],
79
+ "data-slot": "date-input-hidden-input"
80
+ }, index)) });
81
+ }
63
82
  function DateInputSeparator({ className, "aria-hidden": ariaHidden = true, role = "presentation", ...props }) {
64
83
  return /* @__PURE__ */ jsx("span", {
65
84
  "data-slot": "date-input-separator",
@@ -76,8 +95,10 @@ const DateInput$1 = Object.assign(DateInputRoot, {
76
95
  Control: DateInputControl,
77
96
  SegmentGroup: DateInputSegmentGroup,
78
97
  Segment: DateInputSegment,
79
- HiddenInput: DateInputHiddenInput,
80
- Separator: DateInputSeparator
98
+ Segments: DateInputSegments,
99
+ Separator: DateInputSeparator,
100
+ Context: DateInput.Context,
101
+ SegmentContext: DateInput.SegmentContext
81
102
  });
82
103
  //#endregion
83
- export { DateInput$1 as DateInput };
104
+ export { DateInput$1 as DateInput, useDateInput, useDateInputContext };
@@ -1,2 +1,2 @@
1
- import { DateInput } from "./DateInput.js";
2
- export { DateInput };
1
+ import { DateInput, DateInputDateValue, useDateInput, useDateInputContext } from "./DateInput.js";
2
+ export { DateInput, type DateInputDateValue, useDateInput, useDateInputContext };
@@ -1,8 +1,10 @@
1
1
  @layer ui.components {
2
2
  @keyframes a48aUa_date-picker-content-open {
3
3
  from {
4
- opacity: var(--date-picker-content-closed-opacity, 0);
5
- transform: scale(var(--date-picker-content-closed-scale, var(--scale-popup)));
4
+ opacity: var(--date-picker-content-closed-opacity, var(--popup-motion-starting-opacity, 0));
5
+ translate: var(--popup-motion-starting-translate-x, 0)
6
+ var(--popup-motion-starting-translate-y, 0);
7
+ transform: scale(var(--date-picker-content-closed-scale, var(--popup-motion-starting-scale, var(--scale-popup))));
6
8
  }
7
9
 
8
10
  to {
@@ -18,8 +20,9 @@
18
20
  }
19
21
 
20
22
  to {
21
- opacity: var(--date-picker-content-closed-opacity, 0);
22
- transform: scale(var(--date-picker-content-closed-scale, var(--scale-popup)));
23
+ opacity: var(--date-picker-content-closed-opacity, var(--popup-motion-ending-opacity, 0));
24
+ translate: var(--popup-motion-ending-translate-x, 0) var(--popup-motion-ending-translate-y, 0);
25
+ transform: scale(var(--date-picker-content-closed-scale, var(--popup-motion-ending-scale, var(--scale-popup))));
23
26
  }
24
27
  }
25
28
 
@@ -62,20 +65,22 @@
62
65
  box-sizing: border-box;
63
66
  width: 100%;
64
67
  min-width: min(var(--date-picker-input-min-width, 7.5rem), 100%);
65
- height: var(--date-picker-control-height, var(--size-lg));
68
+ height: var(--date-picker-control-height, var(--size-md));
66
69
  border: var(--date-picker-border-width, var(--border-width-sm)) solid
67
70
  var(--date-picker-border-color, var(--color-border));
68
71
  border-radius: var(--date-picker-radius, var(--radius-md));
69
- padding-block: var(--date-picker-input-padding-y, .5rem);
70
- padding-inline: var(--date-picker-input-padding-x-start, .875rem)
72
+ padding-block: var(--date-picker-input-padding-y, var(--spacing-1));
73
+ padding-inline: var(--date-picker-input-padding-x-start, var(--spacing-3-5))
71
74
  var(--date-picker-input-padding-x-end, 4.25rem);
72
75
  background-color: var(--date-picker-bg, var(--color-background));
73
76
  color: inherit;
74
77
  font: inherit;
75
78
  font-size: var(--date-picker-font-size, var(--text-md));
76
79
  line-height: var(--date-picker-line-height, var(--line-height-text-md));
77
- outline: var(--date-picker-focus-ring-width, var(--border-width-sm)) solid transparent;
78
- outline-offset: calc(var(--date-picker-focus-ring-width, var(--border-width-sm)) * -1);
80
+ outline: var(--date-picker-focus-ring-width, var(--focus-ring-inset-width, var(--border-width-sm)))
81
+ solid transparent;
82
+ outline-offset: calc(var(--date-picker-focus-ring-width, var(--focus-ring-inset-width, var(--border-width-sm))) *
83
+ -1);
79
84
  transition: background-color var(--date-picker-transition, var(--transition-default)),
80
85
  border-color var(--date-picker-transition, var(--transition-default)),
81
86
  color var(--date-picker-transition, var(--transition-default)),
@@ -102,32 +107,25 @@
102
107
  &:is([disabled], [data-disabled], [readonly], [data-readonly]) {
103
108
  cursor: default;
104
109
  }
105
-
106
- .a48aUa_control:not([data-disabled], [data-readonly]) & {
107
- @media (hover: hover) {
108
- &:hover {
109
- background-color: var(--date-picker-bg-hover, var(--color-accent));
110
- }
111
- }
112
- }
113
110
  }
114
111
 
115
112
  .a48aUa_control:has(.a48aUa_input + .a48aUa_input) .a48aUa_input {
116
113
  min-width: min(var(--date-picker-range-input-min-width, 7.5rem), 100%);
117
- padding-inline-end: var(--date-picker-input-padding-x-start, .875rem);
114
+ padding-inline-end: var(--date-picker-input-padding-x-start, var(--spacing-3-5));
118
115
  }
119
116
 
120
117
  .a48aUa_control:has(.a48aUa_input + .a48aUa_input) .a48aUa_input:last-of-type {
121
118
  padding-inline-end: var(--date-picker-input-padding-x-end, 4.25rem);
122
119
  }
123
120
 
124
- .a48aUa_trigger, .a48aUa_navTrigger, .a48aUa_viewTrigger, .a48aUa_clearTrigger, .a48aUa_presetTrigger {
121
+ .a48aUa_trigger, .a48aUa_navTrigger, .a48aUa_viewTrigger, .a48aUa_presetTrigger {
125
122
  box-sizing: border-box;
126
123
  border-radius: var(--date-picker-action-radius, var(--radius-sm));
127
124
  background: var(--date-picker-action-bg, transparent);
128
125
  color: var(--date-picker-icon-color, var(--color-muted-foreground));
129
126
  font: inherit;
130
- outline: var(--date-picker-action-focus-ring-width, var(--border-width-sm)) solid transparent;
127
+ outline: var(--date-picker-action-focus-ring-width, var(--focus-ring-inset-width, var(--border-width-sm)))
128
+ solid transparent;
131
129
  outline-offset: var(--date-picker-action-focus-ring-offset, 0);
132
130
  cursor: pointer;
133
131
  transition: background-color var(--date-picker-transition, var(--transition-default)),
@@ -144,8 +142,8 @@
144
142
  display: inline-flex;
145
143
 
146
144
  & > svg {
147
- width: var(--date-picker-icon-size, 1rem);
148
- height: var(--date-picker-icon-size, 1rem);
145
+ width: var(--date-picker-icon-size, var(--spacing-4));
146
+ height: var(--date-picker-icon-size, var(--spacing-4));
149
147
  display: block;
150
148
  }
151
149
 
@@ -172,21 +170,43 @@
172
170
  }
173
171
  }
174
172
 
175
- .a48aUa_trigger, .a48aUa_clearTrigger {
176
- width: var(--date-picker-action-size, 1.5rem);
177
- height: var(--date-picker-action-size, 1.5rem);
178
- position: absolute;
173
+ .a48aUa_trigger {
174
+ width: var(--date-picker-action-size, var(--size-xs));
175
+ height: var(--date-picker-action-size, var(--size-xs));
179
176
  top: 50%;
177
+ position: absolute;
178
+ inset-inline-end: var(--date-picker-trigger-offset-right, var(--spacing-2));
180
179
  transform: translateY(-50%);
181
180
  }
182
181
 
183
- .a48aUa_trigger {
184
- right: var(--date-picker-trigger-offset-right, .5rem);
185
- }
186
-
187
182
  .a48aUa_clearTrigger {
188
- right: calc(var(--date-picker-trigger-offset-right, .5rem) + var(--date-picker-action-size, 1.5rem) +
189
- var(--date-picker-action-gap, .125rem));
183
+ --close-button-size: var(--date-picker-action-size, var(--size-xs));
184
+ --close-button-icon-size: var(--date-picker-icon-size, var(--spacing-4));
185
+ --close-button-radius: var(--date-picker-action-radius, var(--radius-sm));
186
+ --close-button-bg: var(--date-picker-action-bg, transparent);
187
+ --close-button-bg-hover: var(--date-picker-action-bg-hover, var(--color-muted));
188
+ --close-button-color: var(--date-picker-icon-color, var(--color-muted-foreground));
189
+ --close-button-color-hover: var(--date-picker-action-color-hover, var(--color-foreground));
190
+ --close-button-disabled-opacity: var(--date-picker-disabled-opacity, var(--opacity-disabled));
191
+ --close-button-focus-ring-width: var(--date-picker-action-focus-ring-width, var(--border-width-sm));
192
+ --close-button-focus-ring-color: var(--date-picker-focus-ring-color, var(--color-ring));
193
+ --close-button-focus-ring-offset: var(--date-picker-action-focus-ring-offset, 0);
194
+ --close-button-transition: var(--date-picker-transition, var(--transition-default));
195
+ top: 50%;
196
+ position: absolute;
197
+ inset-inline-end: calc(var(--date-picker-trigger-offset-right, var(--spacing-2)) +
198
+ var(--date-picker-action-size, var(--size-xs)) +
199
+ var(--date-picker-action-gap, var(--spacing-0-5)));
200
+ transform: translateY(-50%);
201
+
202
+ &[data-focus] {
203
+ outline: var(--close-button-focus-ring-width) solid var(--close-button-focus-ring-color);
204
+ outline-offset: var(--close-button-focus-ring-offset);
205
+ }
206
+
207
+ &[hidden] {
208
+ display: none;
209
+ }
190
210
  }
191
211
 
192
212
  .a48aUa_positioner {
@@ -215,11 +235,15 @@
215
235
  overflow: auto;
216
236
 
217
237
  &[data-state="open"] {
218
- animation: a48aUa_date-picker-content-open var(--date-picker-transition, var(--transition-default));
238
+ animation: a48aUa_date-picker-content-open
239
+ var(--date-picker-transition, var(--popup-motion-duration, var(--duration-normal))
240
+ var(--popup-motion-easing, var(--ease-in-out)));
219
241
  }
220
242
 
221
243
  &[data-state="closed"] {
222
- animation: a48aUa_date-picker-content-closed var(--date-picker-transition, var(--transition-default));
244
+ animation: a48aUa_date-picker-content-closed
245
+ var(--date-picker-transition, var(--popup-motion-duration, var(--duration-normal))
246
+ var(--popup-motion-easing, var(--ease-in-out)));
223
247
  pointer-events: none;
224
248
  }
225
249
  }
@@ -244,13 +268,13 @@
244
268
  }
245
269
 
246
270
  .a48aUa_navTrigger {
247
- width: var(--date-picker-nav-trigger-size, 2rem);
248
- height: var(--date-picker-nav-trigger-size, 2rem);
271
+ width: var(--date-picker-nav-trigger-size, var(--size-sm));
272
+ height: var(--date-picker-nav-trigger-size, var(--size-sm));
249
273
  }
250
274
 
251
275
  .a48aUa_viewTrigger {
252
276
  min-width: 0;
253
- min-height: var(--date-picker-view-trigger-height, 2rem);
277
+ min-height: var(--date-picker-view-trigger-height, var(--size-sm));
254
278
  gap: var(--date-picker-view-trigger-gap, var(--spacing-2));
255
279
  padding-inline: var(--date-picker-view-trigger-padding-x, var(--spacing-2));
256
280
  color: var(--date-picker-view-trigger-color, var(--color-foreground));
@@ -270,12 +294,12 @@
270
294
  .a48aUa_table {
271
295
  border-collapse: separate;
272
296
  width: 100%;
273
- border-spacing: var(--date-picker-table-cell-gap, .125rem);
297
+ border-spacing: var(--date-picker-table-cell-gap, var(--spacing-0-5));
274
298
  table-layout: fixed;
275
299
  }
276
300
 
277
301
  .a48aUa_tableHeader, .a48aUa_weekNumberCell {
278
- width: var(--date-picker-table-cell-size, 2.25rem);
302
+ width: var(--date-picker-table-cell-size, var(--size-sm));
279
303
  height: var(--date-picker-table-header-height, 1.75rem);
280
304
  color: var(--date-picker-table-header-color, var(--color-muted-foreground));
281
305
  font-size: var(--date-picker-table-header-font-size, var(--text-xs));
@@ -285,8 +309,8 @@
285
309
  }
286
310
 
287
311
  .a48aUa_tableCell {
288
- width: var(--date-picker-table-cell-size, 2.25rem);
289
- height: var(--date-picker-table-cell-size, 2.25rem);
312
+ width: var(--date-picker-table-cell-size, var(--size-sm));
313
+ height: var(--date-picker-table-cell-size, var(--size-sm));
290
314
  text-align: center;
291
315
  padding: 0;
292
316
  }
@@ -299,8 +323,8 @@
299
323
  .a48aUa_tableCellTrigger {
300
324
  box-sizing: border-box;
301
325
  width: 100%;
302
- min-width: var(--date-picker-table-cell-size, 2.25rem);
303
- height: var(--date-picker-table-cell-size, 2.25rem);
326
+ min-width: var(--date-picker-table-cell-size, var(--size-sm));
327
+ height: var(--date-picker-table-cell-size, var(--size-sm));
304
328
  border: var(--date-picker-table-cell-border-width, 0) solid
305
329
  var(--date-picker-table-cell-border-color, transparent);
306
330
  border-radius: var(--date-picker-table-cell-radius, var(--radius-sm));
@@ -309,9 +333,10 @@
309
333
  font: inherit;
310
334
  font-size: var(--date-picker-table-cell-font-size, var(--text-sm));
311
335
  line-height: var(--date-picker-table-cell-line-height, var(--line-height-text-sm));
312
- outline: var(--date-picker-table-cell-focus-ring-width, var(--border-width-sm)) solid
313
- transparent;
314
- outline-offset: calc(var(--date-picker-table-cell-focus-ring-width, var(--border-width-sm)) * -1);
336
+ outline: var(--date-picker-table-cell-focus-ring-width, var(--focus-ring-inset-width, var(--border-width-sm)))
337
+ solid transparent;
338
+ outline-offset: calc(var(--date-picker-table-cell-focus-ring-width, var(--focus-ring-inset-width, var(--border-width-sm))) *
339
+ -1);
315
340
  cursor: pointer;
316
341
  transition: background-color var(--date-picker-transition, var(--transition-default)),
317
342
  border-color var(--date-picker-transition, var(--transition-default)),
@@ -365,19 +390,21 @@
365
390
  box-sizing: border-box;
366
391
  width: 100%;
367
392
  min-width: 0;
368
- min-height: var(--date-picker-select-height, 2rem);
393
+ min-height: var(--date-picker-select-height, var(--size-sm));
369
394
  border: var(--date-picker-select-border-width, var(--border-width-sm)) solid
370
395
  var(--date-picker-select-border-color, var(--color-border));
371
396
  border-radius: var(--date-picker-select-radius, var(--radius-sm));
372
- padding-block: var(--date-picker-select-padding-y, .25rem);
397
+ padding-block: var(--date-picker-select-padding-y, var(--spacing-1));
373
398
  padding-inline: var(--date-picker-select-padding-x, var(--spacing-2));
374
399
  background-color: var(--date-picker-select-bg, var(--color-background));
375
400
  color: var(--date-picker-select-color, var(--color-foreground));
376
401
  font: inherit;
377
402
  font-size: var(--date-picker-select-font-size, var(--text-sm));
378
403
  line-height: var(--date-picker-select-line-height, var(--line-height-text-sm));
379
- outline: var(--date-picker-select-focus-ring-width, var(--border-width-sm)) solid transparent;
380
- outline-offset: calc(var(--date-picker-select-focus-ring-width, var(--border-width-sm)) * -1);
404
+ outline: var(--date-picker-select-focus-ring-width, var(--focus-ring-inset-width, var(--border-width-sm)))
405
+ solid transparent;
406
+ outline-offset: calc(var(--date-picker-select-focus-ring-width, var(--focus-ring-inset-width, var(--border-width-sm))) *
407
+ -1);
381
408
  cursor: pointer;
382
409
  transition: background-color var(--date-picker-transition, var(--transition-default)),
383
410
  border-color var(--date-picker-transition, var(--transition-default)),
@@ -388,16 +415,10 @@
388
415
  border-color: var(--date-picker-focus-ring-color, var(--color-ring));
389
416
  outline-color: var(--date-picker-focus-ring-color, var(--color-ring));
390
417
  }
391
-
392
- @media (hover: hover) {
393
- &:hover {
394
- background-color: var(--date-picker-select-bg-hover, var(--color-accent));
395
- }
396
- }
397
418
  }
398
419
 
399
420
  .a48aUa_presetTrigger {
400
- min-height: var(--date-picker-preset-trigger-height, 2rem);
421
+ min-height: var(--date-picker-preset-trigger-height, var(--size-sm));
401
422
  padding-inline: var(--date-picker-preset-trigger-padding-x, var(--spacing-2));
402
423
  background-color: var(--date-picker-preset-trigger-bg, var(--color-muted));
403
424
  color: var(--date-picker-preset-trigger-color, var(--color-foreground));
@@ -1,15 +1,42 @@
1
1
  import { OverlayPortalProps } from "../../lib/moduix/overlayPortal.js";
2
2
  import { ComponentProps } from "react";
3
- import { DatePicker } from "@ark-ui/react/date-picker";
3
+ import { DatePicker, UseDatePickerReturn, useDatePicker, useDatePickerContext } from "@ark-ui/react/date-picker";
4
4
 
5
5
  //#region src/components/date-picker/DatePicker.d.ts
6
6
  type DatePickerRootProps = ComponentProps<typeof DatePicker.Root> & OverlayPortalProps;
7
7
  type DatePickerRootProviderProps = ComponentProps<typeof DatePicker.RootProvider> & OverlayPortalProps;
8
+ type DatePickerFieldProps = ComponentProps<typeof DatePicker.Control> & {
9
+ clearLabel?: string;
10
+ clearTriggerProps?: ComponentProps<typeof DatePicker.ClearTrigger>;
11
+ inputProps?: ComponentProps<typeof DatePicker.Input>;
12
+ placeholder?: ComponentProps<typeof DatePicker.Input>['placeholder'];
13
+ triggerLabel?: string;
14
+ triggerProps?: ComponentProps<typeof DatePicker.Trigger>;
15
+ };
16
+ type DatePickerRangeFieldProps = ComponentProps<typeof DatePicker.Control> & {
17
+ clearLabel?: string;
18
+ clearTriggerProps?: ComponentProps<typeof DatePicker.ClearTrigger>;
19
+ endInputProps?: ComponentProps<typeof DatePicker.Input>;
20
+ endPlaceholder?: ComponentProps<typeof DatePicker.Input>['placeholder'];
21
+ startInputProps?: ComponentProps<typeof DatePicker.Input>;
22
+ startPlaceholder?: ComponentProps<typeof DatePicker.Input>['placeholder'];
23
+ triggerLabel?: string;
24
+ triggerProps?: ComponentProps<typeof DatePicker.Trigger>;
25
+ };
26
+ type DatePickerOffset = ReturnType<UseDatePickerReturn['getOffset']>;
27
+ type DatePickerDayTableProps = ComponentProps<typeof DatePicker.Table> & {
28
+ offset?: DatePickerOffset;
29
+ showHeader?: boolean;
30
+ showWeekNumbers?: boolean;
31
+ };
8
32
  declare const DatePicker$1: import("react").ForwardRefExoticComponent<Omit<DatePickerRootProps, "ref"> & import("react").RefAttributes<HTMLDivElement>> & {
9
33
  Root: import("react").ForwardRefExoticComponent<Omit<DatePickerRootProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
10
34
  RootProvider: import("react").ForwardRefExoticComponent<Omit<DatePickerRootProviderProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
35
+ Context: (props: DatePicker.ContextProps) => import("react").ReactNode;
11
36
  Label: import("react").ForwardRefExoticComponent<Omit<DatePicker.LabelProps & import("react").RefAttributes<HTMLLabelElement>, "ref"> & import("react").RefAttributes<HTMLLabelElement>>;
12
37
  Control: import("react").ForwardRefExoticComponent<Omit<DatePicker.ControlProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
38
+ Field: import("react").ForwardRefExoticComponent<Omit<DatePickerFieldProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
39
+ RangeField: import("react").ForwardRefExoticComponent<Omit<DatePickerRangeFieldProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
13
40
  Input: import("react").ForwardRefExoticComponent<Omit<DatePicker.InputProps & import("react").RefAttributes<HTMLInputElement>, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
14
41
  Trigger: import("react").ForwardRefExoticComponent<Omit<DatePicker.TriggerProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
15
42
  ClearTrigger: import("react").ForwardRefExoticComponent<Omit<DatePicker.ClearTriggerProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
@@ -29,6 +56,7 @@ declare const DatePicker$1: import("react").ForwardRefExoticComponent<Omit<DateP
29
56
  TableHeader: import("react").ForwardRefExoticComponent<Omit<DatePicker.TableHeaderProps & import("react").RefAttributes<HTMLTableCellElement>, "ref"> & import("react").RefAttributes<HTMLTableCellElement>>;
30
57
  TableCell: import("react").ForwardRefExoticComponent<Omit<DatePicker.TableCellProps & import("react").RefAttributes<HTMLTableCellElement>, "ref"> & import("react").RefAttributes<HTMLTableCellElement>>;
31
58
  TableCellTrigger: import("react").ForwardRefExoticComponent<Omit<DatePicker.TableCellTriggerProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
59
+ DayTable: import("react").ForwardRefExoticComponent<Omit<DatePickerDayTableProps, "ref"> & import("react").RefAttributes<HTMLTableElement>>;
32
60
  WeekNumberHeaderCell: import("react").ForwardRefExoticComponent<Omit<DatePicker.WeekNumberHeaderCellProps & import("react").RefAttributes<HTMLTableCellElement>, "ref"> & import("react").RefAttributes<HTMLTableCellElement>>;
33
61
  WeekNumberCell: import("react").ForwardRefExoticComponent<Omit<DatePicker.WeekNumberCellProps & import("react").RefAttributes<HTMLTableCellElement>, "ref"> & import("react").RefAttributes<HTMLTableCellElement>>;
34
62
  MonthSelect: import("react").ForwardRefExoticComponent<Omit<DatePicker.MonthSelectProps & import("react").RefAttributes<HTMLSelectElement>, "ref"> & import("react").RefAttributes<HTMLSelectElement>>;
@@ -36,4 +64,4 @@ declare const DatePicker$1: import("react").ForwardRefExoticComponent<Omit<DateP
36
64
  PresetTrigger: import("react").ForwardRefExoticComponent<Omit<DatePicker.PresetTriggerProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
37
65
  };
38
66
  //#endregion
39
- export { DatePicker$1 as DatePicker, type DatePickerRootProps, type DatePickerRootProviderProps };
67
+ export { DatePicker$1 as DatePicker, type DatePickerDayTableProps, type DatePickerFieldProps, type DatePickerRangeFieldProps, type DatePickerRootProps, type DatePickerRootProviderProps, useDatePicker, useDatePickerContext };
@@ -1,11 +1,12 @@
1
- import { CalendarIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, CloseIcon } from "../../lib/moduix/icons/ui/Icons.js";
2
1
  import { normalizeClassName } from "../../lib/moduix/normalizeClassName.js";
2
+ import { CalendarIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } 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 DatePicker_module_default from "./DatePicker.module.js";
5
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
6
  import { clsx } from "clsx";
7
7
  import { forwardRef } from "react";
8
- import { DatePicker } from "@ark-ui/react/date-picker";
8
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
9
+ import { DatePicker, useDatePicker, useDatePickerContext } from "@ark-ui/react/date-picker";
9
10
  //#region src/components/date-picker/DatePicker.tsx
10
11
  const DatePickerRoot = forwardRef(function DatePickerRoot({ className, portalled, portalRef, ...props }, ref) {
11
12
  return /* @__PURE__ */ jsx(OverlayPortalProvider, {
@@ -47,6 +48,52 @@ const DatePickerControl = forwardRef(function DatePickerControl({ className, ...
47
48
  ...props
48
49
  });
49
50
  });
51
+ const DatePickerField = forwardRef(function DatePickerField({ clearLabel = "Clear date", clearTriggerProps, inputProps, placeholder = "Select date", triggerLabel = "Open calendar", triggerProps, ...props }, ref) {
52
+ return /* @__PURE__ */ jsxs(DatePickerControl, {
53
+ ref,
54
+ ...props,
55
+ children: [
56
+ /* @__PURE__ */ jsx(DatePickerInput, {
57
+ placeholder,
58
+ ...inputProps
59
+ }),
60
+ /* @__PURE__ */ jsx(DatePickerClearTrigger, {
61
+ "aria-label": clearLabel,
62
+ ...clearTriggerProps
63
+ }),
64
+ /* @__PURE__ */ jsx(DatePickerTrigger, {
65
+ "aria-label": triggerLabel,
66
+ ...triggerProps
67
+ })
68
+ ]
69
+ });
70
+ });
71
+ const DatePickerRangeField = forwardRef(function DatePickerRangeField({ clearLabel = "Clear date", clearTriggerProps, endInputProps, endPlaceholder = "End date", startInputProps, startPlaceholder = "Start date", triggerLabel = "Open calendar", triggerProps, ...props }, ref) {
72
+ return /* @__PURE__ */ jsxs(DatePickerControl, {
73
+ ref,
74
+ ...props,
75
+ children: [
76
+ /* @__PURE__ */ jsx(DatePickerInput, {
77
+ index: 0,
78
+ placeholder: startPlaceholder,
79
+ ...startInputProps
80
+ }),
81
+ /* @__PURE__ */ jsx(DatePickerInput, {
82
+ index: 1,
83
+ placeholder: endPlaceholder,
84
+ ...endInputProps
85
+ }),
86
+ /* @__PURE__ */ jsx(DatePickerClearTrigger, {
87
+ "aria-label": clearLabel,
88
+ ...clearTriggerProps
89
+ }),
90
+ /* @__PURE__ */ jsx(DatePickerTrigger, {
91
+ "aria-label": triggerLabel,
92
+ ...triggerProps
93
+ })
94
+ ]
95
+ });
96
+ });
50
97
  const DatePickerInput = forwardRef(function DatePickerInput({ className, ...props }, ref) {
51
98
  return /* @__PURE__ */ jsx(DatePicker.Input, {
52
99
  ref,
@@ -65,14 +112,29 @@ const DatePickerTrigger = forwardRef(function DatePickerTrigger({ asChild, class
65
112
  children: children ?? /* @__PURE__ */ jsx(CalendarIcon, {})
66
113
  });
67
114
  });
68
- const DatePickerClearTrigger = forwardRef(function DatePickerClearTrigger({ asChild, className, children, ...props }, ref) {
115
+ const DatePickerClearTrigger = forwardRef(function DatePickerClearTrigger({ asChild, className, children, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...props }, ref) {
116
+ const triggerClassName = clsx(DatePicker_module_default.clearTrigger, normalizeClassName(className));
117
+ if (asChild) return /* @__PURE__ */ jsx(DatePicker.ClearTrigger, {
118
+ ref,
119
+ asChild: true,
120
+ "data-slot": "date-picker-clear-trigger",
121
+ className: triggerClassName,
122
+ "aria-label": ariaLabel,
123
+ "aria-labelledby": ariaLabelledBy,
124
+ ...props,
125
+ children
126
+ });
69
127
  return /* @__PURE__ */ jsx(DatePicker.ClearTrigger, {
70
128
  ref,
129
+ asChild: true,
71
130
  "data-slot": "date-picker-clear-trigger",
72
- asChild,
73
- className: clsx(!asChild && DatePicker_module_default.trigger, DatePicker_module_default.clearTrigger, normalizeClassName(className)),
131
+ className: triggerClassName,
74
132
  ...props,
75
- children: children ?? /* @__PURE__ */ jsx(CloseIcon, {})
133
+ children: /* @__PURE__ */ jsx(CloseButton.Root, {
134
+ "aria-label": ariaLabel ?? (ariaLabelledBy == null ? "Clear date" : void 0),
135
+ "aria-labelledby": ariaLabelledBy,
136
+ children
137
+ })
76
138
  });
77
139
  });
78
140
  const DatePickerPositioner = forwardRef(function DatePickerPositioner({ className, ...props }, ref) {
@@ -142,7 +204,7 @@ const DatePickerViewTrigger = forwardRef(function DatePickerViewTrigger({ asChil
142
204
  asChild,
143
205
  className: clsx(!asChild && DatePicker_module_default.viewTrigger, normalizeClassName(className)),
144
206
  ...props,
145
- children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(DatePickerRangeText, {}), /* @__PURE__ */ jsx(ChevronDownIcon, {})] })
207
+ children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(DatePickerRangeText, {}), /* @__PURE__ */ jsx(ChevronDownIcon, {})] })
146
208
  });
147
209
  });
148
210
  const DatePickerTable = forwardRef(function DatePickerTable({ className, ...props }, ref) {
@@ -217,6 +279,25 @@ const DatePickerTableCellTrigger = forwardRef(function DatePickerTableCellTrigge
217
279
  ...props
218
280
  });
219
281
  });
282
+ const DatePickerDayTable = forwardRef(function DatePickerDayTable({ offset, showHeader = true, showWeekNumbers = false, ...props }, ref) {
283
+ return /* @__PURE__ */ jsx(DatePicker.Context, { children: (datePicker) => /* @__PURE__ */ jsxs(Fragment$1, { children: [showHeader ? /* @__PURE__ */ jsxs(DatePickerViewControl, { children: [
284
+ /* @__PURE__ */ jsx(DatePickerPrevTrigger, {}),
285
+ /* @__PURE__ */ jsx(DatePickerViewTrigger, {}),
286
+ /* @__PURE__ */ jsx(DatePickerNextTrigger, {})
287
+ ] }) : null, /* @__PURE__ */ jsxs(DatePickerTable, {
288
+ ref,
289
+ ...props,
290
+ children: [/* @__PURE__ */ jsx(DatePickerTableHead, { children: /* @__PURE__ */ jsxs(DatePickerTableRow, { children: [showWeekNumbers ? /* @__PURE__ */ jsx(DatePickerWeekNumberHeaderCell, {}) : null, datePicker.weekDays.map((weekDay) => /* @__PURE__ */ jsx(DatePickerTableHeader, { children: weekDay.short }, weekDay.value.toString()))] }) }), /* @__PURE__ */ jsx(DatePickerTableBody, { children: (offset?.weeks ?? datePicker.weeks).map((week, weekIndex) => /* @__PURE__ */ jsxs(DatePickerTableRow, { children: [showWeekNumbers ? /* @__PURE__ */ jsx(DatePickerWeekNumberCell, {
291
+ week,
292
+ weekIndex,
293
+ children: datePicker.getWeekNumber(week)
294
+ }) : null, week.map((day) => /* @__PURE__ */ jsx(DatePickerTableCell, {
295
+ value: day,
296
+ visibleRange: offset?.visibleRange,
297
+ children: /* @__PURE__ */ jsx(DatePickerTableCellTrigger, { children: day.day })
298
+ }, day.toString()))] }, week[0]?.toString())) })]
299
+ })] }) });
300
+ });
220
301
  const DatePickerMonthSelect = forwardRef(function DatePickerMonthSelect({ className, ...props }, ref) {
221
302
  return /* @__PURE__ */ jsx(DatePicker.MonthSelect, {
222
303
  ref,
@@ -253,8 +334,11 @@ const DatePickerValueText = forwardRef(function DatePickerValueText({ className,
253
334
  const DatePicker$1 = Object.assign(DatePickerRoot, {
254
335
  Root: DatePickerRoot,
255
336
  RootProvider: DatePickerRootProvider,
337
+ Context: DatePicker.Context,
256
338
  Label: DatePickerLabel,
257
339
  Control: DatePickerControl,
340
+ Field: DatePickerField,
341
+ RangeField: DatePickerRangeField,
258
342
  Input: DatePickerInput,
259
343
  Trigger: DatePickerTrigger,
260
344
  ClearTrigger: DatePickerClearTrigger,
@@ -274,6 +358,7 @@ const DatePicker$1 = Object.assign(DatePickerRoot, {
274
358
  TableHeader: DatePickerTableHeader,
275
359
  TableCell: DatePickerTableCell,
276
360
  TableCellTrigger: DatePickerTableCellTrigger,
361
+ DayTable: DatePickerDayTable,
277
362
  WeekNumberHeaderCell: DatePickerWeekNumberHeaderCell,
278
363
  WeekNumberCell: DatePickerWeekNumberCell,
279
364
  MonthSelect: DatePickerMonthSelect,
@@ -281,4 +366,4 @@ const DatePicker$1 = Object.assign(DatePickerRoot, {
281
366
  PresetTrigger: DatePickerPresetTrigger
282
367
  });
283
368
  //#endregion
284
- export { DatePicker$1 as DatePicker };
369
+ export { DatePicker$1 as DatePicker, useDatePicker, useDatePickerContext };
@@ -1,2 +1,2 @@
1
- import { DatePicker, DatePickerRootProps, DatePickerRootProviderProps } from "./DatePicker.js";
2
- export { DatePicker, type DatePickerRootProps, type DatePickerRootProviderProps };
1
+ import { DatePicker, DatePickerDayTableProps, DatePickerFieldProps, DatePickerRangeFieldProps, DatePickerRootProps, DatePickerRootProviderProps, useDatePicker, useDatePickerContext } from "./DatePicker.js";
2
+ export { DatePicker, type DatePickerDayTableProps, type DatePickerFieldProps, type DatePickerRangeFieldProps, type DatePickerRootProps, type DatePickerRootProviderProps, useDatePicker, useDatePickerContext };