@react-md/core 1.0.0-next.0 → 1.0.0-next.2

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 (1006) hide show
  1. package/.turbo/turbo-build.log +5 -5
  2. package/CHANGELOG.md +65 -0
  3. package/coverage/clover.xml +3 -1118
  4. package/coverage/coverage-final.json +1 -7
  5. package/coverage/lcov-report/CircularProgress.tsx.html +799 -0
  6. package/coverage/lcov-report/DefaultToastRenderer.tsx.html +166 -112
  7. package/coverage/lcov-report/Dialog.tsx.html +1309 -0
  8. package/coverage/lcov-report/DialogContent.tsx.html +178 -0
  9. package/coverage/lcov-report/DialogFooter.tsx.html +169 -0
  10. package/coverage/lcov-report/LinearProgress.tsx.html +658 -0
  11. package/coverage/lcov-report/MaterialIcon.tsx.html +36 -42
  12. package/coverage/lcov-report/MaterialSymbol.tsx.html +240 -222
  13. package/coverage/lcov-report/MenuItemInputToggle.tsx.html +979 -0
  14. package/coverage/lcov-report/MenuItemSeparator.tsx.html +223 -0
  15. package/coverage/lcov-report/MenuItemTextField.tsx.html +289 -0
  16. package/coverage/lcov-report/Snackbar.tsx.html +360 -402
  17. package/coverage/lcov-report/Switch.tsx.html +535 -0
  18. package/coverage/lcov-report/SwitchTrack.tsx.html +262 -0
  19. package/coverage/lcov-report/Table.tsx.html +457 -0
  20. package/coverage/lcov-report/TableCell.tsx.html +982 -0
  21. package/coverage/lcov-report/TableCheckbox.tsx.html +709 -0
  22. package/coverage/lcov-report/TableContainer.tsx.html +220 -0
  23. package/coverage/lcov-report/TableFooter.tsx.html +502 -0
  24. package/coverage/lcov-report/TableHeader.tsx.html +541 -0
  25. package/coverage/lcov-report/TableRadio.tsx.html +670 -0
  26. package/coverage/lcov-report/TableRow.tsx.html +289 -0
  27. package/coverage/lcov-report/Toast.tsx.html +868 -0
  28. package/coverage/lcov-report/ToastManager.tsx.html +1783 -0
  29. package/coverage/lcov-report/ToastManagerProvider.tsx.html +216 -216
  30. package/coverage/lcov-report/Tooltip.tsx.html +98 -155
  31. package/coverage/lcov-report/avatar/Avatar.tsx.html +37 -31
  32. package/coverage/lcov-report/avatar/index.html +22 -7
  33. package/coverage/lcov-report/avatar/styles.ts.html +268 -0
  34. package/coverage/lcov-report/button/AsyncButton.tsx.html +217 -10
  35. package/coverage/lcov-report/button/Button.tsx.html +95 -83
  36. package/coverage/lcov-report/button/index.html +12 -12
  37. package/coverage/lcov-report/config.ts.html +33 -18
  38. package/coverage/lcov-report/cssUtils.ts.html +143 -65
  39. package/coverage/lcov-report/dialog/Dialog.tsx.html +170 -167
  40. package/coverage/lcov-report/dialog/DialogContent.tsx.html +178 -0
  41. package/coverage/lcov-report/dialog/DialogFooter.tsx.html +169 -0
  42. package/coverage/lcov-report/dialog/DialogHeader.tsx.html +148 -0
  43. package/coverage/lcov-report/dialog/DialogTitle.tsx.html +256 -0
  44. package/coverage/lcov-report/dialog/index.html +18 -33
  45. package/coverage/lcov-report/dialog/styles.ts.html +439 -0
  46. package/coverage/lcov-report/form/MenuItemInputToggle.tsx.html +36 -24
  47. package/coverage/lcov-report/form/MenuItemTextField.tsx.html +12 -9
  48. package/coverage/lcov-report/form/SliderValueTooltip.tsx.html +319 -0
  49. package/coverage/lcov-report/form/Switch.tsx.html +310 -385
  50. package/coverage/lcov-report/form/SwitchTrack.tsx.html +98 -71
  51. package/coverage/lcov-report/form/index.html +20 -245
  52. package/coverage/lcov-report/form/switchStyles.ts.html +172 -0
  53. package/coverage/lcov-report/form/useRadioGroup.ts.html +79 -79
  54. package/coverage/lcov-report/hoverMode/index.html +116 -0
  55. package/coverage/lcov-report/hoverMode/useHoverMode.ts.html +676 -0
  56. package/coverage/lcov-report/icon/FontIcon.tsx.html +37 -46
  57. package/coverage/lcov-report/icon/index.html +12 -12
  58. package/coverage/lcov-report/icon/styles.ts.html +41 -104
  59. package/coverage/lcov-report/iconConfig.tsx.html +973 -0
  60. package/coverage/lcov-report/index.html +11 -101
  61. package/coverage/lcov-report/link/Link.tsx.html +358 -0
  62. package/coverage/lcov-report/link/index.html +20 -20
  63. package/coverage/lcov-report/list/ListItemLink.tsx.html +29 -35
  64. package/coverage/lcov-report/list/index.html +8 -38
  65. package/coverage/lcov-report/materialConfig.ts.html +703 -0
  66. package/coverage/lcov-report/media-queries/appSize.ts.html +1 -1
  67. package/coverage/lcov-report/media-queries/index.html +10 -10
  68. package/coverage/lcov-report/menu/DropdownMenu.tsx.html +976 -0
  69. package/coverage/lcov-report/menu/Menu.tsx.html +111 -60
  70. package/coverage/lcov-report/menu/MenuConfigurationProvider.tsx.html +637 -0
  71. package/coverage/lcov-report/menu/MenuSheet.tsx.html +37 -13
  72. package/coverage/lcov-report/menu/index.html +35 -65
  73. package/coverage/lcov-report/menu/menuConfig.ts.html +118 -0
  74. package/coverage/lcov-report/progress/CircularProgress.tsx.html +799 -0
  75. package/coverage/lcov-report/progress/LinearProgress.tsx.html +100 -94
  76. package/coverage/lcov-report/progress/index.html +22 -7
  77. package/coverage/lcov-report/snackbar/Snackbar.tsx.html +55 -97
  78. package/coverage/lcov-report/snackbar/Toast.tsx.html +546 -501
  79. package/coverage/lcov-report/snackbar/ToastManager.tsx.html +269 -269
  80. package/coverage/lcov-report/snackbar/ToastManagerProvider.tsx.html +23 -23
  81. package/coverage/lcov-report/snackbar/index.html +59 -14
  82. package/coverage/lcov-report/snackbar/snackbarStyles.ts.html +12 -87
  83. package/coverage/lcov-report/snackbar/toastStyles.ts.html +206 -146
  84. package/coverage/lcov-report/snackbar/useCurrentToastActions.ts.html +226 -0
  85. package/coverage/lcov-report/snackbarStyles.ts.html +46 -121
  86. package/coverage/lcov-report/src/CoreProviders.tsx.html +20 -20
  87. package/coverage/lcov-report/src/NoSsr.tsx.html +1 -1
  88. package/coverage/lcov-report/src/SsrProvider.tsx.html +10 -10
  89. package/coverage/lcov-report/src/app-bar/AppBar.tsx.html +65 -65
  90. package/coverage/lcov-report/src/app-bar/AppBarTitle.tsx.html +1 -1
  91. package/coverage/lcov-report/src/app-bar/index.html +20 -5
  92. package/coverage/lcov-report/src/avatar/Avatar.tsx.html +36 -27
  93. package/coverage/lcov-report/src/avatar/index.html +22 -7
  94. package/coverage/lcov-report/src/avatar/styles.ts.html +77 -8
  95. package/coverage/lcov-report/src/badge/Badge.tsx.html +1 -1
  96. package/coverage/lcov-report/src/badge/index.html +1 -1
  97. package/coverage/lcov-report/src/box/Box.tsx.html +1 -1
  98. package/coverage/lcov-report/src/box/index.html +10 -25
  99. package/coverage/lcov-report/src/box/styles.ts.html +103 -49
  100. package/coverage/lcov-report/src/button/AsyncButton.tsx.html +833 -284
  101. package/coverage/lcov-report/src/button/Button.tsx.html +87 -87
  102. package/coverage/lcov-report/src/button/ButtonUnstyled.tsx.html +1 -1
  103. package/coverage/lcov-report/src/button/FloatingActionButton.tsx.html +39 -39
  104. package/coverage/lcov-report/src/button/buttonStyles.ts.html +59 -59
  105. package/coverage/lcov-report/src/button/buttonUnstyledStyles.ts.html +1 -1
  106. package/coverage/lcov-report/src/button/index.html +23 -8
  107. package/coverage/lcov-report/src/card/Card.tsx.html +1 -1
  108. package/coverage/lcov-report/src/card/CardContent.tsx.html +1 -1
  109. package/coverage/lcov-report/src/card/CardFooter.tsx.html +1 -1
  110. package/coverage/lcov-report/src/card/CardHeader.tsx.html +1 -1
  111. package/coverage/lcov-report/src/card/CardSubtitle.tsx.html +1 -1
  112. package/coverage/lcov-report/src/card/CardTitle.tsx.html +1 -1
  113. package/coverage/lcov-report/src/card/index.html +95 -5
  114. package/coverage/lcov-report/src/card/styles.ts.html +1 -1
  115. package/coverage/lcov-report/src/chip/Chip.tsx.html +1 -1
  116. package/coverage/lcov-report/src/chip/index.html +1 -1
  117. package/coverage/lcov-report/src/chip/styles.ts.html +1 -1
  118. package/coverage/lcov-report/src/cssUtils.ts.html +68 -59
  119. package/coverage/lcov-report/src/delegateEvent.ts.html +84 -84
  120. package/coverage/lcov-report/src/dialog/Dialog.tsx.html +158 -155
  121. package/coverage/lcov-report/src/dialog/DialogContainer.tsx.html +27 -27
  122. package/coverage/lcov-report/src/dialog/DialogContent.tsx.html +72 -72
  123. package/coverage/lcov-report/src/dialog/DialogFooter.tsx.html +14 -14
  124. package/coverage/lcov-report/src/dialog/DialogHeader.tsx.html +9 -9
  125. package/coverage/lcov-report/src/dialog/DialogTitle.tsx.html +124 -124
  126. package/coverage/lcov-report/src/dialog/FixedDialog.tsx.html +1 -1
  127. package/coverage/lcov-report/src/dialog/NestedDialogProvider.ts.html +3 -3
  128. package/coverage/lcov-report/src/dialog/index.html +21 -21
  129. package/coverage/lcov-report/src/dialog/styles.ts.html +61 -61
  130. package/coverage/lcov-report/src/divider/Divider.tsx.html +24 -24
  131. package/coverage/lcov-report/src/divider/index.html +21 -6
  132. package/coverage/lcov-report/src/divider/styles.ts.html +11 -11
  133. package/coverage/lcov-report/src/draggable/index.html +5 -5
  134. package/coverage/lcov-report/src/draggable/useDraggable.ts.html +322 -322
  135. package/coverage/lcov-report/src/draggable/utils.ts.html +81 -81
  136. package/coverage/lcov-report/src/expansion-panel/ExpansionList.tsx.html +1 -1
  137. package/coverage/lcov-report/src/expansion-panel/ExpansionPanel.tsx.html +1 -1
  138. package/coverage/lcov-report/src/expansion-panel/ExpansionPanelHeader.tsx.html +11 -20
  139. package/coverage/lcov-report/src/expansion-panel/index.html +25 -10
  140. package/coverage/lcov-report/src/expansion-panel/useExpansionList.ts.html +1 -1
  141. package/coverage/lcov-report/src/expansion-panel/useExpansionPanels.ts.html +1 -1
  142. package/coverage/lcov-report/src/focus/index.html +23 -23
  143. package/coverage/lcov-report/src/focus/useFocusContainer.ts.html +142 -121
  144. package/coverage/lcov-report/src/focus/utils.ts.html +37 -37
  145. package/coverage/lcov-report/src/form/Checkbox.tsx.html +1 -1
  146. package/coverage/lcov-report/src/form/Fieldset.tsx.html +1 -1
  147. package/coverage/lcov-report/src/form/FileInput.tsx.html +133 -139
  148. package/coverage/lcov-report/src/form/Form.tsx.html +1 -1
  149. package/coverage/lcov-report/src/form/FormMessage.tsx.html +126 -264
  150. package/coverage/lcov-report/src/form/FormMessageContainer.tsx.html +42 -45
  151. package/coverage/lcov-report/src/form/FormMessageCounter.tsx.html +1 -1
  152. package/coverage/lcov-report/src/form/InputToggle.tsx.html +7 -16
  153. package/coverage/lcov-report/src/form/InputToggleIcon.tsx.html +1 -1
  154. package/coverage/lcov-report/src/form/Label.tsx.html +102 -102
  155. package/coverage/lcov-report/src/form/Legend.tsx.html +1 -1
  156. package/coverage/lcov-report/src/form/MenuItemCheckbox.tsx.html +11 -5
  157. package/coverage/lcov-report/src/form/MenuItemFileInput.tsx.html +3 -3
  158. package/coverage/lcov-report/src/form/MenuItemInputToggle.tsx.html +21 -9
  159. package/coverage/lcov-report/src/form/MenuItemRadio.tsx.html +11 -5
  160. package/coverage/lcov-report/src/form/MenuItemSwitch.tsx.html +1 -1
  161. package/coverage/lcov-report/src/form/MenuItemTextField.tsx.html +13 -4
  162. package/coverage/lcov-report/src/form/NativeSelect.tsx.html +20 -5
  163. package/coverage/lcov-report/src/form/OptGroup.tsx.html +1 -1
  164. package/coverage/lcov-report/src/form/Option.tsx.html +4 -4
  165. package/coverage/lcov-report/src/form/Password.tsx.html +3 -3
  166. package/coverage/lcov-report/src/form/Radio.tsx.html +1 -1
  167. package/coverage/lcov-report/src/form/Select.tsx.html +1 -1
  168. package/coverage/lcov-report/src/form/SelectValue.tsx.html +1 -1
  169. package/coverage/lcov-report/src/form/Slider.tsx.html +129 -9
  170. package/coverage/lcov-report/src/form/SliderContainer.tsx.html +1 -1
  171. package/coverage/lcov-report/src/form/SliderMark.tsx.html +1 -1
  172. package/coverage/lcov-report/src/form/SliderMarkLabel.tsx.html +1 -1
  173. package/coverage/lcov-report/src/form/SliderThumb.tsx.html +43 -7
  174. package/coverage/lcov-report/src/form/SliderTrack.tsx.html +1 -1
  175. package/coverage/lcov-report/src/form/SliderValueMarks.tsx.html +11 -5
  176. package/coverage/lcov-report/src/form/SliderValueTooltip.tsx.html +2 -2
  177. package/coverage/lcov-report/src/form/Switch.tsx.html +310 -373
  178. package/coverage/lcov-report/src/form/SwitchTrack.tsx.html +99 -69
  179. package/coverage/lcov-report/src/form/TextArea.tsx.html +21 -9
  180. package/coverage/lcov-report/src/form/TextField.tsx.html +16 -10
  181. package/coverage/lcov-report/src/form/TextFieldAddon.tsx.html +14 -26
  182. package/coverage/lcov-report/src/form/TextFieldContainer.tsx.html +28 -10
  183. package/coverage/lcov-report/src/form/TextFieldContainerStyles.ts.html +17 -8
  184. package/coverage/lcov-report/src/form/fileUtils.ts.html +3 -3
  185. package/coverage/lcov-report/src/form/formConfig.ts.html +18 -18
  186. package/coverage/lcov-report/src/form/formMessageStyles.ts.html +40 -40
  187. package/coverage/lcov-report/src/form/index.html +14 -164
  188. package/coverage/lcov-report/src/form/inputToggleStyles.ts.html +1 -1
  189. package/coverage/lcov-report/src/form/nativeSelectStyles.ts.html +34 -7
  190. package/coverage/lcov-report/src/form/optionStyles.ts.html +1 -1
  191. package/coverage/lcov-report/src/form/passwordStyles.ts.html +1 -1
  192. package/coverage/lcov-report/src/form/selectStyles.ts.html +1 -1
  193. package/coverage/lcov-report/src/form/selectUtils.ts.html +6 -9
  194. package/coverage/lcov-report/src/form/sliderUtils.ts.html +20 -14
  195. package/coverage/lcov-report/src/form/switchStyles.ts.html +68 -68
  196. package/coverage/lcov-report/src/form/textAreaStyles.ts.html +3 -3
  197. package/coverage/lcov-report/src/form/textFieldStyles.ts.html +1 -1
  198. package/coverage/lcov-report/src/form/useCheckboxGroup.ts.html +2 -2
  199. package/coverage/lcov-report/src/form/useFileUpload.ts.html +28 -19
  200. package/coverage/lcov-report/src/form/useListboxProvider.ts.html +5 -8
  201. package/coverage/lcov-report/src/form/useNumberField.ts.html +10 -10
  202. package/coverage/lcov-report/src/form/useRadioGroup.ts.html +22 -7
  203. package/coverage/lcov-report/src/form/useRangeSlider.ts.html +3 -3
  204. package/coverage/lcov-report/src/form/useResizingTextArea.ts.html +523 -0
  205. package/coverage/lcov-report/src/form/useSlider.ts.html +2 -2
  206. package/coverage/lcov-report/src/form/useTextField.ts.html +32 -26
  207. package/coverage/lcov-report/src/form/utils.ts.html +2 -2
  208. package/coverage/lcov-report/src/form/validation.ts.html +2 -2
  209. package/coverage/lcov-report/src/hoverMode/index.html +1 -1
  210. package/coverage/lcov-report/src/hoverMode/useHoverMode.ts.html +95 -95
  211. package/coverage/lcov-report/src/hoverMode/useHoverModeProvider.ts.html +3 -3
  212. package/coverage/lcov-report/src/icon/FontIcon.tsx.html +34 -43
  213. package/coverage/lcov-report/src/icon/IconRotator.tsx.html +1 -1
  214. package/coverage/lcov-report/src/icon/MaterialIcon.tsx.html +36 -42
  215. package/coverage/lcov-report/src/icon/MaterialSymbol.tsx.html +240 -222
  216. package/coverage/lcov-report/src/icon/SVGIcon.tsx.html +1 -1
  217. package/coverage/lcov-report/src/icon/TextIconSpacing.tsx.html +33 -33
  218. package/coverage/lcov-report/src/icon/iconConfig.tsx.html +973 -0
  219. package/coverage/lcov-report/src/icon/index.html +149 -14
  220. package/coverage/lcov-report/src/icon/material.ts.html +748 -58
  221. package/coverage/lcov-report/src/icon/materialConfig.ts.html +703 -0
  222. package/coverage/lcov-report/src/icon/styles.ts.html +47 -110
  223. package/coverage/lcov-report/src/index.html +8 -8
  224. package/coverage/lcov-report/src/interaction/Ripple.tsx.html +60 -60
  225. package/coverage/lcov-report/src/interaction/RippleContainer.tsx.html +41 -47
  226. package/coverage/lcov-report/src/interaction/UserInteractionModeProvider.tsx.html +240 -240
  227. package/coverage/lcov-report/src/interaction/config.ts.html +7 -7
  228. package/coverage/lcov-report/src/interaction/index.html +100 -10
  229. package/coverage/lcov-report/src/interaction/useElementInteraction.tsx.html +146 -146
  230. package/coverage/lcov-report/src/interaction/useHigherContrastChildren.tsx.html +17 -17
  231. package/coverage/lcov-report/src/interaction/utils.ts.html +171 -171
  232. package/coverage/lcov-report/src/layout/LayoutAppBar.tsx.html +1 -1
  233. package/coverage/lcov-report/src/layout/LayoutNav.tsx.html +60 -60
  234. package/coverage/lcov-report/src/layout/LayoutWindowSplitter.tsx.html +1 -1
  235. package/coverage/lcov-report/src/layout/Main.tsx.html +1 -1
  236. package/coverage/lcov-report/src/layout/index.html +200 -5
  237. package/coverage/lcov-report/src/layout/layoutNavStyles.ts.html +5 -5
  238. package/coverage/lcov-report/src/layout/layoutWindowSplitterStyles.ts.html +1 -1
  239. package/coverage/lcov-report/src/layout/mainStyles.ts.html +1 -1
  240. package/coverage/lcov-report/src/layout/useExpandableLayout.ts.html +1 -1
  241. package/coverage/lcov-report/src/layout/useHorizontalLayoutTransition.ts.html +1 -1
  242. package/coverage/lcov-report/src/layout/useLayoutAppBarHeight.ts.html +1 -1
  243. package/coverage/lcov-report/src/layout/useLayoutTree.ts.html +1 -1
  244. package/coverage/lcov-report/src/layout/useLayoutWindowSplitter.ts.html +1 -1
  245. package/coverage/lcov-report/src/layout/useMainTabIndex.ts.html +1 -1
  246. package/coverage/lcov-report/src/layout/useResizableLayout.ts.html +1 -1
  247. package/coverage/lcov-report/src/layout/useTemporaryLayout.ts.html +3 -3
  248. package/coverage/lcov-report/src/link/Link.tsx.html +39 -9
  249. package/coverage/lcov-report/src/link/SkipToMainContent.tsx.html +1 -1
  250. package/coverage/lcov-report/src/link/index.html +16 -16
  251. package/coverage/lcov-report/src/link/styles.ts.html +1 -1
  252. package/coverage/lcov-report/src/list/List.tsx.html +33 -33
  253. package/coverage/lcov-report/src/list/ListItem.tsx.html +534 -534
  254. package/coverage/lcov-report/src/list/ListItemAddon.tsx.html +33 -33
  255. package/coverage/lcov-report/src/list/ListItemChildren.tsx.html +77 -77
  256. package/coverage/lcov-report/src/list/ListItemLink.tsx.html +2 -2
  257. package/coverage/lcov-report/src/list/ListItemText.tsx.html +35 -35
  258. package/coverage/lcov-report/src/list/ListSubheader.tsx.html +1 -1
  259. package/coverage/lcov-report/src/list/getListItemHeight.ts.html +33 -33
  260. package/coverage/lcov-report/src/list/index.html +128 -8
  261. package/coverage/lcov-report/src/list/listItemStyles.ts.html +1 -1
  262. package/coverage/lcov-report/src/media-queries/AppSizeProvider.tsx.html +59 -59
  263. package/coverage/lcov-report/src/media-queries/appSize.ts.html +1 -1
  264. package/coverage/lcov-report/src/media-queries/index.html +20 -5
  265. package/coverage/lcov-report/src/media-queries/useMediaQuery.ts.html +24 -24
  266. package/coverage/lcov-report/src/menu/DropdownMenu.tsx.html +73 -16
  267. package/coverage/lcov-report/src/menu/Menu.tsx.html +66 -33
  268. package/coverage/lcov-report/src/menu/MenuBar.tsx.html +1 -1
  269. package/coverage/lcov-report/src/menu/MenuButton.tsx.html +3 -3
  270. package/coverage/lcov-report/src/menu/MenuConfigurationProvider.tsx.html +1 -1
  271. package/coverage/lcov-report/src/menu/MenuItem.tsx.html +1 -1
  272. package/coverage/lcov-report/src/menu/MenuItemButton.tsx.html +3 -3
  273. package/coverage/lcov-report/src/menu/MenuItemGroup.tsx.html +1 -1
  274. package/coverage/lcov-report/src/menu/MenuItemSeparator.tsx.html +6 -36
  275. package/coverage/lcov-report/src/menu/MenuSheet.tsx.html +34 -7
  276. package/coverage/lcov-report/src/menu/MenuVisibilityProvider.tsx.html +1 -1
  277. package/coverage/lcov-report/src/menu/MenuWidget.tsx.html +1 -1
  278. package/coverage/lcov-report/src/menu/MenuWidgetKeyboardProvider.tsx.html +1 -1
  279. package/coverage/lcov-report/src/menu/index.html +69 -24
  280. package/coverage/lcov-report/src/menu/useContextMenu.ts.html +1 -1
  281. package/coverage/lcov-report/src/menu/useMenuBarProvider.ts.html +1 -1
  282. package/coverage/lcov-report/src/menu/utils.ts.html +10 -10
  283. package/coverage/lcov-report/src/movement/constants.ts.html +1 -1
  284. package/coverage/lcov-report/src/movement/findMatchIndex.ts.html +1 -1
  285. package/coverage/lcov-report/src/movement/index.html +53 -8
  286. package/coverage/lcov-report/src/movement/useKeyboardMovementProvider.ts.html +92 -92
  287. package/coverage/lcov-report/src/movement/utils.ts.html +1 -1
  288. package/coverage/lcov-report/src/overlay/Overlay.tsx.html +64 -64
  289. package/coverage/lcov-report/src/overlay/index.html +1 -1
  290. package/coverage/lcov-report/src/overlay/overlayStyles.ts.html +28 -28
  291. package/coverage/lcov-report/src/portal/Portal.tsx.html +9 -9
  292. package/coverage/lcov-report/src/portal/PortalContainerProvider.tsx.html +29 -29
  293. package/coverage/lcov-report/src/portal/index.html +20 -5
  294. package/coverage/lcov-report/src/positioning/constants.ts.html +1 -1
  295. package/coverage/lcov-report/src/positioning/createHorizontalPosition.ts.html +63 -63
  296. package/coverage/lcov-report/src/positioning/createVerticalPosition.ts.html +65 -65
  297. package/coverage/lcov-report/src/positioning/getFixedPosition.ts.html +94 -94
  298. package/coverage/lcov-report/src/positioning/index.html +70 -10
  299. package/coverage/lcov-report/src/positioning/useFixedPositioning.ts.html +200 -200
  300. package/coverage/lcov-report/src/positioning/utils.ts.html +111 -111
  301. package/coverage/lcov-report/src/progress/CircularProgress.tsx.html +501 -456
  302. package/coverage/lcov-report/src/progress/LinearProgress.tsx.html +419 -338
  303. package/coverage/lcov-report/src/progress/getProgressA11y.ts.html +1 -1
  304. package/coverage/lcov-report/src/progress/index.html +32 -32
  305. package/coverage/lcov-report/src/responsive-item/ResponsiveItemContainer.tsx.html +1 -1
  306. package/coverage/lcov-report/src/responsive-item/ResponsiveItemOverlay.tsx.html +1 -1
  307. package/coverage/lcov-report/src/responsive-item/index.html +20 -5
  308. package/coverage/lcov-report/src/responsive-item/styles.ts.html +1 -1
  309. package/coverage/lcov-report/src/scroll/ScrollLock.tsx.html +1 -1
  310. package/coverage/lcov-report/src/scroll/getScrollbarWidth.ts.html +25 -25
  311. package/coverage/lcov-report/src/scroll/index.html +5 -5
  312. package/coverage/lcov-report/src/scroll/useScrollLock.ts.html +27 -27
  313. package/coverage/lcov-report/src/segmented-button/SegmentedButton.tsx.html +4 -4
  314. package/coverage/lcov-report/src/segmented-button/SegmentedButtonContainer.tsx.html +29 -8
  315. package/coverage/lcov-report/src/segmented-button/index.html +50 -5
  316. package/coverage/lcov-report/src/segmented-button/segmentedButtonContainerStyles.ts.html +15 -6
  317. package/coverage/lcov-report/src/segmented-button/segmentedButtonStyles.ts.html +1 -1
  318. package/coverage/lcov-report/src/sheet/Sheet.tsx.html +1 -1
  319. package/coverage/lcov-report/src/sheet/index.html +20 -5
  320. package/coverage/lcov-report/src/sheet/styles.ts.html +28 -28
  321. package/coverage/lcov-report/src/snackbar/DefaultToastRenderer.tsx.html +8 -5
  322. package/coverage/lcov-report/src/snackbar/Snackbar.tsx.html +7 -133
  323. package/coverage/lcov-report/src/snackbar/Toast.tsx.html +2 -2
  324. package/coverage/lcov-report/src/snackbar/ToastActionButton.tsx.html +1 -1
  325. package/coverage/lcov-report/src/snackbar/ToastCloseButton.tsx.html +3 -3
  326. package/coverage/lcov-report/src/snackbar/ToastContent.tsx.html +7 -115
  327. package/coverage/lcov-report/src/snackbar/ToastManager.tsx.html +1783 -0
  328. package/coverage/lcov-report/src/snackbar/ToastManagerProvider.tsx.html +16 -1696
  329. package/coverage/lcov-report/src/snackbar/index.html +159 -9
  330. package/coverage/lcov-report/src/snackbar/snackbarStyles.ts.html +214 -0
  331. package/coverage/lcov-report/src/snackbar/toastContentStyles.ts.html +196 -0
  332. package/coverage/lcov-report/src/snackbar/toastStyles.ts.html +1 -1
  333. package/coverage/lcov-report/src/snackbar/useCurrentToastActions.ts.html +1 -1
  334. package/coverage/lcov-report/src/suspense/CircularProgressSuspense.tsx.html +57 -6
  335. package/coverage/lcov-report/src/suspense/NullSuspense.tsx.html +1 -1
  336. package/coverage/lcov-report/src/suspense/index.html +7 -22
  337. package/coverage/lcov-report/src/table/Table.tsx.html +1 -1
  338. package/coverage/lcov-report/src/table/TableBody.tsx.html +1 -1
  339. package/coverage/lcov-report/src/table/TableCell.tsx.html +20 -35
  340. package/coverage/lcov-report/src/table/TableCellContent.tsx.html +2 -2
  341. package/coverage/lcov-report/src/table/TableCheckbox.tsx.html +1 -1
  342. package/coverage/lcov-report/src/table/TableConfigurationProvider.tsx.html +6 -12
  343. package/coverage/lcov-report/src/table/TableContainer.tsx.html +1 -1
  344. package/coverage/lcov-report/src/table/TableContainerProvider.tsx.html +1 -1
  345. package/coverage/lcov-report/src/table/TableFooter.tsx.html +1 -1
  346. package/coverage/lcov-report/src/table/TableHeader.tsx.html +1 -1
  347. package/coverage/lcov-report/src/table/TableRow.tsx.html +1 -1
  348. package/coverage/lcov-report/src/table/index.html +113 -8
  349. package/coverage/lcov-report/src/tabs/Tab.tsx.html +69 -69
  350. package/coverage/lcov-report/src/tabs/TabList.tsx.html +92 -92
  351. package/coverage/lcov-report/src/tabs/TabListScrollButton.tsx.html +61 -61
  352. package/coverage/lcov-report/src/tabs/index.html +143 -8
  353. package/coverage/lcov-report/src/tabs/tabIndicatorStyles.ts.html +157 -0
  354. package/coverage/lcov-report/src/tabs/tabListScrollButtonStyles.ts.html +226 -0
  355. package/coverage/lcov-report/src/tabs/tabListStyles.ts.html +241 -0
  356. package/coverage/lcov-report/src/tabs/tabStyles.ts.html +17 -17
  357. package/coverage/lcov-report/src/tabs/useTabList.ts.html +94 -94
  358. package/coverage/lcov-report/src/tabs/useTabs.ts.html +54 -54
  359. package/coverage/lcov-report/src/tabs/utils.ts.html +3 -3
  360. package/coverage/lcov-report/src/test-utils/IntersectionObserver.ts.html +1 -1
  361. package/coverage/lcov-report/src/test-utils/ResizeObserver.ts.html +1 -1
  362. package/coverage/lcov-report/src/test-utils/data-testid.ts.html +100 -0
  363. package/coverage/lcov-report/src/test-utils/drag.ts.html +1 -1
  364. package/coverage/lcov-report/src/test-utils/index.html +114 -9
  365. package/coverage/lcov-report/src/test-utils/jest-setup.ts.html +21 -9
  366. package/coverage/lcov-report/src/test-utils/matchMedia.ts.html +4 -4
  367. package/coverage/lcov-report/src/test-utils/polyfills/IntersectionObserver.ts.html +4 -4
  368. package/coverage/lcov-report/src/test-utils/polyfills/ResizeObserver.ts.html +3 -3
  369. package/coverage/lcov-report/src/test-utils/polyfills/index.html +1 -1
  370. package/coverage/lcov-report/src/test-utils/polyfills/matchMedia.ts.html +6 -6
  371. package/coverage/lcov-report/src/test-utils/polyfills/offsetParent.ts.html +14 -14
  372. package/coverage/lcov-report/src/test-utils/polyfills/scrollIntoView.ts.html +5 -5
  373. package/coverage/lcov-report/src/test-utils/render.tsx.html +21 -21
  374. package/coverage/lcov-report/src/test-utils/timers.ts.html +1 -1
  375. package/coverage/lcov-report/src/theme/LocalStorageColorSchemeProvider.tsx.html +1 -1
  376. package/coverage/lcov-report/src/theme/ThemeProvider.tsx.html +22 -4
  377. package/coverage/lcov-report/src/theme/colors.ts.html +1 -1
  378. package/coverage/lcov-report/src/theme/cssVars.ts.html +1 -1
  379. package/coverage/lcov-report/src/theme/index.html +71 -11
  380. package/coverage/lcov-report/src/theme/useCSSVariables.ts.html +1 -1
  381. package/coverage/lcov-report/src/theme/useColorScheme.ts.html +1 -1
  382. package/coverage/lcov-report/src/theme/useColorSchemeMetaTag.ts.html +1 -1
  383. package/coverage/lcov-report/src/theme/useColorSchemeProvider.ts.html +1 -1
  384. package/coverage/lcov-report/src/theme/usePrefersColorScheme.ts.html +1 -1
  385. package/coverage/lcov-report/src/theme/utils.ts.html +58 -58
  386. package/coverage/lcov-report/src/tooltip/Tooltip.tsx.html +98 -74
  387. package/coverage/lcov-report/src/tooltip/TooltipHoverModeProvider.tsx.html +60 -6
  388. package/coverage/lcov-report/src/tooltip/constants.ts.html +1 -1
  389. package/coverage/lcov-report/src/tooltip/index.html +72 -27
  390. package/coverage/lcov-report/src/tooltip/tooltipStyles.ts.html +18 -18
  391. package/coverage/lcov-report/src/tooltip/useOverflowTooltip.ts.html +196 -196
  392. package/coverage/lcov-report/src/tooltip/useTooltip.ts.html +511 -211
  393. package/coverage/lcov-report/src/tooltip/useTooltipPosition.ts.html +29 -29
  394. package/coverage/lcov-report/src/tooltip/utils.ts.html +23 -23
  395. package/coverage/lcov-report/src/transition/CSSTransition.tsx.html +1 -1
  396. package/coverage/lcov-report/src/transition/Collapse.tsx.html +1 -1
  397. package/coverage/lcov-report/src/transition/CrossFade.tsx.html +1 -1
  398. package/coverage/lcov-report/src/transition/ScaleTransition.tsx.html +1 -1
  399. package/coverage/lcov-report/src/transition/SkeletonPlaceholder.tsx.html +1 -1
  400. package/coverage/lcov-report/src/transition/Slide.tsx.html +46 -46
  401. package/coverage/lcov-report/src/transition/SlideContainer.tsx.html +1 -1
  402. package/coverage/lcov-report/src/transition/collapseStyles.ts.html +13 -13
  403. package/coverage/lcov-report/src/transition/config.ts.html +187 -0
  404. package/coverage/lcov-report/src/transition/index.html +295 -10
  405. package/coverage/lcov-report/src/transition/maxWidthTransition.ts.html +1 -1
  406. package/coverage/lcov-report/src/transition/useCSSTransition.ts.html +69 -69
  407. package/coverage/lcov-report/src/transition/useCarousel.ts.html +1 -1
  408. package/coverage/lcov-report/src/transition/useCollapseTransition.ts.html +99 -99
  409. package/coverage/lcov-report/src/transition/useCrossFadeTransition.ts.html +1 -1
  410. package/coverage/lcov-report/src/transition/useMaxWidthTransition.ts.html +1 -1
  411. package/coverage/lcov-report/src/transition/useScaleTransition.ts.html +18 -18
  412. package/coverage/lcov-report/src/transition/useSkeletonPlaceholder.ts.html +1 -1
  413. package/coverage/lcov-report/src/transition/useSlideTransition.ts.html +20 -20
  414. package/coverage/lcov-report/src/transition/useTransition.ts.html +277 -250
  415. package/coverage/lcov-report/src/transition/utils.ts.html +68 -68
  416. package/coverage/lcov-report/src/tree/DefaultTreeItemRenderer.tsx.html +2 -2
  417. package/coverage/lcov-report/src/tree/Tree.tsx.html +24 -36
  418. package/coverage/lcov-report/src/tree/TreeGroup.tsx.html +45 -45
  419. package/coverage/lcov-report/src/tree/TreeItem.tsx.html +213 -216
  420. package/coverage/lcov-report/src/tree/TreeItemExpander.tsx.html +3 -3
  421. package/coverage/lcov-report/src/tree/TreeProvider.tsx.html +29 -11
  422. package/coverage/lcov-report/src/tree/index.html +114 -9
  423. package/coverage/lcov-report/src/tree/styles.ts.html +1 -1
  424. package/coverage/lcov-report/src/tree/useTree.ts.html +1 -1
  425. package/coverage/lcov-report/src/tree/useTreeExpansion.ts.html +1 -1
  426. package/coverage/lcov-report/src/tree/useTreeItems.ts.html +10 -13
  427. package/coverage/lcov-report/src/tree/useTreeMovement.ts.html +1 -1
  428. package/coverage/lcov-report/src/tree/useTreeSelection.ts.html +1 -1
  429. package/coverage/lcov-report/src/tree/utils.ts.html +1 -1
  430. package/coverage/lcov-report/src/typography/SrOnly.tsx.html +26 -26
  431. package/coverage/lcov-report/src/typography/TextContainer.tsx.html +1 -1
  432. package/coverage/lcov-report/src/typography/Typography.tsx.html +71 -71
  433. package/coverage/lcov-report/src/typography/WritingDirectionProvider.tsx.html +75 -75
  434. package/coverage/lcov-report/src/typography/index.html +64 -19
  435. package/coverage/lcov-report/src/useAsyncAction.ts.html +25 -25
  436. package/coverage/lcov-report/src/useDebouncedFunction.ts.html +1 -1
  437. package/coverage/lcov-report/src/useDropzone.ts.html +1 -1
  438. package/coverage/lcov-report/src/useEnsuredId.ts.html +8 -8
  439. package/coverage/lcov-report/src/useEnsuredRef.ts.html +22 -19
  440. package/coverage/lcov-report/src/useEnsuredState.ts.html +18 -18
  441. package/coverage/lcov-report/src/useHtmlClassName.ts.html +1 -1
  442. package/coverage/lcov-report/src/useIntersectionObserver.ts.html +32 -32
  443. package/coverage/lcov-report/src/useIsomorphicLayoutEffect.ts.html +1 -1
  444. package/coverage/lcov-report/src/useLocalStorage.ts.html +225 -225
  445. package/coverage/lcov-report/src/useOrientation.ts.html +32 -32
  446. package/coverage/lcov-report/src/usePageInactive.ts.html +25 -25
  447. package/coverage/lcov-report/src/useResizeListener.ts.html +1 -1
  448. package/coverage/lcov-report/src/useResizeObserver.ts.html +28 -28
  449. package/coverage/lcov-report/src/useThrottledFunction.ts.html +1 -1
  450. package/coverage/lcov-report/src/useToggle.ts.html +18 -18
  451. package/coverage/lcov-report/src/useUnmounted.ts.html +11 -11
  452. package/coverage/lcov-report/src/useWindowSize.ts.html +1 -1
  453. package/coverage/lcov-report/src/utils/RenderRecursively.tsx.html +1 -1
  454. package/coverage/lcov-report/src/utils/alphaNumericSort.ts.html +1 -1
  455. package/coverage/lcov-report/src/utils/applyRef.ts.html +11 -11
  456. package/coverage/lcov-report/src/utils/bem.ts.html +50 -50
  457. package/coverage/lcov-report/src/utils/filters.ts.html +1 -1
  458. package/coverage/lcov-report/src/utils/getClientPosition.ts.html +1 -1
  459. package/coverage/lcov-report/src/utils/getPercentage.ts.html +36 -36
  460. package/coverage/lcov-report/src/utils/getRangeDefaultValue.ts.html +1 -1
  461. package/coverage/lcov-report/src/utils/getRangeSteps.ts.html +1 -1
  462. package/coverage/lcov-report/src/utils/identity.ts.html +1 -1
  463. package/coverage/lcov-report/src/utils/index.html +212 -17
  464. package/coverage/lcov-report/src/utils/isElementVisible.ts.html +14 -14
  465. package/coverage/lcov-report/src/utils/loop.ts.html +1 -1
  466. package/coverage/lcov-report/src/utils/nearest.ts.html +1 -1
  467. package/coverage/lcov-report/src/utils/parseCssLengthUnit.ts.html +41 -41
  468. package/coverage/lcov-report/src/utils/randomInt.ts.html +1 -1
  469. package/coverage/lcov-report/src/utils/wait.ts.html +1 -1
  470. package/coverage/lcov-report/src/utils/withinRange.ts.html +1 -1
  471. package/coverage/lcov-report/src/window-splitter/WindowSplitter.tsx.html +1 -1
  472. package/coverage/lcov-report/src/window-splitter/index.html +1 -1
  473. package/coverage/lcov-report/src/window-splitter/useWindowSplitter.ts.html +1 -1
  474. package/coverage/lcov-report/styles.ts.html +134 -320
  475. package/coverage/lcov-report/switchStyles.ts.html +172 -0
  476. package/coverage/lcov-report/table/Table.tsx.html +526 -0
  477. package/coverage/lcov-report/table/TableBody.tsx.html +280 -0
  478. package/coverage/lcov-report/table/TableCell.tsx.html +159 -168
  479. package/coverage/lcov-report/table/TableCheckbox.tsx.html +10 -13
  480. package/coverage/lcov-report/table/TableRadio.tsx.html +670 -0
  481. package/coverage/lcov-report/table/TableRow.tsx.html +370 -0
  482. package/coverage/lcov-report/table/index.html +62 -32
  483. package/coverage/lcov-report/tableCellStyles.ts.html +334 -0
  484. package/coverage/lcov-report/tableContainerStyles.ts.html +142 -0
  485. package/coverage/lcov-report/tableFooterStyles.ts.html +157 -0
  486. package/coverage/lcov-report/tableHeaderStyles.ts.html +163 -0
  487. package/coverage/lcov-report/tableRowStyles.ts.html +169 -0
  488. package/coverage/lcov-report/tableStyles.ts.html +157 -0
  489. package/coverage/lcov-report/tabs/Tab.tsx.html +502 -0
  490. package/coverage/lcov-report/tabs/TabList.tsx.html +796 -0
  491. package/coverage/lcov-report/tabs/index.html +62 -17
  492. package/coverage/lcov-report/tabs/useTabs.ts.html +1567 -0
  493. package/coverage/lcov-report/tabs/utils.ts.html +337 -0
  494. package/coverage/lcov-report/test-utils/index.html +20 -20
  495. package/coverage/lcov-report/test-utils/jest-setup.ts.html +124 -0
  496. package/coverage/lcov-report/tooltip/Tooltip.tsx.html +98 -74
  497. package/coverage/lcov-report/tooltip/TooltipHoverModeProvider.tsx.html +167 -11
  498. package/coverage/lcov-report/tooltip/constants.ts.html +1 -1
  499. package/coverage/lcov-report/tooltip/index.html +32 -17
  500. package/coverage/lcov-report/tooltip/tooltipStyles.ts.html +181 -0
  501. package/coverage/lcov-report/tooltip/useTooltip.ts.html +490 -190
  502. package/coverage/lcov-report/tooltipStyles.ts.html +181 -0
  503. package/coverage/lcov-report/transition/config.ts.html +187 -0
  504. package/coverage/lcov-report/transition/index.html +9 -24
  505. package/coverage/lcov-report/transition/useTransition.ts.html +943 -0
  506. package/coverage/lcov-report/tree/Tree.tsx.html +24 -36
  507. package/coverage/lcov-report/tree/TreeItem.tsx.html +213 -216
  508. package/coverage/lcov-report/tree/TreeProvider.tsx.html +55 -10
  509. package/coverage/lcov-report/tree/index.html +14 -59
  510. package/coverage/lcov-report/typography/Typography.tsx.html +108 -402
  511. package/coverage/lcov-report/typography/WritingDirectionProvider.tsx.html +781 -0
  512. package/coverage/lcov-report/typography/index.html +8 -8
  513. package/coverage/lcov-report/useTooltip.ts.html +651 -375
  514. package/coverage/lcov-report/useTransition.ts.html +934 -0
  515. package/coverage/lcov-report/utils/index.html +24 -39
  516. package/coverage/lcov-report/utils/isElementVisible.ts.html +14 -14
  517. package/coverage/lcov-report/utils/parseCssLengthUnit.ts.html +19 -19
  518. package/coverage/lcov.info +0 -1176
  519. package/dist/_core.scss +39 -2
  520. package/dist/_utils.scss +57 -0
  521. package/dist/app-bar/_app-bar.scss +15 -23
  522. package/dist/avatar/Avatar.d.ts +2 -15
  523. package/dist/avatar/Avatar.js +3 -2
  524. package/dist/avatar/Avatar.js.map +1 -1
  525. package/dist/avatar/_avatar.scss +30 -37
  526. package/dist/avatar/styles.d.ts +20 -2
  527. package/dist/avatar/styles.js +4 -1
  528. package/dist/avatar/styles.js.map +1 -1
  529. package/dist/badge/_badge.scss +71 -44
  530. package/dist/box/_box.scss +18 -29
  531. package/dist/button/AsyncButton.d.ts +29 -0
  532. package/dist/button/AsyncButton.js +14 -1
  533. package/dist/button/AsyncButton.js.map +1 -1
  534. package/dist/button/_button.scss +50 -62
  535. package/dist/card/_card.scss +14 -23
  536. package/dist/chip/_chip.scss +33 -62
  537. package/dist/chip/styles.d.ts +1 -1
  538. package/dist/chip/styles.js +3 -4
  539. package/dist/chip/styles.js.map +1 -1
  540. package/dist/cssUtils.d.ts +1 -0
  541. package/dist/cssUtils.js +1 -1
  542. package/dist/cssUtils.js.map +1 -1
  543. package/dist/dialog/Dialog.d.ts +1 -1
  544. package/dist/dialog/Dialog.js +2 -1
  545. package/dist/dialog/Dialog.js.map +1 -1
  546. package/dist/dialog/_dialog.scss +95 -93
  547. package/dist/divider/Divider.d.ts +0 -1
  548. package/dist/divider/Divider.js.map +1 -1
  549. package/dist/divider/_divider.scss +33 -43
  550. package/dist/focus/useFocusContainer.d.ts +8 -8
  551. package/dist/focus/useFocusContainer.js +11 -10
  552. package/dist/focus/useFocusContainer.js.map +1 -1
  553. package/dist/form/Label.d.ts +5 -5
  554. package/dist/form/Label.js.map +1 -1
  555. package/dist/form/MenuItemInputToggle.js +2 -2
  556. package/dist/form/MenuItemInputToggle.js.map +1 -1
  557. package/dist/form/MenuItemTextField.d.ts +2 -0
  558. package/dist/form/MenuItemTextField.js.map +1 -1
  559. package/dist/form/Slider.d.ts +41 -5
  560. package/dist/form/Slider.js +2 -1
  561. package/dist/form/Slider.js.map +1 -1
  562. package/dist/form/SliderThumb.d.ts +7 -2
  563. package/dist/form/SliderThumb.js +4 -2
  564. package/dist/form/SliderThumb.js.map +1 -1
  565. package/dist/form/SliderValueMarks.js +1 -1
  566. package/dist/form/SliderValueMarks.js.map +1 -1
  567. package/dist/form/SliderValueTooltip.js +1 -1
  568. package/dist/form/SliderValueTooltip.js.map +1 -1
  569. package/dist/form/Switch.d.ts +3 -2
  570. package/dist/form/Switch.js +7 -26
  571. package/dist/form/Switch.js.map +1 -1
  572. package/dist/form/SwitchTrack.d.ts +2 -1
  573. package/dist/form/SwitchTrack.js +8 -4
  574. package/dist/form/SwitchTrack.js.map +1 -1
  575. package/dist/form/TextArea.js +1 -1
  576. package/dist/form/TextArea.js.map +1 -1
  577. package/dist/form/TextFieldContainerStyles.d.ts +7 -7
  578. package/dist/form/TextFieldContainerStyles.js.map +1 -1
  579. package/dist/form/_form.scss +241 -237
  580. package/dist/form/switchStyles.d.ts +1 -0
  581. package/dist/form/switchStyles.js +2 -1
  582. package/dist/form/switchStyles.js.map +1 -1
  583. package/dist/form/textAreaStyles.d.ts +2 -2
  584. package/dist/form/textAreaStyles.js.map +1 -1
  585. package/dist/form/types.d.ts +0 -2
  586. package/dist/form/types.js.map +1 -1
  587. package/dist/hoverMode/useHoverMode.d.ts +2 -2
  588. package/dist/hoverMode/useHoverMode.js +1 -1
  589. package/dist/hoverMode/useHoverMode.js.map +1 -1
  590. package/dist/icon/FontIcon.d.ts +2 -1
  591. package/dist/icon/FontIcon.js +4 -5
  592. package/dist/icon/FontIcon.js.map +1 -1
  593. package/dist/icon/MaterialIcon.d.ts +2 -2
  594. package/dist/icon/MaterialIcon.js +3 -6
  595. package/dist/icon/MaterialIcon.js.map +1 -1
  596. package/dist/icon/MaterialSymbol.d.ts +15 -8
  597. package/dist/icon/MaterialSymbol.js +15 -11
  598. package/dist/icon/MaterialSymbol.js.map +1 -1
  599. package/dist/icon/_icon.scss +31 -47
  600. package/dist/icon/iconConfig.js.map +1 -1
  601. package/dist/icon/material.d.ts +1 -1
  602. package/dist/icon/material.js.map +1 -1
  603. package/dist/icon/{MaterialSymbolsProvider.d.ts → materialConfig.d.ts} +25 -14
  604. package/dist/icon/materialConfig.js +29 -0
  605. package/dist/icon/materialConfig.js.map +1 -0
  606. package/dist/icon/styles.d.ts +0 -15
  607. package/dist/icon/styles.js +2 -4
  608. package/dist/icon/styles.js.map +1 -1
  609. package/dist/index.d.ts +8 -6
  610. package/dist/index.js +8 -6
  611. package/dist/index.js.map +1 -1
  612. package/dist/interaction/_interaction.scss +47 -57
  613. package/dist/layout/_layout.scss +14 -19
  614. package/dist/link/Link.d.ts +12 -6
  615. package/dist/link/Link.js +1 -2
  616. package/dist/link/Link.js.map +1 -1
  617. package/dist/link/_link.scss +15 -23
  618. package/dist/list/ListItemLink.d.ts +1 -1
  619. package/dist/list/ListItemLink.js.map +1 -1
  620. package/dist/list/_list.scss +53 -63
  621. package/dist/menu/DropdownMenu.d.ts +12 -1
  622. package/dist/menu/DropdownMenu.js +13 -4
  623. package/dist/menu/DropdownMenu.js.map +1 -1
  624. package/dist/menu/Menu.d.ts +8 -0
  625. package/dist/menu/Menu.js +2 -1
  626. package/dist/menu/Menu.js.map +1 -1
  627. package/dist/menu/MenuItemSeparator.d.ts +1 -2
  628. package/dist/menu/MenuItemSeparator.js +2 -8
  629. package/dist/menu/MenuItemSeparator.js.map +1 -1
  630. package/dist/menu/MenuSheet.d.ts +6 -1
  631. package/dist/menu/MenuSheet.js.map +1 -1
  632. package/dist/menu/_menu.scss +16 -27
  633. package/dist/overlay/_overlay.scss +14 -19
  634. package/dist/progress/CircularProgress.d.ts +5 -4
  635. package/dist/progress/CircularProgress.js +3 -3
  636. package/dist/progress/CircularProgress.js.map +1 -1
  637. package/dist/progress/LinearProgress.d.ts +7 -5
  638. package/dist/progress/LinearProgress.js +4 -3
  639. package/dist/progress/LinearProgress.js.map +1 -1
  640. package/dist/progress/_progress.scss +25 -30
  641. package/dist/segmented-button/_segmented-button.scss +37 -43
  642. package/dist/sheet/_sheet.scss +24 -42
  643. package/dist/snackbar/DefaultToastRenderer.js +1 -1
  644. package/dist/snackbar/DefaultToastRenderer.js.map +1 -1
  645. package/dist/snackbar/Snackbar.d.ts +1 -3
  646. package/dist/snackbar/Snackbar.js +2 -3
  647. package/dist/snackbar/Snackbar.js.map +1 -1
  648. package/dist/snackbar/Toast.d.ts +1 -1
  649. package/dist/snackbar/Toast.js +5 -1
  650. package/dist/snackbar/Toast.js.map +1 -1
  651. package/dist/snackbar/ToastManager.d.ts +2 -1
  652. package/dist/snackbar/ToastManager.js +1 -1
  653. package/dist/snackbar/ToastManager.js.map +1 -1
  654. package/dist/snackbar/_snackbar.scss +15 -23
  655. package/dist/suspense/CircularProgressSuspense.d.ts +4 -0
  656. package/dist/suspense/CircularProgressSuspense.js +3 -1
  657. package/dist/suspense/CircularProgressSuspense.js.map +1 -1
  658. package/dist/table/Table.d.ts +0 -12
  659. package/dist/table/Table.js +1 -12
  660. package/dist/table/Table.js.map +1 -1
  661. package/dist/table/TableCell.d.ts +13 -38
  662. package/dist/table/TableCell.js +7 -15
  663. package/dist/table/TableCell.js.map +1 -1
  664. package/dist/table/TableCellContent.d.ts +9 -0
  665. package/dist/table/TableCellContent.js +2 -1
  666. package/dist/table/TableCellContent.js.map +1 -1
  667. package/dist/table/TableCheckbox.d.ts +2 -2
  668. package/dist/table/TableCheckbox.js +3 -3
  669. package/dist/table/TableCheckbox.js.map +1 -1
  670. package/dist/table/TableContainer.d.ts +0 -6
  671. package/dist/table/TableContainer.js +1 -6
  672. package/dist/table/TableContainer.js.map +1 -1
  673. package/dist/table/TableFooter.d.ts +7 -1
  674. package/dist/table/TableFooter.js +17 -16
  675. package/dist/table/TableFooter.js.map +1 -1
  676. package/dist/table/TableHeader.d.ts +7 -14
  677. package/dist/table/TableHeader.js +6 -14
  678. package/dist/table/TableHeader.js.map +1 -1
  679. package/dist/table/TableRadio.d.ts +106 -0
  680. package/dist/table/TableRadio.js +106 -0
  681. package/dist/table/TableRadio.js.map +1 -0
  682. package/dist/table/TableRow.d.ts +0 -10
  683. package/dist/table/TableRow.js +1 -12
  684. package/dist/table/TableRow.js.map +1 -1
  685. package/dist/table/_table.scss +71 -88
  686. package/dist/table/tableCellStyles.d.ts +33 -0
  687. package/dist/table/tableCellStyles.js +15 -0
  688. package/dist/table/tableCellStyles.js.map +1 -0
  689. package/dist/table/tableContainerStyles.d.ts +10 -0
  690. package/dist/table/tableContainerStyles.js +9 -0
  691. package/dist/table/tableContainerStyles.js.map +1 -0
  692. package/dist/table/tableFooterStyles.d.ts +10 -0
  693. package/dist/table/tableFooterStyles.js +12 -0
  694. package/dist/table/tableFooterStyles.js.map +1 -0
  695. package/dist/table/tableHeaderStyles.d.ts +10 -0
  696. package/dist/table/tableHeaderStyles.js +13 -0
  697. package/dist/table/tableHeaderStyles.js.map +1 -0
  698. package/dist/table/tableRowStyles.d.ts +10 -0
  699. package/dist/table/tableRowStyles.js +14 -0
  700. package/dist/table/tableRowStyles.js.map +1 -0
  701. package/dist/table/tableStyles.d.ts +12 -0
  702. package/dist/table/tableStyles.js +14 -0
  703. package/dist/table/tableStyles.js.map +1 -0
  704. package/dist/table/types.d.ts +28 -15
  705. package/dist/table/types.js.map +1 -1
  706. package/dist/tabs/_tabs.scss +27 -30
  707. package/dist/test-utils/data-testid.js +2 -0
  708. package/dist/test-utils/data-testid.js.map +1 -0
  709. package/dist/test-utils/jest-setup.js +3 -0
  710. package/dist/test-utils/jest-setup.js.map +1 -1
  711. package/dist/theme/ThemeProvider.d.ts +5 -0
  712. package/dist/theme/ThemeProvider.js.map +1 -1
  713. package/dist/theme/_theme.scss +31 -89
  714. package/dist/tooltip/Tooltip.d.ts +13 -6
  715. package/dist/tooltip/Tooltip.js +2 -2
  716. package/dist/tooltip/Tooltip.js.map +1 -1
  717. package/dist/tooltip/TooltipHoverModeProvider.d.ts +15 -0
  718. package/dist/tooltip/TooltipHoverModeProvider.js.map +1 -1
  719. package/dist/tooltip/_tooltip.scss +17 -25
  720. package/dist/tooltip/tooltipStyles.d.ts +2 -1
  721. package/dist/tooltip/tooltipStyles.js +2 -2
  722. package/dist/tooltip/tooltipStyles.js.map +1 -1
  723. package/dist/tooltip/useTooltip.d.ts +71 -8
  724. package/dist/tooltip/useTooltip.js +68 -7
  725. package/dist/tooltip/useTooltip.js.map +1 -1
  726. package/dist/transition/_transition.scss +38 -37
  727. package/dist/transition/config.d.ts +22 -0
  728. package/dist/transition/config.js +16 -0
  729. package/dist/transition/config.js.map +1 -0
  730. package/dist/transition/useTransition.js +15 -6
  731. package/dist/transition/useTransition.js.map +1 -1
  732. package/dist/tree/DefaultTreeItemRenderer.d.ts +1 -1
  733. package/dist/tree/DefaultTreeItemRenderer.js.map +1 -1
  734. package/dist/tree/Tree.d.ts +1 -1
  735. package/dist/tree/Tree.js +18 -21
  736. package/dist/tree/Tree.js.map +1 -1
  737. package/dist/tree/TreeItem.js +1 -3
  738. package/dist/tree/TreeItem.js.map +1 -1
  739. package/dist/tree/TreeProvider.d.ts +2 -0
  740. package/dist/tree/TreeProvider.js +3 -1
  741. package/dist/tree/TreeProvider.js.map +1 -1
  742. package/dist/tree/_tree.scss +102 -109
  743. package/dist/typography/_typography.scss +17 -22
  744. package/dist/window-splitter/_window-splitter.scss +19 -45
  745. package/package.json +20 -17
  746. package/src/__tests__/NoSsr.tsx +5 -5
  747. package/src/__tests__/useAsyncAction.tsx +14 -6
  748. package/src/__tests__/useDebouncedFunction.tsx +6 -3
  749. package/src/__tests__/useDropzone.tsx +10 -10
  750. package/src/__tests__/useEnsuredId.tsx +5 -5
  751. package/src/__tests__/useEnsuredState.tsx +1 -2
  752. package/src/__tests__/useLocalStorage.tsx +21 -21
  753. package/src/__tests__/useResizeObserver.tsx +2 -0
  754. package/src/__tests__/useThrottledFunction.tsx +9 -8
  755. package/src/__tests__/useToggle.tsx +10 -10
  756. package/src/_core.scss +39 -2
  757. package/src/_utils.scss +57 -0
  758. package/src/app-bar/__tests__/AppBar.tsx +15 -15
  759. package/src/app-bar/__tests__/AppBarTitle.tsx +3 -5
  760. package/src/app-bar/_app-bar.scss +15 -23
  761. package/src/avatar/Avatar.tsx +12 -20
  762. package/src/avatar/__tests__/Avatar.tsx +6 -6
  763. package/src/avatar/_avatar.scss +30 -37
  764. package/src/avatar/styles.ts +27 -4
  765. package/src/badge/__tests__/Badge.tsx +3 -3
  766. package/src/badge/_badge.scss +71 -44
  767. package/src/box/_box.scss +18 -29
  768. package/src/button/AsyncButton.tsx +71 -4
  769. package/src/button/__tests__/AsyncButton.tsx +2 -0
  770. package/src/button/__tests__/Button.tsx +12 -12
  771. package/src/button/__tests__/ButtonUnstyled.tsx +3 -3
  772. package/src/button/__tests__/__snapshots__/AsyncButton.tsx.snap +31 -8
  773. package/src/button/_button.scss +50 -62
  774. package/src/card/__tests__/Card.tsx +3 -3
  775. package/src/card/__tests__/CardContent.tsx +3 -3
  776. package/src/card/__tests__/CardFooter.tsx +3 -3
  777. package/src/card/__tests__/CardHeader.tsx +5 -5
  778. package/src/card/__tests__/CardSubtitle.tsx +3 -3
  779. package/src/card/__tests__/CardTitle.tsx +3 -3
  780. package/src/card/_card.scss +14 -23
  781. package/src/chip/__tests__/Chip.tsx +20 -22
  782. package/src/chip/__tests__/__snapshots__/Chip.tsx.snap +3 -3
  783. package/src/chip/__tests__/__snapshots__/styles.ts.snap +1 -1
  784. package/src/chip/_chip.scss +33 -62
  785. package/src/chip/styles.ts +4 -5
  786. package/src/cssUtils.ts +4 -1
  787. package/src/dialog/Dialog.tsx +5 -4
  788. package/src/dialog/__tests__/Dialog.tsx +316 -0
  789. package/src/dialog/__tests__/DialogContent.tsx +53 -0
  790. package/src/dialog/__tests__/DialogFooter.tsx +70 -0
  791. package/src/dialog/__tests__/DialogHeader.tsx +37 -0
  792. package/src/dialog/__tests__/DialogTitle.tsx +41 -0
  793. package/src/dialog/__tests__/__snapshots__/Dialog.tsx.snap +84 -0
  794. package/src/dialog/__tests__/__snapshots__/DialogContent.tsx.snap +36 -0
  795. package/src/dialog/__tests__/__snapshots__/DialogFooter.tsx.snap +186 -0
  796. package/src/dialog/__tests__/__snapshots__/DialogHeader.tsx.snap +18 -0
  797. package/src/dialog/__tests__/__snapshots__/DialogTitle.tsx.snap +26 -0
  798. package/src/dialog/_dialog.scss +95 -93
  799. package/src/divider/Divider.tsx +0 -1
  800. package/src/divider/__tests__/Divider.tsx +3 -3
  801. package/src/divider/_divider.scss +33 -43
  802. package/src/draggable/__tests__/useDraggable.tsx +35 -39
  803. package/src/expansion-panel/__tests__/ExpansionPanel.tsx +28 -23
  804. package/src/focus/__tests__/useFocusContainer.tsx +280 -0
  805. package/src/focus/useFocusContainer.ts +17 -10
  806. package/src/form/Label.tsx +5 -5
  807. package/src/form/MenuItemInputToggle.tsx +6 -2
  808. package/src/form/MenuItemTextField.tsx +3 -0
  809. package/src/form/Slider.tsx +45 -5
  810. package/src/form/SliderThumb.tsx +15 -3
  811. package/src/form/SliderValueMarks.tsx +3 -1
  812. package/src/form/SliderValueTooltip.tsx +1 -1
  813. package/src/form/Switch.tsx +6 -27
  814. package/src/form/SwitchTrack.tsx +12 -2
  815. package/src/form/TextArea.tsx +1 -1
  816. package/src/form/TextFieldContainerStyles.ts +7 -7
  817. package/src/form/__tests__/Checkbox.tsx +5 -5
  818. package/src/form/__tests__/Fieldset.tsx +3 -3
  819. package/src/form/__tests__/FileInput.tsx +2 -2
  820. package/src/form/__tests__/Label.tsx +3 -3
  821. package/src/form/__tests__/Legend.tsx +3 -3
  822. package/src/form/__tests__/Radio.tsx +3 -3
  823. package/src/form/__tests__/Switch.tsx +152 -0
  824. package/src/form/__tests__/__snapshots__/Switch.tsx.snap +428 -0
  825. package/src/form/__tests__/__snapshots__/useCheckboxGroup.tsx.snap +1 -1
  826. package/src/form/__tests__/__snapshots__/useRadioGroup.tsx.snap +1 -1
  827. package/src/form/__tests__/useCheckboxGroup.tsx +33 -33
  828. package/src/form/__tests__/useFileUpload.tsx +41 -33
  829. package/src/form/__tests__/useRadioGroup.tsx +25 -25
  830. package/src/form/_form.scss +241 -237
  831. package/src/form/switchStyles.ts +3 -3
  832. package/src/form/textAreaStyles.ts +2 -2
  833. package/src/form/types.ts +0 -2
  834. package/src/hoverMode/useHoverMode.ts +4 -4
  835. package/src/icon/FontIcon.tsx +2 -5
  836. package/src/icon/MaterialIcon.tsx +4 -6
  837. package/src/icon/MaterialSymbol.tsx +18 -12
  838. package/src/icon/__tests__/FontIcon.tsx +7 -11
  839. package/src/icon/__tests__/IconRotator.tsx +4 -4
  840. package/src/icon/__tests__/MaterialIcon.tsx +79 -0
  841. package/src/icon/__tests__/MaterialSymbol.tsx +100 -0
  842. package/src/icon/__tests__/SVGIcon.tsx +6 -5
  843. package/src/icon/__tests__/TextIconSpacing.tsx +15 -17
  844. package/src/icon/__tests__/__snapshots__/IconRotator.tsx.snap +6 -6
  845. package/src/icon/__tests__/__snapshots__/MaterialIcon.tsx.snap +82 -0
  846. package/src/icon/__tests__/__snapshots__/MaterialSymbol.tsx.snap +42 -0
  847. package/src/icon/_icon.scss +31 -47
  848. package/src/icon/iconConfig.tsx +1 -0
  849. package/src/icon/material.ts +284 -54
  850. package/src/icon/{MaterialSymbolsProvider.tsx → materialConfig.ts} +49 -67
  851. package/src/icon/styles.ts +0 -21
  852. package/src/index.ts +8 -6
  853. package/src/interaction/__tests__/UserInteractionModeProvider.tsx +3 -3
  854. package/src/interaction/_interaction.scss +47 -57
  855. package/src/layout/__tests__/useExpandableLayout.tsx +12 -1
  856. package/src/layout/__tests__/useLayoutTree.tsx +6 -1
  857. package/src/layout/__tests__/useResizableLayout.tsx +13 -1
  858. package/src/layout/__tests__/useTemporaryLayout.tsx +6 -1
  859. package/src/layout/_layout.scss +14 -19
  860. package/src/link/Link.tsx +15 -5
  861. package/src/link/__tests__/Link.tsx +3 -3
  862. package/src/link/__tests__/SkipToMainContent.tsx +11 -14
  863. package/src/link/_link.scss +15 -23
  864. package/src/list/ListItemLink.tsx +1 -1
  865. package/src/list/__tests__/List.tsx +7 -7
  866. package/src/list/__tests__/ListItem.tsx +17 -16
  867. package/src/list/__tests__/ListItemLink.tsx +7 -7
  868. package/src/list/__tests__/ListSubheader.tsx +5 -5
  869. package/src/list/_list.scss +53 -63
  870. package/src/menu/DropdownMenu.tsx +23 -4
  871. package/src/menu/Menu.tsx +11 -0
  872. package/src/menu/MenuItemSeparator.tsx +2 -12
  873. package/src/menu/MenuSheet.tsx +10 -1
  874. package/src/menu/__tests__/DropdownMenu.tsx +74 -65
  875. package/src/menu/__tests__/MenuBar.tsx +57 -48
  876. package/src/menu/__tests__/MenuVisibilityProvider.tsx +3 -3
  877. package/src/menu/_menu.scss +16 -27
  878. package/src/overlay/__tests__/Overlay.tsx +37 -35
  879. package/src/overlay/_overlay.scss +14 -19
  880. package/src/portal/__tests__/PortalContainerProvider.node.tsx +1 -0
  881. package/src/portal/__tests__/PortalContainerProvider.tsx +9 -9
  882. package/src/positioning/__tests__/useFixedPositioning.tsx +20 -14
  883. package/src/progress/CircularProgress.tsx +5 -4
  884. package/src/progress/LinearProgress.tsx +88 -86
  885. package/src/progress/__tests__/CircularProgress.tsx +49 -27
  886. package/src/progress/__tests__/LinearProgress.tsx +40 -25
  887. package/src/progress/__tests__/__snapshots__/CircularProgress.tsx.snap +21 -0
  888. package/src/progress/__tests__/__snapshots__/LinearProgress.tsx.snap +20 -0
  889. package/src/progress/_progress.scss +25 -30
  890. package/src/segmented-button/_segmented-button.scss +37 -43
  891. package/src/sheet/_sheet.scss +24 -42
  892. package/src/snackbar/DefaultToastRenderer.tsx +1 -1
  893. package/src/snackbar/Snackbar.tsx +17 -25
  894. package/src/snackbar/Toast.tsx +7 -2
  895. package/src/snackbar/ToastManager.tsx +3 -2
  896. package/src/snackbar/__tests__/Snackbar.tsx +13 -12
  897. package/src/snackbar/__tests__/Toast.tsx +8 -3
  898. package/src/snackbar/__tests__/ToastActionButton.tsx +2 -2
  899. package/src/snackbar/__tests__/ToastCloseButton.tsx +2 -2
  900. package/src/snackbar/__tests__/ToastManagerProvider.tsx +28 -42
  901. package/src/snackbar/__tests__/__snapshots__/Snackbar.tsx.snap +127 -27
  902. package/src/snackbar/__tests__/__snapshots__/ToastManagerProvider.tsx.snap +23 -8
  903. package/src/snackbar/_snackbar.scss +15 -23
  904. package/src/suspense/CircularProgressSuspense.tsx +19 -2
  905. package/src/table/Table.tsx +1 -24
  906. package/src/table/TableCell.tsx +22 -85
  907. package/src/table/TableCellContent.tsx +20 -2
  908. package/src/table/TableCheckbox.tsx +3 -3
  909. package/src/table/TableContainer.tsx +1 -8
  910. package/src/table/TableFooter.tsx +30 -23
  911. package/src/table/TableHeader.tsx +23 -40
  912. package/src/table/TableRadio.tsx +195 -0
  913. package/src/table/TableRow.tsx +1 -28
  914. package/src/table/__tests__/Table.tsx +4 -10
  915. package/src/table/__tests__/TableBody.tsx +3 -3
  916. package/src/table/__tests__/TableCheckbox.tsx +10 -11
  917. package/src/table/__tests__/TableContainer.tsx +3 -3
  918. package/src/table/__tests__/TableRadio.tsx +112 -0
  919. package/src/table/__tests__/TableRow.tsx +4 -10
  920. package/src/table/__tests__/__snapshots__/Table.tsx.snap +249 -251
  921. package/src/table/__tests__/__snapshots__/TableBody.tsx.snap +3 -3
  922. package/src/table/__tests__/__snapshots__/TableCheckbox.tsx.snap +4 -4
  923. package/src/table/__tests__/__snapshots__/TableRadio.tsx.snap +138 -0
  924. package/src/table/__tests__/__snapshots__/TableRow.tsx.snap +4 -6
  925. package/src/table/__tests__/__snapshots__/tableContainerStyles.ts.snap +3 -0
  926. package/src/table/__tests__/__snapshots__/tableRowStyles.ts.snap +3 -0
  927. package/src/table/__tests__/__snapshots__/tableStyles.ts.snap +3 -0
  928. package/src/table/__tests__/tableContainerStyles.ts +8 -0
  929. package/src/table/__tests__/tableRowStyles.ts +8 -0
  930. package/src/table/__tests__/tableStyles.ts +8 -0
  931. package/src/table/_table.scss +71 -88
  932. package/src/table/tableCellStyles.ts +83 -0
  933. package/src/table/tableContainerStyles.ts +19 -0
  934. package/src/table/tableFooterStyles.ts +27 -0
  935. package/src/table/tableHeaderStyles.ts +29 -0
  936. package/src/table/tableRowStyles.ts +28 -0
  937. package/src/table/tableStyles.ts +24 -0
  938. package/src/table/types.ts +33 -15
  939. package/src/tabs/__tests__/Tab.tsx +3 -3
  940. package/src/tabs/__tests__/TabList.tsx +50 -40
  941. package/src/tabs/__tests__/useTabs.tsx +27 -24
  942. package/src/tabs/_tabs.scss +27 -30
  943. package/src/test-utils/data-testid.ts +5 -0
  944. package/src/test-utils/jest-setup.ts +4 -0
  945. package/src/theme/ThemeProvider.tsx +6 -0
  946. package/src/theme/__tests__/LocalStorageColorSchemeProvider.tsx +4 -4
  947. package/src/theme/__tests__/useCSSVariables.tsx +4 -4
  948. package/src/theme/_theme.scss +31 -89
  949. package/src/tooltip/Tooltip.tsx +17 -9
  950. package/src/tooltip/TooltipHoverModeProvider.tsx +18 -0
  951. package/src/tooltip/__tests__/Tooltip.tsx +147 -104
  952. package/src/tooltip/__tests__/TooltipHoverModeProvider.tsx +8 -3
  953. package/src/tooltip/__tests__/__snapshots__/Tooltip.tsx.snap +0 -33
  954. package/src/tooltip/_tooltip.scss +17 -25
  955. package/src/tooltip/tooltipStyles.ts +4 -4
  956. package/src/tooltip/useTooltip.ts +119 -19
  957. package/src/transition/__tests__/CSSTransition.tsx +12 -6
  958. package/src/transition/__tests__/Collapse.tsx +19 -17
  959. package/src/transition/__tests__/CrossFade.tsx +20 -17
  960. package/src/transition/__tests__/ScaleTransition.tsx +18 -14
  961. package/src/transition/__tests__/useCSSTransition.tsx +18 -14
  962. package/src/transition/__tests__/useCollapseTransition.tsx +25 -21
  963. package/src/transition/__tests__/useCrossFadeTransition.tsx +20 -16
  964. package/src/transition/__tests__/useScaleTransition.tsx +18 -12
  965. package/src/transition/__tests__/useTransition.tsx +165 -68
  966. package/src/transition/_transition.scss +38 -37
  967. package/src/transition/config.ts +34 -0
  968. package/src/transition/useTransition.ts +15 -6
  969. package/src/tree/DefaultTreeItemRenderer.tsx +1 -1
  970. package/src/tree/Tree.tsx +20 -24
  971. package/src/tree/TreeItem.tsx +2 -3
  972. package/src/tree/TreeProvider.tsx +6 -0
  973. package/src/tree/__tests__/Tree.tsx +7 -2
  974. package/src/tree/__tests__/TreeGroup.tsx +1 -0
  975. package/src/tree/__tests__/TreeItemExpander.tsx +1 -0
  976. package/src/tree/_tree.scss +102 -109
  977. package/src/typography/__tests__/TextContainer.tsx +3 -3
  978. package/src/typography/__tests__/Typography.tsx +10 -12
  979. package/src/typography/__tests__/WritingDirectionProvider.tsx +7 -7
  980. package/src/typography/_typography.scss +17 -22
  981. package/src/window-splitter/_window-splitter.scss +19 -45
  982. package/dist/divider/VerticalDivider.d.ts +0 -32
  983. package/dist/divider/VerticalDivider.js +0 -40
  984. package/dist/divider/VerticalDivider.js.map +0 -1
  985. package/dist/divider/useVerticalDividerHeight.d.ts +0 -37
  986. package/dist/divider/useVerticalDividerHeight.js +0 -40
  987. package/dist/divider/useVerticalDividerHeight.js.map +0 -1
  988. package/dist/icon/MaterialIconsProvider.d.ts +0 -12
  989. package/dist/icon/MaterialIconsProvider.js +0 -17
  990. package/dist/icon/MaterialIconsProvider.js.map +0 -1
  991. package/dist/icon/MaterialSymbolsProvider.js +0 -60
  992. package/dist/icon/MaterialSymbolsProvider.js.map +0 -1
  993. package/dist/link/LinkProvider.d.ts +0 -29
  994. package/dist/link/LinkProvider.js +0 -26
  995. package/dist/link/LinkProvider.js.map +0 -1
  996. package/dist/tooltip/useOverflowTooltip.d.ts +0 -61
  997. package/dist/tooltip/useOverflowTooltip.js +0 -71
  998. package/dist/tooltip/useOverflowTooltip.js.map +0 -1
  999. package/src/divider/VerticalDivider.tsx +0 -50
  1000. package/src/divider/__tests__/VerticalDivider.tsx +0 -35
  1001. package/src/divider/__tests__/__snapshots__/VerticalDivider.tsx.snap +0 -41
  1002. package/src/divider/useVerticalDividerHeight.ts +0 -72
  1003. package/src/icon/MaterialIconsProvider.ts +0 -23
  1004. package/src/link/LinkProvider.tsx +0 -51
  1005. package/src/tooltip/__tests__/useOverflowTooltip.tsx +0 -77
  1006. package/src/tooltip/useOverflowTooltip.ts +0 -93
