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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1006) hide show
  1. package/.turbo/turbo-build.log +5 -5
  2. package/CHANGELOG.md +65 -0
  3. package/coverage/clover.xml +3 -1118
  4. package/coverage/coverage-final.json +1 -7
  5. package/coverage/lcov-report/CircularProgress.tsx.html +799 -0
  6. package/coverage/lcov-report/DefaultToastRenderer.tsx.html +166 -112
  7. package/coverage/lcov-report/Dialog.tsx.html +1309 -0
  8. package/coverage/lcov-report/DialogContent.tsx.html +178 -0
  9. package/coverage/lcov-report/DialogFooter.tsx.html +169 -0
  10. package/coverage/lcov-report/LinearProgress.tsx.html +658 -0
  11. package/coverage/lcov-report/MaterialIcon.tsx.html +36 -42
  12. package/coverage/lcov-report/MaterialSymbol.tsx.html +240 -222
  13. package/coverage/lcov-report/MenuItemInputToggle.tsx.html +979 -0
  14. package/coverage/lcov-report/MenuItemSeparator.tsx.html +223 -0
  15. package/coverage/lcov-report/MenuItemTextField.tsx.html +289 -0
  16. package/coverage/lcov-report/Snackbar.tsx.html +360 -402
  17. package/coverage/lcov-report/Switch.tsx.html +535 -0
  18. package/coverage/lcov-report/SwitchTrack.tsx.html +262 -0
  19. package/coverage/lcov-report/Table.tsx.html +457 -0
  20. package/coverage/lcov-report/TableCell.tsx.html +982 -0
  21. package/coverage/lcov-report/TableCheckbox.tsx.html +709 -0
  22. package/coverage/lcov-report/TableContainer.tsx.html +220 -0
  23. package/coverage/lcov-report/TableFooter.tsx.html +502 -0
  24. package/coverage/lcov-report/TableHeader.tsx.html +541 -0
  25. package/coverage/lcov-report/TableRadio.tsx.html +670 -0
  26. package/coverage/lcov-report/TableRow.tsx.html +289 -0
  27. package/coverage/lcov-report/Toast.tsx.html +868 -0
  28. package/coverage/lcov-report/ToastManager.tsx.html +1783 -0
  29. package/coverage/lcov-report/ToastManagerProvider.tsx.html +216 -216
  30. package/coverage/lcov-report/Tooltip.tsx.html +98 -155
  31. package/coverage/lcov-report/avatar/Avatar.tsx.html +37 -31
  32. package/coverage/lcov-report/avatar/index.html +22 -7
  33. package/coverage/lcov-report/avatar/styles.ts.html +268 -0
  34. package/coverage/lcov-report/button/AsyncButton.tsx.html +217 -10
  35. package/coverage/lcov-report/button/Button.tsx.html +95 -83
  36. package/coverage/lcov-report/button/index.html +12 -12
  37. package/coverage/lcov-report/config.ts.html +33 -18
  38. package/coverage/lcov-report/cssUtils.ts.html +143 -65
  39. package/coverage/lcov-report/dialog/Dialog.tsx.html +170 -167
  40. package/coverage/lcov-report/dialog/DialogContent.tsx.html +178 -0
  41. package/coverage/lcov-report/dialog/DialogFooter.tsx.html +169 -0
  42. package/coverage/lcov-report/dialog/DialogHeader.tsx.html +148 -0
  43. package/coverage/lcov-report/dialog/DialogTitle.tsx.html +256 -0
  44. package/coverage/lcov-report/dialog/index.html +18 -33
  45. package/coverage/lcov-report/dialog/styles.ts.html +439 -0
  46. package/coverage/lcov-report/form/MenuItemInputToggle.tsx.html +36 -24
  47. package/coverage/lcov-report/form/MenuItemTextField.tsx.html +12 -9
  48. package/coverage/lcov-report/form/SliderValueTooltip.tsx.html +319 -0
  49. package/coverage/lcov-report/form/Switch.tsx.html +310 -385
  50. package/coverage/lcov-report/form/SwitchTrack.tsx.html +98 -71
  51. package/coverage/lcov-report/form/index.html +20 -245
  52. package/coverage/lcov-report/form/switchStyles.ts.html +172 -0
  53. package/coverage/lcov-report/form/useRadioGroup.ts.html +79 -79
  54. package/coverage/lcov-report/hoverMode/index.html +116 -0
  55. package/coverage/lcov-report/hoverMode/useHoverMode.ts.html +676 -0
  56. package/coverage/lcov-report/icon/FontIcon.tsx.html +37 -46
  57. package/coverage/lcov-report/icon/index.html +12 -12
  58. package/coverage/lcov-report/icon/styles.ts.html +41 -104
  59. package/coverage/lcov-report/iconConfig.tsx.html +973 -0
  60. package/coverage/lcov-report/index.html +11 -101
  61. package/coverage/lcov-report/link/Link.tsx.html +358 -0
  62. package/coverage/lcov-report/link/index.html +20 -20
  63. package/coverage/lcov-report/list/ListItemLink.tsx.html +29 -35
  64. package/coverage/lcov-report/list/index.html +8 -38
  65. package/coverage/lcov-report/materialConfig.ts.html +703 -0
  66. package/coverage/lcov-report/media-queries/appSize.ts.html +1 -1
  67. package/coverage/lcov-report/media-queries/index.html +10 -10
  68. package/coverage/lcov-report/menu/DropdownMenu.tsx.html +976 -0
  69. package/coverage/lcov-report/menu/Menu.tsx.html +111 -60
  70. package/coverage/lcov-report/menu/MenuConfigurationProvider.tsx.html +637 -0
  71. package/coverage/lcov-report/menu/MenuSheet.tsx.html +37 -13
  72. package/coverage/lcov-report/menu/index.html +35 -65
  73. package/coverage/lcov-report/menu/menuConfig.ts.html +118 -0
  74. package/coverage/lcov-report/progress/CircularProgress.tsx.html +799 -0
  75. package/coverage/lcov-report/progress/LinearProgress.tsx.html +100 -94
  76. package/coverage/lcov-report/progress/index.html +22 -7
  77. package/coverage/lcov-report/snackbar/Snackbar.tsx.html +55 -97
  78. package/coverage/lcov-report/snackbar/Toast.tsx.html +546 -501
  79. package/coverage/lcov-report/snackbar/ToastManager.tsx.html +269 -269
  80. package/coverage/lcov-report/snackbar/ToastManagerProvider.tsx.html +23 -23
  81. package/coverage/lcov-report/snackbar/index.html +59 -14
  82. package/coverage/lcov-report/snackbar/snackbarStyles.ts.html +12 -87
  83. package/coverage/lcov-report/snackbar/toastStyles.ts.html +206 -146
  84. package/coverage/lcov-report/snackbar/useCurrentToastActions.ts.html +226 -0
  85. package/coverage/lcov-report/snackbarStyles.ts.html +46 -121
  86. package/coverage/lcov-report/src/CoreProviders.tsx.html +20 -20
  87. package/coverage/lcov-report/src/NoSsr.tsx.html +1 -1
  88. package/coverage/lcov-report/src/SsrProvider.tsx.html +10 -10
  89. package/coverage/lcov-report/src/app-bar/AppBar.tsx.html +65 -65
  90. package/coverage/lcov-report/src/app-bar/AppBarTitle.tsx.html +1 -1
  91. package/coverage/lcov-report/src/app-bar/index.html +20 -5
  92. package/coverage/lcov-report/src/avatar/Avatar.tsx.html +36 -27
  93. package/coverage/lcov-report/src/avatar/index.html +22 -7
  94. package/coverage/lcov-report/src/avatar/styles.ts.html +77 -8
  95. package/coverage/lcov-report/src/badge/Badge.tsx.html +1 -1
  96. package/coverage/lcov-report/src/badge/index.html +1 -1
  97. package/coverage/lcov-report/src/box/Box.tsx.html +1 -1
  98. package/coverage/lcov-report/src/box/index.html +10 -25
  99. package/coverage/lcov-report/src/box/styles.ts.html +103 -49
  100. package/coverage/lcov-report/src/button/AsyncButton.tsx.html +833 -284
  101. package/coverage/lcov-report/src/button/Button.tsx.html +87 -87
  102. package/coverage/lcov-report/src/button/ButtonUnstyled.tsx.html +1 -1
  103. package/coverage/lcov-report/src/button/FloatingActionButton.tsx.html +39 -39
  104. package/coverage/lcov-report/src/button/buttonStyles.ts.html +59 -59
  105. package/coverage/lcov-report/src/button/buttonUnstyledStyles.ts.html +1 -1
  106. package/coverage/lcov-report/src/button/index.html +23 -8
  107. package/coverage/lcov-report/src/card/Card.tsx.html +1 -1
  108. package/coverage/lcov-report/src/card/CardContent.tsx.html +1 -1
  109. package/coverage/lcov-report/src/card/CardFooter.tsx.html +1 -1
  110. package/coverage/lcov-report/src/card/CardHeader.tsx.html +1 -1
  111. package/coverage/lcov-report/src/card/CardSubtitle.tsx.html +1 -1
  112. package/coverage/lcov-report/src/card/CardTitle.tsx.html +1 -1
  113. package/coverage/lcov-report/src/card/index.html +95 -5
  114. package/coverage/lcov-report/src/card/styles.ts.html +1 -1
  115. package/coverage/lcov-report/src/chip/Chip.tsx.html +1 -1
  116. package/coverage/lcov-report/src/chip/index.html +1 -1
  117. package/coverage/lcov-report/src/chip/styles.ts.html +1 -1
  118. package/coverage/lcov-report/src/cssUtils.ts.html +68 -59
  119. package/coverage/lcov-report/src/delegateEvent.ts.html +84 -84
  120. package/coverage/lcov-report/src/dialog/Dialog.tsx.html +158 -155
  121. package/coverage/lcov-report/src/dialog/DialogContainer.tsx.html +27 -27
  122. package/coverage/lcov-report/src/dialog/DialogContent.tsx.html +72 -72
  123. package/coverage/lcov-report/src/dialog/DialogFooter.tsx.html +14 -14
  124. package/coverage/lcov-report/src/dialog/DialogHeader.tsx.html +9 -9
  125. package/coverage/lcov-report/src/dialog/DialogTitle.tsx.html +124 -124
  126. package/coverage/lcov-report/src/dialog/FixedDialog.tsx.html +1 -1
  127. package/coverage/lcov-report/src/dialog/NestedDialogProvider.ts.html +3 -3
  128. package/coverage/lcov-report/src/dialog/index.html +21 -21
  129. package/coverage/lcov-report/src/dialog/styles.ts.html +61 -61
  130. package/coverage/lcov-report/src/divider/Divider.tsx.html +24 -24
  131. package/coverage/lcov-report/src/divider/index.html +21 -6
  132. package/coverage/lcov-report/src/divider/styles.ts.html +11 -11
  133. package/coverage/lcov-report/src/draggable/index.html +5 -5
  134. package/coverage/lcov-report/src/draggable/useDraggable.ts.html +322 -322
  135. package/coverage/lcov-report/src/draggable/utils.ts.html +81 -81
  136. package/coverage/lcov-report/src/expansion-panel/ExpansionList.tsx.html +1 -1
  137. package/coverage/lcov-report/src/expansion-panel/ExpansionPanel.tsx.html +1 -1
  138. package/coverage/lcov-report/src/expansion-panel/ExpansionPanelHeader.tsx.html +11 -20
  139. package/coverage/lcov-report/src/expansion-panel/index.html +25 -10
  140. package/coverage/lcov-report/src/expansion-panel/useExpansionList.ts.html +1 -1
  141. package/coverage/lcov-report/src/expansion-panel/useExpansionPanels.ts.html +1 -1
  142. package/coverage/lcov-report/src/focus/index.html +23 -23
  143. package/coverage/lcov-report/src/focus/useFocusContainer.ts.html +142 -121
  144. package/coverage/lcov-report/src/focus/utils.ts.html +37 -37
  145. package/coverage/lcov-report/src/form/Checkbox.tsx.html +1 -1
  146. package/coverage/lcov-report/src/form/Fieldset.tsx.html +1 -1
  147. package/coverage/lcov-report/src/form/FileInput.tsx.html +133 -139
  148. package/coverage/lcov-report/src/form/Form.tsx.html +1 -1
  149. package/coverage/lcov-report/src/form/FormMessage.tsx.html +126 -264
  150. package/coverage/lcov-report/src/form/FormMessageContainer.tsx.html +42 -45
  151. package/coverage/lcov-report/src/form/FormMessageCounter.tsx.html +1 -1
  152. package/coverage/lcov-report/src/form/InputToggle.tsx.html +7 -16
  153. package/coverage/lcov-report/src/form/InputToggleIcon.tsx.html +1 -1
  154. package/coverage/lcov-report/src/form/Label.tsx.html +102 -102
  155. package/coverage/lcov-report/src/form/Legend.tsx.html +1 -1
  156. package/coverage/lcov-report/src/form/MenuItemCheckbox.tsx.html +11 -5
  157. package/coverage/lcov-report/src/form/MenuItemFileInput.tsx.html +3 -3
  158. package/coverage/lcov-report/src/form/MenuItemInputToggle.tsx.html +21 -9
  159. package/coverage/lcov-report/src/form/MenuItemRadio.tsx.html +11 -5
  160. package/coverage/lcov-report/src/form/MenuItemSwitch.tsx.html +1 -1
  161. package/coverage/lcov-report/src/form/MenuItemTextField.tsx.html +13 -4
  162. package/coverage/lcov-report/src/form/NativeSelect.tsx.html +20 -5
  163. package/coverage/lcov-report/src/form/OptGroup.tsx.html +1 -1
  164. package/coverage/lcov-report/src/form/Option.tsx.html +4 -4
  165. package/coverage/lcov-report/src/form/Password.tsx.html +3 -3
  166. package/coverage/lcov-report/src/form/Radio.tsx.html +1 -1
  167. package/coverage/lcov-report/src/form/Select.tsx.html +1 -1
  168. package/coverage/lcov-report/src/form/SelectValue.tsx.html +1 -1
  169. package/coverage/lcov-report/src/form/Slider.tsx.html +129 -9
  170. package/coverage/lcov-report/src/form/SliderContainer.tsx.html +1 -1
  171. package/coverage/lcov-report/src/form/SliderMark.tsx.html +1 -1
  172. package/coverage/lcov-report/src/form/SliderMarkLabel.tsx.html +1 -1
  173. package/coverage/lcov-report/src/form/SliderThumb.tsx.html +43 -7
  174. package/coverage/lcov-report/src/form/SliderTrack.tsx.html +1 -1
  175. package/coverage/lcov-report/src/form/SliderValueMarks.tsx.html +11 -5
  176. package/coverage/lcov-report/src/form/SliderValueTooltip.tsx.html +2 -2
  177. package/coverage/lcov-report/src/form/Switch.tsx.html +310 -373
  178. package/coverage/lcov-report/src/form/SwitchTrack.tsx.html +99 -69
  179. package/coverage/lcov-report/src/form/TextArea.tsx.html +21 -9
  180. package/coverage/lcov-report/src/form/TextField.tsx.html +16 -10
  181. package/coverage/lcov-report/src/form/TextFieldAddon.tsx.html +14 -26
  182. package/coverage/lcov-report/src/form/TextFieldContainer.tsx.html +28 -10
  183. package/coverage/lcov-report/src/form/TextFieldContainerStyles.ts.html +17 -8
  184. package/coverage/lcov-report/src/form/fileUtils.ts.html +3 -3
  185. package/coverage/lcov-report/src/form/formConfig.ts.html +18 -18
  186. package/coverage/lcov-report/src/form/formMessageStyles.ts.html +40 -40
  187. package/coverage/lcov-report/src/form/index.html +14 -164
  188. package/coverage/lcov-report/src/form/inputToggleStyles.ts.html +1 -1
  189. package/coverage/lcov-report/src/form/nativeSelectStyles.ts.html +34 -7
  190. package/coverage/lcov-report/src/form/optionStyles.ts.html +1 -1
  191. package/coverage/lcov-report/src/form/passwordStyles.ts.html +1 -1
  192. package/coverage/lcov-report/src/form/selectStyles.ts.html +1 -1
  193. package/coverage/lcov-report/src/form/selectUtils.ts.html +6 -9
  194. package/coverage/lcov-report/src/form/sliderUtils.ts.html +20 -14
  195. package/coverage/lcov-report/src/form/switchStyles.ts.html +68 -68
  196. package/coverage/lcov-report/src/form/textAreaStyles.ts.html +3 -3
  197. package/coverage/lcov-report/src/form/textFieldStyles.ts.html +1 -1
  198. package/coverage/lcov-report/src/form/useCheckboxGroup.ts.html +2 -2
  199. package/coverage/lcov-report/src/form/useFileUpload.ts.html +28 -19
  200. package/coverage/lcov-report/src/form/useListboxProvider.ts.html +5 -8
  201. package/coverage/lcov-report/src/form/useNumberField.ts.html +10 -10
  202. package/coverage/lcov-report/src/form/useRadioGroup.ts.html +22 -7
  203. package/coverage/lcov-report/src/form/useRangeSlider.ts.html +3 -3
  204. package/coverage/lcov-report/src/form/useResizingTextArea.ts.html +523 -0
  205. package/coverage/lcov-report/src/form/useSlider.ts.html +2 -2
  206. package/coverage/lcov-report/src/form/useTextField.ts.html +32 -26
  207. package/coverage/lcov-report/src/form/utils.ts.html +2 -2
  208. package/coverage/lcov-report/src/form/validation.ts.html +2 -2
  209. package/coverage/lcov-report/src/hoverMode/index.html +1 -1
  210. package/coverage/lcov-report/src/hoverMode/useHoverMode.ts.html +95 -95
  211. package/coverage/lcov-report/src/hoverMode/useHoverModeProvider.ts.html +3 -3
  212. package/coverage/lcov-report/src/icon/FontIcon.tsx.html +34 -43
  213. package/coverage/lcov-report/src/icon/IconRotator.tsx.html +1 -1
  214. package/coverage/lcov-report/src/icon/MaterialIcon.tsx.html +36 -42
  215. package/coverage/lcov-report/src/icon/MaterialSymbol.tsx.html +240 -222
  216. package/coverage/lcov-report/src/icon/SVGIcon.tsx.html +1 -1
  217. package/coverage/lcov-report/src/icon/TextIconSpacing.tsx.html +33 -33
  218. package/coverage/lcov-report/src/icon/iconConfig.tsx.html +973 -0
  219. package/coverage/lcov-report/src/icon/index.html +149 -14
  220. package/coverage/lcov-report/src/icon/material.ts.html +748 -58
  221. package/coverage/lcov-report/src/icon/materialConfig.ts.html +703 -0
  222. package/coverage/lcov-report/src/icon/styles.ts.html +47 -110
  223. package/coverage/lcov-report/src/index.html +8 -8
  224. package/coverage/lcov-report/src/interaction/Ripple.tsx.html +60 -60
  225. package/coverage/lcov-report/src/interaction/RippleContainer.tsx.html +41 -47
  226. package/coverage/lcov-report/src/interaction/UserInteractionModeProvider.tsx.html +240 -240
  227. package/coverage/lcov-report/src/interaction/config.ts.html +7 -7
  228. package/coverage/lcov-report/src/interaction/index.html +100 -10
  229. package/coverage/lcov-report/src/interaction/useElementInteraction.tsx.html +146 -146
  230. package/coverage/lcov-report/src/interaction/useHigherContrastChildren.tsx.html +17 -17
  231. package/coverage/lcov-report/src/interaction/utils.ts.html +171 -171
  232. package/coverage/lcov-report/src/layout/LayoutAppBar.tsx.html +1 -1
  233. package/coverage/lcov-report/src/layout/LayoutNav.tsx.html +60 -60
  234. package/coverage/lcov-report/src/layout/LayoutWindowSplitter.tsx.html +1 -1
  235. package/coverage/lcov-report/src/layout/Main.tsx.html +1 -1
  236. package/coverage/lcov-report/src/layout/index.html +200 -5
  237. package/coverage/lcov-report/src/layout/layoutNavStyles.ts.html +5 -5
  238. package/coverage/lcov-report/src/layout/layoutWindowSplitterStyles.ts.html +1 -1
  239. package/coverage/lcov-report/src/layout/mainStyles.ts.html +1 -1
  240. package/coverage/lcov-report/src/layout/useExpandableLayout.ts.html +1 -1
  241. package/coverage/lcov-report/src/layout/useHorizontalLayoutTransition.ts.html +1 -1
  242. package/coverage/lcov-report/src/layout/useLayoutAppBarHeight.ts.html +1 -1
  243. package/coverage/lcov-report/src/layout/useLayoutTree.ts.html +1 -1
  244. package/coverage/lcov-report/src/layout/useLayoutWindowSplitter.ts.html +1 -1
  245. package/coverage/lcov-report/src/layout/useMainTabIndex.ts.html +1 -1
  246. package/coverage/lcov-report/src/layout/useResizableLayout.ts.html +1 -1
  247. package/coverage/lcov-report/src/layout/useTemporaryLayout.ts.html +3 -3
  248. package/coverage/lcov-report/src/link/Link.tsx.html +39 -9
  249. package/coverage/lcov-report/src/link/SkipToMainContent.tsx.html +1 -1
  250. package/coverage/lcov-report/src/link/index.html +16 -16
  251. package/coverage/lcov-report/src/link/styles.ts.html +1 -1
  252. package/coverage/lcov-report/src/list/List.tsx.html +33 -33
  253. package/coverage/lcov-report/src/list/ListItem.tsx.html +534 -534
  254. package/coverage/lcov-report/src/list/ListItemAddon.tsx.html +33 -33
  255. package/coverage/lcov-report/src/list/ListItemChildren.tsx.html +77 -77
  256. package/coverage/lcov-report/src/list/ListItemLink.tsx.html +2 -2
  257. package/coverage/lcov-report/src/list/ListItemText.tsx.html +35 -35
  258. package/coverage/lcov-report/src/list/ListSubheader.tsx.html +1 -1
  259. package/coverage/lcov-report/src/list/getListItemHeight.ts.html +33 -33
  260. package/coverage/lcov-report/src/list/index.html +128 -8
  261. package/coverage/lcov-report/src/list/listItemStyles.ts.html +1 -1
  262. package/coverage/lcov-report/src/media-queries/AppSizeProvider.tsx.html +59 -59
  263. package/coverage/lcov-report/src/media-queries/appSize.ts.html +1 -1
  264. package/coverage/lcov-report/src/media-queries/index.html +20 -5
  265. package/coverage/lcov-report/src/media-queries/useMediaQuery.ts.html +24 -24
  266. package/coverage/lcov-report/src/menu/DropdownMenu.tsx.html +73 -16
  267. package/coverage/lcov-report/src/menu/Menu.tsx.html +66 -33
  268. package/coverage/lcov-report/src/menu/MenuBar.tsx.html +1 -1
  269. package/coverage/lcov-report/src/menu/MenuButton.tsx.html +3 -3
  270. package/coverage/lcov-report/src/menu/MenuConfigurationProvider.tsx.html +1 -1
  271. package/coverage/lcov-report/src/menu/MenuItem.tsx.html +1 -1
  272. package/coverage/lcov-report/src/menu/MenuItemButton.tsx.html +3 -3
  273. package/coverage/lcov-report/src/menu/MenuItemGroup.tsx.html +1 -1
  274. package/coverage/lcov-report/src/menu/MenuItemSeparator.tsx.html +6 -36
  275. package/coverage/lcov-report/src/menu/MenuSheet.tsx.html +34 -7
  276. package/coverage/lcov-report/src/menu/MenuVisibilityProvider.tsx.html +1 -1
  277. package/coverage/lcov-report/src/menu/MenuWidget.tsx.html +1 -1
  278. package/coverage/lcov-report/src/menu/MenuWidgetKeyboardProvider.tsx.html +1 -1
  279. package/coverage/lcov-report/src/menu/index.html +69 -24
  280. package/coverage/lcov-report/src/menu/useContextMenu.ts.html +1 -1
  281. package/coverage/lcov-report/src/menu/useMenuBarProvider.ts.html +1 -1
  282. package/coverage/lcov-report/src/menu/utils.ts.html +10 -10
  283. package/coverage/lcov-report/src/movement/constants.ts.html +1 -1
  284. package/coverage/lcov-report/src/movement/findMatchIndex.ts.html +1 -1
  285. package/coverage/lcov-report/src/movement/index.html +53 -8
  286. package/coverage/lcov-report/src/movement/useKeyboardMovementProvider.ts.html +92 -92
  287. package/coverage/lcov-report/src/movement/utils.ts.html +1 -1
  288. package/coverage/lcov-report/src/overlay/Overlay.tsx.html +64 -64
  289. package/coverage/lcov-report/src/overlay/index.html +1 -1
  290. package/coverage/lcov-report/src/overlay/overlayStyles.ts.html +28 -28
  291. package/coverage/lcov-report/src/portal/Portal.tsx.html +9 -9
  292. package/coverage/lcov-report/src/portal/PortalContainerProvider.tsx.html +29 -29
  293. package/coverage/lcov-report/src/portal/index.html +20 -5
  294. package/coverage/lcov-report/src/positioning/constants.ts.html +1 -1
  295. package/coverage/lcov-report/src/positioning/createHorizontalPosition.ts.html +63 -63
  296. package/coverage/lcov-report/src/positioning/createVerticalPosition.ts.html +65 -65
  297. package/coverage/lcov-report/src/positioning/getFixedPosition.ts.html +94 -94
  298. package/coverage/lcov-report/src/positioning/index.html +70 -10
  299. package/coverage/lcov-report/src/positioning/useFixedPositioning.ts.html +200 -200
  300. package/coverage/lcov-report/src/positioning/utils.ts.html +111 -111
  301. package/coverage/lcov-report/src/progress/CircularProgress.tsx.html +501 -456
  302. package/coverage/lcov-report/src/progress/LinearProgress.tsx.html +419 -338
  303. package/coverage/lcov-report/src/progress/getProgressA11y.ts.html +1 -1
  304. package/coverage/lcov-report/src/progress/index.html +32 -32
  305. package/coverage/lcov-report/src/responsive-item/ResponsiveItemContainer.tsx.html +1 -1
  306. package/coverage/lcov-report/src/responsive-item/ResponsiveItemOverlay.tsx.html +1 -1
  307. package/coverage/lcov-report/src/responsive-item/index.html +20 -5
  308. package/coverage/lcov-report/src/responsive-item/styles.ts.html +1 -1
  309. package/coverage/lcov-report/src/scroll/ScrollLock.tsx.html +1 -1
  310. package/coverage/lcov-report/src/scroll/getScrollbarWidth.ts.html +25 -25
  311. package/coverage/lcov-report/src/scroll/index.html +5 -5
  312. package/coverage/lcov-report/src/scroll/useScrollLock.ts.html +27 -27
  313. package/coverage/lcov-report/src/segmented-button/SegmentedButton.tsx.html +4 -4
  314. package/coverage/lcov-report/src/segmented-button/SegmentedButtonContainer.tsx.html +29 -8
  315. package/coverage/lcov-report/src/segmented-button/index.html +50 -5
  316. package/coverage/lcov-report/src/segmented-button/segmentedButtonContainerStyles.ts.html +15 -6
  317. package/coverage/lcov-report/src/segmented-button/segmentedButtonStyles.ts.html +1 -1
  318. package/coverage/lcov-report/src/sheet/Sheet.tsx.html +1 -1
  319. package/coverage/lcov-report/src/sheet/index.html +20 -5
  320. package/coverage/lcov-report/src/sheet/styles.ts.html +28 -28
  321. package/coverage/lcov-report/src/snackbar/DefaultToastRenderer.tsx.html +8 -5
  322. package/coverage/lcov-report/src/snackbar/Snackbar.tsx.html +7 -133
  323. package/coverage/lcov-report/src/snackbar/Toast.tsx.html +2 -2
  324. package/coverage/lcov-report/src/snackbar/ToastActionButton.tsx.html +1 -1
  325. package/coverage/lcov-report/src/snackbar/ToastCloseButton.tsx.html +3 -3
  326. package/coverage/lcov-report/src/snackbar/ToastContent.tsx.html +7 -115
  327. package/coverage/lcov-report/src/snackbar/ToastManager.tsx.html +1783 -0
  328. package/coverage/lcov-report/src/snackbar/ToastManagerProvider.tsx.html +16 -1696
  329. package/coverage/lcov-report/src/snackbar/index.html +159 -9
  330. package/coverage/lcov-report/src/snackbar/snackbarStyles.ts.html +214 -0
  331. package/coverage/lcov-report/src/snackbar/toastContentStyles.ts.html +196 -0
  332. package/coverage/lcov-report/src/snackbar/toastStyles.ts.html +1 -1
  333. package/coverage/lcov-report/src/snackbar/useCurrentToastActions.ts.html +1 -1
  334. package/coverage/lcov-report/src/suspense/CircularProgressSuspense.tsx.html +57 -6
  335. package/coverage/lcov-report/src/suspense/NullSuspense.tsx.html +1 -1
  336. package/coverage/lcov-report/src/suspense/index.html +7 -22
  337. package/coverage/lcov-report/src/table/Table.tsx.html +1 -1
  338. package/coverage/lcov-report/src/table/TableBody.tsx.html +1 -1
  339. package/coverage/lcov-report/src/table/TableCell.tsx.html +20 -35
  340. package/coverage/lcov-report/src/table/TableCellContent.tsx.html +2 -2
  341. package/coverage/lcov-report/src/table/TableCheckbox.tsx.html +1 -1
  342. package/coverage/lcov-report/src/table/TableConfigurationProvider.tsx.html +6 -12
  343. package/coverage/lcov-report/src/table/TableContainer.tsx.html +1 -1
  344. package/coverage/lcov-report/src/table/TableContainerProvider.tsx.html +1 -1
  345. package/coverage/lcov-report/src/table/TableFooter.tsx.html +1 -1
  346. package/coverage/lcov-report/src/table/TableHeader.tsx.html +1 -1
  347. package/coverage/lcov-report/src/table/TableRow.tsx.html +1 -1
  348. package/coverage/lcov-report/src/table/index.html +113 -8
  349. package/coverage/lcov-report/src/tabs/Tab.tsx.html +69 -69
  350. package/coverage/lcov-report/src/tabs/TabList.tsx.html +92 -92
  351. package/coverage/lcov-report/src/tabs/TabListScrollButton.tsx.html +61 -61
  352. package/coverage/lcov-report/src/tabs/index.html +143 -8
  353. package/coverage/lcov-report/src/tabs/tabIndicatorStyles.ts.html +157 -0
  354. package/coverage/lcov-report/src/tabs/tabListScrollButtonStyles.ts.html +226 -0
  355. package/coverage/lcov-report/src/tabs/tabListStyles.ts.html +241 -0
  356. package/coverage/lcov-report/src/tabs/tabStyles.ts.html +17 -17
  357. package/coverage/lcov-report/src/tabs/useTabList.ts.html +94 -94
  358. package/coverage/lcov-report/src/tabs/useTabs.ts.html +54 -54
  359. package/coverage/lcov-report/src/tabs/utils.ts.html +3 -3
  360. package/coverage/lcov-report/src/test-utils/IntersectionObserver.ts.html +1 -1
  361. package/coverage/lcov-report/src/test-utils/ResizeObserver.ts.html +1 -1
  362. package/coverage/lcov-report/src/test-utils/data-testid.ts.html +100 -0
  363. package/coverage/lcov-report/src/test-utils/drag.ts.html +1 -1
  364. package/coverage/lcov-report/src/test-utils/index.html +114 -9
  365. package/coverage/lcov-report/src/test-utils/jest-setup.ts.html +21 -9
  366. package/coverage/lcov-report/src/test-utils/matchMedia.ts.html +4 -4
  367. package/coverage/lcov-report/src/test-utils/polyfills/IntersectionObserver.ts.html +4 -4
  368. package/coverage/lcov-report/src/test-utils/polyfills/ResizeObserver.ts.html +3 -3
  369. package/coverage/lcov-report/src/test-utils/polyfills/index.html +1 -1
  370. package/coverage/lcov-report/src/test-utils/polyfills/matchMedia.ts.html +6 -6
  371. package/coverage/lcov-report/src/test-utils/polyfills/offsetParent.ts.html +14 -14
  372. package/coverage/lcov-report/src/test-utils/polyfills/scrollIntoView.ts.html +5 -5
  373. package/coverage/lcov-report/src/test-utils/render.tsx.html +21 -21
  374. package/coverage/lcov-report/src/test-utils/timers.ts.html +1 -1
  375. package/coverage/lcov-report/src/theme/LocalStorageColorSchemeProvider.tsx.html +1 -1
  376. package/coverage/lcov-report/src/theme/ThemeProvider.tsx.html +22 -4
  377. package/coverage/lcov-report/src/theme/colors.ts.html +1 -1
  378. package/coverage/lcov-report/src/theme/cssVars.ts.html +1 -1
  379. package/coverage/lcov-report/src/theme/index.html +71 -11
  380. package/coverage/lcov-report/src/theme/useCSSVariables.ts.html +1 -1
  381. package/coverage/lcov-report/src/theme/useColorScheme.ts.html +1 -1
  382. package/coverage/lcov-report/src/theme/useColorSchemeMetaTag.ts.html +1 -1
  383. package/coverage/lcov-report/src/theme/useColorSchemeProvider.ts.html +1 -1
  384. package/coverage/lcov-report/src/theme/usePrefersColorScheme.ts.html +1 -1
  385. package/coverage/lcov-report/src/theme/utils.ts.html +58 -58
  386. package/coverage/lcov-report/src/tooltip/Tooltip.tsx.html +98 -74
  387. package/coverage/lcov-report/src/tooltip/TooltipHoverModeProvider.tsx.html +60 -6
  388. package/coverage/lcov-report/src/tooltip/constants.ts.html +1 -1
  389. package/coverage/lcov-report/src/tooltip/index.html +72 -27
  390. package/coverage/lcov-report/src/tooltip/tooltipStyles.ts.html +18 -18
  391. package/coverage/lcov-report/src/tooltip/useOverflowTooltip.ts.html +196 -196
  392. package/coverage/lcov-report/src/tooltip/useTooltip.ts.html +511 -211
  393. package/coverage/lcov-report/src/tooltip/useTooltipPosition.ts.html +29 -29
  394. package/coverage/lcov-report/src/tooltip/utils.ts.html +23 -23
  395. package/coverage/lcov-report/src/transition/CSSTransition.tsx.html +1 -1
  396. package/coverage/lcov-report/src/transition/Collapse.tsx.html +1 -1
  397. package/coverage/lcov-report/src/transition/CrossFade.tsx.html +1 -1
  398. package/coverage/lcov-report/src/transition/ScaleTransition.tsx.html +1 -1
  399. package/coverage/lcov-report/src/transition/SkeletonPlaceholder.tsx.html +1 -1
  400. package/coverage/lcov-report/src/transition/Slide.tsx.html +46 -46
  401. package/coverage/lcov-report/src/transition/SlideContainer.tsx.html +1 -1
  402. package/coverage/lcov-report/src/transition/collapseStyles.ts.html +13 -13
  403. package/coverage/lcov-report/src/transition/config.ts.html +187 -0
  404. package/coverage/lcov-report/src/transition/index.html +295 -10
  405. package/coverage/lcov-report/src/transition/maxWidthTransition.ts.html +1 -1
  406. package/coverage/lcov-report/src/transition/useCSSTransition.ts.html +69 -69
  407. package/coverage/lcov-report/src/transition/useCarousel.ts.html +1 -1
  408. package/coverage/lcov-report/src/transition/useCollapseTransition.ts.html +99 -99
  409. package/coverage/lcov-report/src/transition/useCrossFadeTransition.ts.html +1 -1
  410. package/coverage/lcov-report/src/transition/useMaxWidthTransition.ts.html +1 -1
  411. package/coverage/lcov-report/src/transition/useScaleTransition.ts.html +18 -18
  412. package/coverage/lcov-report/src/transition/useSkeletonPlaceholder.ts.html +1 -1
  413. package/coverage/lcov-report/src/transition/useSlideTransition.ts.html +20 -20
  414. package/coverage/lcov-report/src/transition/useTransition.ts.html +277 -250
  415. package/coverage/lcov-report/src/transition/utils.ts.html +68 -68
  416. package/coverage/lcov-report/src/tree/DefaultTreeItemRenderer.tsx.html +2 -2
  417. package/coverage/lcov-report/src/tree/Tree.tsx.html +24 -36
  418. package/coverage/lcov-report/src/tree/TreeGroup.tsx.html +45 -45
  419. package/coverage/lcov-report/src/tree/TreeItem.tsx.html +213 -216
  420. package/coverage/lcov-report/src/tree/TreeItemExpander.tsx.html +3 -3
  421. package/coverage/lcov-report/src/tree/TreeProvider.tsx.html +29 -11
  422. package/coverage/lcov-report/src/tree/index.html +114 -9
  423. package/coverage/lcov-report/src/tree/styles.ts.html +1 -1
  424. package/coverage/lcov-report/src/tree/useTree.ts.html +1 -1
  425. package/coverage/lcov-report/src/tree/useTreeExpansion.ts.html +1 -1
  426. package/coverage/lcov-report/src/tree/useTreeItems.ts.html +10 -13
  427. package/coverage/lcov-report/src/tree/useTreeMovement.ts.html +1 -1
  428. package/coverage/lcov-report/src/tree/useTreeSelection.ts.html +1 -1
  429. package/coverage/lcov-report/src/tree/utils.ts.html +1 -1
  430. package/coverage/lcov-report/src/typography/SrOnly.tsx.html +26 -26
  431. package/coverage/lcov-report/src/typography/TextContainer.tsx.html +1 -1
  432. package/coverage/lcov-report/src/typography/Typography.tsx.html +71 -71
  433. package/coverage/lcov-report/src/typography/WritingDirectionProvider.tsx.html +75 -75
  434. package/coverage/lcov-report/src/typography/index.html +64 -19
  435. package/coverage/lcov-report/src/useAsyncAction.ts.html +25 -25
  436. package/coverage/lcov-report/src/useDebouncedFunction.ts.html +1 -1
  437. package/coverage/lcov-report/src/useDropzone.ts.html +1 -1
  438. package/coverage/lcov-report/src/useEnsuredId.ts.html +8 -8
  439. package/coverage/lcov-report/src/useEnsuredRef.ts.html +22 -19
  440. package/coverage/lcov-report/src/useEnsuredState.ts.html +18 -18
  441. package/coverage/lcov-report/src/useHtmlClassName.ts.html +1 -1
  442. package/coverage/lcov-report/src/useIntersectionObserver.ts.html +32 -32
  443. package/coverage/lcov-report/src/useIsomorphicLayoutEffect.ts.html +1 -1
  444. package/coverage/lcov-report/src/useLocalStorage.ts.html +225 -225
  445. package/coverage/lcov-report/src/useOrientation.ts.html +32 -32
  446. package/coverage/lcov-report/src/usePageInactive.ts.html +25 -25
  447. package/coverage/lcov-report/src/useResizeListener.ts.html +1 -1
  448. package/coverage/lcov-report/src/useResizeObserver.ts.html +28 -28
  449. package/coverage/lcov-report/src/useThrottledFunction.ts.html +1 -1
  450. package/coverage/lcov-report/src/useToggle.ts.html +18 -18
  451. package/coverage/lcov-report/src/useUnmounted.ts.html +11 -11
  452. package/coverage/lcov-report/src/useWindowSize.ts.html +1 -1
  453. package/coverage/lcov-report/src/utils/RenderRecursively.tsx.html +1 -1
  454. package/coverage/lcov-report/src/utils/alphaNumericSort.ts.html +1 -1
  455. package/coverage/lcov-report/src/utils/applyRef.ts.html +11 -11
  456. package/coverage/lcov-report/src/utils/bem.ts.html +50 -50
  457. package/coverage/lcov-report/src/utils/filters.ts.html +1 -1
  458. package/coverage/lcov-report/src/utils/getClientPosition.ts.html +1 -1
  459. package/coverage/lcov-report/src/utils/getPercentage.ts.html +36 -36
  460. package/coverage/lcov-report/src/utils/getRangeDefaultValue.ts.html +1 -1
  461. package/coverage/lcov-report/src/utils/getRangeSteps.ts.html +1 -1
  462. package/coverage/lcov-report/src/utils/identity.ts.html +1 -1
  463. package/coverage/lcov-report/src/utils/index.html +212 -17
  464. package/coverage/lcov-report/src/utils/isElementVisible.ts.html +14 -14
  465. package/coverage/lcov-report/src/utils/loop.ts.html +1 -1
  466. package/coverage/lcov-report/src/utils/nearest.ts.html +1 -1
  467. package/coverage/lcov-report/src/utils/parseCssLengthUnit.ts.html +41 -41
  468. package/coverage/lcov-report/src/utils/randomInt.ts.html +1 -1
  469. package/coverage/lcov-report/src/utils/wait.ts.html +1 -1
  470. package/coverage/lcov-report/src/utils/withinRange.ts.html +1 -1
  471. package/coverage/lcov-report/src/window-splitter/WindowSplitter.tsx.html +1 -1
  472. package/coverage/lcov-report/src/window-splitter/index.html +1 -1
  473. package/coverage/lcov-report/src/window-splitter/useWindowSplitter.ts.html +1 -1
  474. package/coverage/lcov-report/styles.ts.html +134 -320
  475. package/coverage/lcov-report/switchStyles.ts.html +172 -0
  476. package/coverage/lcov-report/table/Table.tsx.html +526 -0
  477. package/coverage/lcov-report/table/TableBody.tsx.html +280 -0
  478. package/coverage/lcov-report/table/TableCell.tsx.html +159 -168
  479. package/coverage/lcov-report/table/TableCheckbox.tsx.html +10 -13
  480. package/coverage/lcov-report/table/TableRadio.tsx.html +670 -0
  481. package/coverage/lcov-report/table/TableRow.tsx.html +370 -0
  482. package/coverage/lcov-report/table/index.html +62 -32
  483. package/coverage/lcov-report/tableCellStyles.ts.html +334 -0
  484. package/coverage/lcov-report/tableContainerStyles.ts.html +142 -0
  485. package/coverage/lcov-report/tableFooterStyles.ts.html +157 -0
  486. package/coverage/lcov-report/tableHeaderStyles.ts.html +163 -0
  487. package/coverage/lcov-report/tableRowStyles.ts.html +169 -0
  488. package/coverage/lcov-report/tableStyles.ts.html +157 -0
  489. package/coverage/lcov-report/tabs/Tab.tsx.html +502 -0
  490. package/coverage/lcov-report/tabs/TabList.tsx.html +796 -0
  491. package/coverage/lcov-report/tabs/index.html +62 -17
  492. package/coverage/lcov-report/tabs/useTabs.ts.html +1567 -0
  493. package/coverage/lcov-report/tabs/utils.ts.html +337 -0
  494. package/coverage/lcov-report/test-utils/index.html +20 -20
  495. package/coverage/lcov-report/test-utils/jest-setup.ts.html +124 -0
  496. package/coverage/lcov-report/tooltip/Tooltip.tsx.html +98 -74
  497. package/coverage/lcov-report/tooltip/TooltipHoverModeProvider.tsx.html +167 -11
  498. package/coverage/lcov-report/tooltip/constants.ts.html +1 -1
  499. package/coverage/lcov-report/tooltip/index.html +32 -17
  500. package/coverage/lcov-report/tooltip/tooltipStyles.ts.html +181 -0
  501. package/coverage/lcov-report/tooltip/useTooltip.ts.html +490 -190
  502. package/coverage/lcov-report/tooltipStyles.ts.html +181 -0
  503. package/coverage/lcov-report/transition/config.ts.html +187 -0
  504. package/coverage/lcov-report/transition/index.html +9 -24
  505. package/coverage/lcov-report/transition/useTransition.ts.html +943 -0
  506. package/coverage/lcov-report/tree/Tree.tsx.html +24 -36
  507. package/coverage/lcov-report/tree/TreeItem.tsx.html +213 -216
  508. package/coverage/lcov-report/tree/TreeProvider.tsx.html +55 -10
  509. package/coverage/lcov-report/tree/index.html +14 -59
  510. package/coverage/lcov-report/typography/Typography.tsx.html +108 -402
  511. package/coverage/lcov-report/typography/WritingDirectionProvider.tsx.html +781 -0
  512. package/coverage/lcov-report/typography/index.html +8 -8
  513. package/coverage/lcov-report/useTooltip.ts.html +651 -375
  514. package/coverage/lcov-report/useTransition.ts.html +934 -0
  515. package/coverage/lcov-report/utils/index.html +24 -39
  516. package/coverage/lcov-report/utils/isElementVisible.ts.html +14 -14
  517. package/coverage/lcov-report/utils/parseCssLengthUnit.ts.html +19 -19
  518. package/coverage/lcov.info +0 -1176
  519. package/dist/_core.scss +39 -2
  520. package/dist/_utils.scss +57 -0
  521. package/dist/app-bar/_app-bar.scss +15 -23
  522. package/dist/avatar/Avatar.d.ts +2 -15
  523. package/dist/avatar/Avatar.js +3 -2
  524. package/dist/avatar/Avatar.js.map +1 -1
  525. package/dist/avatar/_avatar.scss +30 -37
  526. package/dist/avatar/styles.d.ts +20 -2
  527. package/dist/avatar/styles.js +4 -1
  528. package/dist/avatar/styles.js.map +1 -1
  529. package/dist/badge/_badge.scss +71 -44
  530. package/dist/box/_box.scss +18 -29
  531. package/dist/button/AsyncButton.d.ts +29 -0
  532. package/dist/button/AsyncButton.js +14 -1
  533. package/dist/button/AsyncButton.js.map +1 -1
  534. package/dist/button/_button.scss +50 -62
  535. package/dist/card/_card.scss +14 -23
  536. package/dist/chip/_chip.scss +33 -62
  537. package/dist/chip/styles.d.ts +1 -1
  538. package/dist/chip/styles.js +3 -4
  539. package/dist/chip/styles.js.map +1 -1
  540. package/dist/cssUtils.d.ts +1 -0
  541. package/dist/cssUtils.js +1 -1
  542. package/dist/cssUtils.js.map +1 -1
  543. package/dist/dialog/Dialog.d.ts +1 -1
  544. package/dist/dialog/Dialog.js +2 -1
  545. package/dist/dialog/Dialog.js.map +1 -1
  546. package/dist/dialog/_dialog.scss +95 -93
  547. package/dist/divider/Divider.d.ts +0 -1
  548. package/dist/divider/Divider.js.map +1 -1
  549. package/dist/divider/_divider.scss +33 -43
  550. package/dist/focus/useFocusContainer.d.ts +8 -8
  551. package/dist/focus/useFocusContainer.js +11 -10
  552. package/dist/focus/useFocusContainer.js.map +1 -1
  553. package/dist/form/Label.d.ts +5 -5
  554. package/dist/form/Label.js.map +1 -1
  555. package/dist/form/MenuItemInputToggle.js +2 -2
  556. package/dist/form/MenuItemInputToggle.js.map +1 -1
  557. package/dist/form/MenuItemTextField.d.ts +2 -0
  558. package/dist/form/MenuItemTextField.js.map +1 -1
  559. package/dist/form/Slider.d.ts +41 -5
  560. package/dist/form/Slider.js +2 -1
  561. package/dist/form/Slider.js.map +1 -1
  562. package/dist/form/SliderThumb.d.ts +7 -2
  563. package/dist/form/SliderThumb.js +4 -2
  564. package/dist/form/SliderThumb.js.map +1 -1
  565. package/dist/form/SliderValueMarks.js +1 -1
  566. package/dist/form/SliderValueMarks.js.map +1 -1
  567. package/dist/form/SliderValueTooltip.js +1 -1
  568. package/dist/form/SliderValueTooltip.js.map +1 -1
  569. package/dist/form/Switch.d.ts +3 -2
  570. package/dist/form/Switch.js +7 -26
  571. package/dist/form/Switch.js.map +1 -1
  572. package/dist/form/SwitchTrack.d.ts +2 -1
  573. package/dist/form/SwitchTrack.js +8 -4
  574. package/dist/form/SwitchTrack.js.map +1 -1
  575. package/dist/form/TextArea.js +1 -1
  576. package/dist/form/TextArea.js.map +1 -1
  577. package/dist/form/TextFieldContainerStyles.d.ts +7 -7
  578. package/dist/form/TextFieldContainerStyles.js.map +1 -1
  579. package/dist/form/_form.scss +241 -237
  580. package/dist/form/switchStyles.d.ts +1 -0
  581. package/dist/form/switchStyles.js +2 -1
  582. package/dist/form/switchStyles.js.map +1 -1
  583. package/dist/form/textAreaStyles.d.ts +2 -2
  584. package/dist/form/textAreaStyles.js.map +1 -1
  585. package/dist/form/types.d.ts +0 -2
  586. package/dist/form/types.js.map +1 -1
  587. package/dist/hoverMode/useHoverMode.d.ts +2 -2
  588. package/dist/hoverMode/useHoverMode.js +1 -1
  589. package/dist/hoverMode/useHoverMode.js.map +1 -1
  590. package/dist/icon/FontIcon.d.ts +2 -1
  591. package/dist/icon/FontIcon.js +4 -5
  592. package/dist/icon/FontIcon.js.map +1 -1
  593. package/dist/icon/MaterialIcon.d.ts +2 -2
  594. package/dist/icon/MaterialIcon.js +3 -6
  595. package/dist/icon/MaterialIcon.js.map +1 -1
  596. package/dist/icon/MaterialSymbol.d.ts +15 -8
  597. package/dist/icon/MaterialSymbol.js +15 -11
  598. package/dist/icon/MaterialSymbol.js.map +1 -1
  599. package/dist/icon/_icon.scss +31 -47
  600. package/dist/icon/iconConfig.js.map +1 -1
  601. package/dist/icon/material.d.ts +1 -1
  602. package/dist/icon/material.js.map +1 -1
  603. package/dist/icon/{MaterialSymbolsProvider.d.ts → materialConfig.d.ts} +25 -14
  604. package/dist/icon/materialConfig.js +29 -0
  605. package/dist/icon/materialConfig.js.map +1 -0
  606. package/dist/icon/styles.d.ts +0 -15
  607. package/dist/icon/styles.js +2 -4
  608. package/dist/icon/styles.js.map +1 -1
  609. package/dist/index.d.ts +8 -6
  610. package/dist/index.js +8 -6
  611. package/dist/index.js.map +1 -1
  612. package/dist/interaction/_interaction.scss +47 -57
  613. package/dist/layout/_layout.scss +14 -19
  614. package/dist/link/Link.d.ts +12 -6
  615. package/dist/link/Link.js +1 -2
  616. package/dist/link/Link.js.map +1 -1
  617. package/dist/link/_link.scss +15 -23
  618. package/dist/list/ListItemLink.d.ts +1 -1
  619. package/dist/list/ListItemLink.js.map +1 -1
  620. package/dist/list/_list.scss +53 -63
  621. package/dist/menu/DropdownMenu.d.ts +12 -1
  622. package/dist/menu/DropdownMenu.js +13 -4
  623. package/dist/menu/DropdownMenu.js.map +1 -1
  624. package/dist/menu/Menu.d.ts +8 -0
  625. package/dist/menu/Menu.js +2 -1
  626. package/dist/menu/Menu.js.map +1 -1
  627. package/dist/menu/MenuItemSeparator.d.ts +1 -2
  628. package/dist/menu/MenuItemSeparator.js +2 -8
  629. package/dist/menu/MenuItemSeparator.js.map +1 -1
  630. package/dist/menu/MenuSheet.d.ts +6 -1
  631. package/dist/menu/MenuSheet.js.map +1 -1
  632. package/dist/menu/_menu.scss +16 -27
  633. package/dist/overlay/_overlay.scss +14 -19
  634. package/dist/progress/CircularProgress.d.ts +5 -4
  635. package/dist/progress/CircularProgress.js +3 -3
  636. package/dist/progress/CircularProgress.js.map +1 -1
  637. package/dist/progress/LinearProgress.d.ts +7 -5
  638. package/dist/progress/LinearProgress.js +4 -3
  639. package/dist/progress/LinearProgress.js.map +1 -1
  640. package/dist/progress/_progress.scss +25 -30
  641. package/dist/segmented-button/_segmented-button.scss +37 -43
  642. package/dist/sheet/_sheet.scss +24 -42
  643. package/dist/snackbar/DefaultToastRenderer.js +1 -1
  644. package/dist/snackbar/DefaultToastRenderer.js.map +1 -1
  645. package/dist/snackbar/Snackbar.d.ts +1 -3
  646. package/dist/snackbar/Snackbar.js +2 -3
  647. package/dist/snackbar/Snackbar.js.map +1 -1
  648. package/dist/snackbar/Toast.d.ts +1 -1
  649. package/dist/snackbar/Toast.js +5 -1
  650. package/dist/snackbar/Toast.js.map +1 -1
  651. package/dist/snackbar/ToastManager.d.ts +2 -1
  652. package/dist/snackbar/ToastManager.js +1 -1
  653. package/dist/snackbar/ToastManager.js.map +1 -1
  654. package/dist/snackbar/_snackbar.scss +15 -23
  655. package/dist/suspense/CircularProgressSuspense.d.ts +4 -0
  656. package/dist/suspense/CircularProgressSuspense.js +3 -1
  657. package/dist/suspense/CircularProgressSuspense.js.map +1 -1
  658. package/dist/table/Table.d.ts +0 -12
  659. package/dist/table/Table.js +1 -12
  660. package/dist/table/Table.js.map +1 -1
  661. package/dist/table/TableCell.d.ts +13 -38
  662. package/dist/table/TableCell.js +7 -15
  663. package/dist/table/TableCell.js.map +1 -1
  664. package/dist/table/TableCellContent.d.ts +9 -0
  665. package/dist/table/TableCellContent.js +2 -1
  666. package/dist/table/TableCellContent.js.map +1 -1
  667. package/dist/table/TableCheckbox.d.ts +2 -2
  668. package/dist/table/TableCheckbox.js +3 -3
  669. package/dist/table/TableCheckbox.js.map +1 -1
  670. package/dist/table/TableContainer.d.ts +0 -6
  671. package/dist/table/TableContainer.js +1 -6
  672. package/dist/table/TableContainer.js.map +1 -1
  673. package/dist/table/TableFooter.d.ts +7 -1
  674. package/dist/table/TableFooter.js +17 -16
  675. package/dist/table/TableFooter.js.map +1 -1
  676. package/dist/table/TableHeader.d.ts +7 -14
  677. package/dist/table/TableHeader.js +6 -14
  678. package/dist/table/TableHeader.js.map +1 -1
  679. package/dist/table/TableRadio.d.ts +106 -0
  680. package/dist/table/TableRadio.js +106 -0
  681. package/dist/table/TableRadio.js.map +1 -0
  682. package/dist/table/TableRow.d.ts +0 -10
  683. package/dist/table/TableRow.js +1 -12
  684. package/dist/table/TableRow.js.map +1 -1
  685. package/dist/table/_table.scss +71 -88
  686. package/dist/table/tableCellStyles.d.ts +33 -0
  687. package/dist/table/tableCellStyles.js +15 -0
  688. package/dist/table/tableCellStyles.js.map +1 -0
  689. package/dist/table/tableContainerStyles.d.ts +10 -0
  690. package/dist/table/tableContainerStyles.js +9 -0
  691. package/dist/table/tableContainerStyles.js.map +1 -0
  692. package/dist/table/tableFooterStyles.d.ts +10 -0
  693. package/dist/table/tableFooterStyles.js +12 -0
  694. package/dist/table/tableFooterStyles.js.map +1 -0
  695. package/dist/table/tableHeaderStyles.d.ts +10 -0
  696. package/dist/table/tableHeaderStyles.js +13 -0
  697. package/dist/table/tableHeaderStyles.js.map +1 -0
  698. package/dist/table/tableRowStyles.d.ts +10 -0
  699. package/dist/table/tableRowStyles.js +14 -0
  700. package/dist/table/tableRowStyles.js.map +1 -0
  701. package/dist/table/tableStyles.d.ts +12 -0
  702. package/dist/table/tableStyles.js +14 -0
  703. package/dist/table/tableStyles.js.map +1 -0
  704. package/dist/table/types.d.ts +28 -15
  705. package/dist/table/types.js.map +1 -1
  706. package/dist/tabs/_tabs.scss +27 -30
  707. package/dist/test-utils/data-testid.js +2 -0
  708. package/dist/test-utils/data-testid.js.map +1 -0
  709. package/dist/test-utils/jest-setup.js +3 -0
  710. package/dist/test-utils/jest-setup.js.map +1 -1
  711. package/dist/theme/ThemeProvider.d.ts +5 -0
  712. package/dist/theme/ThemeProvider.js.map +1 -1
  713. package/dist/theme/_theme.scss +31 -89
  714. package/dist/tooltip/Tooltip.d.ts +13 -6
  715. package/dist/tooltip/Tooltip.js +2 -2
  716. package/dist/tooltip/Tooltip.js.map +1 -1
  717. package/dist/tooltip/TooltipHoverModeProvider.d.ts +15 -0
  718. package/dist/tooltip/TooltipHoverModeProvider.js.map +1 -1
  719. package/dist/tooltip/_tooltip.scss +17 -25
  720. package/dist/tooltip/tooltipStyles.d.ts +2 -1
  721. package/dist/tooltip/tooltipStyles.js +2 -2
  722. package/dist/tooltip/tooltipStyles.js.map +1 -1
  723. package/dist/tooltip/useTooltip.d.ts +71 -8
  724. package/dist/tooltip/useTooltip.js +68 -7
  725. package/dist/tooltip/useTooltip.js.map +1 -1
  726. package/dist/transition/_transition.scss +38 -37
  727. package/dist/transition/config.d.ts +22 -0
  728. package/dist/transition/config.js +16 -0
  729. package/dist/transition/config.js.map +1 -0
  730. package/dist/transition/useTransition.js +15 -6
  731. package/dist/transition/useTransition.js.map +1 -1
  732. package/dist/tree/DefaultTreeItemRenderer.d.ts +1 -1
  733. package/dist/tree/DefaultTreeItemRenderer.js.map +1 -1
  734. package/dist/tree/Tree.d.ts +1 -1
  735. package/dist/tree/Tree.js +18 -21
  736. package/dist/tree/Tree.js.map +1 -1
  737. package/dist/tree/TreeItem.js +1 -3
  738. package/dist/tree/TreeItem.js.map +1 -1
  739. package/dist/tree/TreeProvider.d.ts +2 -0
  740. package/dist/tree/TreeProvider.js +3 -1
  741. package/dist/tree/TreeProvider.js.map +1 -1
  742. package/dist/tree/_tree.scss +102 -109
  743. package/dist/typography/_typography.scss +17 -22
  744. package/dist/window-splitter/_window-splitter.scss +19 -45
  745. package/package.json +20 -17
  746. package/src/__tests__/NoSsr.tsx +5 -5
  747. package/src/__tests__/useAsyncAction.tsx +14 -6
  748. package/src/__tests__/useDebouncedFunction.tsx +6 -3
  749. package/src/__tests__/useDropzone.tsx +10 -10
  750. package/src/__tests__/useEnsuredId.tsx +5 -5
  751. package/src/__tests__/useEnsuredState.tsx +1 -2
  752. package/src/__tests__/useLocalStorage.tsx +21 -21
  753. package/src/__tests__/useResizeObserver.tsx +2 -0
  754. package/src/__tests__/useThrottledFunction.tsx +9 -8
  755. package/src/__tests__/useToggle.tsx +10 -10
  756. package/src/_core.scss +39 -2
  757. package/src/_utils.scss +57 -0
  758. package/src/app-bar/__tests__/AppBar.tsx +15 -15
  759. package/src/app-bar/__tests__/AppBarTitle.tsx +3 -5
  760. package/src/app-bar/_app-bar.scss +15 -23
  761. package/src/avatar/Avatar.tsx +12 -20
  762. package/src/avatar/__tests__/Avatar.tsx +6 -6
  763. package/src/avatar/_avatar.scss +30 -37
  764. package/src/avatar/styles.ts +27 -4
  765. package/src/badge/__tests__/Badge.tsx +3 -3
  766. package/src/badge/_badge.scss +71 -44
  767. package/src/box/_box.scss +18 -29
  768. package/src/button/AsyncButton.tsx +71 -4
  769. package/src/button/__tests__/AsyncButton.tsx +2 -0
  770. package/src/button/__tests__/Button.tsx +12 -12
  771. package/src/button/__tests__/ButtonUnstyled.tsx +3 -3
  772. package/src/button/__tests__/__snapshots__/AsyncButton.tsx.snap +31 -8
  773. package/src/button/_button.scss +50 -62
  774. package/src/card/__tests__/Card.tsx +3 -3
  775. package/src/card/__tests__/CardContent.tsx +3 -3
  776. package/src/card/__tests__/CardFooter.tsx +3 -3
  777. package/src/card/__tests__/CardHeader.tsx +5 -5
  778. package/src/card/__tests__/CardSubtitle.tsx +3 -3
  779. package/src/card/__tests__/CardTitle.tsx +3 -3
  780. package/src/card/_card.scss +14 -23
  781. package/src/chip/__tests__/Chip.tsx +20 -22
  782. package/src/chip/__tests__/__snapshots__/Chip.tsx.snap +3 -3
  783. package/src/chip/__tests__/__snapshots__/styles.ts.snap +1 -1
  784. package/src/chip/_chip.scss +33 -62
  785. package/src/chip/styles.ts +4 -5
  786. package/src/cssUtils.ts +4 -1
  787. package/src/dialog/Dialog.tsx +5 -4
  788. package/src/dialog/__tests__/Dialog.tsx +316 -0
  789. package/src/dialog/__tests__/DialogContent.tsx +53 -0
  790. package/src/dialog/__tests__/DialogFooter.tsx +70 -0
  791. package/src/dialog/__tests__/DialogHeader.tsx +37 -0
  792. package/src/dialog/__tests__/DialogTitle.tsx +41 -0
  793. package/src/dialog/__tests__/__snapshots__/Dialog.tsx.snap +84 -0
  794. package/src/dialog/__tests__/__snapshots__/DialogContent.tsx.snap +36 -0
  795. package/src/dialog/__tests__/__snapshots__/DialogFooter.tsx.snap +186 -0
  796. package/src/dialog/__tests__/__snapshots__/DialogHeader.tsx.snap +18 -0
  797. package/src/dialog/__tests__/__snapshots__/DialogTitle.tsx.snap +26 -0
  798. package/src/dialog/_dialog.scss +95 -93
  799. package/src/divider/Divider.tsx +0 -1
  800. package/src/divider/__tests__/Divider.tsx +3 -3
  801. package/src/divider/_divider.scss +33 -43
  802. package/src/draggable/__tests__/useDraggable.tsx +35 -39
  803. package/src/expansion-panel/__tests__/ExpansionPanel.tsx +28 -23
  804. package/src/focus/__tests__/useFocusContainer.tsx +280 -0
  805. package/src/focus/useFocusContainer.ts +17 -10
  806. package/src/form/Label.tsx +5 -5
  807. package/src/form/MenuItemInputToggle.tsx +6 -2
  808. package/src/form/MenuItemTextField.tsx +3 -0
  809. package/src/form/Slider.tsx +45 -5
  810. package/src/form/SliderThumb.tsx +15 -3
  811. package/src/form/SliderValueMarks.tsx +3 -1
  812. package/src/form/SliderValueTooltip.tsx +1 -1
  813. package/src/form/Switch.tsx +6 -27
  814. package/src/form/SwitchTrack.tsx +12 -2
  815. package/src/form/TextArea.tsx +1 -1
  816. package/src/form/TextFieldContainerStyles.ts +7 -7
  817. package/src/form/__tests__/Checkbox.tsx +5 -5
  818. package/src/form/__tests__/Fieldset.tsx +3 -3
  819. package/src/form/__tests__/FileInput.tsx +2 -2
  820. package/src/form/__tests__/Label.tsx +3 -3
  821. package/src/form/__tests__/Legend.tsx +3 -3
  822. package/src/form/__tests__/Radio.tsx +3 -3
  823. package/src/form/__tests__/Switch.tsx +152 -0
  824. package/src/form/__tests__/__snapshots__/Switch.tsx.snap +428 -0
  825. package/src/form/__tests__/__snapshots__/useCheckboxGroup.tsx.snap +1 -1
  826. package/src/form/__tests__/__snapshots__/useRadioGroup.tsx.snap +1 -1
  827. package/src/form/__tests__/useCheckboxGroup.tsx +33 -33
  828. package/src/form/__tests__/useFileUpload.tsx +41 -33
  829. package/src/form/__tests__/useRadioGroup.tsx +25 -25
  830. package/src/form/_form.scss +241 -237
  831. package/src/form/switchStyles.ts +3 -3
  832. package/src/form/textAreaStyles.ts +2 -2
  833. package/src/form/types.ts +0 -2
  834. package/src/hoverMode/useHoverMode.ts +4 -4
  835. package/src/icon/FontIcon.tsx +2 -5
  836. package/src/icon/MaterialIcon.tsx +4 -6
  837. package/src/icon/MaterialSymbol.tsx +18 -12
  838. package/src/icon/__tests__/FontIcon.tsx +7 -11
  839. package/src/icon/__tests__/IconRotator.tsx +4 -4
  840. package/src/icon/__tests__/MaterialIcon.tsx +79 -0
  841. package/src/icon/__tests__/MaterialSymbol.tsx +100 -0
  842. package/src/icon/__tests__/SVGIcon.tsx +6 -5
  843. package/src/icon/__tests__/TextIconSpacing.tsx +15 -17
  844. package/src/icon/__tests__/__snapshots__/IconRotator.tsx.snap +6 -6
  845. package/src/icon/__tests__/__snapshots__/MaterialIcon.tsx.snap +82 -0
  846. package/src/icon/__tests__/__snapshots__/MaterialSymbol.tsx.snap +42 -0
  847. package/src/icon/_icon.scss +31 -47
  848. package/src/icon/iconConfig.tsx +1 -0
  849. package/src/icon/material.ts +284 -54
  850. package/src/icon/{MaterialSymbolsProvider.tsx → materialConfig.ts} +49 -67
  851. package/src/icon/styles.ts +0 -21
  852. package/src/index.ts +8 -6
  853. package/src/interaction/__tests__/UserInteractionModeProvider.tsx +3 -3
  854. package/src/interaction/_interaction.scss +47 -57
  855. package/src/layout/__tests__/useExpandableLayout.tsx +12 -1
  856. package/src/layout/__tests__/useLayoutTree.tsx +6 -1
  857. package/src/layout/__tests__/useResizableLayout.tsx +13 -1
  858. package/src/layout/__tests__/useTemporaryLayout.tsx +6 -1
  859. package/src/layout/_layout.scss +14 -19
  860. package/src/link/Link.tsx +15 -5
  861. package/src/link/__tests__/Link.tsx +3 -3
  862. package/src/link/__tests__/SkipToMainContent.tsx +11 -14
  863. package/src/link/_link.scss +15 -23
  864. package/src/list/ListItemLink.tsx +1 -1
  865. package/src/list/__tests__/List.tsx +7 -7
  866. package/src/list/__tests__/ListItem.tsx +17 -16
  867. package/src/list/__tests__/ListItemLink.tsx +7 -7
  868. package/src/list/__tests__/ListSubheader.tsx +5 -5
  869. package/src/list/_list.scss +53 -63
  870. package/src/menu/DropdownMenu.tsx +23 -4
  871. package/src/menu/Menu.tsx +11 -0
  872. package/src/menu/MenuItemSeparator.tsx +2 -12
  873. package/src/menu/MenuSheet.tsx +10 -1
  874. package/src/menu/__tests__/DropdownMenu.tsx +74 -65
  875. package/src/menu/__tests__/MenuBar.tsx +57 -48
  876. package/src/menu/__tests__/MenuVisibilityProvider.tsx +3 -3
  877. package/src/menu/_menu.scss +16 -27
  878. package/src/overlay/__tests__/Overlay.tsx +37 -35
  879. package/src/overlay/_overlay.scss +14 -19
  880. package/src/portal/__tests__/PortalContainerProvider.node.tsx +1 -0
  881. package/src/portal/__tests__/PortalContainerProvider.tsx +9 -9
  882. package/src/positioning/__tests__/useFixedPositioning.tsx +20 -14
  883. package/src/progress/CircularProgress.tsx +5 -4
  884. package/src/progress/LinearProgress.tsx +88 -86
  885. package/src/progress/__tests__/CircularProgress.tsx +49 -27
  886. package/src/progress/__tests__/LinearProgress.tsx +40 -25
  887. package/src/progress/__tests__/__snapshots__/CircularProgress.tsx.snap +21 -0
  888. package/src/progress/__tests__/__snapshots__/LinearProgress.tsx.snap +20 -0
  889. package/src/progress/_progress.scss +25 -30
  890. package/src/segmented-button/_segmented-button.scss +37 -43
  891. package/src/sheet/_sheet.scss +24 -42
  892. package/src/snackbar/DefaultToastRenderer.tsx +1 -1
  893. package/src/snackbar/Snackbar.tsx +17 -25
  894. package/src/snackbar/Toast.tsx +7 -2
  895. package/src/snackbar/ToastManager.tsx +3 -2
  896. package/src/snackbar/__tests__/Snackbar.tsx +13 -12
  897. package/src/snackbar/__tests__/Toast.tsx +8 -3
  898. package/src/snackbar/__tests__/ToastActionButton.tsx +2 -2
  899. package/src/snackbar/__tests__/ToastCloseButton.tsx +2 -2
  900. package/src/snackbar/__tests__/ToastManagerProvider.tsx +28 -42
  901. package/src/snackbar/__tests__/__snapshots__/Snackbar.tsx.snap +127 -27
  902. package/src/snackbar/__tests__/__snapshots__/ToastManagerProvider.tsx.snap +23 -8
  903. package/src/snackbar/_snackbar.scss +15 -23
  904. package/src/suspense/CircularProgressSuspense.tsx +19 -2
  905. package/src/table/Table.tsx +1 -24
  906. package/src/table/TableCell.tsx +22 -85
  907. package/src/table/TableCellContent.tsx +20 -2
  908. package/src/table/TableCheckbox.tsx +3 -3
  909. package/src/table/TableContainer.tsx +1 -8
  910. package/src/table/TableFooter.tsx +30 -23
  911. package/src/table/TableHeader.tsx +23 -40
  912. package/src/table/TableRadio.tsx +195 -0
  913. package/src/table/TableRow.tsx +1 -28
  914. package/src/table/__tests__/Table.tsx +4 -10
  915. package/src/table/__tests__/TableBody.tsx +3 -3
  916. package/src/table/__tests__/TableCheckbox.tsx +10 -11
  917. package/src/table/__tests__/TableContainer.tsx +3 -3
  918. package/src/table/__tests__/TableRadio.tsx +112 -0
  919. package/src/table/__tests__/TableRow.tsx +4 -10
  920. package/src/table/__tests__/__snapshots__/Table.tsx.snap +249 -251
  921. package/src/table/__tests__/__snapshots__/TableBody.tsx.snap +3 -3
  922. package/src/table/__tests__/__snapshots__/TableCheckbox.tsx.snap +4 -4
  923. package/src/table/__tests__/__snapshots__/TableRadio.tsx.snap +138 -0
  924. package/src/table/__tests__/__snapshots__/TableRow.tsx.snap +4 -6
  925. package/src/table/__tests__/__snapshots__/tableContainerStyles.ts.snap +3 -0
  926. package/src/table/__tests__/__snapshots__/tableRowStyles.ts.snap +3 -0
  927. package/src/table/__tests__/__snapshots__/tableStyles.ts.snap +3 -0
  928. package/src/table/__tests__/tableContainerStyles.ts +8 -0
  929. package/src/table/__tests__/tableRowStyles.ts +8 -0
  930. package/src/table/__tests__/tableStyles.ts +8 -0
  931. package/src/table/_table.scss +71 -88
  932. package/src/table/tableCellStyles.ts +83 -0
  933. package/src/table/tableContainerStyles.ts +19 -0
  934. package/src/table/tableFooterStyles.ts +27 -0
  935. package/src/table/tableHeaderStyles.ts +29 -0
  936. package/src/table/tableRowStyles.ts +28 -0
  937. package/src/table/tableStyles.ts +24 -0
  938. package/src/table/types.ts +33 -15
  939. package/src/tabs/__tests__/Tab.tsx +3 -3
  940. package/src/tabs/__tests__/TabList.tsx +50 -40
  941. package/src/tabs/__tests__/useTabs.tsx +27 -24
  942. package/src/tabs/_tabs.scss +27 -30
  943. package/src/test-utils/data-testid.ts +5 -0
  944. package/src/test-utils/jest-setup.ts +4 -0
  945. package/src/theme/ThemeProvider.tsx +6 -0
  946. package/src/theme/__tests__/LocalStorageColorSchemeProvider.tsx +4 -4
  947. package/src/theme/__tests__/useCSSVariables.tsx +4 -4
  948. package/src/theme/_theme.scss +31 -89
  949. package/src/tooltip/Tooltip.tsx +17 -9
  950. package/src/tooltip/TooltipHoverModeProvider.tsx +18 -0
  951. package/src/tooltip/__tests__/Tooltip.tsx +147 -104
  952. package/src/tooltip/__tests__/TooltipHoverModeProvider.tsx +8 -3
  953. package/src/tooltip/__tests__/__snapshots__/Tooltip.tsx.snap +0 -33
  954. package/src/tooltip/_tooltip.scss +17 -25
  955. package/src/tooltip/tooltipStyles.ts +4 -4
  956. package/src/tooltip/useTooltip.ts +119 -19
  957. package/src/transition/__tests__/CSSTransition.tsx +12 -6
  958. package/src/transition/__tests__/Collapse.tsx +19 -17
  959. package/src/transition/__tests__/CrossFade.tsx +20 -17
  960. package/src/transition/__tests__/ScaleTransition.tsx +18 -14
  961. package/src/transition/__tests__/useCSSTransition.tsx +18 -14
  962. package/src/transition/__tests__/useCollapseTransition.tsx +25 -21
  963. package/src/transition/__tests__/useCrossFadeTransition.tsx +20 -16
  964. package/src/transition/__tests__/useScaleTransition.tsx +18 -12
  965. package/src/transition/__tests__/useTransition.tsx +165 -68
  966. package/src/transition/_transition.scss +38 -37
  967. package/src/transition/config.ts +34 -0
  968. package/src/transition/useTransition.ts +15 -6
  969. package/src/tree/DefaultTreeItemRenderer.tsx +1 -1
  970. package/src/tree/Tree.tsx +20 -24
  971. package/src/tree/TreeItem.tsx +2 -3
  972. package/src/tree/TreeProvider.tsx +6 -0
  973. package/src/tree/__tests__/Tree.tsx +7 -2
  974. package/src/tree/__tests__/TreeGroup.tsx +1 -0
  975. package/src/tree/__tests__/TreeItemExpander.tsx +1 -0
  976. package/src/tree/_tree.scss +102 -109
  977. package/src/typography/__tests__/TextContainer.tsx +3 -3
  978. package/src/typography/__tests__/Typography.tsx +10 -12
  979. package/src/typography/__tests__/WritingDirectionProvider.tsx +7 -7
  980. package/src/typography/_typography.scss +17 -22
  981. package/src/window-splitter/_window-splitter.scss +19 -45
  982. package/dist/divider/VerticalDivider.d.ts +0 -32
  983. package/dist/divider/VerticalDivider.js +0 -40
  984. package/dist/divider/VerticalDivider.js.map +0 -1
  985. package/dist/divider/useVerticalDividerHeight.d.ts +0 -37
  986. package/dist/divider/useVerticalDividerHeight.js +0 -40
  987. package/dist/divider/useVerticalDividerHeight.js.map +0 -1
  988. package/dist/icon/MaterialIconsProvider.d.ts +0 -12
  989. package/dist/icon/MaterialIconsProvider.js +0 -17
  990. package/dist/icon/MaterialIconsProvider.js.map +0 -1
  991. package/dist/icon/MaterialSymbolsProvider.js +0 -60
  992. package/dist/icon/MaterialSymbolsProvider.js.map +0 -1
  993. package/dist/link/LinkProvider.d.ts +0 -29
  994. package/dist/link/LinkProvider.js +0 -26
  995. package/dist/link/LinkProvider.js.map +0 -1
  996. package/dist/tooltip/useOverflowTooltip.d.ts +0 -61
  997. package/dist/tooltip/useOverflowTooltip.js +0 -71
  998. package/dist/tooltip/useOverflowTooltip.js.map +0 -1
  999. package/src/divider/VerticalDivider.tsx +0 -50
  1000. package/src/divider/__tests__/VerticalDivider.tsx +0 -35
  1001. package/src/divider/__tests__/__snapshots__/VerticalDivider.tsx.snap +0 -41
  1002. package/src/divider/useVerticalDividerHeight.ts +0 -72
  1003. package/src/icon/MaterialIconsProvider.ts +0 -23
  1004. package/src/link/LinkProvider.tsx +0 -51
  1005. package/src/tooltip/__tests__/useOverflowTooltip.tsx +0 -77
  1006. package/src/tooltip/useOverflowTooltip.ts +0 -93
