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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (547) hide show
  1. package/Accordion/AccordionControlContext.js +1 -0
  2. package/Accordion/AccordionDetails.js +1 -0
  3. package/Accordion/AccordionSummary.js +10 -10
  4. package/Accordion/index.d.ts +6 -3
  5. package/Alert/index.d.ts +3 -2
  6. package/AlertBanner/AlertBanner.d.ts +93 -0
  7. package/AlertBanner/AlertBanner.js +154 -0
  8. package/AlertBanner/index.d.ts +2 -0
  9. package/AlertBanner/index.js +1 -0
  10. package/Anchor/Anchor.js +1 -1
  11. package/Anchor/index.d.ts +2 -1
  12. package/AppBar/index.d.ts +8 -4
  13. package/{Overlay/Overlay.d.ts → Backdrop/Backdrop.d.ts} +12 -16
  14. package/Backdrop/Backdrop.js +40 -0
  15. package/Backdrop/index.d.ts +2 -0
  16. package/Backdrop/index.js +1 -0
  17. package/Badge/Badge.d.ts +20 -14
  18. package/Badge/Badge.js +14 -16
  19. package/Badge/BadgeContainer.d.ts +1 -1
  20. package/Badge/BadgeContainer.js +1 -1
  21. package/Badge/index.d.ts +3 -2
  22. package/Badge/typings.d.ts +48 -0
  23. package/Breadcrumb/Breadcrumb.d.ts +6 -0
  24. package/Breadcrumb/Breadcrumb.js +53 -0
  25. package/Breadcrumb/BreadcrumbItem.d.ts +4 -0
  26. package/Breadcrumb/BreadcrumbItem.js +45 -0
  27. package/Breadcrumb/index.d.ts +2 -0
  28. package/Breadcrumb/index.js +1 -0
  29. package/Breadcrumb/typings.d.ts +75 -0
  30. package/Button/Button.js +24 -19
  31. package/Button/ButtonGroup.d.ts +6 -28
  32. package/Button/ButtonGroup.js +7 -16
  33. package/Button/index.d.ts +4 -10
  34. package/Button/index.js +2 -3
  35. package/Button/typings.d.ts +11 -26
  36. package/Calendar/Calendar.d.ts +31 -2
  37. package/Calendar/Calendar.js +74 -19
  38. package/Calendar/CalendarCell.d.ts +4 -0
  39. package/Calendar/CalendarCell.js +3 -3
  40. package/Calendar/CalendarConfigProviderDayjs.d.ts +21 -0
  41. package/Calendar/CalendarConfigProviderDayjs.js +15 -0
  42. package/Calendar/CalendarConfigProviderLuxon.d.ts +21 -0
  43. package/Calendar/CalendarConfigProviderLuxon.js +15 -0
  44. package/Calendar/CalendarConfigProviderMoment.d.ts +21 -0
  45. package/Calendar/CalendarConfigProviderMoment.js +15 -0
  46. package/Calendar/CalendarContext.d.ts +14 -7
  47. package/Calendar/CalendarContext.js +8 -13
  48. package/Calendar/CalendarControls.d.ts +16 -0
  49. package/Calendar/CalendarControls.js +3 -7
  50. package/Calendar/CalendarDayOfWeek.js +4 -3
  51. package/Calendar/CalendarDays.d.ts +9 -1
  52. package/Calendar/CalendarDays.js +63 -38
  53. package/Calendar/CalendarFooterActions.d.ts +13 -0
  54. package/Calendar/CalendarFooterActions.js +14 -0
  55. package/Calendar/CalendarFooterControl.d.ts +16 -0
  56. package/Calendar/CalendarFooterControl.js +14 -0
  57. package/Calendar/CalendarHalfYears.d.ts +39 -0
  58. package/Calendar/CalendarHalfYears.js +62 -0
  59. package/Calendar/CalendarMonths.js +16 -4
  60. package/Calendar/CalendarQuarters.d.ts +37 -0
  61. package/Calendar/CalendarQuarters.js +64 -0
  62. package/Calendar/CalendarQuickSelect.d.ts +21 -0
  63. package/Calendar/CalendarQuickSelect.js +15 -0
  64. package/Calendar/CalendarWeeks.d.ts +1 -1
  65. package/Calendar/CalendarWeeks.js +89 -44
  66. package/Calendar/CalendarYears.js +13 -3
  67. package/Calendar/RangeCalendar.d.ts +59 -0
  68. package/Calendar/RangeCalendar.js +232 -0
  69. package/Calendar/index.d.ts +33 -10
  70. package/Calendar/index.js +7 -0
  71. package/Calendar/useCalendarControlModifiers.d.ts +4 -4
  72. package/Calendar/useCalendarControlModifiers.js +40 -8
  73. package/Calendar/useCalendarControls.d.ts +2 -0
  74. package/Calendar/useCalendarControls.js +19 -2
  75. package/Calendar/useCalendarModeStack.js +1 -0
  76. package/Calendar/useRangeCalendarControls.d.ts +18 -0
  77. package/Calendar/useRangeCalendarControls.js +115 -0
  78. package/Card/CardActions.js +1 -1
  79. package/Card/index.d.ts +4 -2
  80. package/Checkbox/CheckAll.d.ts +16 -6
  81. package/Checkbox/CheckAll.js +40 -26
  82. package/Checkbox/Checkbox.d.ts +100 -22
  83. package/Checkbox/Checkbox.js +73 -16
  84. package/Checkbox/CheckboxGroup.d.ts +100 -18
  85. package/Checkbox/CheckboxGroup.js +169 -24
  86. package/Checkbox/CheckboxGroupContext.d.ts +0 -2
  87. package/Checkbox/CheckboxGroupContext.js +1 -0
  88. package/Checkbox/index.d.ts +16 -4
  89. package/Checkbox/index.js +6 -2
  90. package/Checkbox/typings.d.ts +37 -0
  91. package/ClearActions/ClearActions.d.ts +41 -0
  92. package/ClearActions/ClearActions.js +23 -0
  93. package/ClearActions/index.d.ts +3 -0
  94. package/ClearActions/index.js +5 -0
  95. package/ConfirmActions/ConfirmActions.d.ts +2 -1
  96. package/ConfirmActions/index.d.ts +2 -1
  97. package/DatePicker/DatePicker.d.ts +12 -1
  98. package/DatePicker/DatePicker.js +41 -9
  99. package/DatePicker/DatePickerCalendar.d.ts +2 -5
  100. package/DatePicker/DatePickerCalendar.js +37 -37
  101. package/DatePicker/index.d.ts +4 -2
  102. package/DateRangePicker/DateRangePicker.d.ts +18 -2
  103. package/DateRangePicker/DateRangePicker.js +143 -100
  104. package/DateRangePicker/DateRangePickerCalendar.d.ts +13 -9
  105. package/DateRangePicker/DateRangePickerCalendar.js +7 -94
  106. package/DateRangePicker/index.d.ts +6 -3
  107. package/DateRangePicker/useDateRangeCalendarControls.js +11 -6
  108. package/DateRangePicker/useDateRangePickerValue.d.ts +38 -15
  109. package/DateRangePicker/useDateRangePickerValue.js +142 -63
  110. package/DateTimePicker/DateTimePicker.d.ts +31 -10
  111. package/DateTimePicker/DateTimePicker.js +179 -94
  112. package/DateTimePicker/index.d.ts +2 -2
  113. package/DateTimePicker/index.js +0 -1
  114. package/Drawer/Drawer.d.ts +47 -6
  115. package/Drawer/Drawer.js +36 -11
  116. package/Drawer/index.d.ts +2 -1
  117. package/Dropdown/Dropdown.js +12 -22
  118. package/Dropdown/index.d.ts +2 -1
  119. package/Empty/Empty.d.ts +1 -16
  120. package/Empty/Empty.js +59 -7
  121. package/Empty/icons/EmptyMainInitialDataIcon.d.ts +4 -0
  122. package/Empty/icons/EmptyMainInitialDataIcon.js +9 -0
  123. package/Empty/icons/EmptyMainResultIcon.d.ts +4 -0
  124. package/Empty/icons/EmptyMainResultIcon.js +9 -0
  125. package/Empty/icons/EmptyMainSystemIcon.d.ts +4 -0
  126. package/Empty/icons/EmptyMainSystemIcon.js +9 -0
  127. package/Empty/index.d.ts +2 -1
  128. package/Empty/typings.d.ts +61 -0
  129. package/Form/FormControlContext.js +1 -0
  130. package/Form/FormHintText.d.ts +18 -0
  131. package/Form/FormHintText.js +17 -0
  132. package/Form/FormLabel.js +1 -0
  133. package/Form/index.d.ts +9 -5
  134. package/Form/index.js +1 -1
  135. package/Form/useAutoCompleteValueControl.js +2 -0
  136. package/Form/useCheckboxControlValue.js +0 -1
  137. package/Form/useSelectValueControl.js +2 -0
  138. package/InlineMessage/InlineMessage.d.ts +33 -0
  139. package/InlineMessage/InlineMessage.js +42 -0
  140. package/InlineMessage/InlineMessageGroup.d.ts +24 -0
  141. package/InlineMessage/InlineMessageGroup.js +21 -0
  142. package/InlineMessage/index.d.ts +4 -0
  143. package/InlineMessage/index.js +2 -0
  144. package/Input/ActionButton/ActionButton.d.ts +26 -0
  145. package/Input/ActionButton/ActionButton.js +14 -0
  146. package/Input/ActionButton/index.d.ts +2 -0
  147. package/Input/ActionButton/index.js +1 -0
  148. package/Input/Input.d.ts +147 -42
  149. package/Input/Input.js +195 -27
  150. package/Input/PasswordStrengthIndicator/PasswordStrengthIndicator.d.ts +31 -0
  151. package/Input/PasswordStrengthIndicator/PasswordStrengthIndicator.js +18 -0
  152. package/Input/PasswordStrengthIndicator/index.d.ts +2 -0
  153. package/Input/PasswordStrengthIndicator/index.js +1 -0
  154. package/Input/SelectButton/SelectButton.d.ts +20 -0
  155. package/Input/SelectButton/SelectButton.js +21 -0
  156. package/Input/SelectButton/index.d.ts +2 -0
  157. package/Input/SelectButton/index.js +1 -0
  158. package/Input/SpinnerButton/SpinnerButton.d.ts +19 -0
  159. package/Input/SpinnerButton/SpinnerButton.js +14 -0
  160. package/Input/SpinnerButton/index.d.ts +2 -0
  161. package/Input/SpinnerButton/index.js +1 -0
  162. package/Input/index.d.ts +3 -2
  163. package/Menu/Menu.js +1 -0
  164. package/Menu/index.d.ts +8 -4
  165. package/Message/Message.d.ts +6 -4
  166. package/Message/Message.js +86 -9
  167. package/Message/MessageTimerController.d.ts +14 -0
  168. package/Message/MessageTimerController.js +27 -0
  169. package/Message/index.d.ts +3 -2
  170. package/Modal/Modal.js +2 -2
  171. package/Modal/ModalActions.js +1 -0
  172. package/Modal/ModalControl.js +1 -0
  173. package/Modal/ModalHeader.js +1 -0
  174. package/Modal/index.d.ts +10 -5
  175. package/Modal/useModalContainer.d.ts +1 -1
  176. package/Modal/useModalContainer.js +2 -4
  177. package/Navigation/Navigation.js +37 -34
  178. package/Navigation/NavigationContext.js +1 -0
  179. package/Navigation/NavigationItem.js +1 -0
  180. package/Navigation/NavigationSubMenu.js +16 -26
  181. package/Navigation/index.d.ts +8 -4
  182. package/Notification/Notification.js +0 -1
  183. package/Notification/index.d.ts +3 -2
  184. package/Notifier/NotifierManager.d.ts +15 -2
  185. package/Notifier/NotifierManager.js +60 -18
  186. package/Notifier/createNotifier.d.ts +9 -0
  187. package/Notifier/createNotifier.js +3 -2
  188. package/Notifier/typings.d.ts +3 -1
  189. package/OverflowTooltip/OverflowCounterTag.d.ts +12 -0
  190. package/OverflowTooltip/OverflowCounterTag.js +48 -0
  191. package/OverflowTooltip/OverflowTooltip.d.ts +34 -0
  192. package/OverflowTooltip/OverflowTooltip.js +53 -0
  193. package/OverflowTooltip/index.d.ts +2 -0
  194. package/OverflowTooltip/index.js +2 -0
  195. package/PageFooter/PageFooter.d.ts +73 -8
  196. package/PageFooter/PageFooter.js +34 -3
  197. package/PageFooter/index.d.ts +2 -1
  198. package/PageHeader/PageHeader.d.ts +40 -0
  199. package/PageHeader/PageHeader.js +70 -0
  200. package/PageHeader/index.d.ts +2 -0
  201. package/PageHeader/index.js +1 -0
  202. package/PageToolbar/PageToolbar.d.ts +114 -0
  203. package/PageToolbar/PageToolbar.js +23 -0
  204. package/PageToolbar/index.d.ts +2 -0
  205. package/PageToolbar/index.js +1 -0
  206. package/PageToolbar/utils.d.ts +23 -0
  207. package/PageToolbar/utils.js +165 -0
  208. package/Pagination/Pagination.d.ts +23 -29
  209. package/Pagination/Pagination.js +3 -4
  210. package/Pagination/PaginationItem.d.ts +1 -1
  211. package/Pagination/PaginationItem.js +4 -3
  212. package/Pagination/PaginationJumper.d.ts +7 -9
  213. package/Pagination/PaginationJumper.js +3 -5
  214. package/Pagination/PaginationPageSize.d.ts +8 -11
  215. package/Pagination/PaginationPageSize.js +5 -4
  216. package/Pagination/index.d.ts +8 -4
  217. package/Pagination/usePagination.d.ts +3 -1
  218. package/Pagination/usePagination.js +12 -21
  219. package/Picker/FormattedInput.d.ts +17 -0
  220. package/Picker/FormattedInput.js +74 -0
  221. package/Picker/MaskFormat.d.ts +39 -0
  222. package/Picker/MaskFormat.js +94 -0
  223. package/Picker/PickerTrigger.d.ts +13 -3
  224. package/Picker/PickerTrigger.js +17 -2
  225. package/Picker/PickerTriggerWithSeparator.d.ts +124 -0
  226. package/Picker/PickerTriggerWithSeparator.js +80 -0
  227. package/Picker/RangePickerTrigger.d.ts +55 -4
  228. package/Picker/RangePickerTrigger.js +65 -7
  229. package/Picker/formatUtils.d.ts +34 -0
  230. package/Picker/formatUtils.js +124 -0
  231. package/Picker/index.d.ts +17 -6
  232. package/Picker/index.js +4 -1
  233. package/Picker/useDateInputFormatter.d.ts +52 -0
  234. package/Picker/useDateInputFormatter.js +382 -0
  235. package/Picker/usePickerValue.d.ts +1 -2
  236. package/Picker/usePickerValue.js +8 -13
  237. package/Popconfirm/Popconfirm.js +1 -1
  238. package/Popconfirm/index.d.ts +2 -1
  239. package/Popover/Popover.js +4 -8
  240. package/Popover/index.d.ts +2 -1
  241. package/Popper/Popper.d.ts +15 -10
  242. package/Popper/Popper.js +88 -17
  243. package/Popper/index.d.ts +2 -1
  244. package/Portal/Portal.d.ts +13 -5
  245. package/Portal/Portal.js +25 -10
  246. package/Portal/index.d.ts +4 -1
  247. package/Portal/index.js +1 -0
  248. package/Portal/portalRegistry.d.ts +17 -0
  249. package/Portal/portalRegistry.js +92 -0
  250. package/Progress/Progress.d.ts +23 -30
  251. package/Progress/Progress.js +71 -21
  252. package/Progress/index.d.ts +3 -2
  253. package/Provider/ConfigProvider.d.ts +1 -0
  254. package/Provider/ConfigProvider.js +1 -0
  255. package/Provider/context.js +1 -0
  256. package/Radio/Radio.d.ts +37 -4
  257. package/Radio/Radio.js +23 -12
  258. package/Radio/RadioGroup.d.ts +37 -8
  259. package/Radio/RadioGroup.js +6 -5
  260. package/Radio/RadioGroupContext.d.ts +2 -1
  261. package/Radio/RadioGroupContext.js +1 -0
  262. package/Radio/index.d.ts +5 -3
  263. package/ResultState/ResultState.d.ts +52 -0
  264. package/ResultState/ResultState.js +24 -0
  265. package/ResultState/index.d.ts +2 -0
  266. package/ResultState/index.js +1 -0
  267. package/Select/AutoComplete.d.ts +1 -1
  268. package/Select/AutoComplete.js +2 -1
  269. package/Select/Option.js +1 -0
  270. package/Select/Select.d.ts +1 -1
  271. package/Select/Select.js +2 -1
  272. package/Select/SelectControlContext.js +1 -0
  273. package/Select/SelectTrigger.d.ts +1 -87
  274. package/Select/SelectTrigger.js +26 -21
  275. package/Select/SelectTriggerTags.d.ts +1 -1
  276. package/Select/SelectTriggerTags.js +47 -18
  277. package/Select/TreeSelect.d.ts +1 -1
  278. package/Select/TreeSelect.js +2 -1
  279. package/Select/index.d.ts +14 -7
  280. package/Select/typings.d.ts +99 -0
  281. package/Select/useSelectTriggerTags.d.ts +15 -8
  282. package/Select/useSelectTriggerTags.js +83 -44
  283. package/Selection/Selection.d.ts +98 -0
  284. package/Selection/Selection.js +46 -0
  285. package/Selection/index.d.ts +12 -0
  286. package/Selection/index.js +5 -0
  287. package/Skeleton/Skeleton.d.ts +10 -3
  288. package/Skeleton/Skeleton.js +12 -4
  289. package/Skeleton/index.d.ts +2 -1
  290. package/Slider/Slider.d.ts +44 -7
  291. package/Slider/Slider.js +17 -13
  292. package/Slider/index.d.ts +5 -3
  293. package/Spin/Spin.d.ts +39 -0
  294. package/{Loading/Loading.js → Spin/Spin.js} +9 -9
  295. package/Spin/index.d.ts +2 -0
  296. package/Spin/index.js +1 -0
  297. package/Stepper/Step.d.ts +1 -35
  298. package/Stepper/Step.js +43 -8
  299. package/Stepper/Stepper.d.ts +1 -14
  300. package/Stepper/Stepper.js +49 -15
  301. package/Stepper/index.d.ts +5 -2
  302. package/Stepper/index.js +1 -0
  303. package/Stepper/typings.d.ts +77 -0
  304. package/Stepper/useStepDistance.d.ts +10 -0
  305. package/Stepper/useStepDistance.js +81 -0
  306. package/Stepper/useStepper.d.ts +21 -0
  307. package/Stepper/useStepper.js +26 -0
  308. package/Tab/Tab.d.ts +32 -0
  309. package/Tab/Tab.js +57 -0
  310. package/Tab/TabItem.d.ts +27 -0
  311. package/Tab/TabItem.js +18 -0
  312. package/Tab/index.d.ts +4 -0
  313. package/Tab/index.js +2 -0
  314. package/Table/Table.d.ts +75 -94
  315. package/Table/Table.js +216 -161
  316. package/Table/TableContext.d.ts +114 -51
  317. package/Table/TableContext.js +22 -3
  318. package/Table/components/TableBody.d.ts +5 -0
  319. package/Table/components/TableBody.js +102 -0
  320. package/Table/components/TableCell.d.ts +17 -0
  321. package/Table/components/TableCell.js +74 -0
  322. package/Table/components/TableColGroup.d.ts +4 -0
  323. package/Table/components/TableColGroup.js +206 -0
  324. package/Table/components/TableDragHandleCell.d.ts +9 -0
  325. package/Table/components/TableDragHandleCell.js +37 -0
  326. package/Table/components/TableExpandCell.d.ts +11 -0
  327. package/Table/components/TableExpandCell.js +44 -0
  328. package/Table/components/TableExpandedRow.d.ts +9 -0
  329. package/Table/components/TableExpandedRow.js +46 -0
  330. package/Table/components/TableHeader.d.ts +4 -0
  331. package/Table/components/TableHeader.js +125 -0
  332. package/Table/components/TablePagination.d.ts +3 -0
  333. package/Table/components/TablePagination.js +11 -0
  334. package/Table/components/TableResizeHandle.d.ts +13 -0
  335. package/Table/components/TableResizeHandle.js +115 -0
  336. package/Table/components/TableRow.d.ts +12 -0
  337. package/Table/components/TableRow.js +126 -0
  338. package/Table/components/TableSelectionCell.d.ts +13 -0
  339. package/Table/components/TableSelectionCell.js +35 -0
  340. package/Table/components/index.d.ts +10 -0
  341. package/Table/components/index.js +10 -0
  342. package/Table/hooks/index.d.ts +9 -0
  343. package/Table/hooks/index.js +8 -0
  344. package/Table/hooks/typings.d.ts +14 -0
  345. package/Table/hooks/useTableColumns.d.ts +8 -0
  346. package/Table/hooks/useTableColumns.js +91 -0
  347. package/Table/hooks/useTableDataSource.d.ts +57 -0
  348. package/Table/hooks/useTableDataSource.js +183 -0
  349. package/Table/hooks/useTableExpansion.d.ts +7 -0
  350. package/Table/hooks/useTableExpansion.js +52 -0
  351. package/Table/hooks/useTableFixedOffsets.d.ts +29 -0
  352. package/Table/hooks/useTableFixedOffsets.js +241 -0
  353. package/Table/hooks/useTableScroll.d.ts +12 -0
  354. package/Table/hooks/useTableScroll.js +58 -0
  355. package/Table/hooks/useTableSelection.d.ts +7 -0
  356. package/Table/hooks/useTableSelection.js +94 -0
  357. package/Table/hooks/useTableSorting.d.ts +6 -0
  358. package/Table/hooks/useTableSorting.js +32 -0
  359. package/Table/hooks/useTableVirtualization.d.ts +22 -0
  360. package/Table/hooks/useTableVirtualization.js +115 -0
  361. package/Table/index.d.ts +7 -7
  362. package/Table/index.js +22 -6
  363. package/Table/utils/index.d.ts +2 -0
  364. package/Table/utils/index.js +1 -0
  365. package/Table/utils/useTableRowSelection.d.ts +18 -0
  366. package/Table/utils/useTableRowSelection.js +63 -0
  367. package/Tag/Tag.d.ts +2 -25
  368. package/Tag/Tag.js +23 -13
  369. package/Tag/TagGroup.d.ts +12 -0
  370. package/Tag/TagGroup.js +41 -0
  371. package/Tag/index.d.ts +2 -1
  372. package/Tag/typings.d.ts +78 -0
  373. package/TextField/TextField.d.ts +78 -19
  374. package/TextField/TextField.js +58 -22
  375. package/TextField/index.d.ts +2 -1
  376. package/Textarea/Textarea.d.ts +19 -51
  377. package/Textarea/Textarea.js +13 -19
  378. package/Textarea/index.d.ts +2 -2
  379. package/TimePanel/TimePanel.d.ts +1 -22
  380. package/TimePanel/TimePanel.js +31 -26
  381. package/TimePanel/TimePanelAction.d.ts +2 -8
  382. package/TimePanel/TimePanelAction.js +2 -2
  383. package/TimePanel/TimePanelColumn.d.ts +0 -13
  384. package/TimePanel/TimePanelColumn.js +9 -11
  385. package/TimePanel/index.d.ts +6 -3
  386. package/TimePicker/TimePicker.d.ts +10 -1
  387. package/TimePicker/TimePicker.js +86 -35
  388. package/TimePicker/TimePickerPanel.d.ts +1 -2
  389. package/TimePicker/TimePickerPanel.js +2 -2
  390. package/TimePicker/index.d.ts +4 -2
  391. package/Toggle/Toggle.d.ts +46 -0
  392. package/Toggle/Toggle.js +29 -0
  393. package/Toggle/index.d.ts +3 -0
  394. package/Toggle/index.js +1 -0
  395. package/Tooltip/Tooltip.d.ts +13 -2
  396. package/Tooltip/Tooltip.js +56 -10
  397. package/Tooltip/index.d.ts +2 -1
  398. package/Tooltip/useDelayMouseEnterLeave.d.ts +1 -2
  399. package/Tooltip/useDelayMouseEnterLeave.js +10 -13
  400. package/Transition/Collapse.d.ts +2 -0
  401. package/Transition/Collapse.js +5 -6
  402. package/Transition/Fade.js +4 -4
  403. package/Transition/Rotate.d.ts +42 -0
  404. package/Transition/Rotate.js +30 -0
  405. package/Transition/Scale.d.ts +13 -0
  406. package/Transition/{Grow.js → Scale.js} +19 -16
  407. package/Transition/Slide.d.ts +7 -0
  408. package/Transition/{Zoom.js → Slide.js} +14 -12
  409. package/Transition/SlideFade.d.ts +3 -0
  410. package/Transition/SlideFade.js +5 -4
  411. package/Transition/Transition.d.ts +2 -2
  412. package/Transition/Translate.d.ts +14 -0
  413. package/Transition/Translate.js +94 -0
  414. package/Transition/index.d.ts +16 -6
  415. package/Transition/index.js +4 -2
  416. package/Transition/useAutoTransitionDuration.d.ts +1 -1
  417. package/Transition/useAutoTransitionDuration.js +3 -3
  418. package/Transition/useSetNodeTransition.js +0 -2
  419. package/Tree/TreeNode.js +7 -6
  420. package/Tree/index.d.ts +10 -5
  421. package/Typography/Typography.d.ts +6 -9
  422. package/Typography/Typography.js +7 -9
  423. package/Typography/index.d.ts +2 -5
  424. package/Upload/Upload.d.ts +175 -0
  425. package/Upload/Upload.js +279 -0
  426. package/Upload/UploadItem.d.ts +82 -0
  427. package/Upload/UploadItem.js +118 -0
  428. package/Upload/UploadPictureCard.d.ts +110 -0
  429. package/Upload/UploadPictureCard.js +101 -0
  430. package/Upload/Uploader.d.ts +161 -0
  431. package/Upload/Uploader.js +120 -0
  432. package/Upload/index.d.ts +8 -6
  433. package/Upload/index.js +4 -5
  434. package/Upload/upload-utils.d.ts +41 -0
  435. package/Upload/upload-utils.js +65 -0
  436. package/_internal/InputCheck/InputCheck.d.ts +15 -1
  437. package/_internal/InputCheck/InputCheck.js +6 -2
  438. package/_internal/InputCheck/InputCheckGroup.d.ts +11 -1
  439. package/_internal/InputCheck/InputCheckGroup.js +4 -2
  440. package/_internal/InputCheck/index.d.ts +4 -2
  441. package/_internal/InputTriggerPopper/InputTriggerPopper.js +15 -25
  442. package/_internal/InputTriggerPopper/index.d.ts +2 -1
  443. package/_internal/SlideFadeOverlay/SlideFadeOverlay.d.ts +3 -3
  444. package/_internal/SlideFadeOverlay/SlideFadeOverlay.js +5 -28
  445. package/_internal/SlideFadeOverlay/index.d.ts +2 -1
  446. package/_internal/SlideFadeOverlay/useTopStack.js +1 -0
  447. package/dayjs.d.ts +21 -0
  448. package/dayjs.js +2 -0
  449. package/hooks/useComposeRefs.js +1 -1
  450. package/hooks/useLastCallback.js +3 -1
  451. package/hooks/useScrollLock.d.ts +28 -0
  452. package/hooks/useScrollLock.js +134 -0
  453. package/index.d.ts +128 -58
  454. package/index.js +90 -80
  455. package/luxon.d.ts +21 -0
  456. package/luxon.js +2 -0
  457. package/moment.d.ts +21 -0
  458. package/moment.js +2 -0
  459. package/package.json +14 -17
  460. package/utils/composeRefs.js +0 -1
  461. package/utils/flatten-children.d.ts +12 -0
  462. package/utils/flatten-children.js +37 -0
  463. package/utils/get-css-variable-value.d.ts +2 -0
  464. package/utils/get-css-variable-value.js +12 -0
  465. package/Button/IconButton.d.ts +0 -21
  466. package/Button/IconButton.js +0 -13
  467. package/DateTimePicker/DateTimePickerPanel.d.ts +0 -28
  468. package/DateTimePicker/DateTimePickerPanel.js +0 -49
  469. package/Form/FormMessage.d.ts +0 -7
  470. package/Form/FormMessage.js +0 -18
  471. package/Form/useInputWithTagsModeValue.js +0 -86
  472. package/Loading/Loading.d.ts +0 -33
  473. package/Loading/index.d.ts +0 -1
  474. package/Loading/index.js +0 -1
  475. package/Overlay/Overlay.js +0 -31
  476. package/Overlay/index.d.ts +0 -1
  477. package/Overlay/index.js +0 -1
  478. package/Picker/useRangePickerValue.d.ts +0 -23
  479. package/Picker/useRangePickerValue.js +0 -99
  480. package/Switch/Switch.d.ts +0 -43
  481. package/Switch/Switch.js +0 -28
  482. package/Switch/index.d.ts +0 -2
  483. package/Switch/index.js +0 -1
  484. package/Table/TableBody.d.ts +0 -10
  485. package/Table/TableBody.js +0 -30
  486. package/Table/TableBodyRow.d.ts +0 -11
  487. package/Table/TableBodyRow.js +0 -64
  488. package/Table/TableCell.d.ts +0 -19
  489. package/Table/TableCell.js +0 -24
  490. package/Table/TableExpandedTable.d.ts +0 -11
  491. package/Table/TableExpandedTable.js +0 -28
  492. package/Table/TableHeader.d.ts +0 -3
  493. package/Table/TableHeader.js +0 -35
  494. package/Table/draggable/useTableDraggable.d.ts +0 -14
  495. package/Table/draggable/useTableDraggable.js +0 -64
  496. package/Table/editable/TableEditRenderWrapper.d.ts +0 -7
  497. package/Table/editable/TableEditRenderWrapper.js +0 -15
  498. package/Table/expandable/TableExpandable.d.ts +0 -27
  499. package/Table/expandable/TableExpandable.js +0 -24
  500. package/Table/pagination/TablePagination.d.ts +0 -10
  501. package/Table/pagination/TablePagination.js +0 -25
  502. package/Table/pagination/useTablePagination.d.ts +0 -8
  503. package/Table/pagination/useTablePagination.js +0 -29
  504. package/Table/refresh/TableRefresh.d.ts +0 -10
  505. package/Table/refresh/TableRefresh.js +0 -20
  506. package/Table/rowSelection/TableRowSelection.d.ts +0 -18
  507. package/Table/rowSelection/TableRowSelection.js +0 -92
  508. package/Table/rowSelection/useTableRowSelection.d.ts +0 -6
  509. package/Table/rowSelection/useTableRowSelection.js +0 -53
  510. package/Table/sorting/TableSortingIcon.d.ts +0 -10
  511. package/Table/sorting/TableSortingIcon.js +0 -32
  512. package/Table/sorting/useTableSorting.d.ts +0 -11
  513. package/Table/sorting/useTableSorting.js +0 -120
  514. package/Table/useTableFetchMore.d.ts +0 -10
  515. package/Table/useTableFetchMore.js +0 -50
  516. package/Table/useTableLoading.d.ts +0 -5
  517. package/Table/useTableLoading.js +0 -19
  518. package/Table/useTableScroll.d.ts +0 -596
  519. package/Table/useTableScroll.js +0 -294
  520. package/Tabs/Tab.d.ts +0 -18
  521. package/Tabs/Tab.js +0 -16
  522. package/Tabs/TabPane.d.ts +0 -14
  523. package/Tabs/TabPane.js +0 -18
  524. package/Tabs/Tabs.d.ts +0 -39
  525. package/Tabs/Tabs.js +0 -47
  526. package/Tabs/index.d.ts +0 -3
  527. package/Tabs/index.js +0 -3
  528. package/Tabs/useTabsOverflow.d.ts +0 -8
  529. package/Tabs/useTabsOverflow.js +0 -61
  530. package/Transition/Grow.d.ts +0 -12
  531. package/Transition/Zoom.d.ts +0 -7
  532. package/Upload/UploadButton.d.ts +0 -9
  533. package/Upload/UploadButton.js +0 -23
  534. package/Upload/UploadInput.d.ts +0 -20
  535. package/Upload/UploadInput.js +0 -24
  536. package/Upload/UploadPicture.d.ts +0 -49
  537. package/Upload/UploadPicture.js +0 -51
  538. package/Upload/UploadPictureBlock.d.ts +0 -20
  539. package/Upload/UploadPictureBlock.js +0 -81
  540. package/Upload/UploadPictureWall.d.ts +0 -81
  541. package/Upload/UploadPictureWall.js +0 -168
  542. package/Upload/UploadPictureWallItem.d.ts +0 -15
  543. package/Upload/UploadPictureWallItem.js +0 -18
  544. package/Upload/UploadResult.d.ts +0 -35
  545. package/Upload/UploadResult.js +0 -29
  546. package/utils/scroll-lock.d.ts +0 -2
  547. package/utils/scroll-lock.js +0 -24
