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

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 (905) hide show
  1. package/.turbo/turbo-build.log +5 -5
  2. package/.turbo/turbo-lint.log +12 -0
  3. package/.turbo/turbo-test.log +166 -0
  4. package/.turbo/turbo-typecheck.log +4 -0
  5. package/CHANGELOG.md +57 -0
  6. package/coverage/clover.xml +3 -1118
  7. package/coverage/coverage-final.json +1 -7
  8. package/coverage/lcov-report/CircularProgress.tsx.html +799 -0
  9. package/coverage/lcov-report/Dialog.tsx.html +1309 -0
  10. package/coverage/lcov-report/DialogContent.tsx.html +178 -0
  11. package/coverage/lcov-report/DialogFooter.tsx.html +169 -0
  12. package/coverage/lcov-report/LinearProgress.tsx.html +658 -0
  13. package/coverage/lcov-report/MaterialIcon.tsx.html +36 -42
  14. package/coverage/lcov-report/MaterialSymbol.tsx.html +240 -222
  15. package/coverage/lcov-report/MenuItemInputToggle.tsx.html +979 -0
  16. package/coverage/lcov-report/MenuItemSeparator.tsx.html +223 -0
  17. package/coverage/lcov-report/MenuItemTextField.tsx.html +289 -0
  18. package/coverage/lcov-report/Switch.tsx.html +535 -0
  19. package/coverage/lcov-report/SwitchTrack.tsx.html +262 -0
  20. package/coverage/lcov-report/Table.tsx.html +457 -0
  21. package/coverage/lcov-report/TableCell.tsx.html +982 -0
  22. package/coverage/lcov-report/TableCheckbox.tsx.html +709 -0
  23. package/coverage/lcov-report/TableContainer.tsx.html +220 -0
  24. package/coverage/lcov-report/TableFooter.tsx.html +502 -0
  25. package/coverage/lcov-report/TableHeader.tsx.html +541 -0
  26. package/coverage/lcov-report/TableRadio.tsx.html +670 -0
  27. package/coverage/lcov-report/TableRow.tsx.html +289 -0
  28. package/coverage/lcov-report/Tooltip.tsx.html +98 -155
  29. package/coverage/lcov-report/avatar/Avatar.tsx.html +37 -31
  30. package/coverage/lcov-report/avatar/index.html +22 -7
  31. package/coverage/lcov-report/avatar/styles.ts.html +268 -0
  32. package/coverage/lcov-report/button/AsyncButton.tsx.html +217 -10
  33. package/coverage/lcov-report/button/Button.tsx.html +95 -83
  34. package/coverage/lcov-report/button/index.html +12 -12
  35. package/coverage/lcov-report/config.ts.html +33 -18
  36. package/coverage/lcov-report/cssUtils.ts.html +143 -65
  37. package/coverage/lcov-report/dialog/Dialog.tsx.html +170 -167
  38. package/coverage/lcov-report/dialog/DialogContent.tsx.html +178 -0
  39. package/coverage/lcov-report/dialog/DialogFooter.tsx.html +169 -0
  40. package/coverage/lcov-report/dialog/DialogHeader.tsx.html +148 -0
  41. package/coverage/lcov-report/dialog/DialogTitle.tsx.html +256 -0
  42. package/coverage/lcov-report/dialog/index.html +18 -33
  43. package/coverage/lcov-report/dialog/styles.ts.html +439 -0
  44. package/coverage/lcov-report/form/MenuItemInputToggle.tsx.html +36 -24
  45. package/coverage/lcov-report/form/MenuItemTextField.tsx.html +12 -9
  46. package/coverage/lcov-report/form/SliderValueTooltip.tsx.html +319 -0
  47. package/coverage/lcov-report/form/Switch.tsx.html +310 -385
  48. package/coverage/lcov-report/form/SwitchTrack.tsx.html +98 -71
  49. package/coverage/lcov-report/form/index.html +20 -245
  50. package/coverage/lcov-report/form/switchStyles.ts.html +172 -0
  51. package/coverage/lcov-report/form/useRadioGroup.ts.html +79 -79
  52. package/coverage/lcov-report/hoverMode/index.html +116 -0
  53. package/coverage/lcov-report/hoverMode/useHoverMode.ts.html +676 -0
  54. package/coverage/lcov-report/icon/FontIcon.tsx.html +37 -46
  55. package/coverage/lcov-report/icon/index.html +12 -12
  56. package/coverage/lcov-report/icon/styles.ts.html +41 -104
  57. package/coverage/lcov-report/iconConfig.tsx.html +973 -0
  58. package/coverage/lcov-report/index.html +11 -101
  59. package/coverage/lcov-report/link/Link.tsx.html +358 -0
  60. package/coverage/lcov-report/link/index.html +20 -20
  61. package/coverage/lcov-report/list/ListItemLink.tsx.html +29 -35
  62. package/coverage/lcov-report/list/index.html +8 -38
  63. package/coverage/lcov-report/materialConfig.ts.html +703 -0
  64. package/coverage/lcov-report/media-queries/appSize.ts.html +1 -1
  65. package/coverage/lcov-report/media-queries/index.html +10 -10
  66. package/coverage/lcov-report/menu/DropdownMenu.tsx.html +976 -0
  67. package/coverage/lcov-report/menu/Menu.tsx.html +111 -60
  68. package/coverage/lcov-report/menu/MenuConfigurationProvider.tsx.html +637 -0
  69. package/coverage/lcov-report/menu/MenuSheet.tsx.html +37 -13
  70. package/coverage/lcov-report/menu/index.html +35 -65
  71. package/coverage/lcov-report/menu/menuConfig.ts.html +118 -0
  72. package/coverage/lcov-report/progress/CircularProgress.tsx.html +799 -0
  73. package/coverage/lcov-report/progress/LinearProgress.tsx.html +100 -94
  74. package/coverage/lcov-report/progress/index.html +22 -7
  75. package/coverage/lcov-report/src/CoreProviders.tsx.html +20 -20
  76. package/coverage/lcov-report/src/NoSsr.tsx.html +1 -1
  77. package/coverage/lcov-report/src/SsrProvider.tsx.html +10 -10
  78. package/coverage/lcov-report/src/app-bar/AppBar.tsx.html +65 -65
  79. package/coverage/lcov-report/src/app-bar/AppBarTitle.tsx.html +1 -1
  80. package/coverage/lcov-report/src/app-bar/index.html +20 -5
  81. package/coverage/lcov-report/src/avatar/Avatar.tsx.html +36 -27
  82. package/coverage/lcov-report/src/avatar/index.html +22 -7
  83. package/coverage/lcov-report/src/avatar/styles.ts.html +77 -8
  84. package/coverage/lcov-report/src/badge/Badge.tsx.html +1 -1
  85. package/coverage/lcov-report/src/badge/index.html +1 -1
  86. package/coverage/lcov-report/src/box/Box.tsx.html +1 -1
  87. package/coverage/lcov-report/src/box/index.html +10 -25
  88. package/coverage/lcov-report/src/box/styles.ts.html +103 -49
  89. package/coverage/lcov-report/src/button/AsyncButton.tsx.html +833 -284
  90. package/coverage/lcov-report/src/button/Button.tsx.html +87 -87
  91. package/coverage/lcov-report/src/button/ButtonUnstyled.tsx.html +1 -1
  92. package/coverage/lcov-report/src/button/FloatingActionButton.tsx.html +39 -39
  93. package/coverage/lcov-report/src/button/buttonStyles.ts.html +59 -59
  94. package/coverage/lcov-report/src/button/buttonUnstyledStyles.ts.html +1 -1
  95. package/coverage/lcov-report/src/button/index.html +23 -8
  96. package/coverage/lcov-report/src/card/Card.tsx.html +1 -1
  97. package/coverage/lcov-report/src/card/CardContent.tsx.html +1 -1
  98. package/coverage/lcov-report/src/card/CardFooter.tsx.html +1 -1
  99. package/coverage/lcov-report/src/card/CardHeader.tsx.html +1 -1
  100. package/coverage/lcov-report/src/card/CardSubtitle.tsx.html +1 -1
  101. package/coverage/lcov-report/src/card/CardTitle.tsx.html +1 -1
  102. package/coverage/lcov-report/src/card/index.html +95 -5
  103. package/coverage/lcov-report/src/card/styles.ts.html +1 -1
  104. package/coverage/lcov-report/src/chip/Chip.tsx.html +1 -1
  105. package/coverage/lcov-report/src/chip/index.html +1 -1
  106. package/coverage/lcov-report/src/chip/styles.ts.html +1 -1
  107. package/coverage/lcov-report/src/cssUtils.ts.html +68 -59
  108. package/coverage/lcov-report/src/delegateEvent.ts.html +84 -84
  109. package/coverage/lcov-report/src/dialog/Dialog.tsx.html +158 -155
  110. package/coverage/lcov-report/src/dialog/DialogContainer.tsx.html +27 -27
  111. package/coverage/lcov-report/src/dialog/DialogContent.tsx.html +72 -72
  112. package/coverage/lcov-report/src/dialog/DialogFooter.tsx.html +14 -14
  113. package/coverage/lcov-report/src/dialog/DialogHeader.tsx.html +9 -9
  114. package/coverage/lcov-report/src/dialog/DialogTitle.tsx.html +124 -124
  115. package/coverage/lcov-report/src/dialog/FixedDialog.tsx.html +1 -1
  116. package/coverage/lcov-report/src/dialog/NestedDialogProvider.ts.html +3 -3
  117. package/coverage/lcov-report/src/dialog/index.html +21 -21
  118. package/coverage/lcov-report/src/dialog/styles.ts.html +61 -61
  119. package/coverage/lcov-report/src/divider/Divider.tsx.html +24 -24
  120. package/coverage/lcov-report/src/divider/index.html +21 -6
  121. package/coverage/lcov-report/src/divider/styles.ts.html +11 -11
  122. package/coverage/lcov-report/src/draggable/index.html +5 -5
  123. package/coverage/lcov-report/src/draggable/useDraggable.ts.html +322 -322
  124. package/coverage/lcov-report/src/draggable/utils.ts.html +81 -81
  125. package/coverage/lcov-report/src/expansion-panel/ExpansionList.tsx.html +1 -1
  126. package/coverage/lcov-report/src/expansion-panel/ExpansionPanel.tsx.html +1 -1
  127. package/coverage/lcov-report/src/expansion-panel/ExpansionPanelHeader.tsx.html +11 -20
  128. package/coverage/lcov-report/src/expansion-panel/index.html +25 -10
  129. package/coverage/lcov-report/src/expansion-panel/useExpansionList.ts.html +1 -1
  130. package/coverage/lcov-report/src/expansion-panel/useExpansionPanels.ts.html +1 -1
  131. package/coverage/lcov-report/src/focus/index.html +23 -23
  132. package/coverage/lcov-report/src/focus/useFocusContainer.ts.html +142 -121
  133. package/coverage/lcov-report/src/focus/utils.ts.html +37 -37
  134. package/coverage/lcov-report/src/form/Checkbox.tsx.html +1 -1
  135. package/coverage/lcov-report/src/form/Fieldset.tsx.html +1 -1
  136. package/coverage/lcov-report/src/form/FileInput.tsx.html +133 -139
  137. package/coverage/lcov-report/src/form/Form.tsx.html +1 -1
  138. package/coverage/lcov-report/src/form/FormMessage.tsx.html +126 -264
  139. package/coverage/lcov-report/src/form/FormMessageContainer.tsx.html +42 -45
  140. package/coverage/lcov-report/src/form/FormMessageCounter.tsx.html +1 -1
  141. package/coverage/lcov-report/src/form/InputToggle.tsx.html +7 -16
  142. package/coverage/lcov-report/src/form/InputToggleIcon.tsx.html +1 -1
  143. package/coverage/lcov-report/src/form/Label.tsx.html +102 -102
  144. package/coverage/lcov-report/src/form/Legend.tsx.html +1 -1
  145. package/coverage/lcov-report/src/form/MenuItemCheckbox.tsx.html +11 -5
  146. package/coverage/lcov-report/src/form/MenuItemFileInput.tsx.html +3 -3
  147. package/coverage/lcov-report/src/form/MenuItemInputToggle.tsx.html +21 -9
  148. package/coverage/lcov-report/src/form/MenuItemRadio.tsx.html +11 -5
  149. package/coverage/lcov-report/src/form/MenuItemSwitch.tsx.html +1 -1
  150. package/coverage/lcov-report/src/form/MenuItemTextField.tsx.html +13 -4
  151. package/coverage/lcov-report/src/form/NativeSelect.tsx.html +20 -5
  152. package/coverage/lcov-report/src/form/OptGroup.tsx.html +1 -1
  153. package/coverage/lcov-report/src/form/Option.tsx.html +4 -4
  154. package/coverage/lcov-report/src/form/Password.tsx.html +3 -3
  155. package/coverage/lcov-report/src/form/Radio.tsx.html +1 -1
  156. package/coverage/lcov-report/src/form/Select.tsx.html +1 -1
  157. package/coverage/lcov-report/src/form/SelectValue.tsx.html +1 -1
  158. package/coverage/lcov-report/src/form/Slider.tsx.html +129 -9
  159. package/coverage/lcov-report/src/form/SliderContainer.tsx.html +1 -1
  160. package/coverage/lcov-report/src/form/SliderMark.tsx.html +1 -1
  161. package/coverage/lcov-report/src/form/SliderMarkLabel.tsx.html +1 -1
  162. package/coverage/lcov-report/src/form/SliderThumb.tsx.html +43 -7
  163. package/coverage/lcov-report/src/form/SliderTrack.tsx.html +1 -1
  164. package/coverage/lcov-report/src/form/SliderValueMarks.tsx.html +11 -5
  165. package/coverage/lcov-report/src/form/SliderValueTooltip.tsx.html +2 -2
  166. package/coverage/lcov-report/src/form/Switch.tsx.html +310 -373
  167. package/coverage/lcov-report/src/form/SwitchTrack.tsx.html +99 -69
  168. package/coverage/lcov-report/src/form/TextArea.tsx.html +21 -9
  169. package/coverage/lcov-report/src/form/TextField.tsx.html +16 -10
  170. package/coverage/lcov-report/src/form/TextFieldAddon.tsx.html +14 -26
  171. package/coverage/lcov-report/src/form/TextFieldContainer.tsx.html +28 -10
  172. package/coverage/lcov-report/src/form/TextFieldContainerStyles.ts.html +17 -8
  173. package/coverage/lcov-report/src/form/fileUtils.ts.html +3 -3
  174. package/coverage/lcov-report/src/form/formConfig.ts.html +18 -18
  175. package/coverage/lcov-report/src/form/formMessageStyles.ts.html +40 -40
  176. package/coverage/lcov-report/src/form/index.html +14 -164
  177. package/coverage/lcov-report/src/form/inputToggleStyles.ts.html +1 -1
  178. package/coverage/lcov-report/src/form/nativeSelectStyles.ts.html +34 -7
  179. package/coverage/lcov-report/src/form/optionStyles.ts.html +1 -1
  180. package/coverage/lcov-report/src/form/passwordStyles.ts.html +1 -1
  181. package/coverage/lcov-report/src/form/selectStyles.ts.html +1 -1
  182. package/coverage/lcov-report/src/form/selectUtils.ts.html +6 -9
  183. package/coverage/lcov-report/src/form/sliderUtils.ts.html +20 -14
  184. package/coverage/lcov-report/src/form/switchStyles.ts.html +68 -68
  185. package/coverage/lcov-report/src/form/textAreaStyles.ts.html +3 -3
  186. package/coverage/lcov-report/src/form/textFieldStyles.ts.html +1 -1
  187. package/coverage/lcov-report/src/form/useCheckboxGroup.ts.html +2 -2
  188. package/coverage/lcov-report/src/form/useFileUpload.ts.html +28 -19
  189. package/coverage/lcov-report/src/form/useListboxProvider.ts.html +5 -8
  190. package/coverage/lcov-report/src/form/useNumberField.ts.html +10 -10
  191. package/coverage/lcov-report/src/form/useRadioGroup.ts.html +22 -7
  192. package/coverage/lcov-report/src/form/useRangeSlider.ts.html +3 -3
  193. package/coverage/lcov-report/src/form/useResizingTextArea.ts.html +523 -0
  194. package/coverage/lcov-report/src/form/useSlider.ts.html +2 -2
  195. package/coverage/lcov-report/src/form/useTextField.ts.html +32 -26
  196. package/coverage/lcov-report/src/form/utils.ts.html +2 -2
  197. package/coverage/lcov-report/src/form/validation.ts.html +2 -2
  198. package/coverage/lcov-report/src/hoverMode/index.html +1 -1
  199. package/coverage/lcov-report/src/hoverMode/useHoverMode.ts.html +95 -95
  200. package/coverage/lcov-report/src/hoverMode/useHoverModeProvider.ts.html +3 -3
  201. package/coverage/lcov-report/src/icon/FontIcon.tsx.html +34 -43
  202. package/coverage/lcov-report/src/icon/IconRotator.tsx.html +1 -1
  203. package/coverage/lcov-report/src/icon/MaterialIcon.tsx.html +36 -42
  204. package/coverage/lcov-report/src/icon/MaterialSymbol.tsx.html +240 -222
  205. package/coverage/lcov-report/src/icon/SVGIcon.tsx.html +1 -1
  206. package/coverage/lcov-report/src/icon/TextIconSpacing.tsx.html +33 -33
  207. package/coverage/lcov-report/src/icon/iconConfig.tsx.html +973 -0
  208. package/coverage/lcov-report/src/icon/index.html +149 -14
  209. package/coverage/lcov-report/src/icon/material.ts.html +748 -58
  210. package/coverage/lcov-report/src/icon/materialConfig.ts.html +703 -0
  211. package/coverage/lcov-report/src/icon/styles.ts.html +47 -110
  212. package/coverage/lcov-report/src/index.html +8 -8
  213. package/coverage/lcov-report/src/interaction/Ripple.tsx.html +60 -60
  214. package/coverage/lcov-report/src/interaction/RippleContainer.tsx.html +41 -47
  215. package/coverage/lcov-report/src/interaction/UserInteractionModeProvider.tsx.html +240 -240
  216. package/coverage/lcov-report/src/interaction/config.ts.html +7 -7
  217. package/coverage/lcov-report/src/interaction/index.html +100 -10
  218. package/coverage/lcov-report/src/interaction/useElementInteraction.tsx.html +146 -146
  219. package/coverage/lcov-report/src/interaction/useHigherContrastChildren.tsx.html +17 -17
  220. package/coverage/lcov-report/src/interaction/utils.ts.html +171 -171
  221. package/coverage/lcov-report/src/layout/LayoutAppBar.tsx.html +1 -1
  222. package/coverage/lcov-report/src/layout/LayoutNav.tsx.html +60 -60
  223. package/coverage/lcov-report/src/layout/LayoutWindowSplitter.tsx.html +1 -1
  224. package/coverage/lcov-report/src/layout/Main.tsx.html +1 -1
  225. package/coverage/lcov-report/src/layout/index.html +200 -5
  226. package/coverage/lcov-report/src/layout/layoutNavStyles.ts.html +5 -5
  227. package/coverage/lcov-report/src/layout/layoutWindowSplitterStyles.ts.html +1 -1
  228. package/coverage/lcov-report/src/layout/mainStyles.ts.html +1 -1
  229. package/coverage/lcov-report/src/layout/useExpandableLayout.ts.html +1 -1
  230. package/coverage/lcov-report/src/layout/useHorizontalLayoutTransition.ts.html +1 -1
  231. package/coverage/lcov-report/src/layout/useLayoutAppBarHeight.ts.html +1 -1
  232. package/coverage/lcov-report/src/layout/useLayoutTree.ts.html +1 -1
  233. package/coverage/lcov-report/src/layout/useLayoutWindowSplitter.ts.html +1 -1
  234. package/coverage/lcov-report/src/layout/useMainTabIndex.ts.html +1 -1
  235. package/coverage/lcov-report/src/layout/useResizableLayout.ts.html +1 -1
  236. package/coverage/lcov-report/src/layout/useTemporaryLayout.ts.html +3 -3
  237. package/coverage/lcov-report/src/link/Link.tsx.html +39 -9
  238. package/coverage/lcov-report/src/link/SkipToMainContent.tsx.html +1 -1
  239. package/coverage/lcov-report/src/link/index.html +16 -16
  240. package/coverage/lcov-report/src/link/styles.ts.html +1 -1
  241. package/coverage/lcov-report/src/list/List.tsx.html +33 -33
  242. package/coverage/lcov-report/src/list/ListItem.tsx.html +534 -534
  243. package/coverage/lcov-report/src/list/ListItemAddon.tsx.html +33 -33
  244. package/coverage/lcov-report/src/list/ListItemChildren.tsx.html +77 -77
  245. package/coverage/lcov-report/src/list/ListItemLink.tsx.html +2 -2
  246. package/coverage/lcov-report/src/list/ListItemText.tsx.html +35 -35
  247. package/coverage/lcov-report/src/list/ListSubheader.tsx.html +1 -1
  248. package/coverage/lcov-report/src/list/getListItemHeight.ts.html +33 -33
  249. package/coverage/lcov-report/src/list/index.html +128 -8
  250. package/coverage/lcov-report/src/list/listItemStyles.ts.html +1 -1
  251. package/coverage/lcov-report/src/media-queries/AppSizeProvider.tsx.html +59 -59
  252. package/coverage/lcov-report/src/media-queries/appSize.ts.html +1 -1
  253. package/coverage/lcov-report/src/media-queries/index.html +20 -5
  254. package/coverage/lcov-report/src/media-queries/useMediaQuery.ts.html +24 -24
  255. package/coverage/lcov-report/src/menu/DropdownMenu.tsx.html +73 -16
  256. package/coverage/lcov-report/src/menu/Menu.tsx.html +66 -33
  257. package/coverage/lcov-report/src/menu/MenuBar.tsx.html +1 -1
  258. package/coverage/lcov-report/src/menu/MenuButton.tsx.html +3 -3
  259. package/coverage/lcov-report/src/menu/MenuConfigurationProvider.tsx.html +1 -1
  260. package/coverage/lcov-report/src/menu/MenuItem.tsx.html +1 -1
  261. package/coverage/lcov-report/src/menu/MenuItemButton.tsx.html +3 -3
  262. package/coverage/lcov-report/src/menu/MenuItemGroup.tsx.html +1 -1
  263. package/coverage/lcov-report/src/menu/MenuItemSeparator.tsx.html +6 -36
  264. package/coverage/lcov-report/src/menu/MenuSheet.tsx.html +34 -7
  265. package/coverage/lcov-report/src/menu/MenuVisibilityProvider.tsx.html +1 -1
  266. package/coverage/lcov-report/src/menu/MenuWidget.tsx.html +1 -1
  267. package/coverage/lcov-report/src/menu/MenuWidgetKeyboardProvider.tsx.html +1 -1
  268. package/coverage/lcov-report/src/menu/index.html +69 -24
  269. package/coverage/lcov-report/src/menu/useContextMenu.ts.html +1 -1
  270. package/coverage/lcov-report/src/menu/useMenuBarProvider.ts.html +1 -1
  271. package/coverage/lcov-report/src/menu/utils.ts.html +10 -10
  272. package/coverage/lcov-report/src/movement/constants.ts.html +1 -1
  273. package/coverage/lcov-report/src/movement/findMatchIndex.ts.html +1 -1
  274. package/coverage/lcov-report/src/movement/index.html +53 -8
  275. package/coverage/lcov-report/src/movement/useKeyboardMovementProvider.ts.html +92 -92
  276. package/coverage/lcov-report/src/movement/utils.ts.html +1 -1
  277. package/coverage/lcov-report/src/overlay/Overlay.tsx.html +64 -64
  278. package/coverage/lcov-report/src/overlay/index.html +1 -1
  279. package/coverage/lcov-report/src/overlay/overlayStyles.ts.html +28 -28
  280. package/coverage/lcov-report/src/portal/Portal.tsx.html +9 -9
  281. package/coverage/lcov-report/src/portal/PortalContainerProvider.tsx.html +29 -29
  282. package/coverage/lcov-report/src/portal/index.html +20 -5
  283. package/coverage/lcov-report/src/positioning/constants.ts.html +1 -1
  284. package/coverage/lcov-report/src/positioning/createHorizontalPosition.ts.html +63 -63
  285. package/coverage/lcov-report/src/positioning/createVerticalPosition.ts.html +65 -65
  286. package/coverage/lcov-report/src/positioning/getFixedPosition.ts.html +94 -94
  287. package/coverage/lcov-report/src/positioning/index.html +70 -10
  288. package/coverage/lcov-report/src/positioning/useFixedPositioning.ts.html +200 -200
  289. package/coverage/lcov-report/src/positioning/utils.ts.html +111 -111
  290. package/coverage/lcov-report/src/progress/CircularProgress.tsx.html +501 -456
  291. package/coverage/lcov-report/src/progress/LinearProgress.tsx.html +419 -338
  292. package/coverage/lcov-report/src/progress/getProgressA11y.ts.html +1 -1
  293. package/coverage/lcov-report/src/progress/index.html +32 -32
  294. package/coverage/lcov-report/src/responsive-item/ResponsiveItemContainer.tsx.html +1 -1
  295. package/coverage/lcov-report/src/responsive-item/ResponsiveItemOverlay.tsx.html +1 -1
  296. package/coverage/lcov-report/src/responsive-item/index.html +20 -5
  297. package/coverage/lcov-report/src/responsive-item/styles.ts.html +1 -1
  298. package/coverage/lcov-report/src/scroll/ScrollLock.tsx.html +1 -1
  299. package/coverage/lcov-report/src/scroll/getScrollbarWidth.ts.html +25 -25
  300. package/coverage/lcov-report/src/scroll/index.html +5 -5
  301. package/coverage/lcov-report/src/scroll/useScrollLock.ts.html +27 -27
  302. package/coverage/lcov-report/src/segmented-button/SegmentedButton.tsx.html +4 -4
  303. package/coverage/lcov-report/src/segmented-button/SegmentedButtonContainer.tsx.html +29 -8
  304. package/coverage/lcov-report/src/segmented-button/index.html +50 -5
  305. package/coverage/lcov-report/src/segmented-button/segmentedButtonContainerStyles.ts.html +15 -6
  306. package/coverage/lcov-report/src/segmented-button/segmentedButtonStyles.ts.html +1 -1
  307. package/coverage/lcov-report/src/sheet/Sheet.tsx.html +1 -1
  308. package/coverage/lcov-report/src/sheet/index.html +20 -5
  309. package/coverage/lcov-report/src/sheet/styles.ts.html +28 -28
  310. package/coverage/lcov-report/src/snackbar/DefaultToastRenderer.tsx.html +8 -5
  311. package/coverage/lcov-report/src/snackbar/Snackbar.tsx.html +7 -133
  312. package/coverage/lcov-report/src/snackbar/Toast.tsx.html +2 -2
  313. package/coverage/lcov-report/src/snackbar/ToastActionButton.tsx.html +1 -1
  314. package/coverage/lcov-report/src/snackbar/ToastCloseButton.tsx.html +3 -3
  315. package/coverage/lcov-report/src/snackbar/ToastContent.tsx.html +7 -115
  316. package/coverage/lcov-report/src/snackbar/ToastManager.tsx.html +1783 -0
  317. package/coverage/lcov-report/src/snackbar/ToastManagerProvider.tsx.html +16 -1696
  318. package/coverage/lcov-report/src/snackbar/index.html +159 -9
  319. package/coverage/lcov-report/src/snackbar/snackbarStyles.ts.html +214 -0
  320. package/coverage/lcov-report/src/snackbar/toastContentStyles.ts.html +196 -0
  321. package/coverage/lcov-report/src/snackbar/toastStyles.ts.html +1 -1
  322. package/coverage/lcov-report/src/snackbar/useCurrentToastActions.ts.html +1 -1
  323. package/coverage/lcov-report/src/suspense/CircularProgressSuspense.tsx.html +57 -6
  324. package/coverage/lcov-report/src/suspense/NullSuspense.tsx.html +1 -1
  325. package/coverage/lcov-report/src/suspense/index.html +7 -22
  326. package/coverage/lcov-report/src/table/Table.tsx.html +1 -1
  327. package/coverage/lcov-report/src/table/TableBody.tsx.html +1 -1
  328. package/coverage/lcov-report/src/table/TableCell.tsx.html +20 -35
  329. package/coverage/lcov-report/src/table/TableCellContent.tsx.html +2 -2
  330. package/coverage/lcov-report/src/table/TableCheckbox.tsx.html +1 -1
  331. package/coverage/lcov-report/src/table/TableConfigurationProvider.tsx.html +6 -12
  332. package/coverage/lcov-report/src/table/TableContainer.tsx.html +1 -1
  333. package/coverage/lcov-report/src/table/TableContainerProvider.tsx.html +1 -1
  334. package/coverage/lcov-report/src/table/TableFooter.tsx.html +1 -1
  335. package/coverage/lcov-report/src/table/TableHeader.tsx.html +1 -1
  336. package/coverage/lcov-report/src/table/TableRow.tsx.html +1 -1
  337. package/coverage/lcov-report/src/table/index.html +113 -8
  338. package/coverage/lcov-report/src/tabs/Tab.tsx.html +69 -69
  339. package/coverage/lcov-report/src/tabs/TabList.tsx.html +92 -92
  340. package/coverage/lcov-report/src/tabs/TabListScrollButton.tsx.html +61 -61
  341. package/coverage/lcov-report/src/tabs/index.html +143 -8
  342. package/coverage/lcov-report/src/tabs/tabIndicatorStyles.ts.html +157 -0
  343. package/coverage/lcov-report/src/tabs/tabListScrollButtonStyles.ts.html +226 -0
  344. package/coverage/lcov-report/src/tabs/tabListStyles.ts.html +241 -0
  345. package/coverage/lcov-report/src/tabs/tabStyles.ts.html +17 -17
  346. package/coverage/lcov-report/src/tabs/useTabList.ts.html +94 -94
  347. package/coverage/lcov-report/src/tabs/useTabs.ts.html +54 -54
  348. package/coverage/lcov-report/src/tabs/utils.ts.html +3 -3
  349. package/coverage/lcov-report/src/test-utils/IntersectionObserver.ts.html +1 -1
  350. package/coverage/lcov-report/src/test-utils/ResizeObserver.ts.html +1 -1
  351. package/coverage/lcov-report/src/test-utils/data-testid.ts.html +100 -0
  352. package/coverage/lcov-report/src/test-utils/drag.ts.html +1 -1
  353. package/coverage/lcov-report/src/test-utils/index.html +114 -9
  354. package/coverage/lcov-report/src/test-utils/jest-setup.ts.html +21 -9
  355. package/coverage/lcov-report/src/test-utils/matchMedia.ts.html +4 -4
  356. package/coverage/lcov-report/src/test-utils/polyfills/IntersectionObserver.ts.html +4 -4
  357. package/coverage/lcov-report/src/test-utils/polyfills/ResizeObserver.ts.html +3 -3
  358. package/coverage/lcov-report/src/test-utils/polyfills/index.html +1 -1
  359. package/coverage/lcov-report/src/test-utils/polyfills/matchMedia.ts.html +6 -6
  360. package/coverage/lcov-report/src/test-utils/polyfills/offsetParent.ts.html +14 -14
  361. package/coverage/lcov-report/src/test-utils/polyfills/scrollIntoView.ts.html +5 -5
  362. package/coverage/lcov-report/src/test-utils/render.tsx.html +21 -21
  363. package/coverage/lcov-report/src/test-utils/timers.ts.html +1 -1
  364. package/coverage/lcov-report/src/theme/LocalStorageColorSchemeProvider.tsx.html +1 -1
  365. package/coverage/lcov-report/src/theme/ThemeProvider.tsx.html +22 -4
  366. package/coverage/lcov-report/src/theme/colors.ts.html +1 -1
  367. package/coverage/lcov-report/src/theme/cssVars.ts.html +1 -1
  368. package/coverage/lcov-report/src/theme/index.html +71 -11
  369. package/coverage/lcov-report/src/theme/useCSSVariables.ts.html +1 -1
  370. package/coverage/lcov-report/src/theme/useColorScheme.ts.html +1 -1
  371. package/coverage/lcov-report/src/theme/useColorSchemeMetaTag.ts.html +1 -1
  372. package/coverage/lcov-report/src/theme/useColorSchemeProvider.ts.html +1 -1
  373. package/coverage/lcov-report/src/theme/usePrefersColorScheme.ts.html +1 -1
  374. package/coverage/lcov-report/src/theme/utils.ts.html +58 -58
  375. package/coverage/lcov-report/src/tooltip/Tooltip.tsx.html +98 -74
  376. package/coverage/lcov-report/src/tooltip/TooltipHoverModeProvider.tsx.html +60 -6
  377. package/coverage/lcov-report/src/tooltip/constants.ts.html +1 -1
  378. package/coverage/lcov-report/src/tooltip/index.html +72 -27
  379. package/coverage/lcov-report/src/tooltip/tooltipStyles.ts.html +18 -18
  380. package/coverage/lcov-report/src/tooltip/useOverflowTooltip.ts.html +196 -196
  381. package/coverage/lcov-report/src/tooltip/useTooltip.ts.html +511 -211
  382. package/coverage/lcov-report/src/tooltip/useTooltipPosition.ts.html +29 -29
  383. package/coverage/lcov-report/src/tooltip/utils.ts.html +23 -23
  384. package/coverage/lcov-report/src/transition/CSSTransition.tsx.html +1 -1
  385. package/coverage/lcov-report/src/transition/Collapse.tsx.html +1 -1
  386. package/coverage/lcov-report/src/transition/CrossFade.tsx.html +1 -1
  387. package/coverage/lcov-report/src/transition/ScaleTransition.tsx.html +1 -1
  388. package/coverage/lcov-report/src/transition/SkeletonPlaceholder.tsx.html +1 -1
  389. package/coverage/lcov-report/src/transition/Slide.tsx.html +46 -46
  390. package/coverage/lcov-report/src/transition/SlideContainer.tsx.html +1 -1
  391. package/coverage/lcov-report/src/transition/collapseStyles.ts.html +13 -13
  392. package/coverage/lcov-report/src/transition/config.ts.html +187 -0
  393. package/coverage/lcov-report/src/transition/index.html +295 -10
  394. package/coverage/lcov-report/src/transition/maxWidthTransition.ts.html +1 -1
  395. package/coverage/lcov-report/src/transition/useCSSTransition.ts.html +69 -69
  396. package/coverage/lcov-report/src/transition/useCarousel.ts.html +1 -1
  397. package/coverage/lcov-report/src/transition/useCollapseTransition.ts.html +99 -99
  398. package/coverage/lcov-report/src/transition/useCrossFadeTransition.ts.html +1 -1
  399. package/coverage/lcov-report/src/transition/useMaxWidthTransition.ts.html +1 -1
  400. package/coverage/lcov-report/src/transition/useScaleTransition.ts.html +18 -18
  401. package/coverage/lcov-report/src/transition/useSkeletonPlaceholder.ts.html +1 -1
  402. package/coverage/lcov-report/src/transition/useSlideTransition.ts.html +20 -20
  403. package/coverage/lcov-report/src/transition/useTransition.ts.html +277 -250
  404. package/coverage/lcov-report/src/transition/utils.ts.html +68 -68
  405. package/coverage/lcov-report/src/tree/DefaultTreeItemRenderer.tsx.html +2 -2
  406. package/coverage/lcov-report/src/tree/Tree.tsx.html +24 -36
  407. package/coverage/lcov-report/src/tree/TreeGroup.tsx.html +45 -45
  408. package/coverage/lcov-report/src/tree/TreeItem.tsx.html +213 -216
  409. package/coverage/lcov-report/src/tree/TreeItemExpander.tsx.html +3 -3
  410. package/coverage/lcov-report/src/tree/TreeProvider.tsx.html +29 -11
  411. package/coverage/lcov-report/src/tree/index.html +114 -9
  412. package/coverage/lcov-report/src/tree/styles.ts.html +1 -1
  413. package/coverage/lcov-report/src/tree/useTree.ts.html +1 -1
  414. package/coverage/lcov-report/src/tree/useTreeExpansion.ts.html +1 -1
  415. package/coverage/lcov-report/src/tree/useTreeItems.ts.html +10 -13
  416. package/coverage/lcov-report/src/tree/useTreeMovement.ts.html +1 -1
  417. package/coverage/lcov-report/src/tree/useTreeSelection.ts.html +1 -1
  418. package/coverage/lcov-report/src/tree/utils.ts.html +1 -1
  419. package/coverage/lcov-report/src/typography/SrOnly.tsx.html +26 -26
  420. package/coverage/lcov-report/src/typography/TextContainer.tsx.html +1 -1
  421. package/coverage/lcov-report/src/typography/Typography.tsx.html +71 -71
  422. package/coverage/lcov-report/src/typography/WritingDirectionProvider.tsx.html +75 -75
  423. package/coverage/lcov-report/src/typography/index.html +64 -19
  424. package/coverage/lcov-report/src/useAsyncAction.ts.html +25 -25
  425. package/coverage/lcov-report/src/useDebouncedFunction.ts.html +1 -1
  426. package/coverage/lcov-report/src/useDropzone.ts.html +1 -1
  427. package/coverage/lcov-report/src/useEnsuredId.ts.html +8 -8
  428. package/coverage/lcov-report/src/useEnsuredRef.ts.html +22 -19
  429. package/coverage/lcov-report/src/useEnsuredState.ts.html +18 -18
  430. package/coverage/lcov-report/src/useHtmlClassName.ts.html +1 -1
  431. package/coverage/lcov-report/src/useIntersectionObserver.ts.html +32 -32
  432. package/coverage/lcov-report/src/useIsomorphicLayoutEffect.ts.html +1 -1
  433. package/coverage/lcov-report/src/useLocalStorage.ts.html +225 -225
  434. package/coverage/lcov-report/src/useOrientation.ts.html +32 -32
  435. package/coverage/lcov-report/src/usePageInactive.ts.html +25 -25
  436. package/coverage/lcov-report/src/useResizeListener.ts.html +1 -1
  437. package/coverage/lcov-report/src/useResizeObserver.ts.html +28 -28
  438. package/coverage/lcov-report/src/useThrottledFunction.ts.html +1 -1
  439. package/coverage/lcov-report/src/useToggle.ts.html +18 -18
  440. package/coverage/lcov-report/src/useUnmounted.ts.html +11 -11
  441. package/coverage/lcov-report/src/useWindowSize.ts.html +1 -1
  442. package/coverage/lcov-report/src/utils/RenderRecursively.tsx.html +1 -1
  443. package/coverage/lcov-report/src/utils/alphaNumericSort.ts.html +1 -1
  444. package/coverage/lcov-report/src/utils/applyRef.ts.html +11 -11
  445. package/coverage/lcov-report/src/utils/bem.ts.html +50 -50
  446. package/coverage/lcov-report/src/utils/filters.ts.html +1 -1
  447. package/coverage/lcov-report/src/utils/getClientPosition.ts.html +1 -1
  448. package/coverage/lcov-report/src/utils/getPercentage.ts.html +36 -36
  449. package/coverage/lcov-report/src/utils/getRangeDefaultValue.ts.html +1 -1
  450. package/coverage/lcov-report/src/utils/getRangeSteps.ts.html +1 -1
  451. package/coverage/lcov-report/src/utils/identity.ts.html +1 -1
  452. package/coverage/lcov-report/src/utils/index.html +212 -17
  453. package/coverage/lcov-report/src/utils/isElementVisible.ts.html +14 -14
  454. package/coverage/lcov-report/src/utils/loop.ts.html +1 -1
  455. package/coverage/lcov-report/src/utils/nearest.ts.html +1 -1
  456. package/coverage/lcov-report/src/utils/parseCssLengthUnit.ts.html +41 -41
  457. package/coverage/lcov-report/src/utils/randomInt.ts.html +1 -1
  458. package/coverage/lcov-report/src/utils/wait.ts.html +1 -1
  459. package/coverage/lcov-report/src/utils/withinRange.ts.html +1 -1
  460. package/coverage/lcov-report/src/window-splitter/WindowSplitter.tsx.html +1 -1
  461. package/coverage/lcov-report/src/window-splitter/index.html +1 -1
  462. package/coverage/lcov-report/src/window-splitter/useWindowSplitter.ts.html +1 -1
  463. package/coverage/lcov-report/styles.ts.html +134 -320
  464. package/coverage/lcov-report/switchStyles.ts.html +172 -0
  465. package/coverage/lcov-report/table/Table.tsx.html +526 -0
  466. package/coverage/lcov-report/table/TableBody.tsx.html +280 -0
  467. package/coverage/lcov-report/table/TableCell.tsx.html +159 -168
  468. package/coverage/lcov-report/table/TableCheckbox.tsx.html +10 -13
  469. package/coverage/lcov-report/table/TableRadio.tsx.html +670 -0
  470. package/coverage/lcov-report/table/TableRow.tsx.html +370 -0
  471. package/coverage/lcov-report/table/index.html +62 -32
  472. package/coverage/lcov-report/tableCellStyles.ts.html +334 -0
  473. package/coverage/lcov-report/tableContainerStyles.ts.html +142 -0
  474. package/coverage/lcov-report/tableFooterStyles.ts.html +157 -0
  475. package/coverage/lcov-report/tableHeaderStyles.ts.html +163 -0
  476. package/coverage/lcov-report/tableRowStyles.ts.html +169 -0
  477. package/coverage/lcov-report/tableStyles.ts.html +157 -0
  478. package/coverage/lcov-report/tabs/Tab.tsx.html +502 -0
  479. package/coverage/lcov-report/tabs/TabList.tsx.html +796 -0
  480. package/coverage/lcov-report/tabs/index.html +62 -17
  481. package/coverage/lcov-report/tabs/useTabs.ts.html +1567 -0
  482. package/coverage/lcov-report/tabs/utils.ts.html +337 -0
  483. package/coverage/lcov-report/test-utils/index.html +20 -20
  484. package/coverage/lcov-report/test-utils/jest-setup.ts.html +124 -0
  485. package/coverage/lcov-report/tooltip/Tooltip.tsx.html +98 -74
  486. package/coverage/lcov-report/tooltip/TooltipHoverModeProvider.tsx.html +167 -11
  487. package/coverage/lcov-report/tooltip/constants.ts.html +1 -1
  488. package/coverage/lcov-report/tooltip/index.html +32 -17
  489. package/coverage/lcov-report/tooltip/tooltipStyles.ts.html +181 -0
  490. package/coverage/lcov-report/tooltip/useTooltip.ts.html +490 -190
  491. package/coverage/lcov-report/tooltipStyles.ts.html +181 -0
  492. package/coverage/lcov-report/transition/config.ts.html +187 -0
  493. package/coverage/lcov-report/transition/index.html +9 -24
  494. package/coverage/lcov-report/transition/useTransition.ts.html +943 -0
  495. package/coverage/lcov-report/tree/Tree.tsx.html +24 -36
  496. package/coverage/lcov-report/tree/TreeItem.tsx.html +213 -216
  497. package/coverage/lcov-report/tree/TreeProvider.tsx.html +55 -10
  498. package/coverage/lcov-report/tree/index.html +14 -59
  499. package/coverage/lcov-report/typography/WritingDirectionProvider.tsx.html +781 -0
  500. package/coverage/lcov-report/typography/index.html +8 -8
  501. package/coverage/lcov-report/useTooltip.ts.html +651 -375
  502. package/coverage/lcov-report/useTransition.ts.html +934 -0
  503. package/coverage/lcov-report/utils/index.html +24 -39
  504. package/coverage/lcov-report/utils/isElementVisible.ts.html +14 -14
  505. package/coverage/lcov-report/utils/parseCssLengthUnit.ts.html +19 -19
  506. package/coverage/lcov.info +0 -1176
  507. package/dist/_core.scss +5 -1
  508. package/dist/avatar/Avatar.d.ts +2 -15
  509. package/dist/avatar/Avatar.js +3 -2
  510. package/dist/avatar/Avatar.js.map +1 -1
  511. package/dist/avatar/_avatar.scss +4 -2
  512. package/dist/avatar/styles.d.ts +20 -2
  513. package/dist/avatar/styles.js +4 -1
  514. package/dist/avatar/styles.js.map +1 -1
  515. package/dist/button/AsyncButton.d.ts +29 -0
  516. package/dist/button/AsyncButton.js +14 -1
  517. package/dist/button/AsyncButton.js.map +1 -1
  518. package/dist/chip/_chip.scss +0 -16
  519. package/dist/chip/styles.d.ts +1 -1
  520. package/dist/chip/styles.js +3 -4
  521. package/dist/chip/styles.js.map +1 -1
  522. package/dist/cssUtils.d.ts +1 -0
  523. package/dist/cssUtils.js +1 -1
  524. package/dist/cssUtils.js.map +1 -1
  525. package/dist/dialog/Dialog.d.ts +1 -1
  526. package/dist/dialog/Dialog.js +2 -1
  527. package/dist/dialog/Dialog.js.map +1 -1
  528. package/dist/focus/useFocusContainer.d.ts +8 -8
  529. package/dist/focus/useFocusContainer.js +11 -10
  530. package/dist/focus/useFocusContainer.js.map +1 -1
  531. package/dist/form/MenuItemInputToggle.js +2 -2
  532. package/dist/form/MenuItemInputToggle.js.map +1 -1
  533. package/dist/form/MenuItemTextField.d.ts +2 -0
  534. package/dist/form/MenuItemTextField.js.map +1 -1
  535. package/dist/form/Slider.d.ts +41 -5
  536. package/dist/form/Slider.js +2 -1
  537. package/dist/form/Slider.js.map +1 -1
  538. package/dist/form/SliderThumb.d.ts +7 -2
  539. package/dist/form/SliderThumb.js +4 -2
  540. package/dist/form/SliderThumb.js.map +1 -1
  541. package/dist/form/SliderValueMarks.js +1 -1
  542. package/dist/form/SliderValueMarks.js.map +1 -1
  543. package/dist/form/SliderValueTooltip.js +1 -1
  544. package/dist/form/SliderValueTooltip.js.map +1 -1
  545. package/dist/form/Switch.d.ts +3 -2
  546. package/dist/form/Switch.js +7 -26
  547. package/dist/form/Switch.js.map +1 -1
  548. package/dist/form/SwitchTrack.d.ts +2 -1
  549. package/dist/form/SwitchTrack.js +8 -4
  550. package/dist/form/SwitchTrack.js.map +1 -1
  551. package/dist/form/_form.scss +41 -34
  552. package/dist/form/switchStyles.d.ts +1 -0
  553. package/dist/form/switchStyles.js +2 -1
  554. package/dist/form/switchStyles.js.map +1 -1
  555. package/dist/hoverMode/useHoverMode.d.ts +2 -2
  556. package/dist/hoverMode/useHoverMode.js +1 -1
  557. package/dist/hoverMode/useHoverMode.js.map +1 -1
  558. package/dist/icon/FontIcon.d.ts +2 -1
  559. package/dist/icon/FontIcon.js +4 -5
  560. package/dist/icon/FontIcon.js.map +1 -1
  561. package/dist/icon/MaterialIcon.d.ts +2 -2
  562. package/dist/icon/MaterialIcon.js +3 -6
  563. package/dist/icon/MaterialIcon.js.map +1 -1
  564. package/dist/icon/MaterialSymbol.d.ts +15 -8
  565. package/dist/icon/MaterialSymbol.js +15 -11
  566. package/dist/icon/MaterialSymbol.js.map +1 -1
  567. package/dist/icon/iconConfig.js.map +1 -1
  568. package/dist/icon/material.d.ts +1 -1
  569. package/dist/icon/material.js.map +1 -1
  570. package/dist/icon/materialConfig.d.ts +156 -0
  571. package/dist/icon/materialConfig.js +29 -0
  572. package/dist/icon/materialConfig.js.map +1 -0
  573. package/dist/icon/styles.d.ts +0 -15
  574. package/dist/icon/styles.js +2 -4
  575. package/dist/icon/styles.js.map +1 -1
  576. package/dist/index.d.ts +8 -6
  577. package/dist/index.js +8 -6
  578. package/dist/index.js.map +1 -1
  579. package/dist/link/Link.d.ts +12 -6
  580. package/dist/link/Link.js +1 -2
  581. package/dist/link/Link.js.map +1 -1
  582. package/dist/list/ListItemLink.d.ts +1 -1
  583. package/dist/list/ListItemLink.js.map +1 -1
  584. package/dist/menu/DropdownMenu.d.ts +12 -1
  585. package/dist/menu/DropdownMenu.js +13 -4
  586. package/dist/menu/DropdownMenu.js.map +1 -1
  587. package/dist/menu/Menu.d.ts +8 -0
  588. package/dist/menu/Menu.js +2 -1
  589. package/dist/menu/Menu.js.map +1 -1
  590. package/dist/menu/MenuItemSeparator.d.ts +1 -2
  591. package/dist/menu/MenuItemSeparator.js +2 -8
  592. package/dist/menu/MenuItemSeparator.js.map +1 -1
  593. package/dist/menu/MenuSheet.d.ts +6 -1
  594. package/dist/menu/MenuSheet.js.map +1 -1
  595. package/dist/menu/menuConfig.d.ts +60 -0
  596. package/dist/progress/CircularProgress.d.ts +5 -4
  597. package/dist/progress/CircularProgress.js +3 -3
  598. package/dist/progress/CircularProgress.js.map +1 -1
  599. package/dist/progress/LinearProgress.d.ts +7 -5
  600. package/dist/progress/LinearProgress.js +4 -3
  601. package/dist/progress/LinearProgress.js.map +1 -1
  602. package/dist/segmented-button/_segmented-button.scss +5 -0
  603. package/dist/suspense/CircularProgressSuspense.d.ts +4 -0
  604. package/dist/suspense/CircularProgressSuspense.js +3 -1
  605. package/dist/suspense/CircularProgressSuspense.js.map +1 -1
  606. package/dist/table/Table.d.ts +0 -12
  607. package/dist/table/Table.js +1 -12
  608. package/dist/table/Table.js.map +1 -1
  609. package/dist/table/TableCell.d.ts +13 -38
  610. package/dist/table/TableCell.js +7 -15
  611. package/dist/table/TableCell.js.map +1 -1
  612. package/dist/table/TableCellContent.d.ts +9 -0
  613. package/dist/table/TableCellContent.js +2 -1
  614. package/dist/table/TableCellContent.js.map +1 -1
  615. package/dist/table/TableCheckbox.d.ts +2 -2
  616. package/dist/table/TableCheckbox.js +3 -3
  617. package/dist/table/TableCheckbox.js.map +1 -1
  618. package/dist/table/TableContainer.d.ts +0 -6
  619. package/dist/table/TableContainer.js +1 -6
  620. package/dist/table/TableContainer.js.map +1 -1
  621. package/dist/table/TableFooter.d.ts +7 -1
  622. package/dist/table/TableFooter.js +17 -16
  623. package/dist/table/TableFooter.js.map +1 -1
  624. package/dist/table/TableHeader.d.ts +7 -14
  625. package/dist/table/TableHeader.js +6 -14
  626. package/dist/table/TableHeader.js.map +1 -1
  627. package/dist/table/TableRadio.d.ts +106 -0
  628. package/dist/table/TableRadio.js +106 -0
  629. package/dist/table/TableRadio.js.map +1 -0
  630. package/dist/table/TableRow.d.ts +0 -10
  631. package/dist/table/TableRow.js +1 -12
  632. package/dist/table/TableRow.js.map +1 -1
  633. package/dist/table/_table.scss +16 -18
  634. package/dist/table/tableCellStyles.d.ts +33 -0
  635. package/dist/table/tableCellStyles.js +15 -0
  636. package/dist/table/tableCellStyles.js.map +1 -0
  637. package/dist/table/tableContainerStyles.d.ts +10 -0
  638. package/dist/table/tableContainerStyles.js +9 -0
  639. package/dist/table/tableContainerStyles.js.map +1 -0
  640. package/dist/table/tableFooterStyles.d.ts +10 -0
  641. package/dist/table/tableFooterStyles.js +12 -0
  642. package/dist/table/tableFooterStyles.js.map +1 -0
  643. package/dist/table/tableHeaderStyles.d.ts +10 -0
  644. package/dist/table/tableHeaderStyles.js +13 -0
  645. package/dist/table/tableHeaderStyles.js.map +1 -0
  646. package/dist/table/tableRowStyles.d.ts +10 -0
  647. package/dist/table/tableRowStyles.js +14 -0
  648. package/dist/table/tableRowStyles.js.map +1 -0
  649. package/dist/table/tableStyles.d.ts +12 -0
  650. package/dist/table/tableStyles.js +14 -0
  651. package/dist/table/tableStyles.js.map +1 -0
  652. package/dist/table/types.d.ts +28 -15
  653. package/dist/table/types.js.map +1 -1
  654. package/dist/tabs/_tabs.scss +2 -0
  655. package/dist/test-utils/data-testid.js +2 -0
  656. package/dist/test-utils/data-testid.js.map +1 -0
  657. package/dist/test-utils/jest-setup.js +3 -0
  658. package/dist/test-utils/jest-setup.js.map +1 -1
  659. package/dist/theme/ThemeProvider.d.ts +5 -0
  660. package/dist/theme/ThemeProvider.js.map +1 -1
  661. package/dist/tooltip/Tooltip.d.ts +13 -6
  662. package/dist/tooltip/Tooltip.js +2 -2
  663. package/dist/tooltip/Tooltip.js.map +1 -1
  664. package/dist/tooltip/TooltipHoverModeProvider.d.ts +15 -0
  665. package/dist/tooltip/TooltipHoverModeProvider.js.map +1 -1
  666. package/dist/tooltip/_tooltip.scss +1 -0
  667. package/dist/tooltip/tooltipStyles.d.ts +2 -1
  668. package/dist/tooltip/tooltipStyles.js +2 -2
  669. package/dist/tooltip/tooltipStyles.js.map +1 -1
  670. package/dist/tooltip/useTooltip.d.ts +71 -8
  671. package/dist/tooltip/useTooltip.js +68 -7
  672. package/dist/tooltip/useTooltip.js.map +1 -1
  673. package/dist/transition/config.d.ts +22 -0
  674. package/dist/transition/config.js +16 -0
  675. package/dist/transition/config.js.map +1 -0
  676. package/dist/transition/useTransition.js +15 -6
  677. package/dist/transition/useTransition.js.map +1 -1
  678. package/dist/tree/DefaultTreeItemRenderer.d.ts +1 -1
  679. package/dist/tree/DefaultTreeItemRenderer.js.map +1 -1
  680. package/dist/tree/Tree.d.ts +1 -1
  681. package/dist/tree/Tree.js +18 -21
  682. package/dist/tree/Tree.js.map +1 -1
  683. package/dist/tree/TreeItem.js +1 -3
  684. package/dist/tree/TreeItem.js.map +1 -1
  685. package/dist/tree/TreeProvider.d.ts +2 -0
  686. package/dist/tree/TreeProvider.js +3 -1
  687. package/dist/tree/TreeProvider.js.map +1 -1
  688. package/package.json +20 -17
  689. package/src/__tests__/NoSsr.tsx +5 -5
  690. package/src/__tests__/useAsyncAction.tsx +14 -6
  691. package/src/__tests__/useDebouncedFunction.tsx +6 -3
  692. package/src/__tests__/useDropzone.tsx +10 -10
  693. package/src/__tests__/useEnsuredId.tsx +5 -5
  694. package/src/__tests__/useEnsuredState.tsx +1 -2
  695. package/src/__tests__/useLocalStorage.tsx +21 -21
  696. package/src/__tests__/useResizeObserver.tsx +2 -0
  697. package/src/__tests__/useThrottledFunction.tsx +9 -8
  698. package/src/__tests__/useToggle.tsx +10 -10
  699. package/src/_core.scss +5 -1
  700. package/src/app-bar/__tests__/AppBar.tsx +15 -15
  701. package/src/app-bar/__tests__/AppBarTitle.tsx +3 -5
  702. package/src/avatar/Avatar.tsx +12 -20
  703. package/src/avatar/__tests__/Avatar.tsx +6 -6
  704. package/src/avatar/_avatar.scss +4 -2
  705. package/src/avatar/styles.ts +27 -4
  706. package/src/badge/__tests__/Badge.tsx +3 -3
  707. package/src/button/AsyncButton.tsx +71 -4
  708. package/src/button/__tests__/AsyncButton.tsx +2 -0
  709. package/src/button/__tests__/Button.tsx +12 -12
  710. package/src/button/__tests__/ButtonUnstyled.tsx +3 -3
  711. package/src/button/__tests__/__snapshots__/AsyncButton.tsx.snap +31 -8
  712. package/src/card/__tests__/Card.tsx +3 -3
  713. package/src/card/__tests__/CardContent.tsx +3 -3
  714. package/src/card/__tests__/CardFooter.tsx +3 -3
  715. package/src/card/__tests__/CardHeader.tsx +5 -5
  716. package/src/card/__tests__/CardSubtitle.tsx +3 -3
  717. package/src/card/__tests__/CardTitle.tsx +3 -3
  718. package/src/chip/__tests__/Chip.tsx +20 -22
  719. package/src/chip/__tests__/__snapshots__/Chip.tsx.snap +3 -3
  720. package/src/chip/__tests__/__snapshots__/styles.ts.snap +1 -1
  721. package/src/chip/_chip.scss +0 -16
  722. package/src/chip/styles.ts +4 -5
  723. package/src/cssUtils.ts +4 -1
  724. package/src/dialog/Dialog.tsx +5 -4
  725. package/src/dialog/__tests__/Dialog.tsx +316 -0
  726. package/src/dialog/__tests__/DialogContent.tsx +53 -0
  727. package/src/dialog/__tests__/DialogFooter.tsx +70 -0
  728. package/src/dialog/__tests__/DialogHeader.tsx +37 -0
  729. package/src/dialog/__tests__/DialogTitle.tsx +41 -0
  730. package/src/dialog/__tests__/__snapshots__/Dialog.tsx.snap +84 -0
  731. package/src/dialog/__tests__/__snapshots__/DialogContent.tsx.snap +36 -0
  732. package/src/dialog/__tests__/__snapshots__/DialogFooter.tsx.snap +186 -0
  733. package/src/dialog/__tests__/__snapshots__/DialogHeader.tsx.snap +18 -0
  734. package/src/dialog/__tests__/__snapshots__/DialogTitle.tsx.snap +26 -0
  735. package/src/divider/__tests__/Divider.tsx +3 -3
  736. package/src/draggable/__tests__/useDraggable.tsx +35 -39
  737. package/src/expansion-panel/__tests__/ExpansionPanel.tsx +28 -23
  738. package/src/focus/__tests__/useFocusContainer.tsx +280 -0
  739. package/src/focus/useFocusContainer.ts +17 -10
  740. package/src/form/MenuItemInputToggle.tsx +6 -2
  741. package/src/form/MenuItemTextField.tsx +3 -0
  742. package/src/form/Slider.tsx +45 -5
  743. package/src/form/SliderThumb.tsx +15 -3
  744. package/src/form/SliderValueMarks.tsx +3 -1
  745. package/src/form/SliderValueTooltip.tsx +1 -1
  746. package/src/form/Switch.tsx +6 -27
  747. package/src/form/SwitchTrack.tsx +12 -2
  748. package/src/form/__tests__/Checkbox.tsx +5 -5
  749. package/src/form/__tests__/Fieldset.tsx +3 -3
  750. package/src/form/__tests__/FileInput.tsx +2 -2
  751. package/src/form/__tests__/Label.tsx +3 -3
  752. package/src/form/__tests__/Legend.tsx +3 -3
  753. package/src/form/__tests__/Radio.tsx +3 -3
  754. package/src/form/__tests__/Switch.tsx +152 -0
  755. package/src/form/__tests__/__snapshots__/Switch.tsx.snap +428 -0
  756. package/src/form/__tests__/__snapshots__/useCheckboxGroup.tsx.snap +1 -1
  757. package/src/form/__tests__/__snapshots__/useRadioGroup.tsx.snap +1 -1
  758. package/src/form/__tests__/useCheckboxGroup.tsx +33 -33
  759. package/src/form/__tests__/useFileUpload.tsx +41 -33
  760. package/src/form/__tests__/useRadioGroup.tsx +25 -25
  761. package/src/form/_form.scss +41 -34
  762. package/src/form/switchStyles.ts +3 -3
  763. package/src/hoverMode/useHoverMode.ts +4 -4
  764. package/src/icon/FontIcon.tsx +2 -5
  765. package/src/icon/MaterialIcon.tsx +4 -6
  766. package/src/icon/MaterialSymbol.tsx +18 -12
  767. package/src/icon/__tests__/FontIcon.tsx +7 -11
  768. package/src/icon/__tests__/IconRotator.tsx +4 -4
  769. package/src/icon/__tests__/MaterialIcon.tsx +79 -0
  770. package/src/icon/__tests__/MaterialSymbol.tsx +100 -0
  771. package/src/icon/__tests__/SVGIcon.tsx +6 -5
  772. package/src/icon/__tests__/TextIconSpacing.tsx +15 -17
  773. package/src/icon/__tests__/__snapshots__/IconRotator.tsx.snap +6 -6
  774. package/src/icon/__tests__/__snapshots__/MaterialIcon.tsx.snap +82 -0
  775. package/src/icon/__tests__/__snapshots__/MaterialSymbol.tsx.snap +42 -0
  776. package/src/icon/iconConfig.tsx +1 -0
  777. package/src/icon/material.ts +284 -54
  778. package/src/icon/{MaterialSymbolsProvider.tsx → materialConfig.ts} +49 -67
  779. package/src/icon/styles.ts +0 -21
  780. package/src/index.ts +8 -6
  781. package/src/interaction/__tests__/UserInteractionModeProvider.tsx +3 -3
  782. package/src/layout/__tests__/useExpandableLayout.tsx +12 -1
  783. package/src/layout/__tests__/useLayoutTree.tsx +6 -1
  784. package/src/layout/__tests__/useResizableLayout.tsx +13 -1
  785. package/src/layout/__tests__/useTemporaryLayout.tsx +6 -1
  786. package/src/link/Link.tsx +15 -5
  787. package/src/link/__tests__/Link.tsx +3 -3
  788. package/src/link/__tests__/SkipToMainContent.tsx +11 -14
  789. package/src/list/ListItemLink.tsx +1 -1
  790. package/src/list/__tests__/List.tsx +7 -7
  791. package/src/list/__tests__/ListItem.tsx +17 -16
  792. package/src/list/__tests__/ListItemLink.tsx +7 -7
  793. package/src/list/__tests__/ListSubheader.tsx +5 -5
  794. package/src/menu/DropdownMenu.tsx +23 -4
  795. package/src/menu/Menu.tsx +11 -0
  796. package/src/menu/MenuItemSeparator.tsx +2 -12
  797. package/src/menu/MenuSheet.tsx +10 -1
  798. package/src/menu/__tests__/DropdownMenu.tsx +74 -65
  799. package/src/menu/__tests__/MenuBar.tsx +57 -48
  800. package/src/menu/__tests__/MenuVisibilityProvider.tsx +3 -3
  801. package/src/overlay/__tests__/Overlay.tsx +37 -35
  802. package/src/portal/__tests__/PortalContainerProvider.node.tsx +1 -0
  803. package/src/portal/__tests__/PortalContainerProvider.tsx +9 -9
  804. package/src/positioning/__tests__/useFixedPositioning.tsx +20 -14
  805. package/src/progress/CircularProgress.tsx +5 -4
  806. package/src/progress/LinearProgress.tsx +88 -86
  807. package/src/progress/__tests__/CircularProgress.tsx +49 -27
  808. package/src/progress/__tests__/LinearProgress.tsx +40 -25
  809. package/src/progress/__tests__/__snapshots__/CircularProgress.tsx.snap +21 -0
  810. package/src/progress/__tests__/__snapshots__/LinearProgress.tsx.snap +20 -0
  811. package/src/segmented-button/_segmented-button.scss +5 -0
  812. package/src/snackbar/__tests__/Snackbar.tsx +2 -2
  813. package/src/snackbar/__tests__/Toast.tsx +8 -3
  814. package/src/snackbar/__tests__/ToastActionButton.tsx +2 -2
  815. package/src/snackbar/__tests__/ToastCloseButton.tsx +2 -2
  816. package/src/snackbar/__tests__/ToastManagerProvider.tsx +8 -0
  817. package/src/suspense/CircularProgressSuspense.tsx +19 -2
  818. package/src/table/Table.tsx +1 -24
  819. package/src/table/TableCell.tsx +22 -85
  820. package/src/table/TableCellContent.tsx +20 -2
  821. package/src/table/TableCheckbox.tsx +3 -3
  822. package/src/table/TableContainer.tsx +1 -8
  823. package/src/table/TableFooter.tsx +30 -23
  824. package/src/table/TableHeader.tsx +23 -40
  825. package/src/table/TableRadio.tsx +195 -0
  826. package/src/table/TableRow.tsx +1 -28
  827. package/src/table/__tests__/Table.tsx +4 -10
  828. package/src/table/__tests__/TableBody.tsx +3 -3
  829. package/src/table/__tests__/TableCheckbox.tsx +10 -11
  830. package/src/table/__tests__/TableContainer.tsx +3 -3
  831. package/src/table/__tests__/TableRadio.tsx +112 -0
  832. package/src/table/__tests__/TableRow.tsx +4 -10
  833. package/src/table/__tests__/__snapshots__/Table.tsx.snap +249 -251
  834. package/src/table/__tests__/__snapshots__/TableBody.tsx.snap +3 -3
  835. package/src/table/__tests__/__snapshots__/TableCheckbox.tsx.snap +4 -4
  836. package/src/table/__tests__/__snapshots__/TableRadio.tsx.snap +138 -0
  837. package/src/table/__tests__/__snapshots__/TableRow.tsx.snap +4 -6
  838. package/src/table/__tests__/__snapshots__/tableContainerStyles.ts.snap +3 -0
  839. package/src/table/__tests__/__snapshots__/tableRowStyles.ts.snap +3 -0
  840. package/src/table/__tests__/__snapshots__/tableStyles.ts.snap +3 -0
  841. package/src/table/__tests__/tableContainerStyles.ts +8 -0
  842. package/src/table/__tests__/tableRowStyles.ts +8 -0
  843. package/src/table/__tests__/tableStyles.ts +8 -0
  844. package/src/table/_table.scss +16 -18
  845. package/src/table/tableCellStyles.ts +83 -0
  846. package/src/table/tableContainerStyles.ts +19 -0
  847. package/src/table/tableFooterStyles.ts +27 -0
  848. package/src/table/tableHeaderStyles.ts +29 -0
  849. package/src/table/tableRowStyles.ts +28 -0
  850. package/src/table/tableStyles.ts +24 -0
  851. package/src/table/types.ts +33 -15
  852. package/src/tabs/__tests__/Tab.tsx +3 -3
  853. package/src/tabs/__tests__/TabList.tsx +50 -40
  854. package/src/tabs/__tests__/useTabs.tsx +27 -24
  855. package/src/tabs/_tabs.scss +2 -0
  856. package/src/test-utils/data-testid.ts +5 -0
  857. package/src/test-utils/jest-setup.ts +4 -0
  858. package/src/theme/ThemeProvider.tsx +6 -0
  859. package/src/theme/__tests__/LocalStorageColorSchemeProvider.tsx +4 -4
  860. package/src/theme/__tests__/useCSSVariables.tsx +4 -4
  861. package/src/tooltip/Tooltip.tsx +17 -9
  862. package/src/tooltip/TooltipHoverModeProvider.tsx +18 -0
  863. package/src/tooltip/__tests__/Tooltip.tsx +147 -104
  864. package/src/tooltip/__tests__/TooltipHoverModeProvider.tsx +8 -3
  865. package/src/tooltip/__tests__/__snapshots__/Tooltip.tsx.snap +0 -33
  866. package/src/tooltip/_tooltip.scss +1 -0
  867. package/src/tooltip/tooltipStyles.ts +4 -4
  868. package/src/tooltip/useTooltip.ts +119 -19
  869. package/src/transition/__tests__/CSSTransition.tsx +12 -6
  870. package/src/transition/__tests__/Collapse.tsx +19 -17
  871. package/src/transition/__tests__/CrossFade.tsx +20 -17
  872. package/src/transition/__tests__/ScaleTransition.tsx +18 -14
  873. package/src/transition/__tests__/useCSSTransition.tsx +18 -14
  874. package/src/transition/__tests__/useCollapseTransition.tsx +25 -21
  875. package/src/transition/__tests__/useCrossFadeTransition.tsx +20 -16
  876. package/src/transition/__tests__/useScaleTransition.tsx +18 -12
  877. package/src/transition/__tests__/useTransition.tsx +165 -68
  878. package/src/transition/config.ts +34 -0
  879. package/src/transition/useTransition.ts +15 -6
  880. package/src/tree/DefaultTreeItemRenderer.tsx +1 -1
  881. package/src/tree/Tree.tsx +20 -24
  882. package/src/tree/TreeItem.tsx +2 -3
  883. package/src/tree/TreeProvider.tsx +6 -0
  884. package/src/tree/__tests__/Tree.tsx +7 -2
  885. package/src/tree/__tests__/TreeGroup.tsx +1 -0
  886. package/src/tree/__tests__/TreeItemExpander.tsx +1 -0
  887. package/src/typography/__tests__/TextContainer.tsx +3 -3
  888. package/src/typography/__tests__/Typography.tsx +10 -12
  889. package/src/typography/__tests__/WritingDirectionProvider.tsx +7 -7
  890. package/dist/divider/VerticalDivider.js +0 -40
  891. package/dist/divider/VerticalDivider.js.map +0 -1
  892. package/dist/divider/useVerticalDividerHeight.js +0 -40
  893. package/dist/divider/useVerticalDividerHeight.js.map +0 -1
  894. package/dist/link/LinkProvider.js +0 -26
  895. package/dist/link/LinkProvider.js.map +0 -1
  896. package/dist/tooltip/useOverflowTooltip.js +0 -71
  897. package/dist/tooltip/useOverflowTooltip.js.map +0 -1
  898. package/src/divider/VerticalDivider.tsx +0 -50
  899. package/src/divider/__tests__/VerticalDivider.tsx +0 -35
  900. package/src/divider/__tests__/__snapshots__/VerticalDivider.tsx.snap +0 -41
  901. package/src/divider/useVerticalDividerHeight.ts +0 -72
  902. package/src/icon/MaterialIconsProvider.ts +0 -23
  903. package/src/link/LinkProvider.tsx +0 -51
  904. package/src/tooltip/__tests__/useOverflowTooltip.tsx +0 -77
  905. package/src/tooltip/useOverflowTooltip.ts +0 -93
