@react-md/core 1.0.0-next.16 → 1.0.0-next.17

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 (645) hide show
  1. package/dist/_box-shadows.scss +76 -0
  2. package/dist/_colors.scss +279 -277
  3. package/dist/_core.scss +107 -16
  4. package/dist/_object-fit.scss +86 -0
  5. package/dist/_utils.scss +246 -72
  6. package/dist/app-bar/AppBar.d.ts +1 -90
  7. package/dist/app-bar/AppBar.js +1 -40
  8. package/dist/app-bar/AppBar.js.map +1 -1
  9. package/dist/app-bar/AppBarTitle.d.ts +1 -27
  10. package/dist/app-bar/AppBarTitle.js +1 -15
  11. package/dist/app-bar/AppBarTitle.js.map +1 -1
  12. package/dist/app-bar/_app-bar.scss +156 -25
  13. package/dist/app-bar/styles.d.ts +117 -0
  14. package/dist/app-bar/styles.js +55 -0
  15. package/dist/app-bar/styles.js.map +1 -0
  16. package/dist/autocomplete/Autocomplete.d.ts +8 -79
  17. package/dist/autocomplete/Autocomplete.js +112 -83
  18. package/dist/autocomplete/Autocomplete.js.map +1 -1
  19. package/dist/autocomplete/AutocompleteChip.d.ts +8 -0
  20. package/dist/autocomplete/AutocompleteChip.js +34 -0
  21. package/dist/autocomplete/AutocompleteChip.js.map +1 -0
  22. package/dist/autocomplete/AutocompleteCircularProgress.d.ts +5 -11
  23. package/dist/autocomplete/AutocompleteCircularProgress.js +4 -0
  24. package/dist/autocomplete/AutocompleteCircularProgress.js.map +1 -1
  25. package/dist/autocomplete/AutocompleteClearButton.d.ts +9 -0
  26. package/dist/autocomplete/AutocompleteClearButton.js +29 -0
  27. package/dist/autocomplete/AutocompleteClearButton.js.map +1 -0
  28. package/dist/autocomplete/AutocompleteDropdownButton.d.ts +4 -26
  29. package/dist/autocomplete/AutocompleteDropdownButton.js +5 -1
  30. package/dist/autocomplete/AutocompleteDropdownButton.js.map +1 -1
  31. package/dist/autocomplete/AutocompleteListboxChildren.d.ts +22 -0
  32. package/dist/autocomplete/AutocompleteListboxChildren.js +37 -0
  33. package/dist/autocomplete/AutocompleteListboxChildren.js.map +1 -0
  34. package/dist/autocomplete/_autocomplete.scss +362 -34
  35. package/dist/autocomplete/autocompleteStyles.d.ts +22 -0
  36. package/dist/autocomplete/autocompleteStyles.js +17 -8
  37. package/dist/autocomplete/autocompleteStyles.js.map +1 -1
  38. package/dist/autocomplete/defaults.d.ts +9 -9
  39. package/dist/autocomplete/defaults.js +13 -13
  40. package/dist/autocomplete/defaults.js.map +1 -1
  41. package/dist/autocomplete/types.d.ts +554 -56
  42. package/dist/autocomplete/types.js.map +1 -1
  43. package/dist/autocomplete/useAutocomplete.d.ts +22 -0
  44. package/dist/autocomplete/useAutocomplete.js +281 -0
  45. package/dist/autocomplete/useAutocomplete.js.map +1 -0
  46. package/dist/autocomplete/utils.d.ts +81 -0
  47. package/dist/autocomplete/utils.js +108 -0
  48. package/dist/autocomplete/utils.js.map +1 -0
  49. package/dist/avatar/_avatar.scss +93 -2
  50. package/dist/badge/Badge.d.ts +1 -20
  51. package/dist/badge/Badge.js +1 -14
  52. package/dist/badge/Badge.js.map +1 -1
  53. package/dist/badge/_badge.scss +90 -3
  54. package/dist/badge/styles.d.ts +26 -0
  55. package/dist/badge/styles.js +18 -0
  56. package/dist/badge/styles.js.map +1 -0
  57. package/dist/box/Box.js +2 -1
  58. package/dist/box/Box.js.map +1 -1
  59. package/dist/box/_box.scss +130 -17
  60. package/dist/box/styles.d.ts +6 -0
  61. package/dist/box/styles.js +2 -1
  62. package/dist/box/styles.js.map +1 -1
  63. package/dist/button/AsyncButton.d.ts +1 -1
  64. package/dist/button/AsyncButton.js.map +1 -1
  65. package/dist/button/Button.d.ts +2 -1
  66. package/dist/button/Button.js +2 -1
  67. package/dist/button/Button.js.map +1 -1
  68. package/dist/button/_button.scss +157 -25
  69. package/dist/card/Card.d.ts +16 -0
  70. package/dist/card/Card.js +11 -3
  71. package/dist/card/Card.js.map +1 -1
  72. package/dist/card/ClickableCard.d.ts +2 -1
  73. package/dist/card/ClickableCard.js +5 -2
  74. package/dist/card/ClickableCard.js.map +1 -1
  75. package/dist/card/_card.scss +90 -19
  76. package/dist/card/styles.d.ts +0 -7
  77. package/dist/card/styles.js +2 -3
  78. package/dist/card/styles.js.map +1 -1
  79. package/dist/chip/Chip.d.ts +2 -1
  80. package/dist/chip/Chip.js +2 -1
  81. package/dist/chip/Chip.js.map +1 -1
  82. package/dist/chip/_chip.scss +42 -20
  83. package/dist/chip/styles.d.ts +12 -10
  84. package/dist/chip/styles.js.map +1 -1
  85. package/dist/cssUtils.js.map +1 -1
  86. package/dist/delegateEvent.d.ts +2 -2
  87. package/dist/delegateEvent.js.map +1 -1
  88. package/dist/dialog/Dialog.d.ts +8 -21
  89. package/dist/dialog/Dialog.js +27 -27
  90. package/dist/dialog/Dialog.js.map +1 -1
  91. package/dist/dialog/FixedDialog.d.ts +1 -3
  92. package/dist/dialog/FixedDialog.js +0 -8
  93. package/dist/dialog/FixedDialog.js.map +1 -1
  94. package/dist/dialog/_dialog.scss +67 -13
  95. package/dist/dialog/styles.d.ts +56 -0
  96. package/dist/dialog/styles.js +29 -2
  97. package/dist/dialog/styles.js.map +1 -1
  98. package/dist/divider/Divider.d.ts +0 -11
  99. package/dist/divider/Divider.js.map +1 -1
  100. package/dist/divider/_divider.scss +7 -1
  101. package/dist/divider/styles.d.ts +11 -0
  102. package/dist/divider/styles.js.map +1 -1
  103. package/dist/draggable/useDraggable.d.ts +6 -6
  104. package/dist/draggable/useDraggable.js.map +1 -1
  105. package/dist/draggable/utils.d.ts +3 -3
  106. package/dist/draggable/utils.js.map +1 -1
  107. package/dist/expansion-panel/ExpansionPanel.d.ts +1 -1
  108. package/dist/expansion-panel/ExpansionPanel.js.map +1 -1
  109. package/dist/expansion-panel/_expansion-panel.scss +5 -1
  110. package/dist/expansion-panel/useExpansionPanels.js +12 -24
  111. package/dist/expansion-panel/useExpansionPanels.js.map +1 -1
  112. package/dist/{form → files}/FileInput.d.ts +3 -6
  113. package/dist/{form → files}/FileInput.js +3 -6
  114. package/dist/files/FileInput.js.map +1 -0
  115. package/dist/files/_files.scss +22 -0
  116. package/dist/files/styles.d.ts +5 -0
  117. package/dist/files/styles.js +7 -0
  118. package/dist/files/styles.js.map +1 -0
  119. package/dist/{form → files}/useFileUpload.d.ts +7 -9
  120. package/dist/{form → files}/useFileUpload.js +5 -7
  121. package/dist/files/useFileUpload.js.map +1 -0
  122. package/dist/files/utils.d.ts +169 -0
  123. package/dist/files/utils.js +114 -0
  124. package/dist/files/utils.js.map +1 -0
  125. package/dist/{form/fileUtils.d.ts → files/validation.d.ts} +9 -174
  126. package/dist/{form/fileUtils.js → files/validation.js} +9 -134
  127. package/dist/files/validation.js.map +1 -0
  128. package/dist/focus/useFocusContainer.d.ts +2 -2
  129. package/dist/focus/useFocusContainer.js.map +1 -1
  130. package/dist/focus/utils.js.map +1 -1
  131. package/dist/form/FormMessage.js.map +1 -1
  132. package/dist/form/FormMessageContainer.js +4 -2
  133. package/dist/form/FormMessageContainer.js.map +1 -1
  134. package/dist/form/InputToggle.d.ts +2 -1
  135. package/dist/form/InputToggle.js +2 -1
  136. package/dist/form/InputToggle.js.map +1 -1
  137. package/dist/form/InputToggleIcon.js.map +1 -1
  138. package/dist/form/Label.js +2 -2
  139. package/dist/form/Label.js.map +1 -1
  140. package/dist/form/Listbox.d.ts +24 -0
  141. package/dist/form/Listbox.js +46 -0
  142. package/dist/form/Listbox.js.map +1 -0
  143. package/dist/form/ListboxProvider.d.ts +21 -0
  144. package/dist/form/{useListboxProvider.js → ListboxProvider.js} +1 -1
  145. package/dist/form/ListboxProvider.js.map +1 -0
  146. package/dist/form/MenuItemTextField.js +1 -2
  147. package/dist/form/MenuItemTextField.js.map +1 -1
  148. package/dist/form/NativeSelect.js +7 -4
  149. package/dist/form/NativeSelect.js.map +1 -1
  150. package/dist/form/Option.d.ts +49 -10
  151. package/dist/form/Option.js +11 -9
  152. package/dist/form/Option.js.map +1 -1
  153. package/dist/form/Password.js.map +1 -1
  154. package/dist/form/Select.d.ts +2 -2
  155. package/dist/form/Select.js +81 -85
  156. package/dist/form/Select.js.map +1 -1
  157. package/dist/form/Slider.d.ts +4 -4
  158. package/dist/form/Slider.js +6 -2
  159. package/dist/form/Slider.js.map +1 -1
  160. package/dist/form/SliderThumb.d.ts +3 -3
  161. package/dist/form/SliderThumb.js.map +1 -1
  162. package/dist/form/SliderValueMarks.d.ts +2 -2
  163. package/dist/form/SliderValueMarks.js.map +1 -1
  164. package/dist/form/SliderValueTooltip.js.map +1 -1
  165. package/dist/form/TextArea.js +1 -2
  166. package/dist/form/TextArea.js.map +1 -1
  167. package/dist/form/TextField.js +1 -2
  168. package/dist/form/TextField.js.map +1 -1
  169. package/dist/form/TextFieldContainer.js +1 -2
  170. package/dist/form/TextFieldContainer.js.map +1 -1
  171. package/dist/form/_form.scss +186 -121
  172. package/dist/form/formMessageContainerStyles.d.ts +10 -0
  173. package/dist/form/formMessageContainerStyles.js +11 -0
  174. package/dist/form/formMessageContainerStyles.js.map +1 -0
  175. package/dist/form/inputToggleStyles.js.map +1 -1
  176. package/dist/form/optionStyles.d.ts +1 -0
  177. package/dist/form/optionStyles.js +2 -2
  178. package/dist/form/optionStyles.js.map +1 -1
  179. package/dist/form/selectUtils.js.map +1 -1
  180. package/dist/form/sliderUtils.d.ts +1 -1
  181. package/dist/form/sliderUtils.js.map +1 -1
  182. package/dist/form/textFieldContainerStyles.d.ts +0 -2
  183. package/dist/form/textFieldContainerStyles.js +1 -2
  184. package/dist/form/textFieldContainerStyles.js.map +1 -1
  185. package/dist/form/types.d.ts +3 -10
  186. package/dist/form/types.js.map +1 -1
  187. package/dist/form/useCheckboxGroup.d.ts +17 -17
  188. package/dist/form/useCheckboxGroup.js +9 -17
  189. package/dist/form/useCheckboxGroup.js.map +1 -1
  190. package/dist/form/useCombobox.d.ts +56 -21
  191. package/dist/form/useCombobox.js +19 -4
  192. package/dist/form/useCombobox.js.map +1 -1
  193. package/dist/form/useEditableCombobox.d.ts +24 -4
  194. package/dist/form/useEditableCombobox.js +5 -0
  195. package/dist/form/useEditableCombobox.js.map +1 -1
  196. package/dist/form/useNumberField.js.map +1 -1
  197. package/dist/form/useRadioGroup.d.ts +6 -6
  198. package/dist/form/useRadioGroup.js.map +1 -1
  199. package/dist/form/useResizingTextArea.js.map +1 -1
  200. package/dist/form/useSelectCombobox.d.ts +3 -4
  201. package/dist/form/useSelectCombobox.js.map +1 -1
  202. package/dist/form/useTextField.d.ts +1 -1
  203. package/dist/form/useTextField.js.map +1 -1
  204. package/dist/form/useTextFieldContainerAddons.js.map +1 -1
  205. package/dist/hoverMode/useHoverMode.d.ts +3 -3
  206. package/dist/hoverMode/useHoverMode.js.map +1 -1
  207. package/dist/hoverMode/useHoverModeProvider.d.ts +4 -4
  208. package/dist/hoverMode/useHoverModeProvider.js.map +1 -1
  209. package/dist/icon/_icon.scss +151 -2
  210. package/dist/icon/iconConfig.d.ts +10 -0
  211. package/dist/icon/iconConfig.js +7 -0
  212. package/dist/icon/iconConfig.js.map +1 -1
  213. package/dist/icon/materialConfig.js.map +1 -1
  214. package/dist/icon/styles.js.map +1 -1
  215. package/dist/interaction/UserInteractionModeProvider.d.ts +5 -5
  216. package/dist/interaction/UserInteractionModeProvider.js +12 -8
  217. package/dist/interaction/UserInteractionModeProvider.js.map +1 -1
  218. package/dist/interaction/types.d.ts +20 -2
  219. package/dist/interaction/types.js.map +1 -1
  220. package/dist/interaction/useElementInteraction.d.ts +7 -1
  221. package/dist/interaction/useElementInteraction.js +1 -2
  222. package/dist/interaction/useElementInteraction.js.map +1 -1
  223. package/dist/interaction/utils.d.ts +2 -2
  224. package/dist/interaction/utils.js +2 -2
  225. package/dist/interaction/utils.js.map +1 -1
  226. package/dist/layout/LayoutWindowSplitter.js.map +1 -1
  227. package/dist/layout/_layout.scss +23 -10
  228. package/dist/layout/useExpandableLayout.d.ts +3 -3
  229. package/dist/layout/useExpandableLayout.js.map +1 -1
  230. package/dist/layout/useLayoutAppBarHeight.d.ts +2 -3
  231. package/dist/layout/useLayoutAppBarHeight.js.map +1 -1
  232. package/dist/layout/useTemporaryLayout.d.ts +2 -2
  233. package/dist/layout/useTemporaryLayout.js.map +1 -1
  234. package/dist/link/SkipToMainContent.js.map +1 -1
  235. package/dist/list/ListItem.d.ts +2 -1
  236. package/dist/list/ListItem.js +2 -1
  237. package/dist/list/ListItem.js.map +1 -1
  238. package/dist/list/ListItemChildren.js.map +1 -1
  239. package/dist/list/ListItemLink.d.ts +2 -1
  240. package/dist/list/ListItemLink.js +2 -1
  241. package/dist/list/ListItemLink.js.map +1 -1
  242. package/dist/list/_list.scss +6 -5
  243. package/dist/media-queries/_media-queries.scss +12 -0
  244. package/dist/media-queries/appSize.js.map +1 -1
  245. package/dist/media-queries/useMediaQuery.js +3 -1
  246. package/dist/media-queries/useMediaQuery.js.map +1 -1
  247. package/dist/menu/DropdownMenu.js.map +1 -1
  248. package/dist/menu/Menu.d.ts +8 -3
  249. package/dist/menu/Menu.js +2 -1
  250. package/dist/menu/Menu.js.map +1 -1
  251. package/dist/menu/MenuItemButton.js +6 -2
  252. package/dist/menu/MenuItemButton.js.map +1 -1
  253. package/dist/menu/useContextMenu.d.ts +3 -3
  254. package/dist/menu/useContextMenu.js.map +1 -1
  255. package/dist/movement/types.d.ts +5 -5
  256. package/dist/movement/types.js.map +1 -1
  257. package/dist/navigation/CollapsibleNavGroup.d.ts +5 -3
  258. package/dist/navigation/CollapsibleNavGroup.js +3 -4
  259. package/dist/navigation/CollapsibleNavGroup.js.map +1 -1
  260. package/dist/navigation/DefaultNavigationRenderer.d.ts +1 -2
  261. package/dist/navigation/DefaultNavigationRenderer.js +6 -2
  262. package/dist/navigation/DefaultNavigationRenderer.js.map +1 -1
  263. package/dist/navigation/NavItemButton.d.ts +1 -1
  264. package/dist/navigation/NavItemButton.js +1 -0
  265. package/dist/navigation/NavItemButton.js.map +1 -1
  266. package/dist/navigation/NavItemLink.d.ts +3 -2
  267. package/dist/navigation/NavItemLink.js +6 -2
  268. package/dist/navigation/NavItemLink.js.map +1 -1
  269. package/dist/navigation/NavSubheader.d.ts +2 -3
  270. package/dist/navigation/NavSubheader.js.map +1 -1
  271. package/dist/navigation/Navigation.d.ts +1 -1
  272. package/dist/navigation/Navigation.js.map +1 -1
  273. package/dist/navigation/_navigation.scss +6 -5
  274. package/dist/navigation/types.d.ts +54 -6
  275. package/dist/navigation/types.js.map +1 -1
  276. package/dist/navigation/useActiveHeadingId.d.ts +1 -1
  277. package/dist/navigation/useActiveHeadingId.js.map +1 -1
  278. package/dist/navigation/useNavigationExpansion.d.ts +104 -0
  279. package/dist/navigation/useNavigationExpansion.js +77 -0
  280. package/dist/navigation/useNavigationExpansion.js.map +1 -0
  281. package/dist/navigation/utils.d.ts +13 -0
  282. package/dist/navigation/utils.js +36 -0
  283. package/dist/navigation/utils.js.map +1 -0
  284. package/dist/objectFit.d.ts +69 -0
  285. package/dist/objectFit.js +52 -0
  286. package/dist/objectFit.js.map +1 -0
  287. package/dist/overlay/_overlay.scss +2 -1
  288. package/dist/positioning/useFixedPositioning.d.ts +17 -4
  289. package/dist/positioning/useFixedPositioning.js +10 -5
  290. package/dist/positioning/useFixedPositioning.js.map +1 -1
  291. package/dist/positioning/utils.js.map +1 -1
  292. package/dist/progress/LinearProgress.js.map +1 -1
  293. package/dist/progress/_progress.scss +20 -14
  294. package/dist/responsive-item/ResponsiveItem.d.ts +64 -0
  295. package/dist/responsive-item/ResponsiveItem.js +68 -0
  296. package/dist/responsive-item/ResponsiveItem.js.map +1 -0
  297. package/dist/responsive-item/ResponsiveItemOverlay.d.ts +1 -19
  298. package/dist/responsive-item/ResponsiveItemOverlay.js +1 -12
  299. package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
  300. package/dist/responsive-item/_responsive-item.scss +110 -133
  301. package/dist/responsive-item/responsiveItemOverlayStyles.d.ts +19 -0
  302. package/dist/responsive-item/responsiveItemOverlayStyles.js +14 -0
  303. package/dist/responsive-item/responsiveItemOverlayStyles.js.map +1 -0
  304. package/dist/responsive-item/responsiveItemStyles.d.ts +52 -0
  305. package/dist/responsive-item/responsiveItemStyles.js +15 -0
  306. package/dist/responsive-item/responsiveItemStyles.js.map +1 -0
  307. package/dist/scroll/useScrollLock.d.ts +5 -0
  308. package/dist/scroll/useScrollLock.js.map +1 -1
  309. package/dist/searching/utils.d.ts +2 -2
  310. package/dist/searching/utils.js.map +1 -1
  311. package/dist/segmented-button/SegmentedButton.d.ts +2 -1
  312. package/dist/segmented-button/SegmentedButton.js +2 -1
  313. package/dist/segmented-button/SegmentedButton.js.map +1 -1
  314. package/dist/segmented-button/_segmented-button.scss +6 -6
  315. package/dist/sheet/_sheet.scss +18 -6
  316. package/dist/snackbar/ToastManager.js +15 -5
  317. package/dist/snackbar/ToastManager.js.map +1 -1
  318. package/dist/snackbar/_snackbar.scss +30 -17
  319. package/dist/snackbar/useCurrentToastActions.d.ts +5 -5
  320. package/dist/snackbar/useCurrentToastActions.js.map +1 -1
  321. package/dist/table/_table.scss +15 -3
  322. package/dist/table/tableCellStyles.d.ts +7 -3
  323. package/dist/table/tableCellStyles.js +2 -2
  324. package/dist/table/tableCellStyles.js.map +1 -1
  325. package/dist/tabs/Tab.d.ts +2 -1
  326. package/dist/tabs/Tab.js +2 -1
  327. package/dist/tabs/Tab.js.map +1 -1
  328. package/dist/tabs/TabList.d.ts +2 -2
  329. package/dist/tabs/TabList.js.map +1 -1
  330. package/dist/tabs/TabListScrollButton.d.ts +1 -1
  331. package/dist/tabs/TabListScrollButton.js +1 -1
  332. package/dist/tabs/TabListScrollButton.js.map +1 -1
  333. package/dist/tabs/_tabs.scss +30 -9
  334. package/dist/tabs/getTabListScrollToOptions.d.ts +18 -0
  335. package/dist/tabs/getTabListScrollToOptions.js +19 -0
  336. package/dist/tabs/getTabListScrollToOptions.js.map +1 -0
  337. package/dist/tabs/tabStyles.d.ts +3 -0
  338. package/dist/tabs/tabStyles.js.map +1 -1
  339. package/dist/tabs/useTabList.d.ts +1 -8
  340. package/dist/tabs/useTabList.js +1 -0
  341. package/dist/tabs/useTabList.js.map +1 -1
  342. package/dist/tabs/useTabs.d.ts +6 -6
  343. package/dist/tabs/useTabs.js.map +1 -1
  344. package/dist/tabs/utils.d.ts +0 -18
  345. package/dist/tabs/utils.js +0 -15
  346. package/dist/tabs/utils.js.map +1 -1
  347. package/dist/test-utils/matchMedia.d.ts +1 -1
  348. package/dist/test-utils/matchMedia.js +4 -4
  349. package/dist/test-utils/matchMedia.js.map +1 -1
  350. package/dist/test-utils/polyfills/TextDecoder.js +0 -1
  351. package/dist/test-utils/polyfills/TextDecoder.js.map +1 -1
  352. package/dist/test-utils/timers.d.ts +9 -5
  353. package/dist/test-utils/timers.js +5 -5
  354. package/dist/test-utils/timers.js.map +1 -1
  355. package/dist/theme/LocalStorageColorSchemeProvider.d.ts +1 -1
  356. package/dist/theme/LocalStorageColorSchemeProvider.js +2 -1
  357. package/dist/theme/LocalStorageColorSchemeProvider.js.map +1 -1
  358. package/dist/theme/ThemeProvider.js +3 -1
  359. package/dist/theme/ThemeProvider.js.map +1 -1
  360. package/dist/theme/_a11y.scss +77 -13
  361. package/dist/theme/_colors.scss +279 -277
  362. package/dist/theme/_theme.scss +308 -37
  363. package/dist/theme/isColorScheme.d.ts +16 -0
  364. package/dist/theme/isColorScheme.js +19 -0
  365. package/dist/theme/isColorScheme.js.map +1 -0
  366. package/dist/theme/types.d.ts +53 -1
  367. package/dist/theme/types.js +1 -23
  368. package/dist/theme/types.js.map +1 -1
  369. package/dist/theme/useCSSVariables.d.ts +2 -19
  370. package/dist/theme/useCSSVariables.js.map +1 -1
  371. package/dist/theme/useColorScheme.d.ts +1 -35
  372. package/dist/theme/useColorScheme.js.map +1 -1
  373. package/dist/theme/useColorSchemeMetaTag.d.ts +1 -1
  374. package/dist/theme/useColorSchemeMetaTag.js.map +1 -1
  375. package/dist/theme/useColorSchemeProvider.d.ts +1 -1
  376. package/dist/theme/useColorSchemeProvider.js +1 -1
  377. package/dist/theme/useColorSchemeProvider.js.map +1 -1
  378. package/dist/theme/{usePrefersColorScheme.js → usePrefersDarkScheme.js} +1 -1
  379. package/dist/theme/usePrefersDarkScheme.js.map +1 -0
  380. package/dist/theme/utils.js.map +1 -1
  381. package/dist/tooltip/useTooltip.d.ts +14 -9
  382. package/dist/tooltip/useTooltip.js +2 -1
  383. package/dist/tooltip/useTooltip.js.map +1 -1
  384. package/dist/transition/_transition.scss +16 -9
  385. package/dist/transition/skeletonPlaceholderUtils.js.map +1 -1
  386. package/dist/transition/types.d.ts +1 -1
  387. package/dist/transition/types.js.map +1 -1
  388. package/dist/transition/useCarousel.d.ts +3 -3
  389. package/dist/transition/useCarousel.js.map +1 -1
  390. package/dist/transition/useCollapseTransition.js.map +1 -1
  391. package/dist/transition/useTransition.js +1 -0
  392. package/dist/transition/useTransition.js.map +1 -1
  393. package/dist/transition/utils.js.map +1 -1
  394. package/dist/tree/TreeItem.d.ts +2 -1
  395. package/dist/tree/TreeItem.js +4 -3
  396. package/dist/tree/TreeItem.js.map +1 -1
  397. package/dist/tree/TreeItemExpander.js.map +1 -1
  398. package/dist/tree/_tree.scss +8 -6
  399. package/dist/tree/useTreeExpansion.d.ts +1 -1
  400. package/dist/tree/useTreeExpansion.js +6 -18
  401. package/dist/tree/useTreeExpansion.js.map +1 -1
  402. package/dist/tree/useTreeSelection.d.ts +1 -1
  403. package/dist/tree/useTreeSelection.js +7 -25
  404. package/dist/tree/useTreeSelection.js.map +1 -1
  405. package/dist/tree/utils.d.ts +1 -1
  406. package/dist/tree/utils.js.map +1 -1
  407. package/dist/types.d.ts +12 -4
  408. package/dist/types.js.map +1 -1
  409. package/dist/typography/WritingDirectionProvider.d.ts +1 -1
  410. package/dist/typography/WritingDirectionProvider.js.map +1 -1
  411. package/dist/typography/_typography.scss +94 -37
  412. package/dist/typography/typographyStyles.js.map +1 -1
  413. package/dist/useDebouncedFunction.d.ts +1 -5
  414. package/dist/useDebouncedFunction.js +3 -1
  415. package/dist/useDebouncedFunction.js.map +1 -1
  416. package/dist/useDropzone.d.ts +4 -4
  417. package/dist/useDropzone.js.map +1 -1
  418. package/dist/useEnsuredId.js.map +1 -1
  419. package/dist/useIntersectionObserver.d.ts +5 -5
  420. package/dist/useIntersectionObserver.js.map +1 -1
  421. package/dist/useLocalStorage.d.ts +3 -3
  422. package/dist/useLocalStorage.js +1 -1
  423. package/dist/useLocalStorage.js.map +1 -1
  424. package/dist/useMutationObserver.d.ts +1 -1
  425. package/dist/useMutationObserver.js.map +1 -1
  426. package/dist/useOrientation.js +3 -1
  427. package/dist/useOrientation.js.map +1 -1
  428. package/dist/usePageInactive.d.ts +2 -2
  429. package/dist/usePageInactive.js.map +1 -1
  430. package/dist/useReadonlySet.d.ts +76 -0
  431. package/dist/useReadonlySet.js +72 -0
  432. package/dist/useReadonlySet.js.map +1 -0
  433. package/dist/useResizeListener.d.ts +1 -1
  434. package/dist/useResizeListener.js.map +1 -1
  435. package/dist/useThrottledFunction.d.ts +1 -5
  436. package/dist/useThrottledFunction.js +3 -1
  437. package/dist/useThrottledFunction.js.map +1 -1
  438. package/dist/useToggle.d.ts +3 -3
  439. package/dist/useToggle.js.map +1 -1
  440. package/dist/utils/RenderRecursively.d.ts +1 -1
  441. package/dist/utils/RenderRecursively.js.map +1 -1
  442. package/dist/utils/alphaNumericSort.d.ts +1 -1
  443. package/dist/utils/alphaNumericSort.js.map +1 -1
  444. package/dist/utils/bem.js.map +1 -1
  445. package/dist/utils/debounce.d.ts +5 -0
  446. package/dist/utils/debounce.js +17 -0
  447. package/dist/utils/debounce.js.map +1 -0
  448. package/dist/utils/nearest.js.map +1 -1
  449. package/dist/utils/parseCssLengthUnit.js.map +1 -1
  450. package/dist/utils/throttle.d.ts +5 -0
  451. package/dist/utils/throttle.js +30 -0
  452. package/dist/utils/throttle.js.map +1 -0
  453. package/dist/utils/wait.js +3 -1
  454. package/dist/utils/wait.js.map +1 -1
  455. package/dist/window-splitter/WindowSplitter.d.ts +37 -15
  456. package/dist/window-splitter/WindowSplitter.js +38 -17
  457. package/dist/window-splitter/WindowSplitter.js.map +1 -1
  458. package/dist/window-splitter/_window-splitter.scss +32 -14
  459. package/dist/window-splitter/styles.d.ts +14 -0
  460. package/dist/window-splitter/styles.js +18 -0
  461. package/dist/window-splitter/styles.js.map +1 -0
  462. package/package.json +24 -23
  463. package/src/app-bar/AppBar.tsx +1 -170
  464. package/src/app-bar/AppBarTitle.tsx +1 -44
  465. package/src/app-bar/styles.ts +206 -0
  466. package/src/autocomplete/Autocomplete.tsx +194 -211
  467. package/src/autocomplete/AutocompleteChip.tsx +48 -0
  468. package/src/autocomplete/AutocompleteCircularProgress.tsx +6 -17
  469. package/src/autocomplete/AutocompleteClearButton.tsx +44 -0
  470. package/src/autocomplete/AutocompleteDropdownButton.tsx +16 -37
  471. package/src/autocomplete/AutocompleteListboxChildren.tsx +68 -0
  472. package/src/autocomplete/autocompleteStyles.ts +48 -9
  473. package/src/autocomplete/defaults.ts +26 -17
  474. package/src/autocomplete/types.ts +744 -61
  475. package/src/autocomplete/useAutocomplete.ts +428 -0
  476. package/src/autocomplete/utils.ts +211 -0
  477. package/src/badge/Badge.tsx +1 -39
  478. package/src/badge/styles.ts +45 -0
  479. package/src/box/Box.tsx +11 -9
  480. package/src/box/styles.ts +14 -5
  481. package/src/button/AsyncButton.tsx +1 -1
  482. package/src/button/Button.tsx +5 -1
  483. package/src/card/Card.tsx +35 -4
  484. package/src/card/ClickableCard.tsx +9 -2
  485. package/src/card/styles.ts +1 -10
  486. package/src/chip/Chip.tsx +6 -1
  487. package/src/chip/styles.ts +12 -10
  488. package/src/delegateEvent.ts +5 -5
  489. package/src/dialog/Dialog.tsx +48 -61
  490. package/src/dialog/FixedDialog.tsx +1 -11
  491. package/src/dialog/styles.ts +97 -0
  492. package/src/divider/Divider.tsx +0 -12
  493. package/src/divider/styles.ts +12 -0
  494. package/src/draggable/useDraggable.ts +17 -10
  495. package/src/draggable/utils.ts +3 -3
  496. package/src/expansion-panel/ExpansionPanel.tsx +1 -1
  497. package/src/expansion-panel/useExpansionPanels.ts +18 -27
  498. package/src/{form → files}/FileInput.tsx +7 -15
  499. package/src/files/styles.ts +10 -0
  500. package/src/{form → files}/useFileUpload.ts +30 -34
  501. package/src/files/utils.ts +234 -0
  502. package/src/{form/fileUtils.ts → files/validation.ts} +13 -242
  503. package/src/focus/useFocusContainer.ts +16 -8
  504. package/src/form/FormMessageContainer.tsx +2 -2
  505. package/src/form/InputToggle.tsx +5 -1
  506. package/src/form/Label.tsx +18 -18
  507. package/src/form/Listbox.tsx +87 -0
  508. package/src/form/ListboxProvider.ts +37 -0
  509. package/src/form/MenuItemTextField.tsx +1 -2
  510. package/src/form/NativeSelect.tsx +14 -10
  511. package/src/form/Option.tsx +74 -22
  512. package/src/form/Select.tsx +89 -85
  513. package/src/form/Slider.tsx +14 -11
  514. package/src/form/SliderThumb.tsx +4 -4
  515. package/src/form/SliderValueMarks.tsx +4 -4
  516. package/src/form/TextArea.tsx +6 -8
  517. package/src/form/TextField.tsx +0 -2
  518. package/src/form/TextFieldContainer.tsx +9 -11
  519. package/src/form/formMessageContainerStyles.ts +22 -0
  520. package/src/form/optionStyles.ts +7 -2
  521. package/src/form/sliderUtils.ts +1 -1
  522. package/src/form/textFieldContainerStyles.ts +9 -14
  523. package/src/form/types.ts +3 -11
  524. package/src/form/useCheckboxGroup.ts +28 -36
  525. package/src/form/useCombobox.ts +86 -38
  526. package/src/form/useEditableCombobox.ts +43 -8
  527. package/src/form/useRadioGroup.ts +6 -6
  528. package/src/form/useSelectCombobox.ts +4 -4
  529. package/src/form/useTextField.ts +1 -1
  530. package/src/hoverMode/useHoverMode.ts +3 -3
  531. package/src/hoverMode/useHoverModeProvider.ts +4 -4
  532. package/src/icon/iconConfig.tsx +12 -0
  533. package/src/interaction/UserInteractionModeProvider.tsx +12 -8
  534. package/src/interaction/types.ts +21 -2
  535. package/src/interaction/useElementInteraction.tsx +9 -2
  536. package/src/interaction/utils.ts +7 -7
  537. package/src/layout/useExpandableLayout.ts +3 -3
  538. package/src/layout/useLayoutAppBarHeight.ts +3 -4
  539. package/src/layout/useTemporaryLayout.ts +2 -2
  540. package/src/list/ListItem.tsx +5 -1
  541. package/src/list/ListItemLink.tsx +5 -1
  542. package/src/media-queries/useMediaQuery.ts +2 -1
  543. package/src/menu/Menu.tsx +11 -3
  544. package/src/menu/MenuItemButton.tsx +7 -1
  545. package/src/menu/useContextMenu.ts +3 -3
  546. package/src/movement/types.ts +5 -5
  547. package/src/navigation/CollapsibleNavGroup.tsx +16 -8
  548. package/src/navigation/DefaultNavigationRenderer.tsx +8 -6
  549. package/src/navigation/NavItemButton.tsx +2 -1
  550. package/src/navigation/NavItemLink.tsx +11 -3
  551. package/src/navigation/NavSubheader.tsx +1 -1
  552. package/src/navigation/Navigation.tsx +1 -1
  553. package/src/navigation/types.ts +60 -10
  554. package/src/navigation/useActiveHeadingId.ts +1 -1
  555. package/src/navigation/useNavigationExpansion.ts +170 -0
  556. package/src/navigation/utils.ts +47 -0
  557. package/src/objectFit.ts +88 -0
  558. package/src/positioning/useFixedPositioning.ts +34 -11
  559. package/src/responsive-item/ResponsiveItem.tsx +96 -0
  560. package/src/responsive-item/ResponsiveItemOverlay.tsx +6 -46
  561. package/src/responsive-item/responsiveItemOverlayStyles.ts +46 -0
  562. package/src/responsive-item/responsiveItemStyles.ts +81 -0
  563. package/src/scroll/useScrollLock.ts +6 -0
  564. package/src/searching/utils.ts +3 -3
  565. package/src/segmented-button/SegmentedButton.tsx +5 -1
  566. package/src/snackbar/ToastManager.tsx +16 -5
  567. package/src/snackbar/useCurrentToastActions.ts +5 -5
  568. package/src/table/tableCellStyles.ts +10 -6
  569. package/src/tabs/Tab.tsx +4 -1
  570. package/src/tabs/TabList.tsx +2 -2
  571. package/src/tabs/TabListScrollButton.tsx +4 -4
  572. package/src/tabs/getTabListScrollToOptions.ts +37 -0
  573. package/src/tabs/tabStyles.ts +4 -0
  574. package/src/tabs/useTabList.ts +2 -9
  575. package/src/tabs/useTabs.ts +6 -6
  576. package/src/tabs/utils.ts +0 -38
  577. package/src/test-utils/matchMedia.ts +5 -5
  578. package/src/test-utils/polyfills/TextDecoder.ts +0 -1
  579. package/src/test-utils/timers.ts +10 -7
  580. package/src/theme/LocalStorageColorSchemeProvider.tsx +4 -4
  581. package/src/theme/ThemeProvider.tsx +3 -3
  582. package/src/theme/isColorScheme.ts +22 -0
  583. package/src/theme/types.ts +67 -1
  584. package/src/theme/useCSSVariables.ts +7 -30
  585. package/src/theme/useColorScheme.ts +1 -40
  586. package/src/theme/useColorSchemeMetaTag.ts +1 -1
  587. package/src/theme/useColorSchemeProvider.ts +2 -2
  588. package/src/tooltip/useTooltip.ts +17 -9
  589. package/src/transition/types.ts +1 -1
  590. package/src/transition/useCarousel.ts +3 -3
  591. package/src/transition/useTransition.ts +1 -0
  592. package/src/tree/TreeItem.tsx +7 -1
  593. package/src/tree/TreeItemExpander.tsx +1 -1
  594. package/src/tree/useTreeExpansion.ts +7 -25
  595. package/src/tree/useTreeSelection.ts +8 -32
  596. package/src/tree/utils.ts +6 -2
  597. package/src/types.ts +20 -4
  598. package/src/typography/WritingDirectionProvider.tsx +1 -1
  599. package/src/useDebouncedFunction.ts +4 -9
  600. package/src/useDropzone.ts +4 -4
  601. package/src/useIntersectionObserver.ts +5 -5
  602. package/src/useLocalStorage.ts +6 -6
  603. package/src/useMutationObserver.ts +1 -1
  604. package/src/useOrientation.ts +3 -1
  605. package/src/usePageInactive.ts +2 -2
  606. package/src/useReadonlySet.ts +122 -0
  607. package/src/useResizeListener.ts +1 -1
  608. package/src/useThrottledFunction.ts +6 -9
  609. package/src/useToggle.ts +3 -3
  610. package/src/utils/RenderRecursively.tsx +1 -1
  611. package/src/utils/alphaNumericSort.ts +1 -1
  612. package/src/utils/debounce.ts +22 -0
  613. package/src/utils/throttle.ts +38 -0
  614. package/src/utils/wait.ts +5 -1
  615. package/src/window-splitter/WindowSplitter.tsx +38 -43
  616. package/src/window-splitter/styles.ts +42 -0
  617. package/dist/autocomplete/FilterAutocompleteOptions.d.ts +0 -8
  618. package/dist/autocomplete/FilterAutocompleteOptions.js +0 -57
  619. package/dist/autocomplete/FilterAutocompleteOptions.js.map +0 -1
  620. package/dist/dialog/DialogContainer.d.ts +0 -14
  621. package/dist/dialog/DialogContainer.js +0 -20
  622. package/dist/dialog/DialogContainer.js.map +0 -1
  623. package/dist/form/FileInput.js.map +0 -1
  624. package/dist/form/fileUtils.js.map +0 -1
  625. package/dist/form/useFileUpload.js.map +0 -1
  626. package/dist/form/useListboxProvider.d.ts +0 -31
  627. package/dist/form/useListboxProvider.js.map +0 -1
  628. package/dist/navigation/getHrefFromParents.d.ts +0 -5
  629. package/dist/navigation/getHrefFromParents.js +0 -13
  630. package/dist/navigation/getHrefFromParents.js.map +0 -1
  631. package/dist/responsive-item/ResponsiveItemContainer.d.ts +0 -115
  632. package/dist/responsive-item/ResponsiveItemContainer.js +0 -80
  633. package/dist/responsive-item/ResponsiveItemContainer.js.map +0 -1
  634. package/dist/responsive-item/styles.d.ts +0 -34
  635. package/dist/responsive-item/styles.js +0 -17
  636. package/dist/responsive-item/styles.js.map +0 -1
  637. package/dist/theme/usePrefersColorScheme.js.map +0 -1
  638. package/src/autocomplete/FilterAutocompleteOptions.tsx +0 -86
  639. package/src/dialog/DialogContainer.tsx +0 -28
  640. package/src/form/useListboxProvider.ts +0 -45
  641. package/src/navigation/getHrefFromParents.ts +0 -15
  642. package/src/responsive-item/ResponsiveItemContainer.tsx +0 -174
  643. package/src/responsive-item/styles.ts +0 -58
  644. /package/dist/theme/{usePrefersColorScheme.d.ts → usePrefersDarkScheme.d.ts} +0 -0
  645. /package/src/theme/{usePrefersColorScheme.ts → usePrefersDarkScheme.ts} +0 -0
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @since 6.0.0
3
+ */
4
+ export interface TabListScrollToOptions {
5
+ isRTL: boolean;
6
+ animate: boolean;
7
+ vertical: boolean;
8
+ increment: boolean;
9
+ container: HTMLElement;
10
+ }
11
+
12
+ /**
13
+ * @since 6.0.0
14
+ */
15
+ export type GetTabListScrollToOptions = (
16
+ options: TabListScrollToOptions
17
+ ) => ScrollToOptions | undefined;
18
+
19
+ /**
20
+ * @since 6.0.0
21
+ */
22
+ export const getTabListScrollToOptions: GetTabListScrollToOptions = (
23
+ options
24
+ ) => {
25
+ const { isRTL, animate, vertical, increment, container } = options;
26
+ const { scrollLeft, scrollTop, scrollWidth, scrollHeight } = container;
27
+ const currentScroll = vertical ? scrollTop : scrollLeft;
28
+ const scrollDistance = vertical ? scrollHeight : scrollWidth;
29
+ const amount = (scrollDistance / 10) * (increment ? 1 : -1);
30
+ const distance = currentScroll + amount * (vertical || !isRTL ? 1 : -1);
31
+
32
+ return {
33
+ left: vertical ? undefined : distance,
34
+ top: vertical ? distance : undefined,
35
+ behavior: animate ? "smooth" : "auto",
36
+ };
37
+ };
@@ -9,6 +9,10 @@ declare module "react" {
9
9
  "--rmd-tab-active-color"?: string;
10
10
  "--rmd-tab-inactive-color"?: string;
11
11
  "--rmd-tab-disabled-color"?: string;
12
+
13
+ "--rmd-tab-size"?: string;
14
+ "--rmd-tab-offset"?: string | number;
15
+ "--rmd-tab-indicator-background"?: string;
12
16
  }