@@ -33,6 +33,54 @@ const noop = ()=>{
33
33
  * }
34
34
  * ```
35
35
  *
36
+ * @example
37
+ * Overflow-only Tooltips
38
+ * ```tsx
39
+ * import {
40
+ * cssUtils,
41
+ * Link,
42
+ * Tooltip,
43
+ * useTooltip,
44
+ * type LinkProps,
45
+ * } from "@react-md/core";
46
+ * import { type ReactElement } from "react";
47
+ *
48
+ * function NavigationLink(props: LinkProps): ReactElement {
49
+ * const { children, ...remaining } = props;
50
+ *
51
+ * // using the `overflowRef` is optional and will default to the
52
+ * // `event.currentTarget` when `null`
53
+ * const { overflowRef, elementProps, tooltipProps } = useOverflowTooltip({
54
+ * // just to pass any event handlers
55
+ * ...remaining,
56
+ * overflowOnly: true,
57
+ * });
58
+ *
59
+ * return (
60
+ * <Link {...remaining} {...elementProps} style={{ width: "100%" }}>
61
+ * <span ref={overflowRef} className={cssUtils({ textOverflow: "ellipsis" })}>
62
+ * {children}
63
+ * </span>
64
+ * <Tooltip {...tooltipProps}>
65
+ * {children}
66
+ * </Tooltip>
67
+ * </Link>
68
+ * );
69
+ * }
70
+ *
71
+ * function Example(): ReactElement {
72
+ * return (
73
+ * <div style={{ width: "10rem", overflow: "auto" }}>
74
+ * <NavigationLink href="/">Home</NavigationLink>
75
+ * <NavigationLink href="/some-path">
76
+ * Super long text that will be truncated with ellipsis and
77
+ * have a tooltip appear
78
+ * </NavigationLink>
79
+ * </div>
80
+ * );
81
+ * }
82
+ * ```
83
+ *
36
84
  * ## Inspecting Tooltip Styles
37
85
  *
38
86
  * Since tooltips will disappear on blur, mouseleave, etc, it is a bit hard to
@@ -55,15 +103,15 @@ const noop = ()=>{
55
103
  * element when the click or history update happens. this causes the tooltip to
56
104
  * stay visible
57
105
  */ export function useTooltip(options = {}) {
58
- const { id: propId, style: propStyle, disabled = false, describedBy, dense = false, hoverTime, leaveTime, vwMargin = DEFAULT_TOOLTIP_MARGIN, vhMargin = DEFAULT_TOOLTIP_MARGIN, spacing = DEFAULT_TOOLTIP_SPACING, denseSpacing = DEFAULT_TOOLTIP_DENSE_SPACING, disableSwapping, disableAutoSpacing, position: determinedPosition, defaultPosition = DEFAULT_TOOLTIP_POSITION, threshold = DEFAULT_TOOLTIP_THRESHOLD, onBlur = noop, onFocus = noop, onMouseEnter = noop, onMouseLeave = noop, onTouchStart = noop, onTouchEnd = noop, onContextMenu = noop, onEnter = noop, onEntering, onEntered = noop, onExited } = options;
106
+ const { id: propId, style: propStyle, disabled = false, describedBy, dense = false, hoverTimeout, leaveTimeout, vwMargin = DEFAULT_TOOLTIP_MARGIN, vhMargin = DEFAULT_TOOLTIP_MARGIN, spacing = DEFAULT_TOOLTIP_SPACING, denseSpacing = DEFAULT_TOOLTIP_DENSE_SPACING, disableSwapping, disableAutoSpacing, position: determinedPosition, defaultPosition = DEFAULT_TOOLTIP_POSITION, threshold = DEFAULT_TOOLTIP_THRESHOLD, onBlur = noop, onFocus = noop, onMouseEnter = noop, onMouseLeave = noop, onTouchStart = noop, onTouchEnd = noop, onContextMenu = noop, onEnter = noop, onEntering, onEntered = noop, onExited, overflowOnly } = options;
59
107
  const fallbackId = useId();
60
108
  const id = propId || fallbackId;
61
109
  const tooltipId = `${id}-tooltip`;
62
110
  const { animatedOnceRef, hoverTimeoutRef, leaveTimeoutRef, enableHoverMode, disableHoverMode, startDisableTimer, clearDisableTimer } = useTooltipHoverMode();
63
111
  const { visible, setVisible, startShowFlow, startHideFlow, clearVisibilityTimeout } = useHoverMode({
64
- hoverTime,
112
+ hoverTimeout,
65
113
  hoverTimeoutRef,
66
- leaveTime,
114
+ leaveTimeout,
67
115
  leaveTimeoutRef,
68
116
  enableHoverMode,
69
117
  disableHoverMode,
@@ -78,6 +126,7 @@ const noop = ()=>{
78
126
  const mode = useUserInteractionMode();
79
127
  const elementRef = useRef(null);
80
128
  const tooltipRef = useRef(null);
129
+ const overflowRef = useRef(null);
81
130
  const initiatedBy = useRef(null);
82
131
  const { ref, style, callbacks } = useFixedPositioning({
83
132
  nodeRef: tooltipRef,
@@ -165,11 +214,23 @@ const noop = ()=>{
165
214
  hideTooltip();
166
215
  }
167
216
  });
217
+ const isNotOverflown = (currentTarget)=>{
218
+ if (!overflowOnly) {
219
+ return false;
220
+ }
221
+ const element = overflowRef.current || currentTarget;
222
+ return !element || element.offsetWidth >= element.scrollWidth;
223
+ };
168
224
  return {
169
225
  visible,
170
226
  setVisible,
171
227
  hideTooltip,
172
228
  animatedOnce: animatedOnceRef.current,
229
+ initiatedBy,
230
+ overflowRef,
231
+ startShowFlow,
232
+ startHideFlow,
233
+ clearVisibilityTimeout,
173
234
  tooltipProps: {
174
235
  id: tooltipId,
175
236
  ref,
@@ -184,7 +245,7 @@ const noop = ()=>{
184
245
  id,
185
246
  onMouseEnter (event) {
186
247
  onMouseEnter(event);
187
- if (disabled || mode === "touch" || initiatedBy.current !== null) {
248
+ if (disabled || mode === "touch" || initiatedBy.current !== null || isNotOverflown(event.currentTarget)) {
188
249
  return;
189
250
  }
190
251
  initiatedBy.current = "mouse";
@@ -212,7 +273,7 @@ const noop = ()=>{
212
273
  onFocus(event);
213
274
  // skip the focus events when the browser is re-focused if the user
214
275
  // pressed alt-tab, minimized the browser, etc
215
- if (disabled || mode !== "keyboard" || initiatedBy.current !== null || pageInactive.current) {
276
+ if (disabled || mode !== "keyboard" || initiatedBy.current !== null || pageInactive.current || isNotOverflown(event.currentTarget)) {
216
277
  pageInactive.current = false;
217
278
  return;
218
279
  }
@@ -223,7 +284,7 @@ const noop = ()=>{
223
284
  },
224
285
  onTouchStart (event) {
225
286
  onTouchStart(event);
226
- if (disabled || initiatedBy.current !== null) {
287
+ if (disabled || initiatedBy.current !== null || isNotOverflown(event.currentTarget)) {
227
288
  return;
228
289
  }
229
290
  initiatedBy.current = "touch";
@@ -241,7 +302,7 @@ const noop = ()=>{
241
302
  },
242
303
  onContextMenu (event) {
243
304
  onContextMenu(event);
244
- if (disabled || initiatedBy.current !== "touch") {
305
+ if (disabled || initiatedBy.current !== "touch" || isNotOverflown(event.currentTarget)) {
245
306
  return;
246
307
  }
247
308
  event.preventDefault();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tooltip/useTooltip.ts"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport type {\n CSSProperties,\n FocusEvent,\n MouseEvent,\n Ref,\n TouchEvent,\n} from \"react\";\nimport { useCallback, useEffect, useId, useRef } from \"react\";\nimport { useHoverMode } from \"../hoverMode/useHoverMode.js\";\nimport type { UserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport { useUserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport type { SimplePosition } from \"../positioning/types.js\";\nimport type { FixedPositioningTransitionCallbacks } from \"../positioning/useFixedPositioning.js\";\nimport { useFixedPositioning } from \"../positioning/useFixedPositioning.js\";\nimport type { UseStateSetter } from \"../types.js\";\nimport { usePageInactive } from \"../usePageInactive.js\";\nimport { parseCssLengthUnit } from \"../utils/parseCssLengthUnit.js\";\nimport { useTooltipHoverMode } from \"./TooltipHoverModeProvider.js\";\nimport {\n DEFAULT_TOOLTIP_DENSE_SPACING,\n DEFAULT_TOOLTIP_MARGIN,\n DEFAULT_TOOLTIP_POSITION,\n DEFAULT_TOOLTIP_SPACING,\n DEFAULT_TOOLTIP_THRESHOLD,\n TOOLTIP_SPACING_VAR,\n} from \"./constants.js\";\nimport type { TooltipPositionHookOptions } from \"./useTooltipPosition.js\";\nimport { useTooltipPosition } from \"./useTooltipPosition.js\";\nimport { getAnchor } from \"./utils.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-tooltip-background-color\"?: string;\n \"--rmd-tooltip-color\"?: string;\n \"--rmd-tooltip-spacing\"?: string | number;\n }\n}\n\nconst noop = (): void => {\n // do nothing\n};\n\n/** @remarks \\@since 2.8.0 */\nexport interface TooltipPositioningOptions {\n style?: CSSProperties;\n\n /**\n * @defaultValue `DEFAULT_TOOLTIP_MARGIN`\n * @see {@link DEFAULT_TOOLTIP_MARGIN}\n */\n vwMargin?: number;\n\n /**\n * @defaultValue `DEFAULT_TOOLTIP_MARGIN`\n * @see {@link DEFAULT_TOOLTIP_MARGIN}\n */\n vhMargin?: number;\n\n /**\n * @defaultValue `false`\n */\n dense?: boolean;\n\n /**\n * @defaultValue `DEFAULT_TOOLTIP_SPACING`\n * @see {@link DEFAULT_TOOLTIP_SPACING}\n */\n spacing?: number | string;\n\n /**\n * @defaultValue `DEFAULT_TOOLTIP_DENSE_SPACING`\n * @see {@link DEFAULT_TOOLTIP_DENSE_SPACING}\n */\n denseSpacing?: number | string;\n\n /**\n * @defaultValue `false`\n */\n disableSwapping?: boolean;\n\n /**\n * @defaultValue `false`\n */\n disableAutoSpacing?: boolean;\n}\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 Removed the `TooltipTouchEventHandlers` and\n * `TooltipKeyboardEventHandlers` types, removed the need for the `onKeyDown`\n * event, and infer element typeparam while calling instead of at hook level.\n */\nexport interface TooltippedElementEventHandlers {\n onBlur?<E extends HTMLElement>(event: FocusEvent<E>): void;\n onFocus?<E extends HTMLElement>(event: FocusEvent<E>): void;\n onMouseEnter?<E extends HTMLElement>(event: MouseEvent<E>): void;\n onMouseLeave?<E extends HTMLElement>(event: MouseEvent<E>): void;\n onTouchStart?<E extends HTMLElement>(event: TouchEvent<E>): void;\n onTouchEnd?<E extends HTMLElement>(event: TouchEvent<E>): void;\n onContextMenu?<E extends HTMLElement>(event: MouseEvent<E>): void;\n}\n\n/** @remarks \\@since 2.8.0 */\nexport interface ProvidedTooltippedElementProps\n extends Required<TooltippedElementEventHandlers> {\n \"aria-describedby\": string | undefined;\n id: string;\n}\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 A major API change for the hover mode behavior and no longer\n * requires a `baseId`/`id` for the tooltip. Also renamed from\n * `TooltipHookOptions` to `TooltipOptions` to match other hook naming\n * conventions.\n */\nexport interface TooltipOptions\n extends FixedPositioningTransitionCallbacks,\n TooltippedElementEventHandlers,\n TooltipPositioningOptions,\n TooltipPositionHookOptions {\n /**\n * @defaultValue `\"tooltip-\" + useId()`\n */\n id?: string;\n\n /**\n * An optional override for the `aria-describedby`\n */\n describedBy?: string;\n\n /**\n * Any styles to be merged with the fixed positioning styles for the tooltip.\n */\n style?: CSSProperties;\n\n /**\n * Boolean if the event handlers should no longer attempt to show a tooltip. This\n * should be set to `true` when your component might not have a tooltip associated\n * with it.\n *\n * @example\n * Real World Example\n * ```tsx\n * import { Button, ButtonProps, Tooltip, useTooltip } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n *\n * export interface TooltippedButtonProps extends ButtonProps {\n * tooltip?: ReactNode;\n * }\n *\n * export function TooltippedButton({\n * id,\n * tooltip,\n * children,\n * onBlur,\n * onFocus,\n * onMouseEnter,\n * onMouseLeave,\n * onTouchStart,\n * onTouchEnd,\n * onContextMenu,\n * ...props\n * }: TooltippedButtonProps): ReactElement {\n * const { elementProps, tooltipProps } = useTooltip({\n * id,\n * disabled: !tooltip,\n * onBlur,\n * onFocus,\n * onMouseEnter,\n * onMouseLeave,\n * onTouchStart,\n * onTouchEnd,\n * onContextMenu,\n * });\n *\n * return (\n * <>\n * <Button {...props} {...elementProps}>\n * {children}\n * </Button>\n * <Tooltip {...tooltipProps}>{tooltip}</Tooltip>\n * </>\n * );\n * }\n * ```\n *\n * @defaultValue `false`\n * @remarks \\@since 5.1.0\n */\n disabled?: boolean;\n\n /**\n * The amount of time (in ms) to hover an element before the tooltip becomes\n * visible.\n *\n * The default value is really the current hover timeout from the\n * `TooltipHoverModeProvider`.\n *\n * @defaultValue `DEFAULT_TOOLTIP_DELAY`\n */\n hoverTime?: number;\n\n /**\n * The amount of time to wait before triggering the exit animation for the\n * tooltip.\n *\n * The default value is really the current leaveTimeout timeout from the\n * `TooltipHoverModeProvider`.\n *\n * @defaultValue `0`\n */\n leaveTime?: number;\n}\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 This was renamed from `TooltipHookProvidedTooltipProps`\n */\nexport interface ProvidedTooltipProps\n extends Required<FixedPositioningTransitionCallbacks> {\n id: string;\n ref: Ref<HTMLSpanElement>;\n dense: boolean;\n style: CSSProperties;\n visible: boolean;\n position: SimplePosition;\n}\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 No longer returns any properties from the hover mode provider\n * because of the major API change to hover mode.. Also renamed from\n * `TooltipHookReturnValue` to `TooltipImplementation` to match other hook\n * naming conventions.\n */\nexport interface TooltipImplementation {\n visible: boolean;\n setVisible: UseStateSetter<boolean>;\n animatedOnce: boolean;\n elementProps: ProvidedTooltippedElementProps;\n tooltipProps: ProvidedTooltipProps;\n\n /**\n * This is a wrapper around the {@link setVisible} behavior that will also\n * clear any pending timeouts.\n */\n hideTooltip(): void;\n}\n\n/**\n * @example\n * Simple Usage\n * ```tsx\n * import { Button, useTooltip, Tooltip } from \"@react-md/core\";\n *\n * function Example() {\n * const { elementProps, tooltipProps } = useTooltip();\n *\n * return (\n * <>\n * <Button {...elementProps}>Button</Button>\n * <Tooltip {...tooltipProps}>\n * Tooltip Content\n * </Tooltip>\n * </>\n * );\n * }\n * ```\n *\n * ## Inspecting Tooltip Styles\n *\n * Since tooltips will disappear on blur, mouseleave, etc, it is a bit hard to\n * inspect the tooltip styles. In dev mode, you can manually set the visibility\n * to `true` through the dev tools.\n * - find your tooltip implementation\n * - expand the Tooltip hook\n * - expand the HoverMode hook\n * - set the first boolean state to `true`\n *\n * The tooltip will now remain visible allowing you to find it within the\n * \"Inspector\" tab in the dev tools.\n *\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 Uses a separate `TooltipHoverModeProvider`.\n *\n * TODO: I need to fix the tooltip for click events and history changes since\n * the mouseleave event will not be correctly bubbled if hovering a child\n * element when the click or history update happens. this causes the tooltip to\n * stay visible\n */\nexport function useTooltip(\n options: TooltipOptions = {}\n): TooltipImplementation {\n const {\n id: propId,\n style: propStyle,\n disabled = false,\n describedBy,\n dense = false,\n hoverTime,\n leaveTime,\n vwMargin = DEFAULT_TOOLTIP_MARGIN,\n vhMargin = DEFAULT_TOOLTIP_MARGIN,\n spacing = DEFAULT_TOOLTIP_SPACING,\n denseSpacing = DEFAULT_TOOLTIP_DENSE_SPACING,\n disableSwapping,\n disableAutoSpacing,\n position: determinedPosition,\n defaultPosition = DEFAULT_TOOLTIP_POSITION,\n threshold = DEFAULT_TOOLTIP_THRESHOLD,\n onBlur = noop,\n onFocus = noop,\n onMouseEnter = noop,\n onMouseLeave = noop,\n onTouchStart = noop,\n onTouchEnd = noop,\n onContextMenu = noop,\n onEnter = noop,\n onEntering,\n onEntered = noop,\n onExited,\n } = options;\n\n const fallbackId = useId();\n const id = propId || fallbackId;\n const tooltipId = `${id}-tooltip`;\n const {\n animatedOnceRef,\n hoverTimeoutRef,\n leaveTimeoutRef,\n enableHoverMode,\n disableHoverMode,\n startDisableTimer,\n clearDisableTimer,\n } = useTooltipHoverMode();\n const {\n visible,\n setVisible,\n startShowFlow,\n startHideFlow,\n clearVisibilityTimeout,\n } = useHoverMode({\n hoverTime,\n hoverTimeoutRef,\n leaveTime,\n leaveTimeoutRef,\n enableHoverMode,\n disableHoverMode,\n startDisableTimer,\n clearDisableTimer,\n });\n const [position, updatePosition] = useTooltipPosition({\n position: determinedPosition,\n defaultPosition,\n threshold,\n });\n\n const mode = useUserInteractionMode();\n const elementRef = useRef<HTMLElement | null>(null);\n const tooltipRef = useRef<HTMLSpanElement>(null);\n const initiatedBy = useRef<UserInteractionMode | null>(null);\n const { ref, style, callbacks } = useFixedPositioning({\n nodeRef: tooltipRef,\n style: propStyle,\n fixedTo: elementRef,\n anchor: getAnchor(position),\n disableSwapping: disableSwapping ?? !!determinedPosition,\n getFixedPositionOptions() {\n let tooltipSpacing = dense ? denseSpacing : spacing;\n const tooltip = tooltipRef.current;\n if (!disableAutoSpacing && tooltip) {\n tooltipSpacing =\n window\n .getComputedStyle(tooltip)\n .getPropertyValue(TOOLTIP_SPACING_VAR) || spacing;\n }\n\n const currentSpacing = parseCssLengthUnit({\n value: tooltipSpacing,\n });\n const horizontal = position === \"left\" || position === \"right\";\n\n return {\n vwMargin,\n vhMargin,\n xMargin: horizontal ? currentSpacing : undefined,\n yMargin: horizontal ? undefined : currentSpacing,\n };\n },\n onEnter(appearing) {\n onEnter(appearing);\n\n // This allows you to inspect the tooltip styles through the element\n // inspector without first hovering or focusing the tooltipped element\n // beforehand by setting the `HoverMode` hook to `true`\n if (process.env.NODE_ENV !== \"production\" && !elementRef.current) {\n elementRef.current = document.getElementById(id);\n }\n },\n onEntering,\n onEntered(appearing) {\n onEntered(appearing);\n\n animatedOnceRef.current = true;\n },\n onExited,\n });\n\n const hideTooltip = useCallback(() => {\n initiatedBy.current = null;\n disableHoverMode();\n clearVisibilityTimeout();\n setVisible(false);\n }, [clearVisibilityTimeout, disableHoverMode, setVisible]);\n\n useEffect(() => {\n if (!visible) {\n return;\n }\n\n const handleKeyDown = (event: KeyboardEvent): void => {\n if (event.key === \"Escape\") {\n hideTooltip();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n window.addEventListener(\"scroll\", hideTooltip, true);\n window.addEventListener(\"touchend\", hideTooltip, true);\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n window.removeEventListener(\"scroll\", hideTooltip, true);\n window.removeEventListener(\"touchend\", hideTooltip, true);\n };\n }, [hideTooltip, visible]);\n\n const refocusFrame = useRef(0);\n const pageInactive = useRef(false);\n usePageInactive({\n disabled,\n onDisabledCleanup: hideTooltip,\n onChange(active) {\n if (active) {\n refocusFrame.current = window.requestAnimationFrame(() => {\n pageInactive.current = false;\n });\n return;\n }\n\n pageInactive.current = true;\n hideTooltip();\n },\n });\n\n return {\n visible,\n setVisible,\n hideTooltip,\n animatedOnce: animatedOnceRef.current,\n tooltipProps: {\n id: tooltipId,\n ref,\n dense,\n style,\n visible,\n position,\n ...callbacks,\n },\n elementProps: {\n \"aria-describedby\": cnb(visible && tooltipId, describedBy) || undefined,\n id,\n onMouseEnter(event) {\n onMouseEnter(event);\n if (disabled || mode === \"touch\" || initiatedBy.current !== null) {\n return;\n }\n\n initiatedBy.current = \"mouse\";\n elementRef.current = event.currentTarget;\n updatePosition(event.currentTarget);\n startShowFlow(id);\n },\n onMouseLeave(event) {\n onMouseLeave(event);\n if (disabled || initiatedBy.current !== \"mouse\") {\n return;\n }\n\n startHideFlow();\n initiatedBy.current = null;\n },\n onBlur(event) {\n onBlur(event);\n if (disabled) {\n return;\n }\n\n initiatedBy.current = null;\n startHideFlow();\n },\n onFocus(event) {\n onFocus(event);\n // skip the focus events when the browser is re-focused if the user\n // pressed alt-tab, minimized the browser, etc\n if (\n disabled ||\n mode !== \"keyboard\" ||\n initiatedBy.current !== null ||\n pageInactive.current\n ) {\n pageInactive.current = false;\n return;\n }\n\n initiatedBy.current = \"keyboard\";\n elementRef.current = event.currentTarget;\n updatePosition(event.currentTarget);\n startShowFlow(id);\n },\n onTouchStart(event) {\n onTouchStart(event);\n if (disabled || initiatedBy.current !== null) {\n return;\n }\n\n initiatedBy.current = \"touch\";\n elementRef.current = event.currentTarget;\n updatePosition(event.currentTarget);\n startShowFlow(id);\n },\n onTouchEnd(event) {\n onTouchEnd(event);\n if (disabled) {\n return;\n }\n\n initiatedBy.current = null;\n startHideFlow();\n },\n onContextMenu(event) {\n onContextMenu(event);\n if (disabled || initiatedBy.current !== \"touch\") {\n return;\n }\n\n event.preventDefault();\n const selection = window.getSelection();\n const node = selection?.anchorNode?.parentElement;\n if (node && event.currentTarget.contains(node)) {\n selection.empty();\n }\n },\n },\n };\n}\n"],"names":["cnb","useCallback","useEffect","useId","useRef","useHoverMode","useUserInteractionMode","useFixedPositioning","usePageInactive","parseCssLengthUnit","useTooltipHoverMode","DEFAULT_TOOLTIP_DENSE_SPACING","DEFAULT_TOOLTIP_MARGIN","DEFAULT_TOOLTIP_POSITION","DEFAULT_TOOLTIP_SPACING","DEFAULT_TOOLTIP_THRESHOLD","TOOLTIP_SPACING_VAR","useTooltipPosition","getAnchor","noop","useTooltip","options","id","propId","style","propStyle","disabled","describedBy","dense","hoverTime","leaveTime","vwMargin","vhMargin","spacing","denseSpacing","disableSwapping","disableAutoSpacing","position","determinedPosition","defaultPosition","threshold","onBlur","onFocus","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","onContextMenu","onEnter","onEntering","onEntered","onExited","fallbackId","tooltipId","animatedOnceRef","hoverTimeoutRef","leaveTimeoutRef","enableHoverMode","disableHoverMode","startDisableTimer","clearDisableTimer","visible","setVisible","startShowFlow","startHideFlow","clearVisibilityTimeout","updatePosition","mode","elementRef","tooltipRef","initiatedBy","ref","callbacks","nodeRef","fixedTo","anchor","getFixedPositionOptions","tooltipSpacing","tooltip","current","window","getComputedStyle","getPropertyValue","currentSpacing","value","horizontal","xMargin","undefined","yMargin","appearing","process","env","NODE_ENV","document","getElementById","hideTooltip","handleKeyDown","event","key","addEventListener","removeEventListener","refocusFrame","pageInactive","onDisabledCleanup","onChange","active","requestAnimationFrame","animatedOnce","tooltipProps","elementProps","currentTarget","preventDefault","selection","getSelection","node","anchorNode","parentElement","contains","empty"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/tooltip/useTooltip.ts"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport type {\n CSSProperties,\n FocusEvent,\n MouseEvent,\n MutableRefObject,\n Ref,\n RefObject,\n TouchEvent,\n} from \"react\";\nimport { useCallback, useEffect, useId, useRef } from \"react\";\nimport {\n useHoverMode,\n type ControlledHoverModeImplementation,\n} from \"../hoverMode/useHoverMode.js\";\nimport type { UserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport { useUserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport type { SimplePosition } from \"../positioning/types.js\";\nimport type { FixedPositioningTransitionCallbacks } from \"../positioning/useFixedPositioning.js\";\nimport { useFixedPositioning } from \"../positioning/useFixedPositioning.js\";\nimport type { UseStateSetter } from \"../types.js\";\nimport { usePageInactive } from \"../usePageInactive.js\";\nimport { parseCssLengthUnit } from \"../utils/parseCssLengthUnit.js\";\nimport { useTooltipHoverMode } from \"./TooltipHoverModeProvider.js\";\nimport {\n DEFAULT_TOOLTIP_DENSE_SPACING,\n DEFAULT_TOOLTIP_MARGIN,\n DEFAULT_TOOLTIP_POSITION,\n DEFAULT_TOOLTIP_SPACING,\n DEFAULT_TOOLTIP_THRESHOLD,\n TOOLTIP_SPACING_VAR,\n} from \"./constants.js\";\nimport type { TooltipPositionHookOptions } from \"./useTooltipPosition.js\";\nimport { useTooltipPosition } from \"./useTooltipPosition.js\";\nimport { getAnchor } from \"./utils.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-tooltip-background-color\"?: string;\n \"--rmd-tooltip-color\"?: string;\n \"--rmd-tooltip-spacing\"?: string | number;\n }\n}\n\nconst noop = (): void => {\n // do nothing\n};\n\n/** @remarks \\@since 2.8.0 */\nexport interface TooltipPositioningOptions {\n style?: CSSProperties;\n\n /**\n * @defaultValue `DEFAULT_TOOLTIP_MARGIN`\n * @see {@link DEFAULT_TOOLTIP_MARGIN}\n */\n vwMargin?: number;\n\n /**\n * @defaultValue `DEFAULT_TOOLTIP_MARGIN`\n * @see {@link DEFAULT_TOOLTIP_MARGIN}\n */\n vhMargin?: number;\n\n /**\n * @defaultValue `false`\n */\n dense?: boolean;\n\n /**\n * @defaultValue `DEFAULT_TOOLTIP_SPACING`\n * @see {@link DEFAULT_TOOLTIP_SPACING}\n */\n spacing?: number | string;\n\n /**\n * @defaultValue `DEFAULT_TOOLTIP_DENSE_SPACING`\n * @see {@link DEFAULT_TOOLTIP_DENSE_SPACING}\n */\n denseSpacing?: number | string;\n\n /**\n * @defaultValue `false`\n */\n disableSwapping?: boolean;\n\n /**\n * @defaultValue `false`\n */\n disableAutoSpacing?: boolean;\n}\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 Removed the `TooltipTouchEventHandlers` and\n * `TooltipKeyboardEventHandlers` types, removed the need for the `onKeyDown`\n * event, and infer element typeparam while calling instead of at hook level.\n */\nexport interface TooltippedElementEventHandlers {\n onBlur?<E extends HTMLElement>(event: FocusEvent<E>): void;\n onFocus?<E extends HTMLElement>(event: FocusEvent<E>): void;\n onMouseEnter?<E extends HTMLElement>(event: MouseEvent<E>): void;\n onMouseLeave?<E extends HTMLElement>(event: MouseEvent<E>): void;\n onTouchStart?<E extends HTMLElement>(event: TouchEvent<E>): void;\n onTouchEnd?<E extends HTMLElement>(event: TouchEvent<E>): void;\n onContextMenu?<E extends HTMLElement>(event: MouseEvent<E>): void;\n}\n\n/** @remarks \\@since 2.8.0 */\nexport interface ProvidedTooltippedElementProps\n extends Required<TooltippedElementEventHandlers> {\n \"aria-describedby\": string | undefined;\n id: string;\n}\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 A major API change for the hover mode behavior and no longer\n * requires a `baseId`/`id` for the tooltip. Also renamed from\n * `TooltipHookOptions` to `TooltipOptions` to match other hook naming\n * conventions.\n */\nexport interface TooltipOptions\n extends FixedPositioningTransitionCallbacks,\n TooltippedElementEventHandlers,\n TooltipPositioningOptions,\n TooltipPositionHookOptions {\n /**\n * @defaultValue `\"tooltip-\" + useId()`\n */\n id?: string;\n\n /**\n * An optional override for the `aria-describedby`\n */\n describedBy?: string;\n\n /**\n * Any styles to be merged with the fixed positioning styles for the tooltip.\n */\n style?: CSSProperties;\n\n /**\n * Boolean if the event handlers should no longer attempt to show a tooltip. This\n * should be set to `true` when your component might not have a tooltip associated\n * with it.\n *\n * @example\n * Real World Example\n * ```tsx\n * import { Button, ButtonProps, Tooltip, useTooltip } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n *\n * export interface TooltippedButtonProps extends ButtonProps {\n * tooltip?: ReactNode;\n * }\n *\n * export function TooltippedButton({\n * id,\n * tooltip,\n * children,\n * onBlur,\n * onFocus,\n * onMouseEnter,\n * onMouseLeave,\n * onTouchStart,\n * onTouchEnd,\n * onContextMenu,\n * ...props\n * }: TooltippedButtonProps): ReactElement {\n * const { elementProps, tooltipProps } = useTooltip({\n * id,\n * disabled: !tooltip,\n * onBlur,\n * onFocus,\n * onMouseEnter,\n * onMouseLeave,\n * onTouchStart,\n * onTouchEnd,\n * onContextMenu,\n * });\n *\n * return (\n * <>\n * <Button {...props} {...elementProps}>\n * {children}\n * </Button>\n * <Tooltip {...tooltipProps}>{tooltip}</Tooltip>\n * </>\n * );\n * }\n * ```\n *\n * @defaultValue `false`\n * @remarks \\@since 5.1.0\n */\n disabled?: boolean;\n\n /**\n * The amount of time (in ms) to hover an element before the tooltip becomes\n * visible.\n *\n * The default value is really the current hover timeout from the\n * `TooltipHoverModeProvider`.\n *\n * @defaultValue `DEFAULT_TOOLTIP_DELAY`\n */\n hoverTimeout?: number;\n\n /**\n * The amount of time to wait before triggering the exit animation for the\n * tooltip.\n *\n * The default value is really the current leaveTimeout timeout from the\n * `TooltipHoverModeProvider`.\n *\n * @defaultValue `0`\n */\n leaveTimeout?: number;\n\n /**\n * Set this to `true` to only allow the tooltip to become visible when the\n * `event .currentTarget` or `overflowRef` has text overflow.\n *\n * @defaultValue `false`\n * @remarks \\@since 6.0.0\n */\n overflowOnly?: boolean;\n}\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 This was renamed from `TooltipHookProvidedTooltipProps`\n */\nexport interface ProvidedTooltipProps<E extends HTMLElement = HTMLSpanElement>\n extends Required<FixedPositioningTransitionCallbacks> {\n id: string;\n ref: Ref<E>;\n dense: boolean;\n style: CSSProperties;\n visible: boolean;\n position: SimplePosition;\n}\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 No longer returns any properties from the hover mode provider\n * because of the major API change to hover mode.. Also renamed from\n * `TooltipHookReturnValue` to `TooltipImplementation` to match other hook\n * naming conventions.\n */\nexport interface TooltipImplementation<\n TooltipElement extends HTMLElement = HTMLSpanElement,\n> extends ControlledHoverModeImplementation {\n visible: boolean;\n setVisible: UseStateSetter<boolean>;\n animatedOnce: boolean;\n initiatedBy: MutableRefObject<UserInteractionMode | null>;\n elementProps: ProvidedTooltippedElementProps;\n tooltipProps: ProvidedTooltipProps<TooltipElement>;\n\n /**\n * This is a wrapper around the {@link setVisible} behavior that will also\n * clear any pending timeouts.\n */\n hideTooltip(): void;\n\n /**\n * @remarks \\@since 6.0.0\n */\n overflowRef: RefObject<HTMLElement>;\n}\n\n/**\n * @example\n * Simple Usage\n * ```tsx\n * import { Button, useTooltip, Tooltip } from \"@react-md/core\";\n *\n * function Example() {\n * const { elementProps, tooltipProps } = useTooltip();\n *\n * return (\n * <>\n * <Button {...elementProps}>Button</Button>\n * <Tooltip {...tooltipProps}>\n * Tooltip Content\n * </Tooltip>\n * </>\n * );\n * }\n * ```\n *\n * @example\n * Overflow-only Tooltips\n * ```tsx\n * import {\n * cssUtils,\n * Link,\n * Tooltip,\n * useTooltip,\n * type LinkProps,\n * } from \"@react-md/core\";\n * import { type ReactElement } from \"react\";\n *\n * function NavigationLink(props: LinkProps): ReactElement {\n * const { children, ...remaining } = props;\n *\n * // using the `overflowRef` is optional and will default to the\n * // `event.currentTarget` when `null`\n * const { overflowRef, elementProps, tooltipProps } = useOverflowTooltip({\n * // just to pass any event handlers\n * ...remaining,\n * overflowOnly: true,\n * });\n *\n * return (\n * <Link {...remaining} {...elementProps} style={{ width: \"100%\" }}>\n * <span ref={overflowRef} className={cssUtils({ textOverflow: \"ellipsis\" })}>\n * {children}\n * </span>\n * <Tooltip {...tooltipProps}>\n * {children}\n * </Tooltip>\n * </Link>\n * );\n * }\n *\n * function Example(): ReactElement {\n * return (\n * <div style={{ width: \"10rem\", overflow: \"auto\" }}>\n * <NavigationLink href=\"/\">Home</NavigationLink>\n * <NavigationLink href=\"/some-path\">\n * Super long text that will be truncated with ellipsis and\n * have a tooltip appear\n * </NavigationLink>\n * </div>\n * );\n * }\n * ```\n *\n * ## Inspecting Tooltip Styles\n *\n * Since tooltips will disappear on blur, mouseleave, etc, it is a bit hard to\n * inspect the tooltip styles. In dev mode, you can manually set the visibility\n * to `true` through the dev tools.\n * - find your tooltip implementation\n * - expand the Tooltip hook\n * - expand the HoverMode hook\n * - set the first boolean state to `true`\n *\n * The tooltip will now remain visible allowing you to find it within the\n * \"Inspector\" tab in the dev tools.\n *\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 Uses a separate `TooltipHoverModeProvider`.\n *\n * TODO: I need to fix the tooltip for click events and history changes since\n * the mouseleave event will not be correctly bubbled if hovering a child\n * element when the click or history update happens. this causes the tooltip to\n * stay visible\n */\nexport function useTooltip<\n TooltipElement extends HTMLElement = HTMLSpanElement,\n>(options: TooltipOptions = {}): TooltipImplementation<TooltipElement> {\n const {\n id: propId,\n style: propStyle,\n disabled = false,\n describedBy,\n dense = false,\n hoverTimeout,\n leaveTimeout,\n vwMargin = DEFAULT_TOOLTIP_MARGIN,\n vhMargin = DEFAULT_TOOLTIP_MARGIN,\n spacing = DEFAULT_TOOLTIP_SPACING,\n denseSpacing = DEFAULT_TOOLTIP_DENSE_SPACING,\n disableSwapping,\n disableAutoSpacing,\n position: determinedPosition,\n defaultPosition = DEFAULT_TOOLTIP_POSITION,\n threshold = DEFAULT_TOOLTIP_THRESHOLD,\n onBlur = noop,\n onFocus = noop,\n onMouseEnter = noop,\n onMouseLeave = noop,\n onTouchStart = noop,\n onTouchEnd = noop,\n onContextMenu = noop,\n onEnter = noop,\n onEntering,\n onEntered = noop,\n onExited,\n overflowOnly,\n } = options;\n\n const fallbackId = useId();\n const id = propId || fallbackId;\n const tooltipId = `${id}-tooltip`;\n const {\n animatedOnceRef,\n hoverTimeoutRef,\n leaveTimeoutRef,\n enableHoverMode,\n disableHoverMode,\n startDisableTimer,\n clearDisableTimer,\n } = useTooltipHoverMode();\n const {\n visible,\n setVisible,\n startShowFlow,\n startHideFlow,\n clearVisibilityTimeout,\n } = useHoverMode({\n hoverTimeout,\n hoverTimeoutRef,\n leaveTimeout,\n leaveTimeoutRef,\n enableHoverMode,\n disableHoverMode,\n startDisableTimer,\n clearDisableTimer,\n });\n const [position, updatePosition] = useTooltipPosition({\n position: determinedPosition,\n defaultPosition,\n threshold,\n });\n\n const mode = useUserInteractionMode();\n const elementRef = useRef<HTMLElement | null>(null);\n const tooltipRef = useRef<TooltipElement>(null);\n const overflowRef = useRef<HTMLElement>(null);\n const initiatedBy = useRef<UserInteractionMode | null>(null);\n const { ref, style, callbacks } = useFixedPositioning({\n nodeRef: tooltipRef,\n style: propStyle,\n fixedTo: elementRef,\n anchor: getAnchor(position),\n disableSwapping: disableSwapping ?? !!determinedPosition,\n getFixedPositionOptions() {\n let tooltipSpacing = dense ? denseSpacing : spacing;\n const tooltip = tooltipRef.current;\n if (!disableAutoSpacing && tooltip) {\n tooltipSpacing =\n window\n .getComputedStyle(tooltip)\n .getPropertyValue(TOOLTIP_SPACING_VAR) || spacing;\n }\n\n const currentSpacing = parseCssLengthUnit({\n value: tooltipSpacing,\n });\n const horizontal = position === \"left\" || position === \"right\";\n\n return {\n vwMargin,\n vhMargin,\n xMargin: horizontal ? currentSpacing : undefined,\n yMargin: horizontal ? undefined : currentSpacing,\n };\n },\n onEnter(appearing) {\n onEnter(appearing);\n\n // This allows you to inspect the tooltip styles through the element\n // inspector without first hovering or focusing the tooltipped element\n // beforehand by setting the `HoverMode` hook to `true`\n if (process.env.NODE_ENV !== \"production\" && !elementRef.current) {\n elementRef.current = document.getElementById(id);\n }\n },\n onEntering,\n onEntered(appearing) {\n onEntered(appearing);\n\n animatedOnceRef.current = true;\n },\n onExited,\n });\n\n const hideTooltip = useCallback(() => {\n initiatedBy.current = null;\n disableHoverMode();\n clearVisibilityTimeout();\n setVisible(false);\n }, [clearVisibilityTimeout, disableHoverMode, setVisible]);\n\n useEffect(() => {\n if (!visible) {\n return;\n }\n\n const handleKeyDown = (event: KeyboardEvent): void => {\n if (event.key === \"Escape\") {\n hideTooltip();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n window.addEventListener(\"scroll\", hideTooltip, true);\n window.addEventListener(\"touchend\", hideTooltip, true);\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n window.removeEventListener(\"scroll\", hideTooltip, true);\n window.removeEventListener(\"touchend\", hideTooltip, true);\n };\n }, [hideTooltip, visible]);\n\n const refocusFrame = useRef(0);\n const pageInactive = useRef(false);\n usePageInactive({\n disabled,\n onDisabledCleanup: hideTooltip,\n onChange(active) {\n if (active) {\n refocusFrame.current = window.requestAnimationFrame(() => {\n pageInactive.current = false;\n });\n return;\n }\n\n pageInactive.current = true;\n hideTooltip();\n },\n });\n\n const isNotOverflown = (currentTarget: HTMLElement): boolean => {\n if (!overflowOnly) {\n return false;\n }\n\n const element = overflowRef.current || currentTarget;\n return !element || element.offsetWidth >= element.scrollWidth;\n };\n\n return {\n visible,\n setVisible,\n hideTooltip,\n animatedOnce: animatedOnceRef.current,\n initiatedBy,\n overflowRef,\n startShowFlow,\n startHideFlow,\n clearVisibilityTimeout,\n tooltipProps: {\n id: tooltipId,\n ref,\n dense,\n style,\n visible,\n position,\n ...callbacks,\n },\n elementProps: {\n \"aria-describedby\": cnb(visible && tooltipId, describedBy) || undefined,\n id,\n onMouseEnter(event) {\n onMouseEnter(event);\n if (\n disabled ||\n mode === \"touch\" ||\n initiatedBy.current !== null ||\n isNotOverflown(event.currentTarget)\n ) {\n return;\n }\n\n initiatedBy.current = \"mouse\";\n elementRef.current = event.currentTarget;\n updatePosition(event.currentTarget);\n startShowFlow(id);\n },\n onMouseLeave(event) {\n onMouseLeave(event);\n if (disabled || initiatedBy.current !== \"mouse\") {\n return;\n }\n\n startHideFlow();\n initiatedBy.current = null;\n },\n onBlur(event) {\n onBlur(event);\n if (disabled) {\n return;\n }\n\n initiatedBy.current = null;\n startHideFlow();\n },\n onFocus(event) {\n onFocus(event);\n // skip the focus events when the browser is re-focused if the user\n // pressed alt-tab, minimized the browser, etc\n if (\n disabled ||\n mode !== \"keyboard\" ||\n initiatedBy.current !== null ||\n pageInactive.current ||\n isNotOverflown(event.currentTarget)\n ) {\n pageInactive.current = false;\n return;\n }\n\n initiatedBy.current = \"keyboard\";\n elementRef.current = event.currentTarget;\n updatePosition(event.currentTarget);\n startShowFlow(id);\n },\n onTouchStart(event) {\n onTouchStart(event);\n if (\n disabled ||\n initiatedBy.current !== null ||\n isNotOverflown(event.currentTarget)\n ) {\n return;\n }\n\n initiatedBy.current = \"touch\";\n elementRef.current = event.currentTarget;\n updatePosition(event.currentTarget);\n startShowFlow(id);\n },\n onTouchEnd(event) {\n onTouchEnd(event);\n if (disabled) {\n return;\n }\n\n initiatedBy.current = null;\n startHideFlow();\n },\n onContextMenu(event) {\n onContextMenu(event);\n if (\n disabled ||\n initiatedBy.current !== \"touch\" ||\n isNotOverflown(event.currentTarget)\n ) {\n return;\n }\n\n event.preventDefault();\n const selection = window.getSelection();\n const node = selection?.anchorNode?.parentElement;\n if (node && event.currentTarget.contains(node)) {\n selection.empty();\n }\n },\n },\n };\n}\n"],"names":["cnb","useCallback","useEffect","useId","useRef","useHoverMode","useUserInteractionMode","useFixedPositioning","usePageInactive","parseCssLengthUnit","useTooltipHoverMode","DEFAULT_TOOLTIP_DENSE_SPACING","DEFAULT_TOOLTIP_MARGIN","DEFAULT_TOOLTIP_POSITION","DEFAULT_TOOLTIP_SPACING","DEFAULT_TOOLTIP_THRESHOLD","TOOLTIP_SPACING_VAR","useTooltipPosition","getAnchor","noop","useTooltip","options","id","propId","style","propStyle","disabled","describedBy","dense","hoverTimeout","leaveTimeout","vwMargin","vhMargin","spacing","denseSpacing","disableSwapping","disableAutoSpacing","position","determinedPosition","defaultPosition","threshold","onBlur","onFocus","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","onContextMenu","onEnter","onEntering","onEntered","onExited","overflowOnly","fallbackId","tooltipId","animatedOnceRef","hoverTimeoutRef","leaveTimeoutRef","enableHoverMode","disableHoverMode","startDisableTimer","clearDisableTimer","visible","setVisible","startShowFlow","startHideFlow","clearVisibilityTimeout","updatePosition","mode","elementRef","tooltipRef","overflowRef","initiatedBy","ref","callbacks","nodeRef","fixedTo","anchor","getFixedPositionOptions","tooltipSpacing","tooltip","current","window","getComputedStyle","getPropertyValue","currentSpacing","value","horizontal","xMargin","undefined","yMargin","appearing","process","env","NODE_ENV","document","getElementById","hideTooltip","handleKeyDown","event","key","addEventListener","removeEventListener","refocusFrame","pageInactive","onDisabledCleanup","onChange","active","requestAnimationFrame","isNotOverflown","currentTarget","element","offsetWidth","scrollWidth","animatedOnce","tooltipProps","elementProps","preventDefault","selection","getSelection","node","anchorNode","parentElement","contains","empty"],"mappings":"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"}
