@mezzanine-ui/react 0.16.0 → 1.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (454) hide show
  1. package/Accordion/AccordionControlContext.js +1 -0
  2. package/Accordion/AccordionDetails.js +1 -0
  3. package/Accordion/AccordionSummary.js +10 -10
  4. package/Accordion/index.d.ts +6 -3
  5. package/Alert/index.d.ts +3 -2
  6. package/AlertBanner/AlertBanner.d.ts +93 -0
  7. package/AlertBanner/AlertBanner.js +154 -0
  8. package/AlertBanner/index.d.ts +2 -0
  9. package/AlertBanner/index.js +1 -0
  10. package/Anchor/Anchor.js +1 -1
  11. package/Anchor/index.d.ts +2 -1
  12. package/AppBar/index.d.ts +8 -4
  13. package/{Overlay/Overlay.d.ts → Backdrop/Backdrop.d.ts} +12 -16
  14. package/Backdrop/Backdrop.js +40 -0
  15. package/Backdrop/index.d.ts +2 -0
  16. package/Backdrop/index.js +1 -0
  17. package/Badge/Badge.d.ts +20 -14
  18. package/Badge/Badge.js +14 -16
  19. package/Badge/BadgeContainer.d.ts +1 -1
  20. package/Badge/BadgeContainer.js +1 -1
  21. package/Badge/index.d.ts +3 -2
  22. package/Badge/typings.d.ts +48 -0
  23. package/Breadcrumb/Breadcrumb.d.ts +6 -0
  24. package/Breadcrumb/Breadcrumb.js +25 -0
  25. package/Breadcrumb/BreadcrumbItem.d.ts +4 -0
  26. package/Breadcrumb/BreadcrumbItem.js +45 -0
  27. package/Breadcrumb/index.d.ts +2 -0
  28. package/Breadcrumb/index.js +1 -0
  29. package/Breadcrumb/typings.d.ts +70 -0
  30. package/Button/Button.js +24 -19
  31. package/Button/ButtonGroup.d.ts +6 -28
  32. package/Button/ButtonGroup.js +7 -16
  33. package/Button/index.d.ts +4 -10
  34. package/Button/index.js +2 -3
  35. package/Button/typings.d.ts +11 -26
  36. package/Calendar/Calendar.d.ts +31 -2
  37. package/Calendar/Calendar.js +74 -19
  38. package/Calendar/CalendarCell.d.ts +4 -0
  39. package/Calendar/CalendarCell.js +3 -3
  40. package/Calendar/CalendarConfigProviderDayjs.d.ts +21 -0
  41. package/Calendar/CalendarConfigProviderDayjs.js +15 -0
  42. package/Calendar/CalendarConfigProviderLuxon.d.ts +21 -0
  43. package/Calendar/CalendarConfigProviderLuxon.js +15 -0
  44. package/Calendar/CalendarConfigProviderMoment.d.ts +21 -0
  45. package/Calendar/CalendarConfigProviderMoment.js +15 -0
  46. package/Calendar/CalendarContext.d.ts +14 -7
  47. package/Calendar/CalendarContext.js +8 -13
  48. package/Calendar/CalendarControls.d.ts +16 -0
  49. package/Calendar/CalendarControls.js +3 -7
  50. package/Calendar/CalendarDayOfWeek.js +4 -3
  51. package/Calendar/CalendarDays.d.ts +9 -1
  52. package/Calendar/CalendarDays.js +63 -38
  53. package/Calendar/CalendarFooterActions.d.ts +13 -0
  54. package/Calendar/CalendarFooterActions.js +14 -0
  55. package/Calendar/CalendarFooterControl.d.ts +16 -0
  56. package/Calendar/CalendarFooterControl.js +14 -0
  57. package/Calendar/CalendarHalfYears.d.ts +39 -0
  58. package/Calendar/CalendarHalfYears.js +62 -0
  59. package/Calendar/CalendarMonths.js +16 -4
  60. package/Calendar/CalendarQuarters.d.ts +37 -0
  61. package/Calendar/CalendarQuarters.js +64 -0
  62. package/Calendar/CalendarQuickSelect.d.ts +21 -0
  63. package/Calendar/CalendarQuickSelect.js +15 -0
  64. package/Calendar/CalendarWeeks.d.ts +1 -1
  65. package/Calendar/CalendarWeeks.js +89 -44
  66. package/Calendar/CalendarYears.js +13 -3
  67. package/Calendar/RangeCalendar.d.ts +59 -0
  68. package/Calendar/RangeCalendar.js +232 -0
  69. package/Calendar/index.d.ts +33 -10
  70. package/Calendar/index.js +7 -0
  71. package/Calendar/useCalendarControlModifiers.d.ts +4 -4
  72. package/Calendar/useCalendarControlModifiers.js +40 -8
  73. package/Calendar/useCalendarControls.d.ts +2 -0
  74. package/Calendar/useCalendarControls.js +19 -2
  75. package/Calendar/useCalendarModeStack.js +1 -0
  76. package/Calendar/useRangeCalendarControls.d.ts +18 -0
  77. package/Calendar/useRangeCalendarControls.js +115 -0
  78. package/Card/CardActions.js +1 -1
  79. package/Card/index.d.ts +4 -2
  80. package/Checkbox/CheckAll.d.ts +16 -6
  81. package/Checkbox/CheckAll.js +40 -26
  82. package/Checkbox/Checkbox.d.ts +100 -22
  83. package/Checkbox/Checkbox.js +73 -16
  84. package/Checkbox/CheckboxGroup.d.ts +100 -18
  85. package/Checkbox/CheckboxGroup.js +169 -24
  86. package/Checkbox/CheckboxGroupContext.d.ts +0 -2
  87. package/Checkbox/CheckboxGroupContext.js +1 -0
  88. package/Checkbox/index.d.ts +16 -4
  89. package/Checkbox/index.js +6 -2
  90. package/Checkbox/typings.d.ts +37 -0
  91. package/ClearActions/ClearActions.d.ts +41 -0
  92. package/ClearActions/ClearActions.js +23 -0
  93. package/ClearActions/index.d.ts +3 -0
  94. package/ClearActions/index.js +5 -0
  95. package/ConfirmActions/ConfirmActions.d.ts +2 -1
  96. package/ConfirmActions/index.d.ts +2 -1
  97. package/DatePicker/DatePicker.d.ts +12 -1
  98. package/DatePicker/DatePicker.js +41 -9
  99. package/DatePicker/DatePickerCalendar.d.ts +2 -5
  100. package/DatePicker/DatePickerCalendar.js +37 -37
  101. package/DatePicker/index.d.ts +4 -2
  102. package/DateRangePicker/DateRangePicker.d.ts +18 -2
  103. package/DateRangePicker/DateRangePicker.js +143 -100
  104. package/DateRangePicker/DateRangePickerCalendar.d.ts +13 -9
  105. package/DateRangePicker/DateRangePickerCalendar.js +7 -94
  106. package/DateRangePicker/index.d.ts +6 -3
  107. package/DateRangePicker/useDateRangeCalendarControls.js +11 -6
  108. package/DateRangePicker/useDateRangePickerValue.d.ts +38 -15
  109. package/DateRangePicker/useDateRangePickerValue.js +142 -63
  110. package/DateTimePicker/DateTimePicker.d.ts +31 -10
  111. package/DateTimePicker/DateTimePicker.js +179 -94
  112. package/DateTimePicker/index.d.ts +2 -2
  113. package/DateTimePicker/index.js +0 -1
  114. package/Drawer/Drawer.js +2 -2
  115. package/Drawer/index.d.ts +2 -1
  116. package/Dropdown/Dropdown.js +12 -22
  117. package/Dropdown/index.d.ts +2 -1
  118. package/Empty/Empty.d.ts +1 -16
  119. package/Empty/Empty.js +36 -7
  120. package/Empty/icons/EmptyMainInitialDataIcon.d.ts +4 -0
  121. package/Empty/icons/EmptyMainInitialDataIcon.js +9 -0
  122. package/Empty/icons/EmptyMainResultIcon.d.ts +4 -0
  123. package/Empty/icons/EmptyMainResultIcon.js +9 -0
  124. package/Empty/icons/EmptyMainSystemIcon.d.ts +4 -0
  125. package/Empty/icons/EmptyMainSystemIcon.js +9 -0
  126. package/Empty/index.d.ts +2 -1
  127. package/Empty/typings.d.ts +52 -0
  128. package/Form/FormControlContext.js +1 -0
  129. package/Form/FormHintText.d.ts +18 -0
  130. package/Form/FormHintText.js +17 -0
  131. package/Form/FormLabel.js +1 -0
  132. package/Form/index.d.ts +9 -5
  133. package/Form/index.js +1 -1
  134. package/Form/useAutoCompleteValueControl.js +2 -0
  135. package/Form/useCheckboxControlValue.js +0 -1
  136. package/Form/useSelectValueControl.js +2 -0
  137. package/InlineMessage/InlineMessage.d.ts +33 -0
  138. package/InlineMessage/InlineMessage.js +42 -0
  139. package/InlineMessage/InlineMessageGroup.d.ts +24 -0
  140. package/InlineMessage/InlineMessageGroup.js +21 -0
  141. package/InlineMessage/index.d.ts +4 -0
  142. package/InlineMessage/index.js +2 -0
  143. package/Input/ActionButton/ActionButton.d.ts +26 -0
  144. package/Input/ActionButton/ActionButton.js +14 -0
  145. package/Input/ActionButton/index.d.ts +2 -0
  146. package/Input/ActionButton/index.js +1 -0
  147. package/Input/Input.d.ts +147 -42
  148. package/Input/Input.js +195 -27
  149. package/Input/PasswordStrengthIndicator/PasswordStrengthIndicator.d.ts +31 -0
  150. package/Input/PasswordStrengthIndicator/PasswordStrengthIndicator.js +18 -0
  151. package/Input/PasswordStrengthIndicator/index.d.ts +2 -0
  152. package/Input/PasswordStrengthIndicator/index.js +1 -0
  153. package/Input/SelectButton/SelectButton.d.ts +20 -0
  154. package/Input/SelectButton/SelectButton.js +21 -0
  155. package/Input/SelectButton/index.d.ts +2 -0
  156. package/Input/SelectButton/index.js +1 -0
  157. package/Input/SpinnerButton/SpinnerButton.d.ts +19 -0
  158. package/Input/SpinnerButton/SpinnerButton.js +14 -0
  159. package/Input/SpinnerButton/index.d.ts +2 -0
  160. package/Input/SpinnerButton/index.js +1 -0
  161. package/Input/index.d.ts +3 -2
  162. package/Menu/Menu.js +1 -0
  163. package/Menu/index.d.ts +8 -4
  164. package/Message/Message.d.ts +6 -4
  165. package/Message/Message.js +86 -9
  166. package/Message/MessageTimerController.d.ts +14 -0
  167. package/Message/MessageTimerController.js +27 -0
  168. package/Message/index.d.ts +3 -2
  169. package/Modal/Modal.js +2 -2
  170. package/Modal/ModalActions.js +1 -0
  171. package/Modal/ModalControl.js +1 -0
  172. package/Modal/ModalHeader.js +1 -0
  173. package/Modal/index.d.ts +10 -5
  174. package/Modal/useModalContainer.d.ts +1 -1
  175. package/Modal/useModalContainer.js +2 -4
  176. package/Navigation/Navigation.js +37 -34
  177. package/Navigation/NavigationContext.js +1 -0
  178. package/Navigation/NavigationItem.js +1 -0
  179. package/Navigation/NavigationSubMenu.js +16 -26
  180. package/Navigation/index.d.ts +8 -4
  181. package/Notification/Notification.js +0 -1
  182. package/Notification/index.d.ts +3 -2
  183. package/Notifier/NotifierManager.d.ts +15 -2
  184. package/Notifier/NotifierManager.js +60 -18
  185. package/Notifier/createNotifier.d.ts +9 -0
  186. package/Notifier/createNotifier.js +3 -2
  187. package/Notifier/typings.d.ts +3 -1
  188. package/OverflowTooltip/OverflowCounterTag.d.ts +12 -0
  189. package/OverflowTooltip/OverflowCounterTag.js +48 -0
  190. package/OverflowTooltip/OverflowTooltip.d.ts +34 -0
  191. package/OverflowTooltip/OverflowTooltip.js +53 -0
  192. package/OverflowTooltip/index.d.ts +2 -0
  193. package/OverflowTooltip/index.js +2 -0
  194. package/PageFooter/PageFooter.d.ts +73 -8
  195. package/PageFooter/PageFooter.js +34 -3
  196. package/PageFooter/index.d.ts +2 -1
  197. package/PageHeader/PageHeader.d.ts +36 -0
  198. package/PageHeader/PageHeader.js +65 -0
  199. package/PageHeader/index.d.ts +2 -0
  200. package/PageHeader/index.js +1 -0
  201. package/PageToolbar/PageToolbar.d.ts +67 -0
  202. package/PageToolbar/PageToolbar.js +114 -0
  203. package/PageToolbar/index.d.ts +2 -0
  204. package/PageToolbar/index.js +1 -0
  205. package/Pagination/Pagination.d.ts +23 -29
  206. package/Pagination/Pagination.js +3 -4
  207. package/Pagination/PaginationItem.d.ts +1 -1
  208. package/Pagination/PaginationItem.js +6 -3
  209. package/Pagination/PaginationJumper.d.ts +7 -9
  210. package/Pagination/PaginationJumper.js +3 -5
  211. package/Pagination/PaginationPageSize.d.ts +8 -11
  212. package/Pagination/PaginationPageSize.js +5 -4
  213. package/Pagination/index.d.ts +8 -4
  214. package/Pagination/usePagination.d.ts +3 -1
  215. package/Pagination/usePagination.js +30 -21
  216. package/Picker/FormattedInput.d.ts +17 -0
  217. package/Picker/FormattedInput.js +74 -0
  218. package/Picker/MaskFormat.d.ts +39 -0
  219. package/Picker/MaskFormat.js +94 -0
  220. package/Picker/PickerTrigger.d.ts +13 -3
  221. package/Picker/PickerTrigger.js +17 -2
  222. package/Picker/PickerTriggerWithSeparator.d.ts +124 -0
  223. package/Picker/PickerTriggerWithSeparator.js +80 -0
  224. package/Picker/RangePickerTrigger.d.ts +55 -4
  225. package/Picker/RangePickerTrigger.js +65 -7
  226. package/Picker/formatUtils.d.ts +34 -0
  227. package/Picker/formatUtils.js +124 -0
  228. package/Picker/index.d.ts +17 -6
  229. package/Picker/index.js +4 -1
  230. package/Picker/useDateInputFormatter.d.ts +52 -0
  231. package/Picker/useDateInputFormatter.js +382 -0
  232. package/Picker/usePickerValue.d.ts +1 -2
  233. package/Picker/usePickerValue.js +8 -13
  234. package/Popconfirm/Popconfirm.js +1 -1
  235. package/Popconfirm/index.d.ts +2 -1
  236. package/Popover/Popover.js +4 -8
  237. package/Popover/index.d.ts +2 -1
  238. package/Popper/Popper.d.ts +15 -10
  239. package/Popper/Popper.js +88 -17
  240. package/Popper/index.d.ts +2 -1
  241. package/Portal/Portal.d.ts +13 -5
  242. package/Portal/Portal.js +25 -10
  243. package/Portal/index.d.ts +4 -1
  244. package/Portal/index.js +1 -0
  245. package/Portal/portalRegistry.d.ts +17 -0
  246. package/Portal/portalRegistry.js +92 -0
  247. package/Progress/Progress.d.ts +23 -30
  248. package/Progress/Progress.js +71 -21
  249. package/Progress/index.d.ts +3 -2
  250. package/Provider/ConfigProvider.d.ts +1 -0
  251. package/Provider/ConfigProvider.js +1 -0
  252. package/Provider/context.js +1 -0
  253. package/Radio/Radio.d.ts +1 -1
  254. package/Radio/Radio.js +2 -1
  255. package/Radio/RadioGroup.d.ts +1 -1
  256. package/Radio/RadioGroup.js +1 -1
  257. package/Radio/RadioGroupContext.js +1 -0
  258. package/Radio/index.d.ts +4 -2
  259. package/ResultState/ResultState.d.ts +52 -0
  260. package/ResultState/ResultState.js +24 -0
  261. package/ResultState/index.d.ts +2 -0
  262. package/ResultState/index.js +1 -0
  263. package/Select/AutoComplete.d.ts +1 -1
  264. package/Select/AutoComplete.js +2 -1
  265. package/Select/Option.js +1 -0
  266. package/Select/Select.d.ts +1 -1
  267. package/Select/Select.js +2 -1
  268. package/Select/SelectControlContext.js +1 -0
  269. package/Select/SelectTrigger.d.ts +1 -87
  270. package/Select/SelectTrigger.js +26 -21
  271. package/Select/SelectTriggerTags.d.ts +1 -1
  272. package/Select/SelectTriggerTags.js +47 -18
  273. package/Select/TreeSelect.d.ts +1 -1
  274. package/Select/TreeSelect.js +2 -1
  275. package/Select/index.d.ts +14 -7
  276. package/Select/typings.d.ts +99 -0
  277. package/Select/useSelectTriggerTags.d.ts +15 -8
  278. package/Select/useSelectTriggerTags.js +83 -44
  279. package/Selection/Selection.d.ts +98 -0
  280. package/Selection/Selection.js +46 -0
  281. package/Selection/index.d.ts +12 -0
  282. package/Selection/index.js +5 -0
  283. package/Skeleton/Skeleton.d.ts +10 -3
  284. package/Skeleton/Skeleton.js +12 -4
  285. package/Skeleton/index.d.ts +2 -1
  286. package/Slider/Slider.d.ts +44 -7
  287. package/Slider/Slider.js +17 -13
  288. package/Slider/index.d.ts +5 -3
  289. package/Spin/Spin.d.ts +39 -0
  290. package/{Loading/Loading.js → Spin/Spin.js} +9 -9
  291. package/Spin/index.d.ts +2 -0
  292. package/Spin/index.js +1 -0
  293. package/Stepper/Step.d.ts +1 -35
  294. package/Stepper/Step.js +43 -8
  295. package/Stepper/Stepper.d.ts +1 -14
  296. package/Stepper/Stepper.js +49 -15
  297. package/Stepper/index.d.ts +5 -2
  298. package/Stepper/index.js +1 -0
  299. package/Stepper/typings.d.ts +77 -0
  300. package/Stepper/useStepDistance.d.ts +10 -0
  301. package/Stepper/useStepDistance.js +81 -0
  302. package/Stepper/useStepper.d.ts +21 -0
  303. package/Stepper/useStepper.js +26 -0
  304. package/Table/Table.js +2 -2
  305. package/Table/TableBody.js +3 -2
  306. package/Table/TableBodyRow.js +1 -0
  307. package/Table/TableContext.js +1 -0
  308. package/Table/TableExpandedTable.js +1 -0
  309. package/Table/TableHeader.js +1 -0
  310. package/Table/editable/TableEditRenderWrapper.js +1 -0
  311. package/Table/expandable/TableExpandable.js +1 -1
  312. package/Table/index.d.ts +7 -4
  313. package/Table/pagination/TablePagination.js +1 -0
  314. package/Table/pagination/useTablePagination.js +1 -0
  315. package/Table/refresh/TableRefresh.js +3 -1
  316. package/Table/rowSelection/TableRowSelection.js +3 -2
  317. package/Table/sorting/TableSortingIcon.js +2 -1
  318. package/Table/sorting/useTableSorting.js +1 -0
  319. package/Table/useTableFetchMore.js +1 -1
  320. package/Table/useTableScroll.d.ts +4 -8
  321. package/Table/useTableScroll.js +9 -7
  322. package/Tabs/TabPane.js +1 -0
  323. package/Tabs/Tabs.js +9 -4
  324. package/Tabs/index.d.ts +6 -3
  325. package/Tabs/useTabsOverflow.js +4 -3
  326. package/Tag/Tag.d.ts +2 -25
  327. package/Tag/Tag.js +23 -13
  328. package/Tag/TagGroup.d.ts +12 -0
  329. package/Tag/TagGroup.js +41 -0
  330. package/Tag/index.d.ts +2 -1
  331. package/Tag/typings.d.ts +78 -0
  332. package/TextField/TextField.d.ts +78 -19
  333. package/TextField/TextField.js +58 -22
  334. package/TextField/index.d.ts +2 -1
  335. package/Textarea/Textarea.d.ts +19 -51
  336. package/Textarea/Textarea.js +13 -19
  337. package/Textarea/index.d.ts +2 -2
  338. package/TimePanel/TimePanel.d.ts +1 -22
  339. package/TimePanel/TimePanel.js +31 -26
  340. package/TimePanel/TimePanelAction.d.ts +2 -8
  341. package/TimePanel/TimePanelAction.js +2 -2
  342. package/TimePanel/TimePanelColumn.d.ts +0 -13
  343. package/TimePanel/TimePanelColumn.js +9 -11
  344. package/TimePanel/index.d.ts +6 -3
  345. package/TimePicker/TimePicker.d.ts +10 -1
  346. package/TimePicker/TimePicker.js +86 -35
  347. package/TimePicker/TimePickerPanel.d.ts +1 -2
  348. package/TimePicker/TimePickerPanel.js +2 -2
  349. package/TimePicker/index.d.ts +4 -2
  350. package/Toggle/Toggle.d.ts +46 -0
  351. package/Toggle/Toggle.js +29 -0
  352. package/Toggle/index.d.ts +3 -0
  353. package/Toggle/index.js +1 -0
  354. package/Tooltip/Tooltip.d.ts +13 -2
  355. package/Tooltip/Tooltip.js +56 -10
  356. package/Tooltip/index.d.ts +2 -1
  357. package/Tooltip/useDelayMouseEnterLeave.d.ts +1 -2
  358. package/Tooltip/useDelayMouseEnterLeave.js +10 -13
  359. package/Transition/Collapse.d.ts +2 -0
  360. package/Transition/Collapse.js +5 -6
  361. package/Transition/Fade.js +4 -4
  362. package/Transition/Rotate.d.ts +42 -0
  363. package/Transition/Rotate.js +30 -0
  364. package/Transition/Scale.d.ts +13 -0
  365. package/Transition/{Grow.js → Scale.js} +19 -16
  366. package/Transition/Slide.d.ts +7 -0
  367. package/Transition/{Zoom.js → Slide.js} +14 -12
  368. package/Transition/SlideFade.d.ts +3 -0
  369. package/Transition/SlideFade.js +5 -4
  370. package/Transition/Transition.d.ts +2 -2
  371. package/Transition/Translate.d.ts +14 -0
  372. package/Transition/Translate.js +94 -0
  373. package/Transition/index.d.ts +16 -6
  374. package/Transition/index.js +4 -2
  375. package/Transition/useAutoTransitionDuration.d.ts +1 -1
  376. package/Transition/useAutoTransitionDuration.js +3 -3
  377. package/Transition/useSetNodeTransition.js +0 -2
  378. package/Tree/TreeNode.js +7 -6
  379. package/Tree/index.d.ts +10 -5
  380. package/Typography/Typography.d.ts +6 -9
  381. package/Typography/Typography.js +7 -9
  382. package/Typography/index.d.ts +2 -5
  383. package/Upload/Upload.d.ts +175 -0
  384. package/Upload/Upload.js +279 -0
  385. package/Upload/UploadItem.d.ts +82 -0
  386. package/Upload/UploadItem.js +118 -0
  387. package/Upload/UploadPictureCard.d.ts +110 -0
  388. package/Upload/UploadPictureCard.js +101 -0
  389. package/Upload/Uploader.d.ts +161 -0
  390. package/Upload/Uploader.js +120 -0
  391. package/Upload/index.d.ts +8 -6
  392. package/Upload/index.js +4 -5
  393. package/Upload/upload-utils.d.ts +41 -0
  394. package/Upload/upload-utils.js +65 -0
  395. package/_internal/InputCheck/index.d.ts +4 -2
  396. package/_internal/InputTriggerPopper/InputTriggerPopper.js +15 -25
  397. package/_internal/InputTriggerPopper/index.d.ts +2 -1
  398. package/_internal/SlideFadeOverlay/SlideFadeOverlay.d.ts +2 -2
  399. package/_internal/SlideFadeOverlay/SlideFadeOverlay.js +4 -27
  400. package/_internal/SlideFadeOverlay/index.d.ts +2 -1
  401. package/_internal/SlideFadeOverlay/useTopStack.js +1 -0
  402. package/dayjs.d.ts +21 -0
  403. package/dayjs.js +2 -0
  404. package/hooks/useComposeRefs.js +1 -1
  405. package/hooks/useLastCallback.js +3 -1
  406. package/hooks/useScrollLock.d.ts +28 -0
  407. package/hooks/useScrollLock.js +134 -0
  408. package/index.d.ts +126 -58
  409. package/index.js +93 -80
  410. package/luxon.d.ts +21 -0
  411. package/luxon.js +2 -0
  412. package/moment.d.ts +21 -0
  413. package/moment.js +2 -0
  414. package/package.json +13 -17
  415. package/utils/composeRefs.js +0 -1
  416. package/utils/get-css-variable-value.d.ts +1 -0
  417. package/utils/get-css-variable-value.js +9 -0
  418. package/Button/IconButton.d.ts +0 -21
  419. package/Button/IconButton.js +0 -13
  420. package/DateTimePicker/DateTimePickerPanel.d.ts +0 -28
  421. package/DateTimePicker/DateTimePickerPanel.js +0 -49
  422. package/Form/FormMessage.d.ts +0 -7
  423. package/Form/FormMessage.js +0 -18
  424. package/Form/useInputWithTagsModeValue.js +0 -86
  425. package/Loading/Loading.d.ts +0 -33
  426. package/Loading/index.d.ts +0 -1
  427. package/Loading/index.js +0 -1
  428. package/Overlay/Overlay.js +0 -31
  429. package/Overlay/index.d.ts +0 -1
  430. package/Overlay/index.js +0 -1
  431. package/Picker/useRangePickerValue.d.ts +0 -23
  432. package/Picker/useRangePickerValue.js +0 -99
  433. package/Switch/Switch.d.ts +0 -43
  434. package/Switch/Switch.js +0 -28
  435. package/Switch/index.d.ts +0 -2
  436. package/Switch/index.js +0 -1
  437. package/Transition/Grow.d.ts +0 -12
  438. package/Transition/Zoom.d.ts +0 -7
  439. package/Upload/UploadButton.d.ts +0 -9
  440. package/Upload/UploadButton.js +0 -23
  441. package/Upload/UploadInput.d.ts +0 -20
  442. package/Upload/UploadInput.js +0 -24
  443. package/Upload/UploadPicture.d.ts +0 -49
  444. package/Upload/UploadPicture.js +0 -51
  445. package/Upload/UploadPictureBlock.d.ts +0 -20
  446. package/Upload/UploadPictureBlock.js +0 -81
  447. package/Upload/UploadPictureWall.d.ts +0 -81
  448. package/Upload/UploadPictureWall.js +0 -168
  449. package/Upload/UploadPictureWallItem.d.ts +0 -15
  450. package/Upload/UploadPictureWallItem.js +0 -18
  451. package/Upload/UploadResult.d.ts +0 -35
  452. package/Upload/UploadResult.js +0 -29
  453. package/utils/scroll-lock.d.ts +0 -2
  454. package/utils/scroll-lock.js +0 -24
