@mezzanine-ui/react 0.16.0 → 1.0.0-beta.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 (547) 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 +53 -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 +75 -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.d.ts +47 -6
  115. package/Drawer/Drawer.js +36 -11
  116. package/Drawer/index.d.ts +2 -1
  117. package/Dropdown/Dropdown.js +12 -22
  118. package/Dropdown/index.d.ts +2 -1
  119. package/Empty/Empty.d.ts +1 -16
  120. package/Empty/Empty.js +59 -7
  121. package/Empty/icons/EmptyMainInitialDataIcon.d.ts +4 -0
  122. package/Empty/icons/EmptyMainInitialDataIcon.js +9 -0
  123. package/Empty/icons/EmptyMainResultIcon.d.ts +4 -0
  124. package/Empty/icons/EmptyMainResultIcon.js +9 -0
  125. package/Empty/icons/EmptyMainSystemIcon.d.ts +4 -0
  126. package/Empty/icons/EmptyMainSystemIcon.js +9 -0
  127. package/Empty/index.d.ts +2 -1
  128. package/Empty/typings.d.ts +61 -0
  129. package/Form/FormControlContext.js +1 -0
  130. package/Form/FormHintText.d.ts +18 -0
  131. package/Form/FormHintText.js +17 -0
  132. package/Form/FormLabel.js +1 -0
  133. package/Form/index.d.ts +9 -5
  134. package/Form/index.js +1 -1
  135. package/Form/useAutoCompleteValueControl.js +2 -0
  136. package/Form/useCheckboxControlValue.js +0 -1
  137. package/Form/useSelectValueControl.js +2 -0
  138. package/InlineMessage/InlineMessage.d.ts +33 -0
  139. package/InlineMessage/InlineMessage.js +42 -0
  140. package/InlineMessage/InlineMessageGroup.d.ts +24 -0
  141. package/InlineMessage/InlineMessageGroup.js +21 -0
  142. package/InlineMessage/index.d.ts +4 -0
  143. package/InlineMessage/index.js +2 -0
  144. package/Input/ActionButton/ActionButton.d.ts +26 -0
  145. package/Input/ActionButton/ActionButton.js +14 -0
  146. package/Input/ActionButton/index.d.ts +2 -0
  147. package/Input/ActionButton/index.js +1 -0
  148. package/Input/Input.d.ts +147 -42
  149. package/Input/Input.js +195 -27
  150. package/Input/PasswordStrengthIndicator/PasswordStrengthIndicator.d.ts +31 -0
  151. package/Input/PasswordStrengthIndicator/PasswordStrengthIndicator.js +18 -0
  152. package/Input/PasswordStrengthIndicator/index.d.ts +2 -0
  153. package/Input/PasswordStrengthIndicator/index.js +1 -0
  154. package/Input/SelectButton/SelectButton.d.ts +20 -0
  155. package/Input/SelectButton/SelectButton.js +21 -0
  156. package/Input/SelectButton/index.d.ts +2 -0
  157. package/Input/SelectButton/index.js +1 -0
  158. package/Input/SpinnerButton/SpinnerButton.d.ts +19 -0
  159. package/Input/SpinnerButton/SpinnerButton.js +14 -0
  160. package/Input/SpinnerButton/index.d.ts +2 -0
  161. package/Input/SpinnerButton/index.js +1 -0
  162. package/Input/index.d.ts +3 -2
  163. package/Menu/Menu.js +1 -0
  164. package/Menu/index.d.ts +8 -4
  165. package/Message/Message.d.ts +6 -4
  166. package/Message/Message.js +86 -9
  167. package/Message/MessageTimerController.d.ts +14 -0
  168. package/Message/MessageTimerController.js +27 -0
  169. package/Message/index.d.ts +3 -2
  170. package/Modal/Modal.js +2 -2
  171. package/Modal/ModalActions.js +1 -0
  172. package/Modal/ModalControl.js +1 -0
  173. package/Modal/ModalHeader.js +1 -0
  174. package/Modal/index.d.ts +10 -5
  175. package/Modal/useModalContainer.d.ts +1 -1
  176. package/Modal/useModalContainer.js +2 -4
  177. package/Navigation/Navigation.js +37 -34
  178. package/Navigation/NavigationContext.js +1 -0
  179. package/Navigation/NavigationItem.js +1 -0
  180. package/Navigation/NavigationSubMenu.js +16 -26
  181. package/Navigation/index.d.ts +8 -4
  182. package/Notification/Notification.js +0 -1
  183. package/Notification/index.d.ts +3 -2
  184. package/Notifier/NotifierManager.d.ts +15 -2
  185. package/Notifier/NotifierManager.js +60 -18
  186. package/Notifier/createNotifier.d.ts +9 -0
  187. package/Notifier/createNotifier.js +3 -2
  188. package/Notifier/typings.d.ts +3 -1
  189. package/OverflowTooltip/OverflowCounterTag.d.ts +12 -0
  190. package/OverflowTooltip/OverflowCounterTag.js +48 -0
  191. package/OverflowTooltip/OverflowTooltip.d.ts +34 -0
  192. package/OverflowTooltip/OverflowTooltip.js +53 -0
  193. package/OverflowTooltip/index.d.ts +2 -0
  194. package/OverflowTooltip/index.js +2 -0
  195. package/PageFooter/PageFooter.d.ts +73 -8
  196. package/PageFooter/PageFooter.js +34 -3
  197. package/PageFooter/index.d.ts +2 -1
  198. package/PageHeader/PageHeader.d.ts +40 -0
  199. package/PageHeader/PageHeader.js +70 -0
  200. package/PageHeader/index.d.ts +2 -0
  201. package/PageHeader/index.js +1 -0
  202. package/PageToolbar/PageToolbar.d.ts +114 -0
  203. package/PageToolbar/PageToolbar.js +23 -0
  204. package/PageToolbar/index.d.ts +2 -0
  205. package/PageToolbar/index.js +1 -0
  206. package/PageToolbar/utils.d.ts +23 -0
  207. package/PageToolbar/utils.js +165 -0
  208. package/Pagination/Pagination.d.ts +23 -29
  209. package/Pagination/Pagination.js +3 -4
  210. package/Pagination/PaginationItem.d.ts +1 -1
  211. package/Pagination/PaginationItem.js +4 -3
  212. package/Pagination/PaginationJumper.d.ts +7 -9
  213. package/Pagination/PaginationJumper.js +3 -5
  214. package/Pagination/PaginationPageSize.d.ts +8 -11
  215. package/Pagination/PaginationPageSize.js +5 -4
  216. package/Pagination/index.d.ts +8 -4
  217. package/Pagination/usePagination.d.ts +3 -1
  218. package/Pagination/usePagination.js +12 -21
  219. package/Picker/FormattedInput.d.ts +17 -0
  220. package/Picker/FormattedInput.js +74 -0
  221. package/Picker/MaskFormat.d.ts +39 -0
  222. package/Picker/MaskFormat.js +94 -0
  223. package/Picker/PickerTrigger.d.ts +13 -3
  224. package/Picker/PickerTrigger.js +17 -2
  225. package/Picker/PickerTriggerWithSeparator.d.ts +124 -0
  226. package/Picker/PickerTriggerWithSeparator.js +80 -0
  227. package/Picker/RangePickerTrigger.d.ts +55 -4
  228. package/Picker/RangePickerTrigger.js +65 -7
  229. package/Picker/formatUtils.d.ts +34 -0
  230. package/Picker/formatUtils.js +124 -0
  231. package/Picker/index.d.ts +17 -6
  232. package/Picker/index.js +4 -1
  233. package/Picker/useDateInputFormatter.d.ts +52 -0
  234. package/Picker/useDateInputFormatter.js +382 -0
  235. package/Picker/usePickerValue.d.ts +1 -2
  236. package/Picker/usePickerValue.js +8 -13
  237. package/Popconfirm/Popconfirm.js +1 -1
  238. package/Popconfirm/index.d.ts +2 -1
  239. package/Popover/Popover.js +4 -8
  240. package/Popover/index.d.ts +2 -1
  241. package/Popper/Popper.d.ts +15 -10
  242. package/Popper/Popper.js +88 -17
  243. package/Popper/index.d.ts +2 -1
  244. package/Portal/Portal.d.ts +13 -5
  245. package/Portal/Portal.js +25 -10
  246. package/Portal/index.d.ts +4 -1
  247. package/Portal/index.js +1 -0
  248. package/Portal/portalRegistry.d.ts +17 -0
  249. package/Portal/portalRegistry.js +92 -0
  250. package/Progress/Progress.d.ts +23 -30
  251. package/Progress/Progress.js +71 -21
  252. package/Progress/index.d.ts +3 -2
  253. package/Provider/ConfigProvider.d.ts +1 -0
  254. package/Provider/ConfigProvider.js +1 -0
  255. package/Provider/context.js +1 -0
  256. package/Radio/Radio.d.ts +37 -4
  257. package/Radio/Radio.js +23 -12
  258. package/Radio/RadioGroup.d.ts +37 -8
  259. package/Radio/RadioGroup.js +6 -5
  260. package/Radio/RadioGroupContext.d.ts +2 -1
  261. package/Radio/RadioGroupContext.js +1 -0
  262. package/Radio/index.d.ts +5 -3
  263. package/ResultState/ResultState.d.ts +52 -0
  264. package/ResultState/ResultState.js +24 -0
  265. package/ResultState/index.d.ts +2 -0
  266. package/ResultState/index.js +1 -0
  267. package/Select/AutoComplete.d.ts +1 -1
  268. package/Select/AutoComplete.js +2 -1
  269. package/Select/Option.js +1 -0
  270. package/Select/Select.d.ts +1 -1
  271. package/Select/Select.js +2 -1
  272. package/Select/SelectControlContext.js +1 -0
  273. package/Select/SelectTrigger.d.ts +1 -87
  274. package/Select/SelectTrigger.js +26 -21
  275. package/Select/SelectTriggerTags.d.ts +1 -1
  276. package/Select/SelectTriggerTags.js +47 -18
  277. package/Select/TreeSelect.d.ts +1 -1
  278. package/Select/TreeSelect.js +2 -1
  279. package/Select/index.d.ts +14 -7
  280. package/Select/typings.d.ts +99 -0
  281. package/Select/useSelectTriggerTags.d.ts +15 -8
  282. package/Select/useSelectTriggerTags.js +83 -44
  283. package/Selection/Selection.d.ts +98 -0
  284. package/Selection/Selection.js +46 -0
  285. package/Selection/index.d.ts +12 -0
  286. package/Selection/index.js +5 -0
  287. package/Skeleton/Skeleton.d.ts +10 -3
  288. package/Skeleton/Skeleton.js +12 -4
  289. package/Skeleton/index.d.ts +2 -1
  290. package/Slider/Slider.d.ts +44 -7
  291. package/Slider/Slider.js +17 -13
  292. package/Slider/index.d.ts +5 -3
  293. package/Spin/Spin.d.ts +39 -0
  294. package/{Loading/Loading.js → Spin/Spin.js} +9 -9
  295. package/Spin/index.d.ts +2 -0
  296. package/Spin/index.js +1 -0
  297. package/Stepper/Step.d.ts +1 -35
  298. package/Stepper/Step.js +43 -8
  299. package/Stepper/Stepper.d.ts +1 -14
  300. package/Stepper/Stepper.js +49 -15
  301. package/Stepper/index.d.ts +5 -2
  302. package/Stepper/index.js +1 -0
  303. package/Stepper/typings.d.ts +77 -0
  304. package/Stepper/useStepDistance.d.ts +10 -0
  305. package/Stepper/useStepDistance.js +81 -0
  306. package/Stepper/useStepper.d.ts +21 -0
  307. package/Stepper/useStepper.js +26 -0
  308. package/Tab/Tab.d.ts +32 -0
  309. package/Tab/Tab.js +57 -0
  310. package/Tab/TabItem.d.ts +27 -0
  311. package/Tab/TabItem.js +18 -0
  312. package/Tab/index.d.ts +4 -0
  313. package/Tab/index.js +2 -0
  314. package/Table/Table.d.ts +75 -94
  315. package/Table/Table.js +216 -161
  316. package/Table/TableContext.d.ts +114 -51
  317. package/Table/TableContext.js +22 -3
  318. package/Table/components/TableBody.d.ts +5 -0
  319. package/Table/components/TableBody.js +102 -0
  320. package/Table/components/TableCell.d.ts +17 -0
  321. package/Table/components/TableCell.js +74 -0
  322. package/Table/components/TableColGroup.d.ts +4 -0
  323. package/Table/components/TableColGroup.js +206 -0
  324. package/Table/components/TableDragHandleCell.d.ts +9 -0
  325. package/Table/components/TableDragHandleCell.js +37 -0
  326. package/Table/components/TableExpandCell.d.ts +11 -0
  327. package/Table/components/TableExpandCell.js +44 -0
  328. package/Table/components/TableExpandedRow.d.ts +9 -0
  329. package/Table/components/TableExpandedRow.js +46 -0
  330. package/Table/components/TableHeader.d.ts +4 -0
  331. package/Table/components/TableHeader.js +125 -0
  332. package/Table/components/TablePagination.d.ts +3 -0
  333. package/Table/components/TablePagination.js +11 -0
  334. package/Table/components/TableResizeHandle.d.ts +13 -0
  335. package/Table/components/TableResizeHandle.js +115 -0
  336. package/Table/components/TableRow.d.ts +12 -0
  337. package/Table/components/TableRow.js +126 -0
  338. package/Table/components/TableSelectionCell.d.ts +13 -0
  339. package/Table/components/TableSelectionCell.js +35 -0
  340. package/Table/components/index.d.ts +10 -0
  341. package/Table/components/index.js +10 -0
  342. package/Table/hooks/index.d.ts +9 -0
  343. package/Table/hooks/index.js +8 -0
  344. package/Table/hooks/typings.d.ts +14 -0
  345. package/Table/hooks/useTableColumns.d.ts +8 -0
  346. package/Table/hooks/useTableColumns.js +91 -0
  347. package/Table/hooks/useTableDataSource.d.ts +57 -0
  348. package/Table/hooks/useTableDataSource.js +183 -0
  349. package/Table/hooks/useTableExpansion.d.ts +7 -0
  350. package/Table/hooks/useTableExpansion.js +52 -0
  351. package/Table/hooks/useTableFixedOffsets.d.ts +29 -0
  352. package/Table/hooks/useTableFixedOffsets.js +241 -0
  353. package/Table/hooks/useTableScroll.d.ts +12 -0
  354. package/Table/hooks/useTableScroll.js +58 -0
  355. package/Table/hooks/useTableSelection.d.ts +7 -0
  356. package/Table/hooks/useTableSelection.js +94 -0
  357. package/Table/hooks/useTableSorting.d.ts +6 -0
  358. package/Table/hooks/useTableSorting.js +32 -0
  359. package/Table/hooks/useTableVirtualization.d.ts +22 -0
  360. package/Table/hooks/useTableVirtualization.js +115 -0
  361. package/Table/index.d.ts +7 -7
  362. package/Table/index.js +22 -6
  363. package/Table/utils/index.d.ts +2 -0
  364. package/Table/utils/index.js +1 -0
  365. package/Table/utils/useTableRowSelection.d.ts +18 -0
  366. package/Table/utils/useTableRowSelection.js +63 -0
  367. package/Tag/Tag.d.ts +2 -25
  368. package/Tag/Tag.js +23 -13
  369. package/Tag/TagGroup.d.ts +12 -0
  370. package/Tag/TagGroup.js +41 -0
  371. package/Tag/index.d.ts +2 -1
  372. package/Tag/typings.d.ts +78 -0
  373. package/TextField/TextField.d.ts +78 -19
  374. package/TextField/TextField.js +58 -22
  375. package/TextField/index.d.ts +2 -1
  376. package/Textarea/Textarea.d.ts +19 -51
  377. package/Textarea/Textarea.js +13 -19
  378. package/Textarea/index.d.ts +2 -2
  379. package/TimePanel/TimePanel.d.ts +1 -22
  380. package/TimePanel/TimePanel.js +31 -26
  381. package/TimePanel/TimePanelAction.d.ts +2 -8
  382. package/TimePanel/TimePanelAction.js +2 -2
  383. package/TimePanel/TimePanelColumn.d.ts +0 -13
  384. package/TimePanel/TimePanelColumn.js +9 -11
  385. package/TimePanel/index.d.ts +6 -3
  386. package/TimePicker/TimePicker.d.ts +10 -1
  387. package/TimePicker/TimePicker.js +86 -35
  388. package/TimePicker/TimePickerPanel.d.ts +1 -2
  389. package/TimePicker/TimePickerPanel.js +2 -2
  390. package/TimePicker/index.d.ts +4 -2
  391. package/Toggle/Toggle.d.ts +46 -0
  392. package/Toggle/Toggle.js +29 -0
  393. package/Toggle/index.d.ts +3 -0
  394. package/Toggle/index.js +1 -0
  395. package/Tooltip/Tooltip.d.ts +13 -2
  396. package/Tooltip/Tooltip.js +56 -10
  397. package/Tooltip/index.d.ts +2 -1
  398. package/Tooltip/useDelayMouseEnterLeave.d.ts +1 -2
  399. package/Tooltip/useDelayMouseEnterLeave.js +10 -13
  400. package/Transition/Collapse.d.ts +2 -0
  401. package/Transition/Collapse.js +5 -6
  402. package/Transition/Fade.js +4 -4
  403. package/Transition/Rotate.d.ts +42 -0
  404. package/Transition/Rotate.js +30 -0
  405. package/Transition/Scale.d.ts +13 -0
  406. package/Transition/{Grow.js → Scale.js} +19 -16
  407. package/Transition/Slide.d.ts +7 -0
  408. package/Transition/{Zoom.js → Slide.js} +14 -12
  409. package/Transition/SlideFade.d.ts +3 -0
  410. package/Transition/SlideFade.js +5 -4
  411. package/Transition/Transition.d.ts +2 -2
  412. package/Transition/Translate.d.ts +14 -0
  413. package/Transition/Translate.js +94 -0
  414. package/Transition/index.d.ts +16 -6
  415. package/Transition/index.js +4 -2
  416. package/Transition/useAutoTransitionDuration.d.ts +1 -1
  417. package/Transition/useAutoTransitionDuration.js +3 -3
  418. package/Transition/useSetNodeTransition.js +0 -2
  419. package/Tree/TreeNode.js +7 -6
  420. package/Tree/index.d.ts +10 -5
  421. package/Typography/Typography.d.ts +6 -9
  422. package/Typography/Typography.js +7 -9
  423. package/Typography/index.d.ts +2 -5
  424. package/Upload/Upload.d.ts +175 -0
  425. package/Upload/Upload.js +279 -0
  426. package/Upload/UploadItem.d.ts +82 -0
  427. package/Upload/UploadItem.js +118 -0
  428. package/Upload/UploadPictureCard.d.ts +110 -0
  429. package/Upload/UploadPictureCard.js +101 -0
  430. package/Upload/Uploader.d.ts +161 -0
  431. package/Upload/Uploader.js +120 -0
  432. package/Upload/index.d.ts +8 -6
  433. package/Upload/index.js +4 -5
  434. package/Upload/upload-utils.d.ts +41 -0
  435. package/Upload/upload-utils.js +65 -0
  436. package/_internal/InputCheck/InputCheck.d.ts +15 -1
  437. package/_internal/InputCheck/InputCheck.js +6 -2
  438. package/_internal/InputCheck/InputCheckGroup.d.ts +11 -1
  439. package/_internal/InputCheck/InputCheckGroup.js +4 -2
  440. package/_internal/InputCheck/index.d.ts +4 -2
  441. package/_internal/InputTriggerPopper/InputTriggerPopper.js +15 -25
  442. package/_internal/InputTriggerPopper/index.d.ts +2 -1
  443. package/_internal/SlideFadeOverlay/SlideFadeOverlay.d.ts +3 -3
  444. package/_internal/SlideFadeOverlay/SlideFadeOverlay.js +5 -28
  445. package/_internal/SlideFadeOverlay/index.d.ts +2 -1
  446. package/_internal/SlideFadeOverlay/useTopStack.js +1 -0
  447. package/dayjs.d.ts +21 -0
  448. package/dayjs.js +2 -0
  449. package/hooks/useComposeRefs.js +1 -1
  450. package/hooks/useLastCallback.js +3 -1
  451. package/hooks/useScrollLock.d.ts +28 -0
  452. package/hooks/useScrollLock.js +134 -0
  453. package/index.d.ts +128 -58
  454. package/index.js +90 -80
  455. package/luxon.d.ts +21 -0
  456. package/luxon.js +2 -0
  457. package/moment.d.ts +21 -0
  458. package/moment.js +2 -0
  459. package/package.json +14 -17
  460. package/utils/composeRefs.js +0 -1
  461. package/utils/flatten-children.d.ts +12 -0
  462. package/utils/flatten-children.js +37 -0
  463. package/utils/get-css-variable-value.d.ts +2 -0
  464. package/utils/get-css-variable-value.js +12 -0
  465. package/Button/IconButton.d.ts +0 -21
  466. package/Button/IconButton.js +0 -13
  467. package/DateTimePicker/DateTimePickerPanel.d.ts +0 -28
  468. package/DateTimePicker/DateTimePickerPanel.js +0 -49
  469. package/Form/FormMessage.d.ts +0 -7
  470. package/Form/FormMessage.js +0 -18
  471. package/Form/useInputWithTagsModeValue.js +0 -86
  472. package/Loading/Loading.d.ts +0 -33
  473. package/Loading/index.d.ts +0 -1
  474. package/Loading/index.js +0 -1
  475. package/Overlay/Overlay.js +0 -31
  476. package/Overlay/index.d.ts +0 -1
  477. package/Overlay/index.js +0 -1
  478. package/Picker/useRangePickerValue.d.ts +0 -23
  479. package/Picker/useRangePickerValue.js +0 -99
  480. package/Switch/Switch.d.ts +0 -43
  481. package/Switch/Switch.js +0 -28
  482. package/Switch/index.d.ts +0 -2
  483. package/Switch/index.js +0 -1
  484. package/Table/TableBody.d.ts +0 -10
  485. package/Table/TableBody.js +0 -30
  486. package/Table/TableBodyRow.d.ts +0 -11
  487. package/Table/TableBodyRow.js +0 -64
  488. package/Table/TableCell.d.ts +0 -19
  489. package/Table/TableCell.js +0 -24
  490. package/Table/TableExpandedTable.d.ts +0 -11
  491. package/Table/TableExpandedTable.js +0 -28
  492. package/Table/TableHeader.d.ts +0 -3
  493. package/Table/TableHeader.js +0 -35
  494. package/Table/draggable/useTableDraggable.d.ts +0 -14
  495. package/Table/draggable/useTableDraggable.js +0 -64
  496. package/Table/editable/TableEditRenderWrapper.d.ts +0 -7
  497. package/Table/editable/TableEditRenderWrapper.js +0 -15
  498. package/Table/expandable/TableExpandable.d.ts +0 -27
  499. package/Table/expandable/TableExpandable.js +0 -24
  500. package/Table/pagination/TablePagination.d.ts +0 -10
  501. package/Table/pagination/TablePagination.js +0 -25
  502. package/Table/pagination/useTablePagination.d.ts +0 -8
  503. package/Table/pagination/useTablePagination.js +0 -29
  504. package/Table/refresh/TableRefresh.d.ts +0 -10
  505. package/Table/refresh/TableRefresh.js +0 -20
  506. package/Table/rowSelection/TableRowSelection.d.ts +0 -18
  507. package/Table/rowSelection/TableRowSelection.js +0 -92
  508. package/Table/rowSelection/useTableRowSelection.d.ts +0 -6
  509. package/Table/rowSelection/useTableRowSelection.js +0 -53
  510. package/Table/sorting/TableSortingIcon.d.ts +0 -10
  511. package/Table/sorting/TableSortingIcon.js +0 -32
  512. package/Table/sorting/useTableSorting.d.ts +0 -11
  513. package/Table/sorting/useTableSorting.js +0 -120
  514. package/Table/useTableFetchMore.d.ts +0 -10
  515. package/Table/useTableFetchMore.js +0 -50
  516. package/Table/useTableLoading.d.ts +0 -5
  517. package/Table/useTableLoading.js +0 -19
  518. package/Table/useTableScroll.d.ts +0 -596
  519. package/Table/useTableScroll.js +0 -294
  520. package/Tabs/Tab.d.ts +0 -18
  521. package/Tabs/Tab.js +0 -16
  522. package/Tabs/TabPane.d.ts +0 -14
  523. package/Tabs/TabPane.js +0 -18
  524. package/Tabs/Tabs.d.ts +0 -39
  525. package/Tabs/Tabs.js +0 -47
  526. package/Tabs/index.d.ts +0 -3
  527. package/Tabs/index.js +0 -3
  528. package/Tabs/useTabsOverflow.d.ts +0 -8
  529. package/Tabs/useTabsOverflow.js +0 -61
  530. package/Transition/Grow.d.ts +0 -12
  531. package/Transition/Zoom.d.ts +0 -7
  532. package/Upload/UploadButton.d.ts +0 -9
  533. package/Upload/UploadButton.js +0 -23
  534. package/Upload/UploadInput.d.ts +0 -20
  535. package/Upload/UploadInput.js +0 -24
  536. package/Upload/UploadPicture.d.ts +0 -49
  537. package/Upload/UploadPicture.js +0 -51
  538. package/Upload/UploadPictureBlock.d.ts +0 -20
  539. package/Upload/UploadPictureBlock.js +0 -81
  540. package/Upload/UploadPictureWall.d.ts +0 -81
  541. package/Upload/UploadPictureWall.js +0 -168
  542. package/Upload/UploadPictureWallItem.d.ts +0 -15
  543. package/Upload/UploadPictureWallItem.js +0 -18
  544. package/Upload/UploadResult.d.ts +0 -35
  545. package/Upload/UploadResult.js +0 -29
  546. package/utils/scroll-lock.d.ts +0 -2
  547. package/utils/scroll-lock.js +0 -24