@@ -64,52 +64,28 @@ $max-width-transition-duration: $linear-duration !default;
64
64
  $max-width-transition-timing-function: $linear-timing-function !default;
65
65
  $max-width-transition-default: 100% !default;
66
66
 
67
- $transition-var-lookup: (
68
- skeleton-placeholder-background-color: (
69
- var: --rmd-skeleton-placeholder-background-color,
70
- value: $skeleton-placeholder-background-color,
71
- ),
72
- skeleton-placeholder-height: (
73
- var: --rmd-skeleton-placeholder-height,
74
- value: $skeleton-placeholder-height,
75
- ),
76
- skeleton-placeholder-width: (
77
- var: --rmd-skeleton-placeholder-width,
78
- value: null,
79
- ),
80
- slide-duration: (
81
- var: --rmd-slide-duration,
82
- value: $slide-duration,
83
- ),
84
- max-width: (
85
- var: --rmd-max-width,
86
- value: $max-width-transition-default,
87
- ),
88
- max-width-gap: (
89
- var: --rmd-max-width-gap,
90
- value: 0,
91
- ),
67
+ $transition-variables: (
68
+ skeleton-placeholder-background-color,
69
+ skeleton-placeholder-height,
70
+ skeleton-placeholder-width,
71
+ slide-duration,
72
+ max-width,
73
+ max-width-gap
92
74
  );
93
75
 
94
76
  @function transition-get-var($name, $fallback: null) {
95
- $found: utils.validate($transition-var-lookup, $name, "transition var");
96
- $var: map.get($found, var);
97
- $value: if($fallback, $fallback, map.get($found, value));
98
-
99
- @if $value {
100
- @return var(#{$var}, #{$value});
77
+ $var: utils.get-var-name($transition-variables, $name, "transition");
78
+ @if $fallback {
79
+ @return var(#{$var}, #{$fallback});
101
80
  }
102
81
 
103
82
  @return var(#{$var});
104
83
  }
105
84
 
106
85
  @mixin transition-set-var($name, $value) {
107
- $var: map.get(
108
- utils.validate($transition-var-lookup, $name, "transition var"),
109
- var
110
- );
111
-
112
- #{$var}: #{$value};
86
+ @if $value {
87
+ #{utils.get-var-name($transition-variables, $name, "transition")}: #{$value};
88
+ }
113
89
  }
114
90
 
115
91
  @mixin transition-use-var($property, $name: $property, $fallback: null) {
@@ -301,6 +277,31 @@ $transition-var-lookup: (
301
277
  }
302
278
  }
303
279
 
280
+ @mixin transition-variables {
281
+ @if not $disable-skeleton-placeholder {
282
+ @include transition-set-var(
283
+ skeleton-placeholder-background-color,
284
+ $skeleton-placeholder-background-color
285
+ );
286
+ @include transition-set-var(
287
+ skeleton-placeholder-height,
288
+ $skeleton-placeholder-height
289
+ );
290
+ }
291
+
292
+ @if not $disable-slide-transition {
293
+ @include transition-set-var(slide-duration, $slide-duration);
294
+ }
295
+
296
+ @if not $disable-max-width-transition {
297
+ @include transition-set-var(max-width, $max-width-transition-default);
298
+
299
+ @if not $disable-max-width-transition-gap {
300
+ @include transition-set-var(max-width-gap, 0);
301
+ }
302
+ }
303
+ }
304
+
304
305
  @mixin transition-styles {
305
306
  @if not $disable-collapse-transition {
306
307
  @include collapse-transition;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @remarks \@since 6.0.0
3
+ */
4
+ export interface TransitionConfig {
5
+ /**
6
+ * Set this to `true` to disable all transitions from `react-md`.
7
+ *
8
+ * Note: It is recommended to set this to `true` in testing to keep things
9
+ * simple and will automatically be set when using:
10
+ *
11
+ * ```ts
12
+ * import "@react-md/core/test-utils/jest-setup.js";
13
+ * ```
14
+ *
15
+ * @defaultValue `false`
16
+ */
17
+ disabled: boolean;
18
+ }
19
+ /**
20
+ * @remarks \@since 6.0.0
21
+ */
22
+ export declare const TRANSITION_CONFIG: TransitionConfig;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @remarks \@since 6.0.0
3
+ */ // NOTE: Uses get/set for test mocking
4
+ let disabled = false;
5
+ /**
6
+ * @remarks \@since 6.0.0
7
+ */ export const TRANSITION_CONFIG = {
8
+ get disabled () {
9
+ return disabled;
10
+ },
11
+ set disabled (nextDisabled){
12
+ disabled = nextDisabled;
13
+ }
14
+ };
15
+
16
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/transition/config.ts"],"sourcesContent":["/**\n * @remarks \\@since 6.0.0\n */\nexport interface TransitionConfig {\n /**\n * Set this to `true` to disable all transitions from `react-md`.\n *\n * Note: It is recommended to set this to `true` in testing to keep things\n * simple and will automatically be set when using:\n *\n * ```ts\n * import \"@react-md/core/test-utils/jest-setup.js\";\n * ```\n *\n * @defaultValue `false`\n */\n disabled: boolean;\n}\n\n// NOTE: Uses get/set for test mocking\n\nlet disabled = false;\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport const TRANSITION_CONFIG: TransitionConfig = {\n get disabled() {\n return disabled;\n },\n set disabled(nextDisabled: boolean) {\n disabled = nextDisabled;\n },\n};\n"],"names":["disabled","TRANSITION_CONFIG","nextDisabled"],"mappings":"AAAA;;CAEC,GAiBD,sCAAsC;AAEtC,IAAIA,WAAW;AAEf;;CAEC,GACD,OAAO,MAAMC,oBAAsC;IACjD,IAAID,YAAW;QACb,OAAOA;IACT;IACA,IAAIA,UAASE,aAAuB;QAClCF,WAAWE;IACb;AACF,EAAE"}
@@ -4,6 +4,7 @@ import { useSsr } from "../SsrProvider.js";
4
4
  import { useEnsuredRef } from "../useEnsuredRef.js";
5
5
  import { useIsomorphicLayoutEffect } from "../useIsomorphicLayoutEffect.js";
6
6
  import { getTransitionTimeout } from "./utils.js";
7
+ import { TRANSITION_CONFIG } from "./config.js";
7
8
  const INITIAL_STATE = {
8
9
  appearing: false,
9
10
  rendered: true,
@@ -118,10 +119,10 @@ const noop = ()=>{
118
119
  }, INITIAL_STATE, ()=>{
119
120
  let stage = "exited";
120
121
  if (transitionIn) {
121
- stage = appear ? "enter" : "entered";
122
+ stage = appear && !TRANSITION_CONFIG.disabled ? "enter" : "entered";
122
123
  }
123
124
  return {
124
- appearing: appear && transitionIn,
125
+ appearing: appear && transitionIn && !TRANSITION_CONFIG.disabled,
125
126
  rendered: !temporary || transitionIn,
126
127
  stage
127
128
  };
@@ -165,8 +166,12 @@ const noop = ()=>{
165
166
  let nextStage = stage;
166
167
  switch(stage){
167
168
  case "enter":
168
- onEnter(appearing);
169
- nextStage = "entering";
169
+ if (TRANSITION_CONFIG.disabled) {
170
+ nextStage = "entered";
171
+ } else {
172
+ onEnter(appearing);
173
+ nextStage = "entering";
174
+ }
170
175
  break;
171
176
  case "entering":
172
177
  onEntering(appearing);
@@ -177,8 +182,12 @@ const noop = ()=>{
177
182
  onEntered(appearing);
178
183
  break;
179
184
  case "exit":
180
- onExit();
181
- nextStage = "exiting";
185
+ if (TRANSITION_CONFIG.disabled) {
186
+ nextStage = "exited";
187
+ } else {
188
+ onExit();
189
+ nextStage = "exiting";
190
+ }
182
191
  break;
183
192
  case "exiting":
184
193
  onExiting();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/transition/useTransition.ts"],"sourcesContent":["\"use client\";\nimport { useEffect, useReducer, useRef, useState } from \"react\";\nimport { useSsr } from \"../SsrProvider.js\";\nimport { useEnsuredRef } from \"../useEnsuredRef.js\";\nimport { useIsomorphicLayoutEffect } from \"../useIsomorphicLayoutEffect.js\";\nimport type {\n TransitionHookOptions,\n TransitionHookReturnValue,\n TransitionStage,\n TransitionState,\n} from \"./types.js\";\nimport { getTransitionTimeout } from \"./utils.js\";\n\nconst INITIAL_STATE: TransitionState = {\n appearing: false,\n rendered: true,\n stage: \"exited\",\n};\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * You'll most likely want to use the {@link useCSSTransition} hook instead\n * since this is just a low-level hook that can be used to transition using\n * timeouts.\n *\n * @typeParam E - The HTMLElement type used or the ref required for the\n * transition.\n * @remarks \\@since 4.0.0\n */\nexport function useTransition<E extends HTMLElement>(\n options: TransitionHookOptions<E>\n): TransitionHookReturnValue<E> {\n const {\n nodeRef,\n timeout,\n transitionIn,\n reflow = false,\n temporary = false,\n appear = false,\n enter = true,\n exit = true,\n onEnter = noop,\n onEntering = noop,\n onEntered = noop,\n onExit = noop,\n onExiting = noop,\n onExited = noop,\n disablePortal: propDisablePortal,\n } = options;\n\n const configurationRef = useRef({\n timeout: getTransitionTimeout({ timeout, appear, enter, exit }),\n reflow,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n } as const);\n useIsomorphicLayoutEffect(() => {\n configurationRef.current = {\n timeout: getTransitionTimeout({ timeout, appear, enter, exit }),\n reflow,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n };\n }, [\n appear,\n enter,\n exit,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n reflow,\n timeout,\n ]);\n\n const ssr = useSsr();\n const [ref, refCallback] = useEnsuredRef<E>(nodeRef);\n const [disablePortal, setDisablePortal] = useState(ssr);\n const [state, dispatch] = useReducer(\n function reducer(\n state: TransitionState,\n action: TransitionStage | \"unmount\"\n ): TransitionState {\n const { appear, enter, exit } = configurationRef.current.timeout;\n const { appearing } = state;\n switch (action) {\n case \"enter\": {\n const duration = appearing ? appear : enter;\n return {\n stage: duration > 0 ? \"enter\" : \"entered\",\n rendered: true,\n appearing,\n };\n }\n case \"entering\":\n case \"entered\":\n return {\n stage: action,\n rendered: true,\n appearing,\n };\n case \"exit\": {\n const stage = exit > 0 ? \"exit\" : \"exited\";\n return {\n stage,\n rendered: !temporary || stage !== \"exited\",\n appearing: false,\n };\n }\n case \"exiting\":\n case \"exited\":\n return {\n stage: action,\n rendered: true,\n appearing: false,\n };\n case \"unmount\":\n if (state.stage === \"exited\" && !state.appearing && !state.rendered) {\n return state;\n }\n\n return {\n stage: \"exited\",\n rendered: false,\n appearing: false,\n };\n }\n },\n INITIAL_STATE,\n () => {\n let stage: TransitionStage = \"exited\";\n if (transitionIn) {\n stage = appear ? \"enter\" : \"entered\";\n }\n\n return {\n appearing: appear && transitionIn,\n rendered: !temporary || transitionIn,\n stage,\n };\n }\n );\n const { appearing, rendered, stage } = state;\n\n const isFirstRender = useRef(true);\n const isRehydrateAppear = useRef(ssr && !transitionIn);\n const defaultTransitionIn = useRef(transitionIn);\n useEffect(() => {\n const {\n timeout,\n reflow,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n } = configurationRef.current;\n let { onExited } = configurationRef.current;\n if (isFirstRender.current) {\n // The exited hook should **not** fire on first render since the element\n // was never in the DOM.\n isFirstRender.current = false;\n onExited = noop;\n }\n\n // if the transitionIn did not change between initial render and rehydration,\n // allow the enter transition to behave like normal.\n if (\n isRehydrateAppear.current &&\n !ssr &&\n !transitionIn &&\n !defaultTransitionIn.current\n ) {\n isRehydrateAppear.current = false;\n }\n\n // Cancel any exiting/exited transitions and instead immediately start the\n // enter transition\n if (transitionIn && stage.startsWith(\"exit\")) {\n const nextStage = isRehydrateAppear.current ? \"entered\" : \"enter\";\n dispatch(nextStage);\n return;\n }\n\n // Cancel any entering/entered transitions and instead immediately start the\n // exit transition\n if (!transitionIn && stage.startsWith(\"enter\")) {\n dispatch(\"exit\");\n return;\n }\n\n if (reflow && ref.current && stage !== \"exited\" && stage !== \"entered\") {\n // force reflow by accessing scrollTop\n ref.current.scrollTop;\n }\n\n let duration = 0;\n let nextStage: TransitionStage = stage;\n switch (stage) {\n case \"enter\":\n onEnter(appearing);\n nextStage = \"entering\";\n break;\n case \"entering\":\n onEntering(appearing);\n duration = timeout.enter;\n nextStage = \"entered\";\n break;\n case \"entered\":\n onEntered(appearing);\n break;\n case \"exit\":\n onExit();\n nextStage = \"exiting\";\n break;\n case \"exiting\":\n onExiting();\n duration = timeout.exit;\n nextStage = \"exited\";\n break;\n case \"exited\":\n onExited();\n setDisablePortal(false);\n break;\n }\n\n if (stage === nextStage) {\n // this is used to help catch changing the temporary prop.\n // not sure if I should really support that though...\n if (stage === \"exited\" && temporary) {\n dispatch(\"unmount\");\n }\n\n return;\n }\n\n // I used to rely on the `dispatch(\"unmount\")` above, but it seems like\n // there are some cases where re-rendering takes too long so the temporary\n // element flashes\n const dispatchStage =\n temporary && nextStage === \"exited\" ? \"unmount\" : nextStage;\n if (duration <= 0) {\n dispatch(dispatchStage);\n return;\n }\n\n const timer = window.setTimeout(() => {\n dispatch(dispatchStage);\n }, duration);\n\n return () => {\n window.clearTimeout(timer);\n };\n }, [appearing, ref, ssr, stage, temporary, transitionIn]);\n\n return {\n ref: refCallback,\n stage,\n rendered,\n appearing,\n transitionTo: dispatch,\n disablePortal: propDisablePortal || disablePortal,\n };\n}\n"],"names":["useEffect","useReducer","useRef","useState","useSsr","useEnsuredRef","useIsomorphicLayoutEffect","getTransitionTimeout","INITIAL_STATE","appearing","rendered","stage","noop","useTransition","options","nodeRef","timeout","transitionIn","reflow","temporary","appear","enter","exit","onEnter","onEntering","onEntered","onExit","onExiting","onExited","disablePortal","propDisablePortal","configurationRef","current","ssr","ref","refCallback","setDisablePortal","state","dispatch","reducer","action","duration","isFirstRender","isRehydrateAppear","defaultTransitionIn","startsWith","nextStage","scrollTop","dispatchStage","timer","window","setTimeout","clearTimeout","transitionTo"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/transition/useTransition.ts"],"sourcesContent":["\"use client\";\nimport { useEffect, useReducer, useRef, useState } from \"react\";\nimport { useSsr } from \"../SsrProvider.js\";\nimport { useEnsuredRef } from \"../useEnsuredRef.js\";\nimport { useIsomorphicLayoutEffect } from \"../useIsomorphicLayoutEffect.js\";\nimport type {\n TransitionHookOptions,\n TransitionHookReturnValue,\n TransitionStage,\n TransitionState,\n} from \"./types.js\";\nimport { getTransitionTimeout } from \"./utils.js\";\nimport { TRANSITION_CONFIG } from \"./config.js\";\n\nconst INITIAL_STATE: TransitionState = {\n appearing: false,\n rendered: true,\n stage: \"exited\",\n};\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * You'll most likely want to use the {@link useCSSTransition} hook instead\n * since this is just a low-level hook that can be used to transition using\n * timeouts.\n *\n * @typeParam E - The HTMLElement type used or the ref required for the\n * transition.\n * @remarks \\@since 4.0.0\n */\nexport function useTransition<E extends HTMLElement>(\n options: TransitionHookOptions<E>\n): TransitionHookReturnValue<E> {\n const {\n nodeRef,\n timeout,\n transitionIn,\n reflow = false,\n temporary = false,\n appear = false,\n enter = true,\n exit = true,\n onEnter = noop,\n onEntering = noop,\n onEntered = noop,\n onExit = noop,\n onExiting = noop,\n onExited = noop,\n disablePortal: propDisablePortal,\n } = options;\n\n const configurationRef = useRef({\n timeout: getTransitionTimeout({ timeout, appear, enter, exit }),\n reflow,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n } as const);\n useIsomorphicLayoutEffect(() => {\n configurationRef.current = {\n timeout: getTransitionTimeout({ timeout, appear, enter, exit }),\n reflow,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n };\n }, [\n appear,\n enter,\n exit,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n reflow,\n timeout,\n ]);\n\n const ssr = useSsr();\n const [ref, refCallback] = useEnsuredRef<E>(nodeRef);\n const [disablePortal, setDisablePortal] = useState(ssr);\n const [state, dispatch] = useReducer(\n function reducer(\n state: TransitionState,\n action: TransitionStage | \"unmount\"\n ): TransitionState {\n const { appear, enter, exit } = configurationRef.current.timeout;\n const { appearing } = state;\n switch (action) {\n case \"enter\": {\n const duration = appearing ? appear : enter;\n return {\n stage: duration > 0 ? \"enter\" : \"entered\",\n rendered: true,\n appearing,\n };\n }\n case \"entering\":\n case \"entered\":\n return {\n stage: action,\n rendered: true,\n appearing,\n };\n case \"exit\": {\n const stage = exit > 0 ? \"exit\" : \"exited\";\n return {\n stage,\n rendered: !temporary || stage !== \"exited\",\n appearing: false,\n };\n }\n case \"exiting\":\n case \"exited\":\n return {\n stage: action,\n rendered: true,\n appearing: false,\n };\n case \"unmount\":\n if (state.stage === \"exited\" && !state.appearing && !state.rendered) {\n return state;\n }\n\n return {\n stage: \"exited\",\n rendered: false,\n appearing: false,\n };\n }\n },\n INITIAL_STATE,\n () => {\n let stage: TransitionStage = \"exited\";\n if (transitionIn) {\n stage = appear && !TRANSITION_CONFIG.disabled ? \"enter\" : \"entered\";\n }\n\n return {\n appearing: appear && transitionIn && !TRANSITION_CONFIG.disabled,\n rendered: !temporary || transitionIn,\n stage,\n };\n }\n );\n const { appearing, rendered, stage } = state;\n\n const isFirstRender = useRef(true);\n const isRehydrateAppear = useRef(ssr && !transitionIn);\n const defaultTransitionIn = useRef(transitionIn);\n useEffect(() => {\n const {\n timeout,\n reflow,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n } = configurationRef.current;\n let { onExited } = configurationRef.current;\n if (isFirstRender.current) {\n // The exited hook should **not** fire on first render since the element\n // was never in the DOM.\n isFirstRender.current = false;\n onExited = noop;\n }\n\n // if the transitionIn did not change between initial render and rehydration,\n // allow the enter transition to behave like normal.\n if (\n isRehydrateAppear.current &&\n !ssr &&\n !transitionIn &&\n !defaultTransitionIn.current\n ) {\n isRehydrateAppear.current = false;\n }\n\n // Cancel any exiting/exited transitions and instead immediately start the\n // enter transition\n if (transitionIn && stage.startsWith(\"exit\")) {\n const nextStage = isRehydrateAppear.current ? \"entered\" : \"enter\";\n dispatch(nextStage);\n return;\n }\n\n // Cancel any entering/entered transitions and instead immediately start the\n // exit transition\n if (!transitionIn && stage.startsWith(\"enter\")) {\n dispatch(\"exit\");\n return;\n }\n\n if (reflow && ref.current && stage !== \"exited\" && stage !== \"entered\") {\n // force reflow by accessing scrollTop\n ref.current.scrollTop;\n }\n\n let duration = 0;\n let nextStage: TransitionStage = stage;\n switch (stage) {\n case \"enter\":\n if (TRANSITION_CONFIG.disabled) {\n nextStage = \"entered\";\n } else {\n onEnter(appearing);\n nextStage = \"entering\";\n }\n break;\n case \"entering\":\n onEntering(appearing);\n duration = timeout.enter;\n nextStage = \"entered\";\n break;\n case \"entered\":\n onEntered(appearing);\n break;\n case \"exit\":\n if (TRANSITION_CONFIG.disabled) {\n nextStage = \"exited\";\n } else {\n onExit();\n nextStage = \"exiting\";\n }\n break;\n case \"exiting\":\n onExiting();\n duration = timeout.exit;\n nextStage = \"exited\";\n break;\n case \"exited\":\n onExited();\n setDisablePortal(false);\n break;\n }\n\n if (stage === nextStage) {\n // this is used to help catch changing the temporary prop.\n // not sure if I should really support that though...\n if (stage === \"exited\" && temporary) {\n dispatch(\"unmount\");\n }\n\n return;\n }\n\n // I used to rely on the `dispatch(\"unmount\")` above, but it seems like\n // there are some cases where re-rendering takes too long so the temporary\n // element flashes\n const dispatchStage =\n temporary && nextStage === \"exited\" ? \"unmount\" : nextStage;\n if (duration <= 0) {\n dispatch(dispatchStage);\n return;\n }\n\n const timer = window.setTimeout(() => {\n dispatch(dispatchStage);\n }, duration);\n\n return () => {\n window.clearTimeout(timer);\n };\n }, [appearing, ref, ssr, stage, temporary, transitionIn]);\n\n return {\n ref: refCallback,\n stage,\n rendered,\n appearing,\n transitionTo: dispatch,\n disablePortal: propDisablePortal || disablePortal,\n };\n}\n"],"names":["useEffect","useReducer","useRef","useState","useSsr","useEnsuredRef","useIsomorphicLayoutEffect","getTransitionTimeout","TRANSITION_CONFIG","INITIAL_STATE","appearing","rendered","stage","noop","useTransition","options","nodeRef","timeout","transitionIn","reflow","temporary","appear","enter","exit","onEnter","onEntering","onEntered","onExit","onExiting","onExited","disablePortal","propDisablePortal","configurationRef","current","ssr","ref","refCallback","setDisablePortal","state","dispatch","reducer","action","duration","disabled","isFirstRender","isRehydrateAppear","defaultTransitionIn","startsWith","nextStage","scrollTop","dispatchStage","timer","window","setTimeout","clearTimeout","transitionTo"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type ReactElement } from "react";
2
- import { type RenderRecursiveItemsProps } from "../utils/RenderRecursively.jsx";
2
+ import { type RenderRecursiveItemsProps } from "../utils/RenderRecursively.js";
3
3
  import { type DefaultTreeItemNode, type TreeItemNode } from "./types.js";
4
4
  /**
5
5
  * **Client Component**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tree/DefaultTreeItemRenderer.tsx"],"sourcesContent":["import { type ReactElement } from \"react\";\nimport { type RenderRecursiveItemsProps } from \"../utils/RenderRecursively.jsx\";\nimport { TreeItem } from \"./TreeItem.js\";\nimport { type DefaultTreeItemNode, type TreeItemNode } from \"./types.js\";\n\n/**\n * **Client Component**\n *\n * A reasonable default for rendering tree items that will extract all the\n * `ListItemChildrenProps` from the item and attempt to pass them into the\n * `TreeItem`.\n *\n * Look at the `Tree` component for an example of creating a custom\n * implementation.\n *\n * @remarks \\@since 6.0.0\n */\nexport function DefaultTreeItemRenderer<\n T extends TreeItemNode = DefaultTreeItemNode,\n>(props: RenderRecursiveItemsProps<T>): ReactElement {\n const { item: _item, parents, children: childItems } = props;\n const item = props.item as DefaultTreeItemNode;\n\n const {\n itemId,\n to,\n href,\n disabled,\n className,\n contentClassName,\n leftAddon,\n leftAddonType,\n leftAddonPosition,\n leftAddonClassName,\n leftAddonForceWrap,\n rightAddon,\n rightAddonType,\n rightAddonPosition,\n rightAddonClassName,\n rightAddonForceWrap,\n disableLeftAddonCenteredMedia,\n disableRightAddonCenteredMedia,\n } = item;\n const children = item.name ?? item.children;\n\n return (\n <TreeItem\n to={to}\n href={href}\n depth={parents.length}\n childItems={childItems}\n className={className}\n contentClassName={contentClassName}\n itemId={itemId}\n disabled={disabled}\n leftAddon={leftAddon}\n leftAddonType={leftAddonType}\n leftAddonPosition={leftAddonPosition}\n leftAddonClassName={leftAddonClassName}\n leftAddonForceWrap={leftAddonForceWrap}\n rightAddon={rightAddon}\n rightAddonType={rightAddonType}\n rightAddonPosition={rightAddonPosition}\n rightAddonClassName={rightAddonClassName}\n rightAddonForceWrap={rightAddonForceWrap}\n disableLeftAddonCenteredMedia={disableLeftAddonCenteredMedia}\n disableRightAddonCenteredMedia={disableRightAddonCenteredMedia}\n >\n {children}\n </TreeItem>\n );\n}\n"],"names":["TreeItem","DefaultTreeItemRenderer","props","item","_item","parents","children","childItems","itemId","to","href","disabled","className","contentClassName","leftAddon","leftAddonType","leftAddonPosition","leftAddonClassName","leftAddonForceWrap","rightAddon","rightAddonType","rightAddonPosition","rightAddonClassName","rightAddonForceWrap","disableLeftAddonCenteredMedia","disableRightAddonCenteredMedia","name","depth","length"],"mappings":";AAEA,SAASA,QAAQ,QAAQ,gBAAgB;AAGzC;;;;;;;;;;;CAWC,GACD,OAAO,SAASC,wBAEdC,KAAmC;IACnC,MAAM,EAAEC,MAAMC,KAAK,EAAEC,OAAO,EAAEC,UAAUC,UAAU,EAAE,GAAGL;IACvD,MAAMC,OAAOD,MAAMC,IAAI;IAEvB,MAAM,EACJK,MAAM,EACNC,EAAE,EACFC,IAAI,EACJC,QAAQ,EACRC,SAAS,EACTC,gBAAgB,EAChBC,SAAS,EACTC,aAAa,EACbC,iBAAiB,EACjBC,kBAAkB,EAClBC,kBAAkB,EAClBC,UAAU,EACVC,cAAc,EACdC,kBAAkB,EAClBC,mBAAmB,EACnBC,mBAAmB,EACnBC,6BAA6B,EAC7BC,8BAA8B,EAC/B,GAAGtB;IACJ,MAAMG,WAAWH,KAAKuB,IAAI,IAAIvB,KAAKG,QAAQ;IAE3C,qBACE,KAACN;QACCS,IAAIA;QACJC,MAAMA;QACNiB,OAAOtB,QAAQuB,MAAM;QACrBrB,YAAYA;QACZK,WAAWA;QACXC,kBAAkBA;QAClBL,QAAQA;QACRG,UAAUA;QACVG,WAAWA;QACXC,eAAeA;QACfC,mBAAmBA;QACnBC,oBAAoBA;QACpBC,oBAAoBA;QACpBC,YAAYA;QACZC,gBAAgBA;QAChBC,oBAAoBA;QACpBC,qBAAqBA;QACrBC,qBAAqBA;QACrBC,+BAA+BA;QAC/BC,gCAAgCA;kBAE/BnB;;AAGP"}
1
+ {"version":3,"sources":["../../src/tree/DefaultTreeItemRenderer.tsx"],"sourcesContent":["import { type ReactElement } from \"react\";\nimport { type RenderRecursiveItemsProps } from \"../utils/RenderRecursively.js\";\nimport { TreeItem } from \"./TreeItem.js\";\nimport { type DefaultTreeItemNode, type TreeItemNode } from \"./types.js\";\n\n/**\n * **Client Component**\n *\n * A reasonable default for rendering tree items that will extract all the\n * `ListItemChildrenProps` from the item and attempt to pass them into the\n * `TreeItem`.\n *\n * Look at the `Tree` component for an example of creating a custom\n * implementation.\n *\n * @remarks \\@since 6.0.0\n */\nexport function DefaultTreeItemRenderer<\n T extends TreeItemNode = DefaultTreeItemNode,\n>(props: RenderRecursiveItemsProps<T>): ReactElement {\n const { item: _item, parents, children: childItems } = props;\n const item = props.item as DefaultTreeItemNode;\n\n const {\n itemId,\n to,\n href,\n disabled,\n className,\n contentClassName,\n leftAddon,\n leftAddonType,\n leftAddonPosition,\n leftAddonClassName,\n leftAddonForceWrap,\n rightAddon,\n rightAddonType,\n rightAddonPosition,\n rightAddonClassName,\n rightAddonForceWrap,\n disableLeftAddonCenteredMedia,\n disableRightAddonCenteredMedia,\n } = item;\n const children = item.name ?? item.children;\n\n return (\n <TreeItem\n to={to}\n href={href}\n depth={parents.length}\n childItems={childItems}\n className={className}\n contentClassName={contentClassName}\n itemId={itemId}\n disabled={disabled}\n leftAddon={leftAddon}\n leftAddonType={leftAddonType}\n leftAddonPosition={leftAddonPosition}\n leftAddonClassName={leftAddonClassName}\n leftAddonForceWrap={leftAddonForceWrap}\n rightAddon={rightAddon}\n rightAddonType={rightAddonType}\n rightAddonPosition={rightAddonPosition}\n rightAddonClassName={rightAddonClassName}\n rightAddonForceWrap={rightAddonForceWrap}\n disableLeftAddonCenteredMedia={disableLeftAddonCenteredMedia}\n disableRightAddonCenteredMedia={disableRightAddonCenteredMedia}\n >\n {children}\n </TreeItem>\n );\n}\n"],"names":["TreeItem","DefaultTreeItemRenderer","props","item","_item","parents","children","childItems","itemId","to","href","disabled","className","contentClassName","leftAddon","leftAddonType","leftAddonPosition","leftAddonClassName","leftAddonForceWrap","rightAddon","rightAddonType","rightAddonPosition","rightAddonClassName","rightAddonForceWrap","disableLeftAddonCenteredMedia","disableRightAddonCenteredMedia","name","depth","length"],"mappings":";AAEA,SAASA,QAAQ,QAAQ,gBAAgB;AAGzC;;;;;;;;;;;CAWC,GACD,OAAO,SAASC,wBAEdC,KAAmC;IACnC,MAAM,EAAEC,MAAMC,KAAK,EAAEC,OAAO,EAAEC,UAAUC,UAAU,EAAE,GAAGL;IACvD,MAAMC,OAAOD,MAAMC,IAAI;IAEvB,MAAM,EACJK,MAAM,EACNC,EAAE,EACFC,IAAI,EACJC,QAAQ,EACRC,SAAS,EACTC,gBAAgB,EAChBC,SAAS,EACTC,aAAa,EACbC,iBAAiB,EACjBC,kBAAkB,EAClBC,kBAAkB,EAClBC,UAAU,EACVC,cAAc,EACdC,kBAAkB,EAClBC,mBAAmB,EACnBC,mBAAmB,EACnBC,6BAA6B,EAC7BC,8BAA8B,EAC/B,GAAGtB;IACJ,MAAMG,WAAWH,KAAKuB,IAAI,IAAIvB,KAAKG,QAAQ;IAE3C,qBACE,KAACN;QACCS,IAAIA;QACJC,MAAMA;QACNiB,OAAOtB,QAAQuB,MAAM;QACrBrB,YAAYA;QACZK,WAAWA;QACXC,kBAAkBA;QAClBL,QAAQA;QACRG,UAAUA;QACVG,WAAWA;QACXC,eAAeA;QACfC,mBAAmBA;QACnBC,oBAAoBA;QACpBC,oBAAoBA;QACpBC,YAAYA;QACZC,gBAAgBA;QAChBC,oBAAoBA;QACpBC,qBAAqBA;QACrBC,qBAAqBA;QACrBC,+BAA+BA;QAC/BC,gCAAgCA;kBAE/BnB;;AAGP"}
@@ -1,5 +1,5 @@
1
1
  import { type ComponentType, type HTMLAttributes, type ReactElement, type ReactNode, type Ref } from "react";
2
- import { type CustomLinkComponent } from "../link/LinkProvider.js";
2
+ import { type CustomLinkComponent } from "../link/Link.js";
3
3
  import { type LabelRequiredForA11y } from "../types.js";
4
4
  import { type RenderRecursiveItemsProps } from "../utils/RenderRecursively.js";
5
5
  import { type TreeExpansionMode } from "./TreeProvider.js";
package/dist/tree/Tree.js CHANGED
@@ -1,6 +1,5 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { LinkProvider } from "../link/LinkProvider.js";
4
3
  import { List } from "../list/List.js";
5
4
  import { KeyboardMovementProvider } from "../movement/useKeyboardMovementProvider.js";
6
5
  import { useEnsuredId } from "../useEnsuredId.js";
@@ -71,7 +70,7 @@ import { useTreeMovement } from "./useTreeMovement.js";
71
70
  * - `getItemValue`
72
71
  * - `getItemProps`
73
72
  */ export function Tree(props) {
74
- const { id, data, sort = identity, rootId = null, treeRef, className, expandedIds, selectedIds, toggleTreeItemSelection, selectMultipleTreeItems, toggleTreeItemExpansion, expandMultipleTreeItems, onClick, onFocus, onKeyDown, renderer: TreeItemRenderer = DefaultTreeItemRenderer, multiSelect = false, expansionMode = "auto", expanderIcon, expanderLeft = false, linkComponent, disableTransition = false, temporaryChildItems = false, ...remaining } = props;
73
+ const { id, data, sort = identity, rootId = null, treeRef, className, expandedIds, selectedIds, toggleTreeItemSelection, selectMultipleTreeItems, toggleTreeItemExpansion, expandMultipleTreeItems, onClick, onFocus, onKeyDown, renderer: TreeItemRenderer = DefaultTreeItemRenderer, multiSelect = false, expansionMode = "auto", expanderIcon, expanderLeft = false, linkComponent = "a", disableTransition = false, temporaryChildItems = false, ...remaining } = props;
75
74
  const treeId = useEnsuredId(id, "tree");
76
75
  const { items, treeItemChildIds } = useTreeItems({
77
76
  data,
@@ -93,6 +92,7 @@ import { useTreeMovement } from "./useTreeMovement.js";
93
92
  data: data,
94
93
  rootId: rootId,
95
94
  multiSelect: multiSelect,
95
+ linkComponent: linkComponent,
96
96
  selectedIds: selectedIds,
97
97
  expandedIds: expandedIds,
98
98
  expanderIcon: expanderIcon,
@@ -105,25 +105,22 @@ import { useTreeMovement } from "./useTreeMovement.js";
105
105
  toggleTreeItemExpansion: toggleTreeItemExpansion,
106
106
  selectMultipleTreeItems: selectMultipleTreeItems,
107
107
  expandMultipleTreeItems: expandMultipleTreeItems,
108
- children: /*#__PURE__*/ _jsx(LinkProvider, {
109
- value: linkComponent,
110
- children: /*#__PURE__*/ _jsx(KeyboardMovementProvider, {
111
- value: movementContext,
112
- children: /*#__PURE__*/ _jsx(List, {
113
- ...remaining,
114
- ...movementProps,
115
- id: treeId,
116
- ref: treeRef,
117
- role: "tree",
118
- tabIndex: 0,
119
- className: tree({
120
- className
121
- }),
122
- children: /*#__PURE__*/ _jsx(RenderRecursively, {
123
- items: items,
124
- getItemKey: (item)=>item.itemId,
125
- render: TreeItemRenderer
126
- })
108
+ children: /*#__PURE__*/ _jsx(KeyboardMovementProvider, {
109
+ value: movementContext,
110
+ children: /*#__PURE__*/ _jsx(List, {
111
+ ...remaining,
112
+ ...movementProps,
113
+ id: treeId,
114
+ ref: treeRef,
115
+ role: "tree",
116
+ tabIndex: 0,
117
+ className: tree({
118
+ className
119
+ }),
120
+ children: /*#__PURE__*/ _jsx(RenderRecursively, {
121
+ items: items,
122
+ getItemKey: (item)=>item.itemId,
123
+ render: TreeItemRenderer
127
124
  })
128
125
  })
129
126
  })