@@ -0,0 +1,21 @@
1
+ import { ReactNode } from 'react';
2
+ import { CalendarLocaleValue } from '@mezzanine-ui/core/calendar';
3
+ export type CalendarConfigProviderDayjsProps = {
4
+ children?: ReactNode;
5
+ defaultDateFormat?: string;
6
+ defaultTimeFormat?: string;
7
+ /**
8
+ * The unified locale for all calendar display and value processing.
9
+ * This determines the first day of week, month names, weekday names, etc.
10
+ * Use CalendarLocale enum for type-safe locale values.
11
+ * @example CalendarLocale.EN_US, CalendarLocale.ZH_TW, CalendarLocale.DE_DE
12
+ * @default CalendarLocale.EN_US
13
+ */
14
+ locale?: CalendarLocaleValue;
15
+ };
16
+ /**
17
+ * Pre-configured CalendarConfigProvider with Dayjs methods.
18
+ * Use this component in Next.js App Router to avoid Server/Client Component boundary issues.
19
+ */
20
+ export declare function CalendarConfigProviderDayjs(props: CalendarConfigProviderDayjsProps): import("react/jsx-runtime").JSX.Element;
21
+ export default CalendarConfigProviderDayjs;
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import CalendarMethodsDayjs from '@mezzanine-ui/core/calendarMethodsDayjs';
4
+ import CalendarConfigProvider from './CalendarContext.js';
5
+
6
+ /**
7
+ * Pre-configured CalendarConfigProvider with Dayjs methods.
8
+ * Use this component in Next.js App Router to avoid Server/Client Component boundary issues.
9
+ */
10
+ function CalendarConfigProviderDayjs(props) {
11
+ const { children, defaultDateFormat, defaultTimeFormat, locale } = props;
12
+ return (jsx(CalendarConfigProvider, { defaultDateFormat: defaultDateFormat, defaultTimeFormat: defaultTimeFormat, locale: locale, methods: CalendarMethodsDayjs, children: children }));
13
+ }
14
+
15
+ export { CalendarConfigProviderDayjs, CalendarConfigProviderDayjs as default };
@@ -0,0 +1,21 @@
1
+ import { ReactNode } from 'react';
2
+ import { CalendarLocaleValue } from '@mezzanine-ui/core/calendar';
3
+ export type CalendarConfigProviderLuxonProps = {
4
+ children?: ReactNode;
5
+ defaultDateFormat?: string;
6
+ defaultTimeFormat?: string;
7
+ /**
8
+ * The unified locale for all calendar display and value processing.
9
+ * This determines the first day of week, month names, weekday names, etc.
10
+ * Use CalendarLocale enum for type-safe locale values.
11
+ * @example CalendarLocale.EN_US, CalendarLocale.ZH_TW, CalendarLocale.DE_DE
12
+ * @default CalendarLocale.EN_US
13
+ */
14
+ locale?: CalendarLocaleValue;
15
+ };
16
+ /**
17
+ * Pre-configured CalendarConfigProvider with Luxon methods.
18
+ * Use this component in Next.js App Router to avoid Server/Client Component boundary issues.
19
+ */
20
+ export declare function CalendarConfigProviderLuxon(props: CalendarConfigProviderLuxonProps): import("react/jsx-runtime").JSX.Element;
21
+ export default CalendarConfigProviderLuxon;
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import CalendarMethodsLuxon from '@mezzanine-ui/core/calendarMethodsLuxon';
4
+ import CalendarConfigProvider from './CalendarContext.js';
5
+
6
+ /**
7
+ * Pre-configured CalendarConfigProvider with Luxon methods.
8
+ * Use this component in Next.js App Router to avoid Server/Client Component boundary issues.
9
+ */
10
+ function CalendarConfigProviderLuxon(props) {
11
+ const { children, defaultDateFormat, defaultTimeFormat, locale } = props;
12
+ return (jsx(CalendarConfigProvider, { defaultDateFormat: defaultDateFormat, defaultTimeFormat: defaultTimeFormat, locale: locale, methods: CalendarMethodsLuxon, children: children }));
13
+ }
14
+
15
+ export { CalendarConfigProviderLuxon, CalendarConfigProviderLuxon as default };
@@ -0,0 +1,21 @@
1
+ import { ReactNode } from 'react';
2
+ import { CalendarLocaleValue } from '@mezzanine-ui/core/calendar';
3
+ export type CalendarConfigProviderMomentProps = {
4
+ children?: ReactNode;
5
+ defaultDateFormat?: string;
6
+ defaultTimeFormat?: string;
7
+ /**
8
+ * The unified locale for all calendar display and value processing.
9
+ * This determines the first day of week, month names, weekday names, etc.
10
+ * Use CalendarLocale enum for type-safe locale values.
11
+ * @example CalendarLocale.EN_US, CalendarLocale.ZH_TW, CalendarLocale.DE_DE
12
+ * @default CalendarLocale.EN_US
13
+ */
14
+ locale?: CalendarLocaleValue;
15
+ };
16
+ /**
17
+ * Pre-configured CalendarConfigProvider with Moment methods.
18
+ * Use this component in Next.js App Router to avoid Server/Client Component boundary issues.
19
+ */
20
+ export declare function CalendarConfigProviderMoment(props: CalendarConfigProviderMomentProps): import("react/jsx-runtime").JSX.Element;
21
+ export default CalendarConfigProviderMoment;
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import CalendarMethodsMoment from '@mezzanine-ui/core/calendarMethodsMoment';
4
+ import CalendarConfigProvider from './CalendarContext.js';
5
+
6
+ /**
7
+ * Pre-configured CalendarConfigProvider with Moment methods.
8
+ * Use this component in Next.js App Router to avoid Server/Client Component boundary issues.
9
+ */
10
+ function CalendarConfigProviderMoment(props) {
11
+ const { children, defaultDateFormat, defaultTimeFormat, locale } = props;
12
+ return (jsx(CalendarConfigProvider, { defaultDateFormat: defaultDateFormat, defaultTimeFormat: defaultTimeFormat, locale: locale, methods: CalendarMethodsMoment, children: children }));
13
+ }
14
+
15
+ export { CalendarConfigProviderMoment, CalendarConfigProviderMoment as default };
@@ -1,21 +1,28 @@
1
1
  import { ReactNode } from 'react';
