@mezzanine-ui/react 0.15.3 → 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 (490) hide show
  1. package/Accordion/Accordion.js +1 -2
  2. package/Accordion/AccordionControlContext.js +1 -0
  3. package/Accordion/AccordionDetails.js +2 -2
  4. package/Accordion/AccordionSummary.d.ts +1 -1
  5. package/Accordion/AccordionSummary.js +11 -12
  6. package/Accordion/index.d.ts +6 -3
  7. package/Alert/Alert.js +1 -2
  8. package/Alert/index.d.ts +3 -2
  9. package/AlertBanner/AlertBanner.d.ts +93 -0
  10. package/AlertBanner/AlertBanner.js +154 -0
  11. package/AlertBanner/index.d.ts +2 -0
  12. package/AlertBanner/index.js +1 -0
  13. package/Anchor/Anchor.js +2 -3
  14. package/Anchor/index.d.ts +2 -1
  15. package/AppBar/AppBar.js +1 -2
  16. package/AppBar/AppBarBrand.js +1 -2
  17. package/AppBar/AppBarMain.js +1 -2
  18. package/AppBar/AppBarSupport.js +1 -2
  19. package/AppBar/index.d.ts +8 -4
  20. package/{Overlay/Overlay.d.ts → Backdrop/Backdrop.d.ts} +12 -16
  21. package/Backdrop/Backdrop.js +40 -0
  22. package/Backdrop/index.d.ts +2 -0
  23. package/Backdrop/index.js +1 -0
  24. package/Badge/Badge.d.ts +20 -14
  25. package/Badge/Badge.js +15 -18
  26. package/Badge/BadgeContainer.d.ts +1 -1
  27. package/Badge/BadgeContainer.js +2 -3
  28. package/Badge/index.d.ts +3 -2
  29. package/Badge/typings.d.ts +48 -0
  30. package/Breadcrumb/Breadcrumb.d.ts +6 -0
  31. package/Breadcrumb/Breadcrumb.js +25 -0
  32. package/Breadcrumb/BreadcrumbItem.d.ts +4 -0
  33. package/Breadcrumb/BreadcrumbItem.js +45 -0
  34. package/Breadcrumb/index.d.ts +2 -0
  35. package/Breadcrumb/index.js +1 -0
  36. package/Breadcrumb/typings.d.ts +70 -0
  37. package/Button/Button.js +24 -19
  38. package/Button/ButtonGroup.d.ts +6 -28
  39. package/Button/ButtonGroup.js +8 -18
  40. package/Button/index.d.ts +6 -12
  41. package/Button/index.js +2 -3
  42. package/Button/typings.d.ts +11 -26
  43. package/Calendar/Calendar.d.ts +31 -2
  44. package/Calendar/Calendar.js +75 -21
  45. package/Calendar/CalendarCell.d.ts +4 -0
  46. package/Calendar/CalendarCell.js +3 -3
  47. package/Calendar/CalendarConfigProviderDayjs.d.ts +21 -0
  48. package/Calendar/CalendarConfigProviderDayjs.js +15 -0
  49. package/Calendar/CalendarConfigProviderLuxon.d.ts +21 -0
  50. package/Calendar/CalendarConfigProviderLuxon.js +15 -0
  51. package/Calendar/CalendarConfigProviderMoment.d.ts +21 -0
  52. package/Calendar/CalendarConfigProviderMoment.js +15 -0
  53. package/Calendar/CalendarContext.d.ts +14 -7
  54. package/Calendar/CalendarContext.js +8 -13
  55. package/Calendar/CalendarControls.d.ts +16 -0
  56. package/Calendar/CalendarControls.js +3 -7
  57. package/Calendar/CalendarDayOfWeek.js +4 -3
  58. package/Calendar/CalendarDays.d.ts +9 -1
  59. package/Calendar/CalendarDays.js +63 -38
  60. package/Calendar/CalendarFooterActions.d.ts +13 -0
  61. package/Calendar/CalendarFooterActions.js +14 -0
  62. package/Calendar/CalendarFooterControl.d.ts +16 -0
  63. package/Calendar/CalendarFooterControl.js +14 -0
  64. package/Calendar/CalendarHalfYears.d.ts +39 -0
  65. package/Calendar/CalendarHalfYears.js +62 -0
  66. package/Calendar/CalendarMonths.js +17 -5
  67. package/Calendar/CalendarQuarters.d.ts +37 -0
  68. package/Calendar/CalendarQuarters.js +64 -0
  69. package/Calendar/CalendarQuickSelect.d.ts +21 -0
  70. package/Calendar/CalendarQuickSelect.js +15 -0
  71. package/Calendar/CalendarWeeks.d.ts +1 -1
  72. package/Calendar/CalendarWeeks.js +89 -44
  73. package/Calendar/CalendarYears.js +14 -4
  74. package/Calendar/RangeCalendar.d.ts +59 -0
  75. package/Calendar/RangeCalendar.js +232 -0
  76. package/Calendar/index.d.ts +33 -10
  77. package/Calendar/index.js +7 -0
  78. package/Calendar/useCalendarControlModifiers.d.ts +4 -4
  79. package/Calendar/useCalendarControlModifiers.js +40 -8
  80. package/Calendar/useCalendarControls.d.ts +2 -0
  81. package/Calendar/useCalendarControls.js +19 -2
  82. package/Calendar/useCalendarModeStack.js +1 -0
  83. package/Calendar/useRangeCalendarControls.d.ts +18 -0
  84. package/Calendar/useRangeCalendarControls.js +115 -0
  85. package/Card/Card.js +1 -2
  86. package/Card/CardActions.js +2 -3
  87. package/Card/index.d.ts +4 -2
  88. package/Checkbox/CheckAll.d.ts +16 -6
  89. package/Checkbox/CheckAll.js +41 -28
  90. package/Checkbox/Checkbox.d.ts +100 -22
  91. package/Checkbox/Checkbox.js +74 -18
  92. package/Checkbox/CheckboxGroup.d.ts +100 -18
  93. package/Checkbox/CheckboxGroup.js +169 -25
  94. package/Checkbox/CheckboxGroupContext.d.ts +0 -2
  95. package/Checkbox/CheckboxGroupContext.js +1 -0
  96. package/Checkbox/index.d.ts +16 -4
  97. package/Checkbox/index.js +6 -2
  98. package/Checkbox/typings.d.ts +37 -0
  99. package/ClearActions/ClearActions.d.ts +41 -0
  100. package/ClearActions/ClearActions.js +23 -0
  101. package/ClearActions/index.d.ts +3 -0
  102. package/ClearActions/index.js +5 -0
  103. package/ConfirmActions/ConfirmActions.d.ts +2 -1
  104. package/ConfirmActions/ConfirmActions.js +1 -2
  105. package/ConfirmActions/index.d.ts +2 -1
  106. package/DatePicker/DatePicker.d.ts +12 -1
  107. package/DatePicker/DatePicker.js +42 -11
  108. package/DatePicker/DatePickerCalendar.d.ts +3 -6
  109. package/DatePicker/DatePickerCalendar.js +38 -39
  110. package/DatePicker/index.d.ts +4 -2
  111. package/DateRangePicker/DateRangePicker.d.ts +18 -2
  112. package/DateRangePicker/DateRangePicker.js +144 -102
  113. package/DateRangePicker/DateRangePickerCalendar.d.ts +13 -9
  114. package/DateRangePicker/DateRangePickerCalendar.js +8 -96
  115. package/DateRangePicker/index.d.ts +6 -3
  116. package/DateRangePicker/useDateRangeCalendarControls.js +11 -6
  117. package/DateRangePicker/useDateRangePickerValue.d.ts +38 -15
  118. package/DateRangePicker/useDateRangePickerValue.js +142 -63
  119. package/DateTimePicker/DateTimePicker.d.ts +31 -10
  120. package/DateTimePicker/DateTimePicker.js +180 -96
  121. package/DateTimePicker/index.d.ts +2 -2
  122. package/DateTimePicker/index.js +0 -1
  123. package/Drawer/Drawer.js +3 -4
  124. package/Drawer/index.d.ts +2 -1
  125. package/Dropdown/Dropdown.js +13 -24
  126. package/Dropdown/index.d.ts +2 -1
  127. package/Empty/Empty.d.ts +1 -16
  128. package/Empty/Empty.js +37 -9
  129. package/Empty/icons/EmptyMainInitialDataIcon.d.ts +4 -0
  130. package/Empty/icons/EmptyMainInitialDataIcon.js +9 -0
  131. package/Empty/icons/EmptyMainResultIcon.d.ts +4 -0
  132. package/Empty/icons/EmptyMainResultIcon.js +9 -0
  133. package/Empty/icons/EmptyMainSystemIcon.d.ts +4 -0
  134. package/Empty/icons/EmptyMainSystemIcon.js +9 -0
  135. package/Empty/index.d.ts +2 -1
  136. package/Empty/typings.d.ts +52 -0
  137. package/Form/FormControlContext.js +1 -0
  138. package/Form/FormField.js +1 -2
  139. package/Form/FormHintText.d.ts +18 -0
  140. package/Form/FormHintText.js +17 -0
  141. package/Form/FormLabel.js +2 -2
  142. package/Form/index.d.ts +9 -5
  143. package/Form/index.js +1 -1
  144. package/Form/useAutoCompleteValueControl.js +2 -0
  145. package/Form/useCheckboxControlValue.js +0 -1
  146. package/Form/useInputWithClearControlValue.d.ts +1 -1
  147. package/Form/useInputWithTagsModeValue.d.ts +1 -1
  148. package/Form/useSelectValueControl.js +2 -0
  149. package/Icon/Icon.js +1 -2
  150. package/InlineMessage/InlineMessage.d.ts +33 -0
  151. package/InlineMessage/InlineMessage.js +42 -0
  152. package/InlineMessage/InlineMessageGroup.d.ts +24 -0
  153. package/InlineMessage/InlineMessageGroup.js +21 -0
  154. package/InlineMessage/index.d.ts +4 -0
  155. package/InlineMessage/index.js +2 -0
  156. package/Input/ActionButton/ActionButton.d.ts +26 -0
  157. package/Input/ActionButton/ActionButton.js +14 -0
  158. package/Input/ActionButton/index.d.ts +2 -0
  159. package/Input/ActionButton/index.js +1 -0
  160. package/Input/Input.d.ts +147 -42
  161. package/Input/Input.js +196 -31
  162. package/Input/PasswordStrengthIndicator/PasswordStrengthIndicator.d.ts +31 -0
  163. package/Input/PasswordStrengthIndicator/PasswordStrengthIndicator.js +18 -0
  164. package/Input/PasswordStrengthIndicator/index.d.ts +2 -0
  165. package/Input/PasswordStrengthIndicator/index.js +1 -0
  166. package/Input/SelectButton/SelectButton.d.ts +20 -0
  167. package/Input/SelectButton/SelectButton.js +21 -0
  168. package/Input/SelectButton/index.d.ts +2 -0
  169. package/Input/SelectButton/index.js +1 -0
  170. package/Input/SpinnerButton/SpinnerButton.d.ts +19 -0
  171. package/Input/SpinnerButton/SpinnerButton.js +14 -0
  172. package/Input/SpinnerButton/index.d.ts +2 -0
  173. package/Input/SpinnerButton/index.js +1 -0
  174. package/Input/index.d.ts +3 -2
  175. package/Menu/Menu.js +2 -2
  176. package/Menu/MenuDivider.js +1 -2
  177. package/Menu/MenuItem.js +1 -2
  178. package/Menu/MenuItemGroup.js +1 -2
  179. package/Menu/index.d.ts +8 -4
  180. package/Message/Message.d.ts +6 -4
  181. package/Message/Message.js +87 -11
  182. package/Message/MessageTimerController.d.ts +14 -0
  183. package/Message/MessageTimerController.js +27 -0
  184. package/Message/index.d.ts +3 -2
  185. package/Modal/Modal.js +3 -4
  186. package/Modal/ModalActions.js +2 -2
  187. package/Modal/ModalBody.js +1 -2
  188. package/Modal/ModalControl.js +1 -0
  189. package/Modal/ModalFooter.js +1 -2
  190. package/Modal/ModalHeader.js +3 -3
  191. package/Modal/index.d.ts +10 -5
  192. package/Modal/useModalContainer.d.ts +1 -1
  193. package/Modal/useModalContainer.js +2 -4
  194. package/Navigation/Navigation.js +38 -36
  195. package/Navigation/NavigationContext.js +1 -0
  196. package/Navigation/NavigationItem.js +2 -2
  197. package/Navigation/NavigationSubMenu.js +17 -28
  198. package/Navigation/index.d.ts +8 -4
  199. package/Notification/Notification.js +1 -3
  200. package/Notification/index.d.ts +3 -2
  201. package/Notifier/NotifierManager.d.ts +16 -3
  202. package/Notifier/NotifierManager.js +60 -18
  203. package/Notifier/createNotifier.d.ts +9 -0
  204. package/Notifier/createNotifier.js +3 -2
  205. package/Notifier/typings.d.ts +3 -1
  206. package/OverflowTooltip/OverflowCounterTag.d.ts +12 -0
  207. package/OverflowTooltip/OverflowCounterTag.js +48 -0
  208. package/OverflowTooltip/OverflowTooltip.d.ts +34 -0
  209. package/OverflowTooltip/OverflowTooltip.js +53 -0
  210. package/OverflowTooltip/index.d.ts +2 -0
  211. package/OverflowTooltip/index.js +2 -0
  212. package/PageFooter/PageFooter.d.ts +73 -8
  213. package/PageFooter/PageFooter.js +35 -5
  214. package/PageFooter/index.d.ts +2 -1
  215. package/PageHeader/PageHeader.d.ts +36 -0
  216. package/PageHeader/PageHeader.js +65 -0
  217. package/PageHeader/index.d.ts +2 -0
  218. package/PageHeader/index.js +1 -0
  219. package/PageToolbar/PageToolbar.d.ts +67 -0
  220. package/PageToolbar/PageToolbar.js +114 -0
  221. package/PageToolbar/index.d.ts +2 -0
  222. package/PageToolbar/index.js +1 -0
  223. package/Pagination/Pagination.d.ts +23 -29
  224. package/Pagination/Pagination.js +4 -6
  225. package/Pagination/PaginationItem.d.ts +1 -1
  226. package/Pagination/PaginationItem.js +7 -5
  227. package/Pagination/PaginationJumper.d.ts +7 -9
  228. package/Pagination/PaginationJumper.js +4 -7
  229. package/Pagination/PaginationPageSize.d.ts +8 -11
  230. package/Pagination/PaginationPageSize.js +6 -6
  231. package/Pagination/index.d.ts +8 -4
  232. package/Pagination/usePagination.d.ts +3 -1
  233. package/Pagination/usePagination.js +30 -21
  234. package/Picker/FormattedInput.d.ts +17 -0
  235. package/Picker/FormattedInput.js +74 -0
  236. package/Picker/MaskFormat.d.ts +39 -0
  237. package/Picker/MaskFormat.js +94 -0
  238. package/Picker/PickerTrigger.d.ts +14 -4
  239. package/Picker/PickerTrigger.js +18 -4
  240. package/Picker/PickerTriggerWithSeparator.d.ts +124 -0
  241. package/Picker/PickerTriggerWithSeparator.js +80 -0
  242. package/Picker/RangePickerTrigger.d.ts +57 -6
  243. package/Picker/RangePickerTrigger.js +66 -9
  244. package/Picker/formatUtils.d.ts +34 -0
  245. package/Picker/formatUtils.js +124 -0
  246. package/Picker/index.d.ts +17 -6
  247. package/Picker/index.js +4 -1
  248. package/Picker/useDateInputFormatter.d.ts +52 -0
  249. package/Picker/useDateInputFormatter.js +382 -0
  250. package/Picker/usePickerDocumentEventClose.d.ts +3 -3
  251. package/Picker/usePickerValue.d.ts +2 -3
  252. package/Picker/usePickerValue.js +8 -13
  253. package/Picker/useTabKeyClose.d.ts +1 -1
  254. package/Popconfirm/Popconfirm.js +3 -4
  255. package/Popconfirm/index.d.ts +2 -1
  256. package/Popover/Popover.js +5 -10
  257. package/Popover/index.d.ts +2 -1
  258. package/Popper/Popper.d.ts +15 -10
  259. package/Popper/Popper.js +89 -19
  260. package/Popper/index.d.ts +2 -1
  261. package/Portal/Portal.d.ts +13 -5
  262. package/Portal/Portal.js +26 -12
  263. package/Portal/index.d.ts +4 -1
  264. package/Portal/index.js +1 -0
  265. package/Portal/portalRegistry.d.ts +17 -0
  266. package/Portal/portalRegistry.js +92 -0
  267. package/Progress/Progress.d.ts +23 -30
  268. package/Progress/Progress.js +72 -23
  269. package/Progress/index.d.ts +3 -2
  270. package/Provider/ConfigProvider.d.ts +2 -1
  271. package/Provider/ConfigProvider.js +1 -0
  272. package/Provider/context.js +1 -0
  273. package/Radio/Radio.d.ts +1 -1
  274. package/Radio/Radio.js +3 -3
  275. package/Radio/RadioGroup.d.ts +1 -1
  276. package/Radio/RadioGroup.js +2 -3
  277. package/Radio/RadioGroupContext.js +1 -0
  278. package/Radio/index.d.ts +4 -2
  279. package/ResultState/ResultState.d.ts +52 -0
  280. package/ResultState/ResultState.js +24 -0
  281. package/ResultState/index.d.ts +2 -0
  282. package/ResultState/index.js +1 -0
  283. package/Select/AutoComplete.d.ts +3 -3
  284. package/Select/AutoComplete.js +6 -13
  285. package/Select/Option.js +2 -2
  286. package/Select/Select.d.ts +1 -1
  287. package/Select/Select.js +3 -3
  288. package/Select/SelectControlContext.js +1 -0
  289. package/Select/SelectTrigger.d.ts +1 -87
  290. package/Select/SelectTrigger.js +27 -23
  291. package/Select/SelectTriggerTags.d.ts +1 -1
  292. package/Select/SelectTriggerTags.js +48 -20
  293. package/Select/TreeSelect.d.ts +1 -1
  294. package/Select/TreeSelect.js +3 -3
  295. package/Select/index.d.ts +14 -7
  296. package/Select/typings.d.ts +99 -0
  297. package/Select/useSelectTriggerTags.d.ts +15 -8
  298. package/Select/useSelectTriggerTags.js +79 -43
  299. package/Selection/Selection.d.ts +98 -0
  300. package/Selection/Selection.js +46 -0
  301. package/Selection/index.d.ts +12 -0
  302. package/Selection/index.js +5 -0
  303. package/Skeleton/Skeleton.d.ts +10 -3
  304. package/Skeleton/Skeleton.js +13 -6
  305. package/Skeleton/index.d.ts +2 -1
  306. package/Slider/Slider.d.ts +44 -7
  307. package/Slider/Slider.js +18 -15
  308. package/Slider/index.d.ts +5 -3
  309. package/Slider/useSlider.d.ts +1 -1
  310. package/Slider/useSlider.js +1 -1
  311. package/Spin/Spin.d.ts +39 -0
  312. package/{Loading/Loading.js → Spin/Spin.js} +9 -10
  313. package/Spin/index.d.ts +2 -0
  314. package/Spin/index.js +1 -0
  315. package/Stepper/Step.d.ts +1 -35
  316. package/Stepper/Step.js +44 -10
  317. package/Stepper/Stepper.d.ts +1 -14
  318. package/Stepper/Stepper.js +50 -17
  319. package/Stepper/index.d.ts +5 -2
  320. package/Stepper/index.js +1 -0
  321. package/Stepper/typings.d.ts +77 -0
  322. package/Stepper/useStepDistance.d.ts +10 -0
  323. package/Stepper/useStepDistance.js +81 -0
  324. package/Stepper/useStepper.d.ts +21 -0
  325. package/Stepper/useStepper.js +26 -0
  326. package/Table/Table.d.ts +1 -1
  327. package/Table/Table.js +3 -4
  328. package/Table/TableBody.js +3 -2
  329. package/Table/TableBodyRow.js +1 -0
  330. package/Table/TableCell.js +1 -2
  331. package/Table/TableContext.js +1 -0
  332. package/Table/TableExpandedTable.js +1 -0
  333. package/Table/TableHeader.js +1 -0
  334. package/Table/draggable/useTableDraggable.d.ts +1 -1
  335. package/Table/editable/TableEditRenderWrapper.js +1 -0
  336. package/Table/expandable/TableExpandable.js +1 -1
  337. package/Table/index.d.ts +7 -4
  338. package/Table/pagination/TablePagination.d.ts +1 -1
  339. package/Table/pagination/TablePagination.js +1 -0
  340. package/Table/pagination/useTablePagination.d.ts +1 -1
  341. package/Table/pagination/useTablePagination.js +1 -0
  342. package/Table/refresh/TableRefresh.js +4 -3
  343. package/Table/rowSelection/TableRowSelection.js +3 -2
  344. package/Table/sorting/TableSortingIcon.js +2 -1
  345. package/Table/sorting/useTableSorting.js +1 -0
  346. package/Table/useTableFetchMore.js +1 -1
  347. package/Table/useTableScroll.d.ts +44 -14
  348. package/Table/useTableScroll.js +10 -8
  349. package/Tabs/Tab.js +1 -2
  350. package/Tabs/TabPane.js +2 -2
  351. package/Tabs/Tabs.js +10 -6
  352. package/Tabs/index.d.ts +6 -3
  353. package/Tabs/useTabsOverflow.d.ts +1 -1
  354. package/Tabs/useTabsOverflow.js +4 -3
  355. package/Tag/Tag.d.ts +2 -25
  356. package/Tag/Tag.js +24 -15
  357. package/Tag/TagGroup.d.ts +12 -0
  358. package/Tag/TagGroup.js +41 -0
  359. package/Tag/index.d.ts +2 -1
  360. package/Tag/typings.d.ts +78 -0
  361. package/TextField/TextField.d.ts +78 -20
  362. package/TextField/TextField.js +59 -24
  363. package/TextField/index.d.ts +2 -1
  364. package/Textarea/Textarea.d.ts +19 -51
  365. package/Textarea/Textarea.js +14 -21
  366. package/Textarea/index.d.ts +2 -2
  367. package/TimePanel/TimePanel.d.ts +1 -22
  368. package/TimePanel/TimePanel.js +32 -28
  369. package/TimePanel/TimePanelAction.d.ts +2 -8
  370. package/TimePanel/TimePanelAction.js +3 -4
  371. package/TimePanel/TimePanelColumn.d.ts +0 -13
  372. package/TimePanel/TimePanelColumn.js +10 -13
  373. package/TimePanel/index.d.ts +6 -3
  374. package/TimePicker/TimePicker.d.ts +10 -1
  375. package/TimePicker/TimePicker.js +87 -37
  376. package/TimePicker/TimePickerPanel.d.ts +1 -2
  377. package/TimePicker/TimePickerPanel.js +3 -4
  378. package/TimePicker/index.d.ts +4 -2
  379. package/Toggle/Toggle.d.ts +46 -0
  380. package/Toggle/Toggle.js +29 -0
  381. package/Toggle/index.d.ts +3 -0
  382. package/Toggle/index.js +1 -0
  383. package/Tooltip/Tooltip.d.ts +14 -3
  384. package/Tooltip/Tooltip.js +53 -18
  385. package/Tooltip/index.d.ts +2 -1
  386. package/Tooltip/useDelayMouseEnterLeave.d.ts +1 -2
  387. package/Tooltip/useDelayMouseEnterLeave.js +10 -13
  388. package/Transition/Collapse.d.ts +2 -0
  389. package/Transition/Collapse.js +7 -12
  390. package/Transition/Fade.js +5 -6
  391. package/Transition/Rotate.d.ts +42 -0
  392. package/Transition/Rotate.js +30 -0
  393. package/Transition/Scale.d.ts +13 -0
  394. package/Transition/{Grow.js → Scale.js} +19 -17
  395. package/Transition/Slide.d.ts +7 -0
  396. package/Transition/{Zoom.js → Slide.js} +14 -13
  397. package/Transition/SlideFade.d.ts +3 -0
  398. package/Transition/SlideFade.js +6 -6
  399. package/Transition/Transition.d.ts +3 -3
  400. package/Transition/Translate.d.ts +14 -0
  401. package/Transition/Translate.js +94 -0
  402. package/Transition/index.d.ts +16 -6
  403. package/Transition/index.js +4 -2
  404. package/Transition/useAutoTransitionDuration.d.ts +1 -1
  405. package/Transition/useAutoTransitionDuration.js +3 -3
  406. package/Transition/useSetNodeTransition.js +0 -2
  407. package/Tree/Tree.js +1 -2
  408. package/Tree/TreeNode.js +8 -8
  409. package/Tree/TreeNodeList.js +1 -2
  410. package/Tree/index.d.ts +10 -5
  411. package/Tree/typings.d.ts +2 -2
  412. package/Typography/Typography.d.ts +6 -9
  413. package/Typography/Typography.js +7 -9
  414. package/Typography/index.d.ts +4 -7
  415. package/Upload/Upload.d.ts +175 -0
  416. package/Upload/Upload.js +279 -0
  417. package/Upload/UploadItem.d.ts +82 -0
  418. package/Upload/UploadItem.js +118 -0
  419. package/Upload/UploadPictureCard.d.ts +110 -0
  420. package/Upload/UploadPictureCard.js +101 -0
  421. package/Upload/Uploader.d.ts +161 -0
  422. package/Upload/Uploader.js +120 -0
  423. package/Upload/index.d.ts +8 -6
  424. package/Upload/index.js +4 -5
  425. package/Upload/upload-utils.d.ts +41 -0
  426. package/Upload/upload-utils.js +65 -0
  427. package/_internal/InputCheck/InputCheck.js +1 -2
  428. package/_internal/InputCheck/InputCheckGroup.js +1 -2
  429. package/_internal/InputCheck/index.d.ts +4 -2
  430. package/_internal/InputTriggerPopper/InputTriggerPopper.js +16 -27
  431. package/_internal/InputTriggerPopper/index.d.ts +2 -1
  432. package/_internal/SlideFadeOverlay/SlideFadeOverlay.d.ts +2 -2
  433. package/_internal/SlideFadeOverlay/SlideFadeOverlay.js +5 -29
  434. package/_internal/SlideFadeOverlay/index.d.ts +2 -1
  435. package/_internal/SlideFadeOverlay/useTopStack.js +1 -0
  436. package/dayjs.d.ts +21 -0
  437. package/dayjs.js +2 -0
  438. package/hooks/useClickAway.d.ts +1 -1
  439. package/hooks/useComposeRefs.js +1 -1
  440. package/hooks/useLastCallback.js +3 -1
  441. package/hooks/useScrollLock.d.ts +28 -0
  442. package/hooks/useScrollLock.js +134 -0
  443. package/index.d.ts +126 -58
  444. package/index.js +103 -90
  445. package/luxon.d.ts +21 -0
  446. package/luxon.js +2 -0
  447. package/moment.d.ts +21 -0
  448. package/moment.js +2 -0
  449. package/package.json +16 -20
  450. package/utils/composeRefs.js +0 -1
  451. package/utils/get-css-variable-value.d.ts +1 -0
  452. package/utils/get-css-variable-value.js +9 -0
  453. package/utils/jsx-types.d.ts +1 -1
  454. package/Button/IconButton.d.ts +0 -21
  455. package/Button/IconButton.js +0 -13
  456. package/DateTimePicker/DateTimePickerPanel.d.ts +0 -28
  457. package/DateTimePicker/DateTimePickerPanel.js +0 -50
  458. package/Form/FormMessage.d.ts +0 -7
  459. package/Form/FormMessage.js +0 -19
  460. package/Form/useInputWithTagsModeValue.js +0 -86
  461. package/Loading/Loading.d.ts +0 -33
  462. package/Loading/index.d.ts +0 -1
  463. package/Loading/index.js +0 -1
  464. package/Overlay/Overlay.js +0 -32
  465. package/Overlay/index.d.ts +0 -1
  466. package/Overlay/index.js +0 -1
  467. package/Picker/useRangePickerValue.d.ts +0 -23
  468. package/Picker/useRangePickerValue.js +0 -99
  469. package/Switch/Switch.d.ts +0 -43
  470. package/Switch/Switch.js +0 -29
  471. package/Switch/index.d.ts +0 -2
  472. package/Switch/index.js +0 -1
  473. package/Transition/Grow.d.ts +0 -12
  474. package/Transition/Zoom.d.ts +0 -7
  475. package/Upload/UploadButton.d.ts +0 -9
  476. package/Upload/UploadButton.js +0 -24
  477. package/Upload/UploadInput.d.ts +0 -20
  478. package/Upload/UploadInput.js +0 -24
  479. package/Upload/UploadPicture.d.ts +0 -49
  480. package/Upload/UploadPicture.js +0 -52
  481. package/Upload/UploadPictureBlock.d.ts +0 -20
  482. package/Upload/UploadPictureBlock.js +0 -82
  483. package/Upload/UploadPictureWall.d.ts +0 -81
  484. package/Upload/UploadPictureWall.js +0 -169
  485. package/Upload/UploadPictureWallItem.d.ts +0 -15
  486. package/Upload/UploadPictureWallItem.js +0 -18
  487. package/Upload/UploadResult.d.ts +0 -35
  488. package/Upload/UploadResult.js +0 -30
  489. package/utils/scroll-lock.d.ts +0 -2
  490. package/utils/scroll-lock.js +0 -24
