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

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 (665) 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 +45 -22
  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} +11 -176
  126. package/dist/{form/fileUtils.js → files/validation.js} +10 -135
  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/SelectedOption.js +2 -1
  158. package/dist/form/SelectedOption.js.map +1 -1
  159. package/dist/form/Slider.d.ts +4 -4
  160. package/dist/form/Slider.js +6 -2
  161. package/dist/form/Slider.js.map +1 -1
  162. package/dist/form/SliderThumb.d.ts +3 -3
  163. package/dist/form/SliderThumb.js.map +1 -1
  164. package/dist/form/SliderValueMarks.d.ts +2 -2
  165. package/dist/form/SliderValueMarks.js.map +1 -1
  166. package/dist/form/SliderValueTooltip.js.map +1 -1
  167. package/dist/form/TextArea.js +1 -2
  168. package/dist/form/TextArea.js.map +1 -1
  169. package/dist/form/TextField.js +1 -2
  170. package/dist/form/TextField.js.map +1 -1
  171. package/dist/form/TextFieldContainer.js +1 -2
  172. package/dist/form/TextFieldContainer.js.map +1 -1
  173. package/dist/form/_form.scss +193 -124
  174. package/dist/form/formMessageContainerStyles.d.ts +10 -0
  175. package/dist/form/formMessageContainerStyles.js +11 -0
  176. package/dist/form/formMessageContainerStyles.js.map +1 -0
  177. package/dist/form/inputToggleStyles.js.map +1 -1
  178. package/dist/form/optionStyles.d.ts +1 -0
  179. package/dist/form/optionStyles.js +2 -2
  180. package/dist/form/optionStyles.js.map +1 -1
  181. package/dist/form/selectUtils.js.map +1 -1
  182. package/dist/form/sliderUtils.d.ts +1 -1
  183. package/dist/form/sliderUtils.js.map +1 -1
  184. package/dist/form/textFieldContainerStyles.d.ts +0 -2
  185. package/dist/form/textFieldContainerStyles.js +1 -2
  186. package/dist/form/textFieldContainerStyles.js.map +1 -1
  187. package/dist/form/types.d.ts +3 -10
  188. package/dist/form/types.js.map +1 -1
  189. package/dist/form/useCheckboxGroup.d.ts +17 -17
  190. package/dist/form/useCheckboxGroup.js +9 -17
  191. package/dist/form/useCheckboxGroup.js.map +1 -1
  192. package/dist/form/useCombobox.d.ts +56 -21
  193. package/dist/form/useCombobox.js +19 -4
  194. package/dist/form/useCombobox.js.map +1 -1
  195. package/dist/form/useEditableCombobox.d.ts +24 -4
  196. package/dist/form/useEditableCombobox.js +5 -0
  197. package/dist/form/useEditableCombobox.js.map +1 -1
  198. package/dist/form/useNumberField.js.map +1 -1
  199. package/dist/form/useRadioGroup.d.ts +6 -6
  200. package/dist/form/useRadioGroup.js.map +1 -1
  201. package/dist/form/useResizingTextArea.js.map +1 -1
  202. package/dist/form/useSelectCombobox.d.ts +3 -4
  203. package/dist/form/useSelectCombobox.js.map +1 -1
  204. package/dist/form/useTextField.d.ts +1 -1
  205. package/dist/form/useTextField.js.map +1 -1
  206. package/dist/form/useTextFieldContainerAddons.js.map +1 -1
  207. package/dist/hoverMode/useHoverMode.d.ts +3 -3
  208. package/dist/hoverMode/useHoverMode.js.map +1 -1
  209. package/dist/hoverMode/useHoverModeProvider.d.ts +4 -4
  210. package/dist/hoverMode/useHoverModeProvider.js.map +1 -1
  211. package/dist/icon/FontIcon.d.ts +4 -2
  212. package/dist/icon/FontIcon.js.map +1 -1
  213. package/dist/icon/TextIconSpacing.d.ts +3 -1
  214. package/dist/icon/TextIconSpacing.js.map +1 -1
  215. package/dist/icon/_icon.scss +151 -2
  216. package/dist/icon/iconConfig.d.ts +10 -0
  217. package/dist/icon/iconConfig.js +7 -0
  218. package/dist/icon/iconConfig.js.map +1 -1
  219. package/dist/icon/materialConfig.js.map +1 -1
  220. package/dist/icon/styles.js.map +1 -1
  221. package/dist/interaction/UserInteractionModeProvider.d.ts +5 -5
  222. package/dist/interaction/UserInteractionModeProvider.js +12 -8
  223. package/dist/interaction/UserInteractionModeProvider.js.map +1 -1
  224. package/dist/interaction/types.d.ts +20 -2
  225. package/dist/interaction/types.js.map +1 -1
  226. package/dist/interaction/useElementInteraction.d.ts +7 -1
  227. package/dist/interaction/useElementInteraction.js +1 -2
  228. package/dist/interaction/useElementInteraction.js.map +1 -1
  229. package/dist/interaction/utils.d.ts +2 -2
  230. package/dist/interaction/utils.js +2 -2
  231. package/dist/interaction/utils.js.map +1 -1
  232. package/dist/layout/LayoutWindowSplitter.js.map +1 -1
  233. package/dist/layout/_layout.scss +23 -10
  234. package/dist/layout/useExpandableLayout.d.ts +3 -3
  235. package/dist/layout/useExpandableLayout.js.map +1 -1
  236. package/dist/layout/useLayoutAppBarHeight.d.ts +2 -3
  237. package/dist/layout/useLayoutAppBarHeight.js.map +1 -1
  238. package/dist/layout/useTemporaryLayout.d.ts +2 -2
  239. package/dist/layout/useTemporaryLayout.js.map +1 -1
  240. package/dist/link/SkipToMainContent.js.map +1 -1
  241. package/dist/list/ListItem.d.ts +2 -1
  242. package/dist/list/ListItem.js +2 -1
  243. package/dist/list/ListItem.js.map +1 -1
  244. package/dist/list/ListItemChildren.js.map +1 -1
  245. package/dist/list/ListItemLink.d.ts +2 -1
  246. package/dist/list/ListItemLink.js +2 -1
  247. package/dist/list/ListItemLink.js.map +1 -1
  248. package/dist/list/_list.scss +6 -5
  249. package/dist/media-queries/_media-queries.scss +12 -0
  250. package/dist/media-queries/appSize.js.map +1 -1
  251. package/dist/media-queries/useMediaQuery.js +3 -1
  252. package/dist/media-queries/useMediaQuery.js.map +1 -1
  253. package/dist/menu/DropdownMenu.js.map +1 -1
  254. package/dist/menu/Menu.d.ts +8 -3
  255. package/dist/menu/Menu.js +2 -1
  256. package/dist/menu/Menu.js.map +1 -1
  257. package/dist/menu/MenuItemButton.js +6 -2
  258. package/dist/menu/MenuItemButton.js.map +1 -1
  259. package/dist/menu/useContextMenu.d.ts +3 -3
  260. package/dist/menu/useContextMenu.js.map +1 -1
  261. package/dist/movement/types.d.ts +5 -5
  262. package/dist/movement/types.js.map +1 -1
  263. package/dist/navigation/CollapsibleNavGroup.d.ts +5 -3
  264. package/dist/navigation/CollapsibleNavGroup.js +3 -4
  265. package/dist/navigation/CollapsibleNavGroup.js.map +1 -1
  266. package/dist/navigation/DefaultNavigationRenderer.d.ts +1 -2
  267. package/dist/navigation/DefaultNavigationRenderer.js +6 -2
  268. package/dist/navigation/DefaultNavigationRenderer.js.map +1 -1
  269. package/dist/navigation/NavItemButton.d.ts +1 -1
  270. package/dist/navigation/NavItemButton.js +1 -0
  271. package/dist/navigation/NavItemButton.js.map +1 -1
  272. package/dist/navigation/NavItemLink.d.ts +3 -2
  273. package/dist/navigation/NavItemLink.js +6 -2
  274. package/dist/navigation/NavItemLink.js.map +1 -1
  275. package/dist/navigation/NavSubheader.d.ts +2 -3
  276. package/dist/navigation/NavSubheader.js.map +1 -1
  277. package/dist/navigation/Navigation.d.ts +1 -1
  278. package/dist/navigation/Navigation.js.map +1 -1
  279. package/dist/navigation/_navigation.scss +6 -5
  280. package/dist/navigation/types.d.ts +54 -6
  281. package/dist/navigation/types.js.map +1 -1
  282. package/dist/navigation/useActiveHeadingId.d.ts +1 -1
  283. package/dist/navigation/useActiveHeadingId.js.map +1 -1
  284. package/dist/navigation/useNavigationExpansion.d.ts +104 -0
  285. package/dist/navigation/useNavigationExpansion.js +77 -0
  286. package/dist/navigation/useNavigationExpansion.js.map +1 -0
  287. package/dist/navigation/utils.d.ts +13 -0
  288. package/dist/navigation/utils.js +36 -0
  289. package/dist/navigation/utils.js.map +1 -0
  290. package/dist/objectFit.d.ts +69 -0
  291. package/dist/objectFit.js +52 -0
  292. package/dist/objectFit.js.map +1 -0
  293. package/dist/overlay/_overlay.scss +2 -1
  294. package/dist/positioning/useFixedPositioning.d.ts +17 -4
  295. package/dist/positioning/useFixedPositioning.js +10 -5
  296. package/dist/positioning/useFixedPositioning.js.map +1 -1
  297. package/dist/positioning/utils.js.map +1 -1
  298. package/dist/progress/LinearProgress.js.map +1 -1
  299. package/dist/progress/_progress.scss +20 -14
  300. package/dist/responsive-item/ResponsiveItem.d.ts +64 -0
  301. package/dist/responsive-item/ResponsiveItem.js +68 -0
  302. package/dist/responsive-item/ResponsiveItem.js.map +1 -0
  303. package/dist/responsive-item/ResponsiveItemOverlay.d.ts +1 -19
  304. package/dist/responsive-item/ResponsiveItemOverlay.js +1 -12
  305. package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
  306. package/dist/responsive-item/_responsive-item.scss +110 -133
  307. package/dist/responsive-item/responsiveItemOverlayStyles.d.ts +19 -0
  308. package/dist/responsive-item/responsiveItemOverlayStyles.js +14 -0
  309. package/dist/responsive-item/responsiveItemOverlayStyles.js.map +1 -0
  310. package/dist/responsive-item/responsiveItemStyles.d.ts +52 -0
  311. package/dist/responsive-item/responsiveItemStyles.js +15 -0
  312. package/dist/responsive-item/responsiveItemStyles.js.map +1 -0
  313. package/dist/scroll/useScrollLock.d.ts +5 -0
  314. package/dist/scroll/useScrollLock.js.map +1 -1
  315. package/dist/searching/utils.d.ts +2 -2
  316. package/dist/searching/utils.js.map +1 -1
  317. package/dist/segmented-button/SegmentedButton.d.ts +2 -1
  318. package/dist/segmented-button/SegmentedButton.js +2 -1
  319. package/dist/segmented-button/SegmentedButton.js.map +1 -1
  320. package/dist/segmented-button/_segmented-button.scss +6 -6
  321. package/dist/sheet/_sheet.scss +18 -6
  322. package/dist/snackbar/ToastManager.js +15 -5
  323. package/dist/snackbar/ToastManager.js.map +1 -1
  324. package/dist/snackbar/_snackbar.scss +30 -17
  325. package/dist/snackbar/useCurrentToastActions.d.ts +5 -5
  326. package/dist/snackbar/useCurrentToastActions.js.map +1 -1
  327. package/dist/table/_table.scss +15 -3
  328. package/dist/table/tableCellStyles.d.ts +7 -3
  329. package/dist/table/tableCellStyles.js +2 -2
  330. package/dist/table/tableCellStyles.js.map +1 -1
  331. package/dist/tabs/Tab.d.ts +2 -1
  332. package/dist/tabs/Tab.js +2 -1
  333. package/dist/tabs/Tab.js.map +1 -1
  334. package/dist/tabs/TabList.d.ts +2 -2
  335. package/dist/tabs/TabList.js.map +1 -1
  336. package/dist/tabs/TabListScrollButton.d.ts +1 -1
  337. package/dist/tabs/TabListScrollButton.js +1 -1
  338. package/dist/tabs/TabListScrollButton.js.map +1 -1
  339. package/dist/tabs/_tabs.scss +30 -9
  340. package/dist/tabs/getTabListScrollToOptions.d.ts +18 -0
  341. package/dist/tabs/getTabListScrollToOptions.js +19 -0
  342. package/dist/tabs/getTabListScrollToOptions.js.map +1 -0
  343. package/dist/tabs/tabStyles.d.ts +3 -0
  344. package/dist/tabs/tabStyles.js.map +1 -1
  345. package/dist/tabs/useTabList.d.ts +1 -8
  346. package/dist/tabs/useTabList.js +1 -0
  347. package/dist/tabs/useTabList.js.map +1 -1
  348. package/dist/tabs/useTabs.d.ts +6 -6
  349. package/dist/tabs/useTabs.js.map +1 -1
  350. package/dist/tabs/utils.d.ts +0 -18
  351. package/dist/tabs/utils.js +0 -15
  352. package/dist/tabs/utils.js.map +1 -1
  353. package/dist/test-utils/ResizeObserver.d.ts +11 -12
  354. package/dist/test-utils/ResizeObserver.js +11 -12
  355. package/dist/test-utils/ResizeObserver.js.map +1 -1
  356. package/dist/test-utils/matchMedia.d.ts +3 -3
  357. package/dist/test-utils/matchMedia.js +6 -6
  358. package/dist/test-utils/matchMedia.js.map +1 -1
  359. package/dist/test-utils/polyfills/TextDecoder.js +0 -1
  360. package/dist/test-utils/polyfills/TextDecoder.js.map +1 -1
  361. package/dist/test-utils/timers.d.ts +9 -5
  362. package/dist/test-utils/timers.js +5 -5
  363. package/dist/test-utils/timers.js.map +1 -1
  364. package/dist/theme/LocalStorageColorSchemeProvider.d.ts +1 -1
  365. package/dist/theme/LocalStorageColorSchemeProvider.js +2 -1
  366. package/dist/theme/LocalStorageColorSchemeProvider.js.map +1 -1
  367. package/dist/theme/ThemeProvider.js +3 -1
  368. package/dist/theme/ThemeProvider.js.map +1 -1
  369. package/dist/theme/_a11y.scss +86 -13
  370. package/dist/theme/_colors.scss +279 -277
  371. package/dist/theme/_theme.scss +308 -37
  372. package/dist/theme/isColorScheme.d.ts +16 -0
  373. package/dist/theme/isColorScheme.js +19 -0
  374. package/dist/theme/isColorScheme.js.map +1 -0
  375. package/dist/theme/types.d.ts +53 -1
  376. package/dist/theme/types.js +1 -23
  377. package/dist/theme/types.js.map +1 -1
  378. package/dist/theme/useCSSVariables.d.ts +2 -19
  379. package/dist/theme/useCSSVariables.js.map +1 -1
  380. package/dist/theme/useColorScheme.d.ts +1 -35
  381. package/dist/theme/useColorScheme.js.map +1 -1
  382. package/dist/theme/useColorSchemeMetaTag.d.ts +1 -1
  383. package/dist/theme/useColorSchemeMetaTag.js.map +1 -1
  384. package/dist/theme/useColorSchemeProvider.d.ts +1 -1
  385. package/dist/theme/useColorSchemeProvider.js +1 -1
  386. package/dist/theme/useColorSchemeProvider.js.map +1 -1
  387. package/dist/theme/{usePrefersColorScheme.js → usePrefersDarkScheme.js} +1 -1
  388. package/dist/theme/usePrefersDarkScheme.js.map +1 -0
  389. package/dist/theme/utils.js.map +1 -1
  390. package/dist/tooltip/useTooltip.d.ts +14 -9
  391. package/dist/tooltip/useTooltip.js +2 -1
  392. package/dist/tooltip/useTooltip.js.map +1 -1
  393. package/dist/transition/_transition.scss +16 -9
  394. package/dist/transition/skeletonPlaceholderUtils.js.map +1 -1
  395. package/dist/transition/types.d.ts +1 -1
  396. package/dist/transition/types.js.map +1 -1
  397. package/dist/transition/useCarousel.d.ts +3 -3
  398. package/dist/transition/useCarousel.js.map +1 -1
  399. package/dist/transition/useCollapseTransition.js.map +1 -1
  400. package/dist/transition/useTransition.js +1 -0
  401. package/dist/transition/useTransition.js.map +1 -1
  402. package/dist/transition/utils.js.map +1 -1
  403. package/dist/tree/TreeItem.d.ts +2 -1
  404. package/dist/tree/TreeItem.js +4 -3
  405. package/dist/tree/TreeItem.js.map +1 -1
  406. package/dist/tree/TreeItemExpander.js.map +1 -1
  407. package/dist/tree/_tree.scss +8 -6
  408. package/dist/tree/useTreeExpansion.d.ts +1 -1
  409. package/dist/tree/useTreeExpansion.js +6 -18
  410. package/dist/tree/useTreeExpansion.js.map +1 -1
  411. package/dist/tree/useTreeSelection.d.ts +1 -1
  412. package/dist/tree/useTreeSelection.js +7 -25
  413. package/dist/tree/useTreeSelection.js.map +1 -1
  414. package/dist/tree/utils.d.ts +1 -1
  415. package/dist/tree/utils.js.map +1 -1
  416. package/dist/types.d.ts +12 -4
  417. package/dist/types.js.map +1 -1
  418. package/dist/typography/WritingDirectionProvider.d.ts +1 -1
  419. package/dist/typography/WritingDirectionProvider.js.map +1 -1
  420. package/dist/typography/_typography.scss +94 -37
  421. package/dist/typography/typographyStyles.js.map +1 -1
  422. package/dist/useDebouncedFunction.d.ts +1 -5
  423. package/dist/useDebouncedFunction.js +3 -1
  424. package/dist/useDebouncedFunction.js.map +1 -1
  425. package/dist/useDropzone.d.ts +4 -4
  426. package/dist/useDropzone.js.map +1 -1
  427. package/dist/useEnsuredId.js.map +1 -1
  428. package/dist/useIntersectionObserver.d.ts +5 -5
  429. package/dist/useIntersectionObserver.js.map +1 -1
  430. package/dist/useLocalStorage.d.ts +3 -3
  431. package/dist/useLocalStorage.js +1 -1
  432. package/dist/useLocalStorage.js.map +1 -1
  433. package/dist/useMutationObserver.d.ts +1 -1
  434. package/dist/useMutationObserver.js.map +1 -1
  435. package/dist/useOrientation.js +3 -1
  436. package/dist/useOrientation.js.map +1 -1
  437. package/dist/usePageInactive.d.ts +2 -2
  438. package/dist/usePageInactive.js.map +1 -1
  439. package/dist/useReadonlySet.d.ts +76 -0
  440. package/dist/useReadonlySet.js +72 -0
  441. package/dist/useReadonlySet.js.map +1 -0
  442. package/dist/useResizeListener.d.ts +1 -1
  443. package/dist/useResizeListener.js.map +1 -1
  444. package/dist/useResizeObserver.d.ts +19 -0
  445. package/dist/useResizeObserver.js +19 -0
  446. package/dist/useResizeObserver.js.map +1 -1
  447. package/dist/useThrottledFunction.d.ts +1 -5
  448. package/dist/useThrottledFunction.js +3 -1
  449. package/dist/useThrottledFunction.js.map +1 -1
  450. package/dist/useToggle.d.ts +3 -3
  451. package/dist/useToggle.js.map +1 -1
  452. package/dist/utils/RenderRecursively.d.ts +2 -2
  453. package/dist/utils/RenderRecursively.js.map +1 -1
  454. package/dist/utils/alphaNumericSort.d.ts +5 -5
  455. package/dist/utils/alphaNumericSort.js.map +1 -1
  456. package/dist/utils/bem.d.ts +1 -1
  457. package/dist/utils/bem.js +1 -1
  458. package/dist/utils/bem.js.map +1 -1
  459. package/dist/utils/debounce.d.ts +5 -0
  460. package/dist/utils/debounce.js +17 -0
  461. package/dist/utils/debounce.js.map +1 -0
  462. package/dist/utils/nearest.js.map +1 -1
  463. package/dist/utils/parseCssLengthUnit.js.map +1 -1
  464. package/dist/utils/throttle.d.ts +5 -0
  465. package/dist/utils/throttle.js +30 -0
  466. package/dist/utils/throttle.js.map +1 -0
  467. package/dist/utils/wait.js +3 -1
  468. package/dist/utils/wait.js.map +1 -1
  469. package/dist/window-splitter/WindowSplitter.d.ts +37 -15
  470. package/dist/window-splitter/WindowSplitter.js +38 -17
  471. package/dist/window-splitter/WindowSplitter.js.map +1 -1
  472. package/dist/window-splitter/_window-splitter.scss +32 -14
  473. package/dist/window-splitter/styles.d.ts +14 -0
  474. package/dist/window-splitter/styles.js +18 -0
  475. package/dist/window-splitter/styles.js.map +1 -0
  476. package/package.json +25 -24
  477. package/src/app-bar/AppBar.tsx +1 -170
  478. package/src/app-bar/AppBarTitle.tsx +1 -44
  479. package/src/app-bar/styles.ts +206 -0
  480. package/src/autocomplete/Autocomplete.tsx +194 -211
  481. package/src/autocomplete/AutocompleteChip.tsx +48 -0
  482. package/src/autocomplete/AutocompleteCircularProgress.tsx +6 -17
  483. package/src/autocomplete/AutocompleteClearButton.tsx +44 -0
  484. package/src/autocomplete/AutocompleteDropdownButton.tsx +16 -37
  485. package/src/autocomplete/AutocompleteListboxChildren.tsx +68 -0
  486. package/src/autocomplete/autocompleteStyles.ts +48 -9
  487. package/src/autocomplete/defaults.ts +26 -17
  488. package/src/autocomplete/types.ts +744 -61
  489. package/src/autocomplete/useAutocomplete.ts +428 -0
  490. package/src/autocomplete/utils.ts +211 -0
  491. package/src/badge/Badge.tsx +1 -39
  492. package/src/badge/styles.ts +45 -0
  493. package/src/box/Box.tsx +11 -9
  494. package/src/box/styles.ts +14 -5
  495. package/src/button/AsyncButton.tsx +1 -1
  496. package/src/button/Button.tsx +5 -1
  497. package/src/card/Card.tsx +35 -4
  498. package/src/card/ClickableCard.tsx +9 -2
  499. package/src/card/styles.ts +1 -10
  500. package/src/chip/Chip.tsx +6 -1
  501. package/src/chip/styles.ts +12 -10
  502. package/src/delegateEvent.ts +5 -5
  503. package/src/dialog/Dialog.tsx +48 -61
  504. package/src/dialog/FixedDialog.tsx +1 -11
  505. package/src/dialog/styles.ts +97 -0
  506. package/src/divider/Divider.tsx +0 -12
  507. package/src/divider/styles.ts +12 -0
  508. package/src/draggable/useDraggable.ts +17 -10
  509. package/src/draggable/utils.ts +3 -3
  510. package/src/expansion-panel/ExpansionPanel.tsx +1 -1
  511. package/src/expansion-panel/useExpansionPanels.ts +18 -27
  512. package/src/{form → files}/FileInput.tsx +7 -15
  513. package/src/files/styles.ts +10 -0
  514. package/src/{form → files}/useFileUpload.ts +30 -34
  515. package/src/files/utils.ts +234 -0
  516. package/src/{form/fileUtils.ts → files/validation.ts} +15 -244
  517. package/src/focus/useFocusContainer.ts +16 -8
  518. package/src/form/FormMessageContainer.tsx +2 -2
  519. package/src/form/InputToggle.tsx +5 -1
  520. package/src/form/Label.tsx +18 -18
  521. package/src/form/Listbox.tsx +87 -0
  522. package/src/form/ListboxProvider.ts +37 -0
  523. package/src/form/MenuItemTextField.tsx +1 -2
  524. package/src/form/NativeSelect.tsx +14 -10
  525. package/src/form/Option.tsx +74 -22
  526. package/src/form/Select.tsx +89 -85
  527. package/src/form/SelectedOption.tsx +2 -0
  528. package/src/form/Slider.tsx +14 -11
  529. package/src/form/SliderThumb.tsx +4 -4
  530. package/src/form/SliderValueMarks.tsx +4 -4
  531. package/src/form/TextArea.tsx +6 -8
  532. package/src/form/TextField.tsx +0 -2
  533. package/src/form/TextFieldContainer.tsx +9 -11
  534. package/src/form/formMessageContainerStyles.ts +22 -0
  535. package/src/form/optionStyles.ts +7 -2
  536. package/src/form/sliderUtils.ts +1 -1
  537. package/src/form/textFieldContainerStyles.ts +9 -14
  538. package/src/form/types.ts +3 -11
  539. package/src/form/useCheckboxGroup.ts +28 -36
  540. package/src/form/useCombobox.ts +86 -38
  541. package/src/form/useEditableCombobox.ts +43 -8
  542. package/src/form/useRadioGroup.ts +6 -6
  543. package/src/form/useSelectCombobox.ts +4 -4
  544. package/src/form/useTextField.ts +1 -1
  545. package/src/hoverMode/useHoverMode.ts +3 -3
  546. package/src/hoverMode/useHoverModeProvider.ts +4 -4
  547. package/src/icon/FontIcon.tsx +4 -2
  548. package/src/icon/TextIconSpacing.tsx +1 -1
  549. package/src/icon/iconConfig.tsx +12 -0
  550. package/src/interaction/UserInteractionModeProvider.tsx +12 -8
  551. package/src/interaction/types.ts +21 -2
  552. package/src/interaction/useElementInteraction.tsx +9 -2
  553. package/src/interaction/utils.ts +7 -7
  554. package/src/layout/useExpandableLayout.ts +3 -3
  555. package/src/layout/useLayoutAppBarHeight.ts +3 -4
  556. package/src/layout/useTemporaryLayout.ts +2 -2
  557. package/src/list/ListItem.tsx +5 -1
  558. package/src/list/ListItemLink.tsx +5 -1
  559. package/src/media-queries/useMediaQuery.ts +2 -1
  560. package/src/menu/Menu.tsx +11 -3
  561. package/src/menu/MenuItemButton.tsx +7 -1
  562. package/src/menu/useContextMenu.ts +3 -3
  563. package/src/movement/types.ts +5 -5
  564. package/src/navigation/CollapsibleNavGroup.tsx +16 -8
  565. package/src/navigation/DefaultNavigationRenderer.tsx +8 -6
  566. package/src/navigation/NavItemButton.tsx +2 -1
  567. package/src/navigation/NavItemLink.tsx +11 -3
  568. package/src/navigation/NavSubheader.tsx +1 -1
  569. package/src/navigation/Navigation.tsx +1 -1
  570. package/src/navigation/types.ts +60 -10
  571. package/src/navigation/useActiveHeadingId.ts +1 -1
  572. package/src/navigation/useNavigationExpansion.ts +170 -0
  573. package/src/navigation/utils.ts +47 -0
  574. package/src/objectFit.ts +88 -0
  575. package/src/positioning/useFixedPositioning.ts +34 -11
  576. package/src/responsive-item/ResponsiveItem.tsx +96 -0
  577. package/src/responsive-item/ResponsiveItemOverlay.tsx +6 -46
  578. package/src/responsive-item/responsiveItemOverlayStyles.ts +46 -0
  579. package/src/responsive-item/responsiveItemStyles.ts +81 -0
  580. package/src/scroll/useScrollLock.ts +6 -0
  581. package/src/searching/utils.ts +3 -3
  582. package/src/segmented-button/SegmentedButton.tsx +5 -1
  583. package/src/snackbar/ToastManager.tsx +16 -5
  584. package/src/snackbar/useCurrentToastActions.ts +5 -5
  585. package/src/table/tableCellStyles.ts +10 -6
  586. package/src/tabs/Tab.tsx +4 -1
  587. package/src/tabs/TabList.tsx +2 -2
  588. package/src/tabs/TabListScrollButton.tsx +4 -4
  589. package/src/tabs/getTabListScrollToOptions.ts +37 -0
  590. package/src/tabs/tabStyles.ts +4 -0
  591. package/src/tabs/useTabList.ts +2 -9
  592. package/src/tabs/useTabs.ts +6 -6
  593. package/src/tabs/utils.ts +0 -38
  594. package/src/test-utils/ResizeObserver.ts +11 -12
  595. package/src/test-utils/matchMedia.ts +7 -7
  596. package/src/test-utils/polyfills/TextDecoder.ts +0 -1
  597. package/src/test-utils/timers.ts +10 -7
  598. package/src/theme/LocalStorageColorSchemeProvider.tsx +4 -4
  599. package/src/theme/ThemeProvider.tsx +3 -3
  600. package/src/theme/isColorScheme.ts +22 -0
  601. package/src/theme/types.ts +67 -1
  602. package/src/theme/useCSSVariables.ts +7 -30
  603. package/src/theme/useColorScheme.ts +1 -40
  604. package/src/theme/useColorSchemeMetaTag.ts +1 -1
  605. package/src/theme/useColorSchemeProvider.ts +2 -2
  606. package/src/tooltip/useTooltip.ts +17 -9
  607. package/src/transition/types.ts +1 -1
  608. package/src/transition/useCarousel.ts +3 -3
  609. package/src/transition/useTransition.ts +1 -0
  610. package/src/tree/TreeItem.tsx +7 -1
  611. package/src/tree/TreeItemExpander.tsx +1 -1
  612. package/src/tree/useTreeExpansion.ts +7 -25
  613. package/src/tree/useTreeSelection.ts +8 -32
  614. package/src/tree/utils.ts +6 -2
  615. package/src/types.ts +20 -4
  616. package/src/typography/WritingDirectionProvider.tsx +1 -1
  617. package/src/useDebouncedFunction.ts +4 -9
  618. package/src/useDropzone.ts +4 -4
  619. package/src/useIntersectionObserver.ts +5 -5
  620. package/src/useLocalStorage.ts +6 -6
  621. package/src/useMutationObserver.ts +1 -1
  622. package/src/useOrientation.ts +3 -1
  623. package/src/usePageInactive.ts +2 -2
  624. package/src/useReadonlySet.ts +122 -0
  625. package/src/useResizeListener.ts +1 -1
  626. package/src/useResizeObserver.ts +19 -0
  627. package/src/useThrottledFunction.ts +6 -9
  628. package/src/useToggle.ts +3 -3
  629. package/src/utils/RenderRecursively.tsx +2 -2
  630. package/src/utils/alphaNumericSort.ts +5 -5
  631. package/src/utils/bem.ts +1 -1
  632. package/src/utils/debounce.ts +22 -0
  633. package/src/utils/throttle.ts +38 -0
  634. package/src/utils/wait.ts +5 -1
  635. package/src/window-splitter/WindowSplitter.tsx +38 -43
  636. package/src/window-splitter/styles.ts +42 -0
  637. package/dist/autocomplete/FilterAutocompleteOptions.d.ts +0 -8
  638. package/dist/autocomplete/FilterAutocompleteOptions.js +0 -57
  639. package/dist/autocomplete/FilterAutocompleteOptions.js.map +0 -1
  640. package/dist/dialog/DialogContainer.d.ts +0 -14
  641. package/dist/dialog/DialogContainer.js +0 -20
  642. package/dist/dialog/DialogContainer.js.map +0 -1
  643. package/dist/form/FileInput.js.map +0 -1
  644. package/dist/form/fileUtils.js.map +0 -1
  645. package/dist/form/useFileUpload.js.map +0 -1
  646. package/dist/form/useListboxProvider.d.ts +0 -31
  647. package/dist/form/useListboxProvider.js.map +0 -1
  648. package/dist/navigation/getHrefFromParents.d.ts +0 -5
  649. package/dist/navigation/getHrefFromParents.js +0 -13
  650. package/dist/navigation/getHrefFromParents.js.map +0 -1
  651. package/dist/responsive-item/ResponsiveItemContainer.d.ts +0 -115
  652. package/dist/responsive-item/ResponsiveItemContainer.js +0 -80
  653. package/dist/responsive-item/ResponsiveItemContainer.js.map +0 -1
  654. package/dist/responsive-item/styles.d.ts +0 -34
  655. package/dist/responsive-item/styles.js +0 -17
  656. package/dist/responsive-item/styles.js.map +0 -1
  657. package/dist/theme/usePrefersColorScheme.js.map +0 -1
  658. package/src/autocomplete/FilterAutocompleteOptions.tsx +0 -86
  659. package/src/dialog/DialogContainer.tsx +0 -28
  660. package/src/form/useListboxProvider.ts +0 -45
  661. package/src/navigation/getHrefFromParents.ts +0 -15
  662. package/src/responsive-item/ResponsiveItemContainer.tsx +0 -174
  663. package/src/responsive-item/styles.ts +0 -58
  664. /package/dist/theme/{usePrefersColorScheme.d.ts → usePrefersDarkScheme.d.ts} +0 -0
  665. /package/src/theme/{usePrefersColorScheme.ts → usePrefersDarkScheme.ts} +0 -0