2
- import { CalendarMethods } from '@mezzanine-ui/core/calendar';
2
+ import { CalendarLocale, CalendarLocaleValue, CalendarMethods } from '@mezzanine-ui/core/calendar';
3
3
  export interface CalendarConfigs extends CalendarMethods {
4
4
  defaultDateFormat: string;
5
5
  defaultTimeFormat: string;
6
- displayMonthLocale: string;
7
- displayWeekDayLocale: string;
8
- valueLocale: string;
6
+ /**
7
+ * The unified locale for all calendar display and value processing.
8
+ */
9
+ locale: string;
9
10
  }
10
11
  export type CalendarConfigProviderProps = {
11
12
  children?: ReactNode;
12
13
  defaultDateFormat?: string;
13
14
  defaultTimeFormat?: string;
14
- displayMonthLocale?: string;
15
- displayWeekDayLocale?: string;
15
+ /**
16
+ * The unified locale for all calendar display and value processing.
17
+ * This determines the first day of week, month names, weekday names, etc.
18
+ * Use CalendarLocale enum for type-safe locale values.
19
+ * @example CalendarLocale.EN_US, CalendarLocale.ZH_TW, CalendarLocale.DE_DE
20
+ * @default CalendarLocale.EN_US
21
+ */
22
+ locale?: CalendarLocaleValue;
16
23
  methods: CalendarMethods;
17
- valueLocale?: string;
18
24
  };
