@strapi/design-system 0.0.0-599b75fb-test → 0.0.0-622b91ef

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 (565) hide show
  1. package/README.md +47 -0
  2. package/dist/Accordion/Accordion.cjs +4 -4
  3. package/dist/Accordion/Accordion.js +13 -71
  4. package/dist/Accordion/AccordionContent.cjs +1 -1
  5. package/dist/Accordion/AccordionContent.js +3 -16
  6. package/dist/Accordion/AccordionContext.cjs +1 -1
  7. package/dist/Accordion/AccordionGroup.cjs +4 -4
  8. package/dist/Accordion/AccordionGroup.js +19 -89
  9. package/dist/Accordion/AccordionToggle.cjs +3 -3
  10. package/dist/Accordion/AccordionToggle.js +11 -101
  11. package/dist/Accordion/index.cjs +1 -1
  12. package/dist/Accordion/utils.cjs +1 -1
  13. package/dist/Alert/Alert.cjs +23 -29
  14. package/dist/Alert/Alert.js +33 -111
  15. package/dist/Alert/index.cjs +1 -1
  16. package/dist/Alert/utils.cjs +1 -1
  17. package/dist/Alert/utils.js +14 -3
  18. package/dist/Avatar/Avatar.cjs +5 -5
  19. package/dist/Avatar/Avatar.js +12 -56
  20. package/dist/Avatar/AvatarGroup.cjs +3 -3
  21. package/dist/Avatar/constants.cjs +1 -1
  22. package/dist/Avatar/index.cjs +1 -1
  23. package/dist/Badge/Badge.cjs +2 -2
  24. package/dist/Badge/Badge.js +4 -33
  25. package/dist/Badge/index.cjs +1 -1
  26. package/dist/BaseButton/BaseButton.cjs +4 -4
  27. package/dist/BaseButton/BaseButton.js +15 -38
  28. package/dist/BaseButton/index.cjs +1 -1
  29. package/dist/BaseCheckbox/BaseCheckbox.cjs +4 -4
  30. package/dist/BaseCheckbox/BaseCheckbox.js +19 -62
  31. package/dist/BaseCheckbox/index.cjs +1 -1
  32. package/dist/BaseCheckbox/utils.cjs +1 -1
  33. package/dist/BaseLink/BaseLink.cjs +1 -3
  34. package/dist/BaseLink/BaseLink.js +2 -18
  35. package/dist/BaseLink/index.cjs +1 -1
  36. package/dist/BaseRadio/BaseRadio.cjs +2 -2
  37. package/dist/BaseRadio/BaseRadio.js +12 -38
  38. package/dist/BaseRadio/RadioGroup.cjs +1 -1
  39. package/dist/BaseRadio/RadioGroup.js +3 -25
  40. package/dist/BaseRadio/context.cjs +1 -1
  41. package/dist/BaseRadio/index.cjs +1 -1
  42. package/dist/BaseRadio/utils.cjs +1 -1
  43. package/dist/Box/Box.cjs +3 -3
  44. package/dist/Box/Box.js +47 -173
  45. package/dist/Box/index.cjs +1 -1
  46. package/dist/Breadcrumbs/Breadcrumbs.cjs +4 -4
  47. package/dist/Breadcrumbs/Breadcrumbs.js +10 -43
  48. package/dist/Breadcrumbs/index.cjs +1 -1
  49. package/dist/Button/Button.cjs +10 -5
  50. package/dist/Button/Button.js +27 -69
  51. package/dist/Button/constants.cjs +1 -1
  52. package/dist/Button/index.cjs +1 -1
  53. package/dist/Button/utils.cjs +1 -1
  54. package/dist/Card/Card.cjs +1 -1
  55. package/dist/Card/Card.js +5 -25
  56. package/dist/Card/CardAction.cjs +2 -2
  57. package/dist/Card/CardAsset.cjs +3 -3
  58. package/dist/Card/CardAsset.js +5 -25
  59. package/dist/Card/CardBadge.cjs +2 -2
  60. package/dist/Card/CardBadge.js +2 -8
  61. package/dist/Card/CardBody.cjs +1 -1
  62. package/dist/Card/CardBody.js +1 -10
  63. package/dist/Card/CardCheckbox.cjs +1 -1
  64. package/dist/Card/CardCheckbox.js +5 -10
  65. package/dist/Card/CardContent.cjs +2 -2
  66. package/dist/Card/CardContent.js +1 -7
  67. package/dist/Card/CardContext.cjs +1 -1
  68. package/dist/Card/CardContext.js +1 -3
  69. package/dist/Card/CardHeader.cjs +2 -2
  70. package/dist/Card/CardHeader.js +2 -8
  71. package/dist/Card/CardTimer.cjs +1 -1
  72. package/dist/Card/CardTimer.js +1 -19
  73. package/dist/Card/CardTitle.cjs +1 -1
  74. package/dist/Card/CardTitle.js +3 -17
  75. package/dist/Card/index.cjs +1 -1
  76. package/dist/CarouselInput/Carousel.cjs +6 -7
  77. package/dist/CarouselInput/Carousel.js +24 -69
  78. package/dist/CarouselInput/CarouselActions.cjs +1 -1
  79. package/dist/CarouselInput/CarouselActions.js +4 -16
  80. package/dist/CarouselInput/CarouselImage.cjs +3 -4
  81. package/dist/CarouselInput/CarouselImage.js +13 -22
  82. package/dist/CarouselInput/CarouselInput.cjs +1 -1
  83. package/dist/CarouselInput/CarouselInput.js +12 -72
  84. package/dist/CarouselInput/CarouselSlide.cjs +1 -3
  85. package/dist/CarouselInput/CarouselSlide.js +4 -28
  86. package/dist/CarouselInput/index.cjs +1 -1
  87. package/dist/Checkbox/Checkbox.cjs +2 -2
  88. package/dist/Checkbox/Checkbox.js +21 -38
  89. package/dist/Checkbox/index.cjs +1 -1
  90. package/dist/Combobox/Combobox.cjs +107 -1
  91. package/dist/Combobox/Combobox.js +168 -280
  92. package/dist/Combobox/ComboboxList.cjs +5 -1
  93. package/dist/Combobox/ComboboxList.js +8 -6
  94. package/dist/Combobox/ComboboxOption.cjs +1 -1
  95. package/dist/Combobox/ComboboxOption.js +3 -29
  96. package/dist/Combobox/index.cjs +1 -1
  97. package/dist/DatePicker/DatePicker.cjs +85 -5
  98. package/dist/DatePicker/DatePicker.js +423 -76
  99. package/dist/DatePicker/index.cjs +1 -1
  100. package/dist/DateTimePicker/DateTimePicker.cjs +7 -1
  101. package/dist/DateTimePicker/DateTimePicker.js +96 -103
  102. package/dist/DateTimePicker/index.cjs +1 -1
  103. package/dist/DateTimePicker/index.js +3 -2
  104. package/dist/DesignSystemProvider.cjs +1 -0
  105. package/dist/DesignSystemProvider.js +10 -0
  106. package/dist/Dialog/Dialog.cjs +4 -4
  107. package/dist/Dialog/Dialog.js +20 -45
  108. package/dist/Dialog/DialogBody.cjs +2 -2
  109. package/dist/Dialog/DialogBody.js +9 -18
  110. package/dist/Dialog/DialogFooter.cjs +2 -2
  111. package/dist/Dialog/DialogFooter.js +7 -17
  112. package/dist/Dialog/index.cjs +1 -1
  113. package/dist/DismissibleLayer/index.cjs +1 -1
  114. package/dist/DismissibleLayer/index.js +3 -2
  115. package/dist/Divider/Divider.cjs +2 -2
  116. package/dist/Divider/Divider.js +6 -15
  117. package/dist/Divider/index.cjs +1 -1
  118. package/dist/EmptyStateLayout/EmptyStateLayout.cjs +2 -7
  119. package/dist/EmptyStateLayout/EmptyStateLayout.js +8 -25
  120. package/dist/EmptyStateLayout/index.cjs +1 -1
  121. package/dist/EmptyStateLayout/story-assets/Illo.cjs +1 -1
  122. package/dist/EmptyStateLayout/story-assets/Illo.js +3 -62
  123. package/dist/Field/Field.cjs +1 -1
  124. package/dist/Field/Field.js +5 -26
  125. package/dist/Field/FieldAction.cjs +2 -2
  126. package/dist/Field/FieldAction.js +5 -20
  127. package/dist/Field/FieldContext.cjs +1 -1
  128. package/dist/Field/FieldError.cjs +1 -1
  129. package/dist/Field/FieldError.js +2 -12
  130. package/dist/Field/FieldHint.cjs +1 -1
  131. package/dist/Field/FieldHint.js +4 -14
  132. package/dist/Field/FieldInput.cjs +4 -4
  133. package/dist/Field/FieldInput.js +19 -86
  134. package/dist/Field/FieldLabel.cjs +4 -4
  135. package/dist/Field/FieldLabel.js +7 -32
  136. package/dist/Field/index.cjs +1 -1
  137. package/dist/Flex/Flex.cjs +4 -4
  138. package/dist/Flex/Flex.js +10 -25
  139. package/dist/Flex/index.cjs +1 -1
  140. package/dist/FocusTrap/FocusTrap.cjs +1 -1
  141. package/dist/FocusTrap/FocusTrap.js +14 -22
  142. package/dist/FocusTrap/index.cjs +1 -1
  143. package/dist/Grid/Grid.cjs +3 -3
  144. package/dist/Grid/Grid.js +10 -20
  145. package/dist/Grid/GridItem.cjs +2 -2
  146. package/dist/Grid/GridItem.js +10 -26
  147. package/dist/Grid/index.cjs +1 -1
  148. package/dist/Icon/Icon.cjs +3 -3
  149. package/dist/Icon/Icon.js +6 -21
  150. package/dist/Icon/index.cjs +1 -1
  151. package/dist/IconButton/IconButton.cjs +4 -4
  152. package/dist/IconButton/IconButton.js +34 -85
  153. package/dist/IconButton/index.cjs +1 -1
  154. package/dist/JSONInput/JSONInput.cjs +1 -1
  155. package/dist/JSONInput/JSONInput.js +11 -56
  156. package/dist/JSONInput/JSONInputContainer.cjs +3 -3
  157. package/dist/JSONInput/JSONInputContainer.js +7 -14
  158. package/dist/JSONInput/index.cjs +1 -1
  159. package/dist/JSONInput/utils/decorationExtension.cjs +1 -1
  160. package/dist/JSONInput/utils/decorationExtension.js +3 -0
  161. package/dist/KeyboardNavigable/KeyboardNavigable.cjs +1 -1
  162. package/dist/KeyboardNavigable/KeyboardNavigable.js +32 -39
  163. package/dist/KeyboardNavigable/index.cjs +1 -1
  164. package/dist/Layout/ActionLayout.cjs +1 -9
  165. package/dist/Layout/ActionLayout.js +4 -23
  166. package/dist/Layout/ContentLayout.cjs +1 -1
  167. package/dist/Layout/ContentLayout.js +3 -7
  168. package/dist/Layout/GridLayout.cjs +3 -3
  169. package/dist/Layout/GridLayout.js +4 -8
  170. package/dist/Layout/HeaderLayout.cjs +4 -3
  171. package/dist/Layout/HeaderLayout.js +25 -96
  172. package/dist/Layout/Layout.cjs +4 -4
  173. package/dist/Layout/Layout.js +8 -16
  174. package/dist/Layout/TwoColsLayout.cjs +1 -1
  175. package/dist/Layout/TwoColsLayout.js +6 -11
  176. package/dist/Layout/index.cjs +1 -1
  177. package/dist/Link/Link.cjs +4 -4
  178. package/dist/Link/Link.js +9 -53
  179. package/dist/Link/index.cjs +1 -1
  180. package/dist/LinkButton/LinkButton.cjs +2 -2
  181. package/dist/LinkButton/LinkButton.js +8 -51
  182. package/dist/LinkButton/index.cjs +1 -1
  183. package/dist/LiveRegions/LiveRegions.cjs +1 -1
  184. package/dist/LiveRegions/LiveRegions.js +1 -18
  185. package/dist/LiveRegions/constants.cjs +1 -1
  186. package/dist/LiveRegions/index.cjs +1 -1
  187. package/dist/LiveRegions/useNotifyAT.cjs +1 -1
  188. package/dist/Loader/Loader.cjs +2 -2
  189. package/dist/Loader/Loader.js +3 -22
  190. package/dist/Loader/index.cjs +1 -1
  191. package/dist/Main/Main.cjs +2 -2
  192. package/dist/Main/Main.js +6 -15
  193. package/dist/Main/SkipToContent.cjs +4 -7
  194. package/dist/Main/SkipToContent.js +5 -24
  195. package/dist/Main/index.cjs +1 -1
  196. package/dist/MainNav/MainNav.cjs +2 -2
  197. package/dist/MainNav/MainNav.js +9 -30
  198. package/dist/MainNav/MainNavContext.cjs +1 -1
  199. package/dist/MainNav/MainNavContext.js +1 -1
  200. package/dist/MainNav/NavBrand.cjs +3 -3
  201. package/dist/MainNav/NavBrand.js +14 -24
  202. package/dist/MainNav/NavCondense.cjs +2 -2
  203. package/dist/MainNav/NavCondense.js +10 -14
  204. package/dist/MainNav/NavFooter.cjs +1 -1
  205. package/dist/MainNav/NavFooter.js +4 -9
  206. package/dist/MainNav/NavLink.cjs +6 -6
  207. package/dist/MainNav/NavLink.js +39 -51
  208. package/dist/MainNav/NavSection.cjs +1 -1
  209. package/dist/MainNav/NavSection.js +9 -33
  210. package/dist/MainNav/NavSections.cjs +2 -2
  211. package/dist/MainNav/NavSections.js +8 -21
  212. package/dist/MainNav/NavUser.cjs +2 -2
  213. package/dist/MainNav/NavUser.js +14 -25
  214. package/dist/MainNav/index.cjs +1 -1
  215. package/dist/ModalLayout/ModalBody.cjs +2 -2
  216. package/dist/ModalLayout/ModalBody.js +6 -6
  217. package/dist/ModalLayout/ModalContext.cjs +1 -1
  218. package/dist/ModalLayout/ModalContext.js +2 -1
  219. package/dist/ModalLayout/ModalFooter.cjs +2 -6
  220. package/dist/ModalLayout/ModalFooter.js +8 -21
  221. package/dist/ModalLayout/ModalHeader.cjs +2 -2
  222. package/dist/ModalLayout/ModalHeader.js +13 -21
  223. package/dist/ModalLayout/ModalLayout.cjs +3 -5
  224. package/dist/ModalLayout/ModalLayout.js +12 -31
  225. package/dist/ModalLayout/index.cjs +1 -1
  226. package/dist/NumberInput/NumberInput.cjs +2 -2
  227. package/dist/NumberInput/NumberInput.js +69 -162
  228. package/dist/NumberInput/index.cjs +1 -1
  229. package/dist/Pagination/Pagination.cjs +1 -5
  230. package/dist/Pagination/Pagination.js +8 -21
  231. package/dist/Pagination/PaginationContext.cjs +1 -1
  232. package/dist/Pagination/components.cjs +10 -13
  233. package/dist/Pagination/components.js +33 -69
  234. package/dist/Pagination/index.cjs +1 -1
  235. package/dist/Popover/Popover.cjs +4 -5
  236. package/dist/Popover/Popover.js +105 -110
  237. package/dist/Popover/index.cjs +1 -1
  238. package/dist/Popover/index.js +5 -9
  239. package/dist/Popover/primitives.cjs +1 -0
  240. package/dist/Popover/primitives.js +5 -0
  241. package/dist/Portal/Portal.cjs +1 -1
  242. package/dist/Portal/Portal.js +7 -11
  243. package/dist/Portal/index.cjs +1 -1
  244. package/dist/ProgressBar/ProgressBar.cjs +5 -5
  245. package/dist/ProgressBar/ProgressBar.js +6 -36
  246. package/dist/ProgressBar/index.cjs +1 -1
  247. package/dist/Radio/Radio.cjs +1 -4
  248. package/dist/Radio/Radio.js +6 -15
  249. package/dist/Radio/index.cjs +1 -1
  250. package/dist/RawTable/RawCell.cjs +1 -1
  251. package/dist/RawTable/RawCell.js +6 -29
  252. package/dist/RawTable/RawTable.cjs +1 -1
  253. package/dist/RawTable/RawTable.js +4 -28
  254. package/dist/RawTable/RawTableContext.cjs +1 -1
  255. package/dist/RawTable/RawTbody.cjs +1 -1
  256. package/dist/RawTable/RawTbody.js +3 -11
  257. package/dist/RawTable/RawThead.cjs +1 -1
  258. package/dist/RawTable/RawThead.js +3 -11
  259. package/dist/RawTable/RawTr.cjs +1 -1
  260. package/dist/RawTable/RawTr.js +3 -13
  261. package/dist/RawTable/focusFocusable.cjs +1 -1
  262. package/dist/RawTable/index.cjs +1 -1
  263. package/dist/Searchbar/SearchForm.cjs +1 -1
  264. package/dist/Searchbar/SearchForm.js +3 -3
  265. package/dist/Searchbar/Searchbar.cjs +10 -11
  266. package/dist/Searchbar/Searchbar.js +31 -59
  267. package/dist/Searchbar/index.cjs +1 -1
  268. package/dist/Select/MultiSelect.cjs +30 -0
  269. package/dist/Select/MultiSelect.js +75 -0
  270. package/dist/Select/MultiSelectNested.cjs +3 -1
  271. package/dist/Select/MultiSelectNested.js +7 -12
  272. package/dist/Select/OptGroup.cjs +5 -1
  273. package/dist/Select/OptGroup.js +8 -22
  274. package/dist/Select/Option.cjs +5 -45
  275. package/dist/Select/Option.js +13 -99
  276. package/dist/Select/Select.cjs +6 -3
  277. package/dist/Select/Select.js +16 -206
  278. package/dist/Select/SelectList.cjs +5 -1
  279. package/dist/Select/SelectList.js +67 -69
  280. package/dist/Select/SelectParts.cjs +83 -0
  281. package/dist/Select/SelectParts.js +110 -0
  282. package/dist/Select/SingleSelect.cjs +1 -0
  283. package/dist/Select/SingleSelect.js +44 -0
  284. package/dist/Select/index.cjs +1 -1
  285. package/dist/Select/index.js +17 -10
  286. package/dist/SimpleMenu/SimpleMenu.cjs +9 -9
  287. package/dist/SimpleMenu/SimpleMenu.js +73 -143
  288. package/dist/SimpleMenu/index.cjs +1 -1
  289. package/dist/SimpleMenu/utils.cjs +1 -1
  290. package/dist/Stack/Stack.cjs +5 -5
  291. package/dist/Stack/Stack.js +7 -28
  292. package/dist/Stack/index.cjs +1 -1
  293. package/dist/Status/Status.cjs +7 -7
  294. package/dist/Status/Status.js +12 -38
  295. package/dist/Status/index.cjs +1 -1
  296. package/dist/SubNav/SubNav.cjs +5 -5
  297. package/dist/SubNav/SubNav.js +8 -13
  298. package/dist/SubNav/SubNavHeader.cjs +3 -3
  299. package/dist/SubNav/SubNavHeader.js +32 -69
  300. package/dist/SubNav/SubNavLink.cjs +13 -13
  301. package/dist/SubNav/SubNavLink.js +18 -44
  302. package/dist/SubNav/SubNavLinkSection.cjs +4 -4
  303. package/dist/SubNav/SubNavLinkSection.js +15 -24
  304. package/dist/SubNav/SubNavSection.cjs +2 -2
  305. package/dist/SubNav/SubNavSection.js +16 -49
  306. package/dist/SubNav/SubNavSectionLabel.cjs +3 -3
  307. package/dist/SubNav/SubNavSectionLabel.js +11 -36
  308. package/dist/SubNav/SubNavSections.cjs +1 -1
  309. package/dist/SubNav/SubNavSections.js +5 -18
  310. package/dist/SubNav/index.cjs +1 -1
  311. package/dist/Switch/Switch.cjs +3 -3
  312. package/dist/Switch/Switch.js +15 -44
  313. package/dist/Switch/index.cjs +1 -1
  314. package/dist/Table/Cell.cjs +3 -3
  315. package/dist/Table/Cell.js +9 -18
  316. package/dist/Table/TFooter.cjs +3 -3
  317. package/dist/Table/TFooter.js +11 -16
  318. package/dist/Table/Table.cjs +12 -12
  319. package/dist/Table/Table.js +16 -24
  320. package/dist/Table/Tbody.cjs +2 -2
  321. package/dist/Table/Tbody.js +6 -6
  322. package/dist/Table/Thead.cjs +2 -2
  323. package/dist/Table/Thead.js +6 -6
  324. package/dist/Table/Tr.cjs +2 -2
  325. package/dist/Table/Tr.js +6 -6
  326. package/dist/Table/index.cjs +1 -1
  327. package/dist/Tabs/TabGroup.cjs +1 -1
  328. package/dist/Tabs/TabGroup.js +13 -36
  329. package/dist/Tabs/TabPanels.cjs +1 -1
  330. package/dist/Tabs/TabPanels.js +11 -21
  331. package/dist/Tabs/Tabs.cjs +2 -2
  332. package/dist/Tabs/Tabs.js +56 -106
  333. package/dist/Tabs/TabsContext.cjs +1 -1
  334. package/dist/Tabs/TabsContext.js +11 -4
  335. package/dist/Tabs/components.cjs +17 -17
  336. package/dist/Tabs/index.cjs +1 -1
  337. package/dist/Tag/Tag.cjs +4 -4
  338. package/dist/Tag/Tag.js +6 -43
  339. package/dist/Tag/index.cjs +1 -1
  340. package/dist/TextButton/TextButton.cjs +6 -12
  341. package/dist/TextButton/TextButton.js +17 -60
  342. package/dist/TextButton/index.cjs +1 -1
  343. package/dist/TextInput/TextInput.cjs +1 -1
  344. package/dist/TextInput/TextInput.js +10 -41
  345. package/dist/TextInput/index.cjs +1 -1
  346. package/dist/Textarea/Textarea.cjs +14 -12
  347. package/dist/Textarea/Textarea.js +33 -52
  348. package/dist/Textarea/index.cjs +1 -1
  349. package/dist/ThemeProvider/ThemeProvider.cjs +2 -2
  350. package/dist/ThemeProvider/ThemeProvider.js +5 -12
  351. package/dist/ThemeProvider/hooks.cjs +1 -1
  352. package/dist/ThemeProvider/index.cjs +1 -1
  353. package/dist/TimePicker/TimePicker.cjs +5 -7
  354. package/dist/TimePicker/TimePicker.js +79 -53
  355. package/dist/TimePicker/index.cjs +1 -1
  356. package/dist/TimePicker/index.js +3 -2
  357. package/dist/ToggleCheckbox/ToggleCheckbox.cjs +8 -8
  358. package/dist/ToggleCheckbox/ToggleCheckbox.js +27 -122
  359. package/dist/ToggleCheckbox/index.cjs +1 -1
  360. package/dist/ToggleInput/ToggleInput.cjs +3 -3
  361. package/dist/ToggleInput/ToggleInput.js +15 -62
  362. package/dist/ToggleInput/index.cjs +1 -1
  363. package/dist/Tooltip/Tooltip.cjs +2 -2
  364. package/dist/Tooltip/Tooltip.js +9 -52
  365. package/dist/Tooltip/hooks/useTooltipHandlers.cjs +1 -1
  366. package/dist/Tooltip/hooks/useTooltipLayout.cjs +1 -1
  367. package/dist/Tooltip/index.cjs +1 -1
  368. package/dist/Tooltip/utils/positionTooltip.cjs +1 -1
  369. package/dist/Typography/Typography.cjs +2 -2
  370. package/dist/Typography/Typography.js +11 -26
  371. package/dist/Typography/constants.cjs +1 -1
  372. package/dist/Typography/index.cjs +1 -1
  373. package/dist/Typography/utils.cjs +9 -9
  374. package/dist/VisuallyHidden/VisuallyHidden.cjs +1 -1
  375. package/dist/VisuallyHidden/index.cjs +1 -1
  376. package/dist/helpers/context.cjs +1 -0
  377. package/dist/helpers/context.js +21 -0
  378. package/dist/helpers/deprecations.cjs +1 -1
  379. package/dist/helpers/getDefaultLocale.cjs +4 -1
  380. package/dist/helpers/getDefaultLocale.js +7 -2
  381. package/dist/helpers/getFocusableNodes.cjs +1 -1
  382. package/dist/helpers/keyboardKeys.cjs +1 -1
  383. package/dist/helpers/objects.cjs +1 -1
  384. package/dist/helpers/objects.js +6 -22
  385. package/dist/helpers/setOpacity.cjs +1 -1
  386. package/dist/helpers/setTabIndexOnFirstItem.cjs +1 -1
  387. package/dist/helpers/strings.cjs +1 -0
  388. package/dist/helpers/strings.js +4 -0
  389. package/dist/helpers/theme.cjs +1 -1
  390. package/dist/helpers/useElementOnScreen.cjs +4 -1
  391. package/dist/helpers/useElementOnScreen.js +6 -1
  392. package/dist/helpers/useId.cjs +4 -1
  393. package/dist/helpers/useId.js +6 -1
  394. package/dist/helpers/useIntersection.cjs +4 -1
  395. package/dist/helpers/useIntersection.js +6 -1
  396. package/dist/helpers/useLockScroll.cjs +4 -1
  397. package/dist/helpers/useLockScroll.js +6 -1
  398. package/dist/helpers/usePrevious.cjs +4 -1
  399. package/dist/helpers/usePrevious.js +6 -1
  400. package/dist/helpers/useResizeObserver.cjs +4 -1
  401. package/dist/helpers/useResizeObserver.js +6 -1
  402. package/dist/hooks/useComposeRefs.cjs +1 -0
  403. package/dist/hooks/useComposeRefs.js +14 -0
  404. package/dist/hooks/useControllableState.cjs +1 -1
  405. package/dist/hooks/useControllableState.js +7 -7
  406. package/dist/hooks/useDateFormatter.cjs +1 -0
  407. package/dist/hooks/useDateFormatter.js +20 -0
  408. package/dist/hooks/useElementOnScreen.cjs +1 -1
  409. package/dist/hooks/useId.cjs +1 -1
  410. package/dist/hooks/useIntersection.cjs +1 -1
  411. package/dist/hooks/useIntersection.js +8 -8
  412. package/dist/hooks/useLockScroll.cjs +1 -1
  413. package/dist/hooks/usePrevious.cjs +1 -1
  414. package/dist/hooks/useResizeObserver.cjs +1 -1
  415. package/dist/hooks/useResizeObserver.js +1 -1
  416. package/dist/index.cjs +1 -1
  417. package/dist/index.js +305 -293
  418. package/dist/themes/common-theme.cjs +1 -1
  419. package/dist/themes/darkTheme/dark-colors.cjs +1 -1
  420. package/dist/themes/darkTheme/dark-shadows.cjs +1 -1
  421. package/dist/themes/darkTheme/index.cjs +1 -1
  422. package/dist/themes/extendTheme.cjs +4 -4
  423. package/dist/themes/extendTheme.js +21 -13
  424. package/dist/themes/index.cjs +1 -1
  425. package/dist/themes/lightTheme/index.cjs +1 -1
  426. package/dist/themes/lightTheme/light-colors.cjs +1 -1
  427. package/dist/themes/lightTheme/light-shadows.cjs +1 -1
  428. package/dist/themes/sizes.cjs +1 -1
  429. package/dist/themes/sizes.js +4 -4
  430. package/dist/themes/utils.cjs +4 -4
  431. package/dist/themes/utils.js +7 -6
  432. package/dist/v2/Breadcrumbs/Breadcrumbs.cjs +2 -2
  433. package/dist/v2/Breadcrumbs/Breadcrumbs.js +15 -19
  434. package/dist/v2/Breadcrumbs/Crumb.cjs +1 -1
  435. package/dist/v2/Breadcrumbs/Crumb.js +5 -23
  436. package/dist/v2/Breadcrumbs/CrumbLink.cjs +2 -2
  437. package/dist/v2/Breadcrumbs/CrumbLink.js +6 -14
  438. package/dist/v2/Breadcrumbs/CrumbSimpleMenu.cjs +4 -3
  439. package/dist/v2/Breadcrumbs/CrumbSimpleMenu.js +11 -16
  440. package/dist/v2/Breadcrumbs/Divider.cjs +1 -1
  441. package/dist/v2/Breadcrumbs/Divider.js +5 -5
  442. package/dist/v2/Breadcrumbs/index.cjs +1 -1
  443. package/dist/v2/Link/Link.cjs +13 -11
  444. package/dist/v2/Link/Link.js +23 -37
  445. package/dist/v2/Link/index.cjs +1 -1
  446. package/dist/v2/LinkButton/LinkButton.cjs +2 -2
  447. package/dist/v2/LinkButton/LinkButton.js +11 -49
  448. package/dist/v2/LinkButton/index.cjs +1 -1
  449. package/dist/v2/MainNav/MainNav.cjs +2 -2
  450. package/dist/v2/MainNav/MainNav.js +9 -30
  451. package/dist/v2/MainNav/MainNavContext.cjs +1 -1
  452. package/dist/v2/MainNav/MainNavContext.js +1 -1
  453. package/dist/v2/MainNav/NavBrand.cjs +3 -3
  454. package/dist/v2/MainNav/NavBrand.js +16 -23
  455. package/dist/v2/MainNav/NavCondense.cjs +2 -5
  456. package/dist/v2/MainNav/NavCondense.js +19 -22
  457. package/dist/v2/MainNav/NavFooter.cjs +1 -1
  458. package/dist/v2/MainNav/NavFooter.js +4 -9
  459. package/dist/v2/MainNav/NavLink.cjs +10 -10
  460. package/dist/v2/MainNav/NavLink.js +39 -50
  461. package/dist/v2/MainNav/NavSection.cjs +1 -1
  462. package/dist/v2/MainNav/NavSection.js +9 -33
  463. package/dist/v2/MainNav/NavSections.cjs +2 -2
  464. package/dist/v2/MainNav/NavSections.js +7 -20
  465. package/dist/v2/MainNav/NavUser.cjs +2 -2
  466. package/dist/v2/MainNav/NavUser.js +15 -26
  467. package/dist/v2/MainNav/index.cjs +1 -1
  468. package/dist/v2/Pagination/Pagination.cjs +1 -5
  469. package/dist/v2/Pagination/Pagination.js +8 -21
  470. package/dist/v2/Pagination/PaginationContext.cjs +1 -1
  471. package/dist/v2/Pagination/components.cjs +10 -13
  472. package/dist/v2/Pagination/components.js +31 -51
  473. package/dist/v2/Pagination/index.cjs +1 -1
  474. package/dist/v2/SimpleMenu/Menu.cjs +65 -0
  475. package/dist/v2/SimpleMenu/Menu.js +89 -0
  476. package/dist/v2/SimpleMenu/SimpleMenu.cjs +1 -33
  477. package/dist/v2/SimpleMenu/SimpleMenu.js +25 -177
  478. package/dist/v2/SimpleMenu/index.cjs +1 -1
  479. package/dist/v2/SimpleMenu/index.js +5 -3
  480. package/dist/v2/SubNav/SubNav.cjs +5 -5
  481. package/dist/v2/SubNav/SubNav.js +8 -13
  482. package/dist/v2/SubNav/SubNavHeader.cjs +3 -3
  483. package/dist/v2/SubNav/SubNavHeader.js +33 -70
  484. package/dist/v2/SubNav/SubNavLink.cjs +5 -5
  485. package/dist/v2/SubNav/SubNavLink.js +21 -49
  486. package/dist/v2/SubNav/SubNavLinkSection.cjs +4 -4
  487. package/dist/v2/SubNav/SubNavLinkSection.js +16 -24
  488. package/dist/v2/SubNav/SubNavSection.cjs +2 -2
  489. package/dist/v2/SubNav/SubNavSection.js +14 -46
  490. package/dist/v2/SubNav/SubNavSectionLabel.cjs +3 -3
  491. package/dist/v2/SubNav/SubNavSectionLabel.js +11 -36
  492. package/dist/v2/SubNav/SubNavSections.cjs +1 -1
  493. package/dist/v2/SubNav/SubNavSections.js +5 -18
  494. package/dist/v2/SubNav/index.cjs +1 -1
  495. package/dist/v2/index.cjs +1 -1
  496. package/dist/v2/index.js +53 -51
  497. package/package.json +23 -35
  498. package/dist/Combobox/components.cjs +0 -53
  499. package/dist/Combobox/components.js +0 -64
  500. package/dist/Combobox/utils.cjs +0 -1
  501. package/dist/Combobox/utils.js +0 -78
  502. package/dist/DatePicker/DatePickerCalendar.cjs +0 -1
  503. package/dist/DatePicker/DatePickerCalendar.js +0 -142
  504. package/dist/DatePicker/DatePickerTd.cjs +0 -19
  505. package/dist/DatePicker/DatePickerTd.js +0 -61
  506. package/dist/DatePicker/DatePickerTh.cjs +0 -9
  507. package/dist/DatePicker/DatePickerTh.js +0 -42
  508. package/dist/DatePicker/compareDates.cjs +0 -1
  509. package/dist/DatePicker/compareDates.js +0 -4
  510. package/dist/DatePicker/components.cjs +0 -33
  511. package/dist/DatePicker/components.js +0 -43
  512. package/dist/DatePicker/utils/formatDate.cjs +0 -1
  513. package/dist/DatePicker/utils/formatDate.js +0 -4
  514. package/dist/DatePicker/utils/generateWeeks.cjs +0 -1
  515. package/dist/DatePicker/utils/generateWeeks.js +0 -17
  516. package/dist/DatePicker/utils/getDayOfWeek.cjs +0 -1
  517. package/dist/DatePicker/utils/getDayOfWeek.js +0 -15
  518. package/dist/DatePicker/utils/getMonths.cjs +0 -1
  519. package/dist/DatePicker/utils/getMonths.js +0 -7
  520. package/dist/DatePicker/utils/getYears.cjs +0 -1
  521. package/dist/DatePicker/utils/getYears.js +0 -9
  522. package/dist/DatePicker/utils/index.cjs +0 -1
  523. package/dist/DatePicker/utils/index.js +0 -12
  524. package/dist/DismissibleLayer/DismissibleLayer.cjs +0 -1
  525. package/dist/DismissibleLayer/DismissibleLayer.js +0 -30
  526. package/dist/Grid/GridContext.cjs +0 -1
  527. package/dist/Grid/GridContext.js +0 -6
  528. package/dist/Select/SelectButton.cjs +0 -19
  529. package/dist/Select/SelectButton.js +0 -69
  530. package/dist/Select/SelectTags.cjs +0 -6
  531. package/dist/Select/SelectTags.js +0 -38
  532. package/dist/Select/components.cjs +0 -39
  533. package/dist/Select/components.js +0 -48
  534. package/dist/Select/constants.cjs +0 -1
  535. package/dist/Select/constants.js +0 -8
  536. package/dist/Select/hooks/useButtonRef.cjs +0 -1
  537. package/dist/Select/hooks/useButtonRef.js +0 -13
  538. package/dist/Select/hooks/useListRef.cjs +0 -1
  539. package/dist/Select/hooks/useListRef.js +0 -18
  540. package/dist/Select/utils.cjs +0 -1
  541. package/dist/Select/utils.js +0 -17
  542. package/dist/Tabs/useTabsFocus.cjs +0 -1
  543. package/dist/Tabs/useTabsFocus.js +0 -17
  544. package/dist/Textarea/TextareaInput.cjs +0 -30
  545. package/dist/Textarea/TextareaInput.js +0 -70
  546. package/dist/helpers/arrays.cjs +0 -1
  547. package/dist/helpers/arrays.js +0 -6
  548. package/dist/helpers/escapeSelector.cjs +0 -1
  549. package/dist/helpers/escapeSelector.js +0 -4
  550. package/dist/v2/SimpleMenu/utils.cjs +0 -12
  551. package/dist/v2/SimpleMenu/utils.js +0 -15
  552. /package/dist/BaseCheckbox/assets/{checkmark-black.cjs → checkmark-black.svg.cjs} +0 -0
  553. /package/dist/BaseCheckbox/assets/{checkmark-black.js → checkmark-black.svg.js} +0 -0
  554. /package/dist/BaseCheckbox/assets/{checkmark.cjs → checkmark.svg.cjs} +0 -0
  555. /package/dist/BaseCheckbox/assets/{checkmark.js → checkmark.svg.js} +0 -0
  556. /package/dist/Loader/assets/{loader.cjs → loader.svg.cjs} +0 -0
  557. /package/dist/Loader/assets/{loader.js → loader.svg.js} +0 -0
  558. /package/dist/Pagination/assets/{next.cjs → next.svg.cjs} +0 -0
  559. /package/dist/Pagination/assets/{next.js → next.svg.js} +0 -0
  560. /package/dist/Pagination/assets/{previous.cjs → previous.svg.cjs} +0 -0
  561. /package/dist/Pagination/assets/{previous.js → previous.svg.js} +0 -0
  562. /package/dist/v2/Pagination/assets/{next.cjs → next.svg.cjs} +0 -0
  563. /package/dist/v2/Pagination/assets/{next.js → next.svg.js} +0 -0
  564. /package/dist/v2/Pagination/assets/{previous.cjs → previous.svg.cjs} +0 -0
  565. /package/dist/v2/Pagination/assets/{previous.js → previous.svg.js} +0 -0
