@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/Form/FormField.js CHANGED
@@ -20,6 +20,5 @@ const FormField = forwardRef(function FormField(props, ref) {
20
20
  [formFieldClasses.fullWidth]: fullWidth,
21
21
  }, className), children: jsx(FormControlContext.Provider, { value: formControl, children: children }) }));
22
22
  });
23
- var FormField$1 = FormField;
24
23
 
25
- export { FormField$1 as default };
24
+ export { FormField as default };
@@ -0,0 +1,18 @@
1
+ import { formHintIcons } from '@mezzanine-ui/core/form';
2
+ import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
3
+ export type FormHintTextProps = NativeElementPropsWithoutKeyAndRef<'span'> & {
4
+ /**
5
+ * The severity of form message.
6
+ */
7
+ severity?: keyof typeof formHintIcons | undefined;
8
+ };
9
+ /**
10
+ * The react component for `mezzanine` form message.
11
+ */
12
+ declare const FormHintText: import("react").ForwardRefExoticComponent<NativeElementPropsWithoutKeyAndRef<"span"> & {
13
+ /**
14
+ * The severity of form message.
15
+ */
16
+ severity?: keyof typeof formHintIcons | undefined;
17
+ } & import("react").RefAttributes<HTMLSpanElement>>;
18
+ export default FormHintText;
@@ -0,0 +1,17 @@
1
+ 'use client';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { forwardRef } from 'react';
4
+ import { formHintIcons, formFieldClasses } from '@mezzanine-ui/core/form';
5
+ import Icon from '../Icon/Icon.js';
6
+ import cx from 'clsx';
7
+
8
+ /**
9
+ * The react component for `mezzanine` form message.
10
+ */
11
+ const FormHintText = forwardRef(function FormHintText(props, ref) {
12
+ const { children, className, severity, ...rest } = props;
13
+ const icon = severity ? formHintIcons[severity] : null;
14
+ return (jsxs("span", { ...rest, ref: ref, className: cx(formFieldClasses.hintText, severity ? formFieldClasses.hintTextSeverity(severity) : undefined, className), children: [icon && jsx(Icon, { className: formFieldClasses.hintTextIcon, icon: icon }), children] }));
15
+ });
16
+
17
+ export { FormHintText as default };
package/Form/FormLabel.js CHANGED
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { jsxs, jsx } from 'react/jsx-runtime';
2
3
  import { forwardRef, useContext } from 'react';
3
4
  import { formFieldClasses } from '@mezzanine-ui/core/form';
@@ -12,6 +13,5 @@ const FormLabel = forwardRef(function FormLabel(props, ref) {
12
13
  const { required } = useContext(FormControlContext) || {};
13
14
  return (jsxs("label", { ...rest, ref: ref, className: cx(formFieldClasses.label, className), htmlFor: htmlFor, children: [jsxs("span", { children: [children, required && jsx("span", { className: formFieldClasses.asterisk, children: "*" })] }), (remark || remarkIcon) && (jsxs("span", { className: formFieldClasses.remark, children: [jsx("span", { children: remark }), remarkIcon] }))] }));
14
15
  });
15
- var FormLabel$1 = FormLabel;
16
16
 
17
- export { FormLabel$1 as default };
17
+ export { FormLabel as default };
package/Form/index.d.ts CHANGED
@@ -1,5 +1,9 @@
1
- export * from './typings';
2
- export * from './FormControlContext';
3
- export { FormFieldProps, default as FormField } from './FormField';
4
- export { FormLabelProps, default as FormLabel } from './FormLabel';
5
- export { FormMessageProps, default as FormMessage } from './FormMessage';
1
+ export type { FormElementFocusHandlers } from './typings';
2
+ export { FormControlContext } from './FormControlContext';
3
+ export type { FormControl } from './FormControlContext';
4
+ export type { FormFieldProps } from './FormField';
5
+ export { default as FormField } from './FormField';
6
+ export type { FormLabelProps } from './FormLabel';
7
+ export { default as FormLabel } from './FormLabel';
8
+ export type { FormHintTextProps } from './FormHintText';
9
+ export { default as FormHintText } from './FormHintText';
package/Form/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  export { FormControlContext } from './FormControlContext.js';
2
2
  export { default as FormField } from './FormField.js';
