@central-ui/react 0.0.0-stage → 0.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 (292) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +31 -2
  3. package/dist/components/accordion/index.d.ts +73 -0
  4. package/dist/components/accordion/index.d.ts.map +1 -0
  5. package/dist/components/accordion/index.js +92 -0
  6. package/dist/components/accordion/index.js.map +1 -0
  7. package/dist/components/autocomplete/index.d.ts +365 -0
  8. package/dist/components/autocomplete/index.d.ts.map +1 -0
  9. package/dist/components/autocomplete/index.js +369 -0
  10. package/dist/components/autocomplete/index.js.map +1 -0
  11. package/dist/components/avatar/index.d.ts +48 -0
  12. package/dist/components/avatar/index.d.ts.map +1 -0
  13. package/dist/components/avatar/index.js +60 -0
  14. package/dist/components/avatar/index.js.map +1 -0
  15. package/dist/components/badge/index.d.ts +29 -0
  16. package/dist/components/badge/index.d.ts.map +1 -0
  17. package/dist/components/badge/index.js +36 -0
  18. package/dist/components/badge/index.js.map +1 -0
  19. package/dist/components/banner/index.d.ts +71 -0
  20. package/dist/components/banner/index.d.ts.map +1 -0
  21. package/dist/components/banner/index.js +119 -0
  22. package/dist/components/banner/index.js.map +1 -0
  23. package/dist/components/breadcrumb/index.d.ts +31 -0
  24. package/dist/components/breadcrumb/index.d.ts.map +1 -0
  25. package/dist/components/breadcrumb/index.js +42 -0
  26. package/dist/components/breadcrumb/index.js.map +1 -0
  27. package/dist/components/button/index.d.ts +48 -0
  28. package/dist/components/button/index.d.ts.map +1 -0
  29. package/dist/components/button/index.js +60 -0
  30. package/dist/components/button/index.js.map +1 -0
  31. package/dist/components/card/index.d.ts +34 -0
  32. package/dist/components/card/index.d.ts.map +1 -0
  33. package/dist/components/card/index.js +45 -0
  34. package/dist/components/card/index.js.map +1 -0
  35. package/dist/components/checkbox/index.d.ts +66 -0
  36. package/dist/components/checkbox/index.d.ts.map +1 -0
  37. package/dist/components/checkbox/index.js +146 -0
  38. package/dist/components/checkbox/index.js.map +1 -0
  39. package/dist/components/chip/index.d.ts +26 -0
  40. package/dist/components/chip/index.d.ts.map +1 -0
  41. package/dist/components/chip/index.js +40 -0
  42. package/dist/components/chip/index.js.map +1 -0
  43. package/dist/components/combobox/index.d.ts +427 -0
  44. package/dist/components/combobox/index.d.ts.map +1 -0
  45. package/dist/components/combobox/index.js +416 -0
  46. package/dist/components/combobox/index.js.map +1 -0
  47. package/dist/components/datepicker/index.d.ts +297 -0
  48. package/dist/components/datepicker/index.d.ts.map +1 -0
  49. package/dist/components/datepicker/index.js +507 -0
  50. package/dist/components/datepicker/index.js.map +1 -0
  51. package/dist/components/dialog/index.d.ts +88 -0
  52. package/dist/components/dialog/index.d.ts.map +1 -0
  53. package/dist/components/dialog/index.js +102 -0
  54. package/dist/components/dialog/index.js.map +1 -0
  55. package/dist/components/divider/index.d.ts +21 -0
  56. package/dist/components/divider/index.d.ts.map +1 -0
  57. package/dist/components/divider/index.js +24 -0
  58. package/dist/components/divider/index.js.map +1 -0
  59. package/dist/components/drawer/index.d.ts +99 -0
  60. package/dist/components/drawer/index.d.ts.map +1 -0
  61. package/dist/components/drawer/index.js +137 -0
  62. package/dist/components/drawer/index.js.map +1 -0
  63. package/dist/components/empty/index.d.ts +40 -0
  64. package/dist/components/empty/index.d.ts.map +1 -0
  65. package/dist/components/empty/index.js +61 -0
  66. package/dist/components/empty/index.js.map +1 -0
  67. package/dist/components/fileupload/index.d.ts +107 -0
  68. package/dist/components/fileupload/index.d.ts.map +1 -0
  69. package/dist/components/fileupload/index.js +185 -0
  70. package/dist/components/fileupload/index.js.map +1 -0
  71. package/dist/components/form/index.d.ts +34 -0
  72. package/dist/components/form/index.d.ts.map +1 -0
  73. package/dist/components/form/index.js +35 -0
  74. package/dist/components/form/index.js.map +1 -0
  75. package/dist/components/input/index.d.ts +85 -0
  76. package/dist/components/input/index.d.ts.map +1 -0
  77. package/dist/components/input/index.js +249 -0
  78. package/dist/components/input/index.js.map +1 -0
  79. package/dist/components/menu/index.d.ts +115 -0
  80. package/dist/components/menu/index.d.ts.map +1 -0
  81. package/dist/components/menu/index.js +188 -0
  82. package/dist/components/menu/index.js.map +1 -0
  83. package/dist/components/metric/index.d.ts +24 -0
  84. package/dist/components/metric/index.d.ts.map +1 -0
  85. package/dist/components/metric/index.js +26 -0
  86. package/dist/components/metric/index.js.map +1 -0
  87. package/dist/components/numberinput/index.d.ts +105 -0
  88. package/dist/components/numberinput/index.d.ts.map +1 -0
  89. package/dist/components/numberinput/index.js +240 -0
  90. package/dist/components/numberinput/index.js.map +1 -0
  91. package/dist/components/otpinput/index.d.ts +63 -0
  92. package/dist/components/otpinput/index.d.ts.map +1 -0
  93. package/dist/components/otpinput/index.js +133 -0
  94. package/dist/components/otpinput/index.js.map +1 -0
  95. package/dist/components/page/index.d.ts +54 -0
  96. package/dist/components/page/index.d.ts.map +1 -0
  97. package/dist/components/page/index.js +100 -0
  98. package/dist/components/page/index.js.map +1 -0
  99. package/dist/components/passwordinput/index.d.ts +88 -0
  100. package/dist/components/passwordinput/index.d.ts.map +1 -0
  101. package/dist/components/passwordinput/index.js +251 -0
  102. package/dist/components/passwordinput/index.js.map +1 -0
  103. package/dist/components/popover/index.d.ts +67 -0
  104. package/dist/components/popover/index.d.ts.map +1 -0
  105. package/dist/components/popover/index.js +76 -0
  106. package/dist/components/popover/index.js.map +1 -0
  107. package/dist/components/radio/index.d.ts +90 -0
  108. package/dist/components/radio/index.d.ts.map +1 -0
  109. package/dist/components/radio/index.js +232 -0
  110. package/dist/components/radio/index.js.map +1 -0
  111. package/dist/components/ratinginput/index.d.ts +59 -0
  112. package/dist/components/ratinginput/index.d.ts.map +1 -0
  113. package/dist/components/ratinginput/index.js +88 -0
  114. package/dist/components/ratinginput/index.js.map +1 -0
  115. package/dist/components/select/index.d.ts +205 -0
  116. package/dist/components/select/index.d.ts.map +1 -0
  117. package/dist/components/select/index.js +234 -0
  118. package/dist/components/select/index.js.map +1 -0
  119. package/dist/components/skeleton/index.d.ts +19 -0
  120. package/dist/components/skeleton/index.d.ts.map +1 -0
  121. package/dist/components/skeleton/index.js +20 -0
  122. package/dist/components/skeleton/index.js.map +1 -0
  123. package/dist/components/slider/index.d.ts +72 -0
  124. package/dist/components/slider/index.d.ts.map +1 -0
  125. package/dist/components/slider/index.js +159 -0
  126. package/dist/components/slider/index.js.map +1 -0
  127. package/dist/components/spinner/index.d.ts +14 -0
  128. package/dist/components/spinner/index.d.ts.map +1 -0
  129. package/dist/components/spinner/index.js +15 -0
  130. package/dist/components/spinner/index.js.map +1 -0
  131. package/dist/components/splitter/index.d.ts +49 -0
  132. package/dist/components/splitter/index.d.ts.map +1 -0
  133. package/dist/components/splitter/index.js +67 -0
  134. package/dist/components/splitter/index.js.map +1 -0
  135. package/dist/components/stepper/index.d.ts +82 -0
  136. package/dist/components/stepper/index.d.ts.map +1 -0
  137. package/dist/components/stepper/index.js +100 -0
  138. package/dist/components/stepper/index.js.map +1 -0
  139. package/dist/components/switch/index.d.ts +57 -0
  140. package/dist/components/switch/index.d.ts.map +1 -0
  141. package/dist/components/switch/index.js +101 -0
  142. package/dist/components/switch/index.js.map +1 -0
  143. package/dist/components/table/index.d.ts +110 -0
  144. package/dist/components/table/index.d.ts.map +1 -0
  145. package/dist/components/table/index.js +211 -0
  146. package/dist/components/table/index.js.map +1 -0
  147. package/dist/components/tabs/index.d.ts +67 -0
  148. package/dist/components/tabs/index.d.ts.map +1 -0
  149. package/dist/components/tabs/index.js +78 -0
  150. package/dist/components/tabs/index.js.map +1 -0
  151. package/dist/components/textarea/index.d.ts +72 -0
  152. package/dist/components/textarea/index.d.ts.map +1 -0
  153. package/dist/components/textarea/index.js +205 -0
  154. package/dist/components/textarea/index.js.map +1 -0
  155. package/dist/components/textlink/index.d.ts +39 -0
  156. package/dist/components/textlink/index.d.ts.map +1 -0
  157. package/dist/components/textlink/index.js +42 -0
  158. package/dist/components/textlink/index.js.map +1 -0
  159. package/dist/components/toast/index.d.ts +111 -0
  160. package/dist/components/toast/index.d.ts.map +1 -0
  161. package/dist/components/toast/index.js +205 -0
  162. package/dist/components/toast/index.js.map +1 -0
  163. package/dist/components/toggle/index.d.ts +41 -0
  164. package/dist/components/toggle/index.d.ts.map +1 -0
  165. package/dist/components/toggle/index.js +78 -0
  166. package/dist/components/toggle/index.js.map +1 -0
  167. package/dist/components/tooltip/index.d.ts +44 -0
  168. package/dist/components/tooltip/index.d.ts.map +1 -0
  169. package/dist/components/tooltip/index.js +51 -0
  170. package/dist/components/tooltip/index.js.map +1 -0
  171. package/dist/index.d.ts +50 -0
  172. package/dist/index.d.ts.map +1 -0
  173. package/dist/index.js +46 -0
  174. package/dist/index.js.map +1 -0
  175. package/dist/types/Style.d.ts +14 -0
  176. package/dist/types/Style.d.ts.map +1 -0
  177. package/dist/types/Style.js +2 -0
  178. package/dist/types/Style.js.map +1 -0
  179. package/dist/types/Tone.d.ts +4 -0
  180. package/dist/types/Tone.d.ts.map +1 -0
  181. package/dist/types/Tone.js +2 -0
  182. package/dist/types/Tone.js.map +1 -0
  183. package/dist/utils/ArkStateToDataAttributes.d.ts +4 -0
  184. package/dist/utils/ArkStateToDataAttributes.d.ts.map +1 -0
  185. package/dist/utils/ArkStateToDataAttributes.js +9 -0
  186. package/dist/utils/ArkStateToDataAttributes.js.map +1 -0
  187. package/dist/utils/Tone.d.ts +3 -0
  188. package/dist/utils/Tone.d.ts.map +1 -0
  189. package/dist/utils/Tone.js +7 -0
  190. package/dist/utils/Tone.js.map +1 -0
  191. package/dist/utils/useForwardClickToInput.d.ts +4 -0
  192. package/dist/utils/useForwardClickToInput.d.ts.map +1 -0
  193. package/dist/utils/useForwardClickToInput.js +27 -0
  194. package/dist/utils/useForwardClickToInput.js.map +1 -0
  195. package/dist/utils/virtualization/useVirtualizedAutocomplete.d.ts +198 -0
  196. package/dist/utils/virtualization/useVirtualizedAutocomplete.d.ts.map +1 -0
  197. package/dist/utils/virtualization/useVirtualizedAutocomplete.js +180 -0
  198. package/dist/utils/virtualization/useVirtualizedAutocomplete.js.map +1 -0
  199. package/dist/utils/virtualization/useVirtualizedCombobox.d.ts +200 -0
  200. package/dist/utils/virtualization/useVirtualizedCombobox.d.ts.map +1 -0
  201. package/dist/utils/virtualization/useVirtualizedCombobox.js +174 -0
  202. package/dist/utils/virtualization/useVirtualizedCombobox.js.map +1 -0
  203. package/dist/utils/virtualization/useVirtualizedTable.d.ts +169 -0
  204. package/dist/utils/virtualization/useVirtualizedTable.d.ts.map +1 -0
  205. package/dist/utils/virtualization/useVirtualizedTable.js +127 -0
  206. package/dist/utils/virtualization/useVirtualizedTable.js.map +1 -0
  207. package/package.json +64 -4
  208. package/src/presets/shopify-polaris/shopify-polaris-accordion.css +28 -0
  209. package/src/presets/shopify-polaris/shopify-polaris-autocomplete.css +155 -0
  210. package/src/presets/shopify-polaris/shopify-polaris-avatar.css +47 -0
  211. package/src/presets/shopify-polaris/shopify-polaris-badge.css +27 -0
  212. package/src/presets/shopify-polaris/shopify-polaris-banner.css +111 -0
  213. package/src/presets/shopify-polaris/shopify-polaris-breadcrumb.css +16 -0
  214. package/src/presets/shopify-polaris/shopify-polaris-button.css +79 -0
  215. package/src/presets/shopify-polaris/shopify-polaris-card.css +28 -0
  216. package/src/presets/shopify-polaris/shopify-polaris-checkbox.css +52 -0
  217. package/src/presets/shopify-polaris/shopify-polaris-chip.css +16 -0
  218. package/src/presets/shopify-polaris/shopify-polaris-combobox.css +179 -0
  219. package/src/presets/shopify-polaris/shopify-polaris-datepicker.css +183 -0
  220. package/src/presets/shopify-polaris/shopify-polaris-dialog.css +40 -0
  221. package/src/presets/shopify-polaris/shopify-polaris-divider.css +12 -0
  222. package/src/presets/shopify-polaris/shopify-polaris-drawer.css +40 -0
  223. package/src/presets/shopify-polaris/shopify-polaris-empty.css +32 -0
  224. package/src/presets/shopify-polaris/shopify-polaris-fileupload.css +78 -0
  225. package/src/presets/shopify-polaris/shopify-polaris-form.css +8 -0
  226. package/src/presets/shopify-polaris/shopify-polaris-input.css +72 -0
  227. package/src/presets/shopify-polaris/shopify-polaris-menu.css +112 -0
  228. package/src/presets/shopify-polaris/shopify-polaris-metric.css +16 -0
  229. package/src/presets/shopify-polaris/shopify-polaris-numberinput.css +88 -0
  230. package/src/presets/shopify-polaris/shopify-polaris-otpinput.css +42 -0
  231. package/src/presets/shopify-polaris/shopify-polaris-page.css +69 -0
  232. package/src/presets/shopify-polaris/shopify-polaris-passwordinput.css +76 -0
  233. package/src/presets/shopify-polaris/shopify-polaris-popover.css +47 -0
  234. package/src/presets/shopify-polaris/shopify-polaris-radio.css +54 -0
  235. package/src/presets/shopify-polaris/shopify-polaris-ratinginput.css +42 -0
  236. package/src/presets/shopify-polaris/shopify-polaris-select.css +119 -0
  237. package/src/presets/shopify-polaris/shopify-polaris-skeleton.css +8 -0
  238. package/src/presets/shopify-polaris/shopify-polaris-slider.css +86 -0
  239. package/src/presets/shopify-polaris/shopify-polaris-spinner.css +16 -0
  240. package/src/presets/shopify-polaris/shopify-polaris-splitter.css +34 -0
  241. package/src/presets/shopify-polaris/shopify-polaris-stepper.css +55 -0
  242. package/src/presets/shopify-polaris/shopify-polaris-switch.css +38 -0
  243. package/src/presets/shopify-polaris/shopify-polaris-table.css +72 -0
  244. package/src/presets/shopify-polaris/shopify-polaris-tabs.css +33 -0
  245. package/src/presets/shopify-polaris/shopify-polaris-textarea.css +61 -0
  246. package/src/presets/shopify-polaris/shopify-polaris-textlink.css +8 -0
  247. package/src/presets/shopify-polaris/shopify-polaris-toggle.css +52 -0
  248. package/src/presets/shopify-polaris/shopify-polaris-tooltip.css +31 -0
  249. package/src/presets/shopify-polaris/shopify-polaris.css +380 -0
  250. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-accordion.css +28 -0
  251. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-autocomplete.css +155 -0
  252. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-avatar.css +47 -0
  253. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-badge.css +27 -0
  254. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-banner.css +96 -0
  255. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-breadcrumb.css +16 -0
  256. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-button.css +68 -0
  257. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-card.css +28 -0
  258. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-checkbox.css +52 -0
  259. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-chip.css +16 -0
  260. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-combobox.css +184 -0
  261. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-datepicker.css +187 -0
  262. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-dialog.css +40 -0
  263. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-divider.css +12 -0
  264. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-drawer.css +40 -0
  265. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-empty.css +32 -0
  266. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-fileupload.css +72 -0
  267. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-form.css +8 -0
  268. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-input.css +72 -0
  269. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-menu.css +112 -0
  270. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-metric.css +16 -0
  271. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-numberinput.css +88 -0
  272. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-otpinput.css +42 -0
  273. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-page.css +69 -0
  274. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-passwordinput.css +76 -0
  275. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-popover.css +47 -0
  276. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-radio.css +54 -0
  277. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-ratinginput.css +42 -0
  278. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-select.css +118 -0
  279. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-skeleton.css +8 -0
  280. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-slider.css +86 -0
  281. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-spinner.css +16 -0
  282. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-splitter.css +34 -0
  283. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-stepper.css +55 -0
  284. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-switch.css +38 -0
  285. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-table.css +72 -0
  286. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-tabs.css +33 -0
  287. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-textarea.css +61 -0
  288. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-textlink.css +8 -0
  289. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-toast.css +43 -0
  290. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-toggle.css +52 -0
  291. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy-tooltip.css +31 -0
  292. package/src/presets/shopify-polaris-legacy/shopify-polaris-legacy.css +381 -0
