@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
@@ -2,33 +2,63 @@
2
2
  import { useRef } from "react";
3
3
  import { isTypeEvent } from "../movement/utils.js";
4
4
  import {
5
- useCombobox,
6
- type BaseComboboxOptions,
7
5
  type ComboboxImplementation,
6
+ type ComboboxWidgetProps,
7
+ type ConfigurableComboboxOptions,
8
+ useCombobox,
8
9
  } from "./useCombobox.js";
9
- import { isChangeableHTMLElement, triggerManualChangeEvent } from "./utils.js";
10
+ import {
11
+ type EditableHTMLElement,
12
+ isChangeableHTMLElement,
13
+ triggerManualChangeEvent,
14
+ } from "./utils.js";
10
15
 
11
16
  /**
12
17
  * @since 6.0.0
13
18
  */
14
- export interface EditableComboboxOptions<
19
+ export type EditableComboboxOptions<
15
20
  ComboboxEl extends HTMLElement = HTMLInputElement,
16
21
  PopupEl extends HTMLElement = HTMLElement,
17
- > extends BaseComboboxOptions<ComboboxEl, PopupEl> {}
22
+ > = ConfigurableComboboxOptions<ComboboxEl, PopupEl>;
23
+
24
+ /**
25
+ * @since 6.0.0
26
+ */
27
+ export interface EditableComboboxWidgetProps<
28
+ ComboboxEl extends EditableHTMLElement = HTMLInputElement,
29
+ > extends ComboboxWidgetProps<ComboboxEl> {
30
+ /**
31
+ * This is set to `off` to prevent browser from providing their own
32
+ * suggestions.
33
+ *
34
+ * @defaultValue `"off"`
35
+ */
36
+ autoComplete: string;
37
+
38
+ /**
39
+ * This is set to `"none"` to prevent browsers from automatically capitalizing
40
+ * the first letter.
41
+ *
42
+ * @defaultValue `"none"`
43
+ */
44
+ autoCapitalize: string;
45
+ }
18
46
 
19
47
  /**
20
48
  * @since 6.0.0
21
49
  */
22
50
  export interface EditableComboboxImplementation<
23
- ComboboxEl extends HTMLElement = HTMLInputElement,
51
+ ComboboxEl extends EditableHTMLElement = HTMLInputElement,
24
52
  PopupEl extends HTMLElement = HTMLElement,
25
- > extends ComboboxImplementation<ComboboxEl, PopupEl> {}
53
+ > extends ComboboxImplementation<ComboboxEl, PopupEl> {
54
+ comboboxProps: EditableComboboxWidgetProps<ComboboxEl>;
55
+ }
26
56
 
27
57
  /**
28
58
  * @since 6.0.0
29
59
  */
30
60
  export function useEditableCombobox<
31
- ComboboxEl extends HTMLElement = HTMLInputElement,
61
+ ComboboxEl extends EditableHTMLElement = HTMLInputElement,
32
62
  PopupEl extends HTMLElement = HTMLElement,
