@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
@@ -1,121 +1,206 @@
1
+ 'use client';
1
2
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { ClockIcon } from '@mezzanine-ui/icons';
3
- import { forwardRef, useContext, useMemo, useState, useCallback, useRef, useEffect } from 'react';
3
+ import { CalendarTimeIcon } from '@mezzanine-ui/icons';
4
+ import { forwardRef, useState, useRef, useEffect, useMemo, useCallback } from 'react';
4
5
  import { useComposeRefs } from '../hooks/useComposeRefs.js';
5
- import DateTimePickerPanel from './DateTimePickerPanel.js';
6
+ import TimePickerPanel from '../TimePicker/TimePickerPanel.js';
6
7
  import { useCalendarContext } from '../Calendar/CalendarContext.js';
7
- import { usePickerValue } from '../Picker/usePickerValue.js';
8
8
  import { usePickerDocumentEventClose } from '../Picker/usePickerDocumentEventClose.js';
9
9
  import Icon from '../Icon/Icon.js';
10
- import PickerTrigger from '../Picker/PickerTrigger.js';
11
- import { FormControlContext } from '../Form/FormControlContext.js';
10
+ import PickerTriggerWithSeparator from '../Picker/PickerTriggerWithSeparator.js';
11
+ import DatePickerCalendar from '../DatePicker/DatePickerCalendar.js';
12
12
 
13
13
  /**
14
- * The react component for `mezzanine` time picker.
15
- * Notice that any component related to time-picker should be used along with `CalendarContext`.
14
+ * The react component for `mezzanine` date-time picker.
15
+ * This component features two separate inputs for date and time,
16
+ * with independent calendar and time panels shown based on focus.
17
+ * Notice that any component related to date-time picker should be used along with `CalendarContext`.
16
18
  */
