@mezzanine-ui/react 0.6.4

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 (487) hide show
  1. package/Accordion/Accordion.d.ts +24 -0
  2. package/Accordion/Accordion.js +32 -0
  3. package/Accordion/AccordionControlContext.d.ts +9 -0
  4. package/Accordion/AccordionControlContext.js +5 -0
  5. package/Accordion/AccordionDetails.d.ts +10 -0
  6. package/Accordion/AccordionDetails.js +25 -0
  7. package/Accordion/AccordionSummary.d.ts +19 -0
  8. package/Accordion/AccordionSummary.js +50 -0
  9. package/Accordion/index.d.ts +3 -0
  10. package/Accordion/index.js +3 -0
  11. package/Alert/Alert.d.ts +20 -0
  12. package/Alert/Alert.js +20 -0
  13. package/Alert/index.d.ts +2 -0
  14. package/Alert/index.js +1 -0
  15. package/AppBar/AppBar.d.ts +14 -0
  16. package/AppBar/AppBar.js +35 -0
  17. package/AppBar/AppBarBrand.d.ts +5 -0
  18. package/AppBar/AppBarBrand.js +11 -0
  19. package/AppBar/AppBarMain.d.ts +5 -0
  20. package/AppBar/AppBarMain.js +11 -0
  21. package/AppBar/AppBarSupport.d.ts +5 -0
  22. package/AppBar/AppBarSupport.js +11 -0
  23. package/AppBar/index.d.ts +4 -0
  24. package/AppBar/index.js +4 -0
  25. package/Badge/Badge.d.ts +19 -0
  26. package/Badge/Badge.js +27 -0
  27. package/Badge/BadgeContainer.d.ts +8 -0
  28. package/Badge/BadgeContainer.js +14 -0
  29. package/Badge/index.d.ts +2 -0
  30. package/Badge/index.js +2 -0
  31. package/Button/Button.d.ts +11 -0
  32. package/Button/Button.js +37 -0
  33. package/Button/ButtonGroup.d.ts +63 -0
  34. package/Button/ButtonGroup.js +35 -0
  35. package/Button/IconButton.d.ts +21 -0
  36. package/Button/IconButton.js +13 -0
  37. package/Button/index.d.ts +20 -0
  38. package/Button/index.js +8 -0
  39. package/Button/typings.d.ts +44 -0
  40. package/Calendar/Calendar.d.ts +69 -0
  41. package/Calendar/Calendar.js +53 -0
  42. package/Calendar/CalendarCell.d.ts +22 -0
  43. package/Calendar/CalendarCell.js +18 -0
  44. package/Calendar/CalendarContext.d.ts +22 -0
  45. package/Calendar/CalendarContext.js +27 -0
  46. package/Calendar/CalendarControls.d.ts +26 -0
  47. package/Calendar/CalendarControls.js +20 -0
  48. package/Calendar/CalendarDayOfWeek.d.ts +15 -0
  49. package/Calendar/CalendarDayOfWeek.js +18 -0
  50. package/Calendar/CalendarDays.d.ts +38 -0
  51. package/Calendar/CalendarDays.js +48 -0
  52. package/Calendar/CalendarMonths.d.ts +42 -0
  53. package/Calendar/CalendarMonths.js +30 -0
  54. package/Calendar/CalendarWeeks.d.ts +41 -0
  55. package/Calendar/CalendarWeeks.js +54 -0
  56. package/Calendar/CalendarYears.d.ts +40 -0
  57. package/Calendar/CalendarYears.js +34 -0
  58. package/Calendar/index.d.ts +12 -0
  59. package/Calendar/index.js +12 -0
  60. package/Calendar/useCalendarControlModifiers.d.ts +7 -0
  61. package/Calendar/useCalendarControlModifiers.js +26 -0
  62. package/Calendar/useCalendarControls.d.ts +13 -0
  63. package/Calendar/useCalendarControls.js +34 -0
  64. package/Calendar/useCalendarModeStack.d.ts +6 -0
  65. package/Calendar/useCalendarModeStack.js +15 -0
  66. package/Card/Card.d.ts +51 -0
  67. package/Card/Card.js +20 -0
  68. package/Card/CardActions.d.ts +34 -0
  69. package/Card/CardActions.js +16 -0
  70. package/Card/index.d.ts +2 -0
  71. package/Card/index.js +2 -0
  72. package/Checkbox/CheckAll.d.ts +13 -0
  73. package/Checkbox/CheckAll.js +36 -0
  74. package/Checkbox/Checkbox.d.ts +46 -0
  75. package/Checkbox/Checkbox.js +33 -0
  76. package/Checkbox/CheckboxGroup.d.ts +47 -0
  77. package/Checkbox/CheckboxGroup.js +36 -0
  78. package/Checkbox/CheckboxGroupContext.d.ts +9 -0
  79. package/Checkbox/CheckboxGroupContext.js +5 -0
  80. package/Checkbox/index.d.ts +4 -0
  81. package/Checkbox/index.js +3 -0
  82. package/ConfirmActions/ConfirmActions.d.ts +45 -0
  83. package/ConfirmActions/ConfirmActions.js +16 -0
  84. package/ConfirmActions/index.d.ts +1 -0
  85. package/ConfirmActions/index.js +1 -0
  86. package/DatePicker/DatePicker.d.ts +32 -0
  87. package/DatePicker/DatePicker.js +135 -0
  88. package/DatePicker/DatePickerCalendar.d.ts +32 -0
  89. package/DatePicker/DatePickerCalendar.js +61 -0
  90. package/DatePicker/index.d.ts +2 -0
  91. package/DatePicker/index.js +2 -0
  92. package/DateRangePicker/DateRangePicker.d.ts +38 -0
  93. package/DateRangePicker/DateRangePicker.js +187 -0
  94. package/DateRangePicker/DateRangePickerCalendar.d.ts +26 -0
  95. package/DateRangePicker/DateRangePickerCalendar.js +98 -0
  96. package/DateRangePicker/index.d.ts +4 -0
  97. package/DateRangePicker/index.js +4 -0
  98. package/DateRangePicker/useDateRangeCalendarControls.d.ts +15 -0
  99. package/DateRangePicker/useDateRangeCalendarControls.js +93 -0
  100. package/DateRangePicker/useDateRangePickerValue.d.ts +23 -0
  101. package/DateRangePicker/useDateRangePickerValue.js +87 -0
  102. package/DateTimePicker/DateTimePicker.d.ts +28 -0
  103. package/DateTimePicker/DateTimePicker.js +122 -0
  104. package/DateTimePicker/DateTimePickerPanel.d.ts +29 -0
  105. package/DateTimePicker/DateTimePickerPanel.js +51 -0
  106. package/DateTimePicker/index.d.ts +2 -0
  107. package/DateTimePicker/index.js +2 -0
  108. package/Drawer/Drawer.d.ts +18 -0
  109. package/Drawer/Drawer.js +34 -0
  110. package/Drawer/index.d.ts +2 -0
  111. package/Drawer/index.js +1 -0
  112. package/Dropdown/Dropdown.d.ts +25 -0
  113. package/Dropdown/Dropdown.js +60 -0
  114. package/Dropdown/index.d.ts +1 -0
  115. package/Dropdown/index.js +1 -0
  116. package/Empty/Empty.d.ts +18 -0
  117. package/Empty/Empty.js +16 -0
  118. package/Empty/index.d.ts +1 -0
  119. package/Empty/index.js +1 -0
  120. package/Form/FormControlContext.d.ts +9 -0
  121. package/Form/FormControlContext.js +5 -0
  122. package/Form/FormField.d.ts +27 -0
  123. package/Form/FormField.js +24 -0
  124. package/Form/FormLabel.d.ts +11 -0
  125. package/Form/FormLabel.js +17 -0
  126. package/Form/FormMessage.d.ts +8 -0
  127. package/Form/FormMessage.js +18 -0
  128. package/Form/index.d.ts +5 -0
  129. package/Form/index.js +4 -0
  130. package/Form/typings.d.ts +4 -0
  131. package/Form/useAutoCompleteValueControl.d.ts +23 -0
  132. package/Form/useAutoCompleteValueControl.js +58 -0
  133. package/Form/useCheckboxControlValue.d.ts +11 -0
  134. package/Form/useCheckboxControlValue.js +29 -0
  135. package/Form/useControlValueState.d.ts +7 -0
  136. package/Form/useControlValueState.js +15 -0
  137. package/Form/useCustomControlValue.d.ts +5 -0
  138. package/Form/useCustomControlValue.js +18 -0
  139. package/Form/useInputControlValue.d.ts +7 -0
  140. package/Form/useInputControlValue.js +24 -0
  141. package/Form/useInputWithClearControlValue.d.ts +6 -0
  142. package/Form/useInputWithClearControlValue.js +33 -0
  143. package/Form/useRadioControlValue.d.ts +11 -0
  144. package/Form/useRadioControlValue.js +24 -0
  145. package/Form/useSelectValueControl.d.ts +16 -0
  146. package/Form/useSelectValueControl.js +59 -0
  147. package/Form/useSwitchControlValue.d.ts +7 -0
  148. package/Form/useSwitchControlValue.js +24 -0
  149. package/Icon/Icon.d.ts +24 -0
  150. package/Icon/Icon.js +23 -0
  151. package/Icon/index.d.ts +3 -0
  152. package/Icon/index.js +1 -0
  153. package/Input/Input.d.ts +50 -0
  154. package/Input/Input.js +28 -0
  155. package/Input/index.d.ts +2 -0
  156. package/Input/index.js +1 -0
  157. package/LICENSE +21 -0
  158. package/Loading/Loading.d.ts +34 -0
  159. package/Loading/Loading.js +28 -0
  160. package/Loading/index.d.ts +1 -0
  161. package/Loading/index.js +1 -0
  162. package/Menu/Menu.d.ts +29 -0
  163. package/Menu/Menu.js +22 -0
  164. package/Menu/MenuDivider.d.ts +8 -0
  165. package/Menu/MenuDivider.js +14 -0
  166. package/Menu/MenuItem.d.ts +24 -0
  167. package/Menu/MenuItem.js +26 -0
  168. package/Menu/MenuItemGroup.d.ts +13 -0
  169. package/Menu/MenuItemGroup.js +15 -0
  170. package/Menu/index.d.ts +5 -0
  171. package/Menu/index.js +4 -0
  172. package/Message/Message.d.ts +33 -0
  173. package/Message/Message.js +59 -0
  174. package/Message/index.d.ts +2 -0
  175. package/Message/index.js +1 -0
  176. package/Modal/Modal.d.ts +42 -0
  177. package/Modal/Modal.js +75 -0
  178. package/Modal/ModalActions.d.ts +10 -0
  179. package/Modal/ModalActions.js +18 -0
  180. package/Modal/ModalBody.d.ts +8 -0
  181. package/Modal/ModalBody.js +14 -0
  182. package/Modal/ModalControl.d.ts +7 -0
  183. package/Modal/ModalControl.js +8 -0
  184. package/Modal/ModalFooter.d.ts +8 -0
  185. package/Modal/ModalFooter.js +14 -0
  186. package/Modal/ModalHeader.d.ts +20 -0
  187. package/Modal/ModalHeader.js +20 -0
  188. package/Modal/index.d.ts +6 -0
  189. package/Modal/index.js +5 -0
  190. package/Modal/useIsTopModal.d.ts +1 -0
  191. package/Modal/useIsTopModal.js +22 -0
  192. package/Navigation/Navigation.d.ts +29 -0
  193. package/Navigation/Navigation.js +48 -0
  194. package/Navigation/NavigationContext.d.ts +6 -0
  195. package/Navigation/NavigationContext.js +7 -0
  196. package/Navigation/NavigationItem.d.ts +31 -0
  197. package/Navigation/NavigationItem.js +22 -0
  198. package/Navigation/NavigationSubMenu.d.ts +17 -0
  199. package/Navigation/NavigationSubMenu.js +65 -0
  200. package/Navigation/index.d.ts +4 -0
  201. package/Navigation/index.js +4 -0
  202. package/Notification/Notification.d.ts +54 -0
  203. package/Notification/Notification.js +78 -0
  204. package/Notification/index.d.ts +2 -0
  205. package/Notification/index.js +1 -0
  206. package/Notifier/NotifierManager.d.ts +17 -0
  207. package/Notifier/NotifierManager.js +31 -0
  208. package/Notifier/createNotifier.d.ts +21 -0
  209. package/Notifier/createNotifier.js +67 -0
  210. package/Notifier/index.d.ts +2 -0
  211. package/Notifier/index.js +1 -0
  212. package/Notifier/typings.d.ts +28 -0
  213. package/Overlay/Overlay.d.ts +43 -0
  214. package/Overlay/Overlay.js +31 -0
  215. package/Overlay/index.d.ts +1 -0
  216. package/Overlay/index.js +1 -0
  217. package/PageFooter/PageFooter.d.ts +15 -0
  218. package/PageFooter/PageFooter.js +13 -0
  219. package/PageFooter/index.d.ts +1 -0
  220. package/PageFooter/index.js +1 -0
  221. package/Pagination/Pagination.d.ts +78 -0
  222. package/Pagination/Pagination.js +29 -0
  223. package/Pagination/PaginationItem.d.ts +27 -0
  224. package/Pagination/PaginationItem.js +25 -0
  225. package/Pagination/PaginationJumper.d.ts +38 -0
  226. package/Pagination/PaginationJumper.js +52 -0
  227. package/Pagination/index.d.ts +5 -0
  228. package/Pagination/index.js +4 -0
  229. package/Pagination/usePagination.d.ts +16 -0
  230. package/Pagination/usePagination.js +78 -0
  231. package/Picker/PickerTrigger.d.ts +40 -0
  232. package/Picker/PickerTrigger.js +15 -0
  233. package/Picker/RangePickerTrigger.d.ts +64 -0
  234. package/Picker/RangePickerTrigger.js +19 -0
  235. package/Picker/index.d.ts +7 -0
  236. package/Picker/index.js +7 -0
  237. package/Picker/usePickerDocumentEventClose.d.ts +10 -0
  238. package/Picker/usePickerDocumentEventClose.js +27 -0
  239. package/Picker/usePickerInputValue.d.ts +12 -0
  240. package/Picker/usePickerInputValue.js +24 -0
  241. package/Picker/usePickerValue.d.ts +21 -0
  242. package/Picker/usePickerValue.js +58 -0
  243. package/Picker/useRangePickerValue.d.ts +21 -0
  244. package/Picker/useRangePickerValue.js +94 -0
  245. package/Picker/useTabKeyClose.d.ts +2 -0
  246. package/Picker/useTabKeyClose.js +12 -0
  247. package/Popconfirm/Popconfirm.d.ts +16 -0
  248. package/Popconfirm/Popconfirm.js +15 -0
  249. package/Popconfirm/index.d.ts +1 -0
  250. package/Popconfirm/index.js +1 -0
  251. package/Popover/Popover.d.ts +23 -0
  252. package/Popover/Popover.js +45 -0
  253. package/Popover/index.d.ts +1 -0
  254. package/Popover/index.js +1 -0
  255. package/Popper/Popper.d.ts +32 -0
  256. package/Popper/Popper.js +30 -0
  257. package/Popper/index.d.ts +1 -0
  258. package/Popper/index.js +1 -0
  259. package/Portal/Portal.d.ts +20 -0
  260. package/Portal/Portal.js +22 -0
  261. package/Portal/index.d.ts +1 -0
  262. package/Portal/index.js +1 -0
  263. package/Progress/Progress.d.ts +59 -0
  264. package/Progress/Progress.js +32 -0
  265. package/Progress/index.d.ts +2 -0
  266. package/Progress/index.js +1 -0
  267. package/README.md +1 -0
  268. package/Radio/Radio.d.ts +41 -0
  269. package/Radio/Radio.js +31 -0
  270. package/Radio/RadioGroup.d.ts +47 -0
  271. package/Radio/RadioGroup.js +29 -0
  272. package/Radio/RadioGroupContext.d.ts +9 -0
  273. package/Radio/RadioGroupContext.js +5 -0
  274. package/Radio/index.d.ts +3 -0
  275. package/Radio/index.js +2 -0
  276. package/Select/AutoComplete.d.ts +75 -0
  277. package/Select/AutoComplete.js +108 -0
  278. package/Select/Option.d.ts +19 -0
  279. package/Select/Option.js +32 -0
  280. package/Select/Select.d.ts +57 -0
  281. package/Select/Select.js +145 -0
  282. package/Select/SelectControlContext.d.ts +3 -0
  283. package/Select/SelectControlContext.js +5 -0
  284. package/Select/SelectTrigger.d.ts +54 -0
  285. package/Select/SelectTrigger.js +27 -0
  286. package/Select/TreeSelect.d.ts +68 -0
  287. package/Select/TreeSelect.js +198 -0
  288. package/Select/index.d.ts +8 -0
  289. package/Select/index.js +7 -0
  290. package/Select/typings.d.ts +11 -0
  291. package/Skeleton/Skeleton.d.ts +22 -0
  292. package/Skeleton/Skeleton.js +14 -0
  293. package/Skeleton/index.d.ts +1 -0
  294. package/Skeleton/index.js +1 -0
  295. package/Slider/Slider.d.ts +51 -0
  296. package/Slider/Slider.js +172 -0
  297. package/Slider/index.d.ts +3 -0
  298. package/Slider/index.js +2 -0
  299. package/Slider/useSlider.d.ts +31 -0
  300. package/Slider/useSlider.js +104 -0
  301. package/Stepper/Step.d.ts +41 -0
  302. package/Stepper/Step.js +19 -0
  303. package/Stepper/Stepper.d.ts +19 -0
  304. package/Stepper/Stepper.js +33 -0
  305. package/Stepper/index.d.ts +2 -0
  306. package/Stepper/index.js +2 -0
  307. package/Switch/Switch.d.ts +43 -0
  308. package/Switch/Switch.js +29 -0
  309. package/Switch/index.d.ts +2 -0
  310. package/Switch/index.js +1 -0
  311. package/Table/Table.d.ts +79 -0
  312. package/Table/Table.js +111 -0
  313. package/Table/TableBody.d.ts +10 -0
  314. package/Table/TableBody.js +31 -0
  315. package/Table/TableBodyRow.d.ts +11 -0
  316. package/Table/TableBodyRow.js +63 -0
  317. package/Table/TableCell.d.ts +20 -0
  318. package/Table/TableCell.js +23 -0
  319. package/Table/TableContext.d.ts +46 -0
  320. package/Table/TableContext.js +7 -0
  321. package/Table/TableHeader.d.ts +3 -0
  322. package/Table/TableHeader.js +47 -0
  323. package/Table/editable/TableEditRenderWrapper.d.ts +8 -0
  324. package/Table/editable/TableEditRenderWrapper.js +15 -0
  325. package/Table/expandable/TableExpandable.d.ts +24 -0
  326. package/Table/expandable/TableExpandable.js +15 -0
  327. package/Table/index.d.ts +4 -0
  328. package/Table/index.js +3 -0
  329. package/Table/pagination/TablePagination.d.ts +10 -0
  330. package/Table/pagination/TablePagination.js +27 -0
  331. package/Table/pagination/useTablePagination.d.ts +16 -0
  332. package/Table/pagination/useTablePagination.js +49 -0
  333. package/Table/refresh/TableRefresh.d.ts +10 -0
  334. package/Table/refresh/TableRefresh.js +23 -0
  335. package/Table/rowSelection/TableRowSelection.d.ts +19 -0
  336. package/Table/rowSelection/TableRowSelection.js +86 -0
  337. package/Table/rowSelection/useTableRowSelection.d.ts +6 -0
  338. package/Table/rowSelection/useTableRowSelection.js +53 -0
  339. package/Table/sorting/TableSortingIcon.d.ts +11 -0
  340. package/Table/sorting/TableSortingIcon.js +28 -0
  341. package/Table/sorting/useTableSorting.d.ts +10 -0
  342. package/Table/sorting/useTableSorting.js +90 -0
  343. package/Table/useTableFetchMore.d.ts +10 -0
  344. package/Table/useTableFetchMore.js +50 -0
  345. package/Table/useTableLoading.d.ts +5 -0
  346. package/Table/useTableLoading.js +19 -0
  347. package/Table/useTableScroll.d.ts +272 -0
  348. package/Table/useTableScroll.js +170 -0
  349. package/Tabs/Tab.d.ts +19 -0
  350. package/Tabs/Tab.js +16 -0
  351. package/Tabs/TabPane.d.ts +14 -0
  352. package/Tabs/TabPane.js +18 -0
  353. package/Tabs/Tabs.d.ts +39 -0
  354. package/Tabs/Tabs.js +49 -0
  355. package/Tabs/index.d.ts +3 -0
  356. package/Tabs/index.js +3 -0
  357. package/Tabs/useTabsOverflow.d.ts +8 -0
  358. package/Tabs/useTabsOverflow.js +58 -0
  359. package/Tag/Tag.d.ts +29 -0
  360. package/Tag/Tag.js +23 -0
  361. package/Tag/index.d.ts +2 -0
  362. package/Tag/index.js +1 -0
  363. package/TextField/TextField.d.ts +54 -0
  364. package/TextField/TextField.js +39 -0
  365. package/TextField/index.d.ts +2 -0
  366. package/TextField/index.js +1 -0
  367. package/TextField/useTextFieldControl.d.ts +10 -0
  368. package/TextField/useTextFieldControl.js +15 -0
  369. package/Textarea/Textarea.d.ts +58 -0
  370. package/Textarea/Textarea.js +33 -0
  371. package/Textarea/index.d.ts +2 -0
  372. package/Textarea/index.js +1 -0
  373. package/TimePanel/TimePanel.d.ts +66 -0
  374. package/TimePanel/TimePanel.js +67 -0
  375. package/TimePanel/TimePanelAction.d.ts +18 -0
  376. package/TimePanel/TimePanelAction.js +15 -0
  377. package/TimePanel/TimePanelColumn.d.ts +37 -0
  378. package/TimePanel/TimePanelColumn.js +39 -0
  379. package/TimePanel/index.d.ts +3 -0
  380. package/TimePanel/index.js +3 -0
  381. package/TimePicker/TimePicker.d.ts +24 -0
  382. package/TimePicker/TimePicker.js +114 -0
  383. package/TimePicker/TimePickerPanel.d.ts +24 -0
  384. package/TimePicker/TimePickerPanel.js +14 -0
  385. package/TimePicker/index.d.ts +2 -0
  386. package/TimePicker/index.js +2 -0
  387. package/Tooltip/Tooltip.d.ts +25 -0
  388. package/Tooltip/Tooltip.js +37 -0
  389. package/Tooltip/index.d.ts +1 -0
  390. package/Tooltip/index.js +1 -0
  391. package/Tooltip/useDelayMouseEnterLeave.d.ts +12 -0
  392. package/Tooltip/useDelayMouseEnterLeave.js +41 -0
  393. package/Transition/Collapse.d.ts +15 -0
  394. package/Transition/Collapse.js +107 -0
  395. package/Transition/Fade.d.ts +8 -0
  396. package/Transition/Fade.js +84 -0
  397. package/Transition/Grow.d.ts +13 -0
  398. package/Transition/Grow.js +112 -0
  399. package/Transition/SlideFade.d.ts +15 -0
  400. package/Transition/SlideFade.js +93 -0
  401. package/Transition/Transition.d.ts +98 -0
  402. package/Transition/Transition.js +27 -0
  403. package/Transition/Zoom.d.ts +8 -0
  404. package/Transition/Zoom.js +84 -0
  405. package/Transition/getAutoSizeDuration.d.ts +1 -0
  406. package/Transition/getAutoSizeDuration.js +10 -0
  407. package/Transition/getTransitionStyleProps.d.ts +16 -0
  408. package/Transition/getTransitionStyleProps.js +25 -0
  409. package/Transition/index.d.ts +6 -0
  410. package/Transition/index.js +6 -0
  411. package/Transition/reflow.d.ts +4 -0
  412. package/Transition/reflow.js +9 -0
  413. package/Transition/useAutoTransitionDuration.d.ts +6 -0
  414. package/Transition/useAutoTransitionDuration.js +15 -0
  415. package/Transition/useSetNodeTransition.d.ts +7 -0
  416. package/Transition/useSetNodeTransition.js +35 -0
  417. package/Tree/Tree.d.ts +70 -0
  418. package/Tree/Tree.js +131 -0
  419. package/Tree/TreeNode.d.ts +41 -0
  420. package/Tree/TreeNode.js +41 -0
  421. package/Tree/TreeNodeList.d.ts +25 -0
  422. package/Tree/TreeNodeList.js +29 -0
  423. package/Tree/getTreeNodeEntities.d.ts +11 -0
  424. package/Tree/getTreeNodeEntities.js +86 -0
  425. package/Tree/index.d.ts +8 -0
  426. package/Tree/index.js +7 -0
  427. package/Tree/toggleValue.d.ts +4 -0
  428. package/Tree/toggleValue.js +19 -0
  429. package/Tree/traverseTree.d.ts +2 -0
  430. package/Tree/traverseTree.js +11 -0
  431. package/Tree/typings.d.ts +16 -0
  432. package/Tree/useTreeExpandedValue.d.ts +15 -0
  433. package/Tree/useTreeExpandedValue.js +32 -0
  434. package/Typography/Typography.d.ts +43 -0
  435. package/Typography/Typography.js +38 -0
  436. package/Typography/index.d.ts +11 -0
  437. package/Typography/index.js +2 -0
  438. package/Upload/UploadButton.d.ts +10 -0
  439. package/Upload/UploadButton.js +23 -0
  440. package/Upload/UploadInput.d.ts +21 -0
  441. package/Upload/UploadInput.js +22 -0
  442. package/Upload/UploadResult.d.ts +16 -0
  443. package/Upload/UploadResult.js +30 -0
  444. package/Upload/index.d.ts +3 -0
  445. package/Upload/index.js +2 -0
  446. package/_internal/InputCheck/InputCheck.d.ts +33 -0
  447. package/_internal/InputCheck/InputCheck.js +19 -0
  448. package/_internal/InputCheck/InputCheckGroup.d.ts +18 -0
  449. package/_internal/InputCheck/InputCheckGroup.js +14 -0
  450. package/_internal/InputCheck/index.d.ts +3 -0
  451. package/_internal/InputCheck/index.js +2 -0
  452. package/_internal/InputTriggerPopper/InputTriggerPopper.d.ts +18 -0
  453. package/_internal/InputTriggerPopper/InputTriggerPopper.js +44 -0
  454. package/_internal/InputTriggerPopper/index.d.ts +1 -0
  455. package/_internal/InputTriggerPopper/index.js +1 -0
  456. package/hooks/useClickAway.d.ts +5 -0
  457. package/hooks/useClickAway.js +23 -0
  458. package/hooks/useComposeRefs.d.ts +2 -0
  459. package/hooks/useComposeRefs.js +8 -0
  460. package/hooks/useDocumentEscapeKeyDown.d.ts +3 -0
  461. package/hooks/useDocumentEscapeKeyDown.js +20 -0
  462. package/hooks/useDocumentEvents.d.ts +5 -0
  463. package/hooks/useDocumentEvents.js +21 -0
  464. package/hooks/useDocumentTabKeyDown.d.ts +3 -0
  465. package/hooks/useDocumentTabKeyDown.js +19 -0
  466. package/hooks/useIsomorphicLayoutEffect.d.ts +2 -0
  467. package/hooks/useIsomorphicLayoutEffect.js +7 -0
  468. package/hooks/useLastCallback.d.ts +1 -0
  469. package/hooks/useLastCallback.js +11 -0
  470. package/hooks/useLastValue.d.ts +3 -0
  471. package/hooks/useLastValue.js +9 -0
  472. package/hooks/usePreviousValue.d.ts +1 -0
  473. package/hooks/usePreviousValue.js +11 -0
  474. package/hooks/useWindowWidth.d.ts +1 -0
  475. package/hooks/useWindowWidth.js +15 -0
  476. package/index.d.ts +100 -0
  477. package/index.js +148 -0
  478. package/package.json +61 -0
  479. package/utils/composeRefs.d.ts +21 -0
  480. package/utils/composeRefs.js +32 -0
  481. package/utils/cx.d.ts +1 -0
  482. package/utils/getElement.d.ts +3 -0
  483. package/utils/getElement.js +14 -0
  484. package/utils/jsx-types.d.ts +11 -0
  485. package/utils/rename-types.d.ts +5 -0
  486. package/utils/scroll-lock.d.ts +2 -0
  487. package/utils/scroll-lock.js +18 -0