@@ -1,7 +1,6 @@
1
1
  "use client";
2
2
  import { useMemo, type Ref, type RefCallback } from "react";
3
- import { type DefinedCSSVariableName } from "../theme/types.js";
4
- import { type CSSVariable } from "../theme/useCSSVariables.js";
3
+ import { type CSSVariable } from "../theme/types.js";
5
4
  import { useElementSize } from "../useElementSize.js";
6
5
 
7
6
  declare module "react" {
@@ -16,7 +15,7 @@ declare module "react" {
16
15
  */
17
16
  export interface LayoutAppBarHeightResult {
18
17
  height: number | undefined;
19
- variables: readonly CSSVariable<DefinedCSSVariableName>[];
18
+ variables: readonly CSSVariable[];
20
19
  appBarRef: RefCallback<HTMLDivElement>;
21
20
  }
22
21
 
@@ -75,7 +74,7 @@ export function useLayoutAppBarHeight(
75
74
  ref,
76
75
  disableWidth: true,
77
76
  });
78
- const variables = useMemo<CSSVariable<DefinedCSSVariableName>[]>(() => {
77
+ const variables = useMemo<CSSVariable[]>(() => {
79
78
  if (Number.isNaN(height) || !observedOnce) {
80
79
  return [];
81
80
  }
@@ -56,8 +56,8 @@ export type ProvidedTemporaryLayoutAppBarProps = Required<
56
56
  */
57
57
  export interface TemporaryLayoutImplementation {
58
58
  visible: boolean;
59
- showTemporaryNav(): void;
60
- hideTemporaryNav(): void;
59
+ showTemporaryNav: () => void;
60
+ hideTemporaryNav: () => void;
61
61
  appBarProps: ProvidedTemporaryLayoutAppBarProps;
62
62
  mainProps: ProvidedTemporaryLayoutMainProps;
63
63
  navToggleProps: ProvidedLayoutNavToggleProps;
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
  import { forwardRef, type HTMLAttributes } from "react";
3
+ import { type ComponentWithRippleProps } from "../interaction/types.js";
3
4
  import { useElementInteraction } from "../interaction/useElementInteraction.js";
4
5
  import { useHigherContrastChildren } from "../interaction/useHigherContrastChildren.js";
5
6
  import { getListItemHeight } from "./getListItemHeight.js";
@@ -13,7 +14,8 @@ import { type ListItemChildrenProps, type ListItemHeight } from "./types.js";
13
14
  */
14
15
  export interface ListItemProps
15
16
  extends HTMLAttributes<HTMLLIElement>,
16
- ListItemChildrenProps {
17
+ ListItemChildrenProps,
18
+ ComponentWithRippleProps {
17
19
  /**
18
20
  * @defaultValue `"button"`
19
21
  */
@@ -148,6 +150,7 @@ export const ListItem = forwardRef<HTMLLIElement, ListItemProps>(
148
150
  disableRightAddonCenteredMedia,
149
151
  multiline = false,
150
152
  disabled = false,
153
+ disableRipple,
151
154
  disabledOpacity = false,
152
155
  role = "button",
153
156
  onBlur,
@@ -173,6 +176,7 @@ export const ListItem = forwardRef<HTMLLIElement, ListItemProps>(
173
176
  }
174
177
 
175
178
  const { pressedClassName, ripples, handlers } = useElementInteraction({
179
+ mode: disableRipple ? "none" : undefined,
176
180
  onBlur,
177
181
  onClick,
178
182
  onKeyDown,
@@ -4,6 +4,7 @@ import {
4
4
  type AnchorHTMLAttributes,
5
5
  type HTMLAttributes,
6
6
  } from "react";
7
+ import { type ComponentWithRippleProps } from "../interaction/types.js";
7
8
  import { useElementInteraction } from "../interaction/useElementInteraction.js";
8
9
  import { useHigherContrastChildren } from "../interaction/useHigherContrastChildren.js";
9
10
  import { type CustomLinkComponent } from "../link/Link.js";
@@ -16,7 +17,8 @@ import { type ListItemChildrenProps } from "./types.js";
16
17
  export interface ListItemLinkProps
17
18
  extends AnchorHTMLAttributes<HTMLAnchorElement>,
18
19
  ListItemClassNameOptions,
19
- ListItemChildrenProps {
20
+ ListItemChildrenProps,
21
+ ComponentWithRippleProps {
20
22
  /** @defaultValue `"a"` */
21
23
  as?: CustomLinkComponent;
22
24
 
@@ -93,10 +95,12 @@ export const ListItemLink = forwardRef<HTMLAnchorElement, ListItemLinkProps>(
93
95
  role,
94
96
  tabIndex = disabled || role === "menuitem" ? -1 : undefined,
95
97
  children: propChildren,
98
+ disableRipple,
96
99
  ...remaining
97
100
  } = props;
98
101
 
99
102
  const { pressedClassName, ripples, handlers } = useElementInteraction({
103
+ mode: disableRipple ? "none" : undefined,
100
104
  onBlur,
101
105
  onClick,
102
106
  onKeyDown,
@@ -39,8 +39,9 @@ export function useMediaQuery(query: string, disabled = false): boolean {
39
39
  const result = window.matchMedia(query);
40
40
  setMatches(result.matches);
41
41
 
42
- const updater = ({ matches }: MediaQueryListEvent): void =>
42
+ const updater = ({ matches }: MediaQueryListEvent): void => {
43
43
  setMatches(matches);
44
+ };
44
45
 
45
46
  result.addEventListener("change", updater);
46
47
  return () => {
package/src/menu/Menu.tsx CHANGED
@@ -117,7 +117,13 @@ export interface MenuConfigurationProps extends CalculateFixedPositionOptions {
117
117
  closeOnResize?: boolean;
118
118
 
119
119
  /** @see {@link FixedPositioningOptions.getFixedPositionOptions} */
120
- getFixedPositionOptions?(): CalculateFixedPositionOptions;
120
+ getFixedPositionOptions?: () => CalculateFixedPositionOptions;
121
+
122
+ /**
123
+ * @defaultValue `false`
124
+ * @see {@link FixedPositioningOptions.disabled}
125
+ */
126
+ disableFixedPositioning?: boolean;
121
127
  }
122
128
 
123
129
  /**
@@ -198,7 +204,7 @@ export interface MenuConvenienceProps extends MenuConfigurationProps {
198
204
  */
199
205
  export type MenuFixedPositioningOptions = Omit<
200
206
  FixedPositioningOptions<HTMLElement, HTMLDivElement>,
201
- "onScroll" | "onResize"
207
+ "onScroll" | "onResize" | "nodeRef" | "disabled"
202
208
  >;
203
209
 
204
210
  /**
@@ -215,7 +221,7 @@ export interface MenuProps
215
221
  MenuListConvenienceProps,
216
222
  MenuSheetConvenienceProps {
217
223
  visible: boolean;
218
- onRequestClose(): void;
224
+ onRequestClose: () => void;
219
225
 
220
226
  /**
221
227
  * @defaultValue `"menu-" + useId()`
@@ -322,6 +328,7 @@ export const Menu = forwardRef<HTMLDivElement, LabelRequiredForA11y<MenuProps>>(
322
328
  disableVHBounds,
323
329
  initialX,
324
330
  initialY,
331
+ disableFixedPositioning,
325
332
  getFixedPositionOptions,
326
333
  disablePortal: propDisablePortal,
327
334
  disableTransition,
@@ -449,6 +456,7 @@ export const Menu = forwardRef<HTMLDivElement, LabelRequiredForA11y<MenuProps>>(
449
456
 
450
457
  const { ref, style, callbacks, updateStyle } = useFixedPositioning({
451
458
  ...transitionOptions,
459
+ disabled: disableFixedPositioning,
452
460
  onEnter,
453
461
  style: isSheet ? propStyle : menuStyle,
454
462
  fixedTo,
@@ -38,6 +38,7 @@ export const MenuItemButton = forwardRef<HTMLLIElement, MenuItemButtonProps>(
38
38
  const {
39
39
  id: propId,
40
40
  children,
41
+ height: propHeight,
41
42
  onClick = noop,
42
43
  onKeyDown = noop,
43
44
  onMouseEnter = noop,
@@ -82,9 +83,14 @@ export const MenuItemButton = forwardRef<HTMLLIElement, MenuItemButtonProps>(
82
83
  setVisible(id === activeId);
83
84
  }, [activeId, defaultFocusIndex, id, menubar, setVisible]);
84
85
 
85
- const dropdownIcon = getIcon(root ? "dropdown" : "forward");
86
+ let height = propHeight;
86
87
  let rightAddon = propRightAddon;
88
+ const dropdownIcon = getIcon(root ? "dropdown" : "forward");
87
89
  if (!disableDropdownIcon) {
90
+ if (!height && !props.leftAddon) {
91
+ height = "normal";
92
+ }
93
+
88
94
  rightAddon = (
89
95
  <IconRotator {...iconRotatorProps} rotated={visible}>
90
96
  {dropdownIcon}
@@ -12,7 +12,7 @@ export interface ContextMenuProps extends InitialCoords {
12
12
  fixedTo: RefObject<HTMLElement>;
13
13
  visible: boolean;
14
14
  preventScroll: boolean;
15
- onRequestClose(): void;
15
+ onRequestClose: () => void;
16
16
  }
17
17
 
18
18
  /**
@@ -37,7 +37,7 @@ export interface ContextMenuHookOptions {
37
37
  * @defaultValue `true`
38
38
  */
39
39
  preventScroll?: boolean;
40
- onContextMenu?<E extends HTMLElement>(event: MouseEvent<E>): void;
40
+ onContextMenu?: <E extends HTMLElement>(event: MouseEvent<E>) => void;
41
41
  }
42
42
 
43
43
  /**
@@ -49,7 +49,7 @@ export interface ContextMenuHookOptions {
49
49
  export interface ContextMenuImplementation
50
50
  extends UseStateObject<"visible", boolean> {
51
51
  menuProps: ContextMenuProps;
52
- onContextMenu<E extends HTMLElement>(event: MouseEvent<E>): void;
52
+ onContextMenu: <E extends HTMLElement>(event: MouseEvent<E>) => void;
53
53
  }
54
54
 
55
55
  const noop = (): void => {
@@ -203,8 +203,8 @@ export interface KeyboardMovementExtensionData<E extends HTMLElement>
203
203
  extends KeyboardMovementContext {
204
204
  event: KeyboardEvent<E>;
205
205
  currentFocusIndex: NonNullMutableRef<number>;
206
- setFocusIndex(index: number, focusables: readonly HTMLElement[]): void;
207
- setActiveDescendantId(id: string): void;
206
+ setFocusIndex: (index: number, focusables: readonly HTMLElement[]) => void;
207
+ setActiveDescendantId: (id: string) => void;
208
208
  }
209
209
 
210
210
  /**
@@ -217,9 +217,9 @@ export interface KeyboardMovementProviderOptions<E extends HTMLElement>
217
217
  /** @see {@link TabIndexBehavior} */
218
218
  tabIndexBehavior?: TabIndexBehavior;
219
219
 
220
- onClick?(event: MouseEvent<E>): void;
221
- onFocus?(event: FocusEvent<E>): void;
222
- onKeyDown?(event: KeyboardEvent<E>): void;
220
+ onClick?: (event: MouseEvent<E>) => void;
221
+ onFocus?: (event: FocusEvent<E>) => void;
222
+ onKeyDown?: (event: KeyboardEvent<E>) => void;
223
223
 
224
224
  /** @defaultValue `false` */
225
225
  disabled?: boolean;
@@ -1,9 +1,11 @@
1
1
  "use client";
2
2
  import { forwardRef, type LiHTMLAttributes, type ReactNode } from "react";
3
3
  import { type ButtonProps } from "../button/Button.js";
4
- import { useCollapseTransition } from "../transition/useCollapseTransition.js";
5
- import { type PropsWithRef, type UseStateInitializer } from "../types.js";
6
- import { useToggle } from "../useToggle.js";
4
+ import {
5
+ type CollapseTransitionHookOptions,
6
+ useCollapseTransition,
7
+ } from "../transition/useCollapseTransition.js";
8
+ import { type PropsWithRef } from "../types.js";
7
9
  import { NavGroup, type NavGroupProps } from "./NavGroup.js";
8
10
  import { NavItem } from "./NavItem.js";
9
11
  import {
@@ -23,6 +25,10 @@ export interface CollapsibleNavGroupProps
23
25
  NavItemButtonRotatorProps {
24
26
  liProps?: PropsWithRef<LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>;
25
27
  buttonProps?: PropsWithRef<ButtonProps, HTMLButtonElement>;
28
+ collapseOptions?: Omit<
29
+ CollapseTransitionHookOptions<HTMLUListElement>,
30
+ "nodeRef" | "className" | "transitionIn"
31
+ >;
26
32
 
27
33
  /**
28
34
  * The children to render in the {@link NavItemButton} that toggles the
@@ -35,8 +41,8 @@ export interface CollapsibleNavGroupProps
35
41
  */
36
42
  children: ReactNode;
37
43
 
38
- /** @defaultValue `false` */
39
- defaultCollapsed?: UseStateInitializer<boolean>;
44
+ collapsed: boolean;
45
+ toggleCollapsed: () => void;
40
46
  }
41
47
 
42
48
  /**
@@ -57,12 +63,14 @@ export const CollapsibleNavGroup = forwardRef<
57
63
  disableIconRotator,
58
64
  className,
59
65
  children,
60
- defaultCollapsed,
66
+ collapsed,
67
+ toggleCollapsed,
68
+ collapseOptions,
61
69
  ...remaining
62
70
  } = props;
63
71
 
64
- const { toggled: collapsed, toggle } = useToggle(defaultCollapsed);
65
72
  const { rendered, elementProps } = useCollapseTransition({
73
+ ...collapseOptions,
66
74
  nodeRef: ref,
67
75
  className,
68
76
  transitionIn: !collapsed,
@@ -75,7 +83,7 @@ export const CollapsibleNavGroup = forwardRef<
75
83
  {...buttonProps}
76
84
  onClick={(event) => {
77
85
  onButtonClick(event);
78
- toggle();
86
+ toggleCollapsed();
79
87
  }}
80
88
  collapsed={collapsed}
81
89
  icon={icon}
@@ -4,16 +4,16 @@ import { type RenderRecursiveItemsProps } from "../utils/RenderRecursively.js";
4
4
  import { CollapsibleNavGroup } from "./CollapsibleNavGroup.js";
5
5
  import { NavItemLink } from "./NavItemLink.js";
6
6
  import { NavSubheader } from "./NavSubheader.js";
7
- import { getHrefFromParents } from "./getHrefFromParents.js";
8
7
  import { type NavigationItem, type NavigationRenderData } from "./types.js";
8
+ import { getHrefFromParents, getNavigationGroupId } from "./utils.js";
9
9
 
10
10
  /**
11
11
  * @since 6.0.0
12
12
  */
13
- export interface DefaultNavigationRendererProps<
13
+ export type DefaultNavigationRendererProps<
14
14
  Item extends NavigationItem = NavigationItem,
15
15
  Data extends NavigationRenderData = NavigationRenderData,
16
- > extends RenderRecursiveItemsProps<Item, Data> {}
16
+ > = RenderRecursiveItemsProps<Item, Data>;
17
17
 
18
18
  /**
19
19
  * **Client Component**
@@ -46,13 +46,15 @@ export function DefaultNavigationRenderer<
46
46
 
47
47
  if (item.items) {
48
48
  const nextParents = [item, ...parents];
49
+ const id = getNavigationGroupId(item, nextParents);
49
50
  return (
50
51
  <CollapsibleNavGroup
51
52
  depth={nextParents.length}
52
- defaultCollapsed={() =>
53
- !data?.pathname.includes(getHrefFromParents(nextParents))
54
- }
53
+ collapsed={!data?.expandedItems.has(id)}
55
54
  buttonChildren={item.children}
55
+ toggleCollapsed={() => {
56
+ data?.toggleExpandedItem(id);
57
+ }}
56
58
  >
57
59
  {children}
58
60
  </CollapsibleNavGroup>
@@ -15,7 +15,7 @@ import { type NavItemContentProps } from "./types.js";
15
15
  export interface NavItemButtonRotatorProps {
16
16
  /** @defaultValue `getIcon("dropdown")` */
17
17
  icon?: ReactNode;
18
- iconRotatorProps?: IconRotatorBaseProps;
18
+ iconRotatorProps?: Omit<IconRotatorBaseProps, "rotated">;
19
19
  disableIconRotator?: boolean;
20
20
  }
21
21
 
@@ -74,6 +74,7 @@ export const NavItemButton = forwardRef<HTMLButtonElement, NavItemButtonProps>(
74
74
  return (
75
75
  <>
76
76
  <Button
77
+ aria-expanded={!collapsed}
77
78
  {...remaining}
78
79
  {...elementProps}
79
80
  ref={ref}
@@ -6,6 +6,7 @@ import {
6
6
  type LiHTMLAttributes,
7
7
  } from "react";
8
8
  import { cssUtils } from "../cssUtils.js";
9
+ import { type ComponentWithRippleProps } from "../interaction/types.js";
9
10
  import { useElementInteraction } from "../interaction/useElementInteraction.js";
10
11
  import { Tooltip } from "../tooltip/Tooltip.js";
11
12
  import { useTooltip } from "../tooltip/useTooltip.js";
@@ -23,7 +24,8 @@ import {
23
24
  */
24
25
  export interface NavItemLinkProps
25
26
  extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "children">,
26
- NavItemContentProps {
27
+ NavItemContentProps,
28
+ ComponentWithRippleProps {
27
29
  /** @defaultValue `"a"` */
28
30
  as?: NavigationLinkComponent;
29
31
  href: string;
@@ -48,7 +50,7 @@ export interface NavItemLinkProps
48
50
 
49
51
  /**
50
52
  * Set this to `true` to prevent this item from scrolling into view when it
51
- * becomes active. It is generally recommended to keep this `true` unless a
53
+ * becomes active. It is generally recommended to keep this `false` unless a
52
54
  * custom implementation has been added so that when the temporary navigation
53
55
  * will show the active route.
54
56
  *
@@ -88,12 +90,14 @@ export const NavItemLink = forwardRef<HTMLAnchorElement, NavItemLinkProps>(
88
90
  onTouchEnd,
89
91
  onTouchStart,
90
92
  tooltipOptions,
93
+ disableRipple,
91
94
  disableScrollIntoView,
92
95
  ...remaining
93
96
  } = props;
94
97
 
95
98
  const [linkRef, linkRefCallback] = useEnsuredRef(propRef);
96
99
  const { handlers, ripples } = useElementInteraction({
100
+ mode: disableRipple ? "none" : undefined,
97
101
  disabled,
98
102
  onClick,
99
103
  onBlur,
@@ -120,7 +124,10 @@ export const NavItemLink = forwardRef<HTMLAnchorElement, NavItemLinkProps>(
120
124
  !active ||
121
125
  !link ||
122
126
  disableScrollIntoView ||
123
- document.activeElement === link
127
+ document.activeElement === link ||
128
+ // do not scroll into view if the collapse transition is occurring since
129
+ // it makes it animate weirdly
130
+ link.closest(".rmd-collapse--enter")
124
131
  ) {
125
132
  return;
126
133
  }
@@ -131,6 +138,7 @@ export const NavItemLink = forwardRef<HTMLAnchorElement, NavItemLinkProps>(
131
138
  return (
132
139
  <NavItem {...liProps}>
133
140
  <Component
141
+ aria-current={active ? "page" : undefined}
134
142
  {...remaining}
135
143
  {...handlers}
136
144
  {...elementProps}
@@ -8,7 +8,7 @@ import { navItem } from "./navItemStyles.js";
8
8
  /**
9
9
  * @since 6.0.0
10
10
  */
11
- export interface NavSubheaderProps extends ListSubheaderProps {}
11
+ export type NavSubheaderProps = ListSubheaderProps;
12
12
 
13
13
  /**
14
14
  * A simple wrapper around the {@Link ListSubheader} that updates the padding
@@ -58,7 +58,7 @@ export interface NavigationProps<
58
58
  render?: ComponentType<RenderRecursiveItemsProps<Item, Data>>;
59
59
 
60
60
  /** @see {@link getRecursiveNavItemKey} */
61
- getItemKey?(options: RecursiveItemKeyOptions<Item>): string;
61
+ getItemKey?: (options: RecursiveItemKeyOptions<Item>) => string;
62
62
  }
63
63
 
64
64
  /**
@@ -47,13 +47,15 @@ export interface NavigationItemSubheader extends ListSubheaderProps {
47
47
  * @example Route Group Output
48
48
  * ```tsx
49
49
  * const nextParents = [item, ...parents];
50
+ * const id = getNavigationGroupId(item, nextParents);
50
51
  * return (
51
52
  * <CollapsibleNavGroup
52
- * depth={nextParents.length})
53
- * defaultCollapsed={() =>
54
- * !data.pathname.includes(getHrefFromParents(nextParents))
55
- * }
53
+ * depth={nextParents.length}
54
+ * collapsed={!data?.expandedItems.has(id)}
56
55
  * buttonChildren={item.children}
56
+ * toggleCollapsed={() => {
57
+ * data?.toggleExpandedItem(id);
58
+ * }}
57
59
  * >
58
60
  * {children}
59
61
  * </CollapsibleNavGroup>
@@ -66,6 +68,43 @@ export interface NavigationItemSubheader extends ListSubheaderProps {
66
68
  */
67
69
  export interface NavigationItemGroup {
68
70
  type: "group";
71
+
72
+ /**
73
+ * An optional unique id to identify the group used for handling the expanded
74
+ * state when the `href` can't be used.
75
+ */
76
+ id?: string;
77
+
78
+ /**
79
+ * An optional href to prefix all child routes with and can be used instead of
80
+ * the {@link id} for handling the expanded state.
81
+ *
82
+ * @example
83
+ * ```ts
84
+ * {
85
+ * type: "group",
86
+ * href: "/some-path",
87
+ * children: "Some Name",
88
+ * items: [
89
+ * {
90
+ * type: "route",
91
+ * href: "/page-1",
92
+ * children: "Page 1",
93
+ * },
94
+ * {
95
+ * type: "route",
96
+ * href: "/page-2",
97
+ * children: "Page 2",
98
+ * },
99
+ * ],
100
+ * }
101
+ * ```
102
+ *
103
+ * Would result in:
104
+ *
105
+ * - Page 1 - `/some-path/page-1`
106
+ * - Page 2 - `/some-path/page-2`
107
+ */
69
108
  href?: string;
70
109
  children: ReactNode;
71
110
  items: readonly NavigationItem[];
@@ -95,16 +134,27 @@ export type NavigationItem =
95
134
  /**
96
135
  * @since 6.0.0
97
136
  */
98
- export type NavigationLinkComponent =
99
- | "a"
100
- | ForwardRefExoticComponent<
101
- AnchorHTMLAttributes<HTMLAnchorElement> & { href: string }
102
- >;
137
+ export type CustomNavigationLinkComponent = ForwardRefExoticComponent<
138
+ AnchorHTMLAttributes<HTMLAnchorElement> & { href: string }
139
+ >;
140
+
141
+ /**
142
+ * @since 6.0.0
143
+ */
144
+ export type NavigationLinkComponent = "a" | CustomNavigationLinkComponent;
145
+
146
+ /**
147
+ * @since 6.0.0
148
+ */
149
+ export interface NavigationExpansion {
150
+ expandedItems: ReadonlySet<string>;
151
+ toggleExpandedItem: (id: string) => void;
152
+ }
103
153
 
104
154
  /**
105
155
  * @since 6.0.0
106
156
  */
107
- export interface NavigationRenderData {
157
+ export interface NavigationRenderData extends NavigationExpansion {
108
158
  /**
109
159
  * This is used to set the `active` state on a `NavItemLink`
110
160
  */
@@ -112,7 +112,7 @@ export interface ActiveHeadingIdOptions {
112
112
  threshold?: IntersectionObserverThreshold;
113
113
 
114
114
  /** @see {@link DEFAULT_ACTIVE_HEADING_GET_ROOT_MARGIN} */
115
- getRootMargin?(): IntersectionObserverRootMargin;
115
+ getRootMargin?: () => IntersectionObserverRootMargin;
116
116
 
117
117
  /** @defaultValue `headings[0]?.id ?? ""` */
118
118
  defaultActiveId?: UseStateInitializer<string>;