@@ -33,7 +33,7 @@ import { tooltip } from "./tooltipStyles.js";
33
33
  * }
34
34
  * ```
35
35
  */ export const Tooltip = /*#__PURE__*/ forwardRef(function Tooltip(props, nodeRef) {
36
- const { id: propId, dense, visible, children, appear, enter, exit, onEnter, onEntering, onEntered, onExit, onExiting, onExited, timeout = DEFAULT_TOOLTIP_TIMEOUT, classNames = DEFAULT_TOOLTIP_CLASSNAMES, className, position = DEFAULT_TOOLTIP_POSITION, temporary, exitedHidden = !temporary, disableLineWrap, disablePortal: propDisablePortal, ...remaining } = props;
36
+ const { id: propId, dense, visible, children, appear, enter, exit, onEnter, onEntering, onEntered, onExit, onExiting, onExited, timeout = DEFAULT_TOOLTIP_TIMEOUT, classNames = DEFAULT_TOOLTIP_CLASSNAMES, className, position = DEFAULT_TOOLTIP_POSITION, temporary = true, exitedHidden = !temporary, textOverflow, disablePortal: propDisablePortal, ...remaining } = props;
37
37
  const id = useEnsuredId(propId, "tooltip");
38
38
  const { rendered, elementProps, disablePortal } = useCSSTransition({
39
39
  nodeRef,
@@ -47,7 +47,7 @@ import { tooltip } from "./tooltipStyles.js";
47
47
  dense,
48
48
  position,
49
49
  className,
50
- disableLineWrap
50
+ textOverflow
51
51
  }),
52
52
  onEnter,
53
53
  onEntering,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tooltip/Tooltip.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef, type HTMLAttributes } from \"react\";\nimport { Portal } from \"../portal/Portal.js\";\nimport { type SimplePosition } from \"../positioning/types.js\";\nimport {\n type CSSTransitionComponentProps,\n type TransitionActions,\n} from \"../transition/types.js\";\nimport { useCSSTransition } from \"../transition/useCSSTransition.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport {\n DEFAULT_TOOLTIP_CLASSNAMES,\n DEFAULT_TOOLTIP_POSITION,\n DEFAULT_TOOLTIP_TIMEOUT,\n} from \"./constants.js\";\nimport { tooltip } from \"./tooltipStyles.js\";\n\n/**\n * The base props for the `Tooltip` component. This can be extended when\n * creating custom tooltip implementations.\n *\n * @remarks\n * \\@since 2.8.0 Supports the `RenderConditionalPortalProps`\n * \\@since 6.0.0 No longer supports the `RenderConditionalPortalProps`.\n */\nexport interface TooltipProps\n extends HTMLAttributes<HTMLSpanElement>,\n CSSTransitionComponentProps,\n TransitionActions {\n visible: boolean;\n\n /**\n * @defaultValue `false`\n */\n dense?: boolean;\n\n /**\n * @defaultValue `DEFAULT_TOOLTIP_POSITION`\n * @see {@link DEFAULT_TOOLTIP_POSITION}\n */\n position?: SimplePosition;\n\n /**\n * @defaultValue `false`\n */\n disablePortal?: boolean;\n\n /**\n * Set this to `true` to add `white-space: nowrap` to the tooltip.\n *\n * This prop is useful for tooltips that are positioned near the edge of the\n * viewport with `\"above\"` or `\"below\"` so that the tooltip no longer aligns\n * the center of the tooltip with the center of the tooltipped element.\n *\n * @defaultValue `false`\n */\n disableLineWrap?: boolean;\n}\n\n/**\n * **Client Component**\n *\n * This is the base tooltip component that can only be used to render a tooltip\n * with an animation when the visibility changes. If this component is used, you\n * will need to manually add all the event listeners and triggers to change the\n * `visible` prop.\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 */\nexport const Tooltip = forwardRef<HTMLSpanElement, TooltipProps>(\n function Tooltip(props, nodeRef) {\n const {\n id: propId,\n dense,\n visible,\n children,\n appear,\n enter,\n exit,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n timeout = DEFAULT_TOOLTIP_TIMEOUT,\n classNames = DEFAULT_TOOLTIP_CLASSNAMES,\n className,\n position = DEFAULT_TOOLTIP_POSITION,\n temporary,\n exitedHidden = !temporary,\n disableLineWrap,\n disablePortal: propDisablePortal,\n ...remaining\n } = props;\n const id = useEnsuredId(propId, \"tooltip\");\n\n const { rendered, elementProps, disablePortal } = useCSSTransition({\n nodeRef,\n appear,\n enter,\n exit,\n transitionIn: visible,\n timeout,\n classNames,\n className: tooltip({\n dense,\n position,\n className,\n disableLineWrap,\n }),\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n temporary,\n exitedHidden,\n disablePortal: propDisablePortal,\n });\n\n return (\n <Portal disabled={disablePortal}>\n {rendered && (\n <span {...remaining} {...elementProps} id={id} role=\"tooltip\">\n {children}\n </span>\n )}\n </Portal>\n );\n }\n);\n"],"names":["forwardRef","Portal","useCSSTransition","useEnsuredId","DEFAULT_TOOLTIP_CLASSNAMES","DEFAULT_TOOLTIP_POSITION","DEFAULT_TOOLTIP_TIMEOUT","tooltip","Tooltip","props","nodeRef","id","propId","dense","visible","children","appear","enter","exit","onEnter","onEntering","onEntered","onExit","onExiting","onExited","timeout","classNames","className","position","temporary","exitedHidden","disableLineWrap","disablePortal","propDisablePortal","remaining","rendered","elementProps","transitionIn","disabled","span","role"],"mappings":"AAAA;;AACA,SAASA,UAAU,QAA6B,QAAQ;AACxD,SAASC,MAAM,QAAQ,sBAAsB;AAM7C,SAASC,gBAAgB,QAAQ,oCAAoC;AACrE,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SACEC,0BAA0B,EAC1BC,wBAAwB,EACxBC,uBAAuB,QAClB,iBAAiB;AACxB,SAASC,OAAO,QAAQ,qBAAqB;AA4C7C;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BC,GACD,OAAO,MAAMC,wBAAUR,WACrB,SAASQ,QAAQC,KAAK,EAAEC,OAAO;IAC7B,MAAM,EACJC,IAAIC,MAAM,EACVC,KAAK,EACLC,OAAO,EACPC,QAAQ,EACRC,MAAM,EACNC,KAAK,EACLC,IAAI,EACJC,OAAO,EACPC,UAAU,EACVC,SAAS,EACTC,MAAM,EACNC,SAAS,EACTC,QAAQ,EACRC,UAAUnB,uBAAuB,EACjCoB,aAAatB,0BAA0B,EACvCuB,SAAS,EACTC,WAAWvB,wBAAwB,EACnCwB,SAAS,EACTC,eAAe,CAACD,SAAS,EACzBE,eAAe,EACfC,eAAeC,iBAAiB,EAChC,GAAGC,WACJ,GAAGzB;IACJ,MAAME,KAAKR,aAAaS,QAAQ;IAEhC,MAAM,EAAEuB,QAAQ,EAAEC,YAAY,EAAEJ,aAAa,EAAE,GAAG9B,iBAAiB;QACjEQ;QACAM;QACAC;QACAC;QACAmB,cAAcvB;QACdW;QACAC;QACAC,WAAWpB,QAAQ;YACjBM;YACAe;YACAD;YACAI;QACF;QACAZ;QACAC;QACAC;QACAC;QACAC;QACAC;QACAK;QACAC;QACAE,eAAeC;IACjB;IAEA,qBACE,KAAChC;QAAOqC,UAAUN;kBACfG,0BACC,KAACI;YAAM,GAAGL,SAAS;YAAG,GAAGE,YAAY;YAAEzB,IAAIA;YAAI6B,MAAK;sBACjDzB;;;AAKX,GACA"}