@@ -0,0 +1,507 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { DatePicker as AriaDatePicker, DateRangePicker as AriaDateRangePicker, RangeCalendar as AriaRangeCalendar, DateRangePickerStateContext, RangeCalendarStateContext, Label as AriaLabel, Group as AriaGroup, DateInput as AriaDateInput, DateSegment as AriaDateSegment, Button as AriaButton, Popover as AriaPopover, Calendar as AriaCalendar, Heading, CalendarGrid, CalendarGridHeader, CalendarHeaderCell, CalendarGridBody, CalendarCell, ListBox, ListBoxItem, SelectionIndicatorContext, useSlottedContext, Text, FieldError, I18nProvider, DatePickerStateContext, CalendarStateContext, DateFieldStateContext, DialogContext, useContextProps, } from 'react-aria-components';
3
+ import { parseDate, toCalendarDate, toCalendar, GregorianCalendar, } from '@internationalized/date';
4
+ import { useLocale, useDateFormatter, mergeProps } from 'react-aria';
5
+ import { cloneElement, createContext, forwardRef, useContext, Fragment, useState, useMemo, } from 'react';
6
+ import { CalendarDays, Check, ChevronLeft, ChevronRight, LoaderCircle, } from 'lucide-react';
7
+ import { twMerge } from 'tailwind-merge';
8
+ import { ToneProvider, useToneContext } from "../../utils/Tone.js";
9
+ const SinglePicker = forwardRef(function SinglePicker({ mode, locale, tone, presets, value, defaultValue, minValue, maxValue, placeholderValue, onValueChange, disabled, readOnly, required, invalid, open, isDateUnavailable, ...props }, ref) {
10
+ return (_jsx(AriaDatePicker, { ...props, isDisabled: disabled, isReadOnly: readOnly, isRequired: required, isInvalid: invalid, isOpen: open, ref: ref, style: { display: 'contents' }, granularity: "day", value: parseDateString(value), defaultValue: parseDateString(defaultValue), minValue: parseDateString(minValue), maxValue: parseDateString(maxValue), placeholderValue: parseDateString(placeholderValue), onChange: (date) => onValueChange?.(date ? toGregorianDateString(date) : null), isDateUnavailable: isDateUnavailable &&
11
+ ((date) => isDateUnavailable(toGregorianDateString(date))) }));
12
+ });
13
+ const RangePicker = forwardRef(function RangePicker({ mode, locale, tone, presets, value, defaultValue, minValue, maxValue, placeholderValue, onValueChange, disabled, readOnly, required, invalid, open, isDateUnavailable, ...props }, ref) {
14
+ return (_jsx(AriaDateRangePicker, { ...props, isDisabled: disabled, isReadOnly: readOnly, isRequired: required, isInvalid: invalid, isOpen: open, ref: ref, style: { display: 'contents' }, granularity: "day", value: parseDateRange(value), defaultValue: parseDateRange(defaultValue), minValue: parseDateString(minValue), maxValue: parseDateString(maxValue), placeholderValue: parseDateString(placeholderValue), onChange: (range) => onValueChange?.(range
15
+ ? {
16
+ start: toGregorianDateString(range.start),
17
+ end: toGregorianDateString(range.end),
18
+ }
19
+ : null), isDateUnavailable: isDateUnavailable &&
20
+ ((date, anchor) => isDateUnavailable(toGregorianDateString(date), anchor ? toGregorianDateString(anchor) : null)) }));
21
+ });
22
+ function Picker({ pickerRef, ...props }) {
23
+ if (props.mode === 'range')
24
+ return _jsx(RangePicker, { ...props, ref: pickerRef });
25
+ return _jsx(SinglePicker, { ...props, ref: pickerRef });
26
+ }
27
+ // Both native roots and the button-only Group stay in the DOM without layout boxes.
28
+ /**
29
+ * Choose one trigger composition: editable InputGroup with segmented inputs and AddonOpenButton, OR OpenButton containing OpenButtonValue and OpenButtonIcon. Do not render both trigger compositions. Both share Popup → Calendar → Actions and TablesList → Table. PresetsList is optional.
30
+ *
31
+ * @example Complete composition
32
+ * import { DatePicker } from '@central-ui/react'
33
+ *
34
+ * function Example() {
35
+ * return (
36
+ * <DatePicker.Root defaultValue="2026-10-15" name="departure">
37
+ * <DatePicker.Container>
38
+ * <DatePicker.Label>Departure</DatePicker.Label>
39
+ * <DatePicker.InputGroup>
40
+ * <DatePicker.Input>
41
+ * {(segment) => <DatePicker.Segment segment={segment} />}
42
+ * </DatePicker.Input>
43
+ * <DatePicker.Addon>
44
+ * <DatePicker.AddonOpenButton>
45
+ * <DatePicker.AddonOpenButtonIcon />
46
+ * </DatePicker.AddonOpenButton>
47
+ * </DatePicker.Addon>
48
+ * </DatePicker.InputGroup>
49
+ * <DatePicker.Popup>
50
+ * <DatePicker.Calendar>
51
+ * <DatePicker.Actions>
52
+ * <DatePicker.PreviousButton>
53
+ * <DatePicker.PreviousButtonIcon />
54
+ * </DatePicker.PreviousButton>
55
+ * <DatePicker.ViewDateValue />
56
+ * <DatePicker.NextButton>
57
+ * <DatePicker.NextButtonIcon />
58
+ * </DatePicker.NextButton>
59
+ * </DatePicker.Actions>
60
+ * <DatePicker.TablesList>
61
+ * {(index) => <DatePicker.Table key={index} index={index} />}
62
+ * </DatePicker.TablesList>
63
+ * </DatePicker.Calendar>
64
+ * </DatePicker.Popup>
65
+ * </DatePicker.Container>
66
+ * </DatePicker.Root>
67
+ * )
68
+ * }
69
+ *
70
+ * @example Button-only trigger instead of editable inputs
71
+ * // Replace InputGroup entirely. Keep the same Popup and calendar nesting from above.
72
+ * ;<DatePicker.OpenButton>
73
+ * <DatePicker.OpenButtonValue />
74
+ * <DatePicker.OpenButtonIcon />
75
+ * </DatePicker.OpenButton>
76
+ *
77
+ * @example Editable date range instead of a single date
78
+ * // Use Root mode="range". Replace its single Input with these fields inside InputGroup.
79
+ * ;<DatePicker.InputsList>
80
+ * <DatePicker.Input target="start">
81
+ * {(segment) => <DatePicker.Segment segment={segment} />}
82
+ * </DatePicker.Input>
83
+ * <DatePicker.InputsListSeparator>to</DatePicker.InputsListSeparator>
84
+ * <DatePicker.Input target="end">
85
+ * {(segment) => <DatePicker.Segment segment={segment} />}
86
+ * </DatePicker.Input>
87
+ * </DatePicker.InputsList>
88
+ *
89
+ * @example Optional presets and multiple visible months
90
+ * // Supply presets on Root; put PresetsList before Actions inside Calendar.
91
+ * // Calendar visibleDuration={{ months: 2 }} makes TablesList produce two table indices.
92
+ * ;<DatePicker.PresetsList>
93
+ * {(presets) =>
94
+ * presets.map((preset) => (
95
+ * <DatePicker.Item key={preset.label} value={preset.value} textValue={preset.label}>
96
+ * <DatePicker.ItemText>{preset.label}</DatePicker.ItemText>
97
+ * <DatePicker.ItemIndicator />
98
+ * </DatePicker.Item>
99
+ * ))
100
+ * }
101
+ * </DatePicker.PresetsList>
102
+ */
103
+ export const Root = forwardRef(function Root(props, ref) {
104
+ const [buttonAnchor, setButtonAnchor] = useState(null);
105
+ const buttonAnchorRef = useMemo(() => ({ current: buttonAnchor }), [buttonAnchor]);
106
+ return (_jsx(I18nProvider, { locale: props.locale ?? 'en-US', children: _jsx(ToneProvider, { value: props.tone ?? 'neutral', children: _jsx(ConfigurationContext.Provider, { value: {
107
+ mode: props.mode ?? 'single',
108
+ presets: props.presets ?? [],
109
+ buttonAnchorRef,
110
+ setButtonAnchor,
111
+ disabled: props.disabled ?? false,
112
+ readOnly: props.readOnly ?? false,
113
+ }, children: _jsx(Picker, { ...props, pickerRef: ref }) }) }) }));
114
+ });
115
+ export function Container({ disableStyle, className, ...props }) {
116
+ return (_jsx("div", { ...props, ...usePartAttributes(), "data-component": "datepicker-container", "data-style-disabled": disableStyle ? '' : undefined, className: className }));
117
+ }
118
+ export function Label({ disableStyle, className, ...props }) {
119
+ return (_jsx(AriaLabel, { ...props, ...usePartAttributes(), "data-component": "datepicker-label", "data-style-disabled": disableStyle ? '' : undefined, className: className }));
120
+ }
121
+ export function InputGroup({ disableStyle, className, ...props }) {
122
+ return (_jsx(AriaGroup, { ...props, ...usePartAttributes(), "data-component": "datepicker-inputgroup", "data-style-disabled": disableStyle ? '' : undefined, className: className }));
123
+ }
124
+ export function Addon({ disableStyle, className, variant = 'normal', ...props }) {
125
+ return (_jsx("div", { ...props, ...usePartAttributes(), "data-variant": variant, "data-component": "datepicker-addon", "data-style-disabled": disableStyle ? '' : undefined, className: className }));
126
+ }
127
+ export function AddonText({ disableStyle, className, ...props }) {
128
+ return (_jsx("span", { ...props, ...usePartAttributes(), "data-component": "datepicker-addontext", "data-style-disabled": disableStyle ? '' : undefined, className: className }));
129
+ }
130
+ /** Supply the decorative icon as a child. Its classes are preserved; interaction belongs to the surrounding control. */
131
+ export function AddonIcon({ disableStyle, children, className, ...props }) {
132
+ return cloneElement(children, {
133
+ ...children.props,
134
+ ...props,
135
+ ...usePartAttributes(),
136
+ 'aria-hidden': true,
137
+ ...{
138
+ 'data-component': 'datepicker-addonicon',
139
+ 'data-style-disabled': disableStyle ? '' : undefined,
140
+ },
141
+ className: twMerge(children.props.className, className),
142
+ strokeWidth: props.strokeWidth ?? children.props.strokeWidth ?? 1.5,
143
+ });
144
+ }
145
+ /** A default icon is supplied. Omit children for the usual case; pass an icon only to replace that visual. */
146
+ export function AddonLoadingIcon({ disableStyle, children = _jsx(LoaderCircle, {}), className, ...props }) {
147
+ return cloneElement(children, {
148
+ ...children.props,
149
+ ...props,
150
+ ...usePartAttributes(),
151
+ 'aria-hidden': true,
152
+ ...{
153
+ 'data-component': 'datepicker-addonloadingicon',
154
+ 'data-style-disabled': disableStyle ? '' : undefined,
155
+ },
156
+ className: twMerge(children.props.className, className),
157
+ strokeWidth: props.strokeWidth ?? children.props.strokeWidth ?? 1.5,
158
+ });
159
+ }
160
+ export function AddonButton({ disableStyle, className, disabled, type = 'button', ...props }) {
161
+ const attributes = usePartAttributes();
162
+ return (_jsx("button", { ...props, ...attributes, type: type, disabled: disabled || attributes['data-disabled'] || attributes['data-readonly'], "data-component": "datepicker-addonbutton", "data-style-disabled": disableStyle ? '' : undefined, className: className }));
163
+ }
164
+ export function InputsList({ disableStyle, className, ...props }) {
165
+ return (_jsx("div", { ...props, "data-component": "datepicker-inputslist", "data-style-disabled": disableStyle ? '' : undefined, className: className }));
166
+ }
167
+ export function InputsListSeparator({ disableStyle, children = '-', className, ...props }) {
168
+ return (_jsx("span", { ...props, "aria-hidden": "true", "data-component": "datepicker-inputslistseparator", "data-style-disabled": disableStyle ? '' : undefined, className: className, children: children }));
169
+ }
170
+ export function Input({ disableStyle, target, className, ...props }) {
171
+ return (_jsx(AriaDateInput, { ...props, slot: target, "data-component": "datepicker-input", "data-style-disabled": disableStyle ? '' : undefined, "data-range-input": target ? '' : undefined, className: className }));
172
+ }
173
+ /** Pass the segment from Input children. Editing, focus movement, and placeholder content are handled automatically. */
174
+ export function Segment({ disableStyle, segment, className, ...props }) {
175
+ const field = useContext(DateFieldStateContext);
176
+ let text = segment.text;
177
+ if (segment.type === 'literal') {
178
+ const index = field.segments.indexOf(segment);
179
+ const previous = field.segments
180
+ .slice(0, index)
181
+ .map((part) => part.isEditable)
182
+ .lastIndexOf(true);
183
+ const next = field.segments.slice(index + 1).some((part) => part.isEditable);
184
+ // Literals may contain locale suffixes or invisible bidi controls. Emit one hyphen
185
+ // between editable segments, remove suffixes, and retain the direction controls.
186
+ const direction = text.replace(/[^\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/g, '');
187
+ text =
188
+ direction + (previous >= 0 && next && index === previous + 1 ? '-' : '');
189
+ }
190
+ return (_jsx(AriaDateSegment, { ...props, segment: segment, "data-component": "datepicker-segment", "data-style-disabled": disableStyle ? '' : undefined, className: className, children: text }));
191
+ }
192
+ export function AddonOpenButton({ disableStyle, className, isDisabled, ...props }) {
193
+ return (_jsx(AriaButton, { isDisabled: isDisabled || undefined, ...props, ...usePartAttributes(), "data-component": "datepicker-addonopenbutton", "data-style-disabled": disableStyle ? '' : undefined, className: className }));
194
+ }
195
+ /** A default icon is supplied. Omit children for the usual case; pass an icon only to replace that visual. */
196
+ export function AddonOpenButtonIcon({ disableStyle, children = _jsx(CalendarDays, {}), className, ...props }) {
197
+ return cloneElement(children, {
198
+ ...children.props,
199
+ ...props,
200
+ ...usePartAttributes(),
201
+ 'aria-hidden': true,
202
+ ...{
203
+ 'data-component': 'datepicker-addonopenbuttonicon',
204
+ 'data-style-disabled': disableStyle ? '' : undefined,
205
+ },
206
+ className: twMerge(children.props.className, className),
207
+ strokeWidth: props.strokeWidth ?? children.props.strokeWidth ?? 2,
208
+ });
209
+ }
210
+ /** Behavior only: give your child control this action. Style the child itself; this wrapper has no preset appearance or disableStyle prop. */
211
+ export function AddonOpenHandler({ children, isDisabled, ...props }) {
212
+ return (_jsx(AriaButton, { isDisabled: isDisabled || undefined, ...props, render: (buttonProps) => renderButtonChild(children, buttonProps) }));
213
+ }
214
+ export function OpenButton({ disableStyle, className, isDisabled, ...props }) {
215
+ const { setButtonAnchor } = useContext(ConfigurationContext);
216
+ return (_jsx(AriaGroup, { style: { display: 'contents' }, children: _jsx(AriaButton, { isDisabled: isDisabled || undefined, ...props, ref: setButtonAnchor, ...usePartAttributes(), "data-component": "datepicker-openbutton", "data-style-disabled": disableStyle ? '' : undefined, className: className }) }));
217
+ }
218
+ /** Behavior only: give your child control this action. Style the child itself; this wrapper has no preset appearance or disableStyle prop. */
219
+ export function OpenHandler({ children, isDisabled, ...props }) {
220
+ const { setButtonAnchor } = useContext(ConfigurationContext);
221
+ return (_jsx(AriaGroup, { style: { display: 'contents' }, children: _jsx(AriaButton, { isDisabled: isDisabled || undefined, ...props, ref: setButtonAnchor, render: (buttonProps) => renderButtonChild(children, buttonProps) }) }));
222
+ }
223
+ /** Formats the selected date or range automatically. Omit children for the usual display; supply children only to replace it. Placeholder appears before selection. */
224
+ export function OpenButtonValue({ disableStyle, children, placeholder = 'Select date', className, ...props }) {
225
+ const single = useContext(DatePickerStateContext);
226
+ const range = useContext(DateRangePickerStateContext);
227
+ const { mode } = useContext(ConfigurationContext);
228
+ const { locale } = useLocale();
229
+ return (_jsx("span", { ...props, ...usePartAttributes(), "data-component": "datepicker-openbuttonvalue", "data-style-disabled": disableStyle ? '' : undefined, className: className, children: children ??
230
+ (() => {
231
+ if (mode === 'range') {
232
+ if (!range?.value.start || !range.value.end)
233
+ return placeholder;
234
+ const formatted = range.formatValue(locale, {
235
+ day: 'numeric',
236
+ month: 'long',
237
+ year: 'numeric',
238
+ });
239
+ return formatted
240
+ ? formatted.start + ' — ' + formatted.end
241
+ : placeholder;
242
+ }
243
+ return single?.value
244
+ ? single.formatValue(locale, {
245
+ day: 'numeric',
246
+ month: 'long',
247
+ year: 'numeric',
248
+ })
249
+ : placeholder;
250
+ })() }));
251
+ }
252
+ /** A default icon is supplied. Omit children for the usual case; pass an icon only to replace that visual. */
253
+ export function OpenButtonIcon({ disableStyle, children = _jsx(CalendarDays, {}), className, ...props }) {
254
+ return cloneElement(children, {
255
+ ...children.props,
256
+ ...props,
257
+ 'aria-hidden': true,
258
+ ...{
259
+ 'data-component': 'datepicker-openbuttonicon',
260
+ 'data-style-disabled': disableStyle ? '' : undefined,
261
+ },
262
+ className: twMerge(children.props.className, className),
263
+ strokeWidth: props.strokeWidth ?? children.props.strokeWidth ?? 1.5,
264
+ });
265
+ }
266
+ /** Use the same calendar composition for both trigger choices. Opening and focus management are handled by the picker; do not add your own popup visibility condition. */
267
+ export const Popup = forwardRef(function Popup({ disableStyle, ...props }, ref) {
268
+ // The Popover supplies dialog semantics itself. Merge DatePicker's generated dialog
269
+ // id/labeling onto that same element instead of adding another Dialog wrapper.
270
+ const { buttonAnchorRef } = useContext(ConfigurationContext);
271
+ const [mergedProps, mergedRef] = useContextProps(props, ref, DialogContext);
272
+ const { className, style, placement = 'bottom end', offset = 5, ...rest } = mergedProps;
273
+ return (_jsx(AriaPopover, { ...(buttonAnchorRef?.current ? { triggerRef: buttonAnchorRef } : {}), ...rest, ref: mergedRef, placement: placement, offset: offset, style: { minWidth: 'var(--trigger-width)', ...style }, "data-component": "datepicker-popup", "data-style-disabled": disableStyle ? '' : undefined, className: className }));
274
+ });
275
+ function SingleCalendar({ disableStyle, className, focusedValue, defaultFocusedValue, onFocusChange, ...props }) {
276
+ return (_jsx(AriaCalendar, { ...props, firstDayOfWeek: "mon", pageBehavior: "single", focusedValue: parseDateString(focusedValue), defaultFocusedValue: parseDateString(defaultFocusedValue), onFocusChange: onFocusChange && ((date) => onFocusChange(toGregorianDateString(date))), "data-component": "datepicker-calendar", "data-style-disabled": disableStyle ? '' : undefined, className: className }));
277
+ }
278
+ function RangeCalendar({ disableStyle, className, focusedValue, defaultFocusedValue, onFocusChange, ...props }) {
279
+ return (_jsx(AriaRangeCalendar, { ...props, firstDayOfWeek: "mon", pageBehavior: "single", focusedValue: parseDateString(focusedValue), defaultFocusedValue: parseDateString(defaultFocusedValue), onFocusChange: onFocusChange && ((date) => onFocusChange(toGregorianDateString(date))), "data-component": "datepicker-calendar", "data-style-disabled": disableStyle ? '' : undefined, className: className }));
280
+ }
281
+ /** Chooses the single-date or range calendar from Root mode automatically. Keep Actions and TablesList inside; do not render separate calendars for each mode. */
282
+ export function Calendar(props) {
283
+ const { mode } = useContext(ConfigurationContext);
284
+ if (mode === 'range')
285
+ return _jsx(RangeCalendar, { ...props });
286
+ return _jsx(SingleCalendar, { ...props });
287
+ }
288
+ /** Optional shortcut list. Its children callback receives all presets from Root once; map them to Item. Item handles applying the chosen value. */
289
+ export function PresetsList({ disableStyle, className, children, ...props }) {
290
+ const { presets, mode } = useContext(ConfigurationContext);
291
+ const single = useContext(DatePickerStateContext);
292
+ const range = useContext(DateRangePickerStateContext);
293
+ const selectedValue = mode === 'range'
294
+ ? range?.value.start && range.value.end
295
+ ? {
296
+ start: toGregorianDateString(range.value.start),
297
+ end: toGregorianDateString(range.value.end),
298
+ }
299
+ : null
300
+ : single?.value
301
+ ? toGregorianDateString(single.value)
302
+ : null;
303
+ const selectedPreset = presets.find((preset) => samePresetValue(preset.value, selectedValue));
304
+ return (_jsx(ListBox, { "aria-label": "Presets", ...props, selectionMode: "single", disallowEmptySelection: true, selectedKeys: selectedPreset ? [selectedPreset.label] : [], onSelectionChange: (keys) => {
305
+ if (keys === 'all')
306
+ return;
307
+ const key = keys.values().next().value;
308
+ const preset = presets.find((preset) => preset.label === key);
309
+ if (!preset)
310
+ return;
311
+ if (typeof preset.value === 'string') {
312
+ single.setDateValue(parseDateString(preset.value));
313
+ }
314
+ else {
315
+ range.setDateRange(parseDateRange(preset.value));
316
+ }
317
+ }, "data-component": "datepicker-presetslist", "data-style-disabled": disableStyle ? '' : undefined, className: className, children: children(presets) }));
318
+ }
319
+ export function Item({ disableStyle, value, className, textValue, ...props }) {
320
+ const calendar = useActiveCalendarState();
321
+ const { presets } = useContext(ConfigurationContext);
322
+ const dates = typeof value === 'string'
323
+ ? [parseDateString(value)]
324
+ : [parseDateString(value.start), parseDateString(value.end)];
325
+ // Distinct presets may resolve to the same date (e.g. Today and First of this week).
326
+ // Their labels identify options; their date values still control the actual picker.
327
+ const label = textValue ??
328
+ presets.find((preset) => samePresetValue(preset.value, value))?.label;
329
+ return (_jsx(ListBoxItem, { ...props, id: label ??
330
+ (typeof value === 'string' ? value : value.start + '/' + value.end), textValue: label, isDisabled: calendar.isDisabled ||
331
+ calendar.isReadOnly ||
332
+ dates.some((date) => calendar.isInvalid(date) || calendar.isCellUnavailable(date)), "data-component": "datepicker-item", "data-style-disabled": disableStyle ? '' : undefined, className: className }));
333
+ }
334
+ export const ItemText = forwardRef(function ItemText({ disableStyle, className, ...props }, ref) {
335
+ return (_jsx(Text, { ...props, ref: ref, slot: "label", "data-component": "datepicker-itemtext", "data-style-disabled": disableStyle ? '' : undefined, className: className }));
336
+ });
337
+ /** Tracks the surrounding item state automatically. Keep it mounted; do not add your own visibility condition. Use the supplied default visual unless customization is needed. */
338
+ export const ItemIndicator = forwardRef(function ItemIndicator({ disableStyle, children, ...props }, ref) {
339
+ // ListBoxItem supplies this public Aria context, including for controlled selection.
340
+ // Read visibility directly so no measured div or shared-element animation is needed.
341
+ const selection = useSlottedContext(SelectionIndicatorContext);
342
+ if (!selection?.isSelected)
343
+ return null;
344
+ const iconProps = {
345
+ 'aria-hidden': true,
346
+ strokeWidth: 2,
347
+ ...props,
348
+ ref,
349
+ 'data-rac': '',
350
+ 'data-selected': true,
351
+ 'data-component': 'datepicker-itemindicator',
352
+ 'data-style-disabled': disableStyle ? '' : undefined,
353
+ };
354
+ return cloneElement(children ?? _jsx(Check, {}), iconProps);
355
+ });
356
+ export function Actions({ disableStyle, className, ...props }) {
357
+ return (_jsx("div", { ...props, "data-component": "datepicker-actions", "data-style-disabled": disableStyle ? '' : undefined, className: className }));
358
+ }
359
+ export function ViewDateValue({ disableStyle, className, level, ...props }) {
360
+ const calendar = useActiveCalendarState();
361
+ const formatter = useDateFormatter({
362
+ month: 'long',
363
+ year: 'numeric',
364
+ calendar: calendar.visibleRange.start.calendar.identifier,
365
+ timeZone: calendar.timeZone,
366
+ });
367
+ return (_jsx(Heading, { ...props, level: level, "data-component": "datepicker-viewdatevalue", "data-style-disabled": disableStyle ? '' : undefined, className: className, children: Array.from({ length: calendar.visibleDuration.months ?? 1 }, (_, index) => formatter.format(calendar.visibleRange.start
368
+ .add({ months: index })
369
+ .toDate(calendar.timeZone))).join(' - ') }));
370
+ }
371
+ export function PreviousButton({ disableStyle, className, isDisabled, ...props }) {
372
+ return (_jsx(AriaButton, { isDisabled: isDisabled || undefined, ...props, slot: "previous", "data-component": "datepicker-previousbutton", "data-style-disabled": disableStyle ? '' : undefined, className: className }));
373
+ }
374
+ export function NextButton({ disableStyle, className, isDisabled, ...props }) {
375
+ return (_jsx(AriaButton, { isDisabled: isDisabled || undefined, ...props, slot: "next", "data-component": "datepicker-nextbutton", "data-style-disabled": disableStyle ? '' : undefined, className: className }));
376
+ }
377
+ /** Behavior only: give your child control this action. Style the child itself; this wrapper has no preset appearance or disableStyle prop. */
378
+ export function PreviousHandler({ children, isDisabled, ...props }) {
379
+ return (_jsx(AriaButton, { isDisabled: isDisabled || undefined, ...props, slot: "previous", render: (buttonProps) => renderButtonChild(children, buttonProps) }));
380
+ }
381
+ /** Behavior only: give your child control this action. Style the child itself; this wrapper has no preset appearance or disableStyle prop. */
382
+ export function NextHandler({ children, isDisabled, ...props }) {
383
+ return (_jsx(AriaButton, { isDisabled: isDisabled || undefined, ...props, slot: "next", render: (buttonProps) => renderButtonChild(children, buttonProps) }));
384
+ }
385
+ /** A default icon is supplied. Omit children for the usual case; pass an icon only to replace that visual. */
386
+ export function PreviousButtonIcon({ disableStyle, children = _jsx(ChevronLeft, {}), className, ...props }) {
387
+ const calendar = useActiveCalendarState();
388
+ return cloneElement(children, {
389
+ ...children.props,
390
+ ...props,
391
+ 'aria-hidden': true,
392
+ ...{
393
+ 'data-disabled': calendar.isDisabled ||
394
+ calendar.isPreviousVisibleRangeInvalid() ||
395
+ undefined,
396
+ },
397
+ ...{
398
+ 'data-component': 'datepicker-previousbuttonicon',
399
+ 'data-style-disabled': disableStyle ? '' : undefined,
400
+ },
401
+ className: twMerge(children.props.className, className),
402
+ strokeWidth: props.strokeWidth ?? children.props.strokeWidth ?? 2,
403
+ });
404
+ }
405
+ /** A default icon is supplied. Omit children for the usual case; pass an icon only to replace that visual. */
406
+ export function NextButtonIcon({ disableStyle, children = _jsx(ChevronRight, {}), className, ...props }) {
407
+ const calendar = useActiveCalendarState();
408
+ return cloneElement(children, {
409
+ ...children.props,
410
+ ...props,
411
+ 'aria-hidden': true,
412
+ ...{
413
+ 'data-disabled': calendar.isDisabled ||
414
+ calendar.isNextVisibleRangeInvalid() ||
415
+ undefined,
416
+ },
417
+ ...{
418
+ 'data-component': 'datepicker-nextbuttonicon',
419
+ 'data-style-disabled': disableStyle ? '' : undefined,
420
+ },
421
+ className: twMerge(children.props.className, className),
422
+ strokeWidth: props.strokeWidth ?? children.props.strokeWidth ?? 2,
423
+ });
424
+ }
425
+ /** Calls children for each visible month. Pass its index to Table rather than manually calculating month offsets. */
426
+ export function TablesList({ disableStyle, className, children, ...props }) {
427
+ const calendar = useActiveCalendarState();
428
+ return (_jsx("div", { ...props, "data-component": "datepicker-tableslist", "data-style-disabled": disableStyle ? '' : undefined, className: className, children: Array.from({ length: calendar.visibleDuration.months ?? 1 }, (_, index) => (_jsx(Fragment, { children: children(index) }, index))) }));
429
+ }
430
+ /** Renders weekday headings and day cells automatically. Pass the index from TablesList; do not map individual dates yourself. */
431
+ export function Table({ disableStyle, index = 0, className, ...props }) {
432
+ const { mode } = useContext(ConfigurationContext);
433
+ return (_jsxs(CalendarGrid, { ...props, offset: { months: index }, "data-component": "datepicker-table", "data-style-disabled": disableStyle ? '' : undefined, className: className, children: [_jsx(CalendarGridHeader, { children: (day) => (_jsx(CalendarHeaderCell, { "data-component": "datepicker-table-1", children: day })) }), _jsx(CalendarGridBody, { children: (date) => (_jsx(CalendarCell, { date: date, "data-mode": mode, "data-component": "datepicker-table-2" })) })] }));
434
+ }
435
+ export function Description({ disableStyle, className, ...props }) {
436
+ return (_jsx(Text, { ...props, ...usePartAttributes(), slot: "description", "data-component": "datepicker-description", "data-style-disabled": disableStyle ? '' : undefined, className: className }));
437
+ }
438
+ /** Keep mounted to let the picker render its validation error automatically. Omit children for the native error text; override only for a custom message. */
439
+ export function Error({ disableStyle, className, ...props }) {
440
+ return (_jsx(FieldError, { ...props, ...usePartAttributes(), "data-component": "datepicker-error", "data-style-disabled": disableStyle ? '' : undefined, className: className }));
441
+ }
442
+ /** You decide when to show this feedback. Changing tone does not validate data or render the message for you. */
443
+ export function Success({ disableStyle, className, ...props }) {
444
+ return (_jsx(Text, { role: "status", ...props, ...usePartAttributes(), slot: "description", "data-component": "datepicker-success", "data-style-disabled": disableStyle ? '' : undefined, className: className }));
445
+ }
446
+ const ConfigurationContext = createContext({ mode: 'single', presets: [], disabled: false, readOnly: false });
447
+ function usePartAttributes() {
448
+ const single = useContext(DatePickerStateContext);
449
+ const range = useContext(DateRangePickerStateContext);
450
+ const configuration = useContext(ConfigurationContext);
451
+ const tone = useToneContext();
452
+ const state = configuration.mode === 'range' ? range : single;
453
+ return {
454
+ 'data-tone': tone,
455
+ 'data-disabled': configuration.disabled || undefined,
456
+ 'data-readonly': configuration.readOnly || undefined,
457
+ 'data-open': state.isOpen || undefined,
458
+ 'data-invalid': state.isInvalid || undefined,
459
+ };
460
+ }
461
+ function parseDateString(value) {
462
+ if (value == null)
463
+ return value;
464
+ if (value.length !== 10)
465
+ throw new globalThis.Error('DatePicker dates must use YYYY-MM-DD.');
466
+ return parseDate(value);
467
+ }
468
+ /** Returns a Gregorian YYYY-MM-DD string, without a time or time zone.
469
+ * Calendar interactions may produce dates in the locale's calendar system;
470
+ * normalize them so callbacks and preset comparisons use the same stored format.
471
+ */
472
+ function toGregorianDateString(date) {
473
+ return toCalendar(toCalendarDate(date), new GregorianCalendar()).toString();
474
+ }
475
+ /** Passes Aria's generated button behavior and ref to the supplied child.
476
+ * Merge events and classes, and keep the child's contents without another DOM element.
477
+ */
478
+ function renderButtonChild(child, buttonProps) {
479
+ return cloneElement(child, mergeProps(child.props, buttonProps, {
480
+ className: twMerge(buttonProps.className, child.props.className),
481
+ children: child.props.children,
482
+ }));
483
+ }
484
+ // Both hooks are always read; mode selects the context supplied by this Root.
485
+ function useActiveCalendarState() {
486
+ const single = useContext(CalendarStateContext);
487
+ const range = useContext(RangeCalendarStateContext);
488
+ const { mode } = useContext(ConfigurationContext);
489
+ return mode === 'range' ? range : single;
490
+ }
491
+ function samePresetValue(a, b) {
492
+ if (typeof a === 'string')
493
+ return a === b;
494
+ return (b !== null &&
495
+ typeof b !== 'string' &&
496
+ a.start === b.start &&
497
+ a.end === b.end);
498
+ }
499
+ function parseDateRange(value) {
500
+ if (value == null)
501
+ return value;
502
+ return {
503
+ start: parseDateString(value.start),
504
+ end: parseDateString(value.end),
505
+ };
506
+ }
507
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/datepicker/index.tsx"],"names":[],"mappings":"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"}