3
3
  export { default as FormLabel } from './FormLabel.js';
4
- export { default as FormMessage } from './FormMessage.js';
4
+ export { default as FormHintText } from './FormHintText.js';
@@ -94,8 +94,10 @@ function useAutoCompleteBaseValueControl(props) {
94
94
  }
95
95
  const useAutoCompleteValueControl = (props) => {
96
96
  if (props.mode === 'multiple') {
97
+ // eslint-disable-next-line react-hooks/rules-of-hooks
97
98
  return useAutoCompleteBaseValueControl(props);
98
99
  }
100
+ // eslint-disable-next-line react-hooks/rules-of-hooks
99
101
  return useAutoCompleteBaseValueControl(props);
100
102
  };
101
103
 
@@ -7,7 +7,6 @@ function useCheckboxControlValue(props) {
7
7
  /**
8
8
  * To ensure checkbox inside checkbox group, not use destructure here
9
9
  */
10
- // eslint-disable-next-line no-nested-ternary
11
10
  checked: checkboxGroup
12
11
  ? checkboxGroup.value && value != null
13
12
  ? checkboxGroup.value.includes(value)
@@ -1,6 +1,6 @@
1
1
  import { ChangeEvent, MouseEvent, RefObject } from 'react';
2
2
  import { UseInputControlValueProps } from './useInputControlValue';
3
3
  export interface UseInputWithClearControlValueProps<E extends HTMLInputElement | HTMLTextAreaElement> extends UseInputControlValueProps<E> {
4
- ref: RefObject<E>;
4
+ ref: RefObject<E | null>;
5
5
  }
6
6
  export declare function useInputWithClearControlValue<E extends HTMLInputElement | HTMLTextAreaElement>(props: UseInputWithClearControlValueProps<E>): readonly [string, (event: ChangeEvent<E>) => void, (event: MouseEvent) => void];
@@ -18,7 +18,7 @@ export interface UseInputWithTagsModeValueProps<E extends HTMLInputElement | HTM
18
18
  /**
19
19
  * The ref object of input element
20
20
  */
21
- ref: RefObject<E>;
21
+ ref: RefObject<E | null>;
22
22
  /**
23
23
  * Will skip `onKeyDown` calling if `true`
24
24
  * @default false
@@ -66,8 +66,10 @@ function useSelectBaseValueControl(props) {
66
66
  }
67
67
  const useSelectValueControl = (props) => {
68
68
  if (props.mode === 'multiple') {
69
+ // eslint-disable-next-line react-hooks/rules-of-hooks
69
70
  return useSelectBaseValueControl(props);
70
71
  }
72
+ // eslint-disable-next-line react-hooks/rules-of-hooks
71
73
  return useSelectBaseValueControl(props);
72
74
  };
73
75
 
package/Icon/Icon.js CHANGED
@@ -21,6 +21,5 @@ const Icon = forwardRef(function Icon(props, ref) {
21
21
  [iconClasses.size]: size,
22
22
  }, className), "data-icon-name": icon.name, style: style, children: jsxs("svg", { ...definition.svg, focusable: false, children: [title || definition.title ? (jsx("title", { children: title || definition.title })) : null, jsx("path", { ...definition.path })] }) }));
23
23
  });
24
- var Icon$1 = Icon;
25
24
 
26
- export { Icon$1 as default };
25
+ export { Icon as default };
@@ -0,0 +1,33 @@
1
+ import { InlineMessageSeverity } from '@mezzanine-ui/core/inline-message';
2
+ import { IconDefinition } from '@mezzanine-ui/icons';
3
+ import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
4
+ export interface InlineMessageProps extends NativeElementPropsWithoutKeyAndRef<'div'> {
5
+ /**
6
+ * The content of the inline message value(only string is supported).
7
+ */
8
+ content: string;
9
+ /**
10
+ * The class name of the inline message element.
11
+ */
12
+ className?: string;
13
+ /**
14
+ * The icon of the inline message.
15
+ */
16
+ icon?: IconDefinition;
17
+ /**
18
+ * Called when user clicks the close button.
19
+ */
20
+ onClose?: () => void;
21
+ /**
22
+ * The inline message severity (`'info' | 'warning' | 'error'`).
23
+ */
24
+ severity: InlineMessageSeverity;
25
+ }
26
+ /**
27
+ * The react component for `mezzanine` inline message.
28
+ *
29
+ * Use `InlineMessage` directly in your layout to display contextual feedback,
30
+ * and provide `onClose` callback when you need to react to dismiss events.
31
+ */
32
+ declare const InlineMessage: import("react").ForwardRefExoticComponent<InlineMessageProps & import("react").RefAttributes<HTMLDivElement>>;
33
+ export default InlineMessage;
@@ -0,0 +1,42 @@
1
+ 'use client';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import { forwardRef, useState, useCallback, useMemo } from 'react';
4
+ import { inlineMessageClasses, inlineMessageIcons } from '@mezzanine-ui/core/inline-message';
5
+ import { MOTION_EASING, MOTION_DURATION } from '@mezzanine-ui/system/motion';
6
+ import ClearActions from '../ClearActions/ClearActions.js';
7
+ import Fade from '../Transition/Fade.js';
8
+ import Icon from '../Icon/Icon.js';
9
+ import cx from 'clsx';
10
+
11
+ /**
12
+ * The react component for `mezzanine` inline message.
13
+ *
14
+ * Use `InlineMessage` directly in your layout to display contextual feedback,
15
+ * and provide `onClose` callback when you need to react to dismiss events.
16
+ */
17
+ const InlineMessage = forwardRef(function InlineMessage(props, ref) {
18
+ const { content, className, icon, onClose, severity } = props;
19
+ const [visible, setVisible] = useState(true);
20
+ const handleClose = useCallback(() => {
21
+ setVisible(false);
22
+ if (onClose) {
23
+ onClose();
24
+ }
25
+ }, [onClose]);
26
+ const iconNode = useMemo(() => {
27
+ if (icon) {
28
+ return jsx(Icon, { className: inlineMessageClasses.icon, icon: icon });
29
+ }
30
+ const severityIcon = inlineMessageIcons[severity];
31
+ return jsx(Icon, { className: inlineMessageClasses.icon, icon: severityIcon });
32
+ }, [icon, severity]);
33
+ return (jsx(Fade, { ref: ref, duration: {
34
+ enter: MOTION_DURATION.fast,
35
+ exit: MOTION_DURATION.fast,
36
+ }, easing: {
37
+ enter: MOTION_EASING.standard,
38
+ exit: MOTION_EASING.standard,
39
+ }, in: visible, children: jsxs("div", { "aria-live": "polite", className: cx(inlineMessageClasses.host, inlineMessageClasses.severity(severity), className), role: "status", children: [jsxs("div", { className: inlineMessageClasses.contentContainer, children: [iconNode, jsx("span", { className: inlineMessageClasses.content, children: content })] }), severity === 'info' ? (jsx(ClearActions, { onClick: handleClose, type: "standard", variant: "base" })) : null] }) }));
40
+ });
41
+
42
+ export { InlineMessage as default };
@@ -0,0 +1,24 @@
1
+ import { Key, ReactNode } from 'react';
2
+ import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
3
+ import { InlineMessageProps } from './InlineMessage';
4
+ export interface InlineMessageGroupItem extends Omit<InlineMessageProps, 'content'> {
5
+ key: Key;
6
+ content: string;
7
+ }
8
+ export interface InlineMessageGroupProps extends Omit<NativeElementPropsWithoutKeyAndRef<'div'>, 'children'> {
9
+ /**
10
+ * The inline messages within the group.
11
+ * Ignored when `children` provided.
12
+ */
13
+ items?: InlineMessageGroupItem[];
14
+ /**
15
+ * Custom inline message nodes.
16
+ */
17
+ children?: ReactNode;
18
+ /**
19
+ * Callback invoked when any item triggers `onClose`.
20
+ */
21
+ onItemClose?: (key: Key) => void;
22
+ }
23
+ declare const InlineMessageGroup: import("react").ForwardRefExoticComponent<InlineMessageGroupProps & import("react").RefAttributes<HTMLDivElement>>;
24
+ export default InlineMessageGroup;
@@ -0,0 +1,21 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { inlineMessageGroupClasses } from '@mezzanine-ui/core/inline-message';
3
+ import { forwardRef, useMemo } from 'react';
4
+ import InlineMessage from './InlineMessage.js';
5
+ import cx from 'clsx';
6
+
7
+ const mapItemsToMessages = (items, onItemClose) => items === null || items === void 0 ? void 0 : items.map(({ key, content, onClose, ...restItemProps }) => (jsx(InlineMessage, { ...restItemProps, content: content, onClose: () => {
8
+ if (onClose) {
9
+ onClose();
10
+ }
11
+ if (onItemClose) {
12
+ onItemClose(key);
13
+ }
14
+ } }, key)));
15
+ const InlineMessageGroup = forwardRef(function InlineMessageGroup(props, ref) {
16
+ const { children: childrenProp, className, items, onItemClose, ...rest } = props;
17
+ const children = useMemo(() => childrenProp !== null && childrenProp !== void 0 ? childrenProp : mapItemsToMessages(items, onItemClose), [childrenProp, items, onItemClose]);
18
+ return (jsx("div", { ...rest, ref: ref, className: cx(inlineMessageGroupClasses.host, className), "aria-live": "polite", role: "region", children: children }));
19
+ });
20
+
21
+ export { InlineMessageGroup as default };
@@ -0,0 +1,4 @@
1
+ export { default } from './InlineMessage';
2
+ export type { InlineMessageProps } from './InlineMessage';
3
+ export { default as InlineMessageGroup } from './InlineMessageGroup';
4
+ export type { InlineMessageGroupItem, InlineMessageGroupProps, } from './InlineMessageGroup';
@@ -0,0 +1,2 @@
1
+ export { default } from './InlineMessage.js';
2
+ export { default as InlineMessageGroup } from './InlineMessageGroup.js';
@@ -0,0 +1,26 @@
1
+ import { InputSize } from '@mezzanine-ui/core/input';
2
+ import { NativeElementPropsWithoutKeyAndRef } from '../../utils/jsx-types';
3
+ import { IconDefinition } from '@mezzanine-ui/icons';
4
+ export interface ActionButtonProps extends Omit<NativeElementPropsWithoutKeyAndRef<'button'>, 'type' | 'disabled'> {
5
+ /**
6
+ * Whether the action button is disabled.
7
+ */
8
+ disabled?: boolean;
9
+ /**
10
+ * The icon of action button.
11
+ * @default CopyIcon
12
+ */
13
+ icon?: IconDefinition;
14
+ /**
15
+ * The label of action button.
16
+ * @default 'Copy'
17
+ */
18
+ label?: string;
19
+ /**
20
+ * The size of action button.
21
+ * @default 'main'
22
+ */
23
+ size?: InputSize;
24
+ }
25
+ declare const ActionButton: import("react").ForwardRefExoticComponent<ActionButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
26
+ export default ActionButton;
@@ -0,0 +1,14 @@
1
+ 'use client';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { inputActionButtonClasses } from '@mezzanine-ui/core/input';
4
+ import { forwardRef } from 'react';
5
+ import { CopyIcon } from '@mezzanine-ui/icons';
6
+ import Icon from '../../Icon/Icon.js';
7
+ import cx from 'clsx';
8
+
9
+ const ActionButton = forwardRef(function ActionButton(props, ref) {
10
+ const { className, disabled, icon = CopyIcon, label = 'Copy', size = 'main', ...rest } = props;
11
+ return (jsxs("button", { ref: ref, type: "button", disabled: disabled, className: cx(inputActionButtonClasses.host, disabled && inputActionButtonClasses.disabled, size === 'main' ? inputActionButtonClasses.main : inputActionButtonClasses.sub, className), title: label, ...rest, children: [jsx(Icon, { className: inputActionButtonClasses.icon, icon: icon, size: 16 }), jsx("span", { className: inputActionButtonClasses.text, children: label })] }));
12
+ });
13
+
14
+ export { ActionButton as default };
@@ -0,0 +1,2 @@
1
+ export type { ActionButtonProps } from './ActionButton';
2
+ export { default } from './ActionButton';
@@ -0,0 +1 @@
1
+ export { default } from './ActionButton.js';
package/Input/Input.d.ts CHANGED
@@ -1,13 +1,28 @@
1
1
  import { Ref, ChangeEventHandler } from 'react';