1
+ {"version":3,"sources":["../../src/tooltip/Tooltip.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef, type HTMLAttributes } from \"react\";\nimport { type TextOverflow } from \"../cssUtils.js\";\nimport { Portal } from \"../portal/Portal.js\";\nimport { type SimplePosition } from \"../positioning/types.js\";\nimport {\n type CSSTransitionComponentProps,\n type TransitionActions,\n} from \"../transition/types.js\";\nimport { useCSSTransition } from \"../transition/useCSSTransition.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport {\n DEFAULT_TOOLTIP_CLASSNAMES,\n DEFAULT_TOOLTIP_POSITION,\n DEFAULT_TOOLTIP_TIMEOUT,\n} from \"./constants.js\";\nimport { tooltip } from \"./tooltipStyles.js\";\n\n/**\n * The base props for the `Tooltip` component. This can be extended when\n * creating custom tooltip implementations.\n *\n * @remarks\n * \\@since 2.8.0 Supports the `RenderConditionalPortalProps`\n * \\@since 6.0.0 No longer supports the `RenderConditionalPortalProps`.\n */\nexport interface TooltipProps\n extends HTMLAttributes<HTMLSpanElement>,\n CSSTransitionComponentProps,\n TransitionActions {\n visible: boolean;\n\n /**\n * @defaultValue `false`\n */\n dense?: boolean;\n\n /**\n * @defaultValue `DEFAULT_TOOLTIP_POSITION`\n * @see {@link DEFAULT_TOOLTIP_POSITION}\n */\n position?: SimplePosition;\n\n /**\n * @see {@link CSSTransitionComponentProps.temporary}\n * @defaultValue `true`\n */\n temporary?: boolean;\n\n /**\n * @defaultValue `false`\n */\n disablePortal?: boolean;\n\n /**\n * Set this to `\"nowrap\"` for tooltips that are positioned near the edge of\n * the viewport that have a position of `\"above\"` or `\"below\"` so that the\n * tooltip no longer aligns to the center of the tooltipped element.\n *\n * Set this to `\"ellipsis\"` if the tooltip should only show a single line of\n * text and ellipsis once it has reached the max tooltip width.\n *\n * @defaultValue `\"allow\"`\n */\n textOverflow?: TextOverflow;\n}\n\n/**\n * **Client Component**\n *\n * This is the base tooltip component that can only be used to render a tooltip\n * with an animation when the visibility changes. If this component is used, you\n * will need to manually add all the event listeners and triggers to change the\n * `visible` prop.\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 */\nexport const Tooltip = forwardRef<HTMLSpanElement, TooltipProps>(\n function Tooltip(props, nodeRef) {\n const {\n id: propId,\n dense,\n visible,\n children,\n appear,\n enter,\n exit,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n timeout = DEFAULT_TOOLTIP_TIMEOUT,\n classNames = DEFAULT_TOOLTIP_CLASSNAMES,\n className,\n position = DEFAULT_TOOLTIP_POSITION,\n temporary = true,\n exitedHidden = !temporary,\n textOverflow,\n disablePortal: propDisablePortal,\n ...remaining\n } = props;\n const id = useEnsuredId(propId, \"tooltip\");\n\n const { rendered, elementProps, disablePortal } = useCSSTransition({\n nodeRef,\n appear,\n enter,\n exit,\n transitionIn: visible,\n timeout,\n classNames,\n className: tooltip({\n dense,\n position,\n className,\n textOverflow,\n }),\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n temporary,\n exitedHidden,\n disablePortal: propDisablePortal,\n });\n\n return (\n <Portal disabled={disablePortal}>\n {rendered && (\n <span {...remaining} {...elementProps} id={id} role=\"tooltip\">\n {children}\n </span>\n )}\n </Portal>\n );\n }\n);\n"],"names":["forwardRef","Portal","useCSSTransition","useEnsuredId","DEFAULT_TOOLTIP_CLASSNAMES","DEFAULT_TOOLTIP_POSITION","DEFAULT_TOOLTIP_TIMEOUT","tooltip","Tooltip","props","nodeRef","id","propId","dense","visible","children","appear","enter","exit","onEnter","onEntering","onEntered","onExit","onExiting","onExited","timeout","classNames","className","position","temporary","exitedHidden","textOverflow","disablePortal","propDisablePortal","remaining","rendered","elementProps","transitionIn","disabled","span","role"],"mappings":"AAAA;;AACA,SAASA,UAAU,QAA6B,QAAQ;AAExD,SAASC,MAAM,QAAQ,sBAAsB;AAM7C,SAASC,gBAAgB,QAAQ,oCAAoC;AACrE,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SACEC,0BAA0B,EAC1BC,wBAAwB,EACxBC,uBAAuB,QAClB,iBAAiB;AACxB,SAASC,OAAO,QAAQ,qBAAqB;AAmD7C;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BC,GACD,OAAO,MAAMC,wBAAUR,WACrB,SAASQ,QAAQC,KAAK,EAAEC,OAAO;IAC7B,MAAM,EACJC,IAAIC,MAAM,EACVC,KAAK,EACLC,OAAO,EACPC,QAAQ,EACRC,MAAM,EACNC,KAAK,EACLC,IAAI,EACJC,OAAO,EACPC,UAAU,EACVC,SAAS,EACTC,MAAM,EACNC,SAAS,EACTC,QAAQ,EACRC,UAAUnB,uBAAuB,EACjCoB,aAAatB,0BAA0B,EACvCuB,SAAS,EACTC,WAAWvB,wBAAwB,EACnCwB,YAAY,IAAI,EAChBC,eAAe,CAACD,SAAS,EACzBE,YAAY,EACZC,eAAeC,iBAAiB,EAChC,GAAGC,WACJ,GAAGzB;IACJ,MAAME,KAAKR,aAAaS,QAAQ;IAEhC,MAAM,EAAEuB,QAAQ,EAAEC,YAAY,EAAEJ,aAAa,EAAE,GAAG9B,iBAAiB;QACjEQ;QACAM;QACAC;QACAC;QACAmB,cAAcvB;QACdW;QACAC;QACAC,WAAWpB,QAAQ;YACjBM;YACAe;YACAD;YACAI;QACF;QACAZ;QACAC;QACAC;QACAC;QACAC;QACAC;QACAK;QACAC;QACAE,eAAeC;IACjB;IAEA,qBACE,KAAChC;QAAOqC,UAAUN;kBACfG,0BACC,KAACI;YAAM,GAAGL,SAAS;YAAG,GAAGE,YAAY;YAAEzB,IAAIA;YAAI6B,MAAK;sBACjDzB;;;AAKX,GACA"}
@@ -12,6 +12,21 @@ export declare function useTooltipHoverMode(): Readonly<TooltipHoverModeContext>
12
12
  */
