@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
@@ -15,7 +15,11 @@ import { useEnsuredRef } from "../useEnsuredRef.js";
15
15
  import { useIsomorphicLayoutEffect } from "../useIsomorphicLayoutEffect.js";
16
16
  import { BELOW_CENTER_ANCHOR } from "./constants.js";
17
17
  import { getFixedPosition } from "./getFixedPosition.js";
18
- import { type CalculateFixedPositionOptions } from "./types.js";
18
+ import {
19
+ type CalculateFixedPositionOptions,
20
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
21
+ type FixedPositionStyle,
22
+ } from "./types.js";
19
23
  import { isWithinViewport } from "./utils.js";
20
24
 
21
25
  const noop = (): undefined => undefined;
@@ -109,7 +113,7 @@ export interface FixedPositioningOptions<
109
113
  * some options require the element to be in the DOM for specific
110
114
  * calculations.
111
115
  */
112
- getFixedPositionOptions?(): CalculateFixedPositionOptions;
116
+ getFixedPositionOptions?: () => CalculateFixedPositionOptions;
113
117
 
114
118
  /**
115
119
  * An optional function to call if the page resizes while the `FixedElement`
@@ -118,6 +122,17 @@ export interface FixedPositioningOptions<
118
122
  onResize?: EventListener;
119
123
  /** @see {@link TransitionScrollCallback} */
120
124
  onScroll?: TransitionScrollCallback<FixedToElement, FixedElement>;
125
+
126
+ /**
127
+ * Set this to `true` to disable the fixed positioning behavior so it can be
128
+ * customized within CSS or manually instead. This was added mostly to just
129
+ * support rendering menus inline with other content (like autocompletes
130
+ * within a dialog).
131
+ *
132
+ * @defaultValue `false`
133
+ * @since 6.0.0
134
+ */
135
+ disabled?: boolean;
121
136
  }
122
137
 
123
138
  /**
@@ -135,9 +150,12 @@ export interface FixedPositioningHookReturnValue<E extends HTMLElement> {
135
150
  ref: RefCallback<E>;
136
151
 
137
152
  /**
138
- * @see {@link FixedPositionStyle}
153
+ * This is the {@link FixedPositionStyle} merged with the
154
+ * {@link FixedPositioningOptions.style}. This will only return `undefined`
155
+ * when {@link FixedPositioningOptions.disabled} is `true` and no `style` was
156
+ * provided.
139
157
  */
140
- style: CSSProperties;
158
+ style: CSSProperties | undefined;
141
159
 
142
160
  /**
143
161
  * This should really only be used if the {@link transitionOptions} is not
@@ -148,7 +166,7 @@ export interface FixedPositioningHookReturnValue<E extends HTMLElement> {
148
166
  /**
149
167
  * A function that can be called to update the style for the fixed element.
150
168
  */
151
- updateStyle(): void;
169
+ updateStyle: () => void;
152
170
 
153
171
  /** {@inheritDoc FixedPositioningTransitionOptions} */
154
172
  transitionOptions: Readonly<Required<FixedPositioningTransitionOptions<E>>>;
@@ -219,6 +237,7 @@ export function useFixedPositioning<
219
237
  style: propStyle,
220
238
  nodeRef,
221
239
  fixedTo,
240
+ disabled,
222
241
  onEnter = noop,
223
242
  onEntering = noop,
224
243
  onEntered = noop,
@@ -310,6 +329,10 @@ export function useFixedPositioning<
310
329
  );
311
330
 
312
331
  const updateStyle = useCallback(() => {
332
+ if (disabled) {
333
+ return;
334
+ }
335
+
313
336
  const {
314
337
  ref,
315
338
  fixedTo,
@@ -348,12 +371,12 @@ export function useFixedPositioning<
348
371
  setStyle(style);
349
372
  setActive(!!element && !element.hidden);
350
373
 
351
- // Only changing the initialX and initialY should cause the useEffect below
352
- // to trigger, which is why everything else is set in a ref.
353
- }, [initialX, initialY]);
374
+ // Only changing the initialX, initialY, or disabled should cause the
375
+ // useEffect below to trigger, which is why everything else is set in a ref.
376
+ }, [disabled, initialX, initialY]);
354
377
 