2
- import { InputSize } from '@mezzanine-ui/core/input';
3
2
  import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
4
- import type { TagsType } from '../Form/useInputWithTagsModeValue';
5
- import { TextFieldProps } from '../TextField';
6
- export interface InputProps extends Omit<TextFieldProps, 'active' | 'children' | 'onClear' | 'onKeyDown' | 'suffixActionIcon'> {
3
+ import { TextFieldAffixProps, TextFieldProps } from '../TextField';
4
+ import { ActionButtonProps } from './ActionButton';
5
+ import { SelectButtonProps } from './SelectButton';
6
+ import { PasswordStrengthIndicatorProps } from './PasswordStrengthIndicator';
7
+ /**
8
+ * Base props shared by all Input variants
9
+ */
10
+ export interface InputBaseProps extends Omit<TextFieldProps, 'children' | 'clearable' | 'onClear' | 'prefix' | 'suffix'> {
7
11
  /**
8
12
  * The default value of input.
9
13
  */
10
14
  defaultValue?: string;
15
+ /**
16
+ * Formatter function to transform the value for display.
17
+ * Common use cases: currency formatting (1000 → "1,000"), phone numbers, etc.
18
+ * @example
19
+ * formatter={(value) => value.replace(/\B(?=(\d{3})+(?!\d))/g, ',')}
20
+ */
21
+ formatter?: (value: string) => string;
22
+ /**
23
+ * The id of input element.
24
+ */
25
+ id?: string;
11
26
  /**
12
27
  * The react ref passed to input element.
13
28
  */
@@ -15,62 +30,152 @@ export interface InputProps extends Omit<TextFieldProps, 'active' | 'children' |
15
30
  /**
16
31
  * The other native props for input element.
17
32
  */
18
- inputProps?: Omit<NativeElementPropsWithoutKeyAndRef<'input'>, 'defaultValue' | 'disabled' | 'onChange' | 'placeholder' | 'readOnly' | 'required' | 'value' | `aria-${'disabled' | 'multiline' | 'readonly' | 'required'}`>;
33
+ inputProps?: Omit<NativeElementPropsWithoutKeyAndRef<'input'>, 'defaultValue' | 'disabled' | 'onChange' | 'placeholder' | 'readOnly' | 'value' | 'type' | 'id' | 'name' | `aria-${'disabled' | 'multiline' | 'readonly'}`>;
34
+ /**
35
+ * The input type of input element.
36
+ * @default 'text'
37
+ */
38
+ inputType?: NativeElementPropsWithoutKeyAndRef<'input'>['type'];
19
39
  /**
20
- * The input value mode
21
- * @default 'default'
40
+ * The name of input element.
22
41
  */
23
- mode?: 'default' | 'tags';
42
+ name?: string;
24
43
  /**
25
44
  * The change event handler of input element.
26
45
  */
27
46
  onChange?: ChangeEventHandler<HTMLInputElement>;
47
+ /**
48
+ * Parser function to extract the raw value from formatted display value.
49
+ * Should reverse the formatter transformation.
50
+ * @example
51
+ * parser={(value) => value.replace(/,/g, '')}
52
+ */
53
+ parser?: (value: string) => string;
28
54
  /**
29
55
  * The placeholder of input.
30
56
  */
31
57
  placeholder?: string;
32
58
  /**
33
- * Whether the input is readonly.
34
- * @default false
59
+ * The value of input.
35
60
  */
36
- readOnly?: boolean;
61
+ value?: string;
62
+ }
63
+ /**
64
+ * Clearable props
65
+ */
66
+ export type ClearableInput = Pick<TextFieldProps, 'clearable' | 'onClear'>;
67
+ /**
68
+ * Number input
69
+ */
70
+ export type NumberInput = {
71
+ /**
72
+ * The minimum value.
73
+ */
74
+ min?: number;
75
+ /**
76
+ * The maximum value.
77
+ */
78
+ max?: number;
79
+ /**
80
+ * The step value.
81
+ * @default 1
82
+ */
83
+ step?: number;
84
+ };
85
+ /**
86
+ * 1. Base Input - Basic input field
87
+ */
88
+ export type BaseInputProps = InputBaseProps & ClearableInput & {
89
+ /**
90
+ * The type of input.
91
+ * @default 'base'
92
+ */
93
+ variant?: 'base';
94
+ };
95
+ /**
96
+ * 2. With Affix Input - Input with prefix/suffix decorations
97
+ */
98
+ export type WithAffixInputProps = InputBaseProps & TextFieldAffixProps & ClearableInput & {
99
+ variant: 'affix';
100
+ };
101
+ /**
102
+ * 3. Search Input - Input with search icon prefix
103
+ */
104
+ export type SearchInputProps = InputBaseProps & ClearableInput & {
105
+ variant: 'search';
106
+ };
107
+ /**
108
+ * 4. Number Input - Small numeric input (36x36)
109
+ */
110
+ export type NumberInputProps = InputBaseProps & NumberInput & {
111
+ variant: 'number';
112
+ };
113
+ /**
114
+ * 5. Unit Input - Input with unit text and spinner buttons
115
+ */
116
+ export type UnitInputProps = InputBaseProps & NumberInput & TextFieldAffixProps & {
117
+ variant: 'unit';
37
118
  /**
38
- * Whether the input is required.
119
+ * Whether to show spinner buttons.
39
120
  * @default false
40
121
  */
41
- required?: boolean;
42
- /**
43
- * The size of input.
44
- * @default 'medium'
45
- */
46
- size?: InputSize;
47
- /**
48
- * The props for input element with tags mode.
49
- */
50
- tagsProps?: {
51
- /**
52
- * The initial value of tags
53
- */
54
- initialTagsValue?: string[];
55
- /**
56
- * The position of input field on tags mode
57
- * @default 'bottom''
58
- */
59
- inputPosition?: 'top' | 'bottom';
60
- /**
61
- * Maximum permitted length of the tags
62
- */
63
- maxTagsLength?: number;
64
- /**
65
- * The change event handler of input tags value.
66
- */
67
- onTagsChange?: (tags: TagsType) => void;
122
+ showSpinner?: boolean;
123
+ /**
124
+ * Callback when spinner up button is clicked.
125
+ */
126
+ onSpinUp?: VoidFunction;
127
+ /**
128
+ * Callback when spinner down button is clicked.
129
+ */
130
+ onSpinDown?: VoidFunction;
131
+ };
132
+ /**
133
+ * 6. Action Input - Input with action button (button is adjacent to TextField, not inside)
134
+ */
135
+ export type ActionInputProps = InputBaseProps & {
136
+ variant: 'action';
137
+ /**
138
+ * The action button props.
139
+ */
140
+ actionButton: ActionButtonProps & {
141
+ position: 'prefix' | 'suffix';
68
142
  };
143
+ };
144
+ /**
145
+ * 7. Select Input - Input with select button (button is adjacent to TextField, not inside)
146
+ */
147
+ export type SelectInputProps = InputBaseProps & {
148
+ variant: 'select';
69
149
  /**
70
- * The value of input.
150
+ * The select button props.
71
151
  */
72
- value?: string;
73
- }
152
+ selectButton: SelectButtonProps & {
153
+ position: 'prefix' | 'suffix' | 'both';
154
+ };
155
+ };
156
+ /**
157
+ * 8. Password Input - Password input with visibility toggle
158
+ */
159
+ export type WithPasswordStrengthIndicator = {
160
+ /**
161
+ * Whether to show password strength indicator.
162
+ */
163
+ showPasswordStrengthIndicator?: false;
164
+ passwordStrengthIndicator?: never;
165
+ } | {
166
+ /**
167
+ * Whether to show password strength indicator.
168
+ */
169
+ showPasswordStrengthIndicator: true;
170
+ /**
171
+ * The props for password strength indicator.
172
+ */
173
+ passwordStrengthIndicator: PasswordStrengthIndicatorProps;
174
+ };
175
+ export type PasswordInputProps = InputBaseProps & ClearableInput & WithPasswordStrengthIndicator & {
176
+ variant: 'password';
177
+ };
178
+ export type InputProps = BaseInputProps | WithAffixInputProps | SearchInputProps | NumberInputProps | UnitInputProps | ActionInputProps | SelectInputProps | PasswordInputProps;
74
179
  /**
75
180
  * The react component for `mezzanine` input.
76
181
  */