@webiny/admin-ui 0.0.0-unstable.7be00a75a9 → 0.0.0-unstable.7c2def32a7

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 (595) hide show
  1. package/Accordion/Accordion.d.ts +7 -6
  2. package/Accordion/Accordion.stories.d.ts +1 -1
  3. package/Accordion/Accordion.stories.js.map +1 -1
  4. package/Accordion/components/AccordionContent.js +4 -1
  5. package/Accordion/components/AccordionContent.js.map +1 -1
  6. package/Accordion/components/AccordionItem.d.ts +8 -6
  7. package/Accordion/components/AccordionItem.js.map +1 -1
  8. package/Accordion/components/AccordionItemAction.d.ts +7 -6
  9. package/Accordion/components/AccordionItemDragHandle.d.ts +2 -1
  10. package/Accordion/components/AccordionItemDragHandle.js +2 -1
  11. package/Accordion/components/AccordionItemDragHandle.js.map +1 -1
  12. package/Accordion/components/AccordionItemIcon.d.ts +7 -6
  13. package/Accordion/components/AccordionItemSeparator.d.ts +7 -6
  14. package/Accordion/components/AccordionTrigger.js +4 -2
  15. package/Accordion/components/AccordionTrigger.js.map +1 -1
  16. package/Alert/Alert.d.ts +21 -19
  17. package/Alert/Alert.stories.d.ts +1 -1
  18. package/Alert/Alert.stories.js.map +1 -1
  19. package/AutoComplete/AutoComplete.d.ts +7 -6
  20. package/AutoComplete/AutoComplete.stories.d.ts +1 -1
  21. package/AutoComplete/AutoComplete.stories.js.map +1 -1
  22. package/AutoComplete/primitives/AutoCompletePrimitive.d.ts +13 -6
  23. package/AutoComplete/primitives/AutoCompletePrimitive.js +1 -0
  24. package/AutoComplete/primitives/AutoCompletePrimitive.js.map +1 -1
  25. package/AutoComplete/primitives/AutoCompletePrimitive.stories.d.ts +1 -1
  26. package/AutoComplete/primitives/AutoCompletePrimitive.stories.js.map +1 -1
  27. package/Avatar/Avatar.d.ts +9 -8
  28. package/Avatar/Avatar.stories.d.ts +1 -1
  29. package/Avatar/Avatar.stories.js.map +1 -1
  30. package/Avatar/components/AvatarFallback.d.ts +7 -6
  31. package/Avatar/components/AvatarImage.d.ts +7 -6
  32. package/BetaBadge/BetaBadge.d.ts +6 -0
  33. package/BetaBadge/BetaBadge.js +7 -0
  34. package/BetaBadge/BetaBadge.js.map +1 -0
  35. package/Breadcrumbs/Breadcrumbs.d.ts +54 -0
  36. package/Breadcrumbs/Breadcrumbs.js +66 -0
  37. package/Breadcrumbs/Breadcrumbs.js.map +1 -0
  38. package/Breadcrumbs/Breadcrumbs.stories.d.ts +9 -0
  39. package/Breadcrumbs/Breadcrumbs.stories.js +71 -0
  40. package/Breadcrumbs/Breadcrumbs.stories.js.map +1 -0
  41. package/Breadcrumbs/index.d.ts +1 -0
  42. package/Breadcrumbs/index.js +1 -0
  43. package/Button/Button.d.ts +10 -9
  44. package/Button/Button.js +7 -0
  45. package/Button/Button.js.map +1 -1
  46. package/Button/Button.mdx +13 -0
  47. package/Button/Button.stories.d.ts +2 -1
  48. package/Button/Button.stories.js +9 -2
  49. package/Button/Button.stories.js.map +1 -1
  50. package/Button/CopyButton.d.ts +7 -6
  51. package/Button/IconButton.d.ts +10 -9
  52. package/Button/IconButton.stories.d.ts +1 -1
  53. package/Button/IconButton.stories.js.map +1 -1
  54. package/Calendar/Calendar.d.ts +7 -6
  55. package/Calendar/calendarClassNames.js +1 -1
  56. package/Calendar/calendarClassNames.js.map +1 -1
  57. package/Card/Card.d.ts +8 -22
  58. package/Card/Card.stories.d.ts +1 -1
  59. package/Card/Card.stories.js.map +1 -1
  60. package/Card/components/CancelAction.d.ts +8 -6
  61. package/Card/components/CardContent.d.ts +6 -6
  62. package/Card/components/CardTitle.d.ts +2 -2
  63. package/Card/components/ConfirmAction.d.ts +8 -6
  64. package/Card/components/Icon.d.ts +7 -6
  65. package/Checkbox/Checkbox.d.ts +7 -6
  66. package/Checkbox/Checkbox.stories.d.ts +1 -1
  67. package/Checkbox/Checkbox.stories.js.map +1 -1
  68. package/Checkbox/primitives/CheckboxPrimitive.d.ts +17 -12
  69. package/Checkbox/primitives/CheckboxPrimitive.stories.d.ts +1 -1
  70. package/Checkbox/primitives/CheckboxPrimitive.stories.js.map +1 -1
  71. package/CheckboxGroup/CheckboxGroup.d.ts +7 -6
  72. package/CheckboxGroup/CheckboxGroup.stories.d.ts +1 -1
  73. package/CheckboxGroup/CheckboxGroup.stories.js.map +1 -1
  74. package/CheckboxGroup/primitives/CheckboxGroupPrimitive.d.ts +20 -12
  75. package/CheckboxGroup/primitives/CheckboxGroupPrimitive.stories.d.ts +1 -1
  76. package/CheckboxGroup/primitives/CheckboxGroupPrimitive.stories.js.map +1 -1
  77. package/CodeEditor/CodeEditor.d.ts +7 -6
  78. package/CodeEditor/CodeEditor.stories.d.ts +1 -1
  79. package/CodeEditor/CodeEditor.stories.js.map +1 -1
  80. package/CodeEditor/CodeEditorPrimitive.d.ts +7 -6
  81. package/CodeEditor/CodeEditorPrimitive.js +3 -1
  82. package/CodeEditor/CodeEditorPrimitive.js.map +1 -1
  83. package/CodeEditor/CodeEditorPrimitive.stories.d.ts +1 -1
  84. package/CodeEditor/CodeEditorPrimitive.stories.js.map +1 -1
  85. package/ColorPicker/ColorPicker.d.ts +7 -6
  86. package/ColorPicker/ColorPicker.stories.d.ts +1 -1
  87. package/ColorPicker/ColorPicker.stories.js.map +1 -1
  88. package/ColorPicker/primitives/ColorPickerPrimitive.d.ts +7 -6
  89. package/ColorPicker/primitives/ColorPickerPrimitive.stories.d.ts +1 -1
  90. package/ColorPicker/primitives/ColorPickerPrimitive.stories.js.map +1 -1
  91. package/Command/Command.d.ts +10 -8
  92. package/Command/components/List.d.ts +1 -1
  93. package/Command/components/List.js +9 -5
  94. package/Command/components/List.js.map +1 -1
  95. package/DataList/DataListModal.d.ts +6 -3
  96. package/DataTable/DataTable.d.ts +23 -12
  97. package/DataTable/DataTable.js +18 -7
  98. package/DataTable/DataTable.js.map +1 -1
  99. package/DataTable/DataTable.stories.d.ts +1 -1
  100. package/DataTable/DataTable.stories.js.map +1 -1
  101. package/DataTable/components/ColumnsVisibility.d.ts +5 -4
  102. package/DataTable/components/ColumnsVisibility.js +7 -3
  103. package/DataTable/components/ColumnsVisibility.js.map +1 -1
  104. package/DatePicker/DatePicker.d.ts +11 -7
  105. package/DatePicker/DatePicker.js +10 -2
  106. package/DatePicker/DatePicker.js.map +1 -1
  107. package/DatePicker/DatePicker.stories.d.ts +11 -1
  108. package/DatePicker/DatePicker.stories.js +44 -1
  109. package/DatePicker/DatePicker.stories.js.map +1 -1
  110. package/DatePicker/primitives/BirthdayPicker.d.ts +13 -0
  111. package/DatePicker/primitives/BirthdayPicker.js +355 -0
  112. package/DatePicker/primitives/BirthdayPicker.js.map +1 -0
  113. package/DatePicker/primitives/BirthdayPickerCell.d.ts +14 -0
  114. package/DatePicker/primitives/BirthdayPickerCell.js +19 -0
  115. package/DatePicker/primitives/BirthdayPickerCell.js.map +1 -0
  116. package/DatePicker/primitives/BirthdayPickerSegments.d.ts +9 -0
  117. package/DatePicker/primitives/BirthdayPickerSegments.js +43 -0
  118. package/DatePicker/primitives/BirthdayPickerSegments.js.map +1 -0
  119. package/DatePicker/primitives/DateOnlyPicker.js +2 -2
  120. package/DatePicker/primitives/DateOnlyPicker.js.map +1 -1
  121. package/DatePicker/primitives/DatePickerPrimitive.d.ts +7 -6
  122. package/DatePicker/primitives/DatePickerPrimitive.js +3 -0
  123. package/DatePicker/primitives/DatePickerPrimitive.js.map +1 -1
  124. package/DatePicker/primitives/DateRangePicker.js +3 -3
  125. package/DatePicker/primitives/DateRangePicker.js.map +1 -1
  126. package/DatePicker/primitives/DateTimePicker.d.ts +1 -1
  127. package/DatePicker/primitives/DateTimePicker.js +26 -18
  128. package/DatePicker/primitives/DateTimePicker.js.map +1 -1
  129. package/DatePicker/primitives/MultipleDatesPicker.js +3 -3
  130. package/DatePicker/primitives/MultipleDatesPicker.js.map +1 -1
  131. package/DatePicker/primitives/components/DatePickerTrigger.js +2 -2
  132. package/DatePicker/primitives/components/DatePickerTrigger.js.map +1 -1
  133. package/DatePicker/utils/birthdayHelpers.d.ts +77 -0
  134. package/DatePicker/utils/birthdayHelpers.js +145 -0
  135. package/DatePicker/utils/birthdayHelpers.js.map +1 -0
  136. package/DatePicker/utils/birthdayHelpers.test.d.ts +1 -0
  137. package/DatePicker/utils/birthdayHelpers.test.js +394 -0
  138. package/DatePicker/utils/birthdayHelpers.test.js.map +1 -0
  139. package/DatePicker/utils/dateHelpers.d.ts +6 -1
  140. package/DatePicker/utils/dateHelpers.js +13 -5
  141. package/DatePicker/utils/dateHelpers.js.map +1 -1
  142. package/DatePicker/utils/dateHelpers.test.d.ts +1 -0
  143. package/DatePicker/utils/dateHelpers.test.js +32 -0
  144. package/DatePicker/utils/dateHelpers.test.js.map +1 -0
  145. package/DatePicker/utils/index.d.ts +1 -0
  146. package/DatePicker/utils/index.js +1 -0
  147. package/DatePicker/utils/timezoneHelpers.d.ts +3 -0
  148. package/DatePicker/utils/timezoneHelpers.js +32 -0
  149. package/DatePicker/utils/timezoneHelpers.js.map +1 -0
  150. package/DatePicker/utils/types.d.ts +15 -2
  151. package/Dialog/Dialog.d.ts +8 -22
  152. package/Dialog/Dialog.stories.d.ts +1 -1
  153. package/Dialog/Dialog.stories.js.map +1 -1
  154. package/Dialog/components/CancelAction.d.ts +8 -6
  155. package/Dialog/components/ConfirmAction.d.ts +8 -6
  156. package/Dialog/components/DialogContent.d.ts +1 -1
  157. package/Dialog/components/DialogFooter.d.ts +1 -1
  158. package/Dialog/components/DialogTitle.d.ts +1 -1
  159. package/Dialog/components/Icon.d.ts +7 -6
  160. package/DragCursor/DragCursor.d.ts +7 -0
  161. package/DragCursor/DragCursor.js +21 -0
  162. package/DragCursor/DragCursor.js.map +1 -0
  163. package/DragCursor/DragCursor.stories.d.ts +10 -0
  164. package/DragCursor/DragCursor.stories.js +97 -0
  165. package/DragCursor/DragCursor.stories.js.map +1 -0
  166. package/DragCursor/index.d.ts +1 -0
  167. package/DragCursor/index.js +1 -0
  168. package/Drawer/Drawer.d.ts +18 -28
  169. package/Drawer/Drawer.js +2 -1
  170. package/Drawer/Drawer.js.map +1 -1
  171. package/Drawer/Drawer.stories.d.ts +2 -1
  172. package/Drawer/Drawer.stories.js +21 -2
  173. package/Drawer/Drawer.stories.js.map +1 -1
  174. package/Drawer/components/CancelButton.d.ts +8 -6
  175. package/Drawer/components/ConfirmButton.d.ts +8 -6
  176. package/Drawer/components/DrawerContent.d.ts +1 -1
  177. package/Drawer/components/DrawerHeader.d.ts +2 -2
  178. package/Drawer/components/DrawerHeader.js +11 -8
  179. package/Drawer/components/DrawerHeader.js.map +1 -1
  180. package/Drawer/components/Icon.d.ts +7 -6
  181. package/Drawer/components/Icon.js +3 -4
  182. package/Drawer/components/Icon.js.map +1 -1
  183. package/DropdownMenu/DropdownMenu.stories.d.ts +1 -1
  184. package/DropdownMenu/DropdownMenu.stories.js.map +1 -1
  185. package/DropdownMenu/components/DropdownMenuItem.d.ts +8 -2
  186. package/DropdownMenu/components/DropdownMenuItem.js +11 -3
  187. package/DropdownMenu/components/DropdownMenuItem.js.map +1 -1
  188. package/DropdownMenu/components/DropdownMenuLink.d.ts +9 -8
  189. package/DropdownMenu/components/DropdownMenuSeparator.d.ts +7 -6
  190. package/EditableTitle/EditableTitle.d.ts +67 -0
  191. package/EditableTitle/EditableTitle.js +73 -0
  192. package/EditableTitle/EditableTitle.js.map +1 -0
  193. package/EditableTitle/index.d.ts +1 -0
  194. package/EditableTitle/index.js +1 -0
  195. package/EmptyState/EmptyState.d.ts +43 -0
  196. package/EmptyState/EmptyState.js +93 -0
  197. package/EmptyState/EmptyState.js.map +1 -0
  198. package/EmptyState/EmptyState.stories.d.ts +13 -0
  199. package/EmptyState/EmptyState.stories.js +136 -0
  200. package/EmptyState/EmptyState.stories.js.map +1 -0
  201. package/EmptyState/illustrations/ContentIllustration.d.ts +2 -0
  202. package/EmptyState/illustrations/ContentIllustration.js +100 -0
  203. package/EmptyState/illustrations/ContentIllustration.js.map +1 -0
  204. package/EmptyState/illustrations/LayoutIllustration.d.ts +2 -0
  205. package/EmptyState/illustrations/LayoutIllustration.js +93 -0
  206. package/EmptyState/illustrations/LayoutIllustration.js.map +1 -0
  207. package/EmptyState/illustrations/ListingIllustration.d.ts +2 -0
  208. package/EmptyState/illustrations/ListingIllustration.js +92 -0
  209. package/EmptyState/illustrations/ListingIllustration.js.map +1 -0
  210. package/EmptyState/illustrations/SelectIllustration.d.ts +2 -0
  211. package/EmptyState/illustrations/SelectIllustration.js +100 -0
  212. package/EmptyState/illustrations/SelectIllustration.js.map +1 -0
  213. package/EmptyState/illustrations/TableIllustration.d.ts +2 -0
  214. package/EmptyState/illustrations/TableIllustration.js +233 -0
  215. package/EmptyState/illustrations/TableIllustration.js.map +1 -0
  216. package/EmptyState/illustrations/UploadIllustration.d.ts +2 -0
  217. package/EmptyState/illustrations/UploadIllustration.js +77 -0
  218. package/EmptyState/illustrations/UploadIllustration.js.map +1 -0
  219. package/EmptyState/illustrations/index.d.ts +6 -0
  220. package/EmptyState/illustrations/index.js +6 -0
  221. package/EmptyState/index.d.ts +1 -0
  222. package/EmptyState/index.js +1 -0
  223. package/FilePicker/FilePicker.d.ts +19 -18
  224. package/FilePicker/FilePicker.stories.d.ts +7 -1
  225. package/FilePicker/FilePicker.stories.js +24 -1
  226. package/FilePicker/FilePicker.stories.js.map +1 -1
  227. package/FilePicker/primitives/FilePickerPrimitive.d.ts +20 -19
  228. package/FilePicker/primitives/FilePickerPrimitive.stories.d.ts +1 -1
  229. package/FilePicker/primitives/FilePickerPrimitive.stories.js.map +1 -1
  230. package/FilePicker/primitives/components/Trigger.d.ts +1 -1
  231. package/FilePicker/primitives/components/previews/ImagePreview/ImagePreview.d.ts +19 -7
  232. package/FilePicker/primitives/components/previews/ImagePreview/ImagePreview.js +15 -6
  233. package/FilePicker/primitives/components/previews/ImagePreview/ImagePreview.js.map +1 -1
  234. package/FilePicker/primitives/components/previews/ItemActions.js +1 -1
  235. package/FilePicker/primitives/components/previews/ItemActions.js.map +1 -1
  236. package/FilePicker/primitives/components/previews/ItemDescription.js +1 -1
  237. package/FilePicker/primitives/components/previews/ItemDescription.js.map +1 -1
  238. package/FilePicker/primitives/components/previews/RichItemPreview/FileType.d.ts +5 -0
  239. package/FilePicker/primitives/components/previews/RichItemPreview/FileType.js +45 -0
  240. package/FilePicker/primitives/components/previews/RichItemPreview/FileType.js.map +1 -0
  241. package/FilePicker/primitives/components/previews/RichItemPreview/Placeholder.d.ts +5 -0
  242. package/FilePicker/primitives/components/previews/RichItemPreview/Placeholder.js +14 -0
  243. package/FilePicker/primitives/components/previews/RichItemPreview/Placeholder.js.map +1 -0
  244. package/FilePicker/primitives/components/previews/RichItemPreview/RichItemPreview.d.ts +12 -6
  245. package/FilePicker/primitives/components/previews/RichItemPreview/RichItemPreview.js +54 -12
  246. package/FilePicker/primitives/components/previews/RichItemPreview/RichItemPreview.js.map +1 -1
  247. package/FilePicker/primitives/components/previews/RichItemPreview/RichItemThumbnail.d.ts +11 -1
  248. package/FilePicker/primitives/components/previews/RichItemPreview/RichItemThumbnail.js +8 -61
  249. package/FilePicker/primitives/components/previews/RichItemPreview/RichItemThumbnail.js.map +1 -1
  250. package/FilePicker/primitives/components/previews/RichItemPreview/Thumbnail.d.ts +11 -0
  251. package/FilePicker/primitives/components/previews/RichItemPreview/Thumbnail.js +24 -0
  252. package/FilePicker/primitives/components/previews/RichItemPreview/Thumbnail.js.map +1 -0
  253. package/FilePicker/primitives/components/previews/RichItemPreview/ThumbnailActions.d.ts +10 -0
  254. package/FilePicker/primitives/components/previews/RichItemPreview/ThumbnailActions.js +46 -0
  255. package/FilePicker/primitives/components/previews/RichItemPreview/ThumbnailActions.js.map +1 -0
  256. package/FilePicker/primitives/components/previews/TextOnlyPreview/TextOnlyPreview.d.ts +7 -6
  257. package/FilePicker/primitives/components/previews/TruncatedFileName.d.ts +7 -0
  258. package/FilePicker/primitives/components/previews/TruncatedFileName.js +20 -0
  259. package/FilePicker/primitives/components/previews/TruncatedFileName.js.map +1 -0
  260. package/FilePicker/primitives/components/previews/fileName.d.ts +4 -0
  261. package/FilePicker/primitives/components/previews/fileName.js +26 -0
  262. package/FilePicker/primitives/components/previews/fileName.js.map +1 -0
  263. package/FilePicker/primitives/components/previews/index.d.ts +1 -0
  264. package/FilePicker/primitives/components/previews/index.js +1 -0
  265. package/FilePicker/primitives/components/previews/variants.d.ts +1 -1
  266. package/FillViewport/FillViewport.d.ts +63 -0
  267. package/FillViewport/FillViewport.js +67 -0
  268. package/FillViewport/FillViewport.js.map +1 -0
  269. package/FillViewport/index.d.ts +1 -0
  270. package/FillViewport/index.js +1 -0
  271. package/FormComponent/Description.d.ts +7 -6
  272. package/FormComponent/ErrorMessage.d.ts +7 -6
  273. package/FormComponent/Label.d.ts +7 -6
  274. package/FormComponent/Note.d.ts +7 -6
  275. package/Grid/Grid.d.ts +25 -23
  276. package/Grid/Grid.js.map +1 -1
  277. package/Grid/Grid.stories.d.ts +1 -1
  278. package/Grid/Grid.stories.js.map +1 -1
  279. package/HeaderBar/HeaderBar.d.ts +7 -6
  280. package/HeaderBar/HeaderBar.stories.d.ts +1 -1
  281. package/HeaderBar/HeaderBar.stories.js.map +1 -1
  282. package/Heading/Heading.d.ts +8 -7
  283. package/Heading/Heading.stories.d.ts +1 -1
  284. package/Heading/Heading.stories.js.map +1 -1
  285. package/Icon/Icon.d.ts +9 -8
  286. package/Icon/Icon.stories.d.ts +1 -1
  287. package/Icon/Icon.stories.js.map +1 -1
  288. package/IconPicker/IconPicker.d.ts +7 -6
  289. package/IconPicker/IconPicker.stories.d.ts +1 -1
  290. package/IconPicker/IconPicker.stories.js.map +1 -1
  291. package/IconPicker/primitives/IconPickerPrimitive.d.ts +1 -1
  292. package/IconPicker/primitives/IconPickerPrimitive.js +1 -2
  293. package/IconPicker/primitives/IconPickerPrimitive.js.map +1 -1
  294. package/IconPicker/primitives/IconPickerPrimitive.stories.d.ts +1 -1
  295. package/IconPicker/primitives/IconPickerPrimitive.stories.js.map +1 -1
  296. package/IconPicker/primitives/components/IconPickerTrigger.d.ts +1 -1
  297. package/ImageEditor/AspectRatioPreview.d.ts +16 -0
  298. package/ImageEditor/AspectRatioPreview.js +26 -0
  299. package/ImageEditor/AspectRatioPreview.js.map +1 -0
  300. package/ImageEditor/CropHotspotEditor.d.ts +22 -0
  301. package/ImageEditor/CropHotspotEditor.js +402 -0
  302. package/ImageEditor/CropHotspotEditor.js.map +1 -0
  303. package/ImageEditor/ImageEditor.d.ts +18 -0
  304. package/ImageEditor/ImageEditor.js +151 -0
  305. package/ImageEditor/ImageEditor.js.map +1 -0
  306. package/ImageEditor/ImageEditor.stories.d.ts +6 -0
  307. package/ImageEditor/ImageEditor.stories.js +42 -0
  308. package/ImageEditor/ImageEditor.stories.js.map +1 -0
  309. package/ImageEditor/MetaFields.d.ts +12 -0
  310. package/ImageEditor/MetaFields.js +20 -0
  311. package/ImageEditor/MetaFields.js.map +1 -0
  312. package/ImageEditor/SectionLabel.d.ts +8 -0
  313. package/ImageEditor/SectionLabel.js +7 -0
  314. package/ImageEditor/SectionLabel.js.map +1 -0
  315. package/ImageEditor/geometry.d.ts +46 -0
  316. package/ImageEditor/geometry.js +126 -0
  317. package/ImageEditor/geometry.js.map +1 -0
  318. package/ImageEditor/index.d.ts +3 -0
  319. package/ImageEditor/index.js +3 -0
  320. package/ImageEditor/types.d.ts +52 -0
  321. package/ImageEditor/types.js +35 -0
  322. package/ImageEditor/types.js.map +1 -0
  323. package/Input/Input.d.ts +7 -6
  324. package/Input/Input.stories.d.ts +1 -1
  325. package/Input/Input.stories.js.map +1 -1
  326. package/Input/InputPrimitive.d.ts +9 -8
  327. package/Input/InputPrimitive.stories.d.ts +1 -1
  328. package/Input/InputPrimitive.stories.js.map +1 -1
  329. package/Label/Label.d.ts +8 -7
  330. package/Label/Label.stories.d.ts +1 -1
  331. package/Label/Label.stories.js.map +1 -1
  332. package/Label/components/LabelValue.d.ts +1 -1
  333. package/Link/Link.d.ts +3 -3
  334. package/Link/Link.js +1 -1
  335. package/Link/Link.js.map +1 -1
  336. package/Link/Link.stories.d.ts +1 -1
  337. package/Link/Link.stories.js.map +1 -1
  338. package/List/List.d.ts +8 -7
  339. package/List/List.stories.d.ts +1 -1
  340. package/List/List.stories.js.map +1 -1
  341. package/List/components/ListItem.d.ts +7 -6
  342. package/List/components/ListItemAction.d.ts +7 -6
  343. package/List/components/ListItemHandle.d.ts +7 -6
  344. package/List/components/ListItemIcon.d.ts +7 -6
  345. package/List/components/ListItemSeparator.d.ts +7 -6
  346. package/Loader/Loader.d.ts +9 -8
  347. package/Loader/Loader.stories.d.ts +1 -1
  348. package/Loader/Loader.stories.js.map +1 -1
  349. package/Loader/OverlayLoader.d.ts +7 -6
  350. package/Loader/OverlayLoader.stories.d.ts +1 -1
  351. package/Loader/OverlayLoader.stories.js.map +1 -1
  352. package/Markdown/Markdown.d.ts +47 -0
  353. package/Markdown/Markdown.js +17 -0
  354. package/Markdown/Markdown.js.map +1 -0
  355. package/Markdown/index.d.ts +1 -0
  356. package/Markdown/index.js +1 -0
  357. package/MultiAutoComplete/MultiAutoComplete.d.ts +7 -6
  358. package/MultiAutoComplete/MultiAutoComplete.stories.d.ts +1 -1
  359. package/MultiAutoComplete/MultiAutoComplete.stories.js.map +1 -1
  360. package/MultiAutoComplete/primitives/MultiAutoCompletePrimitive.d.ts +13 -6
  361. package/MultiAutoComplete/primitives/MultiAutoCompletePrimitive.js +1 -0
  362. package/MultiAutoComplete/primitives/MultiAutoCompletePrimitive.js.map +1 -1
  363. package/MultiAutoComplete/primitives/MultiAutoCompletePrimitive.stories.d.ts +1 -1
  364. package/MultiAutoComplete/primitives/MultiAutoCompletePrimitive.stories.js.map +1 -1
  365. package/MultiAutoComplete/primitives/presenters/MultiAutoCompletePresenterWithFreeInput.d.ts +3 -3
  366. package/MultiAutoComplete/primitives/useMultiAutoComplete.d.ts +3 -3
  367. package/MultiFilePicker/MultiFilePicker.d.ts +19 -18
  368. package/MultiFilePicker/MultiFilePicker.stories.d.ts +1 -1
  369. package/MultiFilePicker/MultiFilePicker.stories.js.map +1 -1
  370. package/MultiFilePicker/primitives/MultiFilePickerPrimitive.d.ts +19 -18
  371. package/MultiFilePicker/primitives/MultiFilePickerPrimitive.stories.d.ts +1 -1
  372. package/MultiFilePicker/primitives/MultiFilePickerPrimitive.stories.js.map +1 -1
  373. package/MultiSelect/MultiSelect.d.ts +7 -6
  374. package/MultiSelect/MultiSelect.stories.d.ts +1 -1
  375. package/MultiSelect/MultiSelect.stories.js.map +1 -1
  376. package/MultiSelect/primitives/MultiSelectPrimitive.d.ts +10 -6
  377. package/MultiSelect/primitives/MultiSelectPrimitive.js +12 -5
  378. package/MultiSelect/primitives/MultiSelectPrimitive.js.map +1 -1
  379. package/Popover/Popover.d.ts +7 -6
  380. package/Popover/Popover.stories.d.ts +8 -1
  381. package/Popover/Popover.stories.js +24 -1
  382. package/Popover/Popover.stories.js.map +1 -1
  383. package/Popover/primitives/PopoverPrimitive.d.ts +7 -7
  384. package/Popover/primitives/components/PopoverContent.js +6 -1
  385. package/Popover/primitives/components/PopoverContent.js.map +1 -1
  386. package/ProgressBar/ProgressBar.d.ts +7 -6
  387. package/ProgressBar/ProgressBar.stories.d.ts +1 -1
  388. package/ProgressBar/ProgressBar.stories.js.map +1 -1
  389. package/RadioGroup/RadioGroup.d.ts +7 -6
  390. package/RadioGroup/RadioGroup.stories.d.ts +1 -1
  391. package/RadioGroup/RadioGroup.stories.js.map +1 -1
  392. package/RadioGroup/primitives/Radio.d.ts +7 -6
  393. package/RadioGroup/primitives/RadioGroupPrimitive.d.ts +5 -1
  394. package/RadioGroup/primitives/RadioGroupPrimitive.stories.d.ts +1 -1
  395. package/RadioGroup/primitives/RadioGroupPrimitive.stories.js.map +1 -1
  396. package/RangeSlider/RangeSlider.d.ts +7 -6
  397. package/RangeSlider/RangeSlider.stories.d.ts +1 -1
  398. package/RangeSlider/RangeSlider.stories.js.map +1 -1
  399. package/RangeSlider/primitives/RangeSliderPrimitive.stories.d.ts +1 -1
  400. package/RangeSlider/primitives/RangeSliderPrimitive.stories.js.map +1 -1
  401. package/ScrollArea/ScrollArea.d.ts +16 -2
  402. package/ScrollArea/ScrollArea.js +25 -11
  403. package/ScrollArea/ScrollArea.js.map +1 -1
  404. package/ScrollArea/ScrollArea.stories.d.ts +1 -1
  405. package/ScrollArea/ScrollArea.stories.js.map +1 -1
  406. package/SegmentedControl/SegmentedControl.d.ts +11 -6
  407. package/SegmentedControl/SegmentedControl.js +6 -2
  408. package/SegmentedControl/SegmentedControl.js.map +1 -1
  409. package/SegmentedControl/SegmentedControl.stories.d.ts +5 -1
  410. package/SegmentedControl/SegmentedControl.stories.js +100 -2
  411. package/SegmentedControl/SegmentedControl.stories.js.map +1 -1
  412. package/SegmentedControl/SegmentedControlTab.d.ts +10 -0
  413. package/SegmentedControl/SegmentedControlTab.js +21 -0
  414. package/SegmentedControl/SegmentedControlTab.js.map +1 -0
  415. package/SegmentedControl/SegmentedControlTabs.d.ts +14 -0
  416. package/SegmentedControl/SegmentedControlTabs.js +71 -0
  417. package/SegmentedControl/SegmentedControlTabs.js.map +1 -0
  418. package/SegmentedControl/SegmentedControlTabsContext.d.ts +19 -0
  419. package/SegmentedControl/SegmentedControlTabsContext.js +11 -0
  420. package/SegmentedControl/SegmentedControlTabsContext.js.map +1 -0
  421. package/SegmentedControl/index.d.ts +2 -0
  422. package/SegmentedControl/index.js +2 -0
  423. package/SegmentedControl/primitives/SegmentedControlPrimitive.d.ts +6 -2
  424. package/SegmentedControl/primitives/SegmentedControlPrimitive.js +4 -3
  425. package/SegmentedControl/primitives/SegmentedControlPrimitive.js.map +1 -1
  426. package/SegmentedControl/primitives/SegmentedControlPrimitive.stories.d.ts +2 -1
  427. package/SegmentedControl/primitives/SegmentedControlPrimitive.stories.js +8 -1
  428. package/SegmentedControl/primitives/SegmentedControlPrimitive.stories.js.map +1 -1
  429. package/Select/Select.d.ts +7 -6
  430. package/Select/Select.stories.d.ts +1 -1
  431. package/Select/Select.stories.js.map +1 -1
  432. package/Select/primitives/SelectPrimitive.stories.d.ts +1 -1
  433. package/Select/primitives/SelectPrimitive.stories.js.map +1 -1
  434. package/Select/primitives/components/SelectContent.js +4 -6
  435. package/Select/primitives/components/SelectContent.js.map +1 -1
  436. package/Select/primitives/components/SelectTrigger.d.ts +2 -2
  437. package/Separator/Separator.d.ts +9 -8
  438. package/Separator/Separator.stories.d.ts +1 -1
  439. package/Separator/Separator.stories.js.map +1 -1
  440. package/Sidebar/Sidebar.d.ts +9 -6
  441. package/Sidebar/Sidebar.stories.d.ts +1 -1
  442. package/Sidebar/Sidebar.stories.js.map +1 -1
  443. package/Sidebar/components/SidebarContent.js +1 -1
  444. package/Sidebar/components/SidebarContent.js.map +1 -1
  445. package/Sidebar/components/SidebarIcon.d.ts +7 -6
  446. package/Sidebar/components/SidebarProvider.d.ts +4 -4
  447. package/Sidebar/components/SidebarRoot.js +1 -1
  448. package/Sidebar/components/SidebarRoot.js.map +1 -1
  449. package/Sidebar/components/items/SidebarMenuGroup.d.ts +9 -8
  450. package/Sidebar/components/items/SidebarMenuItem.d.ts +13 -9
  451. package/Sidebar/components/items/SidebarMenuItem.js +3 -1
  452. package/Sidebar/components/items/SidebarMenuItem.js.map +1 -1
  453. package/Sidebar/components/items/SidebarMenuItemBadge.d.ts +6 -0
  454. package/Sidebar/components/items/SidebarMenuItemBadge.js +7 -0
  455. package/Sidebar/components/items/SidebarMenuItemBadge.js.map +1 -0
  456. package/Sidebar/components/items/SidebarMenuItemIcon.d.ts +7 -6
  457. package/Sidebar/components/items/SidebarMenuLink.d.ts +12 -9
  458. package/Sidebar/components/items/SidebarMenuLink.js +3 -1
  459. package/Sidebar/components/items/SidebarMenuLink.js.map +1 -1
  460. package/Sidebar/components/items/SidebarMenuProvider.d.ts +4 -4
  461. package/Sidebar/components/items/SidebarMenuRootButton.d.ts +1 -1
  462. package/Sidebar/components/items/SidebarMenuRootButton.js +8 -3
  463. package/Sidebar/components/items/SidebarMenuRootButton.js.map +1 -1
  464. package/Sidebar/components/items/SidebarMenuRootItem.d.ts +9 -7
  465. package/Sidebar/components/items/SidebarMenuSubButton.d.ts +1 -1
  466. package/Sidebar/components/items/SidebarMenuSubButton.js +14 -6
  467. package/Sidebar/components/items/SidebarMenuSubButton.js.map +1 -1
  468. package/Sidebar/components/items/SidebarMenuSubItem.js +3 -3
  469. package/Sidebar/components/items/SidebarMenuSubItem.js.map +1 -1
  470. package/Sidebar/components/items/SidebarMenuSubItemIndentation.js +2 -1
  471. package/Sidebar/components/items/SidebarMenuSubItemIndentation.js.map +1 -1
  472. package/Skeleton/Skeleton.d.ts +9 -7
  473. package/Skeleton/Skeleton.js +10 -4
  474. package/Skeleton/Skeleton.js.map +1 -1
  475. package/Skeleton/Skeleton.stories.d.ts +3 -1
  476. package/Skeleton/Skeleton.stories.js +28 -2
  477. package/Skeleton/Skeleton.stories.js.map +1 -1
  478. package/Slider/Slider.d.ts +7 -6
  479. package/Slider/Slider.stories.d.ts +1 -1
  480. package/Slider/Slider.stories.js.map +1 -1
  481. package/Slider/primitives/SliderPrimitive.stories.d.ts +1 -1
  482. package/Slider/primitives/SliderPrimitive.stories.js.map +1 -1
  483. package/SteppedProgress/SteppedProgress.d.ts +7 -6
  484. package/SteppedProgress/SteppedProgress.stories.d.ts +1 -1
  485. package/SteppedProgress/SteppedProgress.stories.js.map +1 -1
  486. package/SteppedProgress/SteppedProgressItem.d.ts +7 -6
  487. package/Switch/Switch.d.ts +10 -9
  488. package/Switch/Switch.js +21 -7
  489. package/Switch/Switch.js.map +1 -1
  490. package/Switch/Switch.stories.d.ts +1 -1
  491. package/Switch/Switch.stories.js.map +1 -1
  492. package/Switch/domains/SwitchItemDto.d.ts +1 -1
  493. package/Switch/primitives/SwitchPrimitive.d.ts +10 -6
  494. package/Switch/primitives/SwitchPrimitive.js +4 -3
  495. package/Switch/primitives/SwitchPrimitive.js.map +1 -1
  496. package/Switch/primitives/SwitchPrimitive.stories.d.ts +1 -1
  497. package/Switch/primitives/SwitchPrimitive.stories.js.map +1 -1
  498. package/Table/Table.d.ts +12 -10
  499. package/Table/components/Direction.d.ts +1 -1
  500. package/Tabs/Tabs.d.ts +14 -7
  501. package/Tabs/Tabs.js +32 -11
  502. package/Tabs/Tabs.js.map +1 -1
  503. package/Tabs/Tabs.mdx +27 -0
  504. package/Tabs/Tabs.stories.d.ts +2 -1
  505. package/Tabs/Tabs.stories.js +19 -1
  506. package/Tabs/Tabs.stories.js.map +1 -1
  507. package/Tabs/components/Content.d.ts +1 -1
  508. package/Tabs/components/List.d.ts +2 -2
  509. package/Tabs/components/Tab.d.ts +7 -6
  510. package/Tabs/components/Trigger.d.ts +3 -2
  511. package/Tabs/components/Trigger.js +8 -3
  512. package/Tabs/components/Trigger.js.map +1 -1
  513. package/Tag/Tag.d.ts +8 -7
  514. package/Tag/Tag.stories.d.ts +1 -1
  515. package/Tag/Tag.stories.js.map +1 -1
  516. package/Tags/Tags.d.ts +7 -6
  517. package/Tags/Tags.stories.d.ts +1 -1
  518. package/Tags/Tags.stories.js.map +1 -1
  519. package/Tags/primitives/TagsPrimitive.d.ts +7 -6
  520. package/Tags/primitives/TagsPrimitive.stories.d.ts +1 -1
  521. package/Tags/primitives/TagsPrimitive.stories.js.map +1 -1
  522. package/Text/Text.d.ts +8 -7
  523. package/Text/Text.stories.d.ts +1 -1
  524. package/Text/Text.stories.js.map +1 -1
  525. package/Textarea/Textarea.d.ts +7 -6
  526. package/Textarea/Textarea.stories.d.ts +1 -1
  527. package/Textarea/Textarea.stories.js.map +1 -1
  528. package/Textarea/TextareaPrimitive.d.ts +9 -8
  529. package/Textarea/TextareaPrimitive.stories.d.ts +1 -1
  530. package/Textarea/TextareaPrimitive.stories.js.map +1 -1
  531. package/TimeAgo/TimeAgo.stories.d.ts +1 -1
  532. package/TimeAgo/TimeAgo.stories.js.map +1 -1
  533. package/TimeAgo/getElapsedSeconds.js +3 -3
  534. package/TimeAgo/getElapsedSeconds.js.map +1 -1
  535. package/Toast/Toast.d.ts +7 -6
  536. package/Toast/components/ToastActions.d.ts +7 -6
  537. package/Toast/components/ToastDescription.d.ts +7 -6
  538. package/Toast/components/ToastTitle.d.ts +7 -6
  539. package/Toast/useToast.stories.d.ts +1 -1
  540. package/Toast/useToast.stories.js.map +1 -1
  541. package/Toggle/Toggle.d.ts +7 -6
  542. package/Toggle/Toggle.stories.d.ts +1 -1
  543. package/Toggle/Toggle.stories.js.map +1 -1
  544. package/Toggle/primitives/TogglePrimitive.d.ts +13 -9
  545. package/Toggle/primitives/TogglePrimitive.stories.d.ts +1 -1
  546. package/Toggle/primitives/TogglePrimitive.stories.js.map +1 -1
  547. package/ToggleGroup/ToggleGroup.d.ts +7 -6
  548. package/ToggleGroup/ToggleGroup.stories.d.ts +1 -1
  549. package/ToggleGroup/ToggleGroup.stories.js.map +1 -1
  550. package/ToggleGroup/domains/ToggleGroupItem.d.ts +3 -0
  551. package/ToggleGroup/domains/ToggleGroupItem.js +6 -1
  552. package/ToggleGroup/domains/ToggleGroupItem.js.map +1 -1
  553. package/ToggleGroup/domains/ToggleGroupItemFormatted.d.ts +1 -0
  554. package/ToggleGroup/domains/ToggleGroupItemFormatter.js +2 -1
  555. package/ToggleGroup/domains/ToggleGroupItemFormatter.js.map +1 -1
  556. package/ToggleGroup/domains/ToggleGroupItemParams.d.ts +1 -0
  557. package/ToggleGroup/primitives/ToggleGroupPrimitive.d.ts +13 -9
  558. package/ToggleGroup/primitives/ToggleGroupPrimitive.js +12 -3
  559. package/ToggleGroup/primitives/ToggleGroupPrimitive.js.map +1 -1
  560. package/ToggleGroup/primitives/ToggleGroupPrimitive.stories.d.ts +1 -1
  561. package/ToggleGroup/primitives/ToggleGroupPrimitive.stories.js.map +1 -1
  562. package/Tooltip/Tooltip.d.ts +7 -6
  563. package/Tooltip/Tooltip.stories.d.ts +1 -1
  564. package/Tooltip/Tooltip.stories.js.map +1 -1
  565. package/Tree/Tree.d.ts +7 -6
  566. package/Tree/Tree.stories.d.ts +1 -1
  567. package/Tree/Tree.stories.js.map +1 -1
  568. package/Tree/components/Item.d.ts +7 -6
  569. package/Tree/components/ItemCollapseTrigger.d.ts +7 -6
  570. package/Tree/components/ItemContent.d.ts +8 -6
  571. package/Tree/components/ItemDragHandle.d.ts +7 -6
  572. package/Tree/components/ItemIcon.d.ts +7 -6
  573. package/Tree/components/ItemPlaceholder.d.ts +7 -6
  574. package/Tree/components/ItemSubIndentation.d.ts +7 -6
  575. package/Tree/useTree.js +6 -2
  576. package/Tree/useTree.js.map +1 -1
  577. package/Widget/Widget.d.ts +8 -22
  578. package/Widget/Widget.stories.d.ts +1 -1
  579. package/Widget/Widget.stories.js.map +1 -1
  580. package/Widget/components/Icon.d.ts +7 -6
  581. package/Widget/components/WidgetAction.d.ts +8 -6
  582. package/Widget/components/WidgetContent.d.ts +5 -5
  583. package/exports/admin/ui.d.ts +3 -0
  584. package/exports/admin/ui.js +3 -0
  585. package/hooks/index.d.ts +1 -0
  586. package/hooks/index.js +1 -0
  587. package/hooks/useEscapeScrollLock.d.ts +13 -0
  588. package/hooks/useEscapeScrollLock.js +21 -0
  589. package/hooks/useEscapeScrollLock.js.map +1 -0
  590. package/index.d.ts +8 -0
  591. package/index.js +8 -0
  592. package/package.json +33 -35
  593. package/theme.css +52 -0
  594. package/utils.js +53 -34
  595. package/utils.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker/DatePicker.stories.js","sources":["../../src/DatePicker/DatePicker.stories.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport type { Meta, StoryObj } from \"@storybook/react-webpack5\";\nimport { addDays, nextSaturday } from \"date-fns\";\nimport { DatePicker } from \"./DatePicker.js\";\n\nconst meta: Meta<typeof DatePicker> = {\n title: \"Components/Form/DatePicker\",\n component: DatePicker,\n argTypes: {\n onChange: { action: \"onChange\" },\n type: {\n control: \"select\",\n options: [\n \"date\",\n \"time\",\n \"dateTimeLocal\",\n \"dateTimeTz\",\n \"month\",\n \"week\",\n \"year\",\n \"dateRange\",\n \"multipleDates\",\n \"multipleMonths\",\n \"multipleYears\"\n ],\n defaultValue: \"date\"\n },\n disabled: {\n control: \"boolean\",\n defaultValue: false\n }\n },\n parameters: {\n layout: \"padded\"\n },\n render: args => {\n const [value, setValue] = useState<any>();\n return <DatePicker {...args} value={value} onChange={setValue} />;\n }\n};\n\nexport default meta;\ntype Story = StoryObj<typeof DatePicker>;\n\nexport const Default: Story = {\n args: {\n type: \"date\"\n }\n};\n\nexport const WithLabel: Story = {\n args: {\n type: \"date\",\n label: \"Any field label\"\n }\n};\n\nexport const WithLabelRequired: Story = {\n args: {\n type: \"date\",\n label: \"Any field label\",\n required: true\n }\n};\n\nexport const WithDescription: Story = {\n args: {\n type: \"date\",\n description: \"Provide the required information for processing your request.\"\n }\n};\n\nexport const WithNotes: Story = {\n args: {\n type: \"date\",\n note: \"Note: Ensure your selection or input is accurate before proceeding.\"\n }\n};\n\nexport const WithErrors: Story = {\n args: {\n type: \"date\",\n validation: {\n isValid: false,\n message: \"This field is required.\"\n }\n }\n};\n\nexport const Disabled: Story = {\n args: {\n type: \"date\",\n label: \"Any field label\",\n disabled: true\n }\n};\n\nexport const FullExample: Story = {\n args: {\n type: \"date\",\n label: \"Any field label\",\n required: true,\n description: \"Provide the required information for processing your request.\",\n note: \"Note: Ensure your selection or input is accurate before proceeding.\",\n validation: {\n isValid: false,\n message: \"This field is required.\"\n }\n }\n};\n\nexport const WithPresets: Story = {\n render: args => {\n const [value, setValue] = useState<string | undefined>();\n const presets = [\n { label: \"Today\", value: () => new Date() },\n { label: \"Tomorrow\", value: () => addDays(new Date(), 1) },\n { label: \"In 3 days\", value: () => addDays(new Date(), 3) },\n { label: \"In a week\", value: () => addDays(new Date(), 7) },\n { label: \"In 2 weeks\", value: () => addDays(new Date(), 14) },\n { label: \"Next Saturday\", value: () => nextSaturday(new Date()) }\n ];\n return (\n <DatePicker {...args} type=\"date\" value={value} onChange={setValue} presets={presets} />\n );\n },\n args: {\n label: \"Pick a date\",\n description: \"Choose a date or use a preset.\"\n }\n};\n\nexport const TypeTime: Story = {\n render: args => {\n const [value, setValue] = useState<string | undefined>();\n return <DatePicker {...args} type=\"time\" value={value} onChange={setValue} />;\n },\n args: {\n label: \"Time\"\n }\n};\n\nexport const TypeDateTimeLocal: Story = {\n render: args => {\n const [value, setValue] = useState<string | undefined>();\n return <DatePicker {...args} type=\"dateTimeLocal\" value={value} onChange={setValue} />;\n },\n args: {\n label: \"Date & Time (local)\"\n }\n};\n\nexport const TypeDateTimeTz: Story = {\n render: args => {\n const [value, setValue] = useState<string | undefined>();\n return <DatePicker {...args} type=\"dateTimeTz\" value={value} onChange={setValue} />;\n },\n args: {\n label: \"Date & Time (with timezone)\"\n }\n};\n\nexport const TypeMonth: Story = {\n render: args => {\n const [value, setValue] = useState<string | undefined>();\n return <DatePicker {...args} type=\"month\" value={value} onChange={setValue} />;\n },\n args: {\n label: \"Month\"\n }\n};\n\nexport const TypeWeek: Story = {\n render: args => {\n const [value, setValue] = useState<string | undefined>();\n return <DatePicker {...args} type=\"week\" value={value} onChange={setValue} />;\n },\n args: {\n label: \"Week\"\n }\n};\n\nexport const TypeYear: Story = {\n render: args => {\n const [value, setValue] = useState<number | undefined>();\n return (\n <DatePicker\n {...args}\n type=\"year\"\n value={value}\n onChange={setValue}\n yearRange={[2015, 2035]}\n />\n );\n },\n args: {\n label: \"Year\"\n }\n};\n\nexport const TypeDateRange: Story = {\n render: args => {\n const [value, setValue] = useState<{ from?: string; to?: string } | undefined>();\n return <DatePicker {...args} type=\"dateRange\" value={value} onChange={setValue} />;\n },\n args: {\n label: \"Date Range\"\n }\n};\n\nexport const TypeMultipleDates: Story = {\n render: args => {\n const [value, setValue] = useState<string[]>([]);\n return <DatePicker {...args} type=\"multipleDates\" value={value} onChange={setValue} />;\n },\n args: {\n label: \"Multiple Dates\"\n }\n};\n\nexport const TypeMultipleMonths: Story = {\n render: args => {\n const [value, setValue] = useState<string[]>([]);\n return <DatePicker {...args} type=\"multipleMonths\" value={value} onChange={setValue} />;\n },\n args: {\n label: \"Multiple Months\"\n }\n};\n\nexport const TypeMultipleYears: Story = {\n render: args => {\n const [value, setValue] = useState<number[]>([]);\n return (\n <DatePicker\n {...args}\n type=\"multipleYears\"\n value={value}\n onChange={setValue}\n yearRange={[2015, 2035]}\n />\n );\n },\n args: {\n label: \"Multiple Years\"\n }\n};\n\nconst formatValue = (value: any): string => {\n if (value === undefined || value === null) {\n return \"undefined\";\n }\n if (value instanceof Date) {\n return value.toISOString();\n }\n if (Array.isArray(value)) {\n return JSON.stringify(\n value.map((v: any) => (v instanceof Date ? v.toISOString() : v)),\n null,\n 2\n );\n }\n if (typeof value === \"object\") {\n return JSON.stringify(value, (_k, v) => (v instanceof Date ? v.toISOString() : v), 2);\n }\n return String(value);\n};\n\nconst DocumentationInner = (args: any) => {\n const isMultiple = (args.type as string)?.startsWith(\"multiple\");\n const [value, setValue] = useState<any>(isMultiple ? [] : undefined);\n const [validation, setValidation] = useState({ isValid: true, message: \"\" });\n\n const handleChange = (newValue: any) => {\n setValue(newValue);\n const isEmpty =\n newValue === undefined ||\n newValue === null ||\n newValue === \"\" ||\n (Array.isArray(newValue) && newValue.length === 0);\n if (args.required && isEmpty) {\n setValidation({ isValid: false, message: \"This field is required\" });\n } else {\n setValidation({ isValid: true, message: \"\" });\n }\n };\n\n return (\n <div>\n <DatePicker {...args} value={value} onChange={handleChange} validation={validation} />\n <div className=\"mt-md rounded-md border-sm border-neutral-muted bg-neutral-light p-sm\">\n <div className=\"text-xs font-medium text-neutral-dimmed mb-xs\">Current value</div>\n <pre className=\"text-sm text-neutral-strong whitespace-pre-wrap m-0\">\n {formatValue(value)}\n </pre>\n </div>\n </div>\n );\n};\n\nexport const Documentation: Story = {\n render: args => {\n return <DocumentationInner key={args.type as string} {...args} />;\n },\n args: {\n type: \"date\",\n label: \"Event Date\",\n required: true,\n disabled: false,\n description: \"Select the date for your event\",\n note: \"Note: Choose a date that works for all participants\",\n placeholder: \"Pick a date\",\n validation: undefined\n },\n argTypes: {\n type: {\n description: \"The type of date picker variant to render\",\n control: \"select\",\n options: [\n \"date\",\n \"time\",\n \"dateTimeLocal\",\n \"dateTimeTz\",\n \"month\",\n \"week\",\n \"year\",\n \"dateRange\",\n \"multipleDates\",\n \"multipleMonths\",\n \"multipleYears\"\n ],\n defaultValue: \"date\"\n },\n label: {\n description: \"Label text displayed above the picker\",\n control: \"text\"\n },\n required: {\n description: \"Makes the field required\",\n control: \"boolean\",\n defaultValue: true\n },\n disabled: {\n description: \"Disables the date picker\",\n control: \"boolean\",\n defaultValue: false\n },\n description: {\n description: \"Helper text displayed below the label\",\n control: \"text\"\n },\n note: {\n description: \"Additional note displayed below the picker\",\n control: \"text\"\n },\n placeholder: {\n description: \"Placeholder text shown when no date is selected\",\n control: \"text\"\n },\n validation: {\n description:\n \"Object containing validation state and message. Please refer to the example code for details on usage.\"\n },\n onChange: {\n description: \"Callback function when the value changes\"\n }\n }\n};\n"],"names":["meta","DatePicker","args","value","setValue","useState","Default","WithLabel","WithLabelRequired","WithDescription","WithNotes","WithErrors","Disabled","FullExample","WithPresets","presets","Date","addDays","nextSaturday","TypeTime","TypeDateTimeLocal","TypeDateTimeTz","TypeMonth","TypeWeek","TypeYear","TypeDateRange","TypeMultipleDates","TypeMultipleMonths","TypeMultipleYears","formatValue","Array","JSON","v","_k","String","DocumentationInner","isMultiple","undefined","validation","setValidation","handleChange","newValue","isEmpty","Documentation"],"mappings":";;;AAKA,MAAMA,OAAgC;IAClC,OAAO;IACP,WAAWC;IACX,UAAU;QACN,UAAU;YAAE,QAAQ;QAAW;QAC/B,MAAM;YACF,SAAS;YACT,SAAS;gBACL;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;aACH;YACD,cAAc;QAClB;QACA,UAAU;YACN,SAAS;YACT,cAAc;QAClB;IACJ;IACA,YAAY;QACR,QAAQ;IACZ;IACA,QAAQC,CAAAA;QACJ,MAAM,CAACC,OAAOC,SAAS,GAAGC;QAC1B,OAAO,WAAP,GAAO,oBAACJ,YAAUA;YAAE,GAAGC,IAAI;YAAE,OAAOC;YAAO,UAAUC;;IACzD;AACJ;AAEA,2BAAeJ;AAGR,MAAMM,UAAiB;IAC1B,MAAM;QACF,MAAM;IACV;AACJ;AAEO,MAAMC,YAAmB;IAC5B,MAAM;QACF,MAAM;QACN,OAAO;IACX;AACJ;AAEO,MAAMC,oBAA2B;IACpC,MAAM;QACF,MAAM;QACN,OAAO;QACP,UAAU;IACd;AACJ;AAEO,MAAMC,kBAAyB;IAClC,MAAM;QACF,MAAM;QACN,aAAa;IACjB;AACJ;AAEO,MAAMC,YAAmB;IAC5B,MAAM;QACF,MAAM;QACN,MAAM;IACV;AACJ;AAEO,MAAMC,aAAoB;IAC7B,MAAM;QACF,MAAM;QACN,YAAY;YACR,SAAS;YACT,SAAS;QACb;IACJ;AACJ;AAEO,MAAMC,WAAkB;IAC3B,MAAM;QACF,MAAM;QACN,OAAO;QACP,UAAU;IACd;AACJ;AAEO,MAAMC,cAAqB;IAC9B,MAAM;QACF,MAAM;QACN,OAAO;QACP,UAAU;QACV,aAAa;QACb,MAAM;QACN,YAAY;YACR,SAAS;YACT,SAAS;QACb;IACJ;AACJ;AAEO,MAAMC,cAAqB;IAC9B,QAAQZ,CAAAA;QACJ,MAAM,CAACC,OAAOC,SAAS,GAAGC;QAC1B,MAAMU,UAAU;YACZ;gBAAE,OAAO;gBAAS,OAAO,IAAM,IAAIC;YAAO;YAC1C;gBAAE,OAAO;gBAAY,OAAO,IAAMC,QAAQ,IAAID,QAAQ;YAAG;YACzD;gBAAE,OAAO;gBAAa,OAAO,IAAMC,QAAQ,IAAID,QAAQ;YAAG;YAC1D;gBAAE,OAAO;gBAAa,OAAO,IAAMC,QAAQ,IAAID,QAAQ;YAAG;YAC1D;gBAAE,OAAO;gBAAc,OAAO,IAAMC,QAAQ,IAAID,QAAQ;YAAI;YAC5D;gBAAE,OAAO;gBAAiB,OAAO,IAAME,aAAa,IAAIF;YAAQ;SACnE;QACD,OAAO,WAAP,GACI,oBAACf,YAAUA;YAAE,GAAGC,IAAI;YAAE,MAAK;YAAO,OAAOC;YAAO,UAAUC;YAAU,SAASW;;IAErF;IACA,MAAM;QACF,OAAO;QACP,aAAa;IACjB;AACJ;AAEO,MAAMI,WAAkB;IAC3B,QAAQjB,CAAAA;QACJ,MAAM,CAACC,OAAOC,SAAS,GAAGC;QAC1B,OAAO,WAAP,GAAO,oBAACJ,YAAUA;YAAE,GAAGC,IAAI;YAAE,MAAK;YAAO,OAAOC;YAAO,UAAUC;;IACrE;IACA,MAAM;QACF,OAAO;IACX;AACJ;AAEO,MAAMgB,oBAA2B;IACpC,QAAQlB,CAAAA;QACJ,MAAM,CAACC,OAAOC,SAAS,GAAGC;QAC1B,OAAO,WAAP,GAAO,oBAACJ,YAAUA;YAAE,GAAGC,IAAI;YAAE,MAAK;YAAgB,OAAOC;YAAO,UAAUC;;IAC9E;IACA,MAAM;QACF,OAAO;IACX;AACJ;AAEO,MAAMiB,iBAAwB;IACjC,QAAQnB,CAAAA;QACJ,MAAM,CAACC,OAAOC,SAAS,GAAGC;QAC1B,OAAO,WAAP,GAAO,oBAACJ,YAAUA;YAAE,GAAGC,IAAI;YAAE,MAAK;YAAa,OAAOC;YAAO,UAAUC;;IAC3E;IACA,MAAM;QACF,OAAO;IACX;AACJ;AAEO,MAAMkB,YAAmB;IAC5B,QAAQpB,CAAAA;QACJ,MAAM,CAACC,OAAOC,SAAS,GAAGC;QAC1B,OAAO,WAAP,GAAO,oBAACJ,YAAUA;YAAE,GAAGC,IAAI;YAAE,MAAK;YAAQ,OAAOC;YAAO,UAAUC;;IACtE;IACA,MAAM;QACF,OAAO;IACX;AACJ;AAEO,MAAMmB,WAAkB;IAC3B,QAAQrB,CAAAA;QACJ,MAAM,CAACC,OAAOC,SAAS,GAAGC;QAC1B,OAAO,WAAP,GAAO,oBAACJ,YAAUA;YAAE,GAAGC,IAAI;YAAE,MAAK;YAAO,OAAOC;YAAO,UAAUC;;IACrE;IACA,MAAM;QACF,OAAO;IACX;AACJ;AAEO,MAAMoB,WAAkB;IAC3B,QAAQtB,CAAAA;QACJ,MAAM,CAACC,OAAOC,SAAS,GAAGC;QAC1B,OAAO,WAAP,GACI,oBAACJ,YAAUA;YACN,GAAGC,IAAI;YACR,MAAK;YACL,OAAOC;YACP,UAAUC;YACV,WAAW;gBAAC;gBAAM;aAAK;;IAGnC;IACA,MAAM;QACF,OAAO;IACX;AACJ;AAEO,MAAMqB,gBAAuB;IAChC,QAAQvB,CAAAA;QACJ,MAAM,CAACC,OAAOC,SAAS,GAAGC;QAC1B,OAAO,WAAP,GAAO,oBAACJ,YAAUA;YAAE,GAAGC,IAAI;YAAE,MAAK;YAAY,OAAOC;YAAO,UAAUC;;IAC1E;IACA,MAAM;QACF,OAAO;IACX;AACJ;AAEO,MAAMsB,oBAA2B;IACpC,QAAQxB,CAAAA;QACJ,MAAM,CAACC,OAAOC,SAAS,GAAGC,SAAmB,EAAE;QAC/C,OAAO,WAAP,GAAO,oBAACJ,YAAUA;YAAE,GAAGC,IAAI;YAAE,MAAK;YAAgB,OAAOC;YAAO,UAAUC;;IAC9E;IACA,MAAM;QACF,OAAO;IACX;AACJ;AAEO,MAAMuB,qBAA4B;IACrC,QAAQzB,CAAAA;QACJ,MAAM,CAACC,OAAOC,SAAS,GAAGC,SAAmB,EAAE;QAC/C,OAAO,WAAP,GAAO,oBAACJ,YAAUA;YAAE,GAAGC,IAAI;YAAE,MAAK;YAAiB,OAAOC;YAAO,UAAUC;;IAC/E;IACA,MAAM;QACF,OAAO;IACX;AACJ;AAEO,MAAMwB,oBAA2B;IACpC,QAAQ1B,CAAAA;QACJ,MAAM,CAACC,OAAOC,SAAS,GAAGC,SAAmB,EAAE;QAC/C,OAAO,WAAP,GACI,oBAACJ,YAAUA;YACN,GAAGC,IAAI;YACR,MAAK;YACL,OAAOC;YACP,UAAUC;YACV,WAAW;gBAAC;gBAAM;aAAK;;IAGnC;IACA,MAAM;QACF,OAAO;IACX;AACJ;AAEA,MAAMyB,cAAc,CAAC1B;IACjB,IAAIA,QAAAA,OACA,OAAO;IAEX,IAAIA,iBAAiBa,MACjB,OAAOb,MAAM,WAAW;IAE5B,IAAI2B,MAAM,OAAO,CAAC3B,QACd,OAAO4B,KAAK,SAAS,CACjB5B,MAAM,GAAG,CAAC,CAAC6B,IAAYA,aAAahB,OAAOgB,EAAE,WAAW,KAAKA,IAC7D,MACA;IAGR,IAAI,AAAiB,YAAjB,OAAO7B,OACP,OAAO4B,KAAK,SAAS,CAAC5B,OAAO,CAAC8B,IAAID,IAAOA,aAAahB,OAAOgB,EAAE,WAAW,KAAKA,GAAI;IAEvF,OAAOE,OAAO/B;AAClB;AAEA,MAAMgC,qBAAqB,CAACjC;IACxB,MAAMkC,aAAclC,KAAK,IAAI,EAAa,WAAW;IACrD,MAAM,CAACC,OAAOC,SAAS,GAAGC,SAAc+B,aAAa,EAAE,GAAGC;IAC1D,MAAM,CAACC,YAAYC,cAAc,GAAGlC,SAAS;QAAE,SAAS;QAAM,SAAS;IAAG;IAE1E,MAAMmC,eAAe,CAACC;QAClBrC,SAASqC;QACT,MAAMC,UACFD,QAAAA,YAEAA,AAAa,OAAbA,YACCX,MAAM,OAAO,CAACW,aAAaA,AAAoB,MAApBA,SAAS,MAAM;QAC3CvC,KAAK,QAAQ,IAAIwC,UACjBH,cAAc;YAAE,SAAS;YAAO,SAAS;QAAyB,KAElEA,cAAc;YAAE,SAAS;YAAM,SAAS;QAAG;IAEnD;IAEA,OAAO,WAAP,GACI,oBAAC,2BACG,oBAACtC,YAAUA;QAAE,GAAGC,IAAI;QAAE,OAAOC;QAAO,UAAUqC;QAAc,YAAYF;sBACxE,oBAAC;QAAI,WAAU;qBACX,oBAAC;QAAI,WAAU;OAAgD,gCAC/D,oBAAC;QAAI,WAAU;OACVT,YAAY1B;AAKjC;AAEO,MAAMwC,gBAAuB;IAChC,QAAQzC,CAAAA,OACG,WAAP,GAAO,oBAACiC,oBAAkBA;YAAC,KAAKjC,KAAK,IAAI;YAAa,GAAGA,IAAI;;IAEjE,MAAM;QACF,MAAM;QACN,OAAO;QACP,UAAU;QACV,UAAU;QACV,aAAa;QACb,MAAM;QACN,aAAa;QACb,YAAYmC;IAChB;IACA,UAAU;QACN,MAAM;YACF,aAAa;YACb,SAAS;YACT,SAAS;gBACL;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;aACH;YACD,cAAc;QAClB;QACA,OAAO;YACH,aAAa;YACb,SAAS;QACb;QACA,UAAU;YACN,aAAa;YACb,SAAS;YACT,cAAc;QAClB;QACA,UAAU;YACN,aAAa;YACb,SAAS;YACT,cAAc;QAClB;QACA,aAAa;YACT,aAAa;YACb,SAAS;QACb;QACA,MAAM;YACF,aAAa;YACb,SAAS;QACb;QACA,aAAa;YACT,aAAa;YACb,SAAS;QACb;QACA,YAAY;YACR,aACI;QACR;QACA,UAAU;YACN,aAAa;QACjB;IACJ;AACJ"}