@@ -3,6 +3,8 @@ import { type UseStateSetter } from "../types.js";
3
3
  declare module "react" {
4
4
  interface CSSProperties {
5
5
  "--rmd-background-color"?: string;
6
+ "--rmd-on-background-color"?: string;
7
+ "--rmd-surface-color"?: string;
6
8
  "--rmd-primary-color"?: string;
7
9
  "--rmd-on-primary-color"?: string;
8
10
  "--rmd-secondary-color"?: string;
@@ -17,6 +19,9 @@ declare module "react" {
17
19
  "--rmd-text-secondary-color"?: string;
18
20
  "--rmd-text-hint-color"?: string;
19
21
  "--rmd-text-disabled-color"?: string;
22
+ "--rmd-outline-width"?: string | number;
23
+ "--rmd-outline-color"?: string;
24
+ "--rmd-outline-grey-color"?: string;
20
25
  }
21
26
  }
22
27
  /** @remarks \@since 6.0.0 */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/theme/ThemeProvider.tsx"],"sourcesContent":["\"use client\";\nimport {\n createContext,\n useContext,\n useEffect,\n useMemo,\n useState,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { useSsr } from \"../SsrProvider.js\";\nimport { type UseStateSetter } from \"../types.js\";\nimport {\n black,\n blue500,\n greenAccent700,\n orangeAccent200,\n orangeAccent400,\n red500,\n} from \"./colors.js\";\nimport {\n backgroundColorVar,\n errorColorVar,\n onErrorColorVar,\n onPrimaryColorVar,\n onSecondaryColorVar,\n onSuccessColorVar,\n onWarningColorVar,\n primaryColorVar,\n secondaryColorVar,\n successColorVar,\n textDisabledColorVar,\n textHintColorVar,\n textPrimaryColorVar,\n textSecondaryColorVar,\n warningColorVar,\n} from \"./cssVars.js\";\nimport { useColorScheme } from \"./useColorScheme.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-background-color\"?: string;\n \"--rmd-primary-color\"?: string;\n \"--rmd-on-primary-color\"?: string;\n \"--rmd-secondary-color\"?: string;\n \"--rmd-on-secondary-color\"?: string;\n \"--rmd-warning-color\"?: string;\n \"--rmd-on-warning-color\"?: string;\n \"--rmd-error-color\"?: string;\n \"--rmd-on-error-color\"?: string;\n \"--rmd-success-color\"?: string;\n \"--rmd-on-success-color\"?: string;\n \"--rmd-text-primary-color\"?: string;\n \"--rmd-text-secondary-color\"?: string;\n \"--rmd-text-hint-color\"?: string;\n \"--rmd-text-disabled-color\"?: string;\n }\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface ThemeColors {\n primaryColor: string;\n onPrimaryColor: string;\n secondaryColor: string;\n onSecondaryColor: string;\n warningColor: string;\n onWarningColor: string;\n errorColor: string;\n onErrorColor: string;\n successColor: string;\n onSuccessColor: string;\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface ThemeTextColors {\n textPrimaryColor: string;\n textSecondaryColor: string;\n textHintColor: string;\n textDisabledColor: string;\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface ConfigurableThemeColors extends ThemeColors, ThemeTextColors {\n backgroundColor: string;\n}\n\n/** @remarks \\@since 6.0.0 */\nexport type ConfigurableThemeColorsName = keyof ConfigurableThemeColors;\n\n/** @remarks \\@since 6.0.0 */\nexport interface ThemeContext extends ConfigurableThemeColors {\n /**\n * This will be `true` if a `theme` wsa not provided to the {@link ThemeProvider}\n */\n derived: boolean;\n\n /**\n * @example\n * Simple Example\n * ```tsx\n * import { getDerivedTheme, useHtmlClassName, useTheme } from \"@react-md/core\";\n * import { useEffect } from \"react\";\n *\n * import styles from \"./LightTheme.module.scss\";\n *\n * let loadedOnce = false;\n *\n * export default function LightTheme(): null {\n * useHtmlClassName(styles.container);\n * const { setDerivedTheme } = useTheme();\n * useEffect(() => {\n * if (loadedOnce) {\n * return;\n * }\n *\n * loadedOnce = true;\n * setDerivedTheme(getDerivedTheme());\n * }, [setDerivedTheme]);\n * return null;\n * }\n * ```\n */\n setDerivedTheme: UseStateSetter<Readonly<ConfigurableThemeColors>>;\n}\n\n/** @remarks \\@since 6.0.0 */\nexport const DEFAULT_THEME_COLORS: Readonly<ThemeColors> = {\n primaryColor: blue500,\n onPrimaryColor: black,\n secondaryColor: orangeAccent400,\n onSecondaryColor: black,\n warningColor: orangeAccent200,\n onWarningColor: black,\n errorColor: red500,\n onErrorColor: black,\n successColor: greenAccent700,\n onSuccessColor: black,\n};\n\n/** @remarks \\@since 6.0.0 */\nexport const DEFAULT_LIGHT_THEME: Readonly<ConfigurableThemeColors> = {\n ...DEFAULT_THEME_COLORS,\n backgroundColor: \"#fafafa\",\n textPrimaryColor: \"#212121\",\n textSecondaryColor: \"#757575\",\n textHintColor: \"#a8a8a8\",\n textDisabledColor: \"#9e9e9e\",\n};\n\n/** @remarks \\@since 6.0.0 */\nexport const DEFAULT_DARK_THEME: Readonly<ConfigurableThemeColors> = {\n ...DEFAULT_THEME_COLORS,\n backgroundColor: \"#121212\",\n textPrimaryColor: \"#d9d9d9\",\n textSecondaryColor: \"#b3b3b3\",\n textHintColor: \"gray\", // #808080\n textDisabledColor: \"gray\", // #808080\n};\n\nconst context = createContext<Readonly<ThemeContext> | undefined>(undefined);\ncontext.displayName = \"Theme\";\nconst { Provider } = context;\n\n/** @remarks \\@since 6.0.0 */\nexport const getDerivedTheme = (\n container: Element = document.documentElement\n): Readonly<ConfigurableThemeColors> => {\n const rootStyles = window.getComputedStyle(container);\n const backgroundColor = rootStyles.getPropertyValue(backgroundColorVar);\n const primaryColor = rootStyles.getPropertyValue(primaryColorVar);\n const onPrimaryColor = rootStyles.getPropertyValue(onPrimaryColorVar);\n const secondaryColor = rootStyles.getPropertyValue(secondaryColorVar);\n const onSecondaryColor = rootStyles.getPropertyValue(onSecondaryColorVar);\n const warningColor = rootStyles.getPropertyValue(warningColorVar);\n const onWarningColor = rootStyles.getPropertyValue(onWarningColorVar);\n const errorColor = rootStyles.getPropertyValue(errorColorVar);\n const onErrorColor = rootStyles.getPropertyValue(onErrorColorVar);\n const successColor = rootStyles.getPropertyValue(successColorVar);\n const onSuccessColor = rootStyles.getPropertyValue(onSuccessColorVar);\n const textPrimaryColor = rootStyles.getPropertyValue(textPrimaryColorVar);\n const textSecondaryColor = rootStyles.getPropertyValue(textSecondaryColorVar);\n const textHintColor = rootStyles.getPropertyValue(textHintColorVar);\n const textDisabledColor = rootStyles.getPropertyValue(textDisabledColorVar);\n\n return {\n backgroundColor,\n primaryColor,\n onPrimaryColor,\n secondaryColor,\n onSecondaryColor,\n warningColor,\n onWarningColor,\n errorColor,\n onErrorColor,\n successColor,\n onSuccessColor,\n textPrimaryColor,\n textSecondaryColor,\n textHintColor,\n textDisabledColor,\n };\n};\n\n/**\n * This hook can be used to access the current theme set by the\n * {@link ThemeProvider}.\n *\n * @example\n * Simple Example\n * ```tsx\n * import { useTheme } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * const theme = useTheme();\n *\n * return <pre><code>{JSON.stringify(theme, null, 2)}</code></pre>;\n * }\n * ```\n *\n * @remarks \\@since 6.0.0\n * @throws \"The `ThemeProvider` has not been initialized.\"\n */\nexport function useTheme(): Readonly<ThemeContext>;\n\n/**\n * @internal\n * @remarks \\@since 6.0.0\n */\nexport function useTheme(\n allowUndefined: true\n): Readonly<ThemeContext> | undefined;\n\n/**\n * @internal\n * @remarks \\@since 6.0.0\n * @throws \"The `ThemeProvider` has not been initialized.\"\n */\nexport function useTheme(\n allowUndefined?: boolean\n): Readonly<ThemeContext> | undefined {\n const theme = useContext(context);\n if (!theme && !allowUndefined) {\n throw new Error(\"The `ThemeProvider` has not been initialized.\");\n }\n\n return theme;\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface ThemeProviderProps {\n /**\n * When this is `undefined`, the theme will be derived by computing the\n * `document.documentElement`'s styles for all the `react-md` theme custom\n * properties. The theme will also automatically update whenever the\n * `colorScheme` or `colorSchemeMode` change.\n *\n * It is recommended to manually provide your theme if you know it beforehand.\n * Deriving the theme is really only useful if you allow your user to\n * customize all these theme values themselves and persist through local\n * storage/cookies.\n *\n * @see {@link DEFAULT_DARK_THEME}\n * @see {@link DEFAULT_LIGHT_THEME}\n * @defaultValue `colorScheme === \"dark\" ? DEFAULT_DARK_THEME : DEFAULT_LIGHT_THEME`\n */\n theme?: Readonly<ConfigurableThemeColors>;\n\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * The `ThemeProvider` should be added to the root of your app but as a child of\n * the `CoreProviders`.\n *\n * @example\n * ```tsx\n * import {\n * black,\n * blue500,\n * greenAccent700,\n * orangeAccent200,\n * orangeAccent400,\n * red500,\n * CoreProviders,\n * ThemeProvider,\n * } from \"@react-md/core\";\n * import type { ConfigurableThemeColors } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n * import { createRoot } from \"react-dom/client\";\n *\n * import App from \"./App\";\n *\n * const theme: Readonly<ConfigurableThemeColors> = {\n * primaryColor: blue500,\n * onPrimaryColor: black,\n * secondaryColor: orangeAccent400,\n * onSecondaryColor: black,\n * warningColor: orangeAccent200,\n * onWarningColor: black,\n * errorColor: red500,\n * onErrorColor: black,\n * successColor: greenAccent700,\n * onSuccessColor: black,\n * backgroundColor: \"#121212\",\n * textPrimaryColor: \"#d9d9d9\",\n * textSecondaryColor: \"#b3b3b3\",\n * textHintColor: \"gray\", // #808080\n * textDisabledColor: \"gray\", // #808080\n * };\n *\n * const container = document.getElementById(\"app\");\n * const root = createRoot(container);\n * root.render(\n * <CoreProviders>\n * <ThemeProvider theme={theme}>\n * <App />\n * </ThemeProvider>\n * </CoreProviders>\n * );\n * ```\n *\n * @example\n * Automatically Deriving the Theme\n * ```tsx\n * import {\n * CoreProviders,\n * LocalStorageColorSchemeProvider,\n * ThemeProvider,\n * } from \"@react-md/core\";\n * import { type ReactElement } from \"react\";\n * import { createRoot } from \"react-dom/client\";\n *\n * import App from \"./App\";\n *\n * const container = document.getElementById(\"app\");\n * const root = createRoot(container);\n * root.render(\n * <CoreProviders>\n * <LocalStorageColorSchemeProvider>\n * <ThemeProvider>\n * <App />\n * </ThemeProvider>\n * </LocalStorageColorSchemeProvider>\n * </CoreProviders>\n * );\n * ```\n *\n * @remarks \\@since 6.0.0\n */\nexport function ThemeProvider(props: ThemeProviderProps): ReactElement {\n const { children, theme } = props;\n const ssr = useSsr();\n const { colorScheme, colorSchemeMode } = useColorScheme();\n const [derivedTheme, setDerivedTheme] = useState<ConfigurableThemeColors>(\n () => {\n if (theme) {\n return theme;\n }\n\n if (!ssr && typeof document !== \"undefined\") {\n return getDerivedTheme(document.documentElement);\n }\n\n return colorScheme === \"dark\" ? DEFAULT_DARK_THEME : DEFAULT_LIGHT_THEME;\n }\n );\n\n const derived = !theme;\n useEffect(() => {\n if (theme) {\n return;\n }\n\n // This has to be recalculated after an animation to ensure the new theme\n // styles have been applied. It will use the previous theme styles without\n // this frame.\n //\n // NOTE: This will not be correct the first time a new theme is lazy-loaded\n // and applied. It might be good to have a way to manually force this flow\n // again?\n const frame = window.requestAnimationFrame(() =>\n setDerivedTheme(getDerivedTheme(document.documentElement))\n );\n\n return () => {\n window.cancelAnimationFrame(frame);\n };\n }, [theme, colorScheme, colorSchemeMode]);\n\n const value = useMemo<ThemeContext>(() => {\n const backgroundColor =\n theme?.backgroundColor ?? derivedTheme.backgroundColor;\n const primaryColor = theme?.primaryColor ?? derivedTheme.primaryColor;\n const onPrimaryColor = theme?.onPrimaryColor ?? derivedTheme.onPrimaryColor;\n const secondaryColor = theme?.secondaryColor ?? derivedTheme.secondaryColor;\n const onSecondaryColor =\n theme?.onSecondaryColor ?? derivedTheme.onSecondaryColor;\n const warningColor = theme?.warningColor ?? derivedTheme.warningColor;\n const onWarningColor = theme?.onWarningColor ?? derivedTheme.onWarningColor;\n const errorColor = theme?.errorColor ?? derivedTheme.errorColor;\n const onErrorColor = theme?.onErrorColor ?? derivedTheme.onErrorColor;\n const successColor = theme?.successColor ?? derivedTheme.successColor;\n const onSuccessColor = theme?.onSuccessColor ?? derivedTheme.onSuccessColor;\n const textPrimaryColor =\n theme?.textPrimaryColor ?? derivedTheme.textPrimaryColor;\n const textSecondaryColor =\n theme?.textSecondaryColor ?? derivedTheme.textSecondaryColor;\n const textHintColor = theme?.textHintColor ?? derivedTheme.textHintColor;\n const textDisabledColor =\n theme?.textDisabledColor ?? derivedTheme.textDisabledColor;\n\n return {\n derived,\n backgroundColor,\n primaryColor,\n onPrimaryColor,\n secondaryColor,\n onSecondaryColor,\n warningColor,\n onWarningColor,\n errorColor,\n onErrorColor,\n successColor,\n onSuccessColor,\n textPrimaryColor,\n textSecondaryColor,\n textHintColor,\n textDisabledColor,\n setDerivedTheme,\n };\n }, [\n derived,\n derivedTheme.backgroundColor,\n derivedTheme.errorColor,\n derivedTheme.onErrorColor,\n derivedTheme.onPrimaryColor,\n derivedTheme.onSecondaryColor,\n derivedTheme.onSuccessColor,\n derivedTheme.onWarningColor,\n derivedTheme.primaryColor,\n derivedTheme.secondaryColor,\n derivedTheme.successColor,\n derivedTheme.textDisabledColor,\n derivedTheme.textHintColor,\n derivedTheme.textPrimaryColor,\n derivedTheme.textSecondaryColor,\n derivedTheme.warningColor,\n theme?.backgroundColor,\n theme?.errorColor,\n theme?.onErrorColor,\n theme?.onPrimaryColor,\n theme?.onSecondaryColor,\n theme?.onSuccessColor,\n theme?.onWarningColor,\n theme?.primaryColor,\n theme?.secondaryColor,\n theme?.successColor,\n theme?.textDisabledColor,\n theme?.textHintColor,\n theme?.textPrimaryColor,\n theme?.textSecondaryColor,\n theme?.warningColor,\n ]);\n\n return <Provider value={value}>{children}</Provider>;\n}\n"],"names":["createContext","useContext","useEffect","useMemo","useState","useSsr","black","blue500","greenAccent700","orangeAccent200","orangeAccent400","red500","backgroundColorVar","errorColorVar","onErrorColorVar","onPrimaryColorVar","onSecondaryColorVar","onSuccessColorVar","onWarningColorVar","primaryColorVar","secondaryColorVar","successColorVar","textDisabledColorVar","textHintColorVar","textPrimaryColorVar","textSecondaryColorVar","warningColorVar","useColorScheme","DEFAULT_THEME_COLORS","primaryColor","onPrimaryColor","secondaryColor","onSecondaryColor","warningColor","onWarningColor","errorColor","onErrorColor","successColor","onSuccessColor","DEFAULT_LIGHT_THEME","backgroundColor","textPrimaryColor","textSecondaryColor","textHintColor","textDisabledColor","DEFAULT_DARK_THEME","context","undefined","displayName","Provider","getDerivedTheme","container","document","documentElement","rootStyles","window","getComputedStyle","getPropertyValue","useTheme","allowUndefined","theme","Error","ThemeProvider","props","children","ssr","colorScheme","colorSchemeMode","derivedTheme","setDerivedTheme","derived","frame","requestAnimationFrame","cancelAnimationFrame","value"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/theme/ThemeProvider.tsx"],"sourcesContent":["\"use client\";\nimport {\n createContext,\n useContext,\n useEffect,\n useMemo,\n useState,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { useSsr } from \"../SsrProvider.js\";\nimport { type UseStateSetter } from \"../types.js\";\nimport {\n black,\n blue500,\n greenAccent700,\n orangeAccent200,\n orangeAccent400,\n red500,\n} from \"./colors.js\";\nimport {\n backgroundColorVar,\n errorColorVar,\n onErrorColorVar,\n onPrimaryColorVar,\n onSecondaryColorVar,\n onSuccessColorVar,\n onWarningColorVar,\n primaryColorVar,\n secondaryColorVar,\n successColorVar,\n textDisabledColorVar,\n textHintColorVar,\n textPrimaryColorVar,\n textSecondaryColorVar,\n warningColorVar,\n} from \"./cssVars.js\";\nimport { useColorScheme } from \"./useColorScheme.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-background-color\"?: string;\n \"--rmd-on-background-color\"?: string;\n \"--rmd-surface-color\"?: string;\n \"--rmd-primary-color\"?: string;\n \"--rmd-on-primary-color\"?: string;\n \"--rmd-secondary-color\"?: string;\n \"--rmd-on-secondary-color\"?: string;\n \"--rmd-warning-color\"?: string;\n \"--rmd-on-warning-color\"?: string;\n \"--rmd-error-color\"?: string;\n \"--rmd-on-error-color\"?: string;\n \"--rmd-success-color\"?: string;\n \"--rmd-on-success-color\"?: string;\n \"--rmd-text-primary-color\"?: string;\n \"--rmd-text-secondary-color\"?: string;\n \"--rmd-text-hint-color\"?: string;\n \"--rmd-text-disabled-color\"?: string;\n\n \"--rmd-outline-width\"?: string | number;\n \"--rmd-outline-color\"?: string;\n \"--rmd-outline-grey-color\"?: string;\n }\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface ThemeColors {\n primaryColor: string;\n onPrimaryColor: string;\n secondaryColor: string;\n onSecondaryColor: string;\n warningColor: string;\n onWarningColor: string;\n errorColor: string;\n onErrorColor: string;\n successColor: string;\n onSuccessColor: string;\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface ThemeTextColors {\n textPrimaryColor: string;\n textSecondaryColor: string;\n textHintColor: string;\n textDisabledColor: string;\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface ConfigurableThemeColors extends ThemeColors, ThemeTextColors {\n backgroundColor: string;\n}\n\n/** @remarks \\@since 6.0.0 */\nexport type ConfigurableThemeColorsName = keyof ConfigurableThemeColors;\n\n/** @remarks \\@since 6.0.0 */\nexport interface ThemeContext extends ConfigurableThemeColors {\n /**\n * This will be `true` if a `theme` wsa not provided to the {@link ThemeProvider}\n */\n derived: boolean;\n\n /**\n * @example\n * Simple Example\n * ```tsx\n * import { getDerivedTheme, useHtmlClassName, useTheme } from \"@react-md/core\";\n * import { useEffect } from \"react\";\n *\n * import styles from \"./LightTheme.module.scss\";\n *\n * let loadedOnce = false;\n *\n * export default function LightTheme(): null {\n * useHtmlClassName(styles.container);\n * const { setDerivedTheme } = useTheme();\n * useEffect(() => {\n * if (loadedOnce) {\n * return;\n * }\n *\n * loadedOnce = true;\n * setDerivedTheme(getDerivedTheme());\n * }, [setDerivedTheme]);\n * return null;\n * }\n * ```\n */\n setDerivedTheme: UseStateSetter<Readonly<ConfigurableThemeColors>>;\n}\n\n/** @remarks \\@since 6.0.0 */\nexport const DEFAULT_THEME_COLORS: Readonly<ThemeColors> = {\n primaryColor: blue500,\n onPrimaryColor: black,\n secondaryColor: orangeAccent400,\n onSecondaryColor: black,\n warningColor: orangeAccent200,\n onWarningColor: black,\n errorColor: red500,\n onErrorColor: black,\n successColor: greenAccent700,\n onSuccessColor: black,\n};\n\n/** @remarks \\@since 6.0.0 */\nexport const DEFAULT_LIGHT_THEME: Readonly<ConfigurableThemeColors> = {\n ...DEFAULT_THEME_COLORS,\n backgroundColor: \"#fafafa\",\n textPrimaryColor: \"#212121\",\n textSecondaryColor: \"#757575\",\n textHintColor: \"#a8a8a8\",\n textDisabledColor: \"#9e9e9e\",\n};\n\n/** @remarks \\@since 6.0.0 */\nexport const DEFAULT_DARK_THEME: Readonly<ConfigurableThemeColors> = {\n ...DEFAULT_THEME_COLORS,\n backgroundColor: \"#121212\",\n textPrimaryColor: \"#d9d9d9\",\n textSecondaryColor: \"#b3b3b3\",\n textHintColor: \"gray\", // #808080\n textDisabledColor: \"gray\", // #808080\n};\n\nconst context = createContext<Readonly<ThemeContext> | undefined>(undefined);\ncontext.displayName = \"Theme\";\nconst { Provider } = context;\n\n/** @remarks \\@since 6.0.0 */\nexport const getDerivedTheme = (\n container: Element = document.documentElement\n): Readonly<ConfigurableThemeColors> => {\n const rootStyles = window.getComputedStyle(container);\n const backgroundColor = rootStyles.getPropertyValue(backgroundColorVar);\n const primaryColor = rootStyles.getPropertyValue(primaryColorVar);\n const onPrimaryColor = rootStyles.getPropertyValue(onPrimaryColorVar);\n const secondaryColor = rootStyles.getPropertyValue(secondaryColorVar);\n const onSecondaryColor = rootStyles.getPropertyValue(onSecondaryColorVar);\n const warningColor = rootStyles.getPropertyValue(warningColorVar);\n const onWarningColor = rootStyles.getPropertyValue(onWarningColorVar);\n const errorColor = rootStyles.getPropertyValue(errorColorVar);\n const onErrorColor = rootStyles.getPropertyValue(onErrorColorVar);\n const successColor = rootStyles.getPropertyValue(successColorVar);\n const onSuccessColor = rootStyles.getPropertyValue(onSuccessColorVar);\n const textPrimaryColor = rootStyles.getPropertyValue(textPrimaryColorVar);\n const textSecondaryColor = rootStyles.getPropertyValue(textSecondaryColorVar);\n const textHintColor = rootStyles.getPropertyValue(textHintColorVar);\n const textDisabledColor = rootStyles.getPropertyValue(textDisabledColorVar);\n\n return {\n backgroundColor,\n primaryColor,\n onPrimaryColor,\n secondaryColor,\n onSecondaryColor,\n warningColor,\n onWarningColor,\n errorColor,\n onErrorColor,\n successColor,\n onSuccessColor,\n textPrimaryColor,\n textSecondaryColor,\n textHintColor,\n textDisabledColor,\n };\n};\n\n/**\n * This hook can be used to access the current theme set by the\n * {@link ThemeProvider}.\n *\n * @example\n * Simple Example\n * ```tsx\n * import { useTheme } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * const theme = useTheme();\n *\n * return <pre><code>{JSON.stringify(theme, null, 2)}</code></pre>;\n * }\n * ```\n *\n * @remarks \\@since 6.0.0\n * @throws \"The `ThemeProvider` has not been initialized.\"\n */\nexport function useTheme(): Readonly<ThemeContext>;\n\n/**\n * @internal\n * @remarks \\@since 6.0.0\n */\nexport function useTheme(\n allowUndefined: true\n): Readonly<ThemeContext> | undefined;\n\n/**\n * @internal\n * @remarks \\@since 6.0.0\n * @throws \"The `ThemeProvider` has not been initialized.\"\n */\nexport function useTheme(\n allowUndefined?: boolean\n): Readonly<ThemeContext> | undefined {\n const theme = useContext(context);\n if (!theme && !allowUndefined) {\n throw new Error(\"The `ThemeProvider` has not been initialized.\");\n }\n\n return theme;\n}\n\n/** @remarks \\@since 6.0.0 */\nexport interface ThemeProviderProps {\n /**\n * When this is `undefined`, the theme will be derived by computing the\n * `document.documentElement`'s styles for all the `react-md` theme custom\n * properties. The theme will also automatically update whenever the\n * `colorScheme` or `colorSchemeMode` change.\n *\n * It is recommended to manually provide your theme if you know it beforehand.\n * Deriving the theme is really only useful if you allow your user to\n * customize all these theme values themselves and persist through local\n * storage/cookies.\n *\n * @see {@link DEFAULT_DARK_THEME}\n * @see {@link DEFAULT_LIGHT_THEME}\n * @defaultValue `colorScheme === \"dark\" ? DEFAULT_DARK_THEME : DEFAULT_LIGHT_THEME`\n */\n theme?: Readonly<ConfigurableThemeColors>;\n\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * The `ThemeProvider` should be added to the root of your app but as a child of\n * the `CoreProviders`.\n *\n * @example\n * ```tsx\n * import {\n * black,\n * blue500,\n * greenAccent700,\n * orangeAccent200,\n * orangeAccent400,\n * red500,\n * CoreProviders,\n * ThemeProvider,\n * } from \"@react-md/core\";\n * import type { ConfigurableThemeColors } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n * import { createRoot } from \"react-dom/client\";\n *\n * import App from \"./App\";\n *\n * const theme: Readonly<ConfigurableThemeColors> = {\n * primaryColor: blue500,\n * onPrimaryColor: black,\n * secondaryColor: orangeAccent400,\n * onSecondaryColor: black,\n * warningColor: orangeAccent200,\n * onWarningColor: black,\n * errorColor: red500,\n * onErrorColor: black,\n * successColor: greenAccent700,\n * onSuccessColor: black,\n * backgroundColor: \"#121212\",\n * textPrimaryColor: \"#d9d9d9\",\n * textSecondaryColor: \"#b3b3b3\",\n * textHintColor: \"gray\", // #808080\n * textDisabledColor: \"gray\", // #808080\n * };\n *\n * const container = document.getElementById(\"app\");\n * const root = createRoot(container);\n * root.render(\n * <CoreProviders>\n * <ThemeProvider theme={theme}>\n * <App />\n * </ThemeProvider>\n * </CoreProviders>\n * );\n * ```\n *\n * @example\n * Automatically Deriving the Theme\n * ```tsx\n * import {\n * CoreProviders,\n * LocalStorageColorSchemeProvider,\n * ThemeProvider,\n * } from \"@react-md/core\";\n * import { type ReactElement } from \"react\";\n * import { createRoot } from \"react-dom/client\";\n *\n * import App from \"./App\";\n *\n * const container = document.getElementById(\"app\");\n * const root = createRoot(container);\n * root.render(\n * <CoreProviders>\n * <LocalStorageColorSchemeProvider>\n * <ThemeProvider>\n * <App />\n * </ThemeProvider>\n * </LocalStorageColorSchemeProvider>\n * </CoreProviders>\n * );\n * ```\n *\n * @remarks \\@since 6.0.0\n */\nexport function ThemeProvider(props: ThemeProviderProps): ReactElement {\n const { children, theme } = props;\n const ssr = useSsr();\n const { colorScheme, colorSchemeMode } = useColorScheme();\n const [derivedTheme, setDerivedTheme] = useState<ConfigurableThemeColors>(\n () => {\n if (theme) {\n return theme;\n }\n\n if (!ssr && typeof document !== \"undefined\") {\n return getDerivedTheme(document.documentElement);\n }\n\n return colorScheme === \"dark\" ? DEFAULT_DARK_THEME : DEFAULT_LIGHT_THEME;\n }\n );\n\n const derived = !theme;\n useEffect(() => {\n if (theme) {\n return;\n }\n\n // This has to be recalculated after an animation to ensure the new theme\n // styles have been applied. It will use the previous theme styles without\n // this frame.\n //\n // NOTE: This will not be correct the first time a new theme is lazy-loaded\n // and applied. It might be good to have a way to manually force this flow\n // again?\n const frame = window.requestAnimationFrame(() =>\n setDerivedTheme(getDerivedTheme(document.documentElement))\n );\n\n return () => {\n window.cancelAnimationFrame(frame);\n };\n }, [theme, colorScheme, colorSchemeMode]);\n\n const value = useMemo<ThemeContext>(() => {\n const backgroundColor =\n theme?.backgroundColor ?? derivedTheme.backgroundColor;\n const primaryColor = theme?.primaryColor ?? derivedTheme.primaryColor;\n const onPrimaryColor = theme?.onPrimaryColor ?? derivedTheme.onPrimaryColor;\n const secondaryColor = theme?.secondaryColor ?? derivedTheme.secondaryColor;\n const onSecondaryColor =\n theme?.onSecondaryColor ?? derivedTheme.onSecondaryColor;\n const warningColor = theme?.warningColor ?? derivedTheme.warningColor;\n const onWarningColor = theme?.onWarningColor ?? derivedTheme.onWarningColor;\n const errorColor = theme?.errorColor ?? derivedTheme.errorColor;\n const onErrorColor = theme?.onErrorColor ?? derivedTheme.onErrorColor;\n const successColor = theme?.successColor ?? derivedTheme.successColor;\n const onSuccessColor = theme?.onSuccessColor ?? derivedTheme.onSuccessColor;\n const textPrimaryColor =\n theme?.textPrimaryColor ?? derivedTheme.textPrimaryColor;\n const textSecondaryColor =\n theme?.textSecondaryColor ?? derivedTheme.textSecondaryColor;\n const textHintColor = theme?.textHintColor ?? derivedTheme.textHintColor;\n const textDisabledColor =\n theme?.textDisabledColor ?? derivedTheme.textDisabledColor;\n\n return {\n derived,\n backgroundColor,\n primaryColor,\n onPrimaryColor,\n secondaryColor,\n onSecondaryColor,\n warningColor,\n onWarningColor,\n errorColor,\n onErrorColor,\n successColor,\n onSuccessColor,\n textPrimaryColor,\n textSecondaryColor,\n textHintColor,\n textDisabledColor,\n setDerivedTheme,\n };\n }, [\n derived,\n derivedTheme.backgroundColor,\n derivedTheme.errorColor,\n derivedTheme.onErrorColor,\n derivedTheme.onPrimaryColor,\n derivedTheme.onSecondaryColor,\n derivedTheme.onSuccessColor,\n derivedTheme.onWarningColor,\n derivedTheme.primaryColor,\n derivedTheme.secondaryColor,\n derivedTheme.successColor,\n derivedTheme.textDisabledColor,\n derivedTheme.textHintColor,\n derivedTheme.textPrimaryColor,\n derivedTheme.textSecondaryColor,\n derivedTheme.warningColor,\n theme?.backgroundColor,\n theme?.errorColor,\n theme?.onErrorColor,\n theme?.onPrimaryColor,\n theme?.onSecondaryColor,\n theme?.onSuccessColor,\n theme?.onWarningColor,\n theme?.primaryColor,\n theme?.secondaryColor,\n theme?.successColor,\n theme?.textDisabledColor,\n theme?.textHintColor,\n theme?.textPrimaryColor,\n theme?.textSecondaryColor,\n theme?.warningColor,\n ]);\n\n return <Provider value={value}>{children}</Provider>;\n}\n"],"names":["createContext","useContext","useEffect","useMemo","useState","useSsr","black","blue500","greenAccent700","orangeAccent200","orangeAccent400","red500","backgroundColorVar","errorColorVar","onErrorColorVar","onPrimaryColorVar","onSecondaryColorVar","onSuccessColorVar","onWarningColorVar","primaryColorVar","secondaryColorVar","successColorVar","textDisabledColorVar","textHintColorVar","textPrimaryColorVar","textSecondaryColorVar","warningColorVar","useColorScheme","DEFAULT_THEME_COLORS","primaryColor","onPrimaryColor","secondaryColor","onSecondaryColor","warningColor","onWarningColor","errorColor","onErrorColor","successColor","onSuccessColor","DEFAULT_LIGHT_THEME","backgroundColor","textPrimaryColor","textSecondaryColor","textHintColor","textDisabledColor","DEFAULT_DARK_THEME","context","undefined","displayName","Provider","getDerivedTheme","container","document","documentElement","rootStyles","window","getComputedStyle","getPropertyValue","useTheme","allowUndefined","theme","Error","ThemeProvider","props","children","ssr","colorScheme","colorSchemeMode","derivedTheme","setDerivedTheme","derived","frame","requestAnimationFrame","cancelAnimationFrame","value"],"mappings":"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"}