@@ -1,38 +1,183 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { forwardRef, useMemo, createElement } from 'react';
1
+ 'use client';
2
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
+ import { checkboxGroupClasses } from '@mezzanine-ui/core/checkbox';
4
+ import { forwardRef, useId, useMemo, useCallback, useEffect, Children, isValidElement } from 'react';
3
5
  import { useControlValueState } from '../Form/useControlValueState.js';
4
- import { CheckboxGroupContext } from './CheckboxGroupContext.js';
5
6
  import Checkbox from './Checkbox.js';
6
- import InputCheckGroup from '../_internal/InputCheck/InputCheckGroup.js';
7
+ import { CheckboxGroupContext } from './CheckboxGroupContext.js';
8
+ import cx from 'clsx';
7
9
 
8
- const renderOption = ({ label: children, ...option }) => (createElement(Checkbox, { ...option, key: option.value }, children));
10
+ function assignCheckboxGroupValuesToEvent(event, values, name) {
11
+ const target = event.target;
12
+ target.values = values;
13
+ if (name) {
14
+ target.name = name;
15
+ }
16
+ return event;
17
+ }
18
+ const equalityFn = (a, b) => {
19
+ if (a.length !== b.length)
20
+ return false;
21
+ const sortedA = [...a].sort();
22
+ const sortedB = [...b].sort();
23
+ return sortedA.every((val, idx) => val === sortedB[idx]);
24
+ };
9
25
  /**
10
26
  * The react component for `mezzanine` checkbox group.
11
27
  */