package/Tag/Tag.d.ts CHANGED
@@ -1,29 +1,6 @@
1
- import { MouseEventHandler } from 'react';
2
- import { TagSize } from '@mezzanine-ui/core/tag';
3
- import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
4
- export interface TagProps extends NativeElementPropsWithoutKeyAndRef<'span'> {
5
- /**
6
- * Whether the tag can be closed.
7
- * @default false
8
- */
9
- closable?: boolean;
10
- /**
11
- * Whether the tag disabled.
12
- * @default false
13
- */
14
- disabled?: boolean;
15
- /**
16
- * Callback executed while tag closed.
17
- */
18
- onClose?: MouseEventHandler;
19
- /**
20
- * The size of the tag.
21
- * @default 'medium'
22
- */
23
- size?: TagSize;
24
- }
1
+ import { TagProps } from './typings';
25
2
  /**
26
3
  * The react component for `mezzanine` tag.
27
4
  */
28
- declare const Tag: import("react").ForwardRefExoticComponent<TagProps & import("react").RefAttributes<HTMLSpanElement>>;
5
+ declare const Tag: import("react").ForwardRefExoticComponent<TagProps & import("react").RefAttributes<HTMLButtonElement | HTMLSpanElement>>;
29
6
  export default Tag;
package/Tag/Tag.js CHANGED
@@ -1,25 +1,34 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { forwardRef, useContext } from 'react';
1
+ 'use client';
2
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
3
+ import { forwardRef } from 'react';
3
4
  import { tagClasses } from '@mezzanine-ui/core/tag';