@@ -1,8 +1,88 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),p=require("react"),f=require("@strapi/icons"),b=require("styled-components"),k=require("./components.cjs"),P=require("./DatePickerCalendar.cjs"),R=require("./utils/formatDate.cjs");require("../Field/Field.cjs");require("../Field/FieldLabel.cjs");require("../Field/FieldInput.cjs");require("../Field/FieldContext.cjs");require("../Typography/Typography.cjs");const T=require("../Field/FieldAction.cjs"),v=require("../helpers/getDefaultLocale.cjs"),A=require("../TextInput/TextInput.cjs"),I=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},L=I(b),S=({ariaLabel:e,onClear:i,clearLabel:j="Clear",initialDate:D,locale:h,maxDate:m,minDate:q,onChange:l,selectedDate:a,disabled:n=!1,...x})=>{const[o,c]=p.useState(!1),r=p.useRef(null),u=h||v.getDefaultLocale(),d=a?R.formatDate(a,u):"",g=()=>{n||c(s=>!s)},y=()=>{n||i&&(i(),r.current.inputWrapperRef.current.focus())},F=s=>{l&&l(s),c(!1)},C=()=>{c(!1)};return t.jsxs(k.DatePickerWrapper,{bold:o,children:[t.jsx(A.TextInput,{ref:r,onClick:g,onChange:()=>{},value:d,startAction:t.jsx(f.Calendar,{"aria-hidden":!0}),endAction:i&&d?t.jsx(T.FieldAction,{label:j,onClick:y,"aria-disabled":n||void 0,children:t.jsx(_,{})}):void 0,"aria-autocomplete":"none","aria-label":e,disabled:n,type:"text",...x}),r.current&&r.current.inputWrapperRef&&o&&t.jsx(P.DatePickerCalendar,{selectedDate:a,initialDate:D,onChange:F,onEscape:C,locale:u,popoverSource:r.current.inputWrapperRef,minDate:q,maxDate:m})]})},_=L.default(f.Cross)`
2
- height: ${11/16}rem;
3
- width: ${11/16}rem;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),ye=require("react"),$=require("@floating-ui/react-dom"),D=require("@internationalized/date"),xe=require("@radix-ui/react-focus-guards"),Ce=require("@radix-ui/react-focus-scope"),oe=require("@strapi/icons"),q=require("@strapi/ui-primitives"),be=require("react-dom"),we=require("react-remove-scroll"),ke=require("styled-components"),Te=require("../DesignSystemProvider.cjs"),Pe=require("../DismissibleLayer/index.cjs"),Se=require("../helpers/context.cjs"),Ee=require("../helpers/deprecations.cjs"),J=require("../hooks/useComposeRefs.cjs"),je=require("../hooks/useControllableState.cjs"),F=require("../hooks/useDateFormatter.cjs"),se=require("../hooks/useId.cjs"),Y=require("../Select/SingleSelect.cjs"),Ie=require("../Portal/Portal.cjs"),B=require("../Flex/Flex.cjs"),ne=require("../themes/utils.cjs"),U=require("../Box/Box.cjs"),W=require("../Typography/Typography.cjs"),Re=require("../Field/Field.cjs"),Fe=require("../Field/FieldLabel.cjs"),ve=require("../Field/FieldHint.cjs"),Ae=require("../Field/FieldError.cjs"),Me=e=>e&&e.__esModule?e:{default:e};function qe(e){if(e&&e.__esModule)return e;const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const t=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,t.get?t:{enumerable:!0,get:()=>e[n]})}}return r.default=e,Object.freeze(r)}const c=qe(ye),j=Me(ke),_e=200,re=15,[Oe,_]=Se.createContext("DatePicker"),le=c.forwardRef(({calendarLabel:e,className:r,initialDate:n,locale:t,maxDate:o,minDate:i,monthSelectLabel:g="Month",onChange:d,selectedDate:l,yearSelectLabel:b="Year",error:k,id:x,disabled:f=!1,placeholder:T,required:w=!1,onClear:S,clearLabel:E="Clear",size:u,ariaLabel:p,selectedDateLabel:s,...h},m)=>{const P=D.getLocalTimeZone(),v=Te.useDesignSystem("DatePicker"),A=t??v.locale,M=F.useDateFormatter(A,{day:"2-digit",month:"2-digit",year:"numeric"}),[O,H]=c.useState(!1),[Z,C]=c.useState(null),[I,G]=c.useState(null),[ce,ue]=c.useState(null),[V,L]=c.useState(),[N,Q]=je.useControllableState({defaultProp:n?R(n):void 0,prop:l?R(l):void 0,onChange(y){d&&d(y?.toDate(P))}}),[ee,te]=c.useMemo(()=>{const y=n?R(n):D.today("UTC"),z=i?R(i):y.set({day:1,month:1,year:y.year-_e});let X=o?R(o):y.set({day:31,month:12,year:y.year+re});return X.compare(z)<0&&(X=z.set({day:31,month:12,year:z.year+re})),[z,X]},[i,o,n]),[de,K]=c.useState(Le({currentValue:N,minDate:ee,maxDate:te})),fe=se.useId(),he=c.useRef(null),me=y=>{S&&!f&&(L(""),Q(void 0),S(y),I?.focus())},pe=c.useCallback(y=>{y&&N&&K(N),H(y)},[N]);c.useLayoutEffect(()=>{if(l){const y=R(l);L(M.format(y.toDate(P))),K(y)}else L("")},[l,M,P]),c.useLayoutEffect(()=>{if(n&&V===void 0){const y=R(n);L(M.format(y.toDate(P)))}},[n,V,M,P]);const ge=`${x}-hint`,De=`${x}-error`;return a.jsxs(Oe,{calendarDate:de,content:ce,contentId:fe,disabled:f,locale:A,minDate:ee,maxDate:te,open:O,onCalendarDateChange:K,onContentChange:ue,onOpenChange:pe,onTextInputChange:G,onTextValueChange:L,onTriggerChange:C,onValueChange:Q,required:w,textInput:I,textValue:V,timeZone:P,trigger:Z,value:N,children:[a.jsxs($e,{className:r,size:u,hasError:!!k,children:[a.jsx(Ye,{"aria-hidden":!0}),a.jsx(Ue,{ref:m,placeholder:T,"aria-describedby":`${ge} ${De}`,id:x,...h}),V&&S?a.jsx(ze,{as:"button",hasRadius:!0,background:"transparent",type:"button",onClick:me,"aria-disabled":f,"aria-label":E,title:E,ref:he,children:a.jsx(oe.Cross,{})}):null]}),a.jsx(Ie.Portal,{children:a.jsx(Ge,{label:e,children:a.jsx(et,{monthSelectLabel:g,yearSelectLabel:b})})})]})}),ae=e=>!!e.match(/^[^a-zA-Z]*$/),Le=({currentValue:e,minDate:r,maxDate:n})=>{const t=D.today("UTC");return e||(D.minDate(r,t)===r&&D.maxDate(n,t)===n?t:D.minDate(r,t)===t?r:D.maxDate(n,t)===t?n:t)},Ne="DatePickerTrigger",$e=c.forwardRef(({hasError:e,size:r="M",...n},t)=>{const o=_(Ne),i=J.useComposedRefs(t,d=>o.onTriggerChange(d)),g=()=>{o.disabled||o.onOpenChange(!0)};return a.jsx(Ce.FocusScope,{asChild:!0,trapped:o.open,onMountAutoFocus:d=>{d.preventDefault()},onUnmountAutoFocus:d=>{document.getSelection()?.empty(),d.preventDefault()},children:a.jsx(Ve,{ref:i,$hasError:e,$size:r,...n,paddingLeft:3,paddingRight:3,hasRadius:!0,gap:3,overflow:"hidden",background:o.disabled?"neutral150":"neutral0",onClick:q.composeEventHandlers(n.onClick,()=>{o.textInput?.focus()}),onPointerDown:q.composeEventHandlers(n.onPointerDown,d=>{const l=d.target;l.hasPointerCapture(d.pointerId)&&l.releasePointerCapture(d.pointerId),(l.closest("button")??l.closest("div"))===d.currentTarget&&d.button===0&&d.ctrlKey===!1&&(g(),o.textInput?.focus())})})})}),Ve=j.default(B.Flex)`
2
+ border: 1px solid ${({theme:e,$hasError:r})=>r?e.colors.danger600:e.colors.neutral200};
3
+ min-height: ${({theme:e,$size:r})=>ne.getThemeSize("input")({theme:e,size:r})};
4
4
 