25
+ export { CalendarLocale };
19
26
  export declare const CalendarContext: import("react").Context<CalendarConfigs | undefined>;
20
27
  export declare function useCalendarContext(): CalendarConfigs;
21
28
  declare function CalendarConfigProvider(props: CalendarConfigProviderProps): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,8 @@
1
+ 'use client';
1
2
  import { jsx } from 'react/jsx-runtime';
2
- import { createContext, useContext, useMemo } from 'react';
3
+ import { createContext, useMemo, useContext } from 'react';
4
+ import { CalendarLocale, normalizeLocale } from '@mezzanine-ui/core/calendar';
5
+ export { CalendarLocale } from '@mezzanine-ui/core/calendar';
3
6
 
4
7
  const CalendarContext = createContext(undefined);
5
8
  function useCalendarContext() {
@@ -12,22 +15,14 @@ function useCalendarContext() {
12
15
  return configs;
13
16
  }
14
17
  function CalendarConfigProvider(props) {
15
- const { children, defaultDateFormat = 'YYYY-MM-DD', defaultTimeFormat = 'HH:mm:ss', displayMonthLocale = 'en-us', displayWeekDayLocale = 'en-us', methods, valueLocale = 'en-us', } = props;
18
+ const { children, defaultDateFormat = 'YYYY-MM-DD', defaultTimeFormat = 'HH:mm:ss', locale = CalendarLocale.EN_US, methods, } = props;
19
+ const resolvedLocale = normalizeLocale(locale);
16
20
  const context = useMemo(() => ({
17
21
  ...methods,
18
22
  defaultDateFormat,
19
23
  defaultTimeFormat,
20
- displayMonthLocale,
21
- displayWeekDayLocale,
22
- valueLocale,
23
- }), [
24
- methods,
25
- defaultDateFormat,
26
- defaultTimeFormat,
27
- displayMonthLocale,
28
- displayWeekDayLocale,
29
- valueLocale,
30
- ]);
24
+ locale: resolvedLocale,
25
+ }), [methods, defaultDateFormat, defaultTimeFormat, resolvedLocale]);
31
26
  return (jsx(CalendarContext.Provider, { value: context, children: children }));