17
19
  const DateTimePicker = forwardRef(function DateTimePicker(props, ref) {
18
- const { disabled: disabledFromFormControl, fullWidth: fullWidthFromFormControl, required: requiredFromFormControl, severity, } = useContext(FormControlContext) || {};
19
- const { defaultDateFormat, defaultTimeFormat, getNow, startOf } = useCalendarContext();
20
- const defaultFormat = `${defaultDateFormat} ${defaultTimeFormat}`;
21
- const { calendarProps, className, clearable = true, confirmText, defaultValue, disabledMonthSwitch = false, disableOnNext, disableOnPrev, disabledYearSwitch = false, disabled = disabledFromFormControl, displayMonthLocale, error = severity === 'error' || false, fadeProps, format = defaultFormat, fullWidth = fullWidthFromFormControl, hideHour, hideMinute, hideSecond, hourPrefix, hourStep, inputProps, isDateDisabled, isMonthDisabled, isWeekDisabled, isYearDisabled, minutePrefix, minuteStep, onChange: onChangeProp, onPanelToggle: onPanelToggleProp, placeholder, popperProps, prefix, readOnly, referenceDate: referenceDateProp, required = requiredFromFormControl, secondPrefix, secondStep, size: sizeProp, value: valueProp, } = props;
22
- const { onBlur: onBlurProp, onKeyDown: onKeyDownProp, onFocus: onFocusProp, size: inputSize = format.length + 2, ...restInputProp } = inputProps || {};
23
- const formats = useMemo(() => [format, defaultFormat], [defaultFormat, format]);
24
- /** Panel open control */
25
- const [open, setOpen] = useState(false);
26
- const preventOpen = readOnly;
27
- const onPanelToggle = useCallback((nextOpen) => {
28
- if (!preventOpen) {
29
- setOpen(nextOpen);
30
- if (onPanelToggleProp) {
31
- onPanelToggleProp(nextOpen);
20
+ const { defaultDateFormat, defaultTimeFormat, formatToString, getNow, getHour, getMinute, getSecond, isValid, setHour, setMinute, setSecond, startOf, locale, } = useCalendarContext();
21
+ const {
22
+ // Calendar props
23
+ calendarProps, calendarRef, disabledMonthSwitch = false, disableOnDoubleNext, disableOnDoublePrev, disableOnNext, disableOnPrev, disabledYearSwitch = false, displayMonthLocale, isDateDisabled, isHalfYearDisabled, isMonthDisabled, isQuarterDisabled, isWeekDisabled, isYearDisabled, mode = 'day',
24
+ // Time panel props
25
+ hideHour, hideMinute, hideSecond, hourStep, minuteStep, secondStep,
26
+ // DateTimePicker specific props
27
+ className, clearable = true, defaultValue, disabled = false, error = false, fadeProps, formatDate = defaultDateFormat, formatTime = hideSecond ? 'HH:mm' : defaultTimeFormat, fullWidth = false, onClear: onClearProp, onChange: onChangeProp, onPanelToggle: onPanelToggleProp, placeholderLeft = formatDate, placeholderRight = formatTime, popperProps, popperPropsTime, prefix, readOnly, referenceDate: referenceDateProp, required = false, size, value: valueProp, ...restTriggerProps } = props;
28
+ // Internal state
29
+ const [focusedInput, setFocusedInput] = useState(null);
30
+ const [dateValue, setDateValue] = useState(defaultValue !== null && defaultValue !== void 0 ? defaultValue : valueProp);
31
+ const [timeValue, setTimeValue] = useState(defaultValue !== null && defaultValue !== void 0 ? defaultValue : valueProp);
32
+ // Refs
33
+ const inputLeftRef = useRef(null);
34
+ const inputRightRef = useRef(null);
35
+ const anchorRef = useRef(null);
36
+ const calendarPanelRef = useRef(null);
37
+ const timePanelRef = useRef(null);
38
+ const triggerComposedRef = useComposeRefs([anchorRef, ref]);
39
+ // Reference date for calendar
40
+ const [referenceDate, setReferenceDate] = useState(startOf(referenceDateProp || defaultValue || getNow(), 'day'));
41
+ // Sync external value
42
+ useEffect(() => {
43
+ if (valueProp !== undefined) {
44
+ setDateValue(valueProp);
45
+ setTimeValue(valueProp);
46
+ if (valueProp) {
47
+ setReferenceDate(startOf(valueProp, 'day'));
32
48
  }
33
49
  }
34
- }, [onPanelToggleProp, preventOpen]);
35
- const onFocus = useCallback((event) => {
36
- if (onFocusProp) {
37
- onFocusProp(event);
50
+ }, [valueProp, startOf]);
51
+ // Open state based on focused input
52
+ const openCalendar = focusedInput === 'left' && !readOnly;
53
+ const openTimePanel = focusedInput === 'right' && !readOnly;
54
+ // Format values for display
55
+ const displayDateValue = useMemo(() => {
56
+ if (!dateValue)
57
+ return '';
58
+ return formatToString(locale, dateValue, formatDate) || '';
59
+ }, [dateValue, formatDate, formatToString, locale]);
60
+ const displayTimeValue = useMemo(() => {
61
+ if (!timeValue)
62
+ return '';
63
+ return formatToString(locale, timeValue, formatTime) || '';
64
+ }, [timeValue, formatTime, formatToString, locale]);
65
+ // Panel toggle handler
66
+ const onPanelToggle = useCallback((open, input) => {
67
+ if (onPanelToggleProp) {
68
+ onPanelToggleProp(open, input);
38
69
  }
39
- onPanelToggle(true);
40
- }, [onFocusProp, onPanelToggle]);
41
- /** Controlling input value and bind change handler */
42
- const inputRef = useRef(null);
43
- const { inputValue, onBlur, onChange, onInputChange, onKeyDown, value: internalValue, } = usePickerValue({
44
- defaultValue,
45
- format,
46
- formats,
47
- inputRef,
48
- value: valueProp,
49
- });
50
- /** Panel confirm handler */
51
- const onConfirm = useCallback(() => {
52
- if (onChangeProp) {
53
- onChangeProp(internalValue);
70
+ }, [onPanelToggleProp]);
71
+ // Focus handlers
72
+ const onFocusLeft = useCallback(() => {
73
+ if (!readOnly) {
74
+ setFocusedInput('left');
75
+ onPanelToggle(true, 'left');
54
76
  }
55
- onPanelToggle(false);
56
- }, [internalValue, onChangeProp, onPanelToggle]);
57
- /** using internal reference date */
58
- const [referenceDate, setReferenceDate] = useState(startOf(referenceDateProp || defaultValue || getNow(), 'hour'));
59
- useEffect(() => {
60
- if (internalValue) {
61
- setReferenceDate(internalValue);
77
+ }, [onPanelToggle, readOnly]);
78
+ const onFocusRight = useCallback(() => {
79
+ if (!readOnly) {
80
+ setFocusedInput('right');
81
+ onPanelToggle(true, 'right');
62
82
  }
63
- }, [internalValue]);
64
- /** Bind input props */
65
- const onResolvedKeyDown = useCallback((event) => {
66
- if (onKeyDownProp) {
67
- onKeyDownProp(event);
83
+ }, [onPanelToggle, readOnly]);
84
+ // Combine date and time into a single value
85
+ const combineDateTime = useCallback((date, time) => {
86
+ if (!date)
87
+ return undefined;
88
+ const timeSource = time || getNow();
89
+ const result = setHour(setMinute(setSecond(date, getSecond(timeSource)), getMinute(timeSource)), getHour(timeSource));
90
+ return result;
91
+ }, [getNow, getHour, getMinute, getSecond, setHour, setMinute, setSecond]);
92
+ // Close handler
93
+ const onClose = useCallback(() => {
94
+ setFocusedInput(null);
95
+ onPanelToggle(false, null);
96
+ }, [onPanelToggle]);
97
+ // Trigger onChange when both date and time are set
98
+ const notifyChange = useCallback((date, time) => {
99
+ if (!onChangeProp)
100
+ return;
101
+ if (date && time) {
102
+ const combined = combineDateTime(date, time);
103
+ onChangeProp(combined);
68
104
  }
69
- onKeyDown(event);
70
- if (event.key === 'Enter') {
71
- onConfirm();
105
+ }, [combineDateTime, onChangeProp]);
106
+ // Handle left complete - auto focus right
107
+ const onLeftComplete = useCallback(() => {
108
+ if (timeValue) {
109
+ onClose();
72
110
  }
73
- }, [onConfirm, onKeyDown, onKeyDownProp]);
74
- const onResolvedBlur = useCallback((event) => {
75
- if (onBlurProp) {
76
- onBlurProp(event);
111
+ else {
112
+ setTimeout(() => {
113
+ var _a;
114
+ (_a = inputRightRef.current) === null || _a === void 0 ? void 0 : _a.focus();
115
+ }, 0);
77
116
  }
78
- onBlur(event);
79
- }, [onBlur, onBlurProp]);
80
- const resolvedInputProps = {
81
- ...restInputProp,
82
- size: inputSize,
83
- onFocus,
84
- onKeyDown: onResolvedKeyDown,
85
- onBlur: onResolvedBlur,
86
- };
87
- /** Popper positioning */
88
- const anchorRef = useRef(null);
89
- const panelRef = useRef(null);
90
- const triggerComposedRef = useComposeRefs([anchorRef, ref]);
91
- /** Blur, click away and key down close */
92
- const onClose = useCallback(() => {
93
- onChange(valueProp);
94
- onPanelToggle(false);
95
- }, [onChange, onPanelToggle, valueProp]);
117
+ }, [timeValue, onClose]);
118
+ // Handle left complete - auto focus right
119
+ const onRightComplete = useCallback(() => {
120
+ if (dateValue) {
121
+ onClose();
122
+ }
123
+ else {
124
+ setTimeout(() => {
125
+ var _a;
126
+ (_a = inputLeftRef.current) === null || _a === void 0 ? void 0 : _a.focus();
127
+ }, 0);
128
+ }
129
+ }, [dateValue, onClose]);
130
+ // Handle date change from input
131
+ const onChangeLeft = useCallback((isoValue) => {
132
+ if (!isoValue) {
133
+ setDateValue(undefined);
134
+ return;
135
+ }
136
+ if (isValid(isoValue)) {
137
+ setDateValue(isoValue);
138
+ setReferenceDate(startOf(isoValue, 'day'));
139
+ notifyChange(isoValue, timeValue);
140
+ }
141
+ }, [isValid, notifyChange, startOf, timeValue]);
142
+ const onChangeRight = useCallback((isoValue) => {
143
+ if (!isoValue) {
144
+ setTimeValue(undefined);
145
+ return;
146
+ }
147
+ if (isValid(isoValue)) {
148
+ setTimeValue(isoValue);
149
+ notifyChange(dateValue, isoValue);
150
+ }
151
+ }, [dateValue, isValid, notifyChange]);
152
+ const onCalendarChange = useCallback((target) => {
153
+ setDateValue(target);
154
+ setReferenceDate(startOf(target, 'day'));
155
+ notifyChange(target, timeValue);
156
+ onLeftComplete();
157
+ }, [notifyChange, startOf, timeValue, onLeftComplete]);
158
+ // Handle time change from panel
159
+ const onTimePanelChange = useCallback((target) => {
160
+ if (!target)
161
+ return;
162
+ setTimeValue(target);
163
+ notifyChange(dateValue, target);
164
+ onRightComplete();
165
+ }, [dateValue, notifyChange, onRightComplete]);
166
+ // Document event close for calendar
96
167
  usePickerDocumentEventClose({
97
- open,
98
168
  anchorRef,
99
- popperRef: panelRef,
100
- lastElementRefInFlow: inputRef,
169
+ lastElementRefInFlow: inputLeftRef,
170
+ onChangeClose: onClose,
101
171
  onClose,
172
+ open: openCalendar,
173
+ popperRef: calendarPanelRef,
174
+ });
175
+ // Document event close for time panel
176
+ usePickerDocumentEventClose({
177
+ anchorRef,
178
+ lastElementRefInFlow: inputRightRef,
102
179
  onChangeClose: onClose,
180
+ onClose,
181
+ open: openTimePanel,
182
+ popperRef: timePanelRef,
103
183
  });
104
- /** Bind on change to on clear */
105
- const onClear = () => {
106
- onChange(undefined);
184
+ const onClear = useCallback((evt) => {
185
+ setDateValue(undefined);
186
+ setTimeValue(undefined);
107
187
  onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(undefined);
108
- };
109
- /** Icon */
110
- const onIconClick = (e) => {
111
- e.stopPropagation();
112
- if (open) {
113
- onChange(valueProp);
188
+ onClearProp === null || onClearProp === void 0 ? void 0 : onClearProp(evt);
189
+ }, [onChangeProp, onClearProp]);
190
+ const onCalendarIconClick = useCallback(() => {
191
+ var _a;
192
+ if (readOnly || disabled)
193
+ return;
194
+ if (focusedInput) {
195
+ setFocusedInput(null);
196
+ onPanelToggle(false, null);
197
+ }
198
+ else {
199
+ (_a = inputLeftRef.current) === null || _a === void 0 ? void 0 : _a.focus();
114
200
  }
115
- onPanelToggle(!open);
116
- };
117
- const suffixActionIcon = jsx(Icon, { icon: ClockIcon, onClick: onIconClick });
118
- return (jsxs(Fragment, { children: [jsx(PickerTrigger, { 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: sizeProp, suffixActionIcon: suffixActionIcon, value: inputValue }), jsx(DateTimePickerPanel, { ref: panelRef, anchor: anchorRef, calendarProps: calendarProps, confirmText: confirmText, disabledMonthSwitch: disabledMonthSwitch, disableOnNext: disableOnNext, disableOnPrev: disableOnPrev, disabledYearSwitch: disabledYearSwitch, displayMonthLocale: displayMonthLocale, fadeProps: fadeProps, hideHour: hideHour, hideMinute: hideMinute, hideSecond: hideSecond, hourPrefix: hourPrefix, hourStep: hourStep, isDateDisabled: isDateDisabled, isMonthDisabled: isMonthDisabled, isWeekDisabled: isWeekDisabled, isYearDisabled: isYearDisabled, minutePrefix: minutePrefix, minuteStep: minuteStep, onChange: onChange, onConfirm: onConfirm, open: open, popperProps: popperProps, referenceDate: referenceDate, secondPrefix: secondPrefix, secondStep: secondStep, value: internalValue })] }));
201
+ }, [disabled, focusedInput, onPanelToggle, readOnly]);
202
+ const suffix = (jsx(Icon, { "aria-label": "Open calendar", icon: CalendarTimeIcon, onClick: onCalendarIconClick }));
203
+ return (jsxs(Fragment, { children: [jsx(PickerTriggerWithSeparator, { ...restTriggerProps, ref: triggerComposedRef, className: className, clearable: clearable, disabled: disabled, error: error, formatLeft: formatDate, formatRight: formatTime, fullWidth: fullWidth, inputLeftRef: inputLeftRef, inputRightRef: inputRightRef, onBlurLeft: () => { }, onBlurRight: () => { }, onChangeLeft: onChangeLeft, onChangeRight: onChangeRight, onClear: onClear, onFocusLeft: onFocusLeft, onFocusRight: onFocusRight, onLeftComplete: onLeftComplete, onRightComplete: onRightComplete, placeholderLeft: placeholderLeft, placeholderRight: placeholderRight, prefix: prefix, readOnly: readOnly, required: required, size: size, suffix: suffix, valueLeft: displayDateValue, valueRight: displayTimeValue }), jsx(DatePickerCalendar, { ref: calendarPanelRef, anchor: anchorRef, calendarProps: calendarProps, calendarRef: calendarRef, disabledMonthSwitch: disabledMonthSwitch, disableOnDoubleNext: disableOnDoubleNext, disableOnDoublePrev: disableOnDoublePrev, disableOnNext: disableOnNext, disableOnPrev: disableOnPrev, disabledYearSwitch: disabledYearSwitch, displayMonthLocale: displayMonthLocale, fadeProps: fadeProps, isDateDisabled: isDateDisabled, isHalfYearDisabled: isHalfYearDisabled, isMonthDisabled: isMonthDisabled, isQuarterDisabled: isQuarterDisabled, isWeekDisabled: isWeekDisabled, isYearDisabled: isYearDisabled, mode: mode, onChange: onCalendarChange, open: openCalendar, popperProps: popperProps, referenceDate: referenceDate, value: dateValue }), jsx(TimePickerPanel, { ref: timePanelRef, anchor: anchorRef, fadeProps: fadeProps, hideHour: hideHour, hideMinute: hideMinute, hideSecond: hideSecond, hourStep: hourStep, minuteStep: minuteStep, onChange: onTimePanelChange, open: openTimePanel, popperProps: popperPropsTime, secondStep: secondStep, value: timeValue })] }));
119
204
  });
120
205
 
121
206
  export { DateTimePicker as default };
@@ -1,2 +1,2 @@
1
- export { DateTimePickerPanelProps, default as DateTimePickerPanel, } from './DateTimePickerPanel';
2
- export { DateTimePickerProps, default } from './DateTimePicker';
1
+ export type { DateTimePickerProps } from './DateTimePicker';
2
+ export { default } from './DateTimePicker';
@@ -1,2 +1 @@
1
- export { default as DateTimePickerPanel } from './DateTimePickerPanel.js';
2
1
  export { default } from './DateTimePicker.js';
package/Drawer/Drawer.js CHANGED
@@ -5,14 +5,14 @@ import SlideFadeOverlay from '../_internal/SlideFadeOverlay/SlideFadeOverlay.js'
5
5
  import cx from 'clsx';
6
6
 
7
7
  const Drawer = forwardRef((props, ref) => {
8
- const { className, children, container, disableCloseOnBackdropClick = false, disableCloseOnEscapeKeyDown = false, disablePortal, hideBackdrop, invisibleBackdrop, onBackdropClick, onClose, open, placement = 'left', ...rest } = props;
8
+ const { className, children, container, disableCloseOnBackdropClick = false, disableCloseOnEscapeKeyDown = false, disablePortal, onBackdropClick, onClose, open, placement = 'left', ...rest } = props;
9
9
  const slideFadeDirection = useMemo(() => ({
10
10
  top: 'down',
11
11
  left: 'right',
12
12
  right: 'left',
13
13
  bottom: 'up',
14
14
  }), []);
15
- return (jsx(SlideFadeOverlay, { className: drawerClasses.overlay, container: container, direction: slideFadeDirection[placement], disableCloseOnBackdropClick: disableCloseOnBackdropClick, disableCloseOnEscapeKeyDown: disableCloseOnEscapeKeyDown, disablePortal: disablePortal, hideBackdrop: hideBackdrop, invisibleBackdrop: invisibleBackdrop, onBackdropClick: onBackdropClick, onClose: onClose, open: open, ref: ref, children: jsx("div", { ...rest, className: cx(drawerClasses.host, drawerClasses[placement], className), children: children }) }));
15
+ return (jsx(SlideFadeOverlay, { className: drawerClasses.overlay, container: container, direction: slideFadeDirection[placement], disableCloseOnBackdropClick: disableCloseOnBackdropClick, disableCloseOnEscapeKeyDown: disableCloseOnEscapeKeyDown, disablePortal: disablePortal, onBackdropClick: onBackdropClick, onClose: onClose, open: open, ref: ref, children: jsx("div", { ...rest, className: cx(drawerClasses.host, drawerClasses[placement], className), children: children }) }));
16
16
  });
17
17
 
18
18
  export { Drawer as default };
package/Drawer/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export type { DrawerPlacement } from '@mezzanine-ui/core/drawer';
2
- export { DrawerProps, default } from './Drawer';
2
+ export type { DrawerProps } from './Drawer';
3
+ export { default } from './Drawer';
@@ -1,29 +1,19 @@
1
1
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef, useRef } from 'react';
3
+ import { size } from '@floating-ui/react-dom';
3
4
  import { useClickAway } from '../hooks/useClickAway.js';
4
5
  import { useComposeRefs } from '../hooks/useComposeRefs.js';
5
6
  import Popper from '../Popper/Popper.js';
6
7
 
7
- const popperOptions = {
8
- modifiers: [
9
- {
10
- name: 'sameWidth',
11
- enabled: true,
12
- phase: 'beforeWrite',
13
- requires: ['computeStyles'],
14
- fn: ({ state }) => {
15
- const reassignState = state;
16
- reassignState.styles.popper.width = 'auto';
17
- reassignState.styles.popper.minWidth = `${state.rects.reference.width}px`;
18
- },
19
- effect: ({ state }) => {
20
- const reassignState = state;
21
- reassignState.elements.popper.style.width = 'auto';
22
- reassignState.elements.popper.style.minWidth = `${state.elements.reference.getBoundingClientRect().width}px`;
23
- },
24
- },
25
- ],
26
- };
8
+ // Middleware to make the dropdown menu have the same width as the reference element
9
+ const sameWidthMiddleware = size({
10
+ apply({ rects, elements }) {
11
+ Object.assign(elements.floating.style, {
12
+ width: 'auto',
13
+ minWidth: `${rects.reference.width}px`,
14
+ });
15
+ },
16
+ });
27
17
  const Dropdown = forwardRef(function Dropdown(props, ref) {
28
18
  var _a;
29
19
  const { children, disableClickAway = false, menu, onClose, popperProps, ...rest } = props;
@@ -31,7 +21,7 @@ const Dropdown = forwardRef(function Dropdown(props, ref) {
31
21
  const popperRef = useRef(null);
32
22
  const composedRef = useComposeRefs([ref, popperRef]);
33
23
  const open = popperProps === null || popperProps === void 0 ? void 0 : popperProps.open;
34
- const modifiers = ((_a = popperProps === null || popperProps === void 0 ? void 0 : popperProps.options) === null || _a === void 0 ? void 0 : _a.modifiers) || [];
24
+ const middleware = ((_a = popperProps === null || popperProps === void 0 ? void 0 : popperProps.options) === null || _a === void 0 ? void 0 : _a.middleware) || [];
35
25
  useClickAway(() => {
36
26
  if (!open || disableClickAway || !onClose) {
37
27
  return;
@@ -45,7 +35,7 @@ const Dropdown = forwardRef(function Dropdown(props, ref) {
45
35
  return (jsxs(Fragment, { children: [children(anchor), jsx(Popper, { ...popperProps, ref: composedRef, ...rest, anchor: anchor, options: {
46
36
  placement: 'top-start',
47
37
  ...popperProps === null || popperProps === void 0 ? void 0 : popperProps.options,
48
- modifiers: [...(popperOptions.modifiers || []), ...modifiers],
38
+ middleware: [sameWidthMiddleware, ...middleware],
49
39
  }, children: menu })] }));
50
40
  });
51
41
 
@@ -1 +1,2 @@
1
- export { DropdownProps, default } from './Dropdown';
1
+ export type { DropdownProps } from './Dropdown';
2
+ export { default } from './Dropdown';
package/Empty/Empty.d.ts CHANGED
@@ -1,18 +1,3 @@
1
- import { ReactNode } from 'react';
2
- import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
3
- export interface EmptyProps extends Omit<NativeElementPropsWithoutKeyAndRef<'div'>, 'title'> {
4
- /**
5
- * if true, the empty component will be 100% height of it's parent
6
- */
7
- fullHeight?: boolean;
8
- /**
9
- * Override default icon.
10
- */
11
- image?: ReactNode;
12
- /**
13
- * Optionally given a title. If not required, simply use react children to display description.
14
- */
15
- title?: ReactNode;
16
- }
1
+ import { EmptyProps } from '.';
17
2
  declare const Empty: import("react").ForwardRefExoticComponent<EmptyProps & import("react").RefAttributes<HTMLDivElement>>;
18
3
  export default Empty;
package/Empty/Empty.js CHANGED
@@ -1,15 +1,44 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { forwardRef } from 'react';
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { forwardRef, isValidElement, cloneElement } from 'react';
3
3
  import { emptyClasses } from '@mezzanine-ui/core/empty';
4
- import { FolderOpenIcon } from '@mezzanine-ui/icons';
4
+ import { SystemIcon, FolderOpenIcon, NotificationIcon, BoxIcon } from '@mezzanine-ui/icons';
5
+ import Button from '../Button/Button.js';
6
+ import ButtonGroup from '../Button/ButtonGroup.js';
7
+ import { EmptyMainInitialDataIcon } from './icons/EmptyMainInitialDataIcon.js';
8
+ import { EmptyMainResultIcon } from './icons/EmptyMainResultIcon.js';
9
+ import { EmptyMainSystemIcon } from './icons/EmptyMainSystemIcon.js';
5
10
  import Icon from '../Icon/Icon.js';
6
11
  import cx from 'clsx';
7
12
 
13
+ const iconMap = {
14
+ custom: null,
15
+ 'initial-data': BoxIcon,
16
+ notification: NotificationIcon,
17
+ result: FolderOpenIcon,
18
+ system: SystemIcon,
19
+ };
20
+ const mainIconMap = {
21
+ custom: null,
22
+ 'initial-data': jsx(EmptyMainInitialDataIcon, { className: emptyClasses.icon }),
23
+ notification: null,
24
+ result: jsx(EmptyMainResultIcon, { className: emptyClasses.icon }),
25
+ system: jsx(EmptyMainSystemIcon, { className: emptyClasses.icon }),
26
+ };
27
+ const renderButtonOrElement = (button, size, variant) => {
28
+ if (!button)
29
+ return null;
30
+ if (isValidElement(button)) {
31
+ return cloneElement(button, { size, variant });
32
+ }
33
+ return jsx(Button, { ...button, size: size, variant: variant });
34
+ };
8
35
  const Empty = forwardRef(function Empty(props, ref) {
9
- const { children, className, fullHeight, image = jsx(Icon, { className: emptyClasses.icon, icon: FolderOpenIcon }), title, ...rest } = props;
10
- return (jsxs("div", { ref: ref, ...rest, className: cx(emptyClasses.host, {
11
- [emptyClasses.fullHeight]: fullHeight,
12
- }, className), children: [image, title && jsx("div", { className: emptyClasses.title, children: title }), children && jsx("div", { className: emptyClasses.description, children: children })] }));
36
+ const { actions, className, description, pictogram, size = 'main', title, type = 'initial-data', ...rest } = props;
37
+ const icon = (size === 'main'
38
+ ? mainIconMap[type]
39
+ : iconMap[type] && (jsx(Icon, { className: emptyClasses.icon, icon: iconMap[type] }))) || null;
40
+ const fragmentButtons = actions && 'secondaryButton' in actions ? (jsxs(Fragment, { children: [renderButtonOrElement(actions.secondaryButton, size, 'base-secondary'), renderButtonOrElement(actions.primaryButton, size, 'base-primary')] })) : (renderButtonOrElement(actions, size, 'base-secondary'));
41
+ return (jsx("div", { ...rest, className: cx(emptyClasses.host, emptyClasses.size(size), className), ref: ref, children: jsxs("div", { className: emptyClasses.container, children: [pictogram ? jsx("div", { className: emptyClasses.icon, children: pictogram }) : icon, jsx("p", { className: emptyClasses.title, children: title }), description && jsx("p", { className: emptyClasses.description, children: description }), actions && size !== 'minor' && (jsx(ButtonGroup, { className: emptyClasses.actions, children: fragmentButtons }))] }) }));
13
42
  });
14
43
 
15
44
  export { Empty as default };
@@ -0,0 +1,4 @@
1
+ export interface EmptyMainInitialDataIconProps extends React.SVGProps<SVGSVGElement> {
2
+ size?: number;
3
+ }
4
+ export declare const EmptyMainInitialDataIcon: import("react").ForwardRefExoticComponent<Omit<EmptyMainInitialDataIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
@@ -0,0 +1,9 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
+
4
+ const EmptyMainInitialDataIcon = forwardRef(function EmptyInitialDataIcon(props, ref) {
5
+ const { className, size = 64, ...rest } = props;
6
+ return (jsxs("svg", { ...rest, className: className, fill: "none", height: size, ref: ref, viewBox: "0 0 64 64", width: size, xmlns: "http://www.w3.org/2000/svg", children: [jsxs("defs", { children: [jsxs("linearGradient", { gradientUnits: "userSpaceOnUse", id: "paint0_linear_15033_10920", x1: "27.52", x2: "5.12", y1: "11.7333", y2: "52.6933", children: [jsx("stop", { stopColor: "#E5E7EB" }), jsx("stop", { offset: "1", stopColor: "#9DA4AE" })] }), jsxs("linearGradient", { gradientUnits: "userSpaceOnUse", id: "paint1_linear_15033_10920", x1: "43.2", x2: "38.2673", y1: "11.7333", y2: "52.0904", children: [jsx("stop", { stopColor: "#E5E7EB" }), jsx("stop", { offset: "1", stopColor: "#9DA4AE" })] }), jsx("clipPath", { id: "clip0_15033_10920", children: jsx("rect", { fill: "white", height: "64", width: "64" }) })] }), jsxs("g", { clipPath: "url(#clip0_15033_10920)", children: [jsx("path", { d: "M5.12 11.7333H27.52V52.6933H6.11999C5.56771 52.6933 5.12 52.2456 5.12 51.6933V11.7333Z", fill: "url(#paint0_linear_15033_10920)" }), jsx("path", { d: "M5.10416 11.7333H27.4282L22.3184 27.5737C22.1852 27.9867 21.8007 28.2667 21.3667 28.2667H1.14414C0.465656 28.2667 -0.0158672 27.6054 0.192428 26.9597L5.10416 11.7333Z", fill: "#E5E7EB" }), jsx("path", { d: "M27.52 11.7333H58.88V51.6933C58.88 52.2456 58.4323 52.6933 57.88 52.6933H27.52V11.7333Z", fill: "url(#paint1_linear_15033_10920)" }), jsx("path", { d: "M27.4282 11.7333H58.8871L63.7988 26.9597C64.0071 27.6054 63.5255 28.2667 62.8471 28.2667H33.4897C33.0557 28.2667 32.6712 27.9867 32.5379 27.5737L27.4282 11.7333Z", fill: "#E5E7EB" })] })] }));
7
+ });
8
+
9
+ export { EmptyMainInitialDataIcon };
@@ -0,0 +1,4 @@
1
+ export interface EmptyMainResultIconProps extends React.SVGProps<SVGSVGElement> {
2
+ size?: number;
3
+ }
4
+ export declare const EmptyMainResultIcon: import("react").ForwardRefExoticComponent<Omit<EmptyMainResultIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
@@ -0,0 +1,9 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
+
4
+ const EmptyMainResultIcon = forwardRef(function EmptyResultIcon(props, ref) {
5
+ const { className, size = 64, ...rest } = props;
6
+ return (jsxs("svg", { ...rest, className: className, fill: "none", height: size, ref: ref, viewBox: "0 0 64 64", width: size, xmlns: "http://www.w3.org/2000/svg", children: [jsxs("defs", { children: [jsxs("linearGradient", { gradientUnits: "userSpaceOnUse", id: "paint0_linear_14988_13929", x1: "28.9684", x2: "24.6011", y1: "-4.50146", y2: "54.5206", children: [jsx("stop", { stopColor: "#E5E7EB" }), jsx("stop", { offset: "1", stopColor: "#9DA4AE" })] }), jsxs("linearGradient", { gradientUnits: "userSpaceOnUse", id: "paint1_linear_14988_13929", x1: "32", x2: "30.1462", y1: "23.8542", y2: "64.7656", children: [jsx("stop", { stopColor: "#E5E7EB" }), jsx("stop", { offset: "1", stopColor: "#9DA4AE" })] }), jsx("clipPath", { id: "clip0_14988_13929", children: jsx("rect", { fill: "white", height: "64", width: "64" }) })] }), jsxs("g", { clipPath: "url(#clip0_14988_13929)", children: [jsx("path", { d: "M0 10.0332V53.8437C0 54.396 0.447713 54.8437 0.999998 54.8437L56.9368 54.8437C57.4891 54.8437 57.9368 54.396 57.9368 53.8437V14.8554C57.9368 14.3031 57.4891 13.8554 56.9368 13.8554H30.1099C29.8426 13.8554 29.5864 13.7483 29.3985 13.5582L25.2219 9.33041C25.034 9.14024 24.7778 9.0332 24.5105 9.0332H1C0.447715 9.0332 0 9.48092 0 10.0332Z", fill: "url(#paint0_linear_14988_13929)" }), jsx("path", { d: "M5.90507 24.6622C5.9969 24.1929 6.40821 23.8542 6.88646 23.8542H62.7854C63.4147 23.8542 63.8876 24.4286 63.7668 25.0463L58.0949 54.0357C58.0031 54.5051 57.5918 54.8437 57.1135 54.8437H1.21461C0.58527 54.8437 0.112379 54.2693 0.23322 53.6517L5.90507 24.6622Z", fill: "url(#paint1_linear_14988_13929)" })] })] }));
7
+ });
8
+
9
+ export { EmptyMainResultIcon };
@@ -0,0 +1,4 @@
1
+ export interface EmptyMainSystemIconProps extends React.SVGProps<SVGSVGElement> {
2
+ size?: number;
3
+ }
4
+ export declare const EmptyMainSystemIcon: import("react").ForwardRefExoticComponent<Omit<EmptyMainSystemIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
@@ -0,0 +1,9 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
+
4
+ const EmptyMainSystemIcon = forwardRef(function EmptySystemIcon(props, ref) {
5
+ const { className, size = 64, ...rest } = props;
6
+ return (jsxs("svg", { ...rest, className: className, fill: "none", height: size, ref: ref, viewBox: "0 0 64 64", width: size, xmlns: "http://www.w3.org/2000/svg", children: [jsxs("defs", { children: [jsxs("linearGradient", { gradientUnits: "userSpaceOnUse", id: "paint0_linear_15103_25151", x1: "20.9997", x2: "17.2887", y1: "22.9988", y2: "62.6527", children: [jsx("stop", { stopColor: "#E5E7EB" }), jsx("stop", { offset: "1", stopColor: "#9DA4AE" })] }), jsxs("linearGradient", { gradientUnits: "userSpaceOnUse", id: "paint1_linear_15103_25151", x1: "46.9988", x2: "44.0018", y1: "0.845703", y2: "32.8715", children: [jsx("stop", { stopColor: "#E5E7EB" }), jsx("stop", { offset: "1", stopColor: "#9DA4AE" })] })] }), jsx("path", { d: "M28.5453 24.2114C29.025 24.34 29.3377 24.8011 29.2796 25.2944L28.9089 28.4387C28.8618 28.8389 29.061 29.2259 29.4033 29.4385C30.3233 30.01 31.1807 30.6725 31.9633 31.4135C32.237 31.6727 32.628 31.7729 32.9875 31.6594L36.1757 30.6527C36.623 30.5114 37.1083 30.7001 37.3429 31.1063L39.6193 35.0496C39.8676 35.4796 39.7627 36.0268 39.3729 36.3345L36.8886 38.2954C36.5722 38.5452 36.4395 38.9599 36.5314 39.3524C36.8056 40.5238 36.9512 41.7448 36.9512 42.9998C36.9512 43.1076 37.0086 43.2069 37.1042 43.2566L40.4602 45.0005C40.8765 45.2168 41.0864 45.6935 40.965 46.1467L39.7864 50.545C39.6578 51.0248 39.1967 51.3375 38.7034 51.2793L35.5592 50.9087C35.1589 50.8615 34.7719 51.0608 34.5593 51.4032C33.9876 52.3238 33.3249 53.1817 32.5836 53.9647C32.3243 54.2386 32.224 54.6298 32.3378 54.9894L33.3456 58.1761C33.4871 58.6236 33.2985 59.1092 32.8921 59.3438L28.9482 61.6202C28.5181 61.8684 27.9711 61.7634 27.6634 61.3737L25.7024 58.8893C25.4526 58.5729 25.0379 58.4402 24.6454 58.5322C23.4743 58.8066 22.2536 58.9528 20.999 58.9529C20.8906 58.9529 20.7908 59.0106 20.7408 59.1068L18.9983 62.4608C18.7819 62.8771 18.3053 63.0871 17.852 62.9657L13.4535 61.7871C12.9739 61.6585 12.6612 61.1975 12.7192 60.7043L13.0893 57.5587C13.1364 57.1586 12.9372 56.7717 12.5949 56.5592C11.6746 55.9877 10.8168 55.3254 10.034 54.5843C9.76014 54.325 9.36898 54.2247 9.00937 54.3384L5.82349 55.3455C5.37613 55.487 4.8906 55.2983 4.65603 54.892L2.37963 50.9489C2.13136 50.5188 2.23626 49.9718 2.62599 49.6641L5.10963 47.7031C5.42595 47.4533 5.55855 47.0387 5.46669 46.6463C5.19255 45.4751 5.04691 44.2544 5.04688 42.9998C5.04688 42.8907 4.98784 42.7903 4.89111 42.7401L1.53887 40.998C1.12256 40.7817 0.912625 40.305 1.03405 39.8519L2.21267 35.4533C2.34121 34.9736 2.80227 34.661 3.29546 34.719L6.44003 35.089C6.84019 35.1361 7.22705 34.9369 7.43962 34.5946C8.01115 33.6743 8.67359 32.8164 9.41466 32.0336C9.67386 31.7598 9.77413 31.3688 9.66058 31.0093L8.65395 27.8221C8.51268 27.3748 8.70131 26.8894 9.10755 26.6549L13.0507 24.3785C13.4808 24.1302 14.028 24.2351 14.3357 24.625L16.2957 27.1082C16.5454 27.4246 16.9601 27.5573 17.3527 27.4655C18.5238 27.1916 19.7445 27.0467 20.999 27.0466C21.1074 27.0466 21.2073 26.9879 21.2573 26.8917L23.0007 23.5375C23.2171 23.1213 23.6937 22.9114 24.1468 23.0328L28.5453 24.2114ZM20.999 35.8386C17.0447 35.8389 13.839 39.0452 13.8389 42.9998C13.8391 46.9542 17.0448 50.1596 20.999 50.1599C24.9533 50.1597 28.1599 46.9542 28.1602 42.9998C28.16 39.0452 24.9534 35.8389 20.999 35.8386Z", fill: "url(#paint0_linear_15103_25151)" }), jsx("path", { d: "M51.5436 1.43766C52.0327 1.52392 52.3844 1.95611 52.3695 2.45257L52.3023 4.68433C52.2901 5.0873 52.5229 5.45489 52.8806 5.64086C53.5763 6.00255 54.234 6.42699 54.8475 6.90552C55.1449 7.13744 55.5428 7.20387 55.8912 7.05945L58.1098 6.13956C58.5431 5.95991 59.043 6.10557 59.312 6.48982L61.2159 9.20937C61.5007 9.61623 61.4437 10.1705 61.0822 10.5109L59.4567 12.0414C59.163 12.318 59.0677 12.7429 59.1898 13.1274C59.4235 13.863 59.5926 14.6272 59.69 15.4137C59.7364 15.7884 59.9711 16.1173 60.32 16.2615L62.534 17.1766C62.9676 17.3558 63.2184 17.8124 63.1369 18.2744L62.5604 21.5436C62.4741 22.0327 62.0419 22.3844 61.5455 22.3695L59.3127 22.3023C58.9097 22.2901 58.5422 22.5229 58.3562 22.8806C57.9946 23.5762 57.5703 24.2339 57.0918 24.8474C56.8597 25.1448 56.7933 25.5429 56.9379 25.8914L57.8582 28.1097C58.038 28.5431 57.8924 29.0431 57.5081 29.3122L54.7885 31.216C54.3817 31.5007 53.8276 31.4439 53.4871 31.0824L51.9556 29.4564C51.6791 29.1628 51.2543 29.0676 50.8699 29.1896C50.1346 29.423 49.3706 29.5918 48.5844 29.6891C48.2097 29.7355 47.8807 29.9701 47.7365 30.3191L46.8214 32.5339C46.6422 32.9676 46.1856 33.2183 45.7235 33.1369L42.4542 32.5603C41.9652 32.4741 41.6135 32.0421 41.6283 31.5457L41.695 29.3125C41.707 28.9097 41.4743 28.5422 41.1166 28.3564C40.4207 27.9947 39.7626 27.5704 39.1489 27.0918C38.8513 26.8598 38.4531 26.7934 38.1047 26.938L35.8884 27.858C35.455 28.0379 34.9549 27.8923 34.6858 27.5079L32.782 24.7884C32.4973 24.3817 32.5541 23.8276 32.9154 23.4871L34.5408 21.9556C34.8343 21.6791 34.9295 21.2543 34.8074 20.87C34.5738 20.1346 34.4045 19.3706 34.3071 18.5843C34.2606 18.2096 34.026 17.8807 33.6771 17.7365L31.4639 16.8215C31.0304 16.6423 30.7797 16.1857 30.8612 15.7237L31.4377 12.4542C31.5239 11.9652 31.956 11.6135 32.4523 11.6283L34.6846 11.695C35.0874 11.707 35.4549 11.4743 35.6407 11.1166C36.0024 10.4207 36.4267 9.76253 36.9054 9.14874C37.1373 8.85127 37.2038 8.45317 37.0592 8.10474L36.1397 5.88822C35.96 5.45493 36.1056 4.95495 36.4898 4.68589L39.2086 2.78214C39.6154 2.49733 40.1695 2.55412 40.51 2.91551L42.0414 4.54078C42.318 4.8343 42.7427 4.92944 43.1271 4.80734C43.8625 4.57374 44.6267 4.40454 45.413 4.30706C45.7876 4.26062 46.1164 4.02615 46.2607 3.67739L47.1764 1.46366C47.3558 1.03023 47.8122 0.779666 48.2742 0.861125L51.5436 1.43766ZM46.999 11.2578C43.8288 11.2578 41.258 13.8288 41.2578 16.999C41.258 20.1693 43.8287 22.7392 46.999 22.7393C50.169 22.7389 52.7391 20.1691 52.7393 16.999C52.739 13.829 50.169 11.2582 46.999 11.2578Z", fill: "url(#paint1_linear_15103_25151)" })] }));
7
+ });
8
+
9
+ export { EmptyMainSystemIcon };
package/Empty/index.d.ts CHANGED
@@ -1 +1,2 @@
1
- export { EmptyProps, default } from './Empty';
1
+ export type { EmptyProps } from './typings';
2
+ export { default } from './Empty';
@@ -0,0 +1,52 @@
1
+ import { ReactNode } from 'react';
2
+ import { ButtonGroupChild, ButtonProps } from '../Button';
3
+ import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
4
+ export interface BaseEmptyProps {
5
+ /**
6
+ * The title text for the empty state.
7
+ * This is the main heading that describes the state.
8
+ */
9
+ title: string;
10
+ }
11
+ export interface PresetPictogramEmptyProps {
12
+ /**
13
+ * The type of empty state, which determines the icon and color theme.
14
+ * @default 'initial-data'
15
+ */
16
+ type?: 'initial-data' | 'result' | 'system';
17
+ /**
18
+ * Custom pictogram element.
19
+ */
20
+ pictogram?: ReactNode;
21
+ }
22
+ export interface CustomPictogramEmptyProps {
23
+ type?: 'notification' | 'custom';
24
+ pictogram?: ReactNode;
25
+ }
26
+ export interface MainOrSubEmptyProps {
27
+ /**
28
+ * Action buttons configuration for primary and secondary actions.
29
+ * Renders buttons in the order: secondary (left or only one), primary (right).
30
+ */
31
+ actions?: {
32
+ primaryButton?: ButtonProps | ButtonGroupChild;
33
+ secondaryButton: ButtonProps | ButtonGroupChild;
34
+ } | ButtonProps | ButtonGroupChild;
35
+ /**
36
+ * Optional description text displayed below the title.
37
+ * Provides additional context or details about the empty state.
38
+ */
39
+ description?: string;
40
+ /**
41
+ * The size variant of the empty state.
42
+ * Controls typography, spacing, and overall dimensions.
43
+ * @default 'main'
44
+ */
45
+ size?: 'main' | 'sub';
46
+ }
47
+ export interface MinorEmptyProps {
48
+ actions?: never;
49
+ description?: never;
50
+ size: 'minor';
51
+ }
52
+ export type EmptyProps = (MainOrSubEmptyProps | MinorEmptyProps) & (CustomPictogramEmptyProps | PresetPictogramEmptyProps) & BaseEmptyProps & Omit<NativeElementPropsWithoutKeyAndRef<'div'>, 'title'>;
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { createContext } from 'react';
2
3
 
3
4
  const FormControlContext = createContext(undefined);