4
- import { TimesIcon } from '@mezzanine-ui/icons';
5
- import { MezzanineConfig } from '../Provider/context.js';
5
+ import { PlusIcon, CloseIcon } from '@mezzanine-ui/icons';
6
6
  import Icon from '../Icon/Icon.js';
7
+ import Badge from '../Badge/Badge.js';
7
8
  import cx from 'clsx';
8
9
 
10
+ const getTagType = (props) => { var _a; return (_a = props.type) !== null && _a !== void 0 ? _a : 'static'; };
11
+ const isTagType = (props, current) => getTagType(props) === current;
9
12
  /**
10
13
  * The react component for `mezzanine` tag.
11
14
  */
12
15
  const Tag = forwardRef(function Tag(props, ref) {
13
- const { size: globalSize } = useContext(MezzanineConfig);
14
- const { children, className, closable = false, disabled = false, onClose, size = globalSize, ...rest } = props;
15
- return (jsxs("span", { ...rest, ref: ref, "aria-disabled": disabled, className: cx(tagClasses.host, tagClasses.size(size), {
16
- [tagClasses.disabled]: disabled,
17
- }, className), children: [jsx("span", { className: tagClasses.label, children: children }), closable && (jsx(Icon, { className: tagClasses.closeIcon, icon: TimesIcon, onClick: (event) => {
18
- if (!disabled && onClose) {
19
- onClose(event);
20
- }
21
- }, tabIndex: -1 }))] }));
16
+ const { active, className, disabled, onClick, onClose: _onClose, readOnly, size = 'main', type: _type, ...rest } = props;
17
+ const tagType = _type !== null && _type !== void 0 ? _type : 'static';
18
+ const commonClassName = cx(tagClasses.host, tagClasses.size(size), tagClasses.type(tagType), {
19
+ [tagClasses.disabled]: disabled,
20
+ [tagClasses.active]: active,
21
+ [tagClasses.readOnly]: readOnly,
22
+ }, className);
23
+ if (isTagType(props, 'overflow-counter')) {
24
+ const { count } = props;
25
+ return (jsxs("button", { ...rest, ref: ref, type: "button", onClick: onClick, disabled: disabled, className: commonClassName, children: [jsx(Icon, { className: tagClasses.icon, icon: PlusIcon, size: 16 }), jsx("span", { className: tagClasses.label, children: count })] }));
26
+ }
27
+ if (isTagType(props, 'addable')) {
28
+ const { label } = props;
29
+ return (jsxs("button", { ...rest, ref: ref, type: "button", onClick: onClick, disabled: disabled, className: commonClassName, children: [jsx(Icon, { className: tagClasses.icon, icon: PlusIcon, size: 16 }), jsx("span", { className: tagClasses.label, children: label })] }));
30
+ }
31
+ return (jsxs("span", { ...rest, ref: ref, "aria-disabled": disabled, className: commonClassName, children: [isTagType(props, 'static') && (jsx("span", { className: tagClasses.label, children: props.label })), isTagType(props, 'counter') && (jsxs(Fragment, { children: [jsx("span", { className: tagClasses.label, children: props.label }), jsx(Badge, { variant: "count-info", count: props.count })] })), isTagType(props, 'dismissable') && (jsxs(Fragment, { children: [jsx("span", { className: tagClasses.label, children: props.label }), jsx("button", { className: tagClasses.closeButton, type: "button", onClick: props.onClose, disabled: disabled, children: jsx(Icon, { className: tagClasses.icon, icon: CloseIcon, size: 16 }) })] }))] }));
22
32
  });