33
63
  >(
34
64
  options: EditableComboboxOptions<ComboboxEl, PopupEl> = {}
@@ -129,6 +159,11 @@ export function useEditableCombobox<
129
159
 
130
160
  return {
131
161
  ...combobox,
162
+ comboboxProps: {
163
+ ...combobox.comboboxProps,
164
+ autoCapitalize: "none",
165
+ autoComplete: "off",
166
+ },
132
167
  getMenuProps(props) {
133
168
  return {
134
169
  // override the inherited renderAsSheet context since the sheet makes it
@@ -91,7 +91,7 @@ export type GetRadioGroupProps<V extends string | number> = (
91
91
 
92
92
  /** @since 6.0.0 */
93
93
  export interface RadioGroupImplementation<V extends string | number> {
94
- reset(): void;
94
+ reset: () => void;
95
95
  value: V;
96
96
  setValue: UseStateSetter<V>;
97
97
  getRadioProps: GetRadioGroupProps<V>;
@@ -99,11 +99,11 @@ export interface RadioGroupImplementation<V extends string | number> {
99
99
 
100
100
  export type GetMenuItemRadioGroupProps<V extends string | number> = (
101
101
  value: V
102
- ) => Readonly<{ checked: boolean; onCheckedChange(): void }>;
102
+ ) => Readonly<{ checked: boolean; onCheckedChange: () => void }>;
103
103
 
104
104
  /** @since 6.0.0 */
105
105
  export interface MenuItemRadioGroupImplementation<V extends string | number> {
106
- reset(): void;
106
+ reset: () => void;
107
107
  value: V;
108
108
  setValue: UseStateSetter<V>;
109
109
  getRadioProps: GetMenuItemRadioGroupProps<V>;
@@ -111,17 +111,17 @@ export interface MenuItemRadioGroupImplementation<V extends string | number> {
111
111
 
112
112
  /** @since 6.0.0 */
113
113
  export interface CombinedRadioGroupReturnValue<V extends string | number> {
114
- reset(): void;
114
+ reset: () => void;
115
115
  value: V;
116
116
  setValue: UseStateSetter<V>;
117
- getRadioProps?(value: V): {
117
+ getRadioProps?: (value: V) => {
118
118
  name?: string;
119
119
  value?: V;
120
120
  checked: boolean;
121
121
  error?: boolean;
122
122
  required?: boolean;
123
123
  onChange?: ChangeEventHandler<HTMLInputElement>;
124
- onCheckedChange?(): void;
124
+ onCheckedChange?: () => void;
125
125
  onInvalid?: FormEventHandler<HTMLInputElement>;
126
126
  };
127
127
  }
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import {
3
3
  useCombobox,
4
- type BaseComboboxOptions,
5
4
  type ComboboxImplementation,
5
+ type ConfigurableComboboxOptions,
6
6
  } from "./useCombobox.js";
7
7
 
8
8
  /**
@@ -11,7 +11,7 @@ import {
11
11
  export interface SelectComboboxOptions<
12
12
  ComboboxEl extends HTMLElement = HTMLInputElement,
13
13
  PopupEl extends HTMLElement = HTMLElement,
14
- > extends BaseComboboxOptions<ComboboxEl, PopupEl> {
14
+ > extends ConfigurableComboboxOptions<ComboboxEl, PopupEl> {
15
15
  value: string;
16
16
  values: readonly string[];
17
17
  }
@@ -19,10 +19,10 @@ export interface SelectComboboxOptions<
19
19
  /**
20
20
  * @since 6.0.0
21
21
  */
22
- export interface SelectComboboxImplementation<
22
+ export type SelectComboboxImplementation<
23
23
  ComboboxEl extends HTMLElement = HTMLInputElement,
24
24
  PopupEl extends HTMLElement = HTMLElement,
25
- > extends ComboboxImplementation<ComboboxEl, PopupEl> {}
25
+ > = ComboboxImplementation<ComboboxEl, PopupEl>;
26
26
 
27
27
  /**
28
28
  * @since 6.0.0
@@ -317,7 +317,7 @@ export interface TextFieldImplementation<
317
317
  E extends HTMLInputElement | HTMLTextAreaElement,
318
318
  > extends TextFieldHookState {
319
319
  fieldRef: RefObject<E>;
320
- reset(): void;
320
+ reset: () => void;
321
321
  setState: UseStateSetter<Readonly<TextFieldHookState>>;
322
322
  fieldProps: ProvidedTextFieldProps<E>;
323
323
  }
@@ -34,9 +34,9 @@ export interface ControlledHoverModeOptions
34
34
  * @since 6.0.0
35
35
  */
36
36
  export interface ControlledHoverModeImplementation {
37
- startShowFlow(id?: string | MouseEvent): void;
38
- startHideFlow(): void;
39
- clearVisibilityTimeout(): void;
37
+ startShowFlow: (id?: string | MouseEvent) => void;
38
+ startHideFlow: () => void;
39
+ clearVisibilityTimeout: () => void;
40
40
  }
41
41
 
42
42
  /**
@@ -53,23 +53,23 @@ export interface SimpleHoverModeContext {
53
53
  *
54
54
  * @see {@link hoverTimeoutRef} for an example.
55
55
  */
56
- enableHoverMode(activeId: string): void;
56
+ enableHoverMode: (activeId: string) => void;
57
57
 
58
58
  /**
59
59
  * Disables all hover mode behavior by clearing all timeouts and resetting
60
60
  * internal state.
61
61
  */
62
- disableHoverMode(): void;
62
+ disableHoverMode: () => void;
63
63
 
64
64
  /**
65
65
  * @see {@link leaveTimeoutRef} for an example.
66
66
  */
67
- startDisableTimer(): void;
67
+ startDisableTimer: () => void;
68
68
 
69
69
  /**
70
70
  * @see {@link hoverTimeoutRef} for an example.
71
71
  */
72
- clearDisableTimer(): void;
72
+ clearDisableTimer: () => void;
73
73
  }
74
74
 
75
75
  /**
@@ -122,6 +122,13 @@ export interface ConfigurableIcons {
122
122
  */
123
123
  radioChecked?: ReactNode;
124
124
 
125
+ /**
126
+ * The icon to use when removing elements.
127
+ *
128
+ * @defaultValue `<FontIcon>cancel</FontIcon>`
129
+ */
130
+ remove?: ReactNode;
131
+
125
132
  /**
126
133
  * The icon to use for showing that something has been selected that is not a
127
134
  * radio or checkbox. This is used internally for the `Chip` in the
@@ -168,6 +175,7 @@ export type ConfigurableIconName = keyof ConfigurableIcons;
168
175
  * import { ICON_CONFIG } from "@react-md/core";
169
176
  * import ArrowDropDownIcon from "@react-md/material-icons/ArrowDropDownIcon";
170
177
  * import ArrowUpwardIcon from "@react-md/material-icons/ArrowUpwardIcon";
178
+ * import CancelIcon from "@react-md/material-icons/CancelIcon";
171
179
  * import CheckBoxIcon from "@react-md/material-icons/CheckBoxIcon";
172
180
  * import CheckBoxOutlineBlankIcon from "@react-md/material-icons/CheckBoxOutlineBlankIcon";
173
181
  * import CheckIcon from "@react-md/material-icons/CheckIcon";
@@ -198,6 +206,7 @@ export type ConfigurableIconName = keyof ConfigurableIcons;
198
206
  * ICON_CONFIG.password = <RemoveRedEyeIcon />;
199
207
  * ICON_CONFIG.radio = <RadioButtonUncheckedIcon />;
200
208
  * ICON_CONFIG.radioChecked = <RadioButtonCheckedIcon />;
209
+ * ICON_CONFIG.remove = <CancelIcon />;
201
210
  * ICON_CONFIG.selected = <CheckIcon />;
202
211
  * ICON_CONFIG.sort = <ArrowUpwardIcon />;
203
212
  * ICON_CONFIG.upload = <FileUploadIcon />;
@@ -222,6 +231,7 @@ export const ICON_CONFIG: ConfiguredIcons = {
222
231
  password: <FontIcon>remove_red_eye</FontIcon>,
223
232
  radio: <FontIcon>radio_button_unchecked</FontIcon>,
224
233
  radioChecked: <FontIcon>radio_button_checked</FontIcon>,
234
+ remove: <FontIcon>cancel</FontIcon>,
225
235
  selected: <FontIcon>check</FontIcon>,
226
236
  sort: <FontIcon>arrow_upward</FontIcon>,
227
237
  upload: <FontIcon>file_upload</FontIcon>,
@@ -236,6 +246,7 @@ export const ICON_CONFIG: ConfiguredIcons = {
236
246
  * import { configureIcons } from "@react-md/core";
237
247
  * import ArrowDropDownIcon from "@react-md/material-icons/ArrowDropDownIcon";
238
248
  * import ArrowUpwardIcon from "@react-md/material-icons/ArrowUpwardIcon";
249
+ * import CancelIcon from "@react-md/material-icons/CancelIcon";
239
250
  * import CheckBoxIcon from "@react-md/material-icons/CheckBoxIcon";
240
251
  * import CheckBoxOutlineBlankIcon from "@react-md/material-icons/CheckBoxOutlineBlankIcon";
241
252
  * import CheckIcon from "@react-md/material-icons/CheckIcon";
@@ -267,6 +278,7 @@ export const ICON_CONFIG: ConfiguredIcons = {
267
278
  * password: <RemoveRedEyeIcon />,
268
279
  * radio: <RadioButtonUncheckedIcon />,
269
280
  * radioChecked: <RadioButtonCheckedIcon />,
281
+ * remove: <CancelIcon />,
270
282
  * selected: <CheckIcon />,
271
283
  * sort: <ArrowUpwardIcon />,
272
284
  * upload: <FileUploadIcon />,
@@ -53,13 +53,13 @@ export interface UserInteractionModeProviderProps {
53
53
  * to update component functionality and applying the following class names to
54
54
  * the `document.body`:
55
55
  *
56
- * - `"mouse-mode"`
57
- * - `"keyboard-mode"`
58
- * - `"touch-mode"`
56
+ * - `"rmd-mouse-mode"`
57
+ * - `"rmd-keyboard-mode"`
58
+ * - `"rmd-touch-mode"`
59
59
  *
60
60
  * Within `react-md`, these classes are used for the following behavior:
61
- * - only display `:focus` outlines while in `"keyboard-mode"`
62
- * - do not display `:hover` effects while in `"touch-mode"`
61
+ * - only display `:focus` outlines while in `"rmd-keyboard-mode"`
62
+ * - do not display `:hover` effects while in `"rmd-touch-mode"`
63
63
  *
64
64
  * @example Mount at the root of your app
65
65
  * ```tsx
@@ -136,8 +136,12 @@ export function UserInteractionModeProvider(
136
136
  * and I have no experience using them.
137
137
  */
138
138
  useEffect(() => {
139
- const enableMouseMode = (): void => setMode("mouse");
140
- const enableKeyboardMode = (): void => setMode("keyboard");
139
+ const enableMouseMode = (): void => {
140
+ setMode("mouse");
141
+ };
142
+ const enableKeyboardMode = (): void => {
143
+ setMode("keyboard");
144
+ };
141
145
 
142
146
  const handleTouchStart = (): void => {
143
147
  lastTouchTime.current = Date.now();
@@ -160,7 +164,7 @@ export function UserInteractionModeProvider(
160
164
  isTouchContextMenu.current = true;
161
165
  };
162
166
 
163
- const className = `${mode}-mode`;
167
+ const className = `rmd-${mode}-mode`;
164
168
  document.body.classList.add(className);
165
169
  window.addEventListener("touchstart", handleTouchStart, true);
166
170
  if (mode === "mouse") {
@@ -19,6 +19,25 @@ declare module "react" {
19
19
  }
20
20
  }
21
21
 
22
+ /**
23
+ * @since 6.0.0
24
+ */
25
+ export interface ComponentWithRippleProps {
26
+ /**
27
+ * Set this to `true` to disable the ripple behavior for this single component
28
+ * only. If all components should have the ripple disabled:
29
+ *
30
+ * ```ts
31
+ * INTERACTION_CONFIG.mode = "none";
32
+ * // or
33
+ * INTERACTION_CONFIG.mode = "press";
34
+ * ```
35
+ *
36
+ * @defaultValue `false`
37
+ */
38
+ disableRipple?: boolean;
39
+ }
40
+
22
41
  /**
23
42
  * This is used to provide feedback to the user that they are interacting with
24
43
  * elements on the page. It is recommended to not set this to `"none"` unless
@@ -156,8 +175,8 @@ export type RippleStateList = readonly RippleState[];
156
175
  * @internal
157
176
  */
158
177
  export interface RippleTransitionCallbacks {
159
- onEntered(ripple: RippleState): void;
160
- onExited(ripple: RippleState): void;
178
+ onEntered: (ripple: RippleState) => void;
179
+ onExited: (ripple: RippleState) => void;
161
180
  }
162
181
 
163
182
  /**
@@ -12,6 +12,7 @@ import { useUserInteractionMode } from "./UserInteractionModeProvider.js";
12
12
  import { INTERACTION_CONFIG } from "./config.js";
13
13
  import type {
14
14
  ElementInteractionHandlers,
15
+ ElementInteractionMode,
15
16
  ElementInteractionState,
16
17
  RippleState,
17
18
  RippleStyle,
@@ -31,6 +32,13 @@ export const PRESSED_CLASS_NAME = "rmd-pressed";
31
32
  /** @since 6.0.0 */
32
33
  export interface ElementInteractionOptions<E extends HTMLElement>
33
34
  extends Partial<ElementInteractionHandlers<E>> {
35
+ /**
36
+ * This can be used to override the {@link INTERACTION_CONFIG.mode}
37
+ *
38
+ * @defaultValue `INTERACTION_CONFIG.mode`
39
+ */
40
+ mode?: ElementInteractionMode;
41
+
34
42
  /**
35
43
  * Boolean if the element is currently disabled which will prevent any of the
36
44
  * element interaction states from happening.
@@ -165,11 +173,10 @@ export function useElementInteraction<E extends HTMLElement>(
165
173
  onTouchEnd = noop,
166
174
  onTouchMove = noop,
167
175
  onDragStart = noop,
176
+ mode = INTERACTION_CONFIG.mode,
168
177
  disabled = false,
169
178
  } = options;
170
179
 
171
- const { mode } = INTERACTION_CONFIG;
172
-
173
180
  const holding = useRef(false);
174
181
  const disableClick = useRef(false);
175
182
  const userMode = useUserInteractionMode();
@@ -1,9 +1,9 @@
1
- import type { KeyboardEvent, MouseEvent, TouchEvent } from "react";
1
+ import { type KeyboardEvent, type MouseEvent, type TouchEvent } from "react";
2
2
  import { findSizingContainer } from "../positioning/utils.js";
3
- import type {
4
- ElementInteractionState,
5
- RippleState,
6
- RippleStyle,
3
+ import {
4
+ type ElementInteractionState,
5
+ type RippleState,
6
+ type RippleStyle,
7
7
  } from "./types.js";
8
8
 
9
9
  /** @internal */
@@ -61,8 +61,8 @@ export function getRippleStyle(
61
61
  ({ pageX, pageY } = event);
62
62
  }
63
63
 
64
- x = pageX - (left + window.pageXOffset);
65
- y = pageY - (top + window.pageYOffset);
64
+ x = pageX - (left + window.scrollX);
65
+ y = pageY - (top + window.scrollY);
66
66
  }
67
67
 
68
68
  const radius = getRadius(x, y, width, height);
@@ -94,9 +94,9 @@ export interface ExpandableLayoutImplementation
94
94
  temporary: boolean;
95
95
  persistent: boolean;
96
96
  expanded: boolean;
97
- expandNavigation(): void;
98
- collapseNavigation(): void;
99
- toggleNavigation(): void;
97
+ expandNavigation: () => void;
98
+ collapseNavigation: () => void;
99
+ toggleNavigation: () => void;
100
100
  appBarProps: ProvidedLayoutAppBarProps;
101
101
  mainProps: ProvidedLayoutMainProps;
102
102
  navToggleProps: ProvidedExpandableLayoutNavToggleProps;
@@ -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;