1
+ {"version":3,"file":"DatePicker/DatePicker.stories.js","sources":["../../src/DatePicker/DatePicker.stories.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport type { Meta, StoryObj } from \"@storybook/react\";\nimport { addDays, nextSaturday } from \"date-fns\";\nimport { DatePicker } from \"./DatePicker.js\";\n\nconst meta: Meta<typeof DatePicker> = {\n title: \"Components/Form/DatePicker\",\n component: DatePicker,\n argTypes: {\n onChange: { action: \"onChange\" },\n type: {\n control: \"select\",\n options: [\n \"date\",\n \"birthday\",\n \"time\",\n \"dateTimeLocal\",\n \"dateTimeTz\",\n \"month\",\n \"week\",\n \"year\",\n \"dateRange\",\n \"multipleDates\",\n \"multipleMonths\",\n \"multipleYears\"\n ],\n defaultValue: \"date\"\n },\n disabled: {\n control: \"boolean\",\n defaultValue: false\n }\n },\n parameters: {\n layout: \"padded\"\n },\n render: args => {\n const [value, setValue] = useState<any>();\n return <DatePicker {...args} value={value} onChange={setValue} />;\n }\n};\n\nexport default meta;\ntype Story = StoryObj<typeof DatePicker>;\n\nexport const Default: Story = {\n args: {\n type: \"date\"\n }\n};\n\nexport const WithLabel: Story = {\n args: {\n type: \"date\",\n label: \"Any field label\"\n }\n};\n\nexport const WithLabelRequired: Story = {\n args: {\n type: \"date\",\n label: \"Any field label\",\n required: true\n }\n};\n\nexport const WithDescription: Story = {\n args: {\n type: \"date\",\n description: \"Provide the required information for processing your request.\"\n }\n};\n\nexport const WithNotes: Story = {\n args: {\n type: \"date\",\n note: \"Note: Ensure your selection or input is accurate before proceeding.\"\n }\n};\n\nexport const WithErrors: Story = {\n args: {\n type: \"date\",\n validation: {\n isValid: false,\n message: \"This field is required.\"\n }\n }\n};\n\nexport const Disabled: Story = {\n args: {\n type: \"date\",\n label: \"Any field label\",\n disabled: true\n }\n};\n\nexport const FullExample: Story = {\n args: {\n type: \"date\",\n label: \"Any field label\",\n required: true,\n description: \"Provide the required information for processing your request.\",\n note: \"Note: Ensure your selection or input is accurate before proceeding.\",\n validation: {\n isValid: false,\n message: \"This field is required.\"\n }\n }\n};\n\nexport const WithPresets: Story = {\n render: args => {\n const [value, setValue] = useState<string | undefined>();\n const presets = [\n { label: \"Today\", value: () => new Date() },\n { label: \"Tomorrow\", value: () => addDays(new Date(), 1) },\n { label: \"In 3 days\", value: () => addDays(new Date(), 3) },\n { label: \"In a week\", value: () => addDays(new Date(), 7) },\n { label: \"In 2 weeks\", value: () => addDays(new Date(), 14) },\n { label: \"Next Saturday\", value: () => nextSaturday(new Date()) }\n ];\n return (\n <DatePicker {...args} type=\"date\" value={value} onChange={setValue} presets={presets} />\n );\n },\n args: {\n label: \"Pick a date\",\n description: \"Choose a date or use a preset.\"\n }\n};\n\n/**\n * Picks a date one step at a time: a day, then a month, then a year (newest first). Built for\n * dates far in the past, like a date of birth. The value is a `YYYY-MM-DD` string.\n */\nexport const TypeBirthday: Story = {\n render: args => {\n const [value, setValue] = useState<string | undefined>(\"1990-02-09\");\n return (\n <div className=\"flex flex-col gap-md max-w-[480px]\">\n <DatePicker {...args} type=\"birthday\" value={value} onChange={setValue} />\n <span className=\"text-sm text-neutral-muted\">Value: {value ?? \"(empty)\"}</span>\n </div>\n );\n },\n args: {\n label: \"Date of birth\"\n }\n};\n\n/**\n * With `minDate` and `maxDate`, years run from the latest allowed one down to the earliest,\n * and days and months that can't make an allowed date are dimmed. Here: 18 to 100 years old.\n */\nexport const TypeBirthdayWithLimits: Story = {\n render: args => {\n const [value, setValue] = useState<string | undefined>();\n const today = new Date();\n const [minDate] = useState(\n () => new Date(today.getFullYear() - 100, today.getMonth(), today.getDate())\n );\n const [maxDate] = useState(\n () => new Date(today.getFullYear() - 18, today.getMonth(), today.getDate())\n );\n return (\n <div className=\"flex flex-col gap-md max-w-[480px]\">\n <DatePicker\n {...args}\n type=\"birthday\"\n value={value}\n onChange={setValue}\n minDate={minDate}\n maxDate={maxDate}\n />\n <span className=\"text-sm text-neutral-muted\">Value: {value ?? \"(empty)\"}</span>\n </div>\n );\n },\n args: {\n label: \"Date of birth\",\n description: \"You must be 18 or older.\"\n }\n};\n\nexport const TypeTime: Story = {\n render: args => {\n const [value, setValue] = useState<string | undefined>();\n return <DatePicker {...args} type=\"time\" value={value} onChange={setValue} />;\n },\n args: {\n label: \"Time\"\n }\n};\n\nexport const TypeDateTimeLocal: Story = {\n render: args => {\n const [value, setValue] = useState<string | undefined>();\n return <DatePicker {...args} type=\"dateTimeLocal\" value={value} onChange={setValue} />;\n },\n args: {\n label: \"Date & Time (local)\"\n }\n};\n\nexport const TypeDateTimeTz: Story = {\n render: args => {\n const [value, setValue] = useState<string | undefined>();\n return <DatePicker {...args} type=\"dateTimeTz\" value={value} onChange={setValue} />;\n },\n args: {\n label: \"Date & Time (with timezone)\"\n }\n};\n\nexport const TypeMonth: Story = {\n render: args => {\n const [value, setValue] = useState<string | undefined>();\n return <DatePicker {...args} type=\"month\" value={value} onChange={setValue} />;\n },\n args: {\n label: \"Month\"\n }\n};\n\nexport const TypeWeek: Story = {\n render: args => {\n const [value, setValue] = useState<string | undefined>();\n return <DatePicker {...args} type=\"week\" value={value} onChange={setValue} />;\n },\n args: {\n label: \"Week\"\n }\n};\n\nexport const TypeYear: Story = {\n render: args => {\n const [value, setValue] = useState<number | undefined>();\n return (\n <DatePicker\n {...args}\n type=\"year\"\n value={value}\n onChange={setValue}\n yearRange={[2015, 2035]}\n />\n );\n },\n args: {\n label: \"Year\"\n }\n};\n\nexport const TypeDateRange: Story = {\n render: args => {\n const [value, setValue] = useState<{ from?: string; to?: string } | undefined>();\n return <DatePicker {...args} type=\"dateRange\" value={value} onChange={setValue} />;\n },\n args: {\n label: \"Date Range\"\n }\n};\n\nexport const TypeMultipleDates: Story = {\n render: args => {\n const [value, setValue] = useState<string[]>([]);\n return <DatePicker {...args} type=\"multipleDates\" value={value} onChange={setValue} />;\n },\n args: {\n label: \"Multiple Dates\"\n }\n};\n\nexport const TypeMultipleMonths: Story = {\n render: args => {\n const [value, setValue] = useState<string[]>([]);\n return <DatePicker {...args} type=\"multipleMonths\" value={value} onChange={setValue} />;\n },\n args: {\n label: \"Multiple Months\"\n }\n};\n\nexport const TypeMultipleYears: Story = {\n render: args => {\n const [value, setValue] = useState<number[]>([]);\n return (\n <DatePicker\n {...args}\n type=\"multipleYears\"\n value={value}\n onChange={setValue}\n yearRange={[2015, 2035]}\n />\n );\n },\n args: {\n label: \"Multiple Years\"\n }\n};\n\nconst formatValue = (value: any): string => {\n if (value === undefined || value === null) {\n return \"undefined\";\n }\n if (value instanceof Date) {\n return value.toISOString();\n }\n if (Array.isArray(value)) {\n return JSON.stringify(\n value.map((v: any) => (v instanceof Date ? v.toISOString() : v)),\n null,\n 2\n );\n }\n if (typeof value === \"object\") {\n return JSON.stringify(value, (_k, v) => (v instanceof Date ? v.toISOString() : v), 2);\n }\n return String(value);\n};\n\nconst DocumentationInner = (args: any) => {\n const isMultiple = (args.type as string)?.startsWith(\"multiple\");\n const [value, setValue] = useState<any>(isMultiple ? [] : undefined);\n const [validation, setValidation] = useState({ isValid: true, message: \"\" });\n\n const handleChange = (newValue: any) => {\n setValue(newValue);\n const isEmpty =\n newValue === undefined ||\n newValue === null ||\n newValue === \"\" ||\n (Array.isArray(newValue) && newValue.length === 0);\n if (args.required && isEmpty) {\n setValidation({ isValid: false, message: \"This field is required\" });\n } else {\n setValidation({ isValid: true, message: \"\" });\n }\n };\n\n return (\n <div>\n <DatePicker {...args} value={value} onChange={handleChange} validation={validation} />\n <div className=\"mt-md rounded-md border-sm border-neutral-muted bg-neutral-light p-sm\">\n <div className=\"text-xs font-medium text-neutral-dimmed mb-xs\">Current value</div>\n <pre className=\"text-sm text-neutral-strong whitespace-pre-wrap m-0\">\n {formatValue(value)}\n </pre>\n </div>\n </div>\n );\n};\n\nexport const Documentation: Story = {\n render: args => {\n return <DocumentationInner key={args.type as string} {...args} />;\n },\n args: {\n type: \"date\",\n label: \"Event Date\",\n required: true,\n disabled: false,\n description: \"Select the date for your event\",\n note: \"Note: Choose a date that works for all participants\",\n placeholder: \"Pick a date\",\n validation: undefined\n },\n argTypes: {\n type: {\n description: \"The type of date picker variant to render\",\n control: \"select\",\n options: [\n \"date\",\n \"time\",\n \"dateTimeLocal\",\n \"dateTimeTz\",\n \"month\",\n \"week\",\n \"year\",\n \"dateRange\",\n \"multipleDates\",\n \"multipleMonths\",\n \"multipleYears\"\n ],\n defaultValue: \"date\"\n },\n label: {\n description: \"Label text displayed above the picker\",\n control: \"text\"\n },\n required: {\n description: \"Makes the field required\",\n control: \"boolean\",\n defaultValue: true\n },\n disabled: {\n description: \"Disables the date picker\",\n control: \"boolean\",\n defaultValue: false\n },\n description: {\n description: \"Helper text displayed below the label\",\n control: \"text\"\n },\n note: {\n description: \"Additional note displayed below the picker\",\n control: \"text\"\n },\n placeholder: {\n description: \"Placeholder text shown when no date is selected\",\n control: \"text\"\n },\n validation: {\n description:\n \"Object containing validation state and message. Please refer to the example code for details on usage.\"\n },\n onChange: {\n description: \"Callback function when the value changes\"\n }\n }\n};\n"],"names":["meta","DatePicker","args","value","setValue","useState","Default","WithLabel","WithLabelRequired","WithDescription","WithNotes","WithErrors","Disabled","FullExample","WithPresets","presets","Date","addDays","nextSaturday","TypeBirthday","TypeBirthdayWithLimits","today","minDate","maxDate","TypeTime","TypeDateTimeLocal","TypeDateTimeTz","TypeMonth","TypeWeek","TypeYear","TypeDateRange","TypeMultipleDates","TypeMultipleMonths","TypeMultipleYears","formatValue","Array","JSON","v","_k","String","DocumentationInner","isMultiple","undefined","validation","setValidation","handleChange","newValue","isEmpty","Documentation"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ import type { BirthdayPickerProps } from "../utils/types.js";
3
+ /**
4
+ * Picks a date one part at a time: a day, then a month, then a year. Each pick moves to the
5
+ * next step. A pick that completes the date commits it, and the last step closes the picker.
6
+ * Meant for dates far in the past, like a date of birth, where paging a calendar month by
7
+ * month is slow.
8
+ *
9
+ * The value is a `YYYY-MM-DD` string, the same as the `date` picker's. Days, months and years
10
+ * that can't make a date between `minDate` and `maxDate` can't be picked.
11
+ */
12
+ declare const BirthdayPicker: ({ value, onChange, disabled, size, variant, invalid, yearRange, minDate, maxDate, onOpenChange, className }: BirthdayPickerProps) => React.JSX.Element;
13
+ export { BirthdayPicker };
@@ -0,0 +1,355 @@
1
+ import react, { useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
2
+ import { Popover } from "radix-ui";
3
+ import { ReactComponent } from "@webiny/icons/calendar_month.svg";
4
+ import { ReactComponent as close_svg_ReactComponent } from "@webiny/icons/close.svg";
5
+ import { Icon } from "../../Icon/index.js";
6
+ import { inputVariants } from "../../Input/index.js";
7
+ import { ScrollArea } from "../../ScrollArea/index.js";
8
+ import { useEscapeScrollLock } from "../../hooks/index.js";
9
+ import { cn, cva } from "../../utils.js";
10
+ import { BirthdayPickerCell } from "./BirthdayPickerCell.js";
11
+ import { BirthdayPickerSegments } from "./BirthdayPickerSegments.js";
12
+ import { MONTH_NAMES_FULL } from "../utils/constants.js";
13
+ import { birthdayYears, formatBirthdayValue, isDayDisabled, isMonthDisabled, isYearDisabled, nextBirthdayStep, pad, parseBirthdayValue, pickDay, pickMonth, pickYear } from "../utils/birthdayHelpers.js";
14
+ const STEPS = [
15
+ "day",
16
+ "month",
17
+ "year"
18
+ ];
19
+ const STEP_LABELS = {
20
+ day: "Select a day",
21
+ month: "Select a month",
22
+ year: "Select a year"
23
+ };
24
+ const DAYS = Array.from({
25
+ length: 31
26
+ }, (_, index)=>index + 1);
27
+ const MONTHS = Array.from({
28
+ length: 12
29
+ }, (_, index)=>index + 1);
30
+ const EXPAND_MS = 250;
31
+ const SLIDE_MS = 300;
32
+ const FADE_OUT_MS = 120;
33
+ const COLLAPSE_MS = 200;
34
+ const cardVariants = cva([
35
+ "bg-neutral-base border-sm border-neutral-black shadow-lg overflow-hidden",
36
+ "text-md text-neutral-strong fill-neutral-xstrong",
37
+ "w-(--radix-popover-trigger-width) min-w-[320px]"
38
+ ], {
39
+ variants: {
40
+ size: {
41
+ md: "rounded-md",
42
+ lg: "rounded-md",
43
+ xl: "rounded-lg leading-6"
44
+ }
45
+ },
46
+ defaultVariants: {
47
+ size: "lg"
48
+ }
49
+ });
50
+ const cardHeaderVariants = cva("flex items-center justify-between gap-sm", {
51
+ variants: {
52
+ size: {
53
+ md: "px-[calc(var(--padding-sm-extra)-(var(--border-width-sm)))]",
54
+ lg: "px-[calc(var(--padding-sm-extra)-(var(--border-width-sm)))]",
55
+ xl: "px-[calc(var(--padding-md)-(var(--border-width-sm)))]"
56
+ }
57
+ },
58
+ defaultVariants: {
59
+ size: "lg"
60
+ }
61
+ });
62
+ const gridHeight = "h-[calc(6*var(--spacing-xl)+5*var(--spacing-sm)+2*var(--spacing-xs))]";
63
+ const dayGridWidth = "max-w-[calc(6*var(--spacing-xxl)+5*var(--spacing-xs))]";
64
+ const wideGridWidth = "max-w-[calc(5*var(--spacing-3xl)+4*var(--spacing-sm))]";
65
+ const BirthdayPicker = ({ value, onChange, disabled, size, variant, invalid, yearRange, minDate, maxDate, onOpenChange, className })=>{
66
+ const [open, setOpen] = useState(false);
67
+ const [phase, setPhase] = useState("collapsed");
68
+ const [step, setStep] = useState("day");
69
+ const [draft, setDraft] = useState({});
70
+ const [barHeight, setBarHeight] = useState(0);
71
+ const [bodyHeight, setBodyHeight] = useState(0);
72
+ const barRef = useRef(null);
73
+ const cardRef = useRef(null);
74
+ const bodyRef = useRef(null);
75
+ const panelRefs = useRef({
76
+ day: null,
77
+ month: null,
78
+ year: null
79
+ });
80
+ const picked = useRef(new Set());
81
+ const closeTimer = useRef();
82
+ const escapeScrollLock = useEscapeScrollLock();
83
+ const saved = useMemo(()=>parseBirthdayValue(value), [
84
+ value
85
+ ]);
86
+ const years = useMemo(()=>birthdayYears(yearRange, saved.year, {
87
+ minDate,
88
+ maxDate
89
+ }), [
90
+ yearRange,
91
+ saved.year,
92
+ minDate,
93
+ maxDate
94
+ ]);
95
+ const range = useMemo(()=>({
96
+ years,
97
+ minDate,
98
+ maxDate
99
+ }), [
100
+ years,
101
+ minDate,
102
+ maxDate
103
+ ]);
104
+ useEffect(()=>()=>clearTimeout(closeTimer.current), []);
105
+ const expand = ()=>{
106
+ if (disabled || open) return;
107
+ clearTimeout(closeTimer.current);
108
+ setBarHeight(barRef.current?.offsetHeight ?? 0);
109
+ setDraft(saved);
110
+ picked.current = new Set();
111
+ setStep("day");
112
+ setPhase("collapsed");
113
+ setOpen(true);
114
+ onOpenChange?.(true);
115
+ };
116
+ const collapse = ()=>{
117
+ if ("collapsing" === phase) return;
118
+ setPhase("collapsing");
119
+ closeTimer.current = setTimeout(()=>{
120
+ setOpen(false);
121
+ setPhase("collapsed");
122
+ onOpenChange?.(false);
123
+ }, FADE_OUT_MS + COLLAPSE_MS);
124
+ };
125
+ useLayoutEffect(()=>{
126
+ if (!open || "collapsed" !== phase) return;
127
+ let second = 0;
128
+ const first = requestAnimationFrame(()=>{
129
+ second = requestAnimationFrame(()=>{
130
+ setBodyHeight(bodyRef.current?.offsetHeight ?? 0);
131
+ setPhase("expanded");
132
+ });
133
+ });
134
+ return ()=>{
135
+ cancelAnimationFrame(first);
136
+ cancelAnimationFrame(second);
137
+ };
138
+ }, [
139
+ open,
140
+ phase
141
+ ]);
142
+ useEffect(()=>{
143
+ if ("expanded" !== phase) return;
144
+ const timer = setTimeout(()=>{
145
+ const rect = cardRef.current?.getBoundingClientRect();
146
+ if (rect && rect.bottom > window.innerHeight) barRef.current?.scrollIntoView({
147
+ block: "center",
148
+ behavior: "smooth"
149
+ });
150
+ }, EXPAND_MS);
151
+ return ()=>clearTimeout(timer);
152
+ }, [
153
+ phase
154
+ ]);
155
+ useEffect(()=>{
156
+ if (!open || "expanded" !== phase) return;
157
+ const panel = panelRefs.current[step];
158
+ if (!panel) return;
159
+ const selected = panel.querySelector("[data-selected=true]");
160
+ const viewport = panel.querySelector("[data-slot=scroll-area-viewport]");
161
+ if (viewport) if (selected) {
162
+ const offset = selected.getBoundingClientRect().top - viewport.getBoundingClientRect().top;
163
+ viewport.scrollTop += offset - viewport.clientHeight / 2 + selected.offsetHeight / 2;
164
+ } else viewport.scrollTop = 0;
165
+ const target = selected ?? panel.querySelector("button:enabled");
166
+ target?.focus({
167
+ preventScroll: true
168
+ });
169
+ }, [
170
+ open,
171
+ phase,
172
+ step
173
+ ]);
174
+ const goToStep = (next)=>{
175
+ setStep(next);
176
+ };
177
+ const onPick = (pickedStep, next)=>{
178
+ setDraft(next);
179
+ picked.current.add(pickedStep);
180
+ const nextValue = formatBirthdayValue(next);
181
+ if (nextValue) onChange?.(nextValue);
182
+ const nextStep = nextBirthdayStep(next, pickedStep, picked.current);
183
+ if (nextStep) return void goToStep(nextStep);
184
+ collapse();
185
+ };
186
+ const onPickDay = (day)=>onPick("day", pickDay(draft, day, range));
187
+ const onPickMonth = (month)=>onPick("month", pickMonth(draft, month, range));
188
+ const onPickYear = (year)=>onPick("year", pickYear(draft, year));
189
+ const onBarKeyDown = (event)=>{
190
+ if (event.target !== event.currentTarget) return;
191
+ if ("Enter" === event.key || " " === event.key || "ArrowDown" === event.key) {
192
+ event.preventDefault();
193
+ expand();
194
+ }
195
+ };
196
+ const expanded = "expanded" === phase;
197
+ const cardHeight = expanded ? barHeight + bodyHeight : barHeight;
198
+ const stepIndex = STEPS.indexOf(step);
199
+ const icons = (interactive)=>/*#__PURE__*/ react.createElement("span", {
200
+ className: "flex items-center gap-xs shrink-0"
201
+ }, interactive && value && !disabled ? /*#__PURE__*/ react.createElement("button", {
202
+ type: "button",
203
+ "aria-label": "Clear date",
204
+ className: "flex cursor-pointer rounded-xs outline-none focus-visible:ring-sm focus-visible:ring-primary-dimmed",
205
+ onClick: (event)=>{
206
+ event.stopPropagation();
207
+ onChange?.(void 0);
208
+ },
209
+ onKeyDown: (event)=>event.stopPropagation()
210
+ }, /*#__PURE__*/ react.createElement(Icon, {
211
+ icon: /*#__PURE__*/ react.createElement(close_svg_ReactComponent, null),
212
+ label: "Clear",
213
+ size: "sm",
214
+ color: "inherit"
215
+ })) : null, /*#__PURE__*/ react.createElement(Icon, {
216
+ icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
217
+ label: "Calendar",
218
+ size: "sm",
219
+ color: "inherit"
220
+ }));
221
+ const panelProps = (panelStep)=>({
222
+ ref: (element)=>{
223
+ panelRefs.current[panelStep] = element;
224
+ },
225
+ "aria-hidden": step !== panelStep,
226
+ "data-step": panelStep
227
+ });
228
+ return /*#__PURE__*/ react.createElement("div", {
229
+ className: className
230
+ }, /*#__PURE__*/ react.createElement(Popover.Root, {
231
+ open: open,
232
+ onOpenChange: (isOpen)=>isOpen ? expand() : collapse()
233
+ }, /*#__PURE__*/ react.createElement(Popover.Anchor, {
234
+ asChild: true
235
+ }, /*#__PURE__*/ react.createElement("div", {
236
+ ref: barRef,
237
+ role: "button",
238
+ tabIndex: disabled ? -1 : 0,
239
+ "aria-haspopup": "dialog",
240
+ "aria-expanded": open,
241
+ "data-disabled": disabled,
242
+ "data-focused": open,
243
+ onClick: expand,
244
+ onKeyDown: onBarKeyDown,
245
+ className: cn(inputVariants({
246
+ size,
247
+ variant,
248
+ invalid
249
+ }), "cursor-pointer justify-between select-none min-w-0 overflow-hidden outline-none", disabled && "pointer-events-none")
250
+ }, /*#__PURE__*/ react.createElement(BirthdayPickerSegments, {
251
+ parts: saved
252
+ }), icons(true))), /*#__PURE__*/ react.createElement(Popover.Portal, null, /*#__PURE__*/ react.createElement(Popover.Content, {
253
+ ref: escapeScrollLock,
254
+ side: "bottom",
255
+ align: "start",
256
+ sideOffset: -barHeight,
257
+ avoidCollisions: false,
258
+ onOpenAutoFocus: (event)=>event.preventDefault(),
259
+ onCloseAutoFocus: (event)=>{
260
+ event.preventDefault();
261
+ barRef.current?.focus({
262
+ preventScroll: true
263
+ });
264
+ },
265
+ className: "z-popover outline-none"
266
+ }, /*#__PURE__*/ react.createElement("div", {
267
+ ref: cardRef,
268
+ role: "dialog",
269
+ "aria-label": STEP_LABELS[step],
270
+ "data-phase": phase,
271
+ className: cn(cardVariants({
272
+ size
273
+ }), "collapsing" === phase && "pointer-events-none"),
274
+ style: {
275
+ height: cardHeight,
276
+ transition: "collapsing" === phase ? `height ${COLLAPSE_MS}ms ease-in ${FADE_OUT_MS}ms` : `height ${EXPAND_MS}ms ease-out`
277
+ }
278
+ }, /*#__PURE__*/ react.createElement("div", {
279
+ className: cardHeaderVariants({
280
+ size
281
+ }),
282
+ style: {
283
+ height: `calc(${barHeight}px - 2 * var(--border-width-sm))`
284
+ }
285
+ }, /*#__PURE__*/ react.createElement(BirthdayPickerSegments, {
286
+ parts: draft,
287
+ activeStep: step,
288
+ onStepClick: goToStep
289
+ }), icons(false)), /*#__PURE__*/ react.createElement("div", {
290
+ ref: bodyRef
291
+ }, /*#__PURE__*/ react.createElement("div", {
292
+ className: "h-px bg-neutral-dimmed origin-center",
293
+ style: {
294
+ transform: expanded ? "scaleX(1)" : "scaleX(0)",
295
+ transition: `transform ${EXPAND_MS}ms ease-out`
296
+ }
297
+ }), /*#__PURE__*/ react.createElement("div", {
298
+ className: "pb-md",
299
+ style: {
300
+ opacity: expanded ? 1 : 0,
301
+ transition: expanded ? `opacity 200ms ease-out ${EXPAND_MS - 100}ms` : `opacity ${FADE_OUT_MS}ms ease-in`
302
+ }
303
+ }, /*#__PURE__*/ react.createElement("div", {
304
+ className: "pt-sm-extra pb-xs text-center text-sm text-neutral-muted",
305
+ "aria-live": "polite"
306
+ }, STEP_LABELS[step]), /*#__PURE__*/ react.createElement("div", {
307
+ className: cn("overflow-hidden", gridHeight)
308
+ }, /*#__PURE__*/ react.createElement("div", {
309
+ className: "flex h-full w-[300%]",
310
+ style: {
311
+ transform: `translateX(-${100 * stepIndex / 3}%)`,
312
+ transition: `transform ${SLIDE_MS}ms ease-in-out`
313
+ }
314
+ }, /*#__PURE__*/ react.createElement("div", {
315
+ ...panelProps("day"),
316
+ className: "w-1/3 h-full px-md py-xs"
317
+ }, /*#__PURE__*/ react.createElement("div", {
318
+ className: cn("grid grid-cols-6 gap-x-xs gap-y-sm mx-auto", dayGridWidth)
319
+ }, DAYS.map((day)=>/*#__PURE__*/ react.createElement(BirthdayPickerCell, {
320
+ key: day,
321
+ selected: draft.day === day,
322
+ disabled: isDayDisabled(day, range),
323
+ tabbable: "day" === step,
324
+ onClick: ()=>onPickDay(day)
325
+ }, pad(day))))), /*#__PURE__*/ react.createElement("div", {
326
+ ...panelProps("month"),
327
+ className: "w-1/3 h-full px-md py-xs flex items-center"
328
+ }, /*#__PURE__*/ react.createElement("div", {
329
+ className: cn("grid grid-cols-3 gap-x-sm gap-y-md w-full mx-auto", wideGridWidth)
330
+ }, MONTHS.map((month)=>/*#__PURE__*/ react.createElement(BirthdayPickerCell, {
331
+ key: month,
332
+ selected: draft.month === month,
333
+ disabled: isMonthDisabled(month, draft, range),
334
+ tabbable: "month" === step,
335
+ onClick: ()=>onPickMonth(month)
336
+ }, MONTH_NAMES_FULL[month - 1])))), /*#__PURE__*/ react.createElement("div", {
337
+ ...panelProps("year"),
338
+ className: "w-1/3 h-full"
339
+ }, /*#__PURE__*/ react.createElement(ScrollArea, {
340
+ className: "h-full"
341
+ }, /*#__PURE__*/ react.createElement("div", {
342
+ className: "px-md py-xs"
343
+ }, /*#__PURE__*/ react.createElement("div", {
344
+ className: cn("grid grid-cols-5 gap-sm w-full mx-auto", wideGridWidth)
345
+ }, years.map((year)=>/*#__PURE__*/ react.createElement(BirthdayPickerCell, {
346
+ key: year,
347
+ selected: draft.year === year,
348
+ disabled: isYearDisabled(year, draft, range),
349
+ tabbable: "year" === step,
350
+ onClick: ()=>onPickYear(year)
351
+ }, year)))))))))))))));
352
+ };
353
+ export { BirthdayPicker };
354
+
355
+ //# sourceMappingURL=BirthdayPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker/primitives/BirthdayPicker.js","sources":["../../../src/DatePicker/primitives/BirthdayPicker.tsx"],"sourcesContent":["import React, { useEffect, useLayoutEffect, useMemo, useRef, useState } from \"react\";\nimport { Popover as RadixPopover } from \"radix-ui\";\nimport { ReactComponent as CalendarMonthIcon } from \"@webiny/icons/calendar_month.svg\";\nimport { ReactComponent as CloseIcon } from \"@webiny/icons/close.svg\";\nimport { Icon } from \"~/Icon/index.js\";\nimport { inputVariants } from \"~/Input/index.js\";\nimport { ScrollArea } from \"~/ScrollArea/index.js\";\nimport { useEscapeScrollLock } from \"~/hooks/index.js\";\nimport { cn, cva } from \"~/utils.js\";\nimport type { BirthdayPickerProps } from \"../utils/types.js\";\nimport { BirthdayPickerCell } from \"./BirthdayPickerCell.js\";\nimport { BirthdayPickerSegments } from \"./BirthdayPickerSegments.js\";\nimport { MONTH_NAMES_FULL } from \"../utils/constants.js\";\nimport {\n type BirthdayParts,\n type BirthdayStep,\n type BirthdayRange,\n birthdayYears,\n formatBirthdayValue,\n isDayDisabled,\n isMonthDisabled,\n isYearDisabled,\n nextBirthdayStep,\n pad,\n parseBirthdayValue,\n pickDay,\n pickMonth,\n pickYear\n} from \"../utils/birthdayHelpers.js\";\n\ntype Step = BirthdayStep;\n\nconst STEPS: Step[] = [\"day\", \"month\", \"year\"];\n\nconst STEP_LABELS: Record<Step, string> = {\n day: \"Select a day\",\n month: \"Select a month\",\n year: \"Select a year\"\n};\n\nconst DAYS = Array.from({ length: 31 }, (_, index) => index + 1);\nconst MONTHS = Array.from({ length: 12 }, (_, index) => index + 1);\n\n/** Timings, in ms. */\nconst EXPAND_MS = 250;\nconst SLIDE_MS = 300;\nconst FADE_OUT_MS = 120;\nconst COLLAPSE_MS = 200;\n\n/**\n * - `collapsed`: the card is mounted at the bar's height, about to grow (or done shrinking).\n * - `expanded`: the card is at full height with the step grid showing.\n * - `collapsing`: the body fades and the card shrinks back into the bar.\n */\ntype Phase = \"collapsed\" | \"expanded\" | \"collapsing\";\n\n/**\n * The card is the bar, grown: it keeps the focused input's border, its corner radius and, in the\n * header, its horizontal padding, so the date doesn't move when the card opens.\n */\nconst cardVariants = cva(\n [\n \"bg-neutral-base border-sm border-neutral-black shadow-lg overflow-hidden\",\n \"text-md text-neutral-strong fill-neutral-xstrong\",\n \"w-(--radix-popover-trigger-width) min-w-[320px]\"\n ],\n {\n variants: {\n size: {\n md: \"rounded-md\",\n lg: \"rounded-md\",\n xl: \"rounded-lg leading-6\"\n }\n },\n defaultVariants: {\n size: \"lg\"\n }\n }\n);\n\nconst cardHeaderVariants = cva(\"flex items-center justify-between gap-sm\", {\n variants: {\n size: {\n md: \"px-[calc(var(--padding-sm-extra)-(var(--border-width-sm)))]\",\n lg: \"px-[calc(var(--padding-sm-extra)-(var(--border-width-sm)))]\",\n xl: \"px-[calc(var(--padding-md)-(var(--border-width-sm)))]\"\n }\n },\n defaultVariants: {\n size: \"lg\"\n }\n});\n\n/**\n * Every step shares one grid height, the day grid's six rows plus the inset that keeps a cell's\n * focus ring inside the clipped area, so the card keeps its height as the steps slide. Only the\n * year grid scrolls inside it.\n */\nconst gridHeight = \"h-[calc(6*var(--spacing-xl)+5*var(--spacing-sm)+2*var(--spacing-xs))]\";\nconst dayGridWidth = \"max-w-[calc(6*var(--spacing-xxl)+5*var(--spacing-xs))]\";\nconst wideGridWidth = \"max-w-[calc(5*var(--spacing-3xl)+4*var(--spacing-sm))]\";\n\n/**\n * Picks a date one part at a time: a day, then a month, then a year. Each pick moves to the\n * next step. A pick that completes the date commits it, and the last step closes the picker.\n * Meant for dates far in the past, like a date of birth, where paging a calendar month by\n * month is slow.\n *\n * The value is a `YYYY-MM-DD` string, the same as the `date` picker's. Days, months and years\n * that can't make a date between `minDate` and `maxDate` can't be picked.\n */\nconst BirthdayPicker = ({\n value,\n onChange,\n disabled,\n size,\n variant,\n invalid,\n yearRange,\n minDate,\n maxDate,\n onOpenChange,\n className\n}: BirthdayPickerProps) => {\n const [open, setOpen] = useState(false);\n const [phase, setPhase] = useState<Phase>(\"collapsed\");\n const [step, setStep] = useState<Step>(\"day\");\n const [draft, setDraft] = useState<BirthdayParts>({});\n const [barHeight, setBarHeight] = useState(0);\n const [bodyHeight, setBodyHeight] = useState(0);\n\n const barRef = useRef<HTMLDivElement>(null);\n const cardRef = useRef<HTMLDivElement | null>(null);\n /** The divider and the step body: what the card adds to the bar's height when it grows. */\n const bodyRef = useRef<HTMLDivElement | null>(null);\n const panelRefs = useRef<Record<Step, HTMLDivElement | null>>({\n day: null,\n month: null,\n year: null\n });\n /** The steps picked since the card opened. */\n const picked = useRef<Set<Step>>(new Set());\n const closeTimer = useRef<ReturnType<typeof setTimeout>>();\n const escapeScrollLock = useEscapeScrollLock<HTMLDivElement>();\n\n const saved = useMemo(() => parseBirthdayValue(value), [value]);\n const years = useMemo(\n () => birthdayYears(yearRange, saved.year, { minDate, maxDate }),\n [yearRange, saved.year, minDate, maxDate]\n );\n const range = useMemo<BirthdayRange>(\n () => ({ years, minDate, maxDate }),\n [years, minDate, maxDate]\n );\n\n useEffect(() => () => clearTimeout(closeTimer.current), []);\n\n const expand = () => {\n if (disabled || open) {\n return;\n }\n clearTimeout(closeTimer.current);\n setBarHeight(barRef.current?.offsetHeight ?? 0);\n setDraft(saved);\n picked.current = new Set();\n setStep(\"day\");\n setPhase(\"collapsed\");\n setOpen(true);\n onOpenChange?.(true);\n };\n\n const collapse = () => {\n if (phase === \"collapsing\") {\n return;\n }\n setPhase(\"collapsing\");\n closeTimer.current = setTimeout(() => {\n setOpen(false);\n setPhase(\"collapsed\");\n onOpenChange?.(false);\n }, FADE_OUT_MS + COLLAPSE_MS);\n };\n\n /**\n * The card mounts at the bar's height. Wait for the popper to place it before growing,\n * or the first part of the growth happens off screen. The body is laid out by its own\n * spacing, so its height is measured here, once it exists, and the card grows by that much.\n */\n useLayoutEffect(() => {\n if (!open || phase !== \"collapsed\") {\n return;\n }\n let second = 0;\n const first = requestAnimationFrame(() => {\n second = requestAnimationFrame(() => {\n setBodyHeight(bodyRef.current?.offsetHeight ?? 0);\n setPhase(\"expanded\");\n });\n });\n return () => {\n cancelAnimationFrame(first);\n cancelAnimationFrame(second);\n };\n }, [open, phase]);\n\n /** A card that grows past the bottom of the viewport brings the field into view. */\n useEffect(() => {\n if (phase !== \"expanded\") {\n return;\n }\n const timer = setTimeout(() => {\n const rect = cardRef.current?.getBoundingClientRect();\n if (rect && rect.bottom > window.innerHeight) {\n barRef.current?.scrollIntoView({ block: \"center\", behavior: \"smooth\" });\n }\n }, EXPAND_MS);\n return () => clearTimeout(timer);\n }, [phase]);\n\n /**\n * Entering a step focuses its selected cell (or its first one) so the keyboard picks up\n * where the pointer would. The year grid also scrolls the selected year into view, or\n * back to the newest year when none is selected.\n *\n * The popover portal mounts its content a render after `open` flips, so this waits for\n * the card to expand, by which point the panels exist.\n */\n useEffect(() => {\n if (!open || phase !== \"expanded\") {\n return;\n }\n const panel = panelRefs.current[step];\n if (!panel) {\n return;\n }\n const selected = panel.querySelector<HTMLButtonElement>(\"[data-selected=true]\");\n const viewport = panel.querySelector<HTMLDivElement>(\"[data-slot=scroll-area-viewport]\");\n if (viewport) {\n if (selected) {\n const offset =\n selected.getBoundingClientRect().top - viewport.getBoundingClientRect().top;\n viewport.scrollTop +=\n offset - viewport.clientHeight / 2 + selected.offsetHeight / 2;\n } else {\n viewport.scrollTop = 0;\n }\n }\n const target = selected ?? panel.querySelector<HTMLButtonElement>(\"button:enabled\");\n target?.focus({ preventScroll: true });\n }, [open, phase, step]);\n\n const goToStep = (next: Step) => {\n setStep(next);\n };\n\n /**\n * Any pick that completes the date commits it, so closing the card early never drops a\n * date the header shows as filled. The header segments let parts be picked out of order.\n */\n const onPick = (pickedStep: Step, next: BirthdayParts) => {\n setDraft(next);\n picked.current.add(pickedStep);\n const nextValue = formatBirthdayValue(next);\n if (nextValue) {\n onChange?.(nextValue);\n }\n const nextStep = nextBirthdayStep(next, pickedStep, picked.current);\n if (nextStep) {\n goToStep(nextStep);\n return;\n }\n collapse();\n };\n\n const onPickDay = (day: number) => onPick(\"day\", pickDay(draft, day, range));\n\n const onPickMonth = (month: number) => onPick(\"month\", pickMonth(draft, month, range));\n\n const onPickYear = (year: number) => onPick(\"year\", pickYear(draft, year));\n\n const onBarKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.target !== event.currentTarget) {\n return;\n }\n if (event.key === \"Enter\" || event.key === \" \" || event.key === \"ArrowDown\") {\n event.preventDefault();\n expand();\n }\n };\n\n const expanded = phase === \"expanded\";\n const cardHeight = expanded ? barHeight + bodyHeight : barHeight;\n const stepIndex = STEPS.indexOf(step);\n\n const icons = (interactive: boolean) => (\n <span className=\"flex items-center gap-xs shrink-0\">\n {interactive && value && !disabled ? (\n <button\n type=\"button\"\n aria-label=\"Clear date\"\n className=\"flex cursor-pointer rounded-xs outline-none focus-visible:ring-sm focus-visible:ring-primary-dimmed\"\n onClick={event => {\n event.stopPropagation();\n onChange?.(undefined);\n }}\n onKeyDown={event => event.stopPropagation()}\n >\n <Icon icon={<CloseIcon />} label=\"Clear\" size=\"sm\" color=\"inherit\" />\n </button>\n ) : null}\n <Icon icon={<CalendarMonthIcon />} label=\"Calendar\" size=\"sm\" color=\"inherit\" />\n </span>\n );\n\n const panelProps = (panelStep: Step) => ({\n ref: (element: HTMLDivElement | null) => {\n panelRefs.current[panelStep] = element;\n },\n \"aria-hidden\": step !== panelStep,\n \"data-step\": panelStep\n });\n\n return (\n <div className={className}>\n <RadixPopover.Root\n open={open}\n onOpenChange={isOpen => (isOpen ? expand() : collapse())}\n >\n <RadixPopover.Anchor asChild>\n <div\n ref={barRef}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n data-disabled={disabled}\n data-focused={open}\n onClick={expand}\n onKeyDown={onBarKeyDown}\n className={cn(\n inputVariants({ size, variant, invalid }),\n \"cursor-pointer justify-between select-none min-w-0 overflow-hidden outline-none\",\n disabled && \"pointer-events-none\"\n )}\n >\n <BirthdayPickerSegments parts={saved} />\n {icons(true)}\n </div>\n </RadixPopover.Anchor>\n <RadixPopover.Portal>\n <RadixPopover.Content\n ref={escapeScrollLock}\n side=\"bottom\"\n align=\"start\"\n sideOffset={-barHeight}\n avoidCollisions={false}\n onOpenAutoFocus={event => event.preventDefault()}\n onCloseAutoFocus={event => {\n event.preventDefault();\n barRef.current?.focus({ preventScroll: true });\n }}\n className=\"z-popover outline-none\"\n >\n <div\n ref={cardRef}\n role=\"dialog\"\n aria-label={STEP_LABELS[step]}\n data-phase={phase}\n className={cn(\n cardVariants({ size }),\n phase === \"collapsing\" && \"pointer-events-none\"\n )}\n style={{\n height: cardHeight,\n transition:\n phase === \"collapsing\"\n ? `height ${COLLAPSE_MS}ms ease-in ${FADE_OUT_MS}ms`\n : `height ${EXPAND_MS}ms ease-out`\n }}\n >\n <div\n className={cardHeaderVariants({ size })}\n style={{\n height: `calc(${barHeight}px - 2 * var(--border-width-sm))`\n }}\n >\n <BirthdayPickerSegments\n parts={draft}\n activeStep={step}\n onStepClick={goToStep}\n />\n {icons(false)}\n </div>\n <div ref={bodyRef}>\n <div\n className=\"h-px bg-neutral-dimmed origin-center\"\n style={{\n transform: expanded ? \"scaleX(1)\" : \"scaleX(0)\",\n transition: `transform ${EXPAND_MS}ms ease-out`\n }}\n />\n <div\n className=\"pb-md\"\n style={{\n opacity: expanded ? 1 : 0,\n transition: expanded\n ? `opacity 200ms ease-out ${EXPAND_MS - 100}ms`\n : `opacity ${FADE_OUT_MS}ms ease-in`\n }}\n >\n <div\n className=\"pt-sm-extra pb-xs text-center text-sm text-neutral-muted\"\n aria-live=\"polite\"\n >\n {STEP_LABELS[step]}\n </div>\n <div className={cn(\"overflow-hidden\", gridHeight)}>\n <div\n className=\"flex h-full w-[300%]\"\n style={{\n transform: `translateX(-${(stepIndex * 100) / 3}%)`,\n transition: `transform ${SLIDE_MS}ms ease-in-out`\n }}\n >\n <div\n {...panelProps(\"day\")}\n className=\"w-1/3 h-full px-md py-xs\"\n >\n <div\n className={cn(\n \"grid grid-cols-6 gap-x-xs gap-y-sm mx-auto\",\n dayGridWidth\n )}\n >\n {DAYS.map(day => (\n <BirthdayPickerCell\n key={day}\n selected={draft.day === day}\n disabled={isDayDisabled(day, range)}\n tabbable={step === \"day\"}\n onClick={() => onPickDay(day)}\n >\n {pad(day)}\n </BirthdayPickerCell>\n ))}\n </div>\n </div>\n <div\n {...panelProps(\"month\")}\n className=\"w-1/3 h-full px-md py-xs flex items-center\"\n >\n <div\n className={cn(\n \"grid grid-cols-3 gap-x-sm gap-y-md w-full mx-auto\",\n wideGridWidth\n )}\n >\n {MONTHS.map(month => (\n <BirthdayPickerCell\n key={month}\n selected={draft.month === month}\n disabled={isMonthDisabled(\n month,\n draft,\n range\n )}\n tabbable={step === \"month\"}\n onClick={() => onPickMonth(month)}\n >\n {MONTH_NAMES_FULL[month - 1]}\n </BirthdayPickerCell>\n ))}\n </div>\n </div>\n <div {...panelProps(\"year\")} className=\"w-1/3 h-full\">\n <ScrollArea className=\"h-full\">\n <div className=\"px-md py-xs\">\n <div\n className={cn(\n \"grid grid-cols-5 gap-sm w-full mx-auto\",\n wideGridWidth\n )}\n >\n {years.map(year => (\n <BirthdayPickerCell\n key={year}\n selected={draft.year === year}\n disabled={isYearDisabled(\n year,\n draft,\n range\n )}\n tabbable={step === \"year\"}\n onClick={() => onPickYear(year)}\n >\n {year}\n </BirthdayPickerCell>\n ))}\n </div>\n </div>\n </ScrollArea>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </RadixPopover.Content>\n </RadixPopover.Portal>\n </RadixPopover.Root>\n </div>\n );\n};\n\nexport { BirthdayPicker };\n"],"names":["STEPS","STEP_LABELS","DAYS","Array","_","index","MONTHS","EXPAND_MS","SLIDE_MS","FADE_OUT_MS","COLLAPSE_MS","cardVariants","cva","cardHeaderVariants","gridHeight","dayGridWidth","wideGridWidth","BirthdayPicker","value","onChange","disabled","size","variant","invalid","yearRange","minDate","maxDate","onOpenChange","className","open","setOpen","useState","phase","setPhase","step","setStep","draft","setDraft","barHeight","setBarHeight","bodyHeight","setBodyHeight","barRef","useRef","cardRef","bodyRef","panelRefs","picked","Set","closeTimer","escapeScrollLock","useEscapeScrollLock","saved","useMemo","parseBirthdayValue","years","birthdayYears","range","useEffect","clearTimeout","expand","collapse","setTimeout","useLayoutEffect","second","first","requestAnimationFrame","cancelAnimationFrame","timer","rect","window","panel","selected","viewport","offset","target","goToStep","next","onPick","pickedStep","nextValue","formatBirthdayValue","nextStep","nextBirthdayStep","onPickDay","day","pickDay","onPickMonth","month","pickMonth","onPickYear","year","pickYear","onBarKeyDown","event","expanded","cardHeight","stepIndex","icons","interactive","undefined","Icon","CloseIcon","CalendarMonthIcon","panelProps","panelStep","element","RadixPopover","isOpen","cn","inputVariants","BirthdayPickerSegments","BirthdayPickerCell","isDayDisabled","pad","isMonthDisabled","MONTH_NAMES_FULL","ScrollArea","isYearDisabled"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ interface BirthdayPickerCellProps {
3
+ selected: boolean;
4
+ disabled?: boolean;
5
+ tabbable: boolean;
6
+ onClick: () => void;
7
+ children: React.ReactNode;
8
+ }
9
+ /**
10
+ * One day, month or year in a step's grid. It reads as a button: a ghost one, or a primary one
11
+ * for the picked value, the same as the month and year grids of the other pickers.
12
+ */
13
+ declare const BirthdayPickerCell: ({ selected, disabled, tabbable, onClick, children }: BirthdayPickerCellProps) => React.JSX.Element;
14
+ export { BirthdayPickerCell };
@@ -0,0 +1,19 @@
1
+ import react from "react";
2
+ import { buttonVariants } from "../../Button/index.js";
3
+ import { cn } from "../../utils.js";
4
+ const BirthdayPickerCell = ({ selected, disabled, tabbable, onClick, children })=>/*#__PURE__*/ react.createElement("button", {
5
+ type: "button",
6
+ disabled: disabled,
7
+ "aria-disabled": disabled,
8
+ "aria-pressed": selected,
9
+ "data-selected": selected,
10
+ tabIndex: tabbable && !disabled ? 0 : -1,
11
+ onClick: onClick,
12
+ className: cn(buttonVariants({
13
+ variant: selected ? "primary" : "ghost",
14
+ size: "md"
15
+ }), "w-full tabular-nums")
16
+ }, children);
17
+ export { BirthdayPickerCell };
18
+
19
+ //# sourceMappingURL=BirthdayPickerCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker/primitives/BirthdayPickerCell.js","sources":["../../../src/DatePicker/primitives/BirthdayPickerCell.tsx"],"sourcesContent":["import React from \"react\";\nimport { buttonVariants } from \"~/Button/index.js\";\nimport { cn } from \"~/utils.js\";\n\ninterface BirthdayPickerCellProps {\n selected: boolean;\n disabled?: boolean;\n tabbable: boolean;\n onClick: () => void;\n children: React.ReactNode;\n}\n\n/**\n * One day, month or year in a step's grid. It reads as a button: a ghost one, or a primary one\n * for the picked value, the same as the month and year grids of the other pickers.\n */\nconst BirthdayPickerCell = ({\n selected,\n disabled,\n tabbable,\n onClick,\n children\n}: BirthdayPickerCellProps) => (\n <button\n type=\"button\"\n disabled={disabled}\n aria-disabled={disabled}\n aria-pressed={selected}\n data-selected={selected}\n tabIndex={tabbable && !disabled ? 0 : -1}\n onClick={onClick}\n className={cn(\n buttonVariants({ variant: selected ? \"primary\" : \"ghost\", size: \"md\" }),\n \"w-full tabular-nums\"\n )}\n >\n {children}\n </button>\n);\n\nexport { BirthdayPickerCell };\n"],"names":["BirthdayPickerCell","selected","disabled","tabbable","onClick","children","cn","buttonVariants"],"mappings":";;;AAgBA,MAAMA,qBAAqB,CAAC,EACxBC,QAAQ,EACRC,QAAQ,EACRC,QAAQ,EACRC,OAAO,EACPC,QAAQ,EACc,iBACtB,oBAAC;QACG,MAAK;QACL,UAAUH;QACV,iBAAeA;QACf,gBAAcD;QACd,iBAAeA;QACf,UAAUE,YAAY,CAACD,WAAW,IAAI;QACtC,SAASE;QACT,WAAWE,GACPC,eAAe;YAAE,SAASN,WAAW,YAAY;YAAS,MAAM;QAAK,IACrE;OAGHI"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import { type BirthdayParts, type BirthdayStep } from "../utils/birthdayHelpers.js";
3
+ interface BirthdayPickerSegmentsProps {
4
+ parts: BirthdayParts;
5
+ activeStep?: BirthdayStep;
6
+ onStepClick?: (step: BirthdayStep) => void;
7
+ }
8
+ declare const BirthdayPickerSegments: ({ parts, activeStep, onStepClick }: BirthdayPickerSegmentsProps) => React.JSX.Element;
9
+ export { BirthdayPickerSegments };
@@ -0,0 +1,43 @@
1
+ import react from "react";
2
+ import { cn } from "../../utils.js";
3
+ import { pad } from "../utils/birthdayHelpers.js";
4
+ const BirthdayPickerSegments = ({ parts, activeStep, onStepClick })=>{
5
+ const segments = [
6
+ {
7
+ step: "day",
8
+ text: parts.day ? pad(parts.day) : "DD",
9
+ filled: !!parts.day
10
+ },
11
+ {
12
+ step: "month",
13
+ text: parts.month ? pad(parts.month) : "MM",
14
+ filled: !!parts.month
15
+ },
16
+ {
17
+ step: "year",
18
+ text: parts.year ? String(parts.year) : "YYYY",
19
+ filled: !!parts.year
20
+ }
21
+ ];
22
+ return /*#__PURE__*/ react.createElement("span", {
23
+ className: "flex items-center gap-xs tabular-nums whitespace-nowrap"
24
+ }, segments.map((segment, index)=>{
25
+ const className = cn("transition-colors", !segment.filled && "text-neutral-dimmed", activeStep === segment.step && "text-accent-primary");
26
+ return /*#__PURE__*/ react.createElement(react.Fragment, {
27
+ key: segment.step
28
+ }, index > 0 ? /*#__PURE__*/ react.createElement("span", {
29
+ className: "text-neutral-dimmed"
30
+ }, "/") : null, onStepClick ? /*#__PURE__*/ react.createElement("button", {
31
+ type: "button",
32
+ tabIndex: -1,
33
+ "data-step": segment.step,
34
+ className: cn(className, "cursor-pointer outline-none"),
35
+ onClick: ()=>onStepClick(segment.step)
36
+ }, segment.text) : /*#__PURE__*/ react.createElement("span", {
37
+ className: className
38
+ }, segment.text));
39
+ }));
40
+ };
41
+ export { BirthdayPickerSegments };
42
+
43
+ //# sourceMappingURL=BirthdayPickerSegments.js.map