23
- var Tag$1 = Tag;
24
33
 
25
- export { Tag$1 as default };
34
+ export { Tag as default };
@@ -0,0 +1,12 @@
1
+ import { ReactElement } from 'react';
2
+ import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
3
+ import Tag, { TagProps } from '../Tag';
4
+ import OverflowCounterTag, { OverflowCounterTagProps } from '../OverflowTooltip/OverflowCounterTag';
5
+ import { TransitionImplementationChildProps } from '../Transition';
6
+ type TagElement = ReactElement<TagProps & TransitionImplementationChildProps, typeof Tag>;
7
+ type OverflowCounterTagElement = ReactElement<OverflowCounterTagProps & TransitionImplementationChildProps, typeof OverflowCounterTag>;
8
+ type TagGroupChild = TagElement | OverflowCounterTagElement;
9
+ declare const TagGroup: import("react").ForwardRefExoticComponent<Omit<NativeElementPropsWithoutKeyAndRef<"div">, "children"> & {
10
+ children: TagGroupChild | TagGroupChild[];
11
+ } & import("react").RefAttributes<HTMLDivElement>>;
12
+ export default TagGroup;
@@ -0,0 +1,41 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { forwardRef, Children, isValidElement, createElement } from 'react';
3
+ import OverflowCounterTag from '../OverflowTooltip/OverflowCounterTag.js';
4
+ import { tagClasses } from '@mezzanine-ui/core/tag';
5
+ import { TransitionGroup } from 'react-transition-group';
6
+ import { MOTION_EASING, MOTION_DURATION } from '@mezzanine-ui/system/motion';
7
+ import Fade from '../Transition/Fade.js';
8
+ import Tag from './Tag.js';
9
+ import cx from 'clsx';
10
+
11
+ const isTagElement = (child) => isValidElement(child) && child.type === Tag;
12
+ const isOverflowCounterElement = (child) => isValidElement(child) && child.type === OverflowCounterTag;
13
+ const fadeProps = {
14
+ duration: {
15
+ enter: MOTION_DURATION.fast,
16
+ exit: MOTION_DURATION.fast,
17
+ },
18
+ easing: {
19
+ enter: MOTION_EASING.standard,
20
+ exit: MOTION_EASING.standard,
21
+ },
22
+ };
23
+ const TagGroup = forwardRef(function TagGroup({ className, children, ...rest }, ref) {
24
+ const hasInvalidChild = Children.toArray(children).some((child) => {
25
+ if (!isTagElement(child) && !isOverflowCounterElement(child)) {
26
+ console.error('<TagGroup> only accepts <Tag> or <OverflowCounterTag>');
27
+ return true;
28
+ }
29
+ return false;
30
+ });
31
+ if (hasInvalidChild) {
32
+ return null;
33
+ }
34
+ return (jsx("div", { ...rest, ref: ref, className: cx(tagClasses.group, className), children: jsx(TransitionGroup, { component: null, children: Children.map(children, (child, index) => {
35
+ var _a;
36
+ return (createElement(Fade, { ...fadeProps, key: (_a = child.key) !== null && _a !== void 0 ? _a : index },
37
+ jsx("span", { children: child })));
38
+ }) }) }));
39
+ });
40
+
41
+ export { TagGroup as default };
package/Tag/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export type { TagSize } from '@mezzanine-ui/core/tag';
2
- export { TagProps, default } from './Tag';
2
+ export type { TagProps } from './typings';
3
+ export { default } from './Tag';
@@ -0,0 +1,78 @@
1
+ import { TagSize } from '@mezzanine-ui/core/tag';
2
+ import { MouseEventHandler } from 'react';
3
+ import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
4
+ type TagNativeProps<T extends 'span' | 'button'> = Omit<NativeElementPropsWithoutKeyAndRef<T>, 'onClick' | 'type'>;
5
+ type TagBaseProps<T extends 'span' | 'button'> = TagNativeProps<T> & {
6
+ /** Custom class names on the host element. */
7
+ className?: string;
8
+ /**
9
+ * Size of the tag.
10
+ * @default main
11
+ */
12
+ size?: TagSize;
13
+ };
14
+ type TagSpanHostProps = TagBaseProps<'span'>;
15
+ type TagButtonHostProps = TagBaseProps<'button'>;
16
+ export type TagProps = TagPropsStatic | TagPropsCounter | TagPropsOverflowCounter | TagPropsDismissable | TagPropsAddable;
17
+ type TagPropsStatic = TagSpanHostProps & {
18
+ /**
19
+ * Type of the tag.
20
+ * @default static
21
+ */
22
+ type?: 'static';
23
+ /** Text rendered inside label-based tags. */
24
+ label: string;
25
+ /** Applies read-only styling for static/overflow-counter tags. */
26
+ readOnly?: boolean;
27
+ /** Active state. Only available on dismissable/addable tags. */
28
+ active?: never;
29
+ /** Numeric value displayed by counter/overflow-counter variants. */
30
+ count?: never;
31
+ /** Disabled state. Only available on overflow-counter/dismissable/addable tags. */
32
+ disabled?: never;
33
+ /** Handler fired when the close button in dismissable tag is clicked. */
34
+ onClose?: never;
35
+ /** Handler fired when button-based tag clicked */
36
+ onClick?: never;
37
+ };
38
+ type TagPropsCounter = TagSpanHostProps & {
39
+ type: 'counter';
40
+ label: string;
41
+ count: number;
42
+ active?: never;
43
+ disabled?: never;
44
+ onClose?: never;
45
+ onClick?: never;
46
+ readOnly?: never;
47
+ };
48
+ type TagPropsOverflowCounter = TagButtonHostProps & {
49
+ type: 'overflow-counter';
50
+ count: number;
51
+ disabled?: boolean;
52
+ onClick?: MouseEventHandler<HTMLButtonElement>;
53
+ readOnly?: boolean;
54
+ active?: never;
55
+ label?: never;
56
+ onClose?: never;
57
+ };
58
+ type TagPropsDismissable = TagSpanHostProps & {
59
+ type: 'dismissable';
60
+ active?: boolean;
61
+ disabled?: boolean;
62
+ readOnly?: never;
63
+ label: string;
64
+ onClose: MouseEventHandler<HTMLButtonElement>;
65
+ count?: never;
66
+ onClick?: never;
67
+ };
68
+ type TagPropsAddable = TagButtonHostProps & {
69
+ type: 'addable';
70
+ active?: boolean;
71
+ disabled?: boolean;
72
+ label: string;
73
+ onClick?: MouseEventHandler<HTMLButtonElement>;
74
+ count?: never;
75
+ onClose?: never;
76
+ readOnly?: never;
77
+ };
78
+ export {};
@@ -1,12 +1,33 @@
1
- import { MouseEventHandler, ReactNode, ReactElement } from 'react';
1
+ import { MouseEventHandler, ReactNode } from 'react';
2
2
  import { TextFieldSize } from '@mezzanine-ui/core/text-field';