13
17
  }
14
18
 
@@ -18,14 +18,6 @@ import { useEnsuredRef } from "../useEnsuredRef.js";
18
18
  import { useResizeObserver } from "../useResizeObserver.js";
19
19
  import { getTabRoleOnly, scrollTabIntoView } from "./utils.js";
20
20
 
21
- declare module "react" {
22
- interface CSSProperties {
23
- "--rmd-tab-size"?: string;
24
- "--rmd-tab-offset"?: string | number;
25
- "--rmd-tab-indicator-background"?: string;
26
- }
27
- }
28
-
29
21
  const TAB_SIZE_VAR = "--rmd-tab-size";
30
22
  const TAB_OFFSET_VAR = "--rmd-tab-offset";
31
23
 
@@ -43,7 +35,7 @@ export interface TabListHookOptions {
43
35
  ref: Ref<HTMLDivElement> | undefined;
44
36
  style: CSSProperties | undefined;
45
37
  activeIndex: number;
46
- setActiveIndex(nextActiveIndex: number): void;
38
+ setActiveIndex: (nextActiveIndex: number) => void;
47
39
  scrollButtons: boolean;
48
40
  activationMode: "manual" | "automatic";
49
41
  vertical: boolean;
@@ -115,6 +107,7 @@ export function useTabList(
115
107
  // this is kind of hacky -- the styles should update when switching between
116
108
  // RTL, but the RTL state isn't required for any styles. Just reference it
117
109
  // so that the hooks eslint rule doesn't show a warning...
110
+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
118
111
  isRTL;
119
112
 
120
113
  const activeTab = getTabRoleOnly(entry.target)[activeIndex];
@@ -136,11 +136,11 @@ export interface TabsImplementation<TabValue extends string | number = number> {
136
136
  direction: SlideDirection;
137
137
  setDirection: UseStateSetter<SlideDirection>;
138
138
  activeTab?: TabValue;
139
- setActiveTab?(nextActiveTab: TabValue): void;
140
- getTabProps(tabValue: TabValue): ProvidedTabProps;
141
- getTabListProps(): ProvidedTabListProps;
142
- getTabPanelProps(tabValue: TabValue): ProvidedTabPanelProps;
143
- getTabPanelsProps<E extends HTMLElement>(): ProvidedTabPanelsProps<E>;
139
+ setActiveTab?: (nextActiveTab: TabValue) => void;
140
+ getTabProps: (tabValue: TabValue) => ProvidedTabProps;
141
+ getTabListProps: () => ProvidedTabListProps;
142
+ getTabPanelProps: (tabValue: TabValue) => ProvidedTabPanelProps;
143
+ getTabPanelsProps: <E extends HTMLElement>() => ProvidedTabPanelsProps<E>;
144
144
  }
145
145
 
146
146
  /**
@@ -180,7 +180,7 @@ export interface TabsImplementation<TabValue extends string | number = number> {
180
180
  *
181
181
  * @since 6.0.0
182
182
  */
183
- export function useTabs(): TabsImplementation<number> & {
183
+ export function useTabs(): TabsImplementation & {
184
184
  activeTab: number;
185
185
  setActiveTab: number;
186
186
  };
package/src/tabs/utils.ts CHANGED
@@ -44,41 +44,3 @@ export const scrollTabIntoView = (options: ScrollOptions): void => {
44
44
  container[scrollAttribute] = elementStart - firstOffset;
45
45
  }
46
46
  };
47
-
48
- /**
49
- * @since 6.0.0
50
- */
51
- export interface TabListScrollToOptions {
52
- isRTL: boolean;
53
- animate: boolean;
54
- vertical: boolean;
55
- increment: boolean;
56
- container: HTMLElement;
57
- }
58
-
59
- /**
60
- * @since 6.0.0
61
- */
62
- export type GetTabListScrollToOptions = (
63
- options: TabListScrollToOptions
64
- ) => ScrollToOptions | undefined;
65
-
66
- /**
67
- * @since 6.0.0
68
- */
69
- export const getTabListScrollToOptions: GetTabListScrollToOptions = (
70
- options
71
- ) => {
72
- const { isRTL, animate, vertical, increment, container } = options;
73
- const { scrollLeft, scrollTop, scrollWidth, scrollHeight } = container;
74
- const currentScroll = vertical ? scrollTop : scrollLeft;
75
- const scrollDistance = vertical ? scrollHeight : scrollWidth;
76
- const amount = (scrollDistance / 10) * (increment ? 1 : -1);
77
- const distance = currentScroll + amount * (vertical || !isRTL ? 1 : -1);
78
-
79
- return {
80
- left: vertical ? undefined : distance,
81
- top: vertical ? distance : undefined,
82
- behavior: animate ? "smooth" : "auto",
83
- };
84
- };
@@ -36,7 +36,7 @@ export type MatchMediaMatcher = (query: string) => boolean;
36
36
  * @returns `true` for phone media queries
37
37
  */
38
38
  export const matchPhone: MatchMediaMatcher = (query) =>
39
- query.includes(`${DEFAULT_PHONE_MAX_WIDTH}`);
39
+ query.includes(DEFAULT_PHONE_MAX_WIDTH);
40
40
 
41
41
  /**
42
42
  * @see {@link spyOnMatchMedia} for usage
@@ -44,7 +44,7 @@ export const matchPhone: MatchMediaMatcher = (query) =>
44
44
  * @returns `true` for tablet media queries
45
45
  */
46
46
  export const matchTablet: MatchMediaMatcher = (query) =>
47
- query.includes(`${DEFAULT_TABLET_MIN_WIDTH}`);
47
+ query.includes(DEFAULT_TABLET_MIN_WIDTH);
48
48
 
49
49
  /**
50
50
  * @see {@link spyOnMatchMedia} for usage
@@ -52,7 +52,7 @@ export const matchTablet: MatchMediaMatcher = (query) =>
52
52
  * @returns `true` for desktop media queries
53
53
  */
54
54
  export const matchDesktop: MatchMediaMatcher = (query) =>
55
- query.includes(`${DEFAULT_DESKTOP_MIN_WIDTH}`);
55
+ query.includes(DEFAULT_DESKTOP_MIN_WIDTH);
56
56
 
57
57
  /**
58
58
  * @see {@link spyOnMatchMedia} for usage
@@ -60,7 +60,7 @@ export const matchDesktop: MatchMediaMatcher = (query) =>
60
60
  * @returns `true` for large desktop media queries
61
61
  */
62
62
  export const matchLargeDesktop: MatchMediaMatcher = (query) =>
63
- query.includes(`${DEFAULT_DESKTOP_LARGE_MIN_WIDTH}`);
63
+ query.includes(DEFAULT_DESKTOP_LARGE_MIN_WIDTH);
64
64
 
65
65
  /**
66
66
  * @see {@link spyOnMatchMedia} for usage
@@ -101,7 +101,7 @@ export type MatchMediaSpiedFunction = jest.SpiedFunction<
101
101
  * // expect phone results
102
102
  * ```
103
103
  */
104
- changeViewport(matcher: MatchMediaMatcher, disableAct?: boolean): void;
104
+ changeViewport: (matcher: MatchMediaMatcher, disableAct?: boolean) => void;
105
105
  };
106
106
 
107
107
  /**
@@ -1,7 +1,6 @@
1
1
  import { TextDecoder } from "node:util";
2
2
 
3
3
  if (typeof global.TextDecoder === "undefined") {
4
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
5
4
  // @ts-expect-error browser TextDecoder does not support `null` while `node:util` does
6
5
  global.TextDecoder = TextDecoder;
7
6
  }
@@ -1,13 +1,18 @@
1
1
  import { jest } from "@jest/globals";
2
2
 
3
+ /**
4
+ * @since 6.0.0
5
+ */
6
+ export type RafSpy = jest.SpiedFunction<typeof requestAnimationFrame>;
7
+
3
8
  /**
4
9
  * @example
5
10
  * ```ts
6
- * import { useImmediateRaf } from "@react-md/core/test-utils";
11
+ * import { testImmediateRaf } from "@react-md/core/test-utils";
7
12
  *
8
13
  * describe("some test suite", () => {
9
14
  * it("should test something with requestAnimationFrame", () => {
10
- * const raf = useImmediateRaf();
15
+ * const raf = testImmediateRaf();
11
16
  *
12
17
  * // do some testing with requestAnimationFrame
13
18
  *
@@ -19,7 +24,7 @@ import { jest } from "@jest/globals";
19
24
  *
20
25
  * @example Automatic Cleanup
21
26
  * ```ts
22
- * import { useImmediateRaf } from "@react-md/core/test-utils";
27
+ * import { testImmediateRaf } from "@react-md/core/test-utils";
23
28
  *
24
29
  * afterEach(() => {
25
30
  * jest.restoreAllMocks();
@@ -27,7 +32,7 @@ import { jest } from "@jest/globals";
27
32
  *
28
33
  * describe("some test suite", () => {
29
34
  * it("should test something with requestAnimationFrame", () => {
30
- * const raf = useImmediateRaf();
35
+ * const raf = testImmediateRaf();
31
36
  *
32
37
  * // do some testing with requestAnimationFrame
33
38
  * });
@@ -36,9 +41,7 @@ import { jest } from "@jest/globals";
36
41
  *
37
42
  * @since 6.0.0
38
43
  */
39
- export const useImmediateRaf = (): jest.SpiedFunction<
40
- typeof requestAnimationFrame
41
- > =>
44
+ export const testImmediateRaf = (): RafSpy =>
42
45
  jest.spyOn(window, "requestAnimationFrame").mockImplementation((cb) => {
43
46
  cb(0);
44
47
  return 0;
@@ -1,8 +1,10 @@
1
1
  "use client";
2
2
  import { type ReactElement, type ReactNode } from "react";
3
3
  import { useLocalStorage } from "../useLocalStorage.js";
4
- import { ColorSchemeProvider, type ColorSchemeMode } from "./useColorScheme.js";
4
+ import { type ColorSchemeMode } from "./types.js";
5
+ import { ColorSchemeProvider } from "./useColorScheme.js";
5
6
  import { useColorSchemeProvider } from "./useColorSchemeProvider.js";
7
+ import { isColorSchemeMode } from "./isColorScheme.js";
6
8
 
7
9
  /**
8
10
  * @since 6.0.0
@@ -115,9 +117,7 @@ export function LocalStorageColorSchemeProvider(
115
117
  key: localStorageKey,
116
118
  defaultValue: defaultColorSchemeMode,
117
119
  deserializer: (item) =>
118
- item === "light" || item === "dark" || item === "system"
119
- ? item
120
- : defaultColorSchemeMode,
120
+ isColorSchemeMode(item) ? item : defaultColorSchemeMode,
121
121
  });
122
122
 
123
123
  const value = useColorSchemeProvider({
@@ -384,9 +384,9 @@ export function ThemeProvider(props: ThemeProviderProps): ReactElement {
384
384
  // NOTE: This will not be correct the first time a new theme is lazy-loaded
385
385
  // and applied. It might be good to have a way to manually force this flow
386
386
  // again?
387
- const frame = window.requestAnimationFrame(() =>
388
- setDerivedTheme(getDerivedTheme(document.documentElement))
389
- );
387
+ const frame = window.requestAnimationFrame(() => {
388
+ setDerivedTheme(getDerivedTheme(document.documentElement));
389
+ });
390
390
 
391
391
  return () => {
392
392
  window.cancelAnimationFrame(frame);
@@ -0,0 +1,22 @@
1
+ import { type ColorSchemeMode, type ColorScheme } from "./types.js";
2
+
3
+ /**
4
+ * A type assertion helper to check if a value is a valid {@link ColorScheme}
5
+ * when it is pulled from unknown sources (like local storage).
6
+ *
7
+ * @since 6.0.0
8
+ */
9
+ export function isColorScheme(value: unknown): value is ColorScheme {
10
+ return value === "light" || value === "dark";
11
+ }
12
+
13
+ /**
14
+ * A type assertion helper to check if a value is a valid
15
+ * {@link ColorSchemeMode} when it is pulled from unknown sources (like local
16
+ * storage).
17
+ *
18
+ * @since 6.0.0
19
+ */
20
+ export function isColorSchemeMode(value: unknown): value is ColorSchemeMode {
21
+ return isColorScheme(value) || value === "system";
22
+ }
@@ -1,4 +1,5 @@
1
- import type { CSSProperties } from "react";
1
+ import { type CSSProperties } from "react";
2
+ import { type UseStateSetter } from "../types.js";
2
3
 
3
4
  /**
4
5
  * @since 6.0.0
@@ -36,3 +37,68 @@ export type DefinedCustomProperty<Property = keyof CSSProperties> =
36
37
  * @since 6.0.0
37
38
  */
38
39
  export type DefinedCSSVariableName = DefinedCustomProperty;
40
+
41
+ /**
42
+ * @since 6.0.0
43
+ */
44
+ export interface CSSVariable<
45
+ Name extends CSSVariableName = DefinedCSSVariableName,
46
+ > {
47
+ name: Name;
48
+ value: string | number;
49
+ }
50
+
51
+ /**
52
+ * @since 6.0.0
53
+ */
54
+ export type CSSVariablesProperties<
55
+ Name extends CSSVariableName = DefinedCSSVariableName,
56
+ > = {
57
+ [key in Name]?: string | number;
58
+ };
59
+
60
+ /**
61
+ * @since 6.0.0
62
+ */
63
+ export type ReadonlyCSSVariableList<
64
+ Name extends CSSVariableName = DefinedCSSVariableName,
65
+ > = readonly Readonly<CSSVariable<Name>>[];
66
+
67
+ /** @since 6.0.0 */
68
+ export type ColorScheme = "light" | "dark";
69
+
70
+ /** @since 6.0.0 */
71
+ export type ColorSchemeMode = ColorScheme | "system";
72
+
73
+ /**
74
+ * @since 6.0.0
75
+ */
76
+ export interface ColorSchemeModeBehavior {
77
+ /**
78
+ * The current color scheme mode that is being used by your app that should
79
+ * default to the `$color-scheme` SCSS variable. If the
80
+ * {@link setColorSchemeMode} is called, this will update to that new value.
81
+ *
82
+ * TODO: Figure out how to document this
83
+ *
84
+ * - `colorScheme` - only `light` or `dark` -- only useful when the `colorSchemeMode` is set to `system`
85
+ * - `colorSchemeMode` - current **user** defined color scheme behavior? should default to `$color-scheme`, but will change based on `setColorSchemeMode`
86
+ */
87
+ colorSchemeMode: ColorSchemeMode;
88
+
89
+ /**
90
+ * A function to update the color scheme.
91
+ *
92
+ * @see {@link useColorScheme} for an example usage
93
+ */
94
+ setColorSchemeMode: UseStateSetter<ColorSchemeMode>;
95
+ }
96
+
97
+ /** @since 6.0.0 */
98
+ export interface ColorSchemeContext extends ColorSchemeModeBehavior {
99
+ /**
100
+ * The current color scheme that is being used. This is only useful when the
101
+ * {@link colorSchemeMode} is set to `"system"`.
102
+ */
103
+ colorScheme: ColorScheme;
104
+ }
@@ -1,33 +1,10 @@
1
1
  "use client";
2
- import type { RefObject } from "react";
3
- import { useEffect, useMemo } from "react";
4
- import type { CSSVariableName, DefinedCSSVariableName } from "./types.js";
5
-
6
- /**
7
- * @since 6.0.0
8
- */
9
- export interface CSSVariable<
10
- Name extends CSSVariableName = DefinedCSSVariableName,
11
- > {
12
- name: Name;
13
- value: string | number;
14
- }
15
-
16
- /**
17
- * @since 6.0.0
18
- */
19
- export type CSSVariablesProperties<
20
- Name extends CSSVariableName = DefinedCSSVariableName,
21
- > = {
22
- [key in Name]?: string | number;
23
- };
24
-
25
- /**
26
- * @since 6.0.0
27
- */
28
- export type ReadonlyCSSVariableList<
29
- Name extends CSSVariableName = DefinedCSSVariableName,
30
- > = readonly Readonly<CSSVariable<Name>>[];
2
+ import { type RefObject, useEffect, useMemo } from "react";
3
+ import {
4
+ type CSSVariableName,
5
+ type CSSVariablesProperties,
6
+ type ReadonlyCSSVariableList,
7
+ } from "./types.js";
31
8
 
32
9
  /**
33
10
  * @example Applying Variables the root html element
@@ -110,7 +87,7 @@ export function useCSSVariables<Name extends CSSVariableName>(
110
87
  export function useCSSVariables<Name extends CSSVariableName>(
111
88
  variables: ReadonlyCSSVariableList<Name>,
112
89
  rootNodeOrInlineStyle?: RefObject<HTMLElement> | HTMLElement | boolean
113
- ): CSSVariablesProperties<Name> | void {
90
+ ): CSSVariablesProperties<Name> | undefined {
114
91
  useEffect(() => {
115
92
  if (rootNodeOrInlineStyle === true || !variables.length) {
116
93
  return;
@@ -1,45 +1,6 @@
1
1
  "use client";
2
2
  import { createContext, useContext } from "react";
3
- import type { UseStateSetter } from "../types.js";
4
-
5
- /** @since 6.0.0 */
6
- export type ColorScheme = "light" | "dark";
7
-
8
- /** @since 6.0.0 */
9
- export type ColorSchemeMode = ColorScheme | "system";
10
-
11
- /**
12
- * @since 6.0.0
13
- */
14
- export interface ColorSchemeModeBehavior {
15
- /**
16
- * The current color scheme mode that is being used by your app that should
17
- * default to the `$color-scheme` SCSS variable. If the
18
- * {@link setColorSchemeMode} is called, this will update to that new value.
19
- *
20
- * TODO: Figure out how to document this
21
- *
22
- * - `colorScheme` - only `light` or `dark` -- only useful when the `colorSchemeMode` is set to `system`
23
- * - `colorSchemeMode` - current **user** defined color scheme behavior? should default to `$color-scheme`, but will change based on `setColorSchemeMode`
24
- */
25
- colorSchemeMode: ColorSchemeMode;
26
-
27
- /**
28
- * A function to update the color scheme.
29
- *
30
- * @see {@link useColorScheme} for an example usage
31
- */
32
- setColorSchemeMode: UseStateSetter<ColorSchemeMode>;
33
- }
34
-
35
- /** @since 6.0.0 */
36
- export interface ColorSchemeContext extends ColorSchemeModeBehavior {
37
- /**
38
- * The current color scheme that is being used. This is only useful when the
39
- * {@link colorSchemeMode} is set to `"system"`.
40
- */
41
- colorScheme: ColorScheme;
42
- }
3
+ import { type ColorSchemeContext } from "./types.js";
43
4
 
44
5
  const context = createContext<ColorSchemeContext>({
45
6
  colorScheme: "light",
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { useEffect } from "react";
3
- import { type ColorScheme } from "./useColorScheme.js";
3
+ import { type ColorScheme } from "./types.js";
4
4
 
5
5
  /**
6
6
  * @since 6.0.0
@@ -6,9 +6,9 @@ import {
6
6
  type ColorSchemeContext,
7
7
  type ColorSchemeMode,
8
8
  type ColorSchemeModeBehavior,
9
- } from "./useColorScheme.js";
9
+ } from "./types.js";
10
10
  import { useColorSchemeMetaTag } from "./useColorSchemeMetaTag.js";
11
- import { usePrefersDarkTheme } from "./usePrefersColorScheme.js";
11
+ import { usePrefersDarkTheme } from "./usePrefersDarkScheme.js";
12
12
 
13
13
  /**
14
14
  * @since 6.0.0
@@ -122,13 +122,13 @@ export interface TooltipPositioningOptions {
122
122
  export interface TooltippedElementEventHandlers<
123
123
  E extends HTMLElement = HTMLButtonElement,
124
124
  > {
125
- onBlur?(event: FocusEvent<E>): void;
126
- onFocus?(event: FocusEvent<E>): void;
127
- onMouseEnter?(event: MouseEvent<E>): void;
128
- onMouseLeave?(event: MouseEvent<E>): void;
129
- onTouchStart?(event: TouchEvent<E>): void;
130
- onTouchEnd?(event: TouchEvent<E>): void;
131
- onContextMenu?(event: MouseEvent<E>): void;
125
+ onBlur?: (event: FocusEvent<E>) => void;
126
+ onFocus?: (event: FocusEvent<E>) => void;
127
+ onMouseEnter?: (event: MouseEvent<E>) => void;
128
+ onMouseLeave?: (event: MouseEvent<E>) => void;
129
+ onTouchStart?: (event: TouchEvent<E>) => void;
130
+ onTouchEnd?: (event: TouchEvent<E>) => void;
131
+ onContextMenu?: (event: MouseEvent<E>) => void;
132
132
  }
133
133
 
134
134
  /**
@@ -254,6 +254,12 @@ export interface TooltipOptions<
254
254
  * @since 6.0.0
255
255
  */
256
256
  overflowOnly?: boolean;
257
+
258
+ /**
259
+ * @see {@link FixedPositioningOptions.disabled}
260
+ * @defaultValue `false`
261
+ */
262
+ disableFixedPositioning?: boolean;
257
263
  }
258
264
 
259
265
  /**
@@ -265,7 +271,7 @@ export interface ProvidedTooltipProps<E extends HTMLElement = HTMLSpanElement>
265
271
  id: string;
266
272
  ref: Ref<E>;
267
273
  dense: boolean;
268
- style: CSSProperties;
274
+ style: CSSProperties | undefined;
269
275
  visible: boolean;
270
276
  position: SimplePosition;
271
277
  }
@@ -292,7 +298,7 @@ export interface TooltipImplementation<
292
298
  * This is a wrapper around the {@link setVisible} behavior that will also
293
299
  * clear any pending timeouts.
294
300
  */
295
- hideTooltip(): void;
301
+ hideTooltip: () => void;
296
302
 
297
303
  /**
298
304
  * @since 6.0.0
@@ -422,6 +428,7 @@ export function useTooltip<
422
428
  onEntered = noop,
423
429
  onExited,
424
430
  overflowOnly,
431
+ disableFixedPositioning,
425
432
  } = options;
426
433
 
427
434
  const fallbackId = useId();
@@ -469,6 +476,7 @@ export function useTooltip<
469
476
  fixedTo: elementRef,
470
477
  anchor: getAnchor(position),
471
478
  disableSwapping: disableSwapping ?? !!determinedPosition,
479
+ disabled: disableFixedPositioning,
472
480
  getFixedPositionOptions() {
473
481
  let tooltipSpacing = dense ? denseSpacing : spacing;
474
482
  const tooltip = tooltipRef.current;
@@ -478,7 +478,7 @@ export interface TransitionHookReturnValue<E extends HTMLElement>
478
478
  *
479
479
  * @param stage - The {@link TransitionStage} to set to
480
480
  */
481
- transitionTo(stage: TransitionStage): void;
481
+ transitionTo: (stage: TransitionStage) => void;
482
482
  }
483
483
 
484
484
  /**
@@ -22,13 +22,13 @@ export interface CarouselImplementation extends CarouselState {
22
22
  * Increments the carousel slide active index by 1 ensuring it does not
23
23
  * advance past the {@link CarouselOptions.totalSlides} index.
24
24
  */
25
- increment(): void;
25
+ increment: () => void;
26
26
 
27
27
  /**
28
28
  * Decrements the carousel slide active index by 1 and prevents decrementing
29
29
  * past 0.
30
30
  */
31
- decrement(): void;
31
+ decrement: () => void;
32
32
 
33
33
  /**
34
34
  * This can be used to manually control the {@link paused} state.
@@ -38,7 +38,7 @@ export interface CarouselImplementation extends CarouselState {
38
38
  /**
39
39
  * Toggles the {@link paused} state.
40
40
  */
41
- togglePaused(): void;
41
+ togglePaused: () => void;
42
42
 
43
43
  /**
44
44
  * A convenience wrapper for the {@link setCarouselSlideState} that will
@@ -206,6 +206,7 @@ export function useTransition<E extends HTMLElement>(
206
206
 
207
207
  if (reflow && ref.current && stage !== "exited" && stage !== "entered") {
208
208
  // force reflow by accessing scrollTop
209
+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
209
210
  ref.current.scrollTop;
210
211
  }
211
212
 
@@ -6,6 +6,7 @@ import {
6
6
  type ReactNode,
7
7
  type Ref,
8
8
  } from "react";
9
+ import { type ComponentWithRippleProps } from "../interaction/types.js";
9
10
  import { useElementInteraction } from "../interaction/useElementInteraction.js";
10
11
  import { useHigherContrastChildren } from "../interaction/useHigherContrastChildren.js";
11
12
  import { ListItemChildren } from "../list/ListItemChildren.js";
@@ -27,7 +28,8 @@ import { type DefaultTreeItemNode } from "./types.js";
27
28
  */
28
29
  export interface TreeItemProps
29
30
  extends Omit<DefaultTreeItemNode, "parentId">,
30
- HTMLAttributes<HTMLLIElement> {
31
+ HTMLAttributes<HTMLLIElement>,
32
+ ComponentWithRippleProps {
31
33
  /**
32
34
  * @defaultValue `"tree-item-" + useId()`
33
35
  */
@@ -140,6 +142,7 @@ export function TreeItem(props: TreeItemProps): ReactElement {
140
142
  onTouchEnd,
141
143
  onTouchMove,
142
144
  contentRef,
145
+ disableRipple,
143
146
  ...remaining
144
147
  } = props;
145
148
 
@@ -179,15 +182,18 @@ export function TreeItem(props: TreeItemProps): ReactElement {
179
182
  lookup.itemToElement[itemId] = id;
180
183
 
181
184
  return () => {
185
+ /* eslint-disable @typescript-eslint/no-dynamic-delete */
182
186
  delete lookup.disabledItems[itemId];
183
187
  delete lookup.expandable[itemId];
184
188
  delete lookup.elementToItem[id];
185
189
  delete lookup.itemToElement[itemId];
190
+ /* eslint-enable @typescript-eslint/no-dynamic-delete */
186
191
  };
187
192
  }, [id, metadataLookup, itemId, isLeafNode, disabled, depth]);
188
193
 
189
194
  const { pressedClassName, ripples, handlers } =
190
195
  useElementInteraction<HTMLLIElement>({
196
+ mode: disableRipple ? "none" : undefined,
191
197
  onBlur,
192
198
  onClick(event) {
193
199
  onClick?.(event);
@@ -60,7 +60,7 @@ export function TreeItemExpander(props: TreeItemExpanderProps): ReactElement {
60
60
  }
61
61
 
62
62
  const isCloneable = isValidElement(icon);
63
- let clickProps: { onClick: MouseEventHandler<Element> } | undefined;
63
+ let clickProps: { onClick: MouseEventHandler } | undefined;
64
64
  if (expansionMode === "manual" && !disabled) {
65
65
  clickProps = {
66
66
  onClick(event) {