@@ -129,96 +129,34 @@ $_validated_color_scheme: utils.validate(
129
129
  "$color-scheme"
130
130
  );
131
131
 
132
- $theme-var-lookup: (
133
- background-color: (
134
- var: --rmd-background-color,
135
- value: $background-color,
136
- ),
137
- on-background-color: (
138
- var: --rmd-on-background-color,
139
- value: null,
140
- ),
141
- surface-color: (
142
- var: --rmd-surface-color,
143
- value: $surface-color,
144
- ),
145
- primary-color: (
146
- var: --rmd-primary-color,
147
- value: $primary-color,
148
- ),
149
- on-primary-color: (
150
- var: --rmd-on-primary-color,
151
- value: $on-primary-color,
152
- ),
153
- secondary-color: (
154
- var: --rmd-secondary-color,
155
- value: $secondary-color,
156
- ),
157
- on-secondary-color: (
158
- var: --rmd-on-secondary-color,
159
- value: $on-secondary-color,
160
- ),
161
- warning-color: (
162
- var: --rmd-warning-color,
163
- value: $warning-color,
164
- ),
165
- on-warning-color: (
166
- var: --rmd-on-warning-color,
167
- value: $on-warning-color,
168
- ),
169
- error-color: (
170
- var: --rmd-error-color,
171
- value: $error-color,
172
- ),
173
- on-error-color: (
174
- var: --rmd-on-error-color,
175
- value: $on-error-color,
176
- ),
177
- success-color: (
178
- var: --rmd-success-color,
179
- value: $success-color,
180
- ),
181
- on-success-color: (
182
- var: --rmd-on-success-color,
183
- value: $on-success-color,
184
- ),
185
- text-primary-color: (
186
- var: --rmd-text-primary-color,
187
- value: $text-primary-color,
188
- ),
189
- text-secondary-color: (
190
- var: --rmd-text-secondary-color,
191
- value: $text-secondary-color,
192
- ),
193
- text-hint-color: (
194
- var: --rmd-text-hint-color,
195
- value: $text-hint-color,
196
- ),
197
- text-disabled-color: (
198
- var: --rmd-text-disabled-color,
199
- value: $text-disabled-color,
200
- ),
201
- outline-width: (
202
- var: --rmd-outline-width,
203
- value: $outline-width,
204
- ),
205
- outline-color: (
206
- var: --rmd-outline-color,
207
- value: $outline-color,
208
- ),
209
- outline-grey-color: (
210
- var: --rmd-outline-grey-color,
211
- value: $outline-grey-color,
212
- ),
132
+ $theme-variables: (
133
+ background-color,
134
+ on-background-color,
135
+ surface-color,
136
+ primary-color,
137
+ on-primary-color,
138
+ secondary-color,
139
+ on-secondary-color,
140
+ warning-color,
141
+ on-warning-color,
142
+ success-color,
143
+ on-success-color,
144
+ error-color,
145
+ on-error-color,
146
+ text-primary-color,
147
+ text-secondary-color,
148
+ text-hint-color,
149
+ text-disabled-color,
150
+ outline-width,
151
+ outline-color,
152
+ outline-grey-color
213
153
  );
214
154
 
215
155
  @function theme-get-var($name, $fallback: null) {
216
- $found: utils.validate($theme-var-lookup, $name, "theme var");
217
- $var: map.get($found, var);
218
- $value: if($fallback, $fallback, map.get($found, value));
156
+ $var: utils.get-var-name($theme-variables, $name, "theme");
219
157
 
220
- @if $value {
221
- @return var(#{$var}, #{$value});
158
+ @if $fallback {
159
+ @return var(#{$var}, #{$fallback});
222
160
  }
223
161
 
224
162
  @return var(#{$var});
@@ -237,9 +175,9 @@ $theme-var-lookup: (
237
175
  }
238
176
 
239
177
  @mixin theme-set-var($name, $value-or-theme-name) {
240
- $var: map.get(utils.validate($theme-var-lookup, $name, "theme var"), var);
178
+ $var: utils.get-var-name($theme-variables, $name, "theme");
241
179
  $value: $value-or-theme-name;
242
- @if map.has-key($theme-var-lookup, $value-or-theme-name) {
180
+ @if list.index($theme-variables, $value-or-theme-name) {
243
181
  $name: $value-or-theme-name;
244
182
  $value: theme-get-var($name);
245
183
  }
@@ -291,7 +229,7 @@ $theme-var-lookup: (
291
229
  }
292
230
  }
293
231
 
294
- @mixin colors {
232
+ @mixin theme-variables {
295
233
  @include theme-set-var(background-color, $background-color);
296
234
  @if $disable-dark-elevation {
297
235
  @include theme-set-var(surface-color, $surface-color);
@@ -317,6 +255,10 @@ $theme-var-lookup: (
317
255
  @include set-dark-elevation-color($z-value, $background-color);
318
256
  }
319
257
  }
258
+
259
+ @include theme-set-var(outline-width, $outline-width);
260
+ @include theme-set-var(outline-color, $outline-color);
261
+ @include theme-set-var(outline-grey-color, $outline-grey-color);
320
262
  }
321
263
 
322
264
  @mixin create-surface($z-value, $disable-colors: $disable-dark-elevation) {
@@ -1,4 +1,5 @@
1
1
  import { type HTMLAttributes } from "react";
2
+ import { type TextOverflow } from "../cssUtils.js";
2
3
  import { type SimplePosition } from "../positioning/types.js";
3
4
  import { type CSSTransitionComponentProps, type TransitionActions } from "../transition/types.js";
4
5
  /**
@@ -20,20 +21,26 @@ export interface TooltipProps extends HTMLAttributes<HTMLSpanElement>, CSSTransi
20
21
  * @see {@link DEFAULT_TOOLTIP_POSITION}
21
22
  */
22
23
  position?: SimplePosition;
24
+ /**
25
+ * @see {@link CSSTransitionComponentProps.temporary}
26
+ * @defaultValue `true`
27
+ */
28
+ temporary?: boolean;
23
29
  /**
24
30
  * @defaultValue `false`
25
31
  */
26
32
  disablePortal?: boolean;
27
33
  /**
28
- * Set this to `true` to add `white-space: nowrap` to the tooltip.
34
+ * Set this to `"nowrap"` for tooltips that are positioned near the edge of
35
+ * the viewport that have a position of `"above"` or `"below"` so that the
36
+ * tooltip no longer aligns to the center of the tooltipped element.
29
37
  *
30
- * This prop is useful for tooltips that are positioned near the edge of the
31
- * viewport with `"above"` or `"below"` so that the tooltip no longer aligns
32
- * the center of the tooltip with the center of the tooltipped element.
38
+ * Set this to `"ellipsis"` if the tooltip should only show a single line of
39
+ * text and ellipsis once it has reached the max tooltip width.
33
40
  *
34
- * @defaultValue `false`
41
+ * @defaultValue `"allow"`
35
42
  */
36
- disableLineWrap?: boolean;
43
+ textOverflow?: TextOverflow;
37
44
  }
38
45
  /**
39
46
  * **Client Component**
@@ -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"}
@@ -45,45 +45,36 @@ $leave-duration: transition.$linear-duration !default;
45
45
  $leave-timing-function: transition.$acceleration-timing-function !default;
46
46
  $transition-distance: 0.5rem !default;
47
47
 
48
- $var-lookup: (
49
- background-color: (
50
- var: --rmd-tooltip-background-color,
51
- value: $background-color,
52
- ),
53
- color: (
54
- var: --rmd-tooltip-color,
55
- value: $color,
56
- ),
57
- spacing: (
58
- // this is only added so you can safely do:
59
- // @include react-md.tooltip-set-var(spacing, $custom-spacing);
60
- var: --rmd-tooltip-spacing,
61
- value: $spacing,
62
- ),
63
- );
48
+ $variables: (background-color, color, spacing);
64
49
 
65
50
  @function get-var($name, $fallback: null) {
66
- $found: utils.validate($var-lookup, $name, "tooltip var");
67
- $var: map.get($found, var);
68
- $value: if($fallback, $fallback, map.get($found, value));
69
-
70
- @if $value {
71
- @return var(#{$var}, #{$value});
51
+ $var: utils.get-var-name($variables, $name, "tooltip");
52
+ @if $fallback {
53
+ @return var(#{$var}, #{$fallback});
72
54
  }
73
55
 
74
56
  @return var(#{$var});
75
57
  }
76
58
 
77
59
  @mixin set-var($name, $value) {
78
- $var: map.get(utils.validate($var-lookup, $name, "tooltip var"), var);
79
-
80
- #{$var}: #{$value};
60
+ @if $value {
61
+ #{utils.get-var-name($variables, $name, "tooltip")}: #{$value};
62
+ }
81
63
  }
82
64
 
83
65
  @mixin use-var($property, $name: $property, $fallback: null) {
84
66
  #{$property}: get-var($name, $fallback);
85
67
  }
86
68
 
69
+ @mixin variables {
70
+ @if not $disable-everything {
71
+ @include set-var(background-color, $background-color);
72
+ @include set-var(color, $color);
73
+
74
+ // do not include spacing
75
+ }
76
+ }
77
+
87
78
  @mixin styles {
88
79
  @if not $disable-everything {
89
80
  .rmd-tooltip {
@@ -95,6 +86,7 @@ $var-lookup: (
95
86
  max-width: $max-width;
96
87
  min-height: $min-height;
97
88
  opacity: 0;
89
+ overflow: hidden;
98
90
  overflow-wrap: anywhere;
99
91
  padding: $vertical-padding $horizontal-padding;
100
92
  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>;