3
3
  import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
4
- export interface TextFieldProps extends Omit<NativeElementPropsWithoutKeyAndRef<'div'>, 'defaultValue' | 'onChange' | 'prefix'> {
4
+ /**
5
+ * Padding info provided to children function
6
+ */
7
+ export interface TextFieldPaddingInfo {
5
8
  /**
6
- * Whether the field is active.
9
+ * ClassName that applies the same padding as TextField's current size.
10
+ * Use this when you want to move padding from TextField to input/textarea.
11
+ */
12
+ paddingClassName: string;
13
+ }
14
+ /**
15
+ * Base props shared by all TextField variants
16
+ */
17
+ export interface TextFieldBaseProps extends Omit<NativeElementPropsWithoutKeyAndRef<'div'>, 'children' | 'defaultValue' | 'onChange' | 'prefix'> {
18
+ /**
19
+ * Whether the field is active (focused/opened/expanded).
20
+ * @default false
7
21
  */
8
22
  active?: boolean;
9
- children?: ReactNode;
23
+ /**
24
+ * The input/textarea element, or a function that receives padding info.
25
+ * When using function form, TextField will not apply padding (you control it).
26
+ */
27
+ children: ReactNode | ((paddingInfo: TextFieldPaddingInfo) => ReactNode);
28
+ /**
29
+ * Additional class name to apply to the root element.
30
+ */
10
31
  className?: string;
11
32
  /**
12
33
  * Whether to show the clear button.
@@ -14,41 +35,78 @@ export interface TextFieldProps extends Omit<NativeElementPropsWithoutKeyAndRef<
14
35
  */
15
36
  clearable?: boolean;
16
37
  /**
17
- * Whether the field is disabled.
18
- * @default false
19
- */
20
- disabled?: boolean;
21
- /**
22
- * Whether the field is error.
38
+ * Whether the field is in error state.
23
39
  * @default false
24
40
  */
25
41
  error?: boolean;
26
42
  /**
27
- * If `true`, set width: 100%.
28
- * @default false
43
+ * Whether the field should take the full width of its container.
44
+ * @default true
29
45
  */
30
46
  fullWidth?: boolean;
31
47
  /**
32
48
  * The callback will be fired after clear icon clicked.
33
49
  */
34
50
  onClear?: MouseEventHandler;
35
- /**
36
- * The prefix addon of the field.
37
- */
38
- prefix?: ReactNode;
39
51
  /**
40
52
  * The size of field.
41
- * @default 'medium'
53
+ * @default 'main'
42
54
  */
43
55
  size?: TextFieldSize;
56
+ /**
57
+ * Whether the field is in warning state.
58
+ * @default false
59
+ */
60
+ warning?: boolean;
61
+ }
62
+ /**
63
+ * Affix props - prefix and suffix
64
+ */
65
+ export type TextFieldAffixProps = {
66
+ /**
67
+ * The prefix addon of the field.
68
+ */
69
+ prefix?: ReactNode;
44
70
  /**
45
71
  * The suffix addon of the field.
46
72
  */
47
73
  suffix?: ReactNode;
48
- suffixActionIcon?: ReactElement;
49
- }
74
+ };
75
+ /**
76
+ * Interactive state - typing, disabled, and readonly are mutually exclusive
77
+ */
78
+ export type TextFieldInteractiveStateProps = {
79
+ /**
80
+ * Whether the user is currently typing.
81
+ * If not provided, will be auto-detected.
82
+ */
83
+ typing?: boolean;
84
+ disabled?: never;
85
+ readonly?: never;
86
+ } | {
87
+ typing?: never;
88
+ /**
89
+ * Whether the field is disabled.
90
+ * @default false
91
+ */
92
+ disabled: true;
93
+ readonly?: never;
94
+ } | {
95
+ typing?: never;
96
+ disabled?: never;
97
+ /**
98
+ * Whether the field is readonly.
99
+ * @default false
100
+ */
101
+ readonly: true;
102
+ } | {
103
+ typing?: never;
104
+ disabled?: never;
105
+ readonly?: never;
106
+ };
107
+ export type TextFieldProps = TextFieldBaseProps & TextFieldAffixProps & TextFieldInteractiveStateProps;
50
108
  /**
51
- * The react component for `mezzanine` input.
109
+ * The react component for `mezzanine` text field.
52
110
  */