32
27
  }
33
28
 
@@ -4,18 +4,34 @@ export interface CalendarControlsProps extends Omit<NativeElementPropsWithoutKey
4
4
  * Disable the next controller if true.
5
5
  */
6
6
  disableOnNext?: boolean;
7
+ /**
8
+ * Disable the double next controller if true.
9
+ */
10
+ disableOnDoubleNext?: boolean;
7
11
  /**
8
12
  * Disable the prev controller if true.
9
13
  */
10
14
  disableOnPrev?: boolean;
15
+ /**
16
+ * Disable the double prev controller if true.
17
+ */
18
+ disableOnDoublePrev?: boolean;
11
19
  /**
12
20
  * Click handler for next controller.
13
21
  */
14
22
  onNext?: VoidFunction;
23
+ /**
24
+ * Click handler for double next controller.
25
+ */
26
+ onDoubleNext?: VoidFunction;
15
27
  /**
16
28
  * Click handler for prev controller.
17
29
  */
18
30
  onPrev?: VoidFunction;
31
+ /**
32
+ * Click handler for double prev controller.
33
+ */
34
+ onDoublePrev?: VoidFunction;
19
35
  }
20
36
  /**
21
37
  * The react component for `mezzanine` calendar controls.
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { calendarClasses } from '@mezzanine-ui/core/calendar';
3
- import { ChevronLeftIcon, ChevronRightIcon } from '@mezzanine-ui/icons';
3
+ import { DoubleChevronLeftIcon, ChevronLeftIcon, ChevronRightIcon, DoubleChevronRightIcon } from '@mezzanine-ui/icons';
4
4
  import Icon from '../Icon/Icon.js';
5
5
  import cx from 'clsx';
6
6
 
@@ -9,12 +9,8 @@ import cx from 'clsx';
9
9
  * You may use it to compose your own calendar.
10
10
  */