12
28
  const CheckboxGroup = forwardRef(function CheckboxGroup(props, ref) {
13
- const { children: childrenProp, defaultValue = [], disabled, name, options = [], onChange, size, value: valueProp, ...rest } = props;
29
+ var _a, _b, _c, _d, _e;
30
+ const { children: childrenProp, className, defaultValue, disabled, layout = 'horizontal', level, mode, name, options, onChange: onChangeProp, role = 'group', value: valueProp, ...rest } = props;
31
+ const generatedName = useId();
32
+ const resolvedName = name !== null && name !== void 0 ? name : generatedName;
33
+ const normalizedOptions = useMemo(() => options !== null && options !== void 0 ? options : [], [options]);
14
34
  const [value, setValue] = useControlValueState({
15
- defaultValue,
35
+ defaultValue: defaultValue !== null && defaultValue !== void 0 ? defaultValue : [],
36
+ equalityFn,
16
37
  value: valueProp,
17
38
  });
39
+ const handleChange = useCallback((event) => {
40
+ const checkboxValue = event.target.value;
41
+ const isChecked = event.target.checked;
42
+ const currentValue = value || [];
43
+ const newValue = isChecked
44
+ ? [...currentValue, checkboxValue]
45
+ : currentValue.filter((v) => v !== checkboxValue);
46
+ setValue(newValue);
47
+ if (onChangeProp) {
48
+ const syntheticEvent = assignCheckboxGroupValuesToEvent(event, newValue, resolvedName);
49
+ onChangeProp(syntheticEvent);
50
+ }
51
+ }, [onChangeProp, resolvedName, setValue, value]);
18
52
  const context = useMemo(() => ({
19
53
  disabled,
20
- name,
21
- onChange(event) {
22
- const { checked, value: targetValue } = event.target;
23
- const newValue = checked
24
- ? [...value, targetValue]
25
- : value.filter((v) => v !== targetValue);
26
- setValue(newValue);
27
- if (onChange) {
28
- onChange(newValue, event);
29
- }
30
- },
31
- size,
32
- value,
33
- }), [disabled, name, value, size, onChange, setValue]);
34
- const children = childrenProp || options.map(renderOption);
35
- return (jsx(CheckboxGroupContext.Provider, { value: context, children: jsx(InputCheckGroup, { ...rest, ref: ref, children: children }) }));
54
+ name: resolvedName,
55
+ onChange: handleChange,
56
+ value: value || [],
57
+ }), [disabled, resolvedName, handleChange, value]);
58
+ const hasChildrenInput = typeof childrenProp !== 'undefined';
59
+ const hasOptionsInput = Array.isArray(options);
60
+ // Validate input props and warn about missing props
61
+ useEffect(() => {
62
+ if (hasChildrenInput && hasOptionsInput) {
63
+ console.error('CheckboxGroup: Please provide either `children` or `options`, but not both.');
64
+ }
65
+ else if (!hasChildrenInput && !hasOptionsInput) {
66
+ console.error('CheckboxGroup: Please provide one of `children` or `options`.');
67
+ }
68
+ // Warn if name is not provided (important for react-hook-form integration)
69
+ if (!name) {
70
+ console.warn('CheckboxGroup: The `name` prop is recommended, especially when integrating with react-hook-form. ' +
71
+ 'All checkboxes in the group should share the same `name` attribute.');
72
+ }
73
+ // Validate that all children have value prop
74
+ if (hasChildrenInput) {
75
+ Children.forEach(childrenProp, (child, index) => {
76
+ if (isValidElement(child) && child.type === Checkbox) {
77
+ const checkboxProps = child.props;
78
+ if (!checkboxProps.value) {
79
+ console.warn(`CheckboxGroup: Each Checkbox child should have a \`value\` prop. ` +
80
+ `Checkbox at index ${index} is missing the \`value\` prop.`);
81
+ }
82
+ }
83
+ });
84
+ }
85
+ }, [hasChildrenInput, hasOptionsInput, name, childrenProp]);
86
+ // Validate that all children are Checkbox components
87
+ useEffect(() => {
88
+ if (hasChildrenInput) {
89
+ Children.forEach(childrenProp, (child) => {
90
+ var _a;
91
+ if (isValidElement(child) && child.type !== Checkbox) {
92
+ console.warn('CheckboxGroup: When using ReactNode (children) input, only Checkbox components are supported. ' +
93
+ `Found unsupported component: ${typeof child.type === 'string' ? child.type : ((_a = child.type) === null || _a === void 0 ? void 0 : _a.name) || 'Unknown'}`);
94
+ }
95
+ });
96
+ }
97
+ }, [hasChildrenInput, childrenProp]);
98
+ // Render priority: ReactNode (children) first, then options
99
+ // If using ReactNode, only Checkbox components are supported, other components are not supported
100
+ const children = useMemo(() => {
101
+ // Render ReactNode (children) if provided
102
+ if (hasChildrenInput) {
103
+ return childrenProp;
104
+ }
105
+ if (hasOptionsInput && normalizedOptions.length > 0) {
106
+ return normalizedOptions.map(({ label, value: optionValue, disabled: optionDisabled, id: optionId, inputProps: optionInputProps, inputRef: optionInputRef, ...optionRest }) => {
107
+ // Generate unique id if not provided
108
+ // Format: {name}-{value} or fallback to checkbox-{value}
109
+ const generatedId = resolvedName
110
+ ? `${resolvedName}-${optionValue}`
111
+ : `checkbox-${optionValue}`;
112
+ const finalId = optionId !== null && optionId !== void 0 ? optionId : generatedId;
113
+ return (jsx(Checkbox, { disabled: optionDisabled !== null && optionDisabled !== void 0 ? optionDisabled : disabled, id: finalId, inputProps: optionInputProps, inputRef: optionInputRef, label: typeof label === 'string' ? label : String(label), mode: mode, value: optionValue, ...optionRest }, optionValue));
114
+ });
115
+ }
116
+ return null;
117
+ }, [
118
+ childrenProp,
119
+ disabled,
120
+ hasChildrenInput,
121
+ hasOptionsInput,
122
+ mode,
123
+ normalizedOptions,
124
+ resolvedName,
125
+ ]);
126
+ const isLevelActive = (_a = level === null || level === void 0 ? void 0 : level.active) !== null && _a !== void 0 ? _a : false;
127
+ const isChipMode = mode === 'chip';
128
+ const isHorizontalLayout = layout === 'horizontal';
129
+ const shouldRenderLevelInsideContent = isLevelActive && isChipMode;
130
+ const ariaOrientation = isLevelActive ? 'vertical' : layout;
131
+ const canRenderLevelControl = isLevelActive && normalizedOptions.length > 0;
132
+ useEffect(() => {
133
+ if (isLevelActive && !hasOptionsInput) {
134
+ console.warn('CheckboxGroup: `level.active=true` currently supports only the `options` input approach.');
135
+ }
136
+ }, [hasOptionsInput, isLevelActive]);
137
+ const { levelChecked, levelIndeterminate } = useMemo(() => {
138
+ if (!canRenderLevelControl) {
139
+ return { levelChecked: false, levelIndeterminate: false };
140
+ }
141
+ const enabledOptions = normalizedOptions.filter((opt) => !opt.disabled);
142
+ const enabledValues = enabledOptions.map((opt) => opt.value);
143
+ const selectedEnabledValues = (value || []).filter((v) => enabledValues.includes(v));
144
+ if (selectedEnabledValues.length === 0) {
145
+ return { levelChecked: false, levelIndeterminate: false };
146
+ }
147
+ if (selectedEnabledValues.length === enabledValues.length) {
148
+ return { levelChecked: true, levelIndeterminate: false };
149
+ }
150
+ return { levelChecked: false, levelIndeterminate: true };
151
+ }, [canRenderLevelControl, normalizedOptions, value]);
152
+ const handleLevelControlChange = useCallback((event) => {
153
+ if (!canRenderLevelControl) {
154
+ return;
155
+ }
156
+ // Use custom onChange if provided
157
+ if (level === null || level === void 0 ? void 0 : level.onChange) {
158
+ level.onChange(event);
159
+ return;
160
+ }
161
+ // Default behavior: select/deselect all
162
+ const isChecked = event.target.checked;
163
+ const currentValue = value || [];
164
+ const enabledOptions = normalizedOptions.filter((opt) => !opt.disabled);
165
+ const enabledValues = enabledOptions.map((opt) => opt.value);
166
+ const disabledOptions = normalizedOptions.filter((opt) => opt.disabled);
167
+ const disabledValues = disabledOptions.map((opt) => opt.value);
168
+ const selectedDisabledValues = currentValue.filter((v) => disabledValues.includes(v));
169
+ const newValue = isChecked
170
+ ? [...enabledValues, ...selectedDisabledValues]
171
+ : selectedDisabledValues;
172
+ setValue(newValue);
173
+ if (onChangeProp) {
174
+ const syntheticEvent = assignCheckboxGroupValuesToEvent(event, newValue, resolvedName);
175
+ onChangeProp(syntheticEvent);
176
+ }
177
+ }, [canRenderLevelControl, level, onChangeProp, normalizedOptions, resolvedName, setValue, value]);
178
+ return (jsxs("div", { ...rest, ref: ref, "aria-orientation": ariaOrientation, className: cx(checkboxGroupClasses.host, {
179
+ [checkboxGroupClasses.nested]: isLevelActive,
180
+ }, className), role: role, children: [canRenderLevelControl && !shouldRenderLevelInsideContent && (jsx(Checkbox, { checked: levelChecked, disabled: disabled || (level === null || level === void 0 ? void 0 : level.disabled), id: `${resolvedName}-level-control`, indeterminate: levelIndeterminate, label: (_b = level === null || level === void 0 ? void 0 : level.label) !== null && _b !== void 0 ? _b : '', mode: (_c = level === null || level === void 0 ? void 0 : level.mode) !== null && _c !== void 0 ? _c : 'main', name: `${resolvedName}-level-control`, onChange: handleLevelControlChange })), jsxs("div", { className: cx(checkboxGroupClasses.contentWrapper, checkboxGroupClasses.layout(layout), mode && checkboxGroupClasses.mode(mode)), children: [canRenderLevelControl && shouldRenderLevelInsideContent && (jsxs(Fragment, { children: [jsx(Checkbox, { checked: levelChecked, disabled: disabled || (level === null || level === void 0 ? void 0 : level.disabled), id: `${resolvedName}-level-control`, indeterminate: levelIndeterminate, label: (_d = level === null || level === void 0 ? void 0 : level.label) !== null && _d !== void 0 ? _d : '', mode: (_e = level === null || level === void 0 ? void 0 : level.mode) !== null && _e !== void 0 ? _e : 'main', name: `${resolvedName}-level-control`, onChange: handleLevelControlChange }), isHorizontalLayout && jsx("i", { className: checkboxGroupClasses.levelControlSeparator })] })), jsx(CheckboxGroupContext.Provider, { value: context, children: children })] })] }));
36
181
  });