5
- path {
5
+ &[data-disabled] {
6
+ color: ${({theme:e})=>e.colors.neutral600};
7
+ background: ${({theme:e})=>e.colors.neutral150};
8
+ cursor: not-allowed;
9
+ }
10
+
11
+ /* Required to ensure the below inputFocusStyles are adhered too */
12
+ &:focus-visible {
13
+ outline: none;
14
+ }
15
+
16
+ ${({theme:e,$hasError:r})=>ne.inputFocusStyle()({theme:e,hasError:r})};
17
+ `,ze=j.default(U.Box)`
18
+ border: none;
19
+
20
+ svg {
21
+ height: ${11/16}rem;
22
+ width: ${11/16}rem;
23
+ }
24
+
25
+ svg path {
6
26
  fill: ${({theme:e})=>e.colors.neutral600};
7
27
  }
8
- `;exports.DatePicker=S;
28
+ `,Ye=j.default(oe.Calendar)`
29
+ & > path {
30
+ fill: ${({theme:e})=>e.colors.neutral500};
31
+ }
32
+ `,Be="DatePickerTextInput",Ue=c.forwardRef(({placeholder:e,...r},n)=>{const t=_(Be),{onTextValueChange:o,textValue:i,onTextInputChange:g,onOpenChange:d,disabled:l,locale:b}=t,k=J.useComposedRefs(n,u=>g(u)),x=()=>{l||d(!0)},f=F.useDateFormatter(b,{year:"numeric",month:"2-digit",day:"2-digit"}),[T,w,S]=c.useMemo(()=>{const u=f.formatToParts(new Date),p=u.filter(m=>m.type==="year"||m.type==="month"||m.type==="day"),s=p.map(m=>{switch(m.type){case"day":return"DD";case"month":return"MM";case"year":return"YYYY";default:return""}}),h=u.find(m=>m.type==="literal")?.value??"";return[s,h,p]},[f]),E=T.map(u=>`\\d${u.length}`).join(w);return a.jsx(He,{role:"combobox",type:"text",inputMode:"numeric",ref:k,"aria-autocomplete":"none","aria-controls":t.contentId,"aria-disabled":t.disabled,"aria-expanded":t.open,"aria-required":t.required,"aria-haspopup":"dialog","data-state":t.open?"open":"closed",disabled:l,"data-disabled":l?"":void 0,pattern:E,placeholder:e??T.join(w),...r,value:i??"",onBlur:q.composeEventHandlers(r.onBlur,()=>{if(!t.textValue){t.onValueChange(void 0);return}t.onTextValueChange(f.format(t.calendarDate.toDate(t.timeZone))),t.onValueChange(t.calendarDate)}),onChange:q.composeEventHandlers(r.onChange,u=>{if(ae(u.target.value)){const p=u.target.value.split(w),[s,h,m]=S.map((C,I)=>{const G=p[I];return{...C,value:G}}).sort((C,I)=>C.type==="year"?1:I.type==="year"?-1:C.type==="month"?1:I.type==="month"?-1:0).map(C=>C.value),P=t.calendarDate.year;let v=t.calendarDate.year;if(m){let C=m.length===1?`0${m}`:m;v=m.length<3?Number(`${P}`.slice(0,4-C.length)+C):Number(C)}m&&m.length<3&&v>t.maxDate.year&&(v-=100);const A=t.calendarDate.set({year:v}),M=A.calendar.getMonthsInYear(A),O=A.set({month:h&&Number(h)<=M?Number(h):void 0}),H=O.calendar.getDaysInMonth(O),Z=O.set({day:s&&Number(s)<=H?Number(s):void 0});t.onCalendarDateChange(We(Z,t.minDate,t.maxDate)),t.onTextValueChange(u.target.value)}}),onKeyDown:q.composeEventHandlers(r.onKeyDown,u=>{if(!t.open&&(ae(u.key)||["ArrowDown","Backspace"].includes(u.key)))x();else if(["Tab"].includes(u.key)&&t.open)u.preventDefault();else if(["Escape"].includes(u.key))t.open?t.onOpenChange(!1):(t.onValueChange(void 0),t.onTextValueChange("")),u.preventDefault();else if(t.open&&["ArrowDown","ArrowUp","ArrowLeft","ArrowRight"].includes(u.key))switch(u.preventDefault(),u.key){case"ArrowDown":{const p=t.calendarDate.add({weeks:1});if(t.maxDate&&p.compare(t.maxDate)>0)return;t.onCalendarDateChange(p);return}case"ArrowRight":{const p=t.calendarDate.add({days:1});if(t.maxDate&&p.compare(t.maxDate)>0)return;t.onCalendarDateChange(p);return}case"ArrowUp":{const p=t.calendarDate.subtract({weeks:1});if(t.minDate&&p.compare(t.minDate)<0)return;t.onCalendarDateChange(p);return}case"ArrowLeft":{const p=t.calendarDate.subtract({days:1});if(t.minDate&&p.compare(t.minDate)<0)return;t.onCalendarDateChange(p)}}else t.open&&["Enter"].includes(u.key)&&(u.preventDefault(),o(f.format(t.calendarDate.toDate(t.timeZone))),t.onValueChange(t.calendarDate),t.onOpenChange(!1))})})});function We(e,r,n){return r&&(e=D.maxDate(e,r)),n&&(e=D.minDate(e,n)),e}const He=j.default.input`
33
+ width: 100%;
34
+ font-size: ${14/16}rem;
35
+ color: ${({theme:e})=>e.colors.neutral800};
36
+ height: 100%;
37
+ border: none;
38
+ background-color: transparent;
39
+
40
+ &:focus-visible {
41
+ outline: none;
42
+ }
43
+
44
+ &[aria-disabled='true'] {
45
+ cursor: inherit;
46
+ }
47
+ `,Ze="DatePickerContent",Ge=c.forwardRef((e,r)=>{const[n,t]=c.useState(),o=_(Ze);if(c.useLayoutEffect(()=>{t(new DocumentFragment)},[]),!o.open){const i=n;return i?be.createPortal(a.jsx("div",{children:e.children}),i):null}return a.jsx(Xe,{...e,ref:r})}),Ke="DatePickerContent",Xe=c.forwardRef((e,r)=>{const{label:n="Choose date",...t}=e,{onOpenChange:o,...i}=_(Ke),{x:g,y:d,reference:l,floating:b,strategy:k}=$.useFloating({strategy:"fixed",placement:"bottom-start",middleware:[$.offset({mainAxis:4}),$.shift(),$.flip()],whileElementsMounted:$.autoUpdate});c.useEffect(()=>{const f=()=>{o(!1)};return window.addEventListener("blur",f),window.addEventListener("resize",f),()=>{window.removeEventListener("blur",f),window.removeEventListener("resize",f)}},[o]),c.useLayoutEffect(()=>{l(i.trigger)},[l,i.trigger]);const x=J.useComposedRefs(r,f=>i.onContentChange(f),b);return xe.useFocusGuards(),a.jsx(we.RemoveScroll,{allowPinchZoom:!0,children:a.jsx(Pe.DismissibleLayer,{asChild:!0,onFocusOutside:f=>{f.preventDefault()},onDismiss:()=>{o(!1)},children:a.jsx(Je,{ref:x,"data-state":i.open?"open":"closed",onContextMenu:f=>f.preventDefault(),id:i.contentId,role:"dialog","aria-modal":"true","aria-label":n,style:{left:g,top:d,position:k},hasRadius:!0,background:"neutral0",padding:1,...t})})})}),Je=j.default(U.Box)`
48
+ box-shadow: ${({theme:e})=>e.shadows.filterShadow};
49
+ z-index: ${({theme:e})=>e.zIndices[0]};
50
+ border: 1px solid ${({theme:e})=>e.colors.neutral150};
51
+ `,Qe="DatePickerCalendar",et=c.forwardRef(({monthSelectLabel:e,yearSelectLabel:r,...n},t)=>{const{locale:o,timeZone:i,minDate:g,maxDate:d,calendarDate:l,onCalendarDateChange:b}=_(Qe),k=D.startOfMonth(l),x=c.useMemo(()=>{const s=g.year,h=d.year;return[...Array(h-s+1).keys()].map(m=>(s+m).toString())},[g,d]),f=F.useDateFormatter(o,{month:"long"}),T=c.useMemo(()=>[...Array(l.calendar.getMonthsInYear(l)).keys()].map(s=>f.format(l.set({month:s+1}).toDate(i))),[l,f,i]),w=F.useDateFormatter(o,{weekday:"short"}),S=c.useMemo(()=>{let s=D.startOfWeek(D.today(i),o);return[...new Array(7).keys()].map(h=>{let P=s.add({days:h}).toDate(i);return w.format(P)})},[i,o,w]),E=s=>{if(typeof s=="number")return;const h=l.set({month:T.indexOf(s)+1});b(h)},u=s=>{if(typeof s=="number")return;const h=l.set({year:parseInt(s,10)});b(h)},p=tt(k,o);return a.jsxs(B.Flex,{ref:t,direction:"column",alignItems:"stretch",padding:4,...n,children:[a.jsxs(nt,{justifyContent:"flex-start",paddingBottom:4,paddingLeft:2,paddingRight:2,gap:2,children:[a.jsx(Y.SingleSelectInput,{label:e,size:"S",value:T[l.month-1],onChange:E,children:T.map(s=>a.jsx(Y.SingleSelectOption,{value:s,children:s},s))}),a.jsx(Y.SingleSelectInput,{size:"S",value:l.year.toString(),label:r,onChange:u,children:x.map(s=>a.jsx(Y.SingleSelectOption,{value:s,children:s},s))})]}),a.jsxs("table",{role:"grid",children:[a.jsx("thead",{"aria-hidden":!0,children:a.jsx("tr",{"aria-rowindex":0,children:S.map((s,h)=>a.jsx(rt,{"aria-colindex":h,children:s},s))})}),a.jsx("tbody",{children:[...new Array(6).keys()].map(s=>a.jsx("tr",{"aria-rowindex":s+2,children:p(s).map((h,m)=>h?a.jsx(st,{"aria-colindex":m+1,date:h,startDate:k},h.toString()):a.jsx(ie,{"aria-colindex":m+1}))},s))})]})]})}),tt=(e,r)=>n=>{let t=e.add({weeks:n}),o=[];t=D.startOfWeek(t,r);let i=D.getDayOfWeek(t,r);for(let g=0;g<i;g++)o.push(null);for(;o.length<7;){o.push(t);let g=t.add({days:1});if(D.isSameDay(t,g))break;t=g}for(;o.length<7;)o.push(null);return o},nt=j.default(B.Flex)`
52
+ div[role='combobox'] {
53
+ border: 1px solid transparent;
54
+ background: transparent;
55
+ font-weight: ${e=>e.theme.fontWeights.bold};
56
+
57
+ ${W.Typography} {
58
+ color: ${({theme:e})=>e.colors.neutral800};
59
+ }
60
+
61
+ svg {
62
+ > g,
63
+ path {
64
+ fill: ${({theme:e})=>e.colors.neutral500};
65
+ }
66
+ }
67
+
68
+ &:hover {
69
+ background-color: ${({theme:e})=>e.colors.neutral100};
70
+ }
71
+ }
72
+ `,rt=c.forwardRef(({children:e,...r},n)=>a.jsx(at,{as:"th",role:"gridcell",ref:n,...r,height:`${24/16}rem`,width:`${32/16}rem`,children:a.jsx(W.Typography,{variant:"pi",fontWeight:"bold",color:"neutral800",children:e.slice(0,2)})})),at=j.default(U.Box)`
73
+ border-radius: ${({theme:e})=>e.borderRadius};
74
+ text-transform: capitalize;
75
+ `,ot="DatePickerCalendarCell",st=c.forwardRef(({date:e,startDate:r,...n},t)=>{const{timeZone:o,locale:i,calendarDate:g,onValueChange:d,onOpenChange:l,onTextValueChange:b,onCalendarDateChange:k}=_(ot),x=D.isSameDay(g,e),f=F.useDateFormatter(i,{weekday:"long",day:"numeric",month:"long",year:"numeric"}),T=c.useMemo(()=>f.format(e.toDate(o)),[f,e,o]),w=F.useDateFormatter(i,{day:"numeric",calendar:e.calendar.identifier}),S=c.useMemo(()=>w.formatToParts(e.toDate(o)).find(h=>h.type==="day").value,[w,e,o]),E=F.useDateFormatter(i,{day:"2-digit",month:"2-digit",year:"numeric"}),u=D.endOfMonth(r),p=e.compare(r)<0||e.compare(u)>0;let s="neutral900";return x?s="primary600":p&&(s="neutral600"),a.jsx(ie,{as:"td",role:"gridcell",ref:t,"aria-selected":x,...n,hasRadius:!0,"aria-label":T,tabIndex:x?0:-1,background:x?"primary100":"neutral0",cursor:"pointer",onPointerDown:q.composeEventHandlers(n.onPointerDown,h=>{h.preventDefault(),k(e),d(e),b(E.format(e.toDate(o))),l(!1)}),children:a.jsx(W.Typography,{variant:"pi",textColor:s,children:S})})}),ie=j.default(U.Box)`
76
+ text-align: center;
77
+ padding: ${7/16}rem;
78
+ // Trick to prevent the outline from overflowing because of the general outline-offset
79
+ outline-offset: -2px !important;
80
+
81
+ &:hover {
82
+ background: ${({theme:e})=>e.colors.primary100};
83
+
84
+ & > ${W.Typography} {
85
+ color: ${({theme:e})=>e.colors.primary600};
86
+ }
87
+ }
88
+ `,lt=c.forwardRef((e,r)=>{const{error:n,hint:t,id:o,required:i,label:g,...d}=e,l=se.useId(o);return a.jsx(Re.Field,{error:n,hint:t,required:i,ref:r,id:l,children:a.jsxs(B.Flex,{direction:"column",alignItems:"stretch",gap:1,children:[a.jsx(Fe.FieldLabel,{children:g}),a.jsx(le,{id:l,error:n,required:i,...d}),a.jsx(ve.FieldHint,{}),a.jsx(Ae.FieldError,{})]})})}),it=Ee.once(console.warn),R=e=>{if(typeof e=="string"){it("It looks like you're passing a string as representation of a Date to the DatePicker. This is deprecated, look to passing a Date instead.");const t=Date.parse(e);Number.isNaN(t)?e=new Date:e=new Date(t)}const r=e.toISOString(),n=D.parseAbsolute(r,"UTC");return D.toCalendarDate(n)},ct=lt;exports.DatePicker=ct;exports.DatePickerInput=le;
@@ -1,83 +1,430 @@
1
- import { jsxs as R, jsx as r } from "react/jsx-runtime";
2
- import { useState as y, useRef as W } from "react";
3
- import { Cross as v, Calendar as A } from "@strapi/icons";
4
- import P from "styled-components";
5
- import { DatePickerWrapper as S } from "./components.js";
6
- import { DatePickerCalendar as $ } from "./DatePickerCalendar.js";
7
- import { formatDate as j } from "./utils/formatDate.js";
8
- import "../Field/Field.js";
9
- import "../Field/FieldLabel.js";
10
- import "../Field/FieldInput.js";
11
- import "../Field/FieldContext.js";
12
- import "../Typography/Typography.js";
13
- import { FieldAction as E } from "../Field/FieldAction.js";
14
- import { getDefaultLocale as V } from "../helpers/getDefaultLocale.js";
15
- import { TextInput as w } from "../TextInput/TextInput.js";
16
- const X = ({
17
- ariaLabel: o,
18
- onClear: i,
19
- clearLabel: s = "Clear",
20
- initialDate: u,
21
- locale: d,
22
- maxDate: h,
23
- minDate: C,
24
- onChange: p,
25
- selectedDate: a,
26
- disabled: t = !1,
27
- ...D
28
- }) => {
29
- const [c, n] = y(!1), e = W(null), m = d || V(), f = a ? j(a, m) : "", g = () => {
30
- t || n((l) => !l);
31
- }, x = () => {
32
- t || i && (i(), e.current.inputWrapperRef.current.focus());
33
- }, b = (l) => {
34
- p && p(l), n(!1);
35
- }, k = () => {
36
- n(!1);
1
+ import { jsxs as F, jsx as i } from "react/jsx-runtime";
2
+ import * as c from "react";
3
+ import { useFloating as be, offset as we, shift as xe, flip as ke, autoUpdate as Te } from "@floating-ui/react-dom";
4
+ import { getLocalTimeZone as Ee, today as J, minDate as H, maxDate as X, startOfMonth as Pe, startOfWeek as le, getDayOfWeek as Ie, isSameDay as se, endOfMonth as Ae, parseAbsolute as Re, toCalendarDate as Se } from "@internationalized/date";
5
+ import { useFocusGuards as Me } from "@radix-ui/react-focus-guards";
6
+ import { FocusScope as ve } from "@radix-ui/react-focus-scope";
7
+ import { Cross as $e, Calendar as Fe } from "@strapi/icons";
8
+ import { composeEventHandlers as L } from "@strapi/ui-primitives";
9
+ import { createPortal as Le } from "react-dom";
10
+ import { RemoveScroll as Ne } from "react-remove-scroll";
11
+ import I from "styled-components";
12
+ import { useDesignSystem as Oe } from "../DesignSystemProvider.js";
13
+ import { DismissibleLayer as _e } from "../DismissibleLayer/index.js";
14
+ import { createContext as Ve } from "../helpers/context.js";
15
+ import { once as Ye } from "../helpers/deprecations.js";
16
+ import { useComposedRefs as Q } from "../hooks/useComposeRefs.js";
17
+ import { useControllableState as ze } from "../hooks/useControllableState.js";
18
+ import { useDateFormatter as S } from "../hooks/useDateFormatter.js";
19
+ import { useId as ce } from "../hooks/useId.js";
20
+ import { SingleSelectInput as ne, SingleSelectOption as ae } from "../Select/SingleSelect.js";
21
+ import { Portal as Ue } from "../Portal/Portal.js";
22
+ import { Flex as U } from "../Flex/Flex.js";
23
+ import { getThemeSize as We, inputFocusStyle as Be } from "../themes/utils.js";
24
+ import { Box as W } from "../Box/Box.js";
25
+ import { Typography as B } from "../Typography/Typography.js";
26
+ import { Field as Ze } from "../Field/Field.js";
27
+ import { FieldLabel as qe } from "../Field/FieldLabel.js";
28
+ import { FieldHint as Ke } from "../Field/FieldHint.js";
29
+ import { FieldError as Ge } from "../Field/FieldError.js";
30
+ const je = 200, oe = 15, [He, N] = Ve("DatePicker"), Xe = c.forwardRef(({
31
+ /**
32
+ * DatePickerCalendar props
33
+ */
34
+ calendarLabel: e,
35
+ className: r,
36
+ initialDate: n,
37
+ locale: t,
38
+ maxDate: a,
39
+ minDate: s,
40
+ monthSelectLabel: g = "Month",
41
+ onChange: u,
42
+ selectedDate: l,
43
+ yearSelectLabel: b = "Year",
44
+ /**
45
+ * Combobox props
46
+ */
47
+ error: x,
48
+ id: y,
49
+ disabled: m = !1,
50
+ placeholder: k,
51
+ required: w = !1,
52
+ onClear: E,
53
+ clearLabel: P = "Clear",
54
+ size: d,
55
+ /**
56
+ * @preserve
57
+ * @deprecated This is no longer used.
58
+ */
59
+ ariaLabel: h,
60
+ /**
61
+ * @preserve
62
+ * @deprecated This is no longer used.
63
+ */
64
+ selectedDateLabel: o,
65
+ ...f
66
+ }, p) => {
67
+ const T = Ee(), M = Oe("DatePicker"), v = t ?? M.locale, $ = S(v, {
68
+ day: "2-digit",
69
+ month: "2-digit",
70
+ year: "numeric"
71
+ }), [O, Z] = c.useState(!1), [q, C] = c.useState(null), [A, K] = c.useState(null), [ue, me] = c.useState(null), [Y, _] = c.useState(), [V, ee] = ze({
72
+ defaultProp: n ? R(n) : void 0,
73
+ prop: l ? R(l) : void 0,
74
+ onChange(D) {
75
+ u && u(D?.toDate(T));
76
+ }
77
+ }), [te, re] = c.useMemo(() => {
78
+ const D = n ? R(n) : J("UTC"), z = s ? R(s) : D.set({ day: 1, month: 1, year: D.year - je });
79
+ let j = a ? R(a) : D.set({ day: 31, month: 12, year: D.year + oe });
80
+ return j.compare(z) < 0 && (j = z.set({ day: 31, month: 12, year: z.year + oe })), [z, j];
81
+ }, [s, a, n]), [fe, G] = c.useState(Je({
82
+ currentValue: V,
83
+ minDate: te,
84
+ maxDate: re
85
+ })), pe = ce(), he = c.useRef(null), ge = (D) => {
86
+ E && !m && (_(""), ee(void 0), E(D), A?.focus());
87
+ }, De = c.useCallback((D) => {
88
+ D && V && G(V), Z(D);
89
+ }, [V]);
90
+ c.useLayoutEffect(() => {
91
+ if (l) {
92
+ const D = R(l);
93
+ _($.format(D.toDate(T))), G(D);
94
+ } else
95
+ _("");
96
+ }, [l, $, T]), c.useLayoutEffect(() => {
97
+ if (n && Y === void 0) {
98
+ const D = R(n);
99
+ _($.format(D.toDate(T)));
100
+ }
101
+ }, [n, Y, $, T]);
102
+ const ye = `${y}-hint`, Ce = `${y}-error`;
103
+ return F(He, { calendarDate: fe, content: ue, contentId: pe, disabled: m, locale: v, minDate: te, maxDate: re, open: O, onCalendarDateChange: G, onContentChange: me, onOpenChange: De, onTextInputChange: K, onTextValueChange: _, onTriggerChange: C, onValueChange: ee, required: w, textInput: A, textValue: Y, timeZone: T, trigger: q, value: V, children: [F(et, { className: r, size: d, hasError: !!x, children: [i(nt, { "aria-hidden": !0 }), i(ot, { ref: p, placeholder: k, "aria-describedby": `${ye} ${Ce}`, id: y, ...f }), Y && E ? i(rt, { as: "button", hasRadius: !0, background: "transparent", type: "button", onClick: ge, "aria-disabled": m, "aria-label": P, title: P, ref: he, children: i($e, {}) }) : null] }), i(Ue, { children: i(ct, { label: e, children: i(pt, { monthSelectLabel: g, yearSelectLabel: b }) }) })] });
104
+ }), ie = (e) => !!e.match(/^[^a-zA-Z]*$/), Je = ({ currentValue: e, minDate: r, maxDate: n }) => {
105
+ const t = J("UTC");
106
+ return e || (H(r, t) === r && X(n, t) === n ? t : H(r, t) === t ? r : X(n, t) === t ? n : t);
107
+ }, Qe = "DatePickerTrigger", et = c.forwardRef(({ hasError: e, size: r = "M", ...n }, t) => {
108
+ const a = N(Qe), s = Q(t, (u) => a.onTriggerChange(u)), g = () => {
109
+ a.disabled || a.onOpenChange(!0);
37
110
  };
38
- return R(S, {
39
- bold: c,
40
- children: [r(w, {
41
- ref: e,
42
- onClick: g,
43
- onChange: () => {
44
- },
45
- value: f,
46
- startAction: r(A, {
47
- "aria-hidden": !0
111
+ return i(ve, {
112
+ asChild: !0,
113
+ // we make sure we're not trapping once it's been closed
114
+ // (closed !== unmounted when animating out)
115
+ trapped: a.open,
116
+ onMountAutoFocus: (u) => {
117
+ u.preventDefault();
118
+ },
119
+ onUnmountAutoFocus: (u) => {
120
+ document.getSelection()?.empty(), u.preventDefault();
121
+ },
122
+ children: i(tt, { ref: s, $hasError: e, $size: r, ...n, paddingLeft: 3, paddingRight: 3, hasRadius: !0, gap: 3, overflow: "hidden", background: a.disabled ? "neutral150" : "neutral0", onClick: L(n.onClick, () => {
123
+ a.textInput?.focus();
124
+ }), onPointerDown: L(n.onPointerDown, (u) => {
125
+ const l = u.target;
126
+ l.hasPointerCapture(u.pointerId) && l.releasePointerCapture(u.pointerId), (l.closest("button") ?? l.closest("div")) === u.currentTarget && u.button === 0 && u.ctrlKey === !1 && (g(), a.textInput?.focus());
127
+ }) })
128
+ });
129
+ }), tt = I(U)`
130
+ border: 1px solid ${({ theme: e, $hasError: r }) => r ? e.colors.danger600 : e.colors.neutral200};
131
+ min-height: ${({ theme: e, $size: r }) => We("input")({ theme: e, size: r })};
132
+
133
+ &[data-disabled] {
134
+ color: ${({ theme: e }) => e.colors.neutral600};
135
+ background: ${({ theme: e }) => e.colors.neutral150};
136
+ cursor: not-allowed;
137
+ }
138
+
139
+ /* Required to ensure the below inputFocusStyles are adhered too */
140
+ &:focus-visible {
141
+ outline: none;
142
+ }
143
+
144
+ ${({ theme: e, $hasError: r }) => Be()({ theme: e, hasError: r })};
145
+ `, rt = I(W)`
146
+ border: none;
147
+
148
+ svg {
149
+ height: ${11 / 16}rem;
150
+ width: ${11 / 16}rem;
151
+ }
152
+
153
+ svg path {
154
+ fill: ${({ theme: e }) => e.colors.neutral600};
155
+ }
156
+ `, nt = I(Fe)`
157
+ & > path {
158
+ fill: ${({ theme: e }) => e.colors.neutral500};
159
+ }
160
+ `, at = "DatePickerTextInput", ot = c.forwardRef(({ placeholder: e, ...r }, n) => {
161
+ const t = N(at), { onTextValueChange: a, textValue: s, onTextInputChange: g, onOpenChange: u, disabled: l, locale: b } = t, x = Q(n, (d) => g(d)), y = () => {
162
+ l || u(!0);
163
+ }, m = S(b, {
164
+ year: "numeric",
165
+ month: "2-digit",
166
+ day: "2-digit"
167
+ }), [k, w, E] = c.useMemo(() => {
168
+ const d = m.formatToParts(/* @__PURE__ */ new Date()), h = d.filter((p) => p.type === "year" || p.type === "month" || p.type === "day"), o = h.map((p) => {
169
+ switch (p.type) {
170
+ case "day":
171
+ return "DD";
172
+ case "month":
173
+ return "MM";
174
+ case "year":
175
+ return "YYYY";
176
+ default:
177
+ return "";
178
+ }
179
+ }), f = d.find((p) => p.type === "literal")?.value ?? "";
180
+ return [o, f, h];
181
+ }, [m]), P = k.map((d) => `\\d${d.length}`).join(w);
182
+ return i(lt, { role: "combobox", type: "text", inputMode: "numeric", ref: x, "aria-autocomplete": "none", "aria-controls": t.contentId, "aria-disabled": t.disabled, "aria-expanded": t.open, "aria-required": t.required, "aria-haspopup": "dialog", "data-state": t.open ? "open" : "closed", disabled: l, "data-disabled": l ? "" : void 0, pattern: P, placeholder: e ?? k.join(w), ...r, value: s ?? "", onBlur: L(r.onBlur, () => {
183
+ if (!t.textValue) {
184
+ t.onValueChange(void 0);
185
+ return;
186
+ }
187
+ t.onTextValueChange(m.format(t.calendarDate.toDate(t.timeZone))), t.onValueChange(t.calendarDate);
188
+ }), onChange: L(r.onChange, (d) => {
189
+ if (ie(d.target.value)) {
190
+ const h = d.target.value.split(w), [o, f, p] = E.map((C, A) => {
191
+ const K = h[A];
192
+ return {
193
+ ...C,
194
+ value: K
195
+ };
196
+ }).sort((C, A) => C.type === "year" ? 1 : A.type === "year" ? -1 : C.type === "month" ? 1 : A.type === "month" ? -1 : 0).map((C) => C.value), T = t.calendarDate.year;
197
+ let M = t.calendarDate.year;
198
+ if (p) {
199
+ let C = p.length === 1 ? `0${p}` : p;
200
+ M = p.length < 3 ? Number(`${T}`.slice(0, 4 - C.length) + C) : Number(C);
201
+ }
202
+ p && p.length < 3 && M > t.maxDate.year && (M -= 100);
203
+ const v = t.calendarDate.set({ year: M }), $ = v.calendar.getMonthsInYear(v), O = v.set({
204
+ month: f && Number(f) <= $ ? Number(f) : void 0
205
+ }), Z = O.calendar.getDaysInMonth(O), q = O.set({
206
+ day: o && Number(o) <= Z ? Number(o) : void 0
207
+ });
208
+ t.onCalendarDateChange(it(q, t.minDate, t.maxDate)), t.onTextValueChange(d.target.value);
209
+ }
210
+ }), onKeyDown: L(r.onKeyDown, (d) => {
211
+ if (!t.open && (ie(d.key) || ["ArrowDown", "Backspace"].includes(d.key)))
212
+ y();
213
+ else if (["Tab"].includes(d.key) && t.open)
214
+ d.preventDefault();
215
+ else if (["Escape"].includes(d.key))
216
+ t.open ? t.onOpenChange(!1) : (t.onValueChange(void 0), t.onTextValueChange("")), d.preventDefault();
217
+ else if (t.open && ["ArrowDown", "ArrowUp", "ArrowLeft", "ArrowRight"].includes(d.key))
218
+ switch (d.preventDefault(), d.key) {
219
+ case "ArrowDown": {
220
+ const h = t.calendarDate.add({ weeks: 1 });
221
+ if (t.maxDate && h.compare(t.maxDate) > 0)
222
+ return;
223
+ t.onCalendarDateChange(h);
224
+ return;
225
+ }
226
+ case "ArrowRight": {
227
+ const h = t.calendarDate.add({ days: 1 });
228
+ if (t.maxDate && h.compare(t.maxDate) > 0)
229
+ return;
230
+ t.onCalendarDateChange(h);
231
+ return;
232
+ }
233
+ case "ArrowUp": {
234
+ const h = t.calendarDate.subtract({ weeks: 1 });
235
+ if (t.minDate && h.compare(t.minDate) < 0)
236
+ return;
237
+ t.onCalendarDateChange(h);
238
+ return;
239
+ }
240
+ case "ArrowLeft": {
241
+ const h = t.calendarDate.subtract({ days: 1 });
242
+ if (t.minDate && h.compare(t.minDate) < 0)
243
+ return;
244
+ t.onCalendarDateChange(h);
245
+ }
246
+ }
247
+ else
248
+ t.open && ["Enter"].includes(d.key) && (d.preventDefault(), a(m.format(t.calendarDate.toDate(t.timeZone))), t.onValueChange(t.calendarDate), t.onOpenChange(!1));
249
+ }) });
250
+ });
251
+ function it(e, r, n) {
252
+ return r && (e = X(e, r)), n && (e = H(e, n)), e;
253
+ }
254
+ const lt = I.input`
255
+ width: 100%;
256
+ font-size: ${14 / 16}rem;
257
+ color: ${({ theme: e }) => e.colors.neutral800};
258
+ height: 100%;
259
+ border: none;
260
+ background-color: transparent;
261
+
262
+ &:focus-visible {
263
+ outline: none;
264
+ }
265
+
266
+ &[aria-disabled='true'] {
267
+ cursor: inherit;
268
+ }
269
+ `, st = "DatePickerContent", ct = c.forwardRef((e, r) => {
270
+ const [n, t] = c.useState(), a = N(st);
271
+ if (c.useLayoutEffect(() => {
272
+ t(new DocumentFragment());
273
+ }, []), !a.open) {
274
+ const s = n;
275
+ return s ? Le(i("div", { children: e.children }), s) : null;
276
+ }
277
+ return i(ut, { ...e, ref: r });
278
+ }), dt = "DatePickerContent", ut = c.forwardRef((e, r) => {
279
+ const { label: n = "Choose date", ...t } = e, { onOpenChange: a, ...s } = N(dt), { x: g, y: u, reference: l, floating: b, strategy: x } = be({
280
+ strategy: "fixed",
281
+ placement: "bottom-start",
282
+ middleware: [
283
+ we({
284
+ mainAxis: 4
48
285
  }),
49
- endAction: i && f ? r(E, {
50
- label: s,
51
- onClick: x,
52
- "aria-disabled": t || void 0,
53
- children: r(F, {})
54
- }) : void 0,
55
- "aria-autocomplete": "none",
56
- "aria-label": o,
57
- disabled: t,
58
- type: "text",
59
- ...D
60
- }), e.current && e.current.inputWrapperRef && c && r($, {
61
- selectedDate: a,
62
- initialDate: u,
63
- onChange: b,
64
- onEscape: k,
65
- locale: m,
66
- popoverSource: e.current.inputWrapperRef,
67
- minDate: C,
68
- maxDate: h
69
- })]
286
+ xe(),
287
+ ke()
288
+ ],
289
+ whileElementsMounted: Te
70
290
  });
71
- }, F = P(v)`
72
- height: ${11 / 16}rem;
73
- width: ${11 / 16}rem;
291
+ c.useEffect(() => {
292
+ const m = () => {
293
+ a(!1);
294
+ };
295
+ return window.addEventListener("blur", m), window.addEventListener("resize", m), () => {
296
+ window.removeEventListener("blur", m), window.removeEventListener("resize", m);
297
+ };
298
+ }, [a]), c.useLayoutEffect(() => {
299
+ l(s.trigger);
300
+ }, [l, s.trigger]);
301
+ const y = Q(r, (m) => s.onContentChange(m), b);
302
+ return Me(), i(Ne, { allowPinchZoom: !0, children: i(_e, {
303
+ asChild: !0,
304
+ // When focus is trapped, a focusout event may still happen.
305
+ // We make sure we don't trigger our `onDismiss` in such case.
306
+ onFocusOutside: (m) => {
307
+ m.preventDefault();
308
+ },
309
+ onDismiss: () => {
310
+ a(!1);
311
+ },
312
+ children: i(mt, { ref: y, "data-state": s.open ? "open" : "closed", onContextMenu: (m) => m.preventDefault(), id: s.contentId, role: "dialog", "aria-modal": "true", "aria-label": n, style: {
313
+ left: g,
314
+ top: u,
315
+ position: x
316
+ }, hasRadius: !0, background: "neutral0", padding: 1, ...t })
317
+ }) });
318
+ }), mt = I(W)`
319
+ box-shadow: ${({ theme: e }) => e.shadows.filterShadow};
320
+ z-index: ${({ theme: e }) => e.zIndices[0]};
321
+ border: 1px solid ${({ theme: e }) => e.colors.neutral150};
322
+ `, ft = "DatePickerCalendar", pt = c.forwardRef(({ monthSelectLabel: e, yearSelectLabel: r, ...n }, t) => {
323
+ const { locale: a, timeZone: s, minDate: g, maxDate: u, calendarDate: l, onCalendarDateChange: b } = N(ft), x = Pe(l), y = c.useMemo(() => {
324
+ const o = g.year, f = u.year;
325
+ return [...Array(f - o + 1).keys()].map((p) => (o + p).toString());
326
+ }, [g, u]), m = S(a, { month: "long" }), k = c.useMemo(() => [...Array(l.calendar.getMonthsInYear(l)).keys()].map((o) => m.format(l.set({ month: o + 1 }).toDate(s))), [l, m, s]), w = S(a, { weekday: "short" }), E = c.useMemo(() => {
327
+ let o = le(J(s), a);
328
+ return [...new Array(7).keys()].map((f) => {
329
+ let T = o.add({ days: f }).toDate(s);
330
+ return w.format(T);
331
+ });
332
+ }, [s, a, w]), P = (o) => {
333
+ if (typeof o == "number")
334
+ return;
335
+ const f = l.set({ month: k.indexOf(o) + 1 });
336
+ b(f);
337
+ }, d = (o) => {
338
+ if (typeof o == "number")
339
+ return;
340
+ const f = l.set({ year: parseInt(o, 10) });
341
+ b(f);
342
+ }, h = ht(x, a);
343
+ return F(U, { ref: t, direction: "column", alignItems: "stretch", padding: 4, ...n, children: [F(gt, { justifyContent: "flex-start", paddingBottom: 4, paddingLeft: 2, paddingRight: 2, gap: 2, children: [i(ne, { label: e, size: "S", value: k[l.month - 1], onChange: P, children: k.map((o) => i(ae, { value: o, children: o }, o)) }), i(ne, { size: "S", value: l.year.toString(), label: r, onChange: d, children: y.map((o) => i(ae, { value: o, children: o }, o)) })] }), F("table", { role: "grid", children: [i("thead", { "aria-hidden": !0, children: i("tr", { "aria-rowindex": 0, children: E.map((o, f) => i(Dt, { "aria-colindex": f, children: o }, o)) }) }), i("tbody", { children: [...new Array(6).keys()].map((o) => i("tr", { "aria-rowindex": o + 2, children: h(o).map((f, p) => f ? i(bt, { "aria-colindex": p + 1, date: f, startDate: x }, f.toString()) : i(de, { "aria-colindex": p + 1 })) }, o)) })] })] });
344
+ }), ht = (e, r) => (n) => {
345
+ let t = e.add({ weeks: n }), a = [];
346
+ t = le(t, r);
347
+ let s = Ie(t, r);
348
+ for (let g = 0; g < s; g++)
349
+ a.push(null);
350
+ for (; a.length < 7; ) {
351
+ a.push(t);
352
+ let g = t.add({ days: 1 });
353
+ if (se(t, g))
354
+ break;
355
+ t = g;
356
+ }
357
+ for (; a.length < 7; )
358
+ a.push(null);
359
+ return a;
360
+ }, gt = I(U)`
361
+ div[role='combobox'] {
362
+ border: 1px solid transparent;
363
+ background: transparent;
364
+ font-weight: ${(e) => e.theme.fontWeights.bold};
365
+
366
+ ${B} {
367
+ color: ${({ theme: e }) => e.colors.neutral800};
368
+ }
74
369
 
75
- path {
76
- fill: ${({
77
- theme: o
78
- }) => o.colors.neutral600};
370
+ svg {
371
+ > g,
372
+ path {
373
+ fill: ${({ theme: e }) => e.colors.neutral500};
374
+ }
375
+ }
376
+
377
+ &:hover {
378
+ background-color: ${({ theme: e }) => e.colors.neutral100};
379
+ }
380
+ }
381
+ `, Dt = c.forwardRef(({ children: e, ...r }, n) => i(yt, { as: "th", role: "gridcell", ref: n, ...r, height: `${24 / 16}rem`, width: `${32 / 16}rem`, children: i(B, { variant: "pi", fontWeight: "bold", color: "neutral800", children: e.slice(0, 2) }) })), yt = I(W)`
382
+ border-radius: ${({ theme: e }) => e.borderRadius};
383
+ text-transform: capitalize;
384
+ `, Ct = "DatePickerCalendarCell", bt = c.forwardRef(({ date: e, startDate: r, ...n }, t) => {
385
+ const { timeZone: a, locale: s, calendarDate: g, onValueChange: u, onOpenChange: l, onTextValueChange: b, onCalendarDateChange: x } = N(Ct), y = se(g, e), m = S(s, {
386
+ weekday: "long",
387
+ day: "numeric",
388
+ month: "long",
389
+ year: "numeric"
390
+ }), k = c.useMemo(() => m.format(e.toDate(a)), [m, e, a]), w = S(s, {
391
+ day: "numeric",
392
+ calendar: e.calendar.identifier
393
+ }), E = c.useMemo(() => w.formatToParts(e.toDate(a)).find((f) => f.type === "day").value, [w, e, a]), P = S(s, {
394
+ day: "2-digit",
395
+ month: "2-digit",
396
+ year: "numeric"
397
+ }), d = Ae(r), h = e.compare(r) < 0 || e.compare(d) > 0;
398
+ let o = "neutral900";
399
+ return y ? o = "primary600" : h && (o = "neutral600"), i(de, { as: "td", role: "gridcell", ref: t, "aria-selected": y, ...n, hasRadius: !0, "aria-label": k, tabIndex: y ? 0 : -1, background: y ? "primary100" : "neutral0", cursor: "pointer", onPointerDown: L(n.onPointerDown, (f) => {
400
+ f.preventDefault(), x(e), u(e), b(P.format(e.toDate(a))), l(!1);
401
+ }), children: i(B, { variant: "pi", textColor: o, children: E }) });
402
+ }), de = I(W)`
403
+ text-align: center;
404
+ padding: ${7 / 16}rem;
405
+ // Trick to prevent the outline from overflowing because of the general outline-offset
406
+ outline-offset: -2px !important;
407
+
408
+ &:hover {
409
+ background: ${({ theme: e }) => e.colors.primary100};
410
+
411
+ & > ${B} {
412
+ color: ${({ theme: e }) => e.colors.primary600};
413
+ }
414
+ }
415
+ `, wt = c.forwardRef((e, r) => {
416
+ const { error: n, hint: t, id: a, required: s, label: g, ...u } = e, l = ce(a);
417
+ return i(Ze, { error: n, hint: t, required: s, ref: r, id: l, children: F(U, { direction: "column", alignItems: "stretch", gap: 1, children: [i(qe, { children: g }), i(Xe, { id: l, error: n, required: s, ...u }), i(Ke, {}), i(Ge, {})] }) });
418
+ }), xt = Ye(console.warn), R = (e) => {
419
+ if (typeof e == "string") {
420
+ xt("It looks like you're passing a string as representation of a Date to the DatePicker. This is deprecated, look to passing a Date instead.");
421
+ const t = Date.parse(e);
422
+ Number.isNaN(t) ? e = /* @__PURE__ */ new Date() : e = new Date(t);
79
423
  }
80
- `;
424
+ const r = e.toISOString(), n = Re(r, "UTC");
425
+ return Se(n);
426
+ }, Xt = wt;
81
427
  export {
82
- X as DatePicker
428
+ Xt as DatePicker,
429
+ Xe as DatePickerInput
83
430
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./DatePicker.cjs");exports.DatePicker=e.DatePicker;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./DatePicker.cjs");exports.DatePicker=e.DatePicker;