11
11
  function CalendarControls(props) {
12
- const { children, className, disableOnNext, disableOnPrev, onNext, onPrev, ...restElementProps } = props;
13
- return (jsxs("div", { ...restElementProps, className: cx(calendarClasses.controls, className), children: [onPrev && (jsx("button", { type: "button", "aria-disabled": disableOnPrev, disabled: disableOnPrev, onClick: onPrev, className: cx(calendarClasses.button, calendarClasses.controlsIconButton, calendarClasses.controlsPrev, {
14
- [calendarClasses.buttonDisabled]: disableOnPrev,
15
- }), children: jsx(Icon, { icon: ChevronLeftIcon }) })), children, onNext && (jsx("button", { type: "button", "aria-disabled": disableOnNext, disabled: disableOnNext, onClick: onNext, className: cx(calendarClasses.button, calendarClasses.controlsIconButton, calendarClasses.controlsNext, {
16
- [calendarClasses.buttonDisabled]: disableOnNext,
17
- }), children: jsx(Icon, { icon: ChevronRightIcon }) }))] }));
12
+ const { children, className, disableOnNext, disableOnDoubleNext, disableOnPrev, disableOnDoublePrev, onPrev, onNext, onDoubleNext, onDoublePrev, ...restElementProps } = props;
13
+ return (jsxs("div", { ...restElementProps, className: cx(calendarClasses.controls, className), children: [jsxs("div", { className: cx(calendarClasses.controlsActions), children: [onDoublePrev && (jsx("button", { type: "button", "aria-disabled": disableOnDoublePrev, disabled: disableOnDoublePrev, onClick: onDoublePrev, "aria-label": "Go to previous year", title: "Previous Year", className: cx(calendarClasses.controlsButton), children: jsx(Icon, { icon: DoubleChevronLeftIcon, "aria-hidden": "true" }) })), onPrev && (jsx("button", { type: "button", "aria-disabled": disableOnPrev, disabled: disableOnPrev, onClick: onPrev, "aria-label": "Go to previous month", title: "Previous Month", className: cx(calendarClasses.controlsButton), children: jsx(Icon, { icon: ChevronLeftIcon, "aria-hidden": "true" }) }))] }), jsx("div", { className: cx(calendarClasses.controlsMain), children: children }), jsxs("div", { className: cx(calendarClasses.controlsActions), children: [onNext && (jsx("button", { type: "button", "aria-disabled": disableOnNext, disabled: disableOnNext, onClick: onNext, "aria-label": "Go to next month", title: "Next Month", className: cx(calendarClasses.controlsButton), children: jsx(Icon, { icon: ChevronRightIcon, "aria-hidden": "true" }) })), onDoubleNext && (jsx("button", { type: "button", "aria-disabled": disableOnDoubleNext, disabled: disableOnDoubleNext, onClick: onDoubleNext, "aria-label": "Go to next year", title: "Next Year", className: cx(calendarClasses.controlsButton), children: jsx(Icon, { icon: DoubleChevronRightIcon, "aria-hidden": "true" }) }))] })] }));
18
14
  }
19
15
 
20
16
  export { CalendarControls as default };
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { jsx } from 'react/jsx-runtime';
2
3
  import { calendarClasses } from '@mezzanine-ui/core/calendar';
3
4
  import CalendarCell from './CalendarCell.js';
@@ -9,10 +10,10 @@ import cx from 'clsx';
9
10
  * You may use it to compose your own calendar.
10
11
  */
11
12
  function CalendarDayOfWeek(props) {
12
- const { getWeekDayNames, displayWeekDayLocale: displayWeekDayLocaleFromConfig, } = useCalendarContext();
13
- const { displayWeekDayLocale = displayWeekDayLocaleFromConfig, className, ...restRowProps } = props;
13
+ const { getWeekDayNames, locale } = useCalendarContext();
14
+ const { displayWeekDayLocale = locale, className, ...restRowProps } = props;
14
15
  const weekDayNames = getWeekDayNames(displayWeekDayLocale);
15
- return (jsx("div", { className: cx(calendarClasses.row, className), ...restRowProps, children: weekDayNames.map((name) => (jsx(CalendarCell, { children: name }, `CALENDAR_DAY_OF_WEEK/${name}`))) }));
16
+ return (jsx("div", { className: cx(calendarClasses.row, className), role: "row", "aria-label": "Days of the week", ...restRowProps, children: weekDayNames.map((name, idx) => (jsx(CalendarCell, { role: "columnheader", children: name }, `CALENDAR_DAY_OF_WEEK/${name}-${idx}`))) }));
16
17
  }
17
18
 
18
19
  export { CalendarDayOfWeek as default };
@@ -3,6 +3,7 @@ import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
3
3
  import { CalendarDayOfWeekProps } from './CalendarDayOfWeek';
4
4
  import type { CalendarYearsProps } from './CalendarYears';
5
5
  import type { CalendarMonthsProps } from './CalendarMonths';