@@ -0,0 +1,90 @@
1
+ import { useState, useCallback } from 'react';
2
+ import isEqual from 'lodash/isEqual';
3
+ import { useControlValueState } from '../../Form/useControlValueState.js';
4
+ import { useLastCallback } from '../../hooks/useLastCallback.js';
5
+
6
+ const sortSource = (prev, cur) => {
7
+ const prevKey = (prev.key || prev.id);
8
+ const curKey = (cur.key || cur.id);
9
+ if (prevKey < curKey)
10
+ return -1;
11
+ if (prevKey > curKey)
12
+ return 1;
13
+ return 0;
14
+ };
15
+ const equalityFn = (a, b) => {
16
+ const sortedA = a.slice(0).sort(sortSource);
17
+ const sortedB = b.slice(0).sort(sortSource);
18
+ const mappedAKeys = sortedA.map((s) => (s.key || s.id));
19
+ const mappedBKeys = sortedB.map((s) => (s.key || s.id));
20
+ const isShallowEqual = mappedAKeys.length === mappedBKeys.length &&
21
+ mappedAKeys.every((v, idx) => v === mappedBKeys[idx]);
22
+ if (isShallowEqual) {
23
+ // we need to do deep compare to sync dataSources
24
+ return sortedA.every((v, idx) => isEqual(v, sortedB[idx]));
25
+ }
26
+ // since shallow equal checked that array is different, so we don't need do deep compare
27
+ return false;
28
+ };
29
+ function useTableSorting(props) {
30
+ const { dataSource: dataSourceProp, } = props;
31
+ const [sortedOn, setSortedOn] = useState('');
32
+ const [sortedType, setSortedType] = useState('none');
33
+ const [dataSource, setDataSource] = useControlValueState({
34
+ defaultValue: [],
35
+ equalityFn,
36
+ value: dataSourceProp,
37
+ });
38
+ const getNextSortedType = useCallback((currentType) => {
39
+ // none -> desc -> asc -> none
40
+ if (currentType === 'none')
41
+ return 'desc';
42
+ if (currentType === 'desc')
43
+ return 'asc';
44
+ return 'none';
45
+ }, []);
46
+ const onReset = useCallback(() => setSortedOn(''), []);
47
+ const onResetAll = useCallback(() => {
48
+ setSortedOn('');
49
+ setSortedType('none');
50
+ }, []);
51
+ const onChange = useLastCallback((opts) => {
52
+ const { dataIndex, sorter, onSorted } = opts;
53
+ const onMappingSources = (sources) => {
54
+ setDataSource(sources);
55
+ onSorted === null || onSorted === void 0 ? void 0 : onSorted(sources);
56
+ };
57
+ // only apply changes when column sorter is given
58
+ if (typeof sorter === 'function') {
59
+ // should update next sorted type first
60
+ const isChosenFromOneToAnother = sortedOn && dataIndex !== sortedOn;
61
+ const nextSortedType = getNextSortedType(isChosenFromOneToAnother ? 'none' : sortedType);
62
+ setSortedType(nextSortedType);
63
+ switch (nextSortedType) {
64
+ case 'desc':
65
+ case 'asc': {
66
+ // update current working dataIndex
67
+ setSortedOn(dataIndex);
68
+ // getting new source instance (when switch between sorter, should use origin dataSource)
69
+ let newSource = (isChosenFromOneToAnother ? dataSourceProp : dataSource).slice(0);
70
+ // sort by given sorter
71
+ newSource = newSource.sort((a, b) => (
72
+ // reverse result when sorted type is ascending
73
+ (sorter(a[dataIndex], b[dataIndex])) * (nextSortedType === 'asc' ? -1 : 1)));
74
+ // map back the data source
75
+ onMappingSources(newSource);
76
+ break;
77
+ }
78
+ case 'none':
79
+ default: {
80
+ onReset();
81
+ onMappingSources(dataSourceProp);
82
+ break;
83
+ }
84
+ }
85
+ }
86
+ });
87
+ return [dataSource, onChange, { sortedOn, sortedType, onResetAll }];
88
+ }
89
+
90
+ export { useTableSorting };
@@ -0,0 +1,10 @@
1
+ import { TableFetchMore, TableDataSource } from '@mezzanine-ui/core/table';
2
+ export interface UseTableFetchMore extends TableFetchMore {
3
+ dataSource: TableDataSource[];
4
+ disabled?: boolean;
5
+ }
6
+ export declare function useTableFetchMore(props: UseTableFetchMore): {
7
+ readonly fetchMore: (() => void) | undefined;
8
+ readonly isFetching: boolean;
9
+ readonly isReachEnd: boolean;
10
+ };
@@ -0,0 +1,50 @@
1
+ import { useMemo, useEffect } from 'react';
2
+ import { useControlValueState } from '../Form/useControlValueState.js';
3
+ import { useLastCallback } from '../hooks/useLastCallback.js';
4
+ import { usePreviousValue } from '../hooks/usePreviousValue.js';
5
+
6
+ const equalityFn = (a, b) => a === b;
7
+ function useTableFetchMore(props) {
8
+ const { callback: callbackProp, dataSource, disabled = false, isReachEnd: isReachEndProp, isFetching: isFetchingProp, } = props;
9
+ /** reach end indicator */
10
+ const [isReachEnd] = useControlValueState({
11
+ defaultValue: false,
12
+ equalityFn,
13
+ value: isReachEndProp,
14
+ });
15
+ /** fetching indicator */
16
+ const [isFetching, setFetching] = useControlValueState({
17
+ defaultValue: false,
18
+ equalityFn,
19
+ value: isFetchingProp,
20
+ });
21
+ const onFetching = useLastCallback((newState) => {
22
+ if (!equalityFn(isFetching, newState))
23
+ setFetching(newState);
24
+ });
25
+ /** fetchMore called */
26
+ const onFetchMore = useLastCallback(() => {
27
+ if (!isFetching && !isReachEnd) {
28
+ callbackProp();
29
+ onFetching(true);
30
+ }
31
+ if (isReachEnd)
32
+ onFetching(false);
33
+ });
34
+ const fetchMore = (callbackProp && !disabled ? onFetchMore : undefined);
35
+ /** check source length and reset states */
36
+ const prevSourceLength = usePreviousValue(dataSource.length);
37
+ const currentSourceLength = useMemo(() => dataSource.length, [dataSource.length]);
38
+ useEffect(() => {
39
+ if (prevSourceLength !== currentSourceLength) {
40
+ onFetching(false);
41
+ }
42
+ }, [prevSourceLength, currentSourceLength]);
43
+ return {
44
+ fetchMore,
45
+ isFetching,
46
+ isReachEnd,
47
+ };
48
+ }
49
+
50
+ export { useTableFetchMore };
@@ -0,0 +1,5 @@
1
+ export declare const SELECTED_ALL_KEY = "MZN-TABLE-ROW-SELECTION-ALL";
2
+ export interface UseTableLoading {
3
+ loading?: boolean;
4
+ }
5
+ export declare function useTableLoading(props: UseTableLoading): readonly [boolean, (l: boolean) => void];
@@ -0,0 +1,19 @@
1
+ import { useControlValueState } from '../Form/useControlValueState.js';
2
+ import { useLastCallback } from '../hooks/useLastCallback.js';
3
+
4
+ const equalityFn = (a, b) => a === b;
5
+ function useTableLoading(props) {
6
+ const { loading: loadingProp, } = props;
7
+ const [loading, setLoading] = useControlValueState({
8
+ defaultValue: false,
9
+ equalityFn,
10
+ value: loadingProp,
11
+ });
12
+ const onChange = useLastCallback((isLoading) => {
13
+ if (!equalityFn(loading, isLoading))
14
+ setLoading(isLoading);
15
+ });
16
+ return [loading, onChange];
17
+ }
18
+
19
+ export { useTableLoading };
@@ -0,0 +1,272 @@
1
+ /// <reference types="react" />
2
+ export default function useTableScroll(): readonly [{
3
+ ref: import("react").RefObject<HTMLDivElement>;
4
+ onScroll: () => void;
5
+ }, {
6
+ ref: import("react").RefObject<HTMLDivElement>;
7
+ onMouseDown: ({ target, clientY }: any) => void;
8
+ onMouseUp: () => void;
9
+ onMouseEnter: () => void;
10
+ onMouseLeave: () => void;
11
+ style: {
12
+ height: string;
13
+ ref?: string | import("react").RefObject<HTMLDivElement> | ((instance: HTMLDivElement | null) => void) | null | undefined;
14
+ key?: string | number | null | undefined;
15
+ defaultChecked?: boolean | undefined;
16
+ defaultValue?: string | number | readonly string[] | undefined;
17
+ suppressContentEditableWarning?: boolean | undefined;
18
+ suppressHydrationWarning?: boolean | undefined;
19
+ accessKey?: string | undefined;
20
+ className?: string | undefined;
21
+ contentEditable?: boolean | "true" | "false" | "inherit" | undefined;
22
+ contextMenu?: string | undefined;
23
+ dir?: string | undefined;
24
+ draggable?: boolean | "true" | "false" | undefined;
25
+ hidden?: boolean | undefined;
26
+ id?: string | undefined;
27
+ lang?: string | undefined;
28
+ placeholder?: string | undefined;
29
+ slot?: string | undefined;
30
+ spellCheck?: boolean | "true" | "false" | undefined;
31
+ style?: import("react").CSSProperties | undefined;
32
+ tabIndex?: number | undefined;
33
+ title?: string | undefined;
34
+ translate?: "yes" | "no" | undefined;
35
+ radioGroup?: string | undefined;
36
+ role?: string | undefined;
37
+ about?: string | undefined;
38
+ datatype?: string | undefined;
39
+ inlist?: any;
40
+ prefix?: string | undefined;
41
+ property?: string | undefined;
42
+ resource?: string | undefined;
43
+ typeof?: string | undefined;
44
+ vocab?: string | undefined;
45
+ autoCapitalize?: string | undefined;
46
+ autoCorrect?: string | undefined;
47
+ autoSave?: string | undefined;
48
+ color?: string | undefined;
49
+ itemProp?: string | undefined;
50
+ itemScope?: boolean | undefined;
51
+ itemType?: string | undefined;
52
+ itemID?: string | undefined;
53
+ itemRef?: string | undefined;
54
+ results?: number | undefined;
55
+ security?: string | undefined;
56
+ unselectable?: "on" | "off" | undefined;
57
+ inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined;
58
+ is?: string | undefined;
59
+ 'aria-activedescendant'?: string | undefined;
60
+ 'aria-atomic'?: boolean | "true" | "false" | undefined;
61
+ 'aria-autocomplete'?: "none" | "inline" | "list" | "both" | undefined;
62
+ 'aria-busy'?: boolean | "true" | "false" | undefined;
63
+ 'aria-checked'?: boolean | "true" | "false" | "mixed" | undefined;
64
+ 'aria-colcount'?: number | undefined;
65
+ 'aria-colindex'?: number | undefined;
66
+ 'aria-colspan'?: number | undefined;
67
+ 'aria-controls'?: string | undefined;
68
+ 'aria-current'?: boolean | "true" | "false" | "page" | "step" | "location" | "date" | "time" | undefined;
69
+ 'aria-describedby'?: string | undefined;
70
+ 'aria-details'?: string | undefined;
71
+ 'aria-disabled'?: boolean | "true" | "false" | undefined;
72
+ 'aria-dropeffect'?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
73
+ 'aria-errormessage'?: string | undefined;
74
+ 'aria-expanded'?: boolean | "true" | "false" | undefined;
75
+ 'aria-flowto'?: string | undefined;
76
+ 'aria-grabbed'?: boolean | "true" | "false" | undefined;
77
+ 'aria-haspopup'?: boolean | "true" | "false" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
78
+ 'aria-hidden'?: boolean | "true" | "false" | undefined;
79
+ 'aria-invalid'?: boolean | "true" | "false" | "grammar" | "spelling" | undefined;
80
+ 'aria-keyshortcuts'?: string | undefined;
81
+ 'aria-label'?: string | undefined;
82
+ 'aria-labelledby'?: string | undefined;
83
+ 'aria-level'?: number | undefined;
84
+ 'aria-live'?: "off" | "assertive" | "polite" | undefined;
85
+ 'aria-modal'?: boolean | "true" | "false" | undefined;
86
+ 'aria-multiline'?: boolean | "true" | "false" | undefined;
87
+ 'aria-multiselectable'?: boolean | "true" | "false" | undefined;
88
+ 'aria-orientation'?: "horizontal" | "vertical" | undefined;
89
+ 'aria-owns'?: string | undefined;
90
+ 'aria-placeholder'?: string | undefined;
91
+ 'aria-posinset'?: number | undefined;
92
+ 'aria-pressed'?: boolean | "true" | "false" | "mixed" | undefined;
93
+ 'aria-readonly'?: boolean | "true" | "false" | undefined;
94
+ 'aria-relevant'?: "text" | "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text additions" | "text removals" | undefined;
95
+ 'aria-required'?: boolean | "true" | "false" | undefined;
96
+ 'aria-roledescription'?: string | undefined;
97
+ 'aria-rowcount'?: number | undefined;
98
+ 'aria-rowindex'?: number | undefined;
99
+ 'aria-rowspan'?: number | undefined;
100
+ 'aria-selected'?: boolean | "true" | "false" | undefined;
101
+ 'aria-setsize'?: number | undefined;
102
+ 'aria-sort'?: "none" | "ascending" | "descending" | "other" | undefined;
103
+ 'aria-valuemax'?: number | undefined;
104
+ 'aria-valuemin'?: number | undefined;
105
+ 'aria-valuenow'?: number | undefined;
106
+ 'aria-valuetext'?: string | undefined;
107
+ children?: import("react").ReactNode;
108
+ dangerouslySetInnerHTML?: {
109
+ __html: string;
110
+ } | undefined;
111
+ onCopy?: ((event: import("react").ClipboardEvent<HTMLDivElement>) => void) | undefined;
112
+ onCopyCapture?: ((event: import("react").ClipboardEvent<HTMLDivElement>) => void) | undefined;
113
+ onCut?: ((event: import("react").ClipboardEvent<HTMLDivElement>) => void) | undefined;
114
+ onCutCapture?: ((event: import("react").ClipboardEvent<HTMLDivElement>) => void) | undefined;
115
+ onPaste?: ((event: import("react").ClipboardEvent<HTMLDivElement>) => void) | undefined;
116
+ onPasteCapture?: ((event: import("react").ClipboardEvent<HTMLDivElement>) => void) | undefined;
117
+ onCompositionEnd?: ((event: import("react").CompositionEvent<HTMLDivElement>) => void) | undefined;
118
+ onCompositionEndCapture?: ((event: import("react").CompositionEvent<HTMLDivElement>) => void) | undefined;
119
+ onCompositionStart?: ((event: import("react").CompositionEvent<HTMLDivElement>) => void) | undefined;
120
+ onCompositionStartCapture?: ((event: import("react").CompositionEvent<HTMLDivElement>) => void) | undefined;
121
+ onCompositionUpdate?: ((event: import("react").CompositionEvent<HTMLDivElement>) => void) | undefined;
122
+ onCompositionUpdateCapture?: ((event: import("react").CompositionEvent<HTMLDivElement>) => void) | undefined;
123
+ onFocus?: ((event: import("react").FocusEvent<HTMLDivElement>) => void) | undefined;
124
+ onFocusCapture?: ((event: import("react").FocusEvent<HTMLDivElement>) => void) | undefined;
125
+ onBlur?: ((event: import("react").FocusEvent<HTMLDivElement>) => void) | undefined;
126
+ onBlurCapture?: ((event: import("react").FocusEvent<HTMLDivElement>) => void) | undefined;
127
+ onChange?: ((event: import("react").FormEvent<HTMLDivElement>) => void) | undefined;
128
+ onChangeCapture?: ((event: import("react").FormEvent<HTMLDivElement>) => void) | undefined;
129
+ onBeforeInput?: ((event: import("react").FormEvent<HTMLDivElement>) => void) | undefined;
130
+ onBeforeInputCapture?: ((event: import("react").FormEvent<HTMLDivElement>) => void) | undefined;
131
+ onInput?: ((event: import("react").FormEvent<HTMLDivElement>) => void) | undefined;
132
+ onInputCapture?: ((event: import("react").FormEvent<HTMLDivElement>) => void) | undefined;
133
+ onReset?: ((event: import("react").FormEvent<HTMLDivElement>) => void) | undefined;
134
+ onResetCapture?: ((event: import("react").FormEvent<HTMLDivElement>) => void) | undefined;
135
+ onSubmit?: ((event: import("react").FormEvent<HTMLDivElement>) => void) | undefined;
136
+ onSubmitCapture?: ((event: import("react").FormEvent<HTMLDivElement>) => void) | undefined;
137
+ onInvalid?: ((event: import("react").FormEvent<HTMLDivElement>) => void) | undefined;
138
+ onInvalidCapture?: ((event: import("react").FormEvent<HTMLDivElement>) => void) | undefined;
139
+ onLoad?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
140
+ onLoadCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
141
+ onError?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
142
+ onErrorCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
143
+ onKeyDown?: ((event: import("react").KeyboardEvent<HTMLDivElement>) => void) | undefined;
144
+ onKeyDownCapture?: ((event: import("react").KeyboardEvent<HTMLDivElement>) => void) | undefined;
145
+ onKeyPress?: ((event: import("react").KeyboardEvent<HTMLDivElement>) => void) | undefined;
146
+ onKeyPressCapture?: ((event: import("react").KeyboardEvent<HTMLDivElement>) => void) | undefined;
147
+ onKeyUp?: ((event: import("react").KeyboardEvent<HTMLDivElement>) => void) | undefined;
148
+ onKeyUpCapture?: ((event: import("react").KeyboardEvent<HTMLDivElement>) => void) | undefined;
149
+ onAbort?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
150
+ onAbortCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
151
+ onCanPlay?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
152
+ onCanPlayCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
153
+ onCanPlayThrough?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
154
+ onCanPlayThroughCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
155
+ onDurationChange?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
156
+ onDurationChangeCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
157
+ onEmptied?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
158
+ onEmptiedCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
159
+ onEncrypted?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
160
+ onEncryptedCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
161
+ onEnded?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
162
+ onEndedCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
163
+ onLoadedData?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
164
+ onLoadedDataCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
165
+ onLoadedMetadata?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
166
+ onLoadedMetadataCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
167
+ onLoadStart?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
168
+ onLoadStartCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
169
+ onPause?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
170
+ onPauseCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
171
+ onPlay?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
172
+ onPlayCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
173
+ onPlaying?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
174
+ onPlayingCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
175
+ onProgress?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
176
+ onProgressCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
177
+ onRateChange?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
178
+ onRateChangeCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
179
+ onSeeked?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
180
+ onSeekedCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
181
+ onSeeking?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
182
+ onSeekingCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
183
+ onStalled?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
184
+ onStalledCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
185
+ onSuspend?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
186
+ onSuspendCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
187
+ onTimeUpdate?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
188
+ onTimeUpdateCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
189
+ onVolumeChange?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
190
+ onVolumeChangeCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
191
+ onWaiting?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
192
+ onWaitingCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
193
+ onAuxClick?: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
194
+ onAuxClickCapture?: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
195
+ onClick?: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
196
+ onClickCapture?: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
197
+ onContextMenu?: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
198
+ onContextMenuCapture?: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
199
+ onDoubleClick?: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
200
+ onDoubleClickCapture?: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
201
+ onDrag?: ((event: import("react").DragEvent<HTMLDivElement>) => void) | undefined;
202
+ onDragCapture?: ((event: import("react").DragEvent<HTMLDivElement>) => void) | undefined;
203
+ onDragEnd?: ((event: import("react").DragEvent<HTMLDivElement>) => void) | undefined;
204
+ onDragEndCapture?: ((event: import("react").DragEvent<HTMLDivElement>) => void) | undefined;
205
+ onDragEnter?: ((event: import("react").DragEvent<HTMLDivElement>) => void) | undefined;
206
+ onDragEnterCapture?: ((event: import("react").DragEvent<HTMLDivElement>) => void) | undefined;
207
+ onDragExit?: ((event: import("react").DragEvent<HTMLDivElement>) => void) | undefined;
208
+ onDragExitCapture?: ((event: import("react").DragEvent<HTMLDivElement>) => void) | undefined;
209
+ onDragLeave?: ((event: import("react").DragEvent<HTMLDivElement>) => void) | undefined;
210
+ onDragLeaveCapture?: ((event: import("react").DragEvent<HTMLDivElement>) => void) | undefined;
211
+ onDragOver?: ((event: import("react").DragEvent<HTMLDivElement>) => void) | undefined;
212
+ onDragOverCapture?: ((event: import("react").DragEvent<HTMLDivElement>) => void) | undefined;
213
+ onDragStart?: ((event: import("react").DragEvent<HTMLDivElement>) => void) | undefined;
214
+ onDragStartCapture?: ((event: import("react").DragEvent<HTMLDivElement>) => void) | undefined;
215
+ onDrop?: ((event: import("react").DragEvent<HTMLDivElement>) => void) | undefined;
216
+ onDropCapture?: ((event: import("react").DragEvent<HTMLDivElement>) => void) | undefined;
217
+ onMouseDown?: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
218
+ onMouseDownCapture?: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
219
+ onMouseEnter?: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
220
+ onMouseLeave?: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
221
+ onMouseMove?: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
222
+ onMouseMoveCapture?: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
223
+ onMouseOut?: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
224
+ onMouseOutCapture?: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
225
+ onMouseOver?: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
226
+ onMouseOverCapture?: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
227
+ onMouseUp?: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
228
+ onMouseUpCapture?: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
229
+ onSelect?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
230
+ onSelectCapture?: ((event: import("react").SyntheticEvent<HTMLDivElement, Event>) => void) | undefined;
231
+ onTouchCancel?: ((event: import("react").TouchEvent<HTMLDivElement>) => void) | undefined;
232
+ onTouchCancelCapture?: ((event: import("react").TouchEvent<HTMLDivElement>) => void) | undefined;
233
+ onTouchEnd?: ((event: import("react").TouchEvent<HTMLDivElement>) => void) | undefined;
234
+ onTouchEndCapture?: ((event: import("react").TouchEvent<HTMLDivElement>) => void) | undefined;
235
+ onTouchMove?: ((event: import("react").TouchEvent<HTMLDivElement>) => void) | undefined;
236
+ onTouchMoveCapture?: ((event: import("react").TouchEvent<HTMLDivElement>) => void) | undefined;
237
+ onTouchStart?: ((event: import("react").TouchEvent<HTMLDivElement>) => void) | undefined;
238
+ onTouchStartCapture?: ((event: import("react").TouchEvent<HTMLDivElement>) => void) | undefined;
239
+ onPointerDown?: ((event: import("react").PointerEvent<HTMLDivElement>) => void) | undefined;
240
+ onPointerDownCapture?: ((event: import("react").PointerEvent<HTMLDivElement>) => void) | undefined;
241
+ onPointerMove?: ((event: import("react").PointerEvent<HTMLDivElement>) => void) | undefined;
242
+ onPointerMoveCapture?: ((event: import("react").PointerEvent<HTMLDivElement>) => void) | undefined;
243
+ onPointerUp?: ((event: import("react").PointerEvent<HTMLDivElement>) => void) | undefined;
244
+ onPointerUpCapture?: ((event: import("react").PointerEvent<HTMLDivElement>) => void) | undefined;
245
+ onPointerCancel?: ((event: import("react").PointerEvent<HTMLDivElement>) => void) | undefined;
246
+ onPointerCancelCapture?: ((event: import("react").PointerEvent<HTMLDivElement>) => void) | undefined;
247
+ onPointerEnter?: ((event: import("react").PointerEvent<HTMLDivElement>) => void) | undefined;
248
+ onPointerEnterCapture?: ((event: import("react").PointerEvent<HTMLDivElement>) => void) | undefined;
249
+ onPointerLeave?: ((event: import("react").PointerEvent<HTMLDivElement>) => void) | undefined;
250
+ onPointerLeaveCapture?: ((event: import("react").PointerEvent<HTMLDivElement>) => void) | undefined;
251
+ onPointerOver?: ((event: import("react").PointerEvent<HTMLDivElement>) => void) | undefined;
252
+ onPointerOverCapture?: ((event: import("react").PointerEvent<HTMLDivElement>) => void) | undefined;
253
+ onPointerOut?: ((event: import("react").PointerEvent<HTMLDivElement>) => void) | undefined;
254
+ onPointerOutCapture?: ((event: import("react").PointerEvent<HTMLDivElement>) => void) | undefined;
255
+ onGotPointerCapture?: ((event: import("react").PointerEvent<HTMLDivElement>) => void) | undefined;
256
+ onGotPointerCaptureCapture?: ((event: import("react").PointerEvent<HTMLDivElement>) => void) | undefined;
257
+ onLostPointerCapture?: ((event: import("react").PointerEvent<HTMLDivElement>) => void) | undefined;
258
+ onLostPointerCaptureCapture?: ((event: import("react").PointerEvent<HTMLDivElement>) => void) | undefined;
259
+ onScroll?: ((event: import("react").UIEvent<HTMLDivElement, UIEvent>) => void) | undefined;
260
+ onScrollCapture?: ((event: import("react").UIEvent<HTMLDivElement, UIEvent>) => void) | undefined;
261
+ onWheel?: ((event: import("react").WheelEvent<HTMLDivElement>) => void) | undefined;
262
+ onWheelCapture?: ((event: import("react").WheelEvent<HTMLDivElement>) => void) | undefined;
263
+ onAnimationStart?: ((event: import("react").AnimationEvent<HTMLDivElement>) => void) | undefined;
264
+ onAnimationStartCapture?: ((event: import("react").AnimationEvent<HTMLDivElement>) => void) | undefined;
265
+ onAnimationEnd?: ((event: import("react").AnimationEvent<HTMLDivElement>) => void) | undefined;
266
+ onAnimationEndCapture?: ((event: import("react").AnimationEvent<HTMLDivElement>) => void) | undefined;
267
+ onAnimationIteration?: ((event: import("react").AnimationEvent<HTMLDivElement>) => void) | undefined;
268
+ onAnimationIterationCapture?: ((event: import("react").AnimationEvent<HTMLDivElement>) => void) | undefined;
269
+ onTransitionEnd?: ((event: import("react").TransitionEvent<HTMLDivElement>) => void) | undefined;
270
+ onTransitionEndCapture?: ((event: import("react").TransitionEvent<HTMLDivElement>) => void) | undefined;
271
+ };
272
+ }];
@@ -0,0 +1,170 @@
1
+ import { useRef, useContext, useState, useCallback, useMemo, useEffect } from 'react';
2
+ import { TableContext, TableDataContext } from './TableContext.js';
3
+ import { usePreviousValue } from '../hooks/usePreviousValue.js';
4
+
5
+ const defaultScrollBarStyle = {
6
+ display: 'flex',
7
+ justifyContent: 'center',
8
+ alignItems: 'flex-start',
9
+ position: 'absolute',
10
+ right: 0,
11
+ top: 0,
12
+ width: 10,
13
+ height: 0,
14
+ borderRadius: 10,
15
+ outline: 'none',
16
+ opacity: '0',
17
+ transition: '0.1s opacity ease-in',
18
+ backgroundColor: 'transparent',
19
+ };
20
+ const SCROLL_BAR_MIN_START_AT = 4; // px
21
+ const SCROLL_BAR_MAX_END_SPACING = 16; // px
22
+ const FETCH_MORE_TRIGGER_AT_BOTTOM = 46; // px
23
+ const SCROLL_BAR_DISPLAY_TIMES = 1000; // ms
24
+ function useTableScroll() {
25
+ const bodyRef = useRef(null);
26
+ const scrollBarRef = useRef(null);
27
+ const scrollBarDisplayTimer = useRef();
28
+ const { fetchMore, loading, scrollBarSize = 4, } = useContext(TableContext) || {};
29
+ const { dataSource = [], } = useContext(TableDataContext) || {};
30
+ const [scrollBarHeight, setScrollBarHeight] = useState(0);
31
+ const [pointerOffset, setPointerOffset] = useState(0);
32
+ /** set scroll bar callback */
33
+ const onSetScrollBarHeight = useCallback(() => {
34
+ if (!bodyRef.current)
35
+ return;
36
+ const { scrollHeight, clientHeight: tableHeight, } = bodyRef.current;
37
+ const nextHeight = Math.max((tableHeight - SCROLL_BAR_MAX_END_SPACING) * (tableHeight / scrollHeight), tableHeight / 10);
38
+ setScrollBarHeight(nextHeight);
39
+ }, []);
40
+ /** display/hide scroll bar */
41
+ const onHideScrollBar = useCallback(() => {
42
+ if (!scrollBarRef.current)
43
+ return;
44
+ scrollBarRef.current.style.opacity = '0';
45
+ scrollBarRef.current.style.pointerEvents = 'none';
46
+ }, []);
47
+ const onDisplayScrollBar = useCallback(() => {
48
+ if (!scrollBarRef.current || !bodyRef.current)
49
+ return;
50
+ if (scrollBarDisplayTimer.current) {
51
+ window.clearTimeout(scrollBarDisplayTimer.current);
52
+ }
53
+ scrollBarRef.current.style.opacity = '1';
54
+ scrollBarRef.current.style.pointerEvents = 'auto';
55
+ scrollBarDisplayTimer.current = window.setTimeout(() => onHideScrollBar(), SCROLL_BAR_DISPLAY_TIMES);
56
+ }, []);
57
+ /** reset scroll bar height when sources changed */
58
+ const prevSourceLength = usePreviousValue(dataSource.length);
59
+ const currentSourceLength = useMemo(() => dataSource.length, [dataSource.length]);
60
+ useEffect(() => {
61
+ // first initial render
62
+ onSetScrollBarHeight();
63
+ }, []);
64
+ useEffect(() => {
65
+ if (prevSourceLength !== currentSourceLength) {
66
+ onSetScrollBarHeight();
67
+ }
68
+ }, [prevSourceLength, currentSourceLength]);
69
+ /** set the scroll bar default position */
70
+ useEffect(() => {
71
+ if (!scrollBarRef.current || !bodyRef.current)
72
+ return;
73
+ scrollBarRef.current.style.top = `${SCROLL_BAR_MIN_START_AT}px`;
74
+ }, []);
75
+ useEffect(() => {
76
+ const { current: body } = bodyRef;
77
+ const { current: scrollBar } = scrollBarRef;
78
+ if (!body || !scrollBar)
79
+ return;
80
+ function onMouseMove({ clientY }) {
81
+ const { scrollTop, scrollHeight, clientHeight: tableHeight, } = body;
82
+ if (!pointerOffset)
83
+ return;
84
+ // keep scroll bar display when moving
85
+ window.requestAnimationFrame(onDisplayScrollBar);
86
+ const { top: tableTop, } = body.getBoundingClientRect();
87
+ const nextScrollBarTop = (clientY - tableTop - pointerOffset) + scrollTop;
88
+ const maxScrollBarTop = scrollHeight - scrollBarHeight - SCROLL_BAR_MAX_END_SPACING;
89
+ const clampScrollBarTop = Math.min(Math.max(nextScrollBarTop, SCROLL_BAR_MIN_START_AT), // min boundary
90
+ maxScrollBarTop);
91
+ scrollBar.style.setProperty('top', `${clampScrollBarTop}px`);
92
+ body.scrollTop = (((scrollHeight - tableHeight) * (clampScrollBarTop)) /
93
+ (scrollHeight - scrollBarHeight));
94
+ }
95
+ scrollBar.addEventListener('mousemove', onMouseMove, false);
96
+ return () => {
97
+ scrollBar.removeEventListener('mousemove', onMouseMove, false);
98
+ };
99
+ }, [scrollBarHeight, pointerOffset, onDisplayScrollBar]);
100
+ const resetPointerOffset = useCallback(() => setPointerOffset(0), []);
101
+ /** scroll bar fatter when mouse enter */
102
+ const onScrollBarEnter = useCallback(() => {
103
+ if (scrollBarRef.current) {
104
+ scrollBarRef.current.childNodes[0].style.width = `${scrollBarSize + 6}px`;
105
+ }
106
+ }, []);
107
+ /** scroll bar style reset when mouse leave */
108
+ const onScrollBarLeave = useCallback(() => {
109
+ if (scrollBarRef.current) {
110
+ scrollBarRef.current.childNodes[0].style.width = `${scrollBarSize}px`;
111
+ }
112
+ resetPointerOffset();
113
+ }, []);
114
+ /** when use mouse to drag scroll bar, get cursor position */
115
+ const onScrollBarMouseDown = useCallback(({ target, clientY }) => {
116
+ if (!target)
117
+ return;
118
+ const { top: initScrollBarTop } = target.getBoundingClientRect();
119
+ setPointerOffset(clientY - initScrollBarTop);
120
+ }, []);
121
+ const onScrollBarMouseUp = useCallback(() => resetPointerOffset(), []);
122
+ /** scroll table directly */
123
+ const setScrollBarTop = useCallback(() => {
124
+ if (bodyRef.current) {
125
+ const { clientHeight: tableHeight, scrollTop, scrollHeight, } = bodyRef.current;
126
+ /** @NOTE don't apply scroll change when use pointer dragging */
127
+ if (scrollBarRef.current && !pointerOffset) {
128
+ scrollBarRef.current.style.top = `${(scrollTop * (tableHeight - scrollBarHeight - SCROLL_BAR_MAX_END_SPACING)) /
129
+ (scrollHeight - tableHeight) + scrollTop + SCROLL_BAR_MIN_START_AT}px`;
130
+ }
131
+ }
132
+ }, [scrollBarHeight, pointerOffset]);
133
+ const onScroll = useCallback(() => {
134
+ window.requestAnimationFrame(onDisplayScrollBar);
135
+ if (loading)
136
+ return;
137
+ if (bodyRef.current) {
138
+ const { clientHeight, scrollTop, scrollHeight, } = bodyRef.current;
139
+ /** @Note safari specific bug fix for scroll bouncing */
140
+ const belowBottom = scrollTop > (scrollHeight - clientHeight);
141
+ if (belowBottom)
142
+ return;
143
+ window.requestAnimationFrame(setScrollBarTop);
144
+ /** trigger fetchMore when scrolling */
145
+ if ((scrollHeight - (scrollTop + clientHeight)) < FETCH_MORE_TRIGGER_AT_BOTTOM) {
146
+ fetchMore === null || fetchMore === void 0 ? void 0 : fetchMore.onFetchMore();
147
+ }
148
+ }
149
+ }, [loading, setScrollBarTop, onDisplayScrollBar, fetchMore]);
150
+ const scrollBarStyle = useMemo(() => ({
151
+ ...defaultScrollBarStyle,
152
+ height: `${scrollBarHeight}px`,
153
+ }), [scrollBarHeight]);
154
+ /** composing result */
155
+ const tableBody = {
156
+ ref: bodyRef,
157
+ onScroll,
158
+ };
159
+ const scrollElement = {
160
+ ref: scrollBarRef,
161
+ onMouseDown: onScrollBarMouseDown,
162
+ onMouseUp: onScrollBarMouseUp,
163
+ onMouseEnter: onScrollBarEnter,
164
+ onMouseLeave: onScrollBarLeave,
165
+ style: scrollBarStyle,
166
+ };
167
+ return [tableBody, scrollElement];
168
+ }
169
+
170
+ export default useTableScroll;
package/Tabs/Tab.d.ts ADDED
@@ -0,0 +1,19 @@
1
+ /// <reference types="react" />
2
+ import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types';
3
+ export interface TabProps extends NativeElementPropsWithoutKeyAndRef<'button'> {
4
+ /**
5
+ * Whether the tab is active.
6
+ * Controlled by tabs.
7
+ */
8
+ active?: boolean;
9
+ /**
10
+ * Whether the tab is disabled
11
+ * @default false
12
+ */
13
+ disabled?: boolean;
14
+ }
15
+ /**
16
+ * The react component for `mezzanine` tab.
17
+ */
18
+ declare const Tab: import("react").ForwardRefExoticComponent<TabProps & import("react").RefAttributes<HTMLButtonElement>>;
19
+ export default Tab;