@@ -0,0 +1,102 @@
1
+ 'use client';
2
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
3
+ import { memo, forwardRef, useMemo, Fragment as Fragment$1 } from 'react';
4
+ import { tableClasses, getRowKey } from '@mezzanine-ui/core/table';
5
+ import { Draggable } from '@hello-pangea/dnd';
6
+ import { useTableContext } from '../TableContext.js';
7
+ import { TableRow } from './TableRow.js';
8
+ import { TableExpandedRow } from './TableExpandedRow.js';
9
+ import { useTableVirtualization } from '../hooks/useTableVirtualization.js';
10
+ import { composeRefs } from '../../utils/composeRefs.js';
11
+ import { MOTION_EASING, MOTION_DURATION } from '@mezzanine-ui/system/motion';
12
+ import Empty from '../../Empty/Empty.js';
13
+ import Fade from '../../Transition/Fade.js';
14
+ import cx from 'clsx';
15
+
16
+ const TableBodyInner = forwardRef(function TableBody(props, ref) {
17
+ const { className, droppableRef } = props;
18
+ const { columns, dataSource, draggable, emptyProps, expansion, loading, scrollContainerRef, selection, size, virtualScrollEnabled, } = useTableContext();
19
+ // Use virtualization with the scroll container ref from parent
20
+ const virtualization = useTableVirtualization({
21
+ dataSource,
22
+ enabled: virtualScrollEnabled !== null && virtualScrollEnabled !== void 0 ? virtualScrollEnabled : false,
23
+ isRowExpanded: expansion === null || expansion === void 0 ? void 0 : expansion.isRowExpanded,
24
+ scrollContainerRef: scrollContainerRef,
25
+ });
26
+ const isEmpty = dataSource.length === 0;
27
+ // Calculate total column span for empty row
28
+ const totalColSpan = useMemo(() => {
29
+ let colSpan = columns.length;
30
+ if (draggable === null || draggable === void 0 ? void 0 : draggable.enabled)
31
+ colSpan += 1;
32
+ if (selection)
33
+ colSpan += 1;
34
+ if (expansion)
35
+ colSpan += 1;
36
+ return colSpan;
37
+ }, [columns.length, draggable === null || draggable === void 0 ? void 0 : draggable.enabled, expansion, selection]);
38
+ // Helper to render expanded content with optional animation
39
+ const renderExpandedContent = (record, isExpanded) => {
40
+ if (!expansion)
41
+ return null;
42
+ return (jsx(Fade, { duration: {
43
+ enter: MOTION_DURATION.moderate,
44
+ exit: MOTION_DURATION.moderate,
45
+ }, easing: {
46
+ enter: MOTION_EASING.entrance,
47
+ exit: MOTION_EASING.exit,
48
+ }, in: isExpanded, children: jsx(TableExpandedRow, { record: record }) }));
49
+ };
50
+ // Helper to render row and its expanded content
51
+ const renderRowContent = (record, index, options) => {
52
+ var _a;
53
+ const rowKey = getRowKey(record);
54
+ const isExpanded = (_a = expansion === null || expansion === void 0 ? void 0 : expansion.isRowExpanded(rowKey)) !== null && _a !== void 0 ? _a : false;
55
+ return (jsxs(Fragment, { children: [jsx(TableRow, { className: options === null || options === void 0 ? void 0 : options.className, "data-index": virtualization ? index : undefined, draggableProvided: options === null || options === void 0 ? void 0 : options.draggableProvided, record: record, ref: options === null || options === void 0 ? void 0 : options.measureRef, rowIndex: index }), renderExpandedContent(record, isExpanded)] }));
56
+ };
57
+ const renderRows = () => {
58
+ // Empty state
59
+ if (isEmpty && !loading) {
60
+ const { size: emptySize = size, ...restEmptyProp } = emptyProps || {};
61
+ return (jsx("tr", { className: tableClasses.emptyRow, children: jsx("td", { className: tableClasses.empty, colSpan: totalColSpan, children: jsx(Empty, { size: emptySize, ...restEmptyProp }) }) }));
62
+ }
63
+ // Determine items to render (virtualized or all)
64
+ const itemsToRender = virtualization
65
+ ? virtualization.virtualItems.map((vi) => ({
66
+ index: vi.index,
67
+ measureRef: virtualization.measureElement,
68
+ record: dataSource[vi.index],
69
+ }))
70
+ : dataSource.map((record, index) => ({
71
+ index,
72
+ measureRef: undefined,
73
+ record,
74
+ }));
75
+ // Render each row, optionally wrapped with Draggable
76
+ const rowElements = itemsToRender.map((item) => {
77
+ const rowKey = getRowKey(item.record);
78
+ // Draggable mode
79
+ if ((draggable === null || draggable === void 0 ? void 0 : draggable.enabled) && !virtualization) {
80
+ return (jsx(Draggable, { draggableId: String(rowKey), index: item.index, isDragDisabled: !draggable.enabled, children: (provided, snapshot) => (jsx(Fragment, { children: renderRowContent(item.record, item.index, {
81
+ className: snapshot.isDragging
82
+ ? tableClasses.bodyRowDragging
83
+ : undefined,
84
+ draggableProvided: provided,
85
+ }) })) }, rowKey));
86
+ }
87
+ // Normal or virtualized row
88
+ return (jsx(Fragment$1, { children: renderRowContent(item.record, item.index, {
89
+ measureRef: item.measureRef,
90
+ }) }, rowKey));
91
+ });
92
+ // Virtualization needs padding rows for scroll height
93
+ if (virtualization) {
94
+ return (jsxs(Fragment, { children: [virtualization.paddingTop > 0 && (jsx("tr", { "aria-hidden": "true", children: jsx("td", { colSpan: totalColSpan, style: { height: virtualization.paddingTop, padding: 0 } }) })), rowElements, virtualization.paddingBottom > 0 && (jsx("tr", { "aria-hidden": "true", children: jsx("td", { colSpan: totalColSpan, style: { height: virtualization.paddingBottom, padding: 0 } }) }))] }));
95
+ }
96
+ return rowElements;
97
+ };
98
+ return (jsx("tbody", { className: cx(tableClasses.body, className), ref: droppableRef ? composeRefs([ref, droppableRef]) : ref, children: renderRows() }));
99
+ });
100
+ const TableBody = memo(TableBodyInner);
101
+
102
+ export { TableBody };
@@ -0,0 +1,17 @@
1
+ import { type TableColumn, type TableDataSource } from '@mezzanine-ui/core/table';
2
+ export interface TableCellProps<T extends TableDataSource = TableDataSource> {
3
+ className?: string;
4
+ colSpan?: number;
5
+ column: TableColumn<T>;
6
+ columnIndex: number;
7
+ fixed?: 'end' | 'start';
8
+ fixedOffset?: number;
9
+ record: T;
10
+ rowIndex: number;
11
+ /** Whether to show shadow on this cell (only for edge fixed columns) */
12
+ showShadow?: boolean;
13
+ style?: React.CSSProperties;
14
+ }
15
+ declare const TableCellInner: import("react").ForwardRefExoticComponent<TableCellProps<TableDataSource> & import("react").RefAttributes<HTMLTableCellElement>>;
16
+ export declare const TableCell: typeof TableCellInner;
17
+ export {};
@@ -0,0 +1,74 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { memo, forwardRef, useMemo, useCallback } from 'react';
4
+ import { getCellAlignClass, tableClasses } from '@mezzanine-ui/core/table';
5
+ import { useTableContext } from '../TableContext.js';
6
+ import Skeleton from '../../Skeleton/Skeleton.js';
7
+ import cx from 'clsx';
8
+
9
+ const TableCellInner = forwardRef(function TableCell(props, ref) {
10
+ const { loading } = useTableContext();
11
+ const { className, colSpan = 1, column, columnIndex, fixed, fixedOffset = 0, record, rowIndex, showShadow = false, style, } = props;
12
+ const { highlight } = useTableContext();
13
+ const cellValue = useMemo(() => {
14
+ var _a;
15
+ const dataIndex = (_a = column.dataIndex) !== null && _a !== void 0 ? _a : column.key;
16
+ if (column.render) {
17
+ return column.render(record, rowIndex);
18
+ }
19
+ return record[dataIndex];
20
+ }, [column, record, rowIndex]);
21
+ // Width is managed by colgroup, set fixed position offset via CSS variable
22
+ const cellStyle = useMemo(() => {
23
+ const baseStyle = { ...style };
24
+ if (column.ellipsis) {
25
+ baseStyle.overflow = 'hidden';
26
+ baseStyle.textOverflow = 'ellipsis';
27
+ baseStyle.whiteSpace = 'nowrap';
28
+ }
29
+ // Set CSS variable for fixed column positioning
30
+ if (fixed === 'start') {
31
+ baseStyle['--fixed-start-offset'] =
32
+ `${fixedOffset}px`;
33
+ }
34
+ else if (fixed === 'end') {
35
+ baseStyle['--fixed-end-offset'] =
36
+ `${fixedOffset}px`;
37
+ }
38
+ return baseStyle;
39
+ }, [style, column.ellipsis, fixed, fixedOffset]);
40
+ const alignClass = getCellAlignClass(column.align);
41
+ // Check if this cell should be highlighted based on highlight mode
42
+ const isCellHighlighted = useMemo(() => {
43
+ if (!highlight)
44
+ return false;
45
+ const { columnIndex: hoveredColumn, mode, rowIndex: hoveredRow, } = highlight;
46
+ if (hoveredRow === null || hoveredColumn === null)
47
+ return false;
48
+ switch (mode) {
49
+ case 'cell':
50
+ return hoveredRow === rowIndex && hoveredColumn === columnIndex;
51
+ case 'column':
52
+ return hoveredColumn === columnIndex;
53
+ case 'cross':
54
+ return hoveredColumn === columnIndex;
55
+ case 'row':
56
+ default:
57
+ return false;
58
+ }
59
+ }, [highlight, rowIndex, columnIndex]);
60
+ const handleMouseEnter = useCallback(() => {
61
+ highlight === null || highlight === void 0 ? void 0 : highlight.setHoveredCell(rowIndex, columnIndex);
62
+ }, [highlight, rowIndex, columnIndex]);
63
+ return (jsx("td", { className: cx(tableClasses.cell, alignClass, {
64
+ [tableClasses.cellEllipsis]: column.ellipsis,
65
+ [tableClasses.cellFixed]: !!fixed,
66
+ [tableClasses.cellFixedEnd]: fixed === 'end',
67
+ [tableClasses.cellFixedShadow]: showShadow,
68
+ [tableClasses.cellFixedStart]: fixed === 'start',
69
+ [tableClasses.cellHighlight]: isCellHighlighted,
70
+ }, column.className, className), colSpan: colSpan > 1 ? colSpan : undefined, onMouseEnter: handleMouseEnter, ref: ref, style: cellStyle, children: loading ? (jsx(Skeleton, { width: "100%", variant: "body-highlight" })) : (jsx("span", { className: tableClasses.cellContent, children: cellValue })) }));
71
+ });
72
+ const TableCell = memo(TableCellInner);
73
+
74
+ export { TableCell };
@@ -0,0 +1,4 @@
1
+ export interface TableColGroupProps {
2
+ className?: string;
3
+ }
4
+ export declare const TableColGroup: import("react").NamedExoticComponent<TableColGroupProps>;
@@ -0,0 +1,206 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { memo, useMemo } from 'react';
4
+ import { DRAG_HANDLE_COLUMN_WIDTH, SELECTION_COLUMN_WIDTH, EXPANSION_COLUMN_WIDTH, tableClasses, DRAG_HANDLE_KEY, EXPANSION_KEY, SELECTION_KEY } from '@mezzanine-ui/core/table';
5
+ import { useTableContext, useTableSuperContext } from '../TableContext.js';
6
+
7
+ /**
8
+ * Check if width calculation should be applied.
9
+ * Only calculate explicit widths for root tables (not nested).
10
+ * Nested tables should let columns use natural CSS behavior.
11
+ */
12
+ function shouldCalculateWidths(isNestedTable, containerWidth) {
13
+ // Don't calculate widths for nested tables - they inherit parent's context
14
+ // and should use natural CSS column sizing
15
+ if (isNestedTable) {
16
+ return false;
17
+ }
18
+ // Don't calculate if container width is not available
19
+ if (!containerWidth || containerWidth <= 0) {
20
+ return false;
21
+ }
22
+ return true;
23
+ }
24
+ /**
25
+ * Calculate the resolved width for each column.
26
+ * - Columns with explicit width use that value
27
+ * - Columns without width share the remaining space equally (simulating flex: 1)
28
+ * - All widths are clamped to minWidth/maxWidth if specified
29
+ */
30
+ function calculateColumnWidths(columns, containerWidth, actionColumnsWidth, getResizedColumnWidth) {
31
+ const widthMap = new Map();
32
+ // If container width is not available yet, return empty map
33
+ if (containerWidth <= 0) {
34
+ return widthMap;
35
+ }
36
+ // Available width for data columns
37
+ const availableWidth = containerWidth - actionColumnsWidth;
38
+ if (availableWidth <= 0) {
39
+ return widthMap;
40
+ }
41
+ // First pass: identify columns with explicit width and calculate total fixed width
42
+ let totalFixedWidth = 0;
43
+ const flexColumns = [];
44
+ columns.forEach((column) => {
45
+ const resizedWidth = getResizedColumnWidth === null || getResizedColumnWidth === void 0 ? void 0 : getResizedColumnWidth(column.key);
46
+ if (resizedWidth !== undefined) {
47
+ // Column has been resized, use that width
48
+ widthMap.set(column.key, resizedWidth);
49
+ totalFixedWidth += resizedWidth;
50
+ }
51
+ else if (column.width !== undefined) {
52
+ // Column has explicit width
53
+ const width = clampWidth(column.width, column.minWidth, column.maxWidth);
54
+ widthMap.set(column.key, width);
55
+ totalFixedWidth += width;
56
+ }
57
+ else {
58
+ // Column needs flex width calculation
59
+ flexColumns.push(column);
60
+ }
61
+ });
62
+ // Second pass: distribute remaining width to flex columns
63
+ if (flexColumns.length > 0) {
64
+ const remainingWidth = availableWidth - totalFixedWidth;
65
+ // Calculate flex widths while respecting min/max constraints
66
+ // This may require multiple iterations if constraints cause redistribution
67
+ let iterationCount = 0;
68
+ const maxIterations = flexColumns.length + 1;
69
+ let unallocatedWidth = remainingWidth;
70
+ const pendingColumns = [...flexColumns];
71
+ while (pendingColumns.length > 0 && iterationCount < maxIterations) {
72
+ iterationCount += 1;
73
+ const flexWidth = unallocatedWidth / pendingColumns.length;
74
+ const stillPending = [];
75
+ pendingColumns.forEach((column) => {
76
+ const clampedWidth = clampWidth(flexWidth, column.minWidth, column.maxWidth);
77
+ if (clampedWidth !== flexWidth) {
78
+ // Width was clamped, allocate this column and redistribute
79
+ widthMap.set(column.key, clampedWidth);
80
+ unallocatedWidth -= clampedWidth;
81
+ }
82
+ else {
83
+ stillPending.push(column);
84
+ }
85
+ });
86
+ // If no columns were allocated in this iteration, allocate all remaining
87
+ if (stillPending.length === pendingColumns.length) {
88
+ stillPending.forEach((column) => {
89
+ const finalWidth = Math.max(0, unallocatedWidth / stillPending.length);
90
+ widthMap.set(column.key, finalWidth);
91
+ });
92
+ break;
93
+ }
94
+ pendingColumns.length = 0;
95
+ pendingColumns.push(...stillPending);
96
+ }
97
+ }
98
+ return widthMap;
99
+ }
100
+ /**
101
+ * Clamp a width value between min and max bounds
102
+ */
103
+ function clampWidth(width, minWidth, maxWidth) {
104
+ let result = width;
105
+ if (minWidth !== undefined && result < minWidth) {
106
+ result = minWidth;
107
+ }
108
+ if (maxWidth !== undefined && result > maxWidth) {
109
+ result = maxWidth;
110
+ }
111
+ return result;
112
+ }
113
+ const TableColGroupInner = memo(function TableColGroup(props) {
114
+ const { className } = props;
115
+ const { columnState, columns, draggable, expansion, isInsideExpandedContentArea, selection, } = useTableContext();
116
+ const { containerWidth, getResizedColumnWidth: getParentResizedColumnWidth } = useTableSuperContext();
117
+ // For nested tables, use parent's resized widths; for root tables, use own
118
+ const getResizedColumnWidth = isInsideExpandedContentArea
119
+ ? getParentResizedColumnWidth
120
+ : columnState === null || columnState === void 0 ? void 0 : columnState.getResizedColumnWidth;
121
+ // Check if we should calculate explicit widths
122
+ const enableWidthCalculation = shouldCalculateWidths(!!isInsideExpandedContentArea, containerWidth);
123
+ // Calculate action columns total width
124
+ const actionColumnsWidth = useMemo(() => {
125
+ let width = 0;
126
+ if (draggable === null || draggable === void 0 ? void 0 : draggable.enabled)
127
+ width += DRAG_HANDLE_COLUMN_WIDTH;
128
+ if (selection)
129
+ width += SELECTION_COLUMN_WIDTH;
130
+ if (expansion)
131
+ width += EXPANSION_COLUMN_WIDTH;
132
+ return width;
133
+ }, [draggable === null || draggable === void 0 ? void 0 : draggable.enabled, expansion, selection]);
134
+ // Calculate resolved widths for all columns (only for root tables)
135
+ const resolvedWidths = useMemo(() => {
136
+ if (!enableWidthCalculation) {
137
+ return new Map();
138
+ }
139
+ return calculateColumnWidths(columns, containerWidth !== null && containerWidth !== void 0 ? containerWidth : 0, actionColumnsWidth, getResizedColumnWidth);
140
+ }, [
141
+ enableWidthCalculation,
142
+ columns,
143
+ containerWidth,
144
+ actionColumnsWidth,
145
+ getResizedColumnWidth,
146
+ ]);
147
+ const renderCols = () => {
148
+ const cols = [];
149
+ // Drag handle column (must be first)
150
+ if (draggable === null || draggable === void 0 ? void 0 : draggable.enabled) {
151
+ cols.push(jsx("col", { className: tableClasses.dragHandleCell, style: {
152
+ maxWidth: DRAG_HANDLE_COLUMN_WIDTH,
153
+ minWidth: DRAG_HANDLE_COLUMN_WIDTH,
154
+ width: DRAG_HANDLE_COLUMN_WIDTH,
155
+ } }, DRAG_HANDLE_KEY));
156
+ }
157
+ // Expand column
158
+ if (expansion) {
159
+ cols.push(jsx("col", { className: tableClasses.expandCell, style: {
160
+ maxWidth: EXPANSION_COLUMN_WIDTH,
161
+ minWidth: EXPANSION_COLUMN_WIDTH,
162
+ width: EXPANSION_COLUMN_WIDTH,
163
+ } }, EXPANSION_KEY));
164
+ }
165
+ // Selection column
166
+ if (selection) {
167
+ cols.push(jsx("col", { className: tableClasses.selectionColumn, style: {
168
+ maxWidth: SELECTION_COLUMN_WIDTH,
169
+ minWidth: SELECTION_COLUMN_WIDTH,
170
+ width: SELECTION_COLUMN_WIDTH,
171
+ } }, SELECTION_KEY));
172
+ }
173
+ // Data columns
174
+ columns.forEach((column) => {
175
+ var _a;
176
+ const style = {};
177
+ // For root tables with width calculation enabled, use resolved widths
178
+ // For nested tables, sync with parent's resized widths
179
+ if (enableWidthCalculation) {
180
+ const resolvedWidth = resolvedWidths.get(column.key);
181
+ if (resolvedWidth !== undefined) {
182
+ style.width = resolvedWidth;
183
+ }
184
+ }
185
+ else {
186
+ // Nested table: check if parent has resized this column
187
+ const parentResizedWidth = (_a = getResizedColumnWidth === null || getResizedColumnWidth === void 0 ? void 0 : getResizedColumnWidth(column.key)) !== null && _a !== void 0 ? _a : column.width;
188
+ if (parentResizedWidth !== undefined) {
189
+ style.width = parentResizedWidth;
190
+ }
191
+ }
192
+ if (column.minWidth !== undefined) {
193
+ style.minWidth = column.minWidth;
194
+ }
195
+ if (column.maxWidth !== undefined) {
196
+ style.maxWidth = column.maxWidth;
197
+ }
198
+ cols.push(jsx("col", { style: style }, column.key));
199
+ });
200
+ return cols;
201
+ };
202
+ return jsx("colgroup", { className: className, children: renderCols() });
203
+ });
204
+ const TableColGroup = TableColGroupInner;
205
+
206
+ export { TableColGroup };
@@ -0,0 +1,9 @@
1
+ export interface TableDragHandleCellProps {
2
+ className?: string;
3
+ dragHandleProps?: Record<string, unknown>;
4
+ fixed?: boolean;
5
+ fixedOffset?: number;
6
+ isHeader?: boolean;
7
+ showShadow?: boolean;
8
+ }
9
+ export declare const TableDragHandleCell: import("react").NamedExoticComponent<TableDragHandleCellProps & import("react").RefAttributes<HTMLTableCellElement>>;
@@ -0,0 +1,37 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { memo, forwardRef } from 'react';
4
+ import { tableClasses } from '@mezzanine-ui/core/table';
5
+ import { DotDragVerticalIcon } from '@mezzanine-ui/icons';
6
+ import { useTableContext } from '../TableContext.js';
7
+ import Skeleton from '../../Skeleton/Skeleton.js';
8
+ import Icon from '../../Icon/Icon.js';
9
+ import cx from 'clsx';
10
+
11
+ const TableDragHandleCellInner = forwardRef(function TableDragHandleCell(props, ref) {
12
+ const { loading } = useTableContext();
13
+ const { className, dragHandleProps, fixed = false, fixedOffset = 0, isHeader = false, showShadow = false, } = props;
14
+ const CellComponent = isHeader ? 'th' : 'td';
15
+ const cellStyle = {};
16
+ if (fixed) {
17
+ cellStyle['--fixed-start-offset'] =
18
+ `${fixedOffset}px`;
19
+ }
20
+ const renderChild = () => {
21
+ if (!isHeader) {
22
+ if (loading) {
23
+ return jsx(Skeleton, { width: "100%", variant: "body-highlight" });
24
+ }
25
+ return (jsx("span", { className: tableClasses.dragHandle, ...dragHandleProps, children: jsx(Icon, { color: "neutral", icon: DotDragVerticalIcon }) }));
26
+ }
27
+ return null;
28
+ };
29
+ return (jsx(CellComponent, { className: cx(isHeader ? tableClasses.headerCell : tableClasses.cell, tableClasses.dragHandleCell, {
30
+ [tableClasses.cellFixed]: fixed,
31
+ [tableClasses.cellFixedStart]: fixed,
32
+ [tableClasses.cellFixedShadow]: showShadow,
33
+ }, className), ref: ref, scope: isHeader ? 'col' : undefined, style: cellStyle, children: renderChild() }));
34
+ });
35
+ const TableDragHandleCell = memo(TableDragHandleCellInner);
36
+
37
+ export { TableDragHandleCell };
@@ -0,0 +1,11 @@
1
+ export interface TableExpandCellProps {
2
+ canExpand?: boolean;
3
+ className?: string;
4
+ expanded: boolean;
5
+ fixed?: boolean;
6
+ fixedOffset?: number;
7
+ isHeader?: boolean;
8
+ onClick?: VoidFunction;
9
+ showShadow?: boolean;
10
+ }
11
+ export declare const TableExpandCell: import("react").NamedExoticComponent<TableExpandCellProps & import("react").RefAttributes<HTMLTableCellElement>>;
@@ -0,0 +1,44 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { memo, forwardRef, useCallback } from 'react';
4
+ import { tableClasses } from '@mezzanine-ui/core/table';
5
+ import { ChevronRightIcon } from '@mezzanine-ui/icons';
6
+ import { useTableContext } from '../TableContext.js';
7
+ import Skeleton from '../../Skeleton/Skeleton.js';
8
+ import Icon from '../../Icon/Icon.js';
9
+ import cx from 'clsx';
10
+
11
+ const TableExpandCellInner = forwardRef(function TableExpandCell(props, ref) {
12
+ const { loading } = useTableContext();
13
+ const { canExpand = true, className, expanded, fixed = false, fixedOffset = 0, isHeader = false, onClick, showShadow = false, } = props;
14
+ const handleClick = useCallback((event) => {
15
+ event.stopPropagation();
16
+ if (canExpand && onClick) {
17
+ onClick();
18
+ }
19
+ }, [canExpand, onClick]);
20
+ const CellComponent = isHeader ? 'th' : 'td';
21
+ const cellStyle = {};
22
+ if (fixed) {
23
+ cellStyle['--fixed-start-offset'] =
24
+ `${fixedOffset}px`;
25
+ }
26
+ const renderChild = () => {
27
+ if (isHeader)
28
+ return null;
29
+ if (loading) {
30
+ return jsx(Skeleton, { width: "100%", variant: "body-highlight" });
31
+ }
32
+ return canExpand ? (jsx("button", { className: cx(tableClasses.expandIcon, {
33
+ [tableClasses.expandIconExpanded]: expanded,
34
+ }), onClick: handleClick, type: "button", children: jsx(Icon, { icon: ChevronRightIcon, color: "inherit" }) })) : null;
35
+ };
36
+ return (jsx(CellComponent, { className: cx(isHeader ? tableClasses.headerCell : tableClasses.cell, tableClasses.expandCell, {
37
+ [tableClasses.cellFixed]: fixed,
38
+ [tableClasses.cellFixedStart]: fixed,
39
+ [tableClasses.cellFixedShadow]: showShadow,
40
+ }, className), ref: ref, scope: isHeader ? 'col' : undefined, style: cellStyle, children: renderChild() }));
41
+ });
42
+ const TableExpandCell = memo(TableExpandCellInner);
43
+
44
+ export { TableExpandCell };
@@ -0,0 +1,9 @@
1
+ import { type TableDataSource } from '@mezzanine-ui/core/table';
2
+ export interface TableExpandedRowProps<T extends TableDataSource = TableDataSource> {
3
+ className?: string;
4
+ record: T;
5
+ style?: React.CSSProperties;
6
+ }
7
+ declare const TableExpandedRowInner: import("react").ForwardRefExoticComponent<TableExpandedRowProps<TableDataSource> & import("react").RefAttributes<HTMLTableRowElement>>;
8
+ export declare const TableExpandedRow: typeof TableExpandedRowInner;
9
+ export {};
@@ -0,0 +1,46 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { memo, forwardRef, useMemo, cloneElement } from 'react';
4
+ import { getRowKey, tableClasses } from '@mezzanine-ui/core/table';
5
+ import { useTableContext } from '../TableContext.js';
6
+ import { Table } from '../Table.js';
7
+ import cx from 'clsx';
8
+
9
+ const TableExpandedRowInner = forwardRef(function TableExpandedRow(props, ref) {
10
+ const { className, record, style } = props;
11
+ const { columns, expansion, draggable, selection } = useTableContext();
12
+ // Calculate total column span
13
+ const totalColSpan = useMemo(() => {
14
+ let colSpan = columns.length;
15
+ // Add 1 for expand column itself
16
+ if (expansion)
17
+ colSpan += 1;
18
+ if (draggable === null || draggable === void 0 ? void 0 : draggable.enabled)
19
+ colSpan += 1;
20
+ if (selection)
21
+ colSpan += 1;
22
+ return colSpan;
23
+ }, [columns.length, expansion, draggable === null || draggable === void 0 ? void 0 : draggable.enabled, selection]);
24
+ const rowKey = getRowKey(record);
25
+ const isExpanded = expansion === null || expansion === void 0 ? void 0 : expansion.isRowExpanded(rowKey);
26
+ const { config } = expansion || {};
27
+ const { expandedRowRender } = config || {};
28
+ const childNeededProps = useMemo(() => ({
29
+ table: {
30
+ nested: true,
31
+ showHeader: false,
32
+ },
33
+ }), []);
34
+ if (!expandedRowRender || !isExpanded)
35
+ return null;
36
+ const children = expandedRowRender(record);
37
+ const clonedChild = cloneElement(children);
38
+ return (jsx("tr", { className: cx(tableClasses.expandedRow, className), "data-row-key": `${rowKey}-expanded`, ref: ref, style: style, children: jsx("td", { className: tableClasses.expandedRowCell, colSpan: totalColSpan, style: { paddingLeft: expansion === null || expansion === void 0 ? void 0 : expansion.expansionLeftPadding }, children: jsx("div", { className: tableClasses.expandedContent, children: clonedChild.type === Table
39
+ ? cloneElement(clonedChild, {
40
+ ...childNeededProps.table,
41
+ })
42
+ : clonedChild }) }) }));
43
+ });
44
+ const TableExpandedRow = memo(TableExpandedRowInner);
45
+
46
+ export { TableExpandedRow };
@@ -0,0 +1,4 @@
1
+ export interface TableHeaderProps {
2
+ className?: string;
3
+ }
4
+ export declare const TableHeader: import("react").NamedExoticComponent<TableHeaderProps & import("react").RefAttributes<HTMLTableSectionElement>>;