6
+ import { TypographyColor } from '../Typography';
6
7
  export interface CalendarDaysProps extends Pick<CalendarDayOfWeekProps, 'displayWeekDayLocale'>, Pick<CalendarYearsProps, 'isYearDisabled'>, Pick<CalendarMonthsProps, 'isMonthDisabled'>, Omit<NativeElementPropsWithoutKeyAndRef<'div'>, 'onClick' | 'children'> {
7
8
  /**
8
9
  * Provide if you have a custom disabling logic. The method takes the date object as its parameter.
@@ -22,7 +23,14 @@ export interface CalendarDaysProps extends Pick<CalendarDayOfWeekProps, 'display
22
23
  */
23
24
  onDateHover?: (date: DateType) => void;
24
25
  /**
25
- * The refernce date for getting the month of the calendar.
26
+ * The extra annotations for specific dates.
27
+ */
28
+ renderAnnotations?: (date: DateType) => {
29
+ value: string;
30
+ color?: TypographyColor;
31
+ };
32
+ /**
33
+ * The reference date for getting the month of the calendar.
26
34
  */
27
35
  referenceDate: DateType;
28
36
  /**
@@ -1,9 +1,11 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
1
+ 'use client';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
3
  import { calendarClasses } from '@mezzanine-ui/core/calendar';
3
4
  import { useMemo } from 'react';
4
5
  import CalendarCell from './CalendarCell.js';
5
6
  import CalendarDayOfWeek from './CalendarDayOfWeek.js';
6
7
  import { useCalendarContext } from './CalendarContext.js';
8
+ import Typography from '../Typography/Typography.js';
7
9
  import cx from 'clsx';
8
10
 
9
11
  /**
@@ -12,43 +14,66 @@ import cx from 'clsx';
12
14
  * You may use it to compose your own calendar.
13
15
  */
14
16
  function CalendarDays(props) {
15
- const { displayWeekDayLocale: displayWeekDayLocaleFromConfig, getCalendarGrid, getDate, getMonth, getNow, isDateIncluded, isSameDate, setDate, setMonth, } = useCalendarContext();
16
- const { className, displayWeekDayLocale = displayWeekDayLocaleFromConfig, isYearDisabled, isMonthDisabled, isDateDisabled, isDateInRange, onClick: onClickProp, onDateHover, referenceDate, value, ...rest } = props;
17
- const daysGrid = useMemo(() => getCalendarGrid(referenceDate), [getCalendarGrid, referenceDate]);
18
- return (jsxs("div", { ...rest, className: cx(calendarClasses.board, className), children: [jsx(CalendarDayOfWeek, { displayWeekDayLocale: displayWeekDayLocale }), daysGrid.map((week, index) => (jsx("div", { className: calendarClasses.row, children: week.map((dateNum) => {
19
- const isPrevMonth = index === 0 && dateNum > 7;
20
- const isNextMonth = index > 3 && dateNum <= 14;
21
- const thisMonth = getMonth(referenceDate);
22
- // eslint-disable-next-line no-nested-ternary
23
- const month = isPrevMonth
24
- ? thisMonth - 1
25
- : isNextMonth
26
- ? thisMonth + 1
27
- : thisMonth;
28
- const date = setDate(setMonth(referenceDate, month), dateNum);
29
- const disabled = (isYearDisabled === null || isYearDisabled === void 0 ? void 0 : isYearDisabled(date)) ||
30
- (isMonthDisabled === null || isMonthDisabled === void 0 ? void 0 : isMonthDisabled(date)) ||
31
- (isDateDisabled === null || isDateDisabled === void 0 ? void 0 : isDateDisabled(date)) ||
32
- false;
33
- const inactive = !disabled && (isPrevMonth || isNextMonth);
34
- const inRange = !inactive && isDateInRange && isDateInRange(date);
35
- const active = !disabled && !inactive && value && isDateIncluded(date, value);
36
- const onMouseEnter = onDateHover
37
- ? () => {
38
- onDateHover(date);
39
- }
40
- : undefined;
41
- const onClick = onClickProp
42
- ? () => {
43
- onClickProp(date);
44
- }
45
- : undefined;
46
- return (jsx(CalendarCell, { today: isSameDate(date, getNow()), active: active, disabled: isPrevMonth || isNextMonth, children: jsx("button", { type: "button", "aria-disabled": disabled, disabled: disabled, onMouseEnter: onMouseEnter, className: cx(calendarClasses.button, {
47
- [calendarClasses.buttonInRange]: inRange,
48
- [calendarClasses.buttonActive]: active,
49
- [calendarClasses.buttonDisabled]: disabled,
50
- }), onClick: onClick, children: dateNum }) }, `${getMonth(date)}/${getDate(date)}`));
51
- }) }, `CALENDAR_DAYS/WEEK_OF/${index}`)))] }));
17
+ const { locale, getCalendarGrid, getDate, getMonth, getNow, isDateIncluded, isSameDate, setDate, setMonth, setHour, setMinute, setSecond, setMillisecond, } = useCalendarContext();
18
+ const { className, displayWeekDayLocale = locale, isYearDisabled, isMonthDisabled, isDateDisabled, isDateInRange, onClick: onClickProp, onDateHover, renderAnnotations, referenceDate, value, ...rest } = props;
19
+ const daysGrid = useMemo(() => getCalendarGrid(referenceDate, displayWeekDayLocale), [getCalendarGrid, displayWeekDayLocale, referenceDate]);
20
+ return (jsx("div", { ...rest, className: cx(calendarClasses.board, className), children: jsxs("div", { className: calendarClasses.daysGrid, children: [jsx(CalendarDayOfWeek, { displayWeekDayLocale: displayWeekDayLocale }), daysGrid.map((week, index) => (jsx("div", { className: calendarClasses.row, children: week.map((dateNum) => {
21
+ const isPrevMonth = index === 0 && dateNum > 7;
22
+ const isNextMonth = index > 3 && dateNum <= 14;
23
+ const thisMonth = getMonth(referenceDate);
24
+ const month = isPrevMonth
25
+ ? thisMonth - 1
26
+ : isNextMonth
27
+ ? thisMonth + 1
28
+ : thisMonth;
29
+ const date = setMillisecond(setSecond(setMinute(setHour(setDate(setMonth(referenceDate, month), dateNum), 0), 0), 0), 0);
30
+ const disabled = (isYearDisabled === null || isYearDisabled === void 0 ? void 0 : isYearDisabled(date)) ||
31
+ (isMonthDisabled === null || isMonthDisabled === void 0 ? void 0 : isMonthDisabled(date)) ||
32
+ (isDateDisabled === null || isDateDisabled === void 0 ? void 0 : isDateDisabled(date)) ||
33
+ false;
34
+ const inactive = !disabled && (isPrevMonth || isNextMonth);
35
+ const inRange = !inactive && isDateInRange && isDateInRange(date);
36
+ const active = !disabled && !inactive && value && isDateIncluded(date, value);
37
+ const onMouseEnter = onDateHover
38
+ ? () => {
39
+ onDateHover(date);
40
+ }
41
+ : undefined;
42
+ const onClick = onClickProp
43
+ ? () => {
44
+ onClickProp(date);
45
+ }
46
+ : undefined;
47
+ // Accessible date label for screen readers
48
+ const dateObj = new Date(date);
49
+ const dayName = dateObj.toLocaleDateString(displayWeekDayLocale, {
50
+ weekday: 'long',
51
+ });
52
+ const monthName = dateObj.toLocaleDateString(displayWeekDayLocale, { month: 'long' });
53
+ const year = dateObj.getFullYear();
54
+ const day = dateObj.getDate();
55
+ const isToday = isSameDate(date, getNow());
56
+ const ariaLabel = [
57
+ `${dayName}, ${monthName} ${day}, ${year}`,
58
+ isToday && 'Today',
59
+ active && 'Selected',
60
+ disabled && 'Not available',
61
+ inactive && 'Outside current month',
62
+ ]
63
+ .filter(Boolean)
64
+ .join(', ');
65
+ return (jsx(CalendarCell, { today: isSameDate(date, getNow()), active: active, disabled: isPrevMonth || isNextMonth, children: jsxs("button", { type: "button", "aria-disabled": disabled, disabled: disabled, "aria-label": ariaLabel, "aria-pressed": active, "aria-current": isToday ? 'date' : undefined, onMouseEnter: onMouseEnter, className: cx(calendarClasses.button, {
66
+ [calendarClasses.buttonInRange]: inRange,
67
+ [calendarClasses.buttonActive]: active,
68
+ [calendarClasses.buttonDisabled]: disabled,
69
+ }), onClick: onClick, children: [dateNum, typeof renderAnnotations === 'function'
70
+ ? (() => {
71
+ var _a, _b;
72
+ const annotation = renderAnnotations(date);
73
+ return (jsx(Typography, { variant: "annotation", color: (_a = annotation === null || annotation === void 0 ? void 0 : annotation.color) !== null && _a !== void 0 ? _a : 'text-neutral', children: (_b = annotation === null || annotation === void 0 ? void 0 : annotation.value) !== null && _b !== void 0 ? _b : '' }));
74
+ })()
75
+ : null] }) }, `${getMonth(date)}/${getDate(date)}`));
76
+ }) }, `CALENDAR_DAYS/WEEK_OF/${index}`)))] }) }));
52
77
  }
53
78
 
54
79
  export { CalendarDays as default };
@@ -0,0 +1,13 @@
1
+ import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
2
+ import { ButtonProps } from '../Button';
3
+ export interface CalendarFooterActionsProps extends Omit<NativeElementPropsWithoutKeyAndRef<'div'>, 'onClick'> {
4
+ actions: {
5
+ secondaryButtonProps: ButtonProps;
6
+ primaryButtonProps: ButtonProps;
7
+ };
8
+ }
9
+ /**
10
+ * The react component for `mezzanine` calendar footer actions.
11
+ */
12
+ declare function CalendarFooterActions(props: CalendarFooterActionsProps): import("react/jsx-runtime").JSX.Element;
13
+ export default CalendarFooterActions;
@@ -0,0 +1,14 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { calendarClasses } from '@mezzanine-ui/core/calendar';
3
+ import Button from '../Button/Button.js';
4
+ import cx from 'clsx';
5
+
6
+ /**
7
+ * The react component for `mezzanine` calendar footer actions.
8
+ */
9
+ function CalendarFooterActions(props) {
10
+ const { actions, className, ...restElementProps } = props;
11
+ return (jsxs("div", { ...restElementProps, className: cx(calendarClasses.footerActions, className), children: [jsx(Button, { variant: "base-tertiary", size: "minor", ...actions.secondaryButtonProps }), jsx(Button, { variant: "base-primary", size: "minor", ...actions.primaryButtonProps })] }));
12
+ }
13
+
14
+ export { CalendarFooterActions as default };
@@ -0,0 +1,16 @@
1
+ import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
2
+ export interface CalendarFooterControlProps extends Omit<NativeElementPropsWithoutKeyAndRef<'div'>, 'onClick'> {
3
+ /**
4
+ * The name of children content.
5
+ */
6
+ children?: string;
7
+ /**
8
+ * The onClick handler for button
9
+ */
10
+ onClick?: VoidFunction;
11
+ }
12
+ /**
13
+ * The react component for `mezzanine` calendar footer control.
14
+ */
15
+ declare function CalendarFooterControl(props: CalendarFooterControlProps): import("react/jsx-runtime").JSX.Element;
16
+ export default CalendarFooterControl;
@@ -0,0 +1,14 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { calendarClasses } from '@mezzanine-ui/core/calendar';
3
+ import Button from '../Button/Button.js';
4
+ import cx from 'clsx';
5
+
6
+ /**
7
+ * The react component for `mezzanine` calendar footer control.
8
+ */
9
+ function CalendarFooterControl(props) {
10
+ const { children, className, onClick, ...restElementProps } = props;
11
+ return (jsx("div", { ...restElementProps, className: cx(calendarClasses.footerControl, className), children: jsx(Button, { variant: "base-ghost", size: "minor", onClick: onClick, children: children }) }));
12
+ }
13
+
14
+ export { CalendarFooterControl as default };
@@ -0,0 +1,39 @@
1
+ import { DateType } from '@mezzanine-ui/core/calendar';
2
+ import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
3
+ export interface CalendarHalfYearsProps extends Omit<NativeElementPropsWithoutKeyAndRef<'div'>, 'onClick' | 'children'> {
4
+ /**
5
+ * Provide if you have a custom disabling logic.
6
+ * The method takes the date object as its parameter.
7
+ */
8
+ isHalfYearDisabled?: (date: DateType) => boolean;
9
+ /**
10
+ * Provide if you have a custom logic for checking if the half-year is in range.
11
+ * The method takes the date object as its parameter.
12
+ */
13
+ isHalfYearInRange?: (date: DateType) => boolean;
14
+ /**
15
+ * Click handler for the button of each half-year.
16
+ * The method takes the date object as its parameter.
17
+ */
18
+ onClick?: (target: DateType) => void;
19
+ /**
20
+ * Mouse enter handler for the button of each half-year.
21
+ * The method takes the date object as its parameter.
22
+ */
23
+ onHalfYearHover?: (target: DateType) => void;
24
+ /**
25
+ * The reference date for getting the half-years range and computing the date object.
26
+ */
27
+ referenceDate: DateType;
28
+ /**
29
+ * The half-year will be marked as active if it matches the same half-year of any value in the array.
30
+ */
31
+ value?: DateType[];
32
+ }
33
+ /**
34
+ * The react component for `mezzanine` calendar half-years.
35
+ * This component displays half-years for 5 years.
36
+ * You may use it to compose your own calendar.
37
+ */
38
+ declare function CalendarHalfYears(props: CalendarHalfYearsProps): import("react/jsx-runtime").JSX.Element;
39
+ export default CalendarHalfYears;
@@ -0,0 +1,62 @@
1
+ 'use client';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import { getYearRange, calendarHalfYearYearsCount, calendarHalfYears, calendarClasses } from '@mezzanine-ui/core/calendar';
4
+ import { useMemo } from 'react';
5
+ import { useCalendarContext } from './CalendarContext.js';
6
+ import CalendarCell from './CalendarCell.js';
7
+ import cx from 'clsx';
8
+
9
+ /**
10
+ * The react component for `mezzanine` calendar half-years.
11
+ * This component displays half-years for 5 years.
12
+ * You may use it to compose your own calendar.
13
+ */
14
+ function CalendarHalfYears(props) {
15
+ const { getYear, getCurrentHalfYearFirstDate, isHalfYearIncluded, setYear, setMonth, } = useCalendarContext();
16
+ const { className, isHalfYearDisabled, isHalfYearInRange, onClick: onClickProp, onHalfYearHover, referenceDate, value, ...rest } = props;
17
+ const currentYear = getYear(referenceDate);
18
+ const [start] = useMemo(() => getYearRange(currentYear, calendarHalfYearYearsCount), [currentYear]);
19
+ const years = useMemo(() => {
20
+ return Array.from({ length: calendarHalfYearYearsCount }, (_, i) => start + i);
21
+ }, [start]);
22
+ return (jsx("div", { className: cx(calendarClasses.board, className), ...rest, children: years.map((year, yearIndex) => {
23
+ return (jsxs("div", { className: cx(calendarClasses.row, {
24
+ [calendarClasses.rowWithBorder]: yearIndex > 0,
25
+ }), children: [jsx(CalendarCell, { disabled: true, children: year }), calendarHalfYears.map((halfYear) => {
26
+ const halfYearStartMonth = (halfYear - 1) * 6;
27
+ const halfYearDate = setMonth(setYear(getCurrentHalfYearFirstDate(referenceDate), year), halfYearStartMonth);
28
+ const disabled = isHalfYearDisabled && isHalfYearDisabled(halfYearDate);
29
+ const inRange = !disabled &&
30
+ isHalfYearInRange &&
31
+ isHalfYearInRange(halfYearDate);
32
+ const active = !disabled && value && isHalfYearIncluded(halfYearDate, value);
33
+ const onClick = () => {
34
+ if (disabled)
35
+ return;
36
+ onClickProp === null || onClickProp === void 0 ? void 0 : onClickProp(halfYearDate);
37
+ };
38
+ const onMouseEnter = () => {
39
+ if (disabled)
40
+ return;
41
+ onHalfYearHover === null || onHalfYearHover === void 0 ? void 0 : onHalfYearHover(halfYearDate);
42
+ };
43
+ // Accessible half-year label for screen readers
44
+ const halfYearMonths = halfYear === 1 ? 'January to June' : 'July to December';
45
+ const ariaLabel = [
46
+ `Half ${halfYear}, ${year}`,
47
+ halfYearMonths,
48
+ active && 'Selected',
49
+ disabled && 'Not available',
50
+ ]
51
+ .filter(Boolean)
52
+ .join(', ');
53
+ return (jsxs("button", { type: "button", disabled: disabled, "aria-disabled": disabled, "aria-label": ariaLabel, "aria-pressed": active, className: cx(calendarClasses.button, {
54
+ [calendarClasses.buttonDisabled]: disabled,
55
+ [calendarClasses.buttonInRange]: inRange,
56
+ [calendarClasses.buttonActive]: active,
57
+ }), onClick: onClick, onMouseEnter: onMouseEnter, children: ["H", halfYear] }, halfYear));
58
+ })] }, year));
59
+ }) }));
60
+ }
61
+
62
+ export { CalendarHalfYears as default };
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { jsx } from 'react/jsx-runtime';
2
3
  import { calendarMonths, calendarClasses } from '@mezzanine-ui/core/calendar';
3
4
  import { useCalendarContext } from './CalendarContext.js';
@@ -9,11 +10,11 @@ import cx from 'clsx';
9
10
  * You may use it to compose your own calendar.
10
11
  */
11
12
  function CalendarMonths(props) {
12
- const { displayMonthLocale: displayMonthLocaleFromConfig, getMonthShortNames, isMonthIncluded, setMonth, } = useCalendarContext();
13
- const { className, displayMonthLocale = displayMonthLocaleFromConfig, isMonthDisabled, isMonthInRange, isYearDisabled, onClick: onClickProp, onMonthHover, referenceDate, value, ...rest } = props;
13
+ const { locale, getMonthShortNames, isMonthIncluded, getCurrentMonthFirstDate, setMonth, } = useCalendarContext();
14
+ const { className, displayMonthLocale = locale, isMonthDisabled, isMonthInRange, isYearDisabled, onClick: onClickProp, onMonthHover, referenceDate, value, ...rest } = props;
14
15
  const monthNames = getMonthShortNames(displayMonthLocale);
15
16
  return (jsx("div", { className: cx(calendarClasses.board, className), ...rest, children: jsx("div", { className: calendarClasses.twelveGrid, children: calendarMonths.map((month) => {
16
- const monthDateType = setMonth(referenceDate, month);
17
+ const monthDateType = setMonth(getCurrentMonthFirstDate(referenceDate), month);
17
18
  const active = value && isMonthIncluded(monthDateType, value);
18
19
  /** @NOTE Current month should be disabled when current year is disabled */
19
20
  const disabled = (isYearDisabled === null || isYearDisabled === void 0 ? void 0 : isYearDisabled(monthDateType)) ||
@@ -30,7 +31,18 @@ function CalendarMonths(props) {
30
31
  onMonthHover(monthDateType);
31
32
  }
32
33
  : undefined;
33
- return (jsx("button", { type: "button", "aria-disabled": disabled, disabled: disabled, className: cx(calendarClasses.button, {
34
+ // Accessible month label for screen readers
35
+ const monthDate = new Date(monthDateType);
36
+ const fullMonthName = monthDate.toLocaleDateString(displayMonthLocale, { month: 'long' });
37
+ const year = monthDate.getFullYear();
38
+ const ariaLabel = [
39
+ `${fullMonthName} ${year}`,
40
+ active && 'Selected',
41
+ disabled && 'Not available',
42
+ ]
43
+ .filter(Boolean)
44
+ .join(', ');
45
+ return (jsx("button", { type: "button", "aria-disabled": disabled, disabled: disabled, "aria-label": ariaLabel, "aria-pressed": active, className: cx(calendarClasses.button, {
34
46
  [calendarClasses.buttonActive]: active,
35
47
  [calendarClasses.buttonInRange]: inRange,
36
48
  [calendarClasses.buttonDisabled]: disabled,