37
182
 
38
- export { CheckboxGroup as default };
183
+ export { assignCheckboxGroupValuesToEvent, CheckboxGroup as default };
@@ -1,8 +1,6 @@
1
- import { CheckboxSize } from '@mezzanine-ui/core/checkbox';
2
1
  import { CheckboxGroupControlContextValue } from '../Form/useCheckboxControlValue';
3
2
  export interface CheckboxGroupContextValue extends CheckboxGroupControlContextValue {
4
3
  disabled?: boolean;
5
4
  name?: string;
6
- size?: CheckboxSize;
7
5
  }
8
6
  export declare const CheckboxGroupContext: import("react").Context<CheckboxGroupContextValue | undefined>;
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { createContext } from 'react';
2
3
 
3
4
  const CheckboxGroupContext = createContext(undefined);
@@ -1,4 +1,16 @@
1
- export type { CheckboxSize, CheckboxGroupOrientation, CheckboxGroupOption, } from '@mezzanine-ui/core/checkbox';
2
- export { CheckboxProps, default } from './Checkbox';
3
- export { CheckboxGroupProps, default as CheckboxGroup } from './CheckboxGroup';
4
- export { CheckAllProps, default as CheckAll } from './CheckAll';
1
+ import { PropsWithoutRef, ReactElement, RefAttributes } from 'react';
2
+ import { CheckboxProps } from './Checkbox';
3
+ export type { CheckboxGroupLayout, CheckboxGroupOption, } from '@mezzanine-ui/core/checkbox';
4
+ export { default as CheckAll } from './CheckAll';
5
+ export type { CheckAllProps } from './CheckAll';
6
+ export { default as CheckboxGroup } from './CheckboxGroup';
7
+ export type { CheckboxGroupChangeEvent, CheckboxGroupChangeEventTarget, CheckboxGroupLevelConfig, CheckboxGroupProps, } from './CheckboxGroup';
8
+ export type { CheckboxProps } from './Checkbox';
9
+ export type { CheckboxComponent, CheckboxPropsBase } from './typings';
10
+ /**
11
+ * @remark
12
+ * Add type alias here for parsable to react docgen typescript.
13
+ */
14
+ type GenericCheckbox = (props: PropsWithoutRef<CheckboxProps> & RefAttributes<HTMLLabelElement>) => ReactElement<any>;
15
+ declare const _default: GenericCheckbox;
16
+ export default _default;
package/Checkbox/index.js CHANGED
@@ -1,3 +1,7 @@
1
- export { default } from './Checkbox.js';
2
- export { default as CheckboxGroup } from './CheckboxGroup.js';
1
+ import Checkbox from './Checkbox.js';
3
2
  export { default as CheckAll } from './CheckAll.js';