13
13
  export interface TooltipHoverModeProviderProps extends Partial<HoverModeConfiguration> {
14
14
  children: ReactNode;
15
+ /**
16
+ * @see {@link HoverModeConfiguration.hoverTimeout}
17
+ * @defaultValue `1000`
18
+ */
19
+ hoverTimeout?: number;
20
+ /**
21
+ * @see {@link HoverModeConfiguration.leaveTimeout}
22
+ * @defaultValue `0`
23
+ */
24
+ leaveTimeout?: number;
25
+ /**
26
+ * @see {@link HoverModeConfiguration.disableTimeout}
27
+ * @defaultValue `1000`
28
+ */
29
+ disableTimeout?: number;
15
30
  }
16
31
  /**
17
32
  * **Client Component**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tooltip/TooltipHoverModeProvider.tsx"],"sourcesContent":["\"use client\";\nimport {\n createContext,\n useContext,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport {\n createHoverModeContext,\n useHoverModeProvider,\n type HoverModeConfiguration,\n type HoverModeContext,\n} from \"../hoverMode/useHoverModeProvider.js\";\nimport { DEFAULT_TOOLTIP_DELAY } from \"./constants.js\";\n\n/** @remarks \\@since 6.0.0 */\nexport type TooltipHoverModeContext = HoverModeContext;\n\nconst context = createContext<TooltipHoverModeContext>(\n createHoverModeContext({\n hoverTimeout: DEFAULT_TOOLTIP_DELAY,\n leaveTimeout: 0,\n })\n);\ncontext.displayName = \"TooltipHoverMode\";\nconst { Provider } = context;\n\n/**\n * @internal\n * @remarks \\@since 6.0.0\n */\nexport function useTooltipHoverMode(): Readonly<TooltipHoverModeContext> {\n return useContext(context);\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface TooltipHoverModeProviderProps\n extends Partial<HoverModeConfiguration> {\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * Updates all tooltips that are rendered as a child anywhere in the React tree\n * to immediately appear for a short duration once a tooltip has become visible.\n * You can also use this provider to configure all tooltips' visibility delay to\n * a new value.\n *\n * @example\n * Configuration Example\n * ```tsx\n * <TooltipHoverModeProvider\n * // wait 3 seconds before displaying any tooltips\n * hoverTimeout={3000}\n *\n * // wait 1 second before hiding any tooltips\n * leaveTimeout={1000}\n *\n * // disable the hover mode functionality only if another tooltip has not\n * // been visible for 20 seconds\n * disableTimeout={20000}\n * >\n * <RestOfTheApp />\n * </TooltipHoverModeProvider>\n * ```\n *\n * @remarks \\@since 6.0.0\n */\nexport function TooltipHoverModeProvider(\n props: TooltipHoverModeProviderProps\n): ReactElement {\n const {\n hoverTimeout = DEFAULT_TOOLTIP_DELAY,\n leaveTimeout = 0,\n disableTimeout = DEFAULT_TOOLTIP_DELAY,\n defaultActiveId,\n children,\n } = props;\n const context = useHoverModeProvider({\n hoverTimeout,\n leaveTimeout,\n disableTimeout,\n defaultActiveId,\n });\n\n return <Provider value={context}>{children}</Provider>;\n}\n"],"names":["createContext","useContext","createHoverModeContext","useHoverModeProvider","DEFAULT_TOOLTIP_DELAY","context","hoverTimeout","leaveTimeout","displayName","Provider","useTooltipHoverMode","TooltipHoverModeProvider","props","disableTimeout","defaultActiveId","children","value"],"mappings":"AAAA;;AACA,SACEA,aAAa,EACbC,UAAU,QAGL,QAAQ;AACf,SACEC,sBAAsB,EACtBC,oBAAoB,QAGf,uCAAuC;AAC9C,SAASC,qBAAqB,QAAQ,iBAAiB;AAKvD,MAAMC,wBAAUL,cACdE,uBAAuB;IACrBI,cAAcF;IACdG,cAAc;AAChB;AAEFF,QAAQG,WAAW,GAAG;AACtB,MAAM,EAAEC,QAAQ,EAAE,GAAGJ;AAErB;;;CAGC,GACD,OAAO,SAASK;IACd,OAAOT,WAAWI;AACpB;AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BC,GACD,OAAO,SAASM,yBACdC,KAAoC;IAEpC,MAAM,EACJN,eAAeF,qBAAqB,EACpCG,eAAe,CAAC,EAChBM,iBAAiBT,qBAAqB,EACtCU,eAAe,EACfC,QAAQ,EACT,GAAGH;IACJ,MAAMP,UAAUF,qBAAqB;QACnCG;QACAC;QACAM;QACAC;IACF;IAEA,qBAAO,KAACL;QAASO,OAAOX;kBAAUU;;AACpC"}