53
111
  declare const TextField: import("react").ForwardRefExoticComponent<TextFieldProps & import("react").RefAttributes<HTMLDivElement>>;
54
112
  export default TextField;
@@ -1,46 +1,81 @@
1
+ 'use client';
1
2
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { forwardRef, useContext, cloneElement } from 'react';
3
- import { TimesIcon } from '@mezzanine-ui/icons';
3
+ import { forwardRef, useState, useRef, useEffect } from 'react';
4
4
  import { textFieldClasses } from '@mezzanine-ui/core/text-field';
5
5
  import { useTextFieldControl } from './useTextFieldControl.js';
6
- import { MezzanineConfig } from '../Provider/context.js';
7
- import Icon from '../Icon/Icon.js';
6
+ import ClearActions from '../ClearActions/ClearActions.js';
7
+ import { useComposeRefs } from '../hooks/useComposeRefs.js';
8
8
  import cx from 'clsx';
9
9
 
10
10
  /**
11
- * The react component for `mezzanine` input.
11
+ * The react component for `mezzanine` text field.
12
12
  */
13
13
  const TextField = forwardRef(function TextField(props, ref) {
14
- const { size: globalSize } = useContext(MezzanineConfig);
15
- const { active = false, children, className, clearable = false, disabled = false, error = false, fullWidth, onClear, onClick: onClickProps, onKeyDown: onKeyDownProps, prefix, role: roleProp, size = globalSize, suffix, suffixActionIcon, ...rest } = props;
14
+ const { active = false, children, className, clearable = false, disabled, error = false, fullWidth = true, onClear, onClick: onClickProps, onKeyDown: onKeyDownProps, prefix, readonly, role: roleProp, size = 'main', suffix, typing: typingProp, warning, ...rest } = props;
15
+ const [isTyping, setIsTyping] = useState(false);
16
+ const containerRef = useRef(null);
17
+ const hostRef = useComposeRefs([ref, containerRef]);
18
+ const typing = disabled || readonly
19
+ ? false
20
+ : typeof typingProp !== 'undefined'
21
+ ? typingProp
22
+ : isTyping;
23
+ useEffect(() => {
24
+ if (typingProp !== undefined || disabled || readonly)
25
+ return;
26
+ const container = containerRef.current;
27
+ if (!container)
28
+ return;
29
+ const input = container.querySelector('input, textarea');
30
+ if (!input)
31
+ return;
32
+ const handleInput = () => {
33
+ setIsTyping(true);
34
+ };
35
+ const handleBlur = () => {
36
+ setIsTyping(false);
37
+ };
38
+ input.addEventListener('input', handleInput, false);
39
+ input.addEventListener('mousedown', handleInput, false);
40
+ input.addEventListener('blur', handleBlur, false);
41
+ return () => {
42
+ input.removeEventListener('input', handleInput, false);
43
+ input.removeEventListener('mousedown', handleInput, false);
44
+ input.removeEventListener('blur', handleBlur, false);
45
+ };
46
+ }, [typingProp, disabled, readonly]);
16
47
  const { role, onClick, onKeyDown } = useTextFieldControl({
17
48
  onClick: onClickProps,
18
49
  onKeyDown: onKeyDownProps,
19
50
  });
20
- return (
21
- // eslint-disable-next-line jsx-a11y/no-static-element-interactions
22
- jsxs("div", { ...rest, ref: ref, role: roleProp || role, onClick: (evt) => {
51
+ const isChildrenFunction = typeof children === 'function';
52
+ const paddingInfo = {
53
+ paddingClassName: cx(textFieldClasses.inputPadding, size === 'main' ? textFieldClasses.inputPaddingMain : textFieldClasses.inputPaddingSub),
54
+ };
55
+ const renderedChildren = isChildrenFunction
56
+ ? children(paddingInfo)
57
+ : children;
58
+ return (jsxs("div", { ...rest, ref: hostRef, role: roleProp || role, onClick: (evt) => {
23
59
  evt.stopPropagation();
24
60
  onClick === null || onClick === void 0 ? void 0 : onClick(evt);
25
- }, onKeyDown: onKeyDown, className: cx(textFieldClasses.host, textFieldClasses.size(size), {
26
- [textFieldClasses.active]: active,
61
+ }, onKeyDown: onKeyDown, className: cx(textFieldClasses.host, {
62
+ [textFieldClasses.slimGap]: (prefix && suffix) || clearable,
63
+ [textFieldClasses.main]: size === 'main',
64
+ [textFieldClasses.sub]: size === 'sub',
27
65
  [textFieldClasses.clearable]: clearable,
28
66
  [textFieldClasses.disabled]: disabled,
29
67
  [textFieldClasses.error]: error,
30
68
  [textFieldClasses.fullWidth]: fullWidth,
31
- [textFieldClasses.withPrefix]: prefix,
32
- [textFieldClasses.withSuffix]: suffix || suffixActionIcon,
33
- }, className), children: [prefix && jsx("div", { className: textFieldClasses.prefix, children: prefix }), children, suffix && jsx("div", { className: textFieldClasses.suffix, children: suffix }), suffixActionIcon &&
34
- cloneElement(suffixActionIcon, {
35
- className: cx(textFieldClasses.actionIcon, suffixActionIcon.props.className),
36
- role: 'button',
37
- tabIndex: -1,
38
- }), clearable && (jsx(Icon, { className: textFieldClasses.clearIcon, icon: TimesIcon, onClick: (event) => {
39
- if (!disabled && onClear) {
69
+ [textFieldClasses.noPadding]: isChildrenFunction,
70
+ [textFieldClasses.readonly]: readonly,
71
+ [textFieldClasses.typing]: typing,
72
+ [textFieldClasses.active]: active,
73
+ [textFieldClasses.warning]: warning,
74
+ }, className), children: [prefix && jsx("div", { className: textFieldClasses.prefix, children: prefix }), renderedChildren, clearable && (jsx(ClearActions, { type: "clearable", className: textFieldClasses.clearIcon, onClick: (event) => {
75
+ if (!disabled && !readonly && onClear) {
40
76
  onClear(event);
41
77
  }
42
- }, onMouseDown: (event) => event.preventDefault(), role: "button", tabIndex: -1 }))] }));
78
+ }, onMouseDown: (event) => event.preventDefault(), tabIndex: -1 })), suffix && jsx("div", { className: textFieldClasses.suffix, children: suffix })] }));
43
79
  });
44
- var TextField$1 = TextField;
45
80
 
46
- export { TextField$1 as default };
81
+ export { TextField as default };
@@ -1,2 +1,3 @@
1
1
  export type { TextFieldSize } from '@mezzanine-ui/core/text-field';
2
- export { TextFieldProps, default } from './TextField';
2
+ export type { TextFieldProps, TextFieldBaseProps, TextFieldAffixProps, TextFieldInteractiveStateProps, TextFieldPaddingInfo, } from './TextField';
3
+ export { default } from './TextField';
@@ -1,56 +1,24 @@
1
- import { Ref, ChangeEventHandler } from 'react';
2
- import { TextareaSize } from '@mezzanine-ui/core/textarea';
1
+ import { Ref } from 'react';
3
2
  import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
4
- import { TextFieldProps } from '../TextField';
5
- export interface TextareaProps extends Omit<TextFieldProps, 'active' | 'children' | 'onClear' | 'prefix' | 'suffix' | 'suffixActionIcon'> {
6
- /**
7
- * The default value of textarea.
8
- */
9
- defaultValue?: string;
10
- /**
11
- * The max length of textarea.
12
- */
13
- maxLength?: number;
14
- /**
15
- * The change event handler of textarea element.
16
- */
17
- onChange?: ChangeEventHandler<HTMLTextAreaElement>;
18
- /**
19
- * The placeholder of textarea.
20
- */
21
- placeholder?: string;
22
- /**
23
- * Whether the textarea is readonly.
24
- * @default false
25
- */
26
- readOnly?: boolean;
27
- /**
28
- * Whether the input is required.
29
- * @default false
30
- */
31
- required?: boolean;
32
- /**
33
- * The rows of textarea.
34
- */
35
- rows?: number;
36
- /**
37
- * The size of textarea.
38
- * @default 'medium'
39
- */
40
- size?: TextareaSize;
41
- /**
42
- * The react ref passed to textarea element.
43
- */
3
+ export type TextareaProps = Omit<NativeElementPropsWithoutKeyAndRef<'textarea'>, 'disabled' | 'readOnly'> & {
4
+ /** ClassName apply to textarea */
5
+ textareaClassName?: string;
6
+ /** The react ref passed to textarea element. */
44
7
  textareaRef?: Ref<HTMLTextAreaElement>;
45
- /**
46
- * The other native props for textarea element.
47
- */
48
- textareaProps?: Omit<NativeElementPropsWithoutKeyAndRef<'textarea'>, 'defaultValue' | 'disabled' | 'maxLength' | 'onChange' | 'placeholder' | 'readOnly' | 'required' | 'rows' | 'value' | `aria-${'disabled' | 'multiline' | 'readonly' | 'required'}`>;
49
- /**
50
- * The value of textarea.
51
- */
52
- value?: string;
53
- }
8
+ /** Controls textarea CSS `resize` behavior with native `resize` values. */
9
+ resize?: 'none' | 'both' | 'horizontal' | 'vertical';
10
+ } & ({
11
+ /** Set visual style type of the textarea. */
12
+ type?: 'default';
13
+ /** Disabled state of the taxtarea, Only available on default type. */
14
+ disabled?: boolean;
15
+ /** ReadOnly state of the textarea, Only available on default type. */
16
+ readOnly?: boolean;
17
+ } | {
18
+ type: 'warning' | 'error';
19
+ disabled?: never;
20
+ readOnly?: never;
21
+ });
54
22
  /**
55
23
  * The react component for `mezzanine` textarea.
56
24
  */
@@ -1,35 +1,28 @@
1
+ 'use client';
1
2
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { forwardRef, useContext, useRef } from 'react';
3
+ import { forwardRef, useRef } from 'react';
3
4
  import { textareaClasses } from '@mezzanine-ui/core/textarea';
4
5
  import { useComposeRefs } from '../hooks/useComposeRefs.js';
5
- import { useInputWithClearControlValue } from '../Form/useInputWithClearControlValue.js';
6
- import { MezzanineConfig } from '../Provider/context.js';
6
+ import { ResizeHandleIcon } from '@mezzanine-ui/icons';
7
7
  import TextField from '../TextField/TextField.js';
8
- import { FormControlContext } from '../Form/FormControlContext.js';
8
+ import Icon from '../Icon/Icon.js';
9
9
  import cx from 'clsx';
10
10
 
11
11
  /**
12
12
  * The react component for `mezzanine` textarea.
13
13
  */
14
14
  const Textarea = forwardRef(function Textarea(props, ref) {
15
- const { size: globalSize } = useContext(MezzanineConfig);
16
- const { disabled: disabledFromFormControl, fullWidth: fullWidthFromFormControl, required: requiredFromFormControl, severity, } = useContext(FormControlContext) || {};
17
- const { className, clearable = false, defaultValue, disabled = disabledFromFormControl || false, error = severity === 'error' || false, fullWidth = fullWidthFromFormControl || false, maxLength, onChange: onChangeProp, placeholder, readOnly = false, required = requiredFromFormControl || false, rows, size = globalSize, textareaRef: textareaRefProp, textareaProps, value: valueProp, } = props;
15
+ const { className, disabled, readOnly, textareaClassName, textareaRef: textareaRefProp, type = 'default', resize = 'none', ...textareaProps } = props;
18
16
  const textareaRef = useRef(null);
19
- const [value, onChange, onClear] = useInputWithClearControlValue({
20
- defaultValue,
21
- onChange: onChangeProp,
22
- ref: textareaRef,
23
- value: valueProp,
24
- });
25
17
  const composedTextareaRef = useComposeRefs([textareaRefProp, textareaRef]);
26
- const active = !!value;
27
- const currentLength = value.length;
28
- const upperLimit = typeof maxLength === 'number' && currentLength >= maxLength;
29
- return (jsxs(TextField, { ref: ref, active: active, className: cx(textareaClasses.host, {
30
- [textareaClasses.upperLimit]: upperLimit,
31
- }, className), clearable: clearable, disabled: disabled, error: error, fullWidth: fullWidth, onClear: onClear, size: size, children: [jsx("textarea", { ...textareaProps, ref: composedTextareaRef, "aria-disabled": disabled, "aria-multiline": true, "aria-readonly": readOnly, "aria-required": required, disabled: disabled, maxLength: maxLength, onChange: onChange, placeholder: placeholder, readOnly: readOnly, required: required, rows: rows, value: value }), typeof maxLength === 'number' && (jsxs("span", { className: textareaClasses.count, children: [value.length, "/", maxLength] }))] }));
18
+ const interactiveProps = type === 'default'
19
+ ? disabled
20
+ ? { disabled: true }
21
+ : readOnly
22
+ ? { readonly: true }
23
+ : {}
24
+ : {};
25
+ return (jsxs(TextField, { ...interactiveProps, ref: ref, className: cx(textareaClasses.host, className), error: type === 'error', warning: type === 'warning', children: [jsx("textarea", { ...textareaProps, className: cx(textareaClasses.textarea, textareaClassName), ref: composedTextareaRef, disabled: disabled, readOnly: readOnly, style: { resize, ...textareaProps.style } }), resize !== 'none' && (jsx(Icon, { icon: ResizeHandleIcon, size: 16, className: textareaClasses.resizer }))] }));
32
26
  });
33
- var Textarea$1 = Textarea;
34
27
 
35
- export { Textarea$1 as default };
28
+ export { Textarea as default };
@@ -1,2 +1,2 @@
1
- export type { TextareaSize } from '@mezzanine-ui/core/textarea';
2
- export { TextareaProps, default } from './Textarea';
1
+ export type { TextareaProps } from './Textarea';
2
+ export { default } from './Textarea';