3
+ export { default as CheckboxGroup } from './CheckboxGroup.js';
4
+
5
+
6
+
7
+ export { Checkbox as default };
@@ -0,0 +1,37 @@
1
+ import { CheckboxMode } from '@mezzanine-ui/core/checkbox';
2
+ import { JSXElementConstructor } from 'react';
3
+ export type CheckboxComponent = 'label' | JSXElementConstructor<any>;
4
+ export interface CheckboxPropsBase {
5
+ /**
6
+ * Whether the checkbox is checked.
7
+ */
8
+ checked?: boolean;
9
+ /**
10
+ * Whether the checkbox is checked by default.
11
+ * Only used for uncontrolled.
12
+ */
13
+ defaultChecked?: boolean;
14
+ /**
15
+ * The description text displayed below the label.
16
+ */
17
+ description?: string;
18
+ /**
19
+ * Whether the checkbox is disabled.
20
+ * @default false
21
+ */
22
+ disabled?: boolean;
23
+ /**
24
+ * Whether the checkbox is in indeterminate state.
25
+ * @default false
26
+ */
27
+ indeterminate?: boolean;
28
+ /**
29
+ * The label text displayed beside the checkbox.
30
+ */
31
+ label?: string;
32
+ /**
33
+ * The mode of checkbox.
34
+ * @default 'main'
35
+ */
36
+ mode?: CheckboxMode;
37
+ }
@@ -0,0 +1,41 @@
1
+ import { ClearActionsEmbeddedVariant, ClearActionsStandardVariant } from '@mezzanine-ui/core/clear-actions';
2
+ import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
3
+ type ClearActionsCommonProps = Omit<NativeElementPropsWithoutKeyAndRef<'button'>, 'onClick' | 'type'> & {
4
+ /**
5
+ * Called when user clicks or activates the button (via mouse or keyboard).
6
+ */
7
+ onClick?: React.MouseEventHandler<HTMLButtonElement>;
8
+ };
9
+ type ClearActionsStandardProps = ClearActionsCommonProps & {
10
+ /**
11
+ * Clear Actions Contextual type.
12
+ * @default 'standard'
13
+ */
14
+ type?: 'standard';
15
+ /**
16
+ * Visual variant for standard type.
17
+ */
18
+ variant?: ClearActionsStandardVariant;
19
+ };
20
+ type ClearActionsEmbeddedProps = ClearActionsCommonProps & {
21
+ /**
22
+ * Clear Actions Contextual type.
23
+ */
24
+ type: 'embedded';
25
+ /**
26
+ * Visual variant for embedded type.
27
+ */
28
+ variant?: ClearActionsEmbeddedVariant;
29
+ };
30
+ type ClearActionsClearableProps = ClearActionsCommonProps & {
31
+ /**
32
+ * Clear Actions Contextual type.
33
+ */
34
+ type: 'clearable';
35
+ };
36
+ export type ClearActionsProps = ClearActionsEmbeddedProps | ClearActionsStandardProps | ClearActionsClearableProps;
37
+ /**
38
+ * Mezzanine clear actions button.
39
+ */
40
+ declare const ClearActions: import("react").ForwardRefExoticComponent<ClearActionsProps & import("react").RefAttributes<HTMLButtonElement>>;
41
+ export default ClearActions;
@@ -0,0 +1,23 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { forwardRef } from 'react';
4
+ import { DangerousFilledIcon, CloseIcon } from '@mezzanine-ui/icons';
5
+ import { clearActionsClasses } from '@mezzanine-ui/core/clear-actions';
6
+ import Icon from '../Icon/Icon.js';
7
+ import cx from 'clsx';
8
+
9
+ /**
10
+ * Mezzanine clear actions button.
11
+ */
12
+ const ClearActions = forwardRef(function ClearActions(props, ref) {
13
+ const { className, onClick, type = 'standard', ...rest } = props;
14
+ const variant = 'variant' in props ? props.variant : undefined;
15
+ const resolvedVariant = type === 'clearable'
16
+ ? 'default'
17
+ : variant !== null && variant !== void 0 ? variant : (type === 'standard' ? 'base' : 'contrast');
18
+ return (jsx("button", { ...rest, ref: ref, "aria-label": "Close", className: cx(clearActionsClasses.host, clearActionsClasses.type(type), clearActionsClasses.variant(resolvedVariant), className), onClick: onClick, type: "button", children: type === 'clearable'
19
+ ? jsx(Icon, { className: clearActionsClasses.icon, icon: DangerousFilledIcon })
20
+ : jsx(Icon, { className: clearActionsClasses.icon, icon: CloseIcon }) }));
21
+ });
22
+
23
+ export { ClearActions as default };
@@ -0,0 +1,3 @@
1
+ import ClearActions from './ClearActions';
2
+ export type { ClearActionsProps } from './ClearActions';
3
+ export default ClearActions;
@@ -0,0 +1,5 @@
1
+ import ClearActions from './ClearActions.js';
2
+
3
+
4
+
5
+ export { ClearActions as default };
@@ -1,5 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
- import { ButtonGroupProps, ButtonProps } from '../Button';
2
+ import { ButtonProps } from '../Button/Button';
3
+ import { ButtonGroupProps } from '../Button/ButtonGroup';
3
4
  export interface ConfirmActionsProps extends Omit<ButtonGroupProps, 'children'> {
4
5
  /**
5
6
  * Other props of cancel button.
@@ -1 +1,2 @@
1
- export { ConfirmActionsProps, default } from './ConfirmActions';
1
+ export { default } from './ConfirmActions';
2
+ export type { ConfirmActionsProps } from './ConfirmActions';
@@ -1,13 +1,24 @@
1
1
  import { DateType } from '@mezzanine-ui/core/calendar';
2
2
  import { DatePickerCalendarProps } from './DatePickerCalendar';
3
3
  import { PickerTriggerProps } from '../Picker';
4
- export interface DatePickerProps extends Omit<DatePickerCalendarProps, 'anchor' | 'calendarRef' | 'onChange' | 'open' | 'referenceDate' | 'updateReferenceDate'>, Omit<PickerTriggerProps, 'defaultValue' | 'inputRef' | 'onChange' | 'onClear' | 'onClick' | 'onIconClick' | 'onKeyDown' | 'suffixActionIcon' | 'value'> {
4
+ export interface DatePickerProps extends Omit<DatePickerCalendarProps, 'anchor' | 'calendarRef' | 'disableOnDoubleNext' | 'disableOnDoublePrev' | 'onChange' | 'open' | 'referenceDate' | 'updateReferenceDate'>, Omit<PickerTriggerProps, 'defaultValue' | 'format' | 'inputRef' | 'onChange' | 'onClear' | 'onClick' | 'onIconClick' | 'onKeyDown' | 'value'> {
5
5
  /**
6
6
  * Default value for date picker.
7
7
  */
8
8
  defaultValue?: DateType;
9
+ /**
10
+ * Disabled "double next" button on calendar controls
11
+ * @default false
12
+ */
13
+ disableOnDoubleNext?: boolean;
14
+ /**
15
+ * Disabled "double prev" button on calendar controls
16
+ * @default false
17
+ */
18
+ disableOnDoublePrev?: boolean;
9
19
  /**
10
20
  * The format for displaying date.
21
+ * The length of the format must match the length of the actual generated value. For example, "gggg-wo" may cause a length mismatch when the week of year is a single digit. It is recommended to use the system's default format instead.
11
22
  */
12
23
  format?: string;
13
24
  /**
@@ -1,5 +1,6 @@
1
+ 'use client';
1
2
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { forwardRef, useContext, useMemo, useState, useCallback, useRef, useEffect } from 'react';
3
+ import { forwardRef, useCallback, useState, useMemo, useRef, useEffect } from 'react';
3
4
  import { getDefaultModeFormat } from '@mezzanine-ui/core/calendar';
4
5
  import { CalendarIcon } from '@mezzanine-ui/icons';
5
6
  import DatePickerCalendar from './DatePickerCalendar.js';
@@ -9,18 +10,46 @@ import { usePickerValue } from '../Picker/usePickerValue.js';
9
10
  import { usePickerDocumentEventClose } from '../Picker/usePickerDocumentEventClose.js';
10
11
  import Icon from '../Icon/Icon.js';
11
12
  import PickerTrigger from '../Picker/PickerTrigger.js';
12
- import { FormControlContext } from '../Form/FormControlContext.js';
13
13
 
14
14
  /**
15
15
  * The react component for `mezzanine` date picker.
16
16
  * Notice that any component related to date-picker should be used along with `CalendarContext`. <br />
17
17
  */
18
18
  const DatePicker = forwardRef(function DatePicker(props, ref) {
19
- const { disabled: disabledFromFormControl, fullWidth: fullWidthFromFormControl, required: requiredFromFormControl, severity, } = useContext(FormControlContext) || {};
20
- const { defaultDateFormat, getNow } = useCalendarContext();
21
- const { calendarProps, className, clearable = true, defaultValue, disabledMonthSwitch = false, disableOnNext, disableOnPrev, disabledYearSwitch = false, disabled = disabledFromFormControl || false, displayMonthLocale, error = severity === 'error' || false, fadeProps, format = defaultDateFormat, fullWidth = fullWidthFromFormControl || false, inputProps, isDateDisabled, isMonthDisabled, isWeekDisabled, isYearDisabled, mode = 'day', onCalendarToggle: onCalendarToggleProp, onChange: onChangeProp, placeholder, popperProps, prefix, readOnly, referenceDate: referenceDateProp, required = requiredFromFormControl || false, size, value: valueProp, ...restTriggerProps } = props;
19
+ const { getNow } = useCalendarContext();
20
+ const { calendarProps, className, clearable = true, defaultValue, disabledMonthSwitch = false, disableOnNext, disableOnPrev, disableOnDoubleNext, disableOnDoublePrev, disabledYearSwitch = false, disabled = false, displayMonthLocale, error = false, errorMessages, fadeProps, format: formatProp, fullWidth = false, inputProps, isDateDisabled, isMonthDisabled, isWeekDisabled, isYearDisabled, isQuarterDisabled, isHalfYearDisabled, mode = 'day', onCalendarToggle: onCalendarToggleProp, onChange: onChangeProp, placeholder, popperProps, prefix, readOnly, referenceDate: referenceDateProp, required = false, size, value: valueProp, ...restTriggerProps } = props;
21
+ const format = formatProp || getDefaultModeFormat(mode);
22
22
  const { onBlur: onBlurProp, onKeyDown: onKeyDownProp, onFocus: onFocusProp, size: inputSize = format.length + 2, ...restInputProp } = inputProps || {};
23
- const formats = useMemo(() => [format, defaultDateFormat, getDefaultModeFormat(mode)], [defaultDateFormat, format, mode]);
23
+ /**
24
+ * Validate date value against disabled constraints based on mode.
25
+ * Returns true if valid, false if the date is disabled.
26
+ */
27
+ const validateDate = useCallback((isoDate) => {
28
+ switch (mode) {
29
+ case 'day':
30
+ return !(isDateDisabled === null || isDateDisabled === void 0 ? void 0 : isDateDisabled(isoDate));
31
+ case 'week':
32
+ return !(isWeekDisabled === null || isWeekDisabled === void 0 ? void 0 : isWeekDisabled(isoDate));
33
+ case 'month':
34
+ return !(isMonthDisabled === null || isMonthDisabled === void 0 ? void 0 : isMonthDisabled(isoDate));
35
+ case 'quarter':
36
+ return !(isQuarterDisabled === null || isQuarterDisabled === void 0 ? void 0 : isQuarterDisabled(isoDate));
37
+ case 'year':
38
+ return !(isYearDisabled === null || isYearDisabled === void 0 ? void 0 : isYearDisabled(isoDate));
39
+ case 'half-year':
40
+ return !(isHalfYearDisabled === null || isHalfYearDisabled === void 0 ? void 0 : isHalfYearDisabled(isoDate));
41
+ default:
42
+ return true;
43
+ }
44
+ }, [
45
+ isDateDisabled,
46
+ isHalfYearDisabled,
47
+ isMonthDisabled,
48
+ isQuarterDisabled,
49
+ isWeekDisabled,
50
+ isYearDisabled,
51
+ mode,
52
+ ]);
24
53
  /** Calender display control */
25
54
  const [open, setOpen] = useState(false);
26
55
  const preventOpen = readOnly;
@@ -48,7 +77,6 @@ const DatePicker = forwardRef(function DatePicker(props, ref) {
48
77
  const { inputValue, onBlur, onChange, onInputChange, onKeyDown, value: internalValue, } = usePickerValue({
49
78
  defaultValue,
50
79
  format,
51
- formats,
52
80
  inputRef,
53
81
  value: valueProp,
54
82
  });
@@ -123,8 +151,12 @@ const DatePicker = forwardRef(function DatePicker(props, ref) {
123
151
  }
124
152
  onCalendarToggle(!open);
125
153
  };
126
- const suffixActionIcon = jsx(Icon, { icon: CalendarIcon, onClick: onIconClick });
127
- return (jsxs(Fragment, { children: [jsx(PickerTrigger, { ...restTriggerProps, ref: triggerComposedRef, className: className, clearable: clearable, disabled: disabled, error: error, fullWidth: fullWidth, inputProps: resolvedInputProps, inputRef: inputRef, onChange: onInputChange, onClear: onClear, placeholder: placeholder, prefix: prefix, readOnly: readOnly, required: required, size: size, suffixActionIcon: suffixActionIcon, value: inputValue }), jsx(DatePickerCalendar, { ref: calendarRef, anchor: anchorRef, calendarProps: calendarProps, disabledMonthSwitch: disabledMonthSwitch, disableOnNext: disableOnNext, disableOnPrev: disableOnPrev, disabledYearSwitch: disabledYearSwitch, displayMonthLocale: displayMonthLocale, fadeProps: fadeProps, isDateDisabled: isDateDisabled, isMonthDisabled: isMonthDisabled, isWeekDisabled: isWeekDisabled, isYearDisabled: isYearDisabled, mode: mode, onChange: onCalendarChange, open: open, popperProps: popperProps, referenceDate: referenceDate, value: internalValue })] }));
154
+ const suffixActionIcon = (jsx(Icon, { "aria-label": "Open calendar", icon: CalendarIcon, onClick: readOnly ? undefined : onIconClick }));
155
+ return (jsxs(Fragment, { children: [jsx(PickerTrigger, { ...restTriggerProps, ref: triggerComposedRef, className: className, clearable: clearable, disabled: disabled, error: error, errorMessages: errorMessages, format: format, fullWidth: fullWidth, inputProps: resolvedInputProps, inputRef: inputRef, onChange: (e) => {
156
+ onInputChange(e);
157
+ onCalendarChange(e.target.value);
158
+ onCalendarToggle(true);
159
+ }, onClear: onClear, onFocus: () => onCalendarToggle(true), placeholder: placeholder, prefix: prefix, readOnly: readOnly, required: required, size: size, suffix: suffixActionIcon, validate: validateDate, value: inputValue }), jsx(DatePickerCalendar, { ref: calendarRef, anchor: anchorRef, calendarProps: calendarProps, disabledMonthSwitch: disabledMonthSwitch, disableOnNext: disableOnNext, disableOnPrev: disableOnPrev, disableOnDoubleNext: disableOnDoubleNext, disableOnDoublePrev: disableOnDoublePrev, disabledYearSwitch: disabledYearSwitch, displayMonthLocale: displayMonthLocale, fadeProps: fadeProps, isDateDisabled: isDateDisabled, isMonthDisabled: isMonthDisabled, isWeekDisabled: isWeekDisabled, isQuarterDisabled: isQuarterDisabled, isYearDisabled: isYearDisabled, isHalfYearDisabled: isHalfYearDisabled, mode: mode, onChange: onCalendarChange, open: open, popperProps: popperProps, referenceDate: referenceDate, value: internalValue })] }));
128
160
  });
129
161
 
130
162
  export { DatePicker as default };
@@ -2,11 +2,11 @@ import { CalendarMode, DateType } from '@mezzanine-ui/core/calendar';
2
2
  import { RefObject } from 'react';
3
3
  import { CalendarProps } from '../Calendar';
4
4
  import { InputTriggerPopperProps } from '../_internal/InputTriggerPopper';
5
- export interface DatePickerCalendarProps extends Pick<InputTriggerPopperProps, 'anchor' | 'fadeProps' | 'open'>, Pick<CalendarProps, 'disabledMonthSwitch' | 'disableOnNext' | 'disableOnPrev' | 'disabledYearSwitch' | 'displayMonthLocale' | 'isDateDisabled' | 'isMonthDisabled' | 'isWeekDisabled' | 'isYearDisabled' | 'onChange' | 'referenceDate'> {
5
+ export interface DatePickerCalendarProps extends Pick<InputTriggerPopperProps, 'anchor' | 'fadeProps' | 'open'>, Pick<CalendarProps, 'disabledMonthSwitch' | 'disableOnNext' | 'disableOnPrev' | 'disableOnDoubleNext' | 'disableOnDoublePrev' | 'disabledYearSwitch' | 'displayMonthLocale' | 'isDateDisabled' | 'isMonthDisabled' | 'isQuarterDisabled' | 'isHalfYearDisabled' | 'isWeekDisabled' | 'isYearDisabled' | 'onChange' | 'referenceDate'> {
6
6
  /**
7
7
  * Other calendar props you may provide to `Calendar`.
8
8
  */
9
- calendarProps?: Omit<CalendarProps, 'disableOnNext' | 'disableOnPrev' | 'displayMonthLocale' | 'isDateDisabled' | 'isMonthDisabled' | 'isWeekDisabled' | 'isYearDisabled' | 'locale' | 'mode' | 'onChange' | 'onMonthControlClick' | 'onNext' | 'onPrev' | 'onYearControlClick' | 'referenceDate' | 'updateReferenceDate' | 'value'>;
9
+ calendarProps?: Omit<CalendarProps, 'disableOnNext' | 'disableOnPrev' | 'disableOnDoubleNext' | 'disableOnDoublePrev' | 'displayMonthLocale' | 'isDateDisabled' | 'isMonthDisabled' | 'isQuarterDisabled' | 'isHalfYearDisabled' | 'isWeekDisabled' | 'isYearDisabled' | 'locale' | 'mode' | 'onChange' | 'onMonthControlClick' | 'onNext' | 'onDoubleNext' | 'onPrev' | 'onDoublePrev' | 'onYearControlClick' | 'referenceDate' | 'updateReferenceDate' | 'value'>;
10
10
  /**
11
11
  * React ref for calendar component.
12
12
  */
@@ -25,8 +25,5 @@ export interface DatePickerCalendarProps extends Pick<InputTriggerPopperProps, '
25
25
  */
26
26
  value?: DateType;
27
27
  }
28
- /**
29
- * The react component for `mezzanine` date picker calendar.
30
- */
31
28
  declare const DatePickerCalendar: import("react").ForwardRefExoticComponent<DatePickerCalendarProps & import("react").RefAttributes<HTMLDivElement>>;
32
29
  export default DatePickerCalendar;
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { jsx } from 'react/jsx-runtime';
2
3
  import { forwardRef, useMemo } from 'react';
3
4
  import { useCalendarContext } from '../Calendar/CalendarContext.js';
@@ -5,61 +6,60 @@ import { useCalendarControls } from '../Calendar/useCalendarControls.js';
5
6
  import InputTriggerPopper from '../_internal/InputTriggerPopper/InputTriggerPopper.js';
6
7
  import Calendar from '../Calendar/Calendar.js';
7
8
 
8
- /**
9
- * The react component for `mezzanine` date picker calendar.
10
- */
11
9
  const DatePickerCalendar = forwardRef(function DatePickerCalendar(props, ref) {
12
- const { displayMonthLocale: displayMonthLocaleFromConfig, getMonth, getYear, setMonth, setYear, } = useCalendarContext();
13
- const { anchor, calendarProps, calendarRef, disabledMonthSwitch, disableOnNext, disableOnPrev, disabledYearSwitch, displayMonthLocale = displayMonthLocaleFromConfig, fadeProps, isDateDisabled, isMonthDisabled, isWeekDisabled, isYearDisabled, mode = 'day', onChange: onChangeProp, open, popperProps, referenceDate: referenceDateProp, value, } = props;
10
+ const { locale, getMonth, getYear, setMonth, setYear } = useCalendarContext();
11
+ const { anchor, calendarProps, calendarRef, disabledMonthSwitch, disableOnNext, disableOnPrev, disableOnDoubleNext, disableOnDoublePrev, disabledYearSwitch, displayMonthLocale = locale, fadeProps, isDateDisabled, isMonthDisabled, isQuarterDisabled, isHalfYearDisabled, isWeekDisabled, isYearDisabled, mode = 'day', onChange: onChangeProp, open, popperProps, referenceDate: referenceDateProp, value, } = props;
14
12
  const { className: calendarClassName, ...restCalendarProps } = calendarProps || {};
15
- const { currentMode, onMonthControlClick, onNext, onPrev, onYearControlClick, popModeStack, referenceDate, updateReferenceDate, } = useCalendarControls(referenceDateProp, mode);
16
- const onChange = useMemo(() => {
17
- if (currentMode === 'day' || currentMode === 'week') {
18
- return (target) => {
19
- updateReferenceDate(target);
20
- popModeStack();
21
- if (onChangeProp) {
22
- onChangeProp(target);
23
- }
24
- };
25
- }
26
- if (currentMode === 'month') {
27
- return (target) => {
28
- const result = currentMode === mode
29
- ? target
30
- : setMonth(referenceDate, getMonth(target));
31
- updateReferenceDate(result);
32
- popModeStack();
33
- if (currentMode === mode && onChangeProp) {
34
- onChangeProp(result);
35
- }
36
- };
37
- }
38
- if (currentMode === 'year') {
13
+ const { currentMode, onMonthControlClick, onNext, onPrev, onDoublePrev, onDoubleNext, onYearControlClick, popModeStack, referenceDate, updateReferenceDate, } = useCalendarControls(referenceDateProp, mode);
14
+ // Helper to handle mode switching with optional value transformation
15
+ const createModeChangeHandler = useMemo(() => {
16
+ return (transformValue) => {
39
17
  return (target) => {
40
- const result = currentMode === mode
41
- ? target
42
- : setYear(referenceDate, getYear(target));
18
+ const result = transformValue
19
+ ? transformValue(target, referenceDate)
20
+ : target;
43
21
  updateReferenceDate(result);
44
22
  popModeStack();
45
23
  if (currentMode === mode && onChangeProp) {
46
24
  onChangeProp(result);
47
25
  }
48
26
  };
49
- }
27
+ };
50
28
  }, [
51
29
  currentMode,
30
+ mode,
52
31
  referenceDate,
53
32
  updateReferenceDate,
54
33
  popModeStack,
55
- mode,
56
34
  onChangeProp,
57
- setMonth,
35
+ ]);
36
+ const onChange = useMemo(() => {
37
+ switch (currentMode) {
38
+ case 'day':
39
+ case 'week':
40
+ return createModeChangeHandler();
41
+ case 'month':
42
+ return createModeChangeHandler((target, reference) => currentMode === mode
43
+ ? target
44
+ : setMonth(reference, getMonth(target)));
45
+ case 'year':
46
+ return createModeChangeHandler((target, reference) => currentMode === mode ? target : setYear(reference, getYear(target)));
47
+ case 'quarter':
48
+ case 'half-year':
49
+ return createModeChangeHandler();
50
+ default:
51
+ return undefined;
52
+ }
53
+ }, [
54
+ currentMode,
55
+ mode,
56
+ createModeChangeHandler,
58
57
  getMonth,
59
- setYear,
58
+ setMonth,
60
59
  getYear,
60
+ setYear,
61
61
  ]);
62
- return (jsx(InputTriggerPopper, { ...popperProps, ref: ref, anchor: anchor, open: open, fadeProps: fadeProps, children: jsx(Calendar, { ...restCalendarProps, ref: calendarRef, className: calendarClassName, disabledMonthSwitch: disabledMonthSwitch, disableOnNext: disableOnNext, disableOnPrev: disableOnPrev, disabledYearSwitch: disabledYearSwitch, displayMonthLocale: displayMonthLocale, isDateDisabled: isDateDisabled, isMonthDisabled: isMonthDisabled, isWeekDisabled: isWeekDisabled, isYearDisabled: isYearDisabled, mode: currentMode, onChange: onChange, onMonthControlClick: onMonthControlClick, onNext: onNext, onPrev: onPrev, onYearControlClick: onYearControlClick, referenceDate: referenceDate, value: value }) }));
62
+ return (jsx(InputTriggerPopper, { ...popperProps, ref: ref, anchor: anchor, open: open, fadeProps: fadeProps, children: jsx(Calendar, { ...restCalendarProps, ref: calendarRef, className: calendarClassName, disabledMonthSwitch: disabledMonthSwitch, disableOnNext: disableOnNext, disableOnPrev: disableOnPrev, disableOnDoubleNext: disableOnDoubleNext, disableOnDoublePrev: disableOnDoublePrev, disabledYearSwitch: disabledYearSwitch, displayMonthLocale: displayMonthLocale, isDateDisabled: isDateDisabled, isMonthDisabled: isMonthDisabled, isQuarterDisabled: isQuarterDisabled, isHalfYearDisabled: isHalfYearDisabled, isWeekDisabled: isWeekDisabled, isYearDisabled: isYearDisabled, mode: currentMode, onChange: onChange, onMonthControlClick: onMonthControlClick, onNext: onNext, onDoubleNext: onDoubleNext, onPrev: onPrev, onDoublePrev: onDoublePrev, onYearControlClick: onYearControlClick, referenceDate: referenceDate, value: value }) }));
63
63
  });
64
64
 
65
65
  export { DatePickerCalendar as default };