1
+ {"version":3,"sources":["../../src/tooltip/TooltipHoverModeProvider.tsx"],"sourcesContent":["\"use client\";\nimport {\n createContext,\n useContext,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport {\n createHoverModeContext,\n useHoverModeProvider,\n type HoverModeConfiguration,\n type HoverModeContext,\n} from \"../hoverMode/useHoverModeProvider.js\";\nimport { DEFAULT_TOOLTIP_DELAY } from \"./constants.js\";\n\n/** @remarks \\@since 6.0.0 */\nexport type TooltipHoverModeContext = HoverModeContext;\n\nconst context = createContext<TooltipHoverModeContext>(\n createHoverModeContext({\n hoverTimeout: DEFAULT_TOOLTIP_DELAY,\n leaveTimeout: 0,\n })\n);\ncontext.displayName = \"TooltipHoverMode\";\nconst { Provider } = context;\n\n/**\n * @internal\n * @remarks \\@since 6.0.0\n */\nexport function useTooltipHoverMode(): Readonly<TooltipHoverModeContext> {\n return useContext(context);\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface TooltipHoverModeProviderProps\n extends Partial<HoverModeConfiguration> {\n children: ReactNode;\n\n /**\n * @see {@link HoverModeConfiguration.hoverTimeout}\n * @defaultValue `1000`\n */\n hoverTimeout?: number;\n\n /**\n * @see {@link HoverModeConfiguration.leaveTimeout}\n * @defaultValue `0`\n */\n leaveTimeout?: number;\n\n /**\n * @see {@link HoverModeConfiguration.disableTimeout}\n * @defaultValue `1000`\n */\n disableTimeout?: number;\n}\n\n/**\n * **Client Component**\n *\n * Updates all tooltips that are rendered as a child anywhere in the React tree\n * to immediately appear for a short duration once a tooltip has become visible.\n * You can also use this provider to configure all tooltips' visibility delay to\n * a new value.\n *\n * @example\n * Configuration Example\n * ```tsx\n * <TooltipHoverModeProvider\n * // wait 3 seconds before displaying any tooltips\n * hoverTimeout={3000}\n *\n * // wait 1 second before hiding any tooltips\n * leaveTimeout={1000}\n *\n * // disable the hover mode functionality only if another tooltip has not\n * // been visible for 20 seconds\n * disableTimeout={20000}\n * >\n * <RestOfTheApp />\n * </TooltipHoverModeProvider>\n * ```\n *\n * @remarks \\@since 6.0.0\n */\nexport function TooltipHoverModeProvider(\n props: TooltipHoverModeProviderProps\n): ReactElement {\n const {\n hoverTimeout = DEFAULT_TOOLTIP_DELAY,\n leaveTimeout = 0,\n disableTimeout = DEFAULT_TOOLTIP_DELAY,\n defaultActiveId,\n children,\n } = props;\n const context = useHoverModeProvider({\n hoverTimeout,\n leaveTimeout,\n disableTimeout,\n defaultActiveId,\n });\n\n return <Provider value={context}>{children}</Provider>;\n}\n"],"names":["createContext","useContext","createHoverModeContext","useHoverModeProvider","DEFAULT_TOOLTIP_DELAY","context","hoverTimeout","leaveTimeout","displayName","Provider","useTooltipHoverMode","TooltipHoverModeProvider","props","disableTimeout","defaultActiveId","children","value"],"mappings":"AAAA;;AACA,SACEA,aAAa,EACbC,UAAU,QAGL,QAAQ;AACf,SACEC,sBAAsB,EACtBC,oBAAoB,QAGf,uCAAuC;AAC9C,SAASC,qBAAqB,QAAQ,iBAAiB;AAKvD,MAAMC,wBAAUL,cACdE,uBAAuB;IACrBI,cAAcF;IACdG,cAAc;AAChB;AAEFF,QAAQG,WAAW,GAAG;AACtB,MAAM,EAAEC,QAAQ,EAAE,GAAGJ;AAErB;;;CAGC,GACD,OAAO,SAASK;IACd,OAAOT,WAAWI;AACpB;AA4BA;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BC,GACD,OAAO,SAASM,yBACdC,KAAoC;IAEpC,MAAM,EACJN,eAAeF,qBAAqB,EACpCG,eAAe,CAAC,EAChBM,iBAAiBT,qBAAqB,EACtCU,eAAe,EACfC,QAAQ,EACT,GAAGH;IACJ,MAAMP,UAAUF,qBAAqB;QACnCG;QACAC;QACAM;QACAC;IACF;IAEA,qBAAO,KAACL;QAASO,OAAOX;kBAAUU;;AACpC"}
@@ -95,6 +95,7 @@ $var-lookup: (
95
95
  max-width: $max-width;
96
96
  min-height: $min-height;
97
97
  opacity: 0;
98
+ overflow: hidden;
98
99
  overflow-wrap: anywhere;
99
100
  padding: $vertical-padding $horizontal-padding;
100
101
  pointer-events: none;
@@ -1,3 +1,4 @@
1
+ import { type TextOverflow } from "../cssUtils.js";
1
2
  import type { SimplePosition } from "../positioning/types.js";
2
3
  /**
3
4
  * @remarks \@since 6.0.0
@@ -6,7 +7,7 @@ export interface TooltipClassNameOptions {
6
7
  className?: string;
7
8
  dense?: boolean;
8
9
  position: SimplePosition;
9
- disableLineWrap?: boolean;
10
+ textOverflow?: TextOverflow;
10
11
  }
11
12
  /**
12
13
  * @remarks \@since 6.0.0
@@ -5,12 +5,12 @@ const styles = bem("rmd-tooltip");
5
5
  /**
6
6
  * @remarks \@since 6.0.0
7
7
  */ export function tooltip(options) {
8
- const { dense, position, className, disableLineWrap } = options;
8
+ const { dense, position, className, textOverflow } = options;
9
9
  return cnb(styles({
10
10
  dense,
11
11
  [position]: true
12
12
  }), cssUtils({
13
- textOverflow: disableLineWrap ? "nowrap" : undefined
13
+ textOverflow
14
14
  }), className);
15
15
  }
16
16
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tooltip/tooltipStyles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { cssUtils } from \"../cssUtils.js\";\nimport type { SimplePosition } from \"../positioning/types.js\";\nimport { bem } from \"../utils/bem.js\";\n\nconst styles = bem(\"rmd-tooltip\");\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface TooltipClassNameOptions {\n className?: string;\n dense?: boolean;\n position: SimplePosition;\n disableLineWrap?: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function tooltip(options: TooltipClassNameOptions): string {\n const { dense, position, className, disableLineWrap } = options;\n\n return cnb(\n styles({\n dense,\n [position]: true,\n }),\n cssUtils({ textOverflow: disableLineWrap ? \"nowrap\" : undefined }),\n className\n );\n}\n"],"names":["cnb","cssUtils","bem","styles","tooltip","options","dense","position","className","disableLineWrap","textOverflow","undefined"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,QAAQ,QAAQ,iBAAiB;AAE1C,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,SAASD,IAAI;AAYnB;;CAEC,GACD,OAAO,SAASE,QAAQC,OAAgC;IACtD,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,eAAe,EAAE,GAAGJ;IAExD,OAAOL,IACLG,OAAO;QACLG;QACA,CAACC,SAAS,EAAE;IACd,IACAN,SAAS;QAAES,cAAcD,kBAAkB,WAAWE;IAAU,IAChEH;AAEJ"}
1
+ {"version":3,"sources":["../../src/tooltip/tooltipStyles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { cssUtils, type TextOverflow } from \"../cssUtils.js\";\nimport type { SimplePosition } from \"../positioning/types.js\";\nimport { bem } from \"../utils/bem.js\";\n\nconst styles = bem(\"rmd-tooltip\");\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface TooltipClassNameOptions {\n className?: string;\n dense?: boolean;\n position: SimplePosition;\n textOverflow?: TextOverflow;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function tooltip(options: TooltipClassNameOptions): string {\n const { dense, position, className, textOverflow } = options;\n\n return cnb(\n styles({\n dense,\n [position]: true,\n }),\n cssUtils({ textOverflow }),\n className\n );\n}\n"],"names":["cnb","cssUtils","bem","styles","tooltip","options","dense","position","className","textOverflow"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,QAAQ,QAA2B,iBAAiB;AAE7D,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,SAASD,IAAI;AAYnB;;CAEC,GACD,OAAO,SAASE,QAAQC,OAAgC;IACtD,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,YAAY,EAAE,GAAGJ;IAErD,OAAOL,IACLG,OAAO;QACLG;QACA,CAACC,SAAS,EAAE;IACd,IACAN,SAAS;QAAEQ;IAAa,IACxBD;AAEJ"}
@@ -1,4 +1,6 @@
1
- import type { CSSProperties, FocusEvent, MouseEvent, Ref, TouchEvent } from "react";
1
+ import type { CSSProperties, FocusEvent, MouseEvent, MutableRefObject, Ref, RefObject, TouchEvent } from "react";
2
+ import { type ControlledHoverModeImplementation } from "../hoverMode/useHoverMode.js";
3
+ import type { UserInteractionMode } from "../interaction/UserInteractionModeProvider.js";
2
4
  import type { SimplePosition } from "../positioning/types.js";
3
5
  import type { FixedPositioningTransitionCallbacks } from "../positioning/useFixedPositioning.js";
4
6
  import type { UseStateSetter } from "../types.js";
@@ -152,7 +154,7 @@ export interface TooltipOptions extends FixedPositioningTransitionCallbacks, Too
152
154
  *
153
155
  * @defaultValue `DEFAULT_TOOLTIP_DELAY`
154
156
  */
155
- hoverTime?: number;
157
+ hoverTimeout?: number;
156
158
  /**
157
159
  * The amount of time to wait before triggering the exit animation for the
158
160
  * tooltip.
@@ -162,16 +164,24 @@ export interface TooltipOptions extends FixedPositioningTransitionCallbacks, Too
162
164
  *
163
165
  * @defaultValue `0`
164
166
  */
165
- leaveTime?: number;
167
+ leaveTimeout?: number;
168
+ /**
169
+ * Set this to `true` to only allow the tooltip to become visible when the
170
+ * `event .currentTarget` or `overflowRef` has text overflow.
171
+ *
172
+ * @defaultValue `false`
173
+ * @remarks \@since 6.0.0
174
+ */
175
+ overflowOnly?: boolean;
166
176
  }
167
177
  /**
168
178
  * @remarks
169
179
  * \@since 2.8.0
170
180
  * \@since 6.0.0 This was renamed from `TooltipHookProvidedTooltipProps`
171
181
  */
172
- export interface ProvidedTooltipProps extends Required<FixedPositioningTransitionCallbacks> {
182
+ export interface ProvidedTooltipProps<E extends HTMLElement = HTMLSpanElement> extends Required<FixedPositioningTransitionCallbacks> {
173
183
  id: string;
174
- ref: Ref<HTMLSpanElement>;
184
+ ref: Ref<E>;
175
185
  dense: boolean;
176
186
  style: CSSProperties;
177
187
  visible: boolean;
@@ -185,17 +195,22 @@ export interface ProvidedTooltipProps extends Required<FixedPositioningTransitio
185
195
  * `TooltipHookReturnValue` to `TooltipImplementation` to match other hook
186
196
  * naming conventions.
187
197
  */
188
- export interface TooltipImplementation {
198
+ export interface TooltipImplementation<TooltipElement extends HTMLElement = HTMLSpanElement> extends ControlledHoverModeImplementation {
189
199
  visible: boolean;
190
200
  setVisible: UseStateSetter<boolean>;
191
201
  animatedOnce: boolean;
202
+ initiatedBy: MutableRefObject<UserInteractionMode | null>;
192
203
  elementProps: ProvidedTooltippedElementProps;
193
- tooltipProps: ProvidedTooltipProps;
204
+ tooltipProps: ProvidedTooltipProps<TooltipElement>;
194
205
  /**
195
206
  * This is a wrapper around the {@link setVisible} behavior that will also
196
207
  * clear any pending timeouts.
197
208
  */
198
209
  hideTooltip(): void;
210
+ /**
211
+ * @remarks \@since 6.0.0
212
+ */
213
+ overflowRef: RefObject<HTMLElement>;
199
214
  }
200
215
  /**
201
216
  * @example
@@ -217,6 +232,54 @@ export interface TooltipImplementation {
217
232
  * }
218
233
  * ```
219
234
  *
235
+ * @example
236
+ * Overflow-only Tooltips
237
+ * ```tsx
238
+ * import {
239
+ * cssUtils,
240
+ * Link,
241
+ * Tooltip,
242
+ * useTooltip,
243
+ * type LinkProps,
244
+ * } from "@react-md/core";
245
+ * import { type ReactElement } from "react";
246
+ *
247
+ * function NavigationLink(props: LinkProps): ReactElement {
248
+ * const { children, ...remaining } = props;
249
+ *
250
+ * // using the `overflowRef` is optional and will default to the
251
+ * // `event.currentTarget` when `null`
252
+ * const { overflowRef, elementProps, tooltipProps } = useOverflowTooltip({
253
+ * // just to pass any event handlers
254
+ * ...remaining,
255
+ * overflowOnly: true,
256
+ * });
257
+ *
258
+ * return (
259
+ * <Link {...remaining} {...elementProps} style={{ width: "100%" }}>
260
+ * <span ref={overflowRef} className={cssUtils({ textOverflow: "ellipsis" })}>
261
+ * {children}
262
+ * </span>
263
+ * <Tooltip {...tooltipProps}>
264
+ * {children}
265
+ * </Tooltip>
266
+ * </Link>
267
+ * );
268
+ * }
269
+ *
270
+ * function Example(): ReactElement {
271
+ * return (
272
+ * <div style={{ width: "10rem", overflow: "auto" }}>
273
+ * <NavigationLink href="/">Home</NavigationLink>
274
+ * <NavigationLink href="/some-path">
275
+ * Super long text that will be truncated with ellipsis and
276
+ * have a tooltip appear
277
+ * </NavigationLink>
278
+ * </div>
279
+ * );
280
+ * }
281
+ * ```
282
+ *
220
283
  * ## Inspecting Tooltip Styles
221
284
  *
222
285
  * Since tooltips will disappear on blur, mouseleave, etc, it is a bit hard to
@@ -239,4 +302,4 @@ export interface TooltipImplementation {
239
302
  * element when the click or history update happens. this causes the tooltip to
240
303
  * stay visible
241
304
  */
242
- export declare function useTooltip(options?: TooltipOptions): TooltipImplementation;
305
+ export declare function useTooltip<TooltipElement extends HTMLElement = HTMLSpanElement>(options?: TooltipOptions): TooltipImplementation<TooltipElement>;
@@ -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":"AAAA;AACA,SAASA,GAAG,QAAQ,YAAY;AAUhC,SAASC,WAAW,EAAEC,SAAS,EAAEC,KAAK,EAAEC,MAAM,QAAQ,QAAQ;AAC9D,SACEC,YAAY,QAEP,+BAA+B;AAEtC,SAASC,sBAAsB,QAAQ,gDAAgD;AAGvF,SAASC,mBAAmB,QAAQ,wCAAwC;AAE5E,SAASC,eAAe,QAAQ,wBAAwB;AACxD,SAASC,kBAAkB,QAAQ,iCAAiC;AACpE,SAASC,mBAAmB,QAAQ,gCAAgC;AACpE,SACEC,6BAA6B,EAC7BC,sBAAsB,EACtBC,wBAAwB,EACxBC,uBAAuB,EACvBC,yBAAyB,EACzBC,mBAAmB,QACd,iBAAiB;AAExB,SAASC,kBAAkB,QAAQ,0BAA0B;AAC7D,SAASC,SAAS,QAAQ,aAAa;AAUvC,MAAMC,OAAO;AACX,aAAa;AACf;AAuOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyFC,GACD,OAAO,SAASC,WAEdC,UAA0B,CAAC,CAAC;IAC5B,MAAM,EACJC,IAAIC,MAAM,EACVC,OAAOC,SAAS,EAChBC,WAAW,KAAK,EAChBC,WAAW,EACXC,QAAQ,KAAK,EACbC,YAAY,EACZC,YAAY,EACZC,WAAWnB,sBAAsB,EACjCoB,WAAWpB,sBAAsB,EACjCqB,UAAUnB,uBAAuB,EACjCoB,eAAevB,6BAA6B,EAC5CwB,eAAe,EACfC,kBAAkB,EAClBC,UAAUC,kBAAkB,EAC5BC,kBAAkB1B,wBAAwB,EAC1C2B,YAAYzB,yBAAyB,EACrC0B,SAAStB,IAAI,EACbuB,UAAUvB,IAAI,EACdwB,eAAexB,IAAI,EACnByB,eAAezB,IAAI,EACnB0B,eAAe1B,IAAI,EACnB2B,aAAa3B,IAAI,EACjB4B,gBAAgB5B,IAAI,EACpB6B,UAAU7B,IAAI,EACd8B,UAAU,EACVC,YAAY/B,IAAI,EAChBgC,QAAQ,EACRC,YAAY,EACb,GAAG/B;IAEJ,MAAMgC,aAAalD;IACnB,MAAMmB,KAAKC,UAAU8B;IACrB,MAAMC,YAAY,CAAC,EAAEhC,GAAG,QAAQ,CAAC;IACjC,MAAM,EACJiC,eAAe,EACfC,eAAe,EACfC,eAAe,EACfC,eAAe,EACfC,gBAAgB,EAChBC,iBAAiB,EACjBC,iBAAiB,EAClB,GAAGnD;IACJ,MAAM,EACJoD,OAAO,EACPC,UAAU,EACVC,aAAa,EACbC,aAAa,EACbC,sBAAsB,EACvB,GAAG7D,aAAa;QACfwB;QACA2B;QACA1B;QACA2B;QACAC;QACAC;QACAC;QACAC;IACF;IACA,MAAM,CAACxB,UAAU8B,eAAe,GAAGlD,mBAAmB;QACpDoB,UAAUC;QACVC;QACAC;IACF;IAEA,MAAM4B,OAAO9D;IACb,MAAM+D,aAAajE,OAA2B;IAC9C,MAAMkE,aAAalE,OAAuB;IAC1C,MAAMmE,cAAcnE,OAAoB;IACxC,MAAMoE,cAAcpE,OAAmC;IACvD,MAAM,EAAEqE,GAAG,EAAEjD,KAAK,EAAEkD,SAAS,EAAE,GAAGnE,oBAAoB;QACpDoE,SAASL;QACT9C,OAAOC;QACPmD,SAASP;QACTQ,QAAQ3D,UAAUmB;QAClBF,iBAAiBA,mBAAmB,CAAC,CAACG;QACtCwC;YACE,IAAIC,iBAAiBnD,QAAQM,eAAeD;YAC5C,MAAM+C,UAAUV,WAAWW,OAAO;YAClC,IAAI,CAAC7C,sBAAsB4C,SAAS;gBAClCD,iBACEG,OACGC,gBAAgB,CAACH,SACjBI,gBAAgB,CAACpE,wBAAwBiB;YAChD;YAEA,MAAMoD,iBAAiB5E,mBAAmB;gBACxC6E,OAAOP;YACT;YACA,MAAMQ,aAAalD,aAAa,UAAUA,aAAa;YAEvD,OAAO;gBACLN;gBACAC;gBACAwD,SAASD,aAAaF,iBAAiBI;gBACvCC,SAASH,aAAaE,YAAYJ;YACpC;QACF;QACArC,SAAQ2C,SAAS;YACf3C,QAAQ2C;YAER,oEAAoE;YACpE,sEAAsE;YACtE,uDAAuD;YACvD,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,gBAAgB,CAACzB,WAAWY,OAAO,EAAE;gBAChEZ,WAAWY,OAAO,GAAGc,SAASC,cAAc,CAAC1E;YAC/C;QACF;QACA2B;QACAC,WAAUyC,SAAS;YACjBzC,UAAUyC;YAEVpC,gBAAgB0B,OAAO,GAAG;QAC5B;QACA9B;IACF;IAEA,MAAM8C,cAAchG,YAAY;QAC9BuE,YAAYS,OAAO,GAAG;QACtBtB;QACAO;QACAH,WAAW;IACb,GAAG;QAACG;QAAwBP;QAAkBI;KAAW;IAEzD7D,UAAU;QACR,IAAI,CAAC4D,SAAS;YACZ;QACF;QAEA,MAAMoC,gBAAgB,CAACC;YACrB,IAAIA,MAAMC,GAAG,KAAK,UAAU;gBAC1BH;YACF;QACF;QAEAf,OAAOmB,gBAAgB,CAAC,WAAWH;QACnChB,OAAOmB,gBAAgB,CAAC,UAAUJ,aAAa;QAC/Cf,OAAOmB,gBAAgB,CAAC,YAAYJ,aAAa;QACjD,OAAO;YACLf,OAAOoB,mBAAmB,CAAC,WAAWJ;YACtChB,OAAOoB,mBAAmB,CAAC,UAAUL,aAAa;YAClDf,OAAOoB,mBAAmB,CAAC,YAAYL,aAAa;QACtD;IACF,GAAG;QAACA;QAAanC;KAAQ;IAEzB,MAAMyC,eAAenG,OAAO;IAC5B,MAAMoG,eAAepG,OAAO;IAC5BI,gBAAgB;QACdkB;QACA+E,mBAAmBR;QACnBS,UAASC,MAAM;YACb,IAAIA,QAAQ;gBACVJ,aAAatB,OAAO,GAAGC,OAAO0B,qBAAqB,CAAC;oBAClDJ,aAAavB,OAAO,GAAG;gBACzB;gBACA;YACF;YAEAuB,aAAavB,OAAO,GAAG;YACvBgB;QACF;IACF;IAEA,MAAMY,iBAAiB,CAACC;QACtB,IAAI,CAAC1D,cAAc;YACjB,OAAO;QACT;QAEA,MAAM2D,UAAUxC,YAAYU,OAAO,IAAI6B;QACvC,OAAO,CAACC,WAAWA,QAAQC,WAAW,IAAID,QAAQE,WAAW;IAC/D;IAEA,OAAO;QACLnD;QACAC;QACAkC;QACAiB,cAAc3D,gBAAgB0B,OAAO;QACrCT;QACAD;QACAP;QACAC;QACAC;QACAiD,cAAc;YACZ7F,IAAIgC;YACJmB;YACA7C;YACAJ;YACAsC;YACAzB;YACA,GAAGqC,SAAS;QACd;QACA0C,cAAc;YACZ,oBAAoBpH,IAAI8D,WAAWR,WAAW3B,gBAAgB8D;YAC9DnE;YACAqB,cAAawD,KAAK;gBAChBxD,aAAawD;gBACb,IACEzE,YACA0C,SAAS,WACTI,YAAYS,OAAO,KAAK,QACxB4B,eAAeV,MAAMW,aAAa,GAClC;oBACA;gBACF;gBAEAtC,YAAYS,OAAO,GAAG;gBACtBZ,WAAWY,OAAO,GAAGkB,MAAMW,aAAa;gBACxC3C,eAAegC,MAAMW,aAAa;gBAClC9C,cAAc1C;YAChB;YACAsB,cAAauD,KAAK;gBAChBvD,aAAauD;gBACb,IAAIzE,YAAY8C,YAAYS,OAAO,KAAK,SAAS;oBAC/C;gBACF;gBAEAhB;gBACAO,YAAYS,OAAO,GAAG;YACxB;YACAxC,QAAO0D,KAAK;gBACV1D,OAAO0D;gBACP,IAAIzE,UAAU;oBACZ;gBACF;gBAEA8C,YAAYS,OAAO,GAAG;gBACtBhB;YACF;YACAvB,SAAQyD,KAAK;gBACXzD,QAAQyD;gBACR,mEAAmE;gBACnE,8CAA8C;gBAC9C,IACEzE,YACA0C,SAAS,cACTI,YAAYS,OAAO,KAAK,QACxBuB,aAAavB,OAAO,IACpB4B,eAAeV,MAAMW,aAAa,GAClC;oBACAN,aAAavB,OAAO,GAAG;oBACvB;gBACF;gBAEAT,YAAYS,OAAO,GAAG;gBACtBZ,WAAWY,OAAO,GAAGkB,MAAMW,aAAa;gBACxC3C,eAAegC,MAAMW,aAAa;gBAClC9C,cAAc1C;YAChB;YACAuB,cAAasD,KAAK;gBAChBtD,aAAasD;gBACb,IACEzE,YACA8C,YAAYS,OAAO,KAAK,QACxB4B,eAAeV,MAAMW,aAAa,GAClC;oBACA;gBACF;gBAEAtC,YAAYS,OAAO,GAAG;gBACtBZ,WAAWY,OAAO,GAAGkB,MAAMW,aAAa;gBACxC3C,eAAegC,MAAMW,aAAa;gBAClC9C,cAAc1C;YAChB;YACAwB,YAAWqD,KAAK;gBACdrD,WAAWqD;gBACX,IAAIzE,UAAU;oBACZ;gBACF;gBAEA8C,YAAYS,OAAO,GAAG;gBACtBhB;YACF;YACAlB,eAAcoD,KAAK;gBACjBpD,cAAcoD;gBACd,IACEzE,YACA8C,YAAYS,OAAO,KAAK,WACxB4B,eAAeV,MAAMW,aAAa,GAClC;oBACA;gBACF;gBAEAX,MAAMkB,cAAc;gBACpB,MAAMC,YAAYpC,OAAOqC,YAAY;gBACrC,MAAMC,OAAOF,WAAWG,YAAYC;gBACpC,IAAIF,QAAQrB,MAAMW,aAAa,CAACa,QAAQ,CAACH,OAAO;oBAC9CF,UAAUM,KAAK;gBACjB;YACF;QACF;IACF;AACF"}
@@ -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();