355
378
  useEffect(() => {
356
- if (!active) {
379
+ if (!active || disabled) {
357
380
  return;
358
381
  }
359
382
 
@@ -385,7 +408,7 @@ export function useFixedPositioning<
385
408
  resizeHandler.remove(resizeCallback);
386
409
  scrollHandler.remove(scrollCallback);
387
410
  };
388
- }, [active, fixedTo, onResize, onScroll, ref, updateStyle]);
411
+ }, [active, disabled, fixedTo, onResize, onScroll, ref, updateStyle]);
389
412
 
390
413
  const callbacks: Required<FixedPositioningTransitionCallbacks> = {
391
414
  onEnter(appearing) {
@@ -408,7 +431,7 @@ export function useFixedPositioning<
408
431
 
409
432
  return {
410
433
  ref: refHandler,
411
- style: { ...style, ...propStyle },
434
+ style: disabled ? propStyle : { ...style, ...propStyle },
412
435
  callbacks,
413
436
  updateStyle,
414
437
  transitionOptions: {
@@ -0,0 +1,96 @@
1
+ import { forwardRef, type HTMLAttributes } from "react";
2
+ import {
3
+ responsiveItem,
4
+ type ResponsiveItemClassNameOptions,
5
+ } from "./responsiveItemStyles.js";
6
+
7
+ /**
8
+ * @since 6.0.0 Renamed from `MediaContainerProps` to
9
+ * `ResponsiveItemProps`
10
+ * @since 6.0.0 The `height` and `width` props were removed in favor of the
11
+ * `aspectRatio` props since the latest typescript string interpolation supports
12
+ * enforcing the correct format.
13
+ * @since 6.0.0 The `auto` prop was removed in favor of the new
14
+ * {@link ResponsiveItemProps.responsive} prop.
15
+ */
16
+ export interface ResponsiveItemProps
17
+ extends HTMLAttributes<HTMLSpanElement>,
18
+ ResponsiveItemClassNameOptions {}
19
+
20
+ /**
21
+ * @example Image Example
22
+ * ```tsx
23
+ * import { ResponsiveItem } from "@react-md/core";
24
+ * import type { ReactElement } from "react";
25
+ *
26
+ * function Example(): ReactElement {
27
+ * return (
28
+ * <ResponsiveItem>
29
+ * <img alt="" src="/some-image.png" />
30
+ * </ResponsiveItem>
31
+ * );
32
+ * }
33
+ * ```
34
+ *
35
+ * @example Iframe Example
36
+ * ```tsx
37
+ * import { ResponsiveItem } from "@react-md/core";
38
+ * import type { ReactElement } from "react";
39
+ *
40
+ * function Example(): ReactElement {
41
+ * return (
42
+ * <ResponsiveItem>
43
+ * <iframe
44
+ * src="https://youtube.com/some-video-url"
45
+ * title="Some YouTube video"
46
+ * allowFullScreen
47
+ * />
48
+ * </ResponsiveItem>
49
+ * );
50
+ * }
51
+ * ```
52
+ *
53
+ * @example Forced Aspect Ratio
54
+ * ```tsx
55
+ * import { ResponsiveItem } from "@react-md/core";
56
+ * import type { ReactElement } from "react";
57
+ *
58
+ * function Example(): ReactElement {
59
+ * return (
60
+ * <ResponsiveItem aspectRatio="16-9">
61
+ * <img alt="" src="/some-image.png" />
62
+ * </ResponsiveItem>
63
+ * );
64
+ * }
65
+ * ```
66
+ *
67
+ * @since 6.0.0 Renamed from `MediaContainer` to
68
+ * `ResponsiveItem` and renders a `<span>` instead of a `<div>`.
69
+ */
70
+ export const ResponsiveItem = forwardRef<HTMLSpanElement, ResponsiveItemProps>(
71
+ function ResponsiveItem(props, ref) {
72
+ const {
73
+ className,
74
+ fullWidth = false,
75
+ aspectRatio,
76
+ responsive = "auto",
77
+ children,
78
+ ...remaining
79
+ } = props;
80
+
81
+ return (
82
+ <span
83
+ {...remaining}
84
+ ref={ref}
85
+ className={responsiveItem({
86
+ className,
87
+ fullWidth,
88
+ aspectRatio,
89
+ responsive,
90
+ })}
91
+ >
92
+ {children}
93
+ </span>
94
+ );
95
+ }
96
+ );
@@ -1,50 +1,10 @@
1
- import { cnb } from "cnbuilder";
2
1
  import { forwardRef, type HTMLAttributes } from "react";
3
- import { bem } from "../utils/bem.js";
4
-
5
- const styles = bem("rmd-responsive-item-overlay");
6
-
7
- /**
8
- * The overlay positions relative to the `MediaContainer` component. Most of
9
- * the sizes are self-explanatory, but the `middle` position will be centered
10
- * vertically while `center` will be centered `horizontally`.
11
- *
12
- * @since 6.0.0 Renamed from `MediaOverlayPosition` to
13
- * `ResponsiveItemOverlayProps`.
14
- */
15
- export type ResponsiveItemOverlayPosition =
16
- | "top"
17
- | "right"
18
- | "bottom"
19
- | "left"
20
- | "middle"
21
- | "center"
22
- | "absolute-center";
23
-
24
- /** @since 6.0.0 */
25
- export interface ResponsiveItemOverlayClassNameOptions {
26
- className?: string;
27
- /** @defaultValue `"bottom"` */
28
- position?: ResponsiveItemOverlayPosition;
29
- }
30
-
31
- /**
32
- * @since 6.0.0
33
- */
34
- export function responsiveItemOverlay(
35
- options: ResponsiveItemOverlayClassNameOptions = {}
36
- ): string {
37
- const { className, position = "bottom" } = options;
38
-
39
- return cnb(
40
- styles({
41
- [position]: true,
42
- horizontal:
43
- position !== "top" && position !== "bottom" && position !== "middle",
44
- }),
45
- className
46
- );
47
- }
2
+ import {
3
+ responsiveItemOverlay,
4
+ type ResponsiveItemOverlayClassNameOptions,
5
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
6
+ type ResponsiveItemOverlayPosition,
7
+ } from "./responsiveItemOverlayStyles.js";
48
8
 
49
9
  /**
50
10
  * @since 6.0.0 Renamed from `MediaOverlayProps` to
@@ -0,0 +1,46 @@
1
+ import { cnb } from "cnbuilder";
2
+ import { bem } from "../utils/bem.js";
3
+
4
+ const styles = bem("rmd-responsive-item-overlay");
5
+
6
+ /**
7
+ * The overlay positions relative to the `MediaContainer` component. Most of
8
+ * the sizes are self-explanatory, but the `middle` position will be centered
9
+ * vertically while `center` will be centered `horizontally`.
10
+ *
11
+ * @since 6.0.0 Renamed from `MediaOverlayPosition` to
12
+ * `ResponsiveItemOverlayProps`.
13
+ */
14
+ export type ResponsiveItemOverlayPosition =
15
+ | "top"
16
+ | "right"
17
+ | "bottom"
18
+ | "left"
19
+ | "middle"
20
+ | "center"
21
+ | "absolute-center";
22
+
23
+ /** @since 6.0.0 */
24
+ export interface ResponsiveItemOverlayClassNameOptions {
25
+ className?: string;
26
+ /** @defaultValue `"bottom"` */
27
+ position?: ResponsiveItemOverlayPosition;
28
+ }
29
+
30
+ /**
31
+ * @since 6.0.0
32
+ */
33
+ export function responsiveItemOverlay(
34
+ options: ResponsiveItemOverlayClassNameOptions = {}
35
+ ): string {
36
+ const { className, position = "bottom" } = options;
37
+
38
+ return cnb(
39
+ styles({
40
+ [position]: true,
41
+ horizontal:
42
+ position !== "top" && position !== "bottom" && position !== "middle",
43
+ }),
44
+ className
45
+ );
46
+ }
@@ -0,0 +1,81 @@
1
+ import { cnb } from "cnbuilder";
2
+ import { bem } from "../utils/bem.js";
3
+
4
+ const styles = bem("rmd-responsive-item");
5
+
6
+ /** @since 6.0.0 */
7
+ export interface ResponsiveItemClassNameOptions {
8
+ className?: string;
9
+
10
+ /**
11
+ * Set this to `true` if the container should gain the following styles:
12
+ *
13
+ * ```scss
14
+ * display: block;
15
+ * width: 100%;
16
+ * ```
17
+ *
18
+ * @defaultValue `false`
19
+ */
20
+ fullWidth?: boolean;
21
+
22
+ /**
23
+ * Set this to a custom aspect ratio to use.
24
+ *
25
+ * @example Valid Aspect Ratios
26
+ * ```tsx
27
+ * aspectRatio="16-9"
28
+ * aspectRatio="9-16"
29
+ * aspectRatio="3-4"
30
+ * aspectRatio="4-3"
31
+ * aspectRatio="1-1"
32
+ * ```
33
+ *
34
+ * These values are based on the `core.$responsive-item-aspect-ratios` map.
35
+ *
36
+ * @defaultValue `""`
37
+ */
38
+ aspectRatio?: `${number}-${number}`;
39
+
40
+ /**
41
+ * Set this to `"manual"` if you want to manually specify which elements are
42
+ * responsive items using custom class names. You probably don't really want
43
+ * to use this.
44
+ *
45
+ * Set this to `"auto"` to automatically update all visual media that appear
46
+ * as a child in this component to a responsive item.
47
+ *
48
+ * Set this to `"container"` to automatically update all visual media that
49
+ * appear as a child in this component to be a responsive item that scales to
50
+ * the container's dimensions.
51
+ *
52
+ * Note: The `"auto"` and `"container"` values use the
53
+ * `core.$responsive-item-selectors` value for their behavior.
54
+ *
55
+ * @defaultValue `"auto"`
56
+ */
57
+ responsive?: "auto" | "manual" | "container";
58
+ }
59
+
60
+ /** @since 6.0.0 */
61
+ export function responsiveItem(
62
+ options: ResponsiveItemClassNameOptions = {}
63
+ ): string {
64
+ const {
65
+ className,
66
+ fullWidth = false,
67
+ aspectRatio = "",
68
+ responsive = "auto",
69
+ } = options;
70
+
71
+ return cnb(
72
+ styles({
73
+ auto: responsive !== "manual",
74
+ "auto-scale": responsive === "container",
75
+ "aspect-ratio": aspectRatio,
76
+ [aspectRatio]: aspectRatio,
77
+ "full-width": fullWidth,
78
+ }),
79
+ className
80
+ );
81
+ }
@@ -2,6 +2,12 @@
2
2
  import { useEffect } from "react";
3
3
  import { getScrollbarWidth } from "./getScrollbarWidth.js";
4
4
 
5
+ declare module "react" {
6
+ interface CSSProperties {
7
+ "--rmd-scrollbar-size"?: string;
8
+ }
9
+ }
10
+
5
11
  export const SCROLLBAR_SIZE_VAR = "--rmd-scrollbar-size";
6
12
 
7
13
  // this is really just so that nested dialogs will work correctly. Only the
@@ -7,8 +7,8 @@ import { type BaseSearchOptions } from "./types.js";
7
7
  * @internal
8
8
  */
9
9
  export const defaultExtractor =
10
- <T>(name: string) =>
11
- (item: T): string => {
10
+ (name: string) =>
11
+ (item: unknown): string => {
12
12
  if (typeof item === "string") {
13
13
  return item;
14
14
  }
@@ -24,7 +24,7 @@ export const defaultExtractor =
24
24
  */
25
25
  export interface SearchOptions<T> extends BaseSearchOptions<T> {
26
26
  type: "search" | "filter";
27
- filter(query: string, value: string): boolean;
27
+ filter: (query: string, value: string) => boolean;
28
28
  extractor: TextExtractor<T>;
29
29
  }
30
30
 
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
  import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from "react";
3
3
  import { getIcon } from "../icon/iconConfig.js";
4
+ import { type ComponentWithRippleProps } from "../interaction/types.js";
4
5
  import { useElementInteraction } from "../interaction/useElementInteraction.js";
5
6
  import { useHigherContrastChildren } from "../interaction/useHigherContrastChildren.js";
6
7
  import { useMaxWidthTransition } from "../transition/useMaxWidthTransition.js";
@@ -10,7 +11,8 @@ import { segmentedButton } from "./segmentedButtonStyles.js";
10
11
  * @since 6.0.0
11
12
  */
12
13
  export interface SegmentedButtonProps
13
- extends ButtonHTMLAttributes<HTMLButtonElement> {
14
+ extends ButtonHTMLAttributes<HTMLButtonElement>,
15
+ ComponentWithRippleProps {
14
16
  /**
15
17
  * Set this to `true` to apply selected styles and an optional
16
18
  * {@link selectedIcon}
@@ -126,6 +128,7 @@ export const SegmentedButton = forwardRef<
126
128
  onTouchEnd,
127
129
  onTouchMove,
128
130
  disabled,
131
+ disableRipple,
129
132
  ...remaining
130
133
  } = props;
131
134
 
@@ -138,6 +141,7 @@ export const SegmentedButton = forwardRef<
138
141
  disableTransition: disableSelectedTransition,
139
142
  });
140
143
  const { pressedClassName, handlers, ripples } = useElementInteraction({
144
+ mode: disableRipple ? "none" : undefined,
141
145
  onBlur,
142
146
  onClick,
143
147
  onKeyDown,
@@ -542,8 +542,9 @@ export const toastManager = new ToastManager();
542
542
  * @see {@link ToastManager.addToast}
543
543
  * @since 6.0.0
544
544
  */
545
- export const addToast: ToastManager["addToast"] = (toast) =>
545
+ export const addToast: ToastManager["addToast"] = (toast) => {
546
546
  toastManager.addToast(toast);
547
+ };
547
548
 
548
549
  /**
549
550
  * @see {@link ToastManager.startRemoveTimeout}
@@ -551,23 +552,33 @@ export const addToast: ToastManager["addToast"] = (toast) =>
551
552
  */
552
553
  export const startRemoveToastTimeout: ToastManager["startRemoveTimeout"] = (
553
554
  toastId
554
- ) => toastManager.startRemoveTimeout(toastId);
555
+ ) => {
556
+ toastManager.startRemoveTimeout(toastId);
557
+ };
555
558
 
556
559
  /**
557
560
  * @see {@link ToastManager.popToast}
558
561
  * @since 6.0.0
559
562
  */
560
- export const popToast: ToastManager["popToast"] = () => toastManager.popToast();
563
+ export const popToast: ToastManager["popToast"] = () => {
564
+ toastManager.popToast();
565
+ };
561
566
 
562
567
  /**
563
568
  * @see {@link ToastManager.removeToast}
564
569
  * @since 6.0.0
565
570
  */
566
- export const removeToast: ToastManager["removeToast"] = (toastId, transition) =>
571
+ export const removeToast: ToastManager["removeToast"] = (
572
+ toastId,
573
+ transition
574
+ ) => {
567
575
  toastManager.removeToast(toastId, transition);
576
+ };
568
577
 
569
578
  /**
570
579
  * @see {@link ToastManager.clearToasts}
571
580
  * @since 6.0.0
572
581
  */
573
- export const clearToasts = (): void => toastManager.clearToasts();
582
+ export const clearToasts = (): void => {
583
+ toastManager.clearToasts();
584
+ };
@@ -9,15 +9,15 @@ import { createContext, useContext } from "react";
9
9
  */
10
10
  export interface CurrentToastActions {
11
11
  /** @see {@link ToastManager.clearTimer} */
12
- clearTimer(): void;
12
+ clearTimer: () => void;
13
13
  /** @see {@link ToastManager.removeToast} */
14
- removeToast(transition: boolean): void;
14
+ removeToast: (transition: boolean) => void;
15
15
  /** @see {@link ToastManager.startRemoveTimeout} */
16
- startRemoveTimeout(): void;
16
+ startRemoveTimeout: () => void;
17
17
  /** @see {@link ToastManager.pauseRemoveTimeout} */
18
- pauseRemoveTimeout(): void;
18
+ pauseRemoveTimeout: () => void;
19
19
  /** @see {@link ToastManager.resumeRemoveTimeout} */
20
- resumeRemoveTimeout(): void;
20
+ resumeRemoveTimeout: () => void;
21
21
  }
22
22
 
23
23
  const context = createContext<CurrentToastActions | null>(null);
@@ -12,14 +12,18 @@ export interface TableCellClassNameOptions {
12
12
  /**
13
13
  * Set this to `true` if the cell is rendered as a `<th>` so that the correct
14
14
  * sticky styles can be applied.
15
+ *
16
+ * @defaultValue `false`
15
17
  */
16
- header: boolean;
18
+ header?: boolean;
17
19
 
18
20
  /**
19
21
  * Set this to true if the cell is rendered in a `<thead>` so that the correct
20
22
  * sticky styles can be applied.
23
+ *
24
+ * @defaultValue `header`
21
25
  */
22
- isInTableHeader: boolean;
26
+ isInTableHeader?: boolean;
23
27
 
24
28
  /** @defaultValue `false` */
25
29
  grow?: boolean;
@@ -45,17 +49,17 @@ export interface TableCellClassNameOptions {
45
49
  /**
46
50
  * @since 6.0.0
47
51
  */
48
- export function tableCell(options: TableCellClassNameOptions): string {
52
+ export function tableCell(options: TableCellClassNameOptions = {}): string {
49
53
  const {
50
54
  grow,
51
55
  sticky,
52
56
  header,
53
57
  inputToggle,
54
- hAlign,
55
- vAlign,
58
+ hAlign = "left",
59
+ vAlign = "middle",
56
60
  lineWrap = true,
57
61
  padding = "horizontal",
58
- isInTableHeader,
62
+ isInTableHeader = header,
59
63
  className,
60
64
  } = options;
61
65
 
package/src/tabs/Tab.tsx CHANGED
@@ -5,6 +5,7 @@ import {
5
5
  type ReactElement,
6
6
  type ReactNode,
7
7
  } from "react";
8
+ import { type ComponentWithRippleProps } from "../interaction/types.js";
8
9
  import { useElementInteraction } from "../interaction/useElementInteraction.js";
9
10
  import { useHigherContrastChildren } from "../interaction/useHigherContrastChildren.js";
10
11
  import { type CustomLinkComponent } from "../link/Link.js";
@@ -20,7 +21,7 @@ import { type TabListProps } from "./TabList.js";
20
21
  /**
21
22
  * @since 6.0.0
22
23
  */
23
- export interface BaseTabProps {
24
+ export interface BaseTabProps extends ComponentWithRippleProps {
24
25
  /**
25
26
  * Set this to `true` if the tab is currently active.
26
27
  *
@@ -126,6 +127,7 @@ export function Tab(props: TabProps): ReactElement {
126
127
  onTouchStart,
127
128
  onTouchEnd,
128
129
  onTouchMove,
130
+ disableRipple,
129
131
  ...remaining
130
132
  } = props as TabButtonProps;
131
133
  const { disabled } = props as TabButtonProps;
@@ -133,6 +135,7 @@ export function Tab(props: TabProps): ReactElement {
133
135
  const id = useEnsuredId(propId, "tab");
134
136
  const { activeDescendantId } = useKeyboardMovementContext();
135
137
  const { ripples, handlers } = useElementInteraction({
138
+ mode: disableRipple ? "none" : undefined,
136
139
  onBlur,
137
140
  onClick,
138
141
  onKeyDown,
@@ -8,13 +8,13 @@ import {
8
8
  } from "react";
9
9
  import { useAppSize } from "../media-queries/AppSizeProvider.js";
10
10
  import { KeyboardMovementProvider } from "../movement/useKeyboardMovementProvider.js";
11
+ import { type GetTabListScrollToOptions } from "./getTabListScrollToOptions.js";
11
12
  import {
12
13
  TabListScrollButton,
13
14
  type BaseTabListScrollButtonProps,
14
15
  } from "./TabListScrollButton.js";
15
16
  import { tabList, type TabsAlignment } from "./tabListStyles.js";
16
17
  import { useTabList } from "./useTabList.js";
17
- import { type GetTabListScrollToOptions } from "./utils.js";
18
18
 
19
19
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
20
20
  import { type useTabs } from "./useTabs.js";
@@ -24,7 +24,7 @@ import { type useTabs } from "./useTabs.js";
24
24
  */
25
25
  export interface TabListProps extends HTMLAttributes<HTMLDivElement> {
26
26
  activeIndex: number;
27
- setActiveIndex(nextActiveIndex: number): void;
27
+ setActiveIndex: (nextActiveIndex: number) => void;
28
28
 
29
29
  /**
30
30
  * @defaultValue `"left"`
@@ -13,14 +13,14 @@ import { type PropsWithRef } from "../types.js";
13
13
  import { useDir } from "../typography/WritingDirectionProvider.js";
14
14
  import { useIntersectionObserver } from "../useIntersectionObserver.js";
15
15
  import { applyRef } from "../utils/applyRef.js";
16
+ import {
17
+ getTabListScrollToOptions,
18
+ type GetTabListScrollToOptions,
19
+ } from "./getTabListScrollToOptions.js";
16
20
  import {
17
21
  tabListScrollButton,
18
22
  tabListScrollButtonContainer,
19
23
  } from "./tabListScrollButtonStyles.js";
20
- import {
21
- getTabListScrollToOptions,
22
- type GetTabListScrollToOptions,
23
- } from "./utils.js";
24
24
 
25
25
  /**
26
26
  * @internal