@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
@@ -0,0 +1,45 @@
1
+ import { cnb } from "cnbuilder";
2
+ import { type BackgroundColor, cssUtils } from "../cssUtils.js";
3
+ import { bem } from "../utils/bem.js";
4
+
5
+ declare module "react" {
6
+ interface CSSProperties {
7
+ "--rmd-badge-size"?: string | number;
8
+ "--rmd-badge-offset"?: string | number;
9
+ "--rmd-badge-offset-top"?: string | number;
10
+ "--rmd-badge-offset-right"?: string | number;
11
+ }
12
+ }
13
+
14
+ const styles = bem("rmd-badge");
15
+
16
+ /**
17
+ * @since 6.0.0 Renamed `"default"` to `"greyscale"` and added all
18
+ * theme colors.
19
+ */
20
+ export type BadgeTheme = BackgroundColor | "greyscale" | "clear";
21
+
22
+ /**
23
+ * @since 6.0.0
24
+ */
25
+ export interface BadgeClassNameOptions {
26
+ className?: string;
27
+
28
+ /** @defaultValue `""greyscale` */
29
+ theme?: BadgeTheme;
30
+ }
31
+
32
+ /**
33
+ * @since 6.0.0
34
+ */
35
+ export function badge(options: BadgeClassNameOptions = {}): string {
36
+ const { className, theme = "greyscale" } = options;
37
+ const greyscale = theme === "greyscale";
38
+ const clear = theme === "clear";
39
+
40
+ return cnb(
41
+ styles({ greyscale }),
42
+ cssUtils({ backgroundColor: !clear && !greyscale ? theme : undefined }),
43
+ className
44
+ );
45
+ }
package/src/box/Box.tsx CHANGED
@@ -107,19 +107,20 @@ export interface BoxProps extends HTMLAttributes<HTMLDivElement>, BoxOptions {}
107
107
  export const Box = forwardRef<HTMLDivElement, BoxProps>(
108
108
  function Box(props, ref) {
109
109
  const {
110
+ style: propStyle,
110
111
  className,
111
112
  children,
112
113
  align,
113
- grid = false,
114
- style: propStyle,
115
- gridName = "",
114
+ grid,
115
+ gridName,
116
116
  justify,
117
- stacked = false,
118
- reversed = false,
119
- gridColumns = "fit",
120
- fullWidth = false,
121
- disableWrap = false,
122
- disablePadding = false,
117
+ stacked,
118
+ reversed,
119
+ gridColumns,
120
+ fullWidth,
121
+ disableGap,
122
+ disableWrap,
123
+ disablePadding,
123
124
  ...remaining
124
125
  } = props;
125
126
 
@@ -146,6 +147,7 @@ export const Box = forwardRef<HTMLDivElement, BoxProps>(
146
147
  align,
147
148
  justify,
148
149
  reversed,
150
+ disableGap,
149
151
  disableWrap,
150
152
  disablePadding,
151
153
  })}
package/src/box/styles.ts CHANGED
@@ -58,6 +58,13 @@ export interface BoxOptions {
58
58
  */
59
59
  fullWidth?: boolean;
60
60
 
61
+ /**
62
+ * Set this to `true` to prevent gap between items.
63
+ *
64
+ * @defaultValue `false`
65
+ */
66
+ disableGap?: boolean;
67
+
61
68
  /**
62
69
  * Set this to `true` to set `flex-wrap: nowrap`.
63
70
  *
@@ -139,19 +146,21 @@ export function box(options: BoxOptions = {}): string {
139
146
  const {
140
147
  className,
141
148
  align = "",
142
- grid = false,
149
+ grid,
143
150
  gridName = "",
144
151
  gridColumns = "fit",
145
152
  justify = "",
146
- stacked = false,
153
+ stacked,
147
154
  reversed,
148
- fullWidth = false,
149
- disableWrap = false,
150
- disablePadding = false,
155
+ fullWidth,
156
+ disableGap,
157
+ disableWrap,
158
+ disablePadding,
151
159
  } = options;
152
160
 
153
161
  return cnb(
154
162
  styles({
163
+ gap: !disableGap,
155
164
  wrap: !disableWrap,
156
165
  padded: !disablePadding,
157
166
  column: stacked && !reversed,
@@ -47,7 +47,7 @@ export interface AsyncButtonProps extends ButtonProps {
47
47
  *
48
48
  * @defaultValue `() => {}`
49
49
  */
50
- onClick?(event: MouseEvent<HTMLButtonElement>): Promise<void> | void;
50
+ onClick?: (event: MouseEvent<HTMLButtonElement>) => Promise<void> | void;
51
51
 
52
52
  /**
53
53
  * Set this to `true` to manually display a loading spinner.
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
  import { forwardRef, type ButtonHTMLAttributes } 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 { type PropsWithRef } from "../types.js";
@@ -12,7 +13,8 @@ import { button, type ButtonClassNameThemeOptions } from "./buttonStyles.js";
12
13
 
13
14
  export interface ButtonProps
14
15
  extends ButtonHTMLAttributes<HTMLButtonElement>,
15
- ButtonClassNameThemeOptions {
16
+ ButtonClassNameThemeOptions,
17
+ ComponentWithRippleProps {
16
18
  /** @defaultValue `"button"` */
17
19
  type?: "button" | "reset" | "submit";
18
20
 
@@ -137,12 +139,14 @@ export const Button = forwardRef<HTMLButtonElement, ButtonProps>(
137
139
  onTouchStart,
138
140
  onTouchEnd,
139
141
  onTouchMove,
142
+ disableRipple,
140
143
  ...remaining
141
144
  } = props;
142
145
  const isThemeDisabled = theme === "disabled";
143
146
  const ariaDisabled = props["aria-disabled"];
144
147
  const { pressed, pressedClassName, ripples, handlers } =
145
148
  useElementInteraction({
149
+ mode: disableRipple ? "press" : undefined,
146
150
  onBlur,
147
151
  onClick,
148
152
  onKeyDown,
package/src/card/Card.tsx CHANGED
@@ -1,4 +1,10 @@
1
1
  import { forwardRef, type HTMLAttributes } from "react";
2
+ import { Box } from "../box/Box.js";
3
+ import {
4
+ type BoxAlignItems,
5
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
6
+ type BoxOptions,
7
+ } from "../box/styles.js";
2
8
  import { card, type CardClassNameOptions } from "./styles.js";
3
9
 
4
10
  declare module "react" {
@@ -15,7 +21,23 @@ declare module "react" {
15
21
  */
16
22
  export interface CardProps
17
23
  extends HTMLAttributes<HTMLDivElement>,
18
- CardClassNameOptions {}
24
+ CardClassNameOptions {
25
+ /**
26
+ * @defaultValue `"stretch"`
27
+ */
28
+ align?: BoxAlignItems;
29
+
30
+ /**
31
+ * @defaultValue `"start"`
32
+ */
33
+ justify?: BoxAlignItems;
34
+
35
+ /**
36
+ * @see {@link BoxOptions.fullWidth}
37
+ * @defaultValue `false`
38
+ */
39
+ fullWidth?: boolean;
40
+ }
19
41
 
20
42
  /**
21
43
  * @example Simple Example
@@ -54,12 +76,16 @@ export interface CardProps
54
76
  * ```
55
77
  *
56
78
  * @since 6.0.0 Removed the deprecated `raiseable` prop
79
+ * @since 6.0.0 Uses the `Box` component and displays as `flex` instead of
80
+ * `block`/`inline-block`.
57
81
  */
58
82
  export const Card = forwardRef<HTMLDivElement, CardProps>(
59
83
  function Card(props, ref) {
60
84
  const {
61
85
  children,
62
86
  className,
87
+ align = "stretch",
88
+ justify = "stretch",
63
89
  bordered,
64
90
  raisable,
65
91
  fullWidth,
@@ -68,19 +94,24 @@ export const Card = forwardRef<HTMLDivElement, CardProps>(
68
94
  } = props;
69
95
 
70
96
  return (
71
- <div
97
+ <Box
72
98
  {...remaining}
99
+ align={align}
100
+ justify={justify}
101
+ stacked
102
+ fullWidth={fullWidth}
103
+ disableGap
104
+ disablePadding
73
105
  ref={ref}
74
106
  className={card({
75
107
  className,
76
108
  bordered,
77
109
  raisable,
78
- fullWidth,
79
110
  interactable,
80
111
  })}
81
112
  >
82
113
  {children}
83
- </div>
114
+ </Box>
84
115
  );
85
116
  }
86
117
  );
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
  import { cnb } from "cnbuilder";
3
3
  import { forwardRef, type MouseEventHandler } from "react";
4
+ import { type ComponentWithRippleProps } from "../interaction/types.js";
4
5
  import { useElementInteraction } from "../interaction/useElementInteraction.js";
5
6
  import { useHigherContrastChildren } from "../interaction/useHigherContrastChildren.js";
6
7
  import { Card, type CardProps } from "./Card.js";
@@ -12,7 +13,9 @@ const noop = (): void => {
12
13
  /**
13
14
  * @since 6.0.0
14
15
  */
15
- export interface ClickableCardProps extends CardProps {
16
+ export interface ClickableCardProps
17
+ extends CardProps,
18
+ ComponentWithRippleProps {
16
19
  onClick: MouseEventHandler<HTMLDivElement>;
17
20
 
18
21
  /**
@@ -59,9 +62,13 @@ export const ClickableCard = forwardRef<HTMLDivElement, ClickableCardProps>(
59
62
  onKeyDown = noop,
60
63
  className,
61
64
  children: propChildren,
65
+ disableRipple,
62
66
  ...remaining
63
67
  } = props;
64
- const { handlers, ripples } = useElementInteraction(remaining);
68
+ const { handlers, ripples } = useElementInteraction({
69
+ ...remaining,
70
+ mode: disableRipple ? "none" : undefined,
71
+ });
65
72
  const children = useHigherContrastChildren(propChildren);
66
73
 
67
74
  return (
@@ -24,14 +24,6 @@ export interface CardClassNameOptions {
24
24
  */
25
25
  raisable?: boolean;
26
26
 
27
- /**
28
- * Update the card to have `display: block` and `width: 100%` instead of
29
- * `display: inline-block`.
30
- *
31
- * @defaultValue `false`
32
- */
33
- fullWidth?: boolean;
34
-
35
27
  /**
36
28
  * Set this to `true` if the card should gain the pointer cursor while
37
29
  * hovering and other interaction styles and not using the `ClickableCard`
@@ -46,7 +38,7 @@ export interface CardClassNameOptions {
46
38
  * @since 6.0.0
47
39
  */
48
40
  export function card(options: CardClassNameOptions = {}): string {
49
- const { className, bordered, raisable, fullWidth, interactable } = options;
41
+ const { className, bordered, raisable, interactable } = options;
50
42
 
51
43
  return cnb(
52
44
  cardStyles({
@@ -54,7 +46,6 @@ export function card(options: CardClassNameOptions = {}): string {
54
46
  shadowed: !bordered,
55
47
  raisable: !bordered && raisable,
56
48
  interactable,
57
- "full-width": fullWidth,
58
49
  }),
59
50
  className
60
51
  );
package/src/chip/Chip.tsx CHANGED
@@ -9,6 +9,7 @@ import {
9
9
  } from "react";
10
10
  import { type BackgroundColor } from "../cssUtils.js";
11
11
  import { getIcon } from "../icon/iconConfig.js";
12
+ import { type ComponentWithRippleProps } from "../interaction/types.js";
12
13
  import { useElementInteraction } from "../interaction/useElementInteraction.js";
13
14
  import { useHigherContrastChildren } from "../interaction/useHigherContrastChildren.js";
14
15
  import { useMaxWidthTransition } from "../transition/useMaxWidthTransition.js";
@@ -31,7 +32,9 @@ declare module "react" {
31
32
  * @since 6.0.0 Renamed the `noninteractive` prop to
32
33
  * `noninteractable`.
33
34
  */
34
- export interface ChipProps extends ButtonHTMLAttributes<HTMLButtonElement> {
35
+ export interface ChipProps
36
+ extends ButtonHTMLAttributes<HTMLButtonElement>,
37
+ ComponentWithRippleProps {
35
38
  /**
36
39
  * @defaultValue `"solid"`
37
40
  */
@@ -216,6 +219,7 @@ export const Chip = forwardRef<HTMLButtonElement, ChipProps>(
216
219
  selectedIconAfter = false,
217
220
  backgroundColor,
218
221
  noninteractive = false,
222
+ disableRipple,
219
223
  disableIconTransition = false,
220
224
  children: propChildren,
221
225
  onClick,
@@ -286,6 +290,7 @@ export const Chip = forwardRef<HTMLButtonElement, ChipProps>(
286
290
 
287
291
  const { pressed, pressedClassName, ripples, handlers } =
288
292
  useElementInteraction({
293
+ mode: disableRipple ? "none" : undefined,
289
294
  onClick,
290
295
  onKeyDown,
291
296
  onKeyUp,
@@ -13,11 +13,12 @@ const styles = bem("rmd-chip");
13
13
  *
14
14
  * ```scss
15
15
  * &:has(.rmd-icon:first-child, .rmd-avatar:first-child) {
16
- * @include core.auto-rtl(
17
- * padding-left,
18
- * $addon-left-padding,
19
- * $horizontal-padding
20
- * );
16
+ * padding-left: $addon-left-padding;
17
+ *
18
+ * @include utils.rtl {
19
+ * padding-left: $horizontal-padding;
20
+ * padding-right; $addon-left-padding;
21
+ * }
21
22
  * }
22
23
  *
23
24
  * $index: if(
@@ -26,11 +27,12 @@ const styles = bem("rmd-chip");
26
27
  * 2 // last child is always the `.rmd-ripple-container`
27
28
  * );
28
29
  * &:has(.rmd-icon:nth-last-child(#{$index})) {
29
- * @include core.auto-rtl(
30
- * padding-right,
31
- * $addon-right-padding,
32
- * $horizontal-padding
33
- * );
30
+ * padding-right: $addon-left-padding;
31
+ *
32
+ * @include utils.rtl {
33
+ * padding-left; $addon-left-padding;
34
+ * padding-right: $horizontal-padding;
35
+ * }
34
36
  * }
35
37
  * ```
36
38
  */
@@ -13,12 +13,12 @@ export interface DelegatedEventHandler {
13
13
  /**
14
14
  * Adds the provided callback to the throttled event listener.
15
15
  */
16
- add(callback: EventListener): void;
16
+ add: (callback: EventListener) => void;
17
17
 
18
18
  /**
19
19
  * Attempts to remove the provided callback from the throttled event listener.
20
20
  */
21
- remove(callback: EventListener): void;
21
+ remove: (callback: EventListener) => void;
22
22
  }
23
23
 
24
24
  /** @internal */
@@ -43,12 +43,12 @@ const delegatedEvents: DelegableEvent[] = [];
43
43
  * functions once you have created this event handler. Otherwise there'd be ts
44
44
  * errors trying to do `MouseEvent` or `KeyboardEvent` in your listeners.
45
45
  */
46
- function createEventHandler<K extends keyof WindowEventMap>(
46
+ function createEventHandler(
47
47
  throttle: boolean,
48
48
  callbacks: readonly EventListener[]
49
- ): (event: WindowEventMap[K]) => void {
49
+ ): (event: WindowEventMap[keyof WindowEventMap]) => void {
50
50
  let running = false;
51
- const runCallbacks = (event: WindowEventMap[K]) => () => {
51
+ const runCallbacks = (event: WindowEventMap[keyof WindowEventMap]) => () => {
52
52
  for (let i = 0; i < callbacks.length; i += 1) {
53
53
  callbacks[i](event);
54
54
  }
@@ -1,5 +1,4 @@
1
1
  "use client";
2
- import { cnb } from "cnbuilder";
3
2
  import { forwardRef, useState, type HTMLAttributes } from "react";
4
3
  import { useSsr } from "../SsrProvider.js";
5
4
  import {
@@ -10,52 +9,24 @@ import { Overlay } from "../overlay/Overlay.js";
10
9
  import { Portal } from "../portal/Portal.js";
11
10
  import { useScrollLock } from "../scroll/useScrollLock.js";
12
11
  import {
13
- type CSSTransitionClassNames,
14
12
  type CSSTransitionComponentProps,
15
13
  type TransitionActions,
16
- type TransitionTimeout,
17
14
  } from "../transition/types.js";
18
15
  import { useCSSTransition } from "../transition/useCSSTransition.js";
19
16
  import { type LabelRequiredForA11y } from "../types.js";
20
17
  import { useEnsuredId } from "../useEnsuredId.js";
21
- import { DISPLAY_NONE_CLASS } from "../utils/isElementVisible.js";
22
- import { DialogContainer } from "./DialogContainer.js";
23
18
  import {
24
19
  NestedDialogProvider,
25
20
  useNestedDialogContext,
26
21
  } from "./NestedDialogProvider.js";
27
- import { dialog, type DialogType } from "./styles.js";
28
-
29
- declare module "react" {
30
- interface CSSProperties {
31
- "--rmd-dialog-background-color"?: string;
32
- "--rmd-dialog-color"?: string;
33
- "--rmd-dialog-min-width"?: string | number;
34
- "--rmd-dialog-horizontal-margin"?: string | number;
35
- "--rmd-dialog-vertical-margin"?: string | number;
36
- "--rmd-dialog-z-index"?: string | number;
37
- "--rmd-dialog-header-padding"?: string | number;
38
- "--rmd-dialog-header-padding-bottom"?: string | number;
39
- "--rmd-dialog-content-padding"?: string | number;
40
- "--rmd-dialog-footer-padding"?: string | number;
41
- }
42
- }
43
-
44
- /** @since 4.0.0 */
45
- export const DEFAULT_DIALOG_CLASSNAMES: Readonly<CSSTransitionClassNames> = {
46
- appear: "rmd-dialog--enter",
47
- appearActive: "rmd-dialog--enter-active",
48
- enter: "rmd-dialog--enter",
49
- enterActive: "rmd-dialog--enter-active",
50
- exit: "rmd-dialog--exit",
51
- exitActive: "rmd-dialog--exit-active",
52
- };
53
-
54
- /** @since 4.0.0 */
55
- export const DEFAULT_DIALOG_TIMEOUT: Readonly<TransitionTimeout> = {
56
- enter: 200,
57
- exit: 150,
58
- };
22
+ import {
23
+ DEFAULT_DIALOG_CLASSNAMES,
24
+ DEFAULT_DIALOG_TIMEOUT,
25
+ dialog,
26
+ dialogContainer,
27
+ type DialogWidth,
28
+ type DialogType,
29
+ } from "./styles.js";
59
30
 
60
31
  const noop = (): void => {
61
32
  // do nothing
@@ -78,6 +49,12 @@ export interface BaseDialogProps
78
49
  */
79
50
  type?: DialogType;
80
51
 
52
+ /**
53
+ * @see {@link DialogWidth}
54
+ * @defaultValue `"auto"`
55
+ */
56
+ width?: DialogWidth;
57
+
81
58
  /**
82
59
  * @defaultValue `"dialog"`
83
60
  */
@@ -95,7 +72,7 @@ export interface BaseDialogProps
95
72
  * the user presses the `"Escape"` key.
96
73
  * - The overlay element is clicked
97
74
  */
98
- onRequestClose(): void;
75
+ onRequestClose: () => void;
99
76
 
100
77
  /** @defaultValue `false` */
101
78
  disableTransition?: boolean;
@@ -266,6 +243,7 @@ export const Dialog = forwardRef<HTMLDivElement, DialogProps>(
266
243
  modal = false,
267
244
  role = modal ? "alertdialog" : "dialog",
268
245
  type = "centered",
246
+ width,
269
247
  tabIndex = -1,
270
248
  visible,
271
249
  onRequestClose,
@@ -275,15 +253,15 @@ export const Dialog = forwardRef<HTMLDivElement, DialogProps>(
275
253
  timeout = DEFAULT_DIALOG_TIMEOUT,
276
254
  classNames = DEFAULT_DIALOG_CLASSNAMES,
277
255
  disableTransition = false,
278
- appear,
279
- enter,
280
- exit,
256
+ appear = false,
257
+ enter = true,
258
+ exit = true,
281
259
  onEnter = noop,
282
260
  onEntering = noop,
283
- onEntered,
261
+ onEntered = noop,
284
262
  onExit = noop,
285
263
  onExiting = noop,
286
- onExited,
264
+ onExited = noop,
287
265
  exitedHidden = true,
288
266
  disableOverlay = false,
289
267
  overlayProps,
@@ -301,13 +279,29 @@ export const Dialog = forwardRef<HTMLDivElement, DialogProps>(
301
279
 
302
280
  const ssr = useSsr();
303
281
  const setChildVisible = useNestedDialogContext();
282
+
283
+ // this makes it so that as more non-full page dialogs become visible, the
284
+ // overlay does not become darker as more and more overlays are stacked upon
285
+ // each other. only the top-most overlay will have and active background
286
+ // color.
287
+ const [isChildVisible, setIsChildVisible] = useState(false);
304
288
  const { eventHandlers, transitionOptions } = useFocusContainer({
305
289
  nodeRef: ref,
306
290
  activate: visible,
307
- onEntered,
291
+ onEntered(appear) {
292
+ onEntered(appear);
293
+ // this needs to be called onEnter and onEntered just in case the
294
+ // transition is disabled
295
+ setChildVisible(type !== "full-page");
296
+ },
308
297
  onEntering,
309
298
  onExiting,
310
- onExited,
299
+ onExited() {
300
+ onExited();
301
+ // this needs to be called onExit and onExited just in case the
302
+ // transition is disabled
303
+ setChildVisible(false);
304
+ },
311
305
  disableTransition,
312
306
  onKeyDown(event) {
313
307
  onKeyDown(event);
@@ -332,8 +326,10 @@ export const Dialog = forwardRef<HTMLDivElement, DialogProps>(
332
326
  classNames,
333
327
  className: dialog({
334
328
  type,
329
+ width,
335
330
  fixed,
336
331
  outline: !disableFocusOutline,
332
+ disableBoxShadow: isChildVisible,
337
333
  className,
338
334
  }),
339
335
  appear: appear && !disableTransition && !ssr,
@@ -354,12 +350,6 @@ export const Dialog = forwardRef<HTMLDivElement, DialogProps>(
354
350
  });
355
351
  useScrollLock(!disableScrollLock && visible);
356
352
 
357
- // this makes it so that as more non-full page dialogs become visible, the
358
- // overlay does not become darker as more and more overlays are stacked upon
359
- // each other. only the top-most overlay will have and active background
360
- // color.
361
- const [isChildVisible, setIsChildVisible] = useState(false);
362
-
363
353
  return (
364
354
  <NestedDialogProvider value={setIsChildVisible}>
365
355
  {!disableOverlay && (
@@ -376,16 +366,13 @@ export const Dialog = forwardRef<HTMLDivElement, DialogProps>(
376
366
  )}
377
367
  <Portal disabled={disablePortal}>
378
368
  {rendered && (
379
- <DialogContainer
369
+ <div
380
370
  {...containerProps}
381
- className={cnb(
382
- containerProps?.className,
383
- !temporary &&
384
- exitedHidden &&
385
- stage === "exited" &&
386
- DISPLAY_NONE_CLASS
387
- )}
388
- enabled={type === "centered"}
371
+ className={dialogContainer({
372
+ className: containerProps?.className,
373
+ centered: type === "centered",
374
+ displayNone: !temporary && exitedHidden && stage === "exited",
375
+ })}
389
376
  >
390
377
  <div
391
378
  aria-modal={modal || undefined}
@@ -398,7 +385,7 @@ export const Dialog = forwardRef<HTMLDivElement, DialogProps>(
398
385
  >
399
386
  {children}
400
387
  </div>
401
- </DialogContainer>
388
+ </div>
402
389
  )}
403
390
  </Portal>
404
391
  </NestedDialogProvider>
@@ -6,7 +6,6 @@ import {
6
6
  type PositionAnchor,
7
7
  } from "../positioning/types.js";
8
8
  import { useFixedPositioning } from "../positioning/useFixedPositioning.js";
9
- import { type CSSTransitionClassNamesObject } from "../transition/types.js";
10
9
  import { SCALE_CLASSNAMES } from "../transition/useScaleTransition.js";
11
10
  import { type LabelRequiredForA11y } from "../types.js";
12
11
  import { Dialog, type BaseDialogProps } from "./Dialog.js";
@@ -15,7 +14,7 @@ export interface BaseFixedDialogProps extends Omit<BaseDialogProps, "type"> {
15
14
  anchor?: PositionAnchor;
16
15
  fixedTo: RefObject<HTMLElement>;
17
16
  options?: CalculateFixedPositionOptions;
18
- getFixedPositionOptions?(): CalculateFixedPositionOptions;
17
+ getFixedPositionOptions?: () => CalculateFixedPositionOptions;
19
18
 
20
19
  /**
21
20
  * @defaultValue `true`
@@ -33,15 +32,6 @@ export type FixedDialogProps = LabelRequiredForA11y<BaseFixedDialogProps>;
33
32
  const noop = (): void => {
34
33
  // do nothing
35
34
  };
36
- export const DEFAULT_FIXED_DIALOG_CLASSNAMES: Readonly<CSSTransitionClassNamesObject> =
37
- {
38
- appear: "rmd-dialog--fixed-enter",
39
- appearActive: "rmd-dialog--fixed-enter-active",
40
- enter: "rmd-dialog--fixed-enter",
41
- enterActive: "rmd-dialog--fixed-enter-active",
42
- exit: "rmd-dialog--fixed-exit",
43
- exitActive: "rmd-dialog--fixed-exit-active",
44
- };
45
35
 
46
36
  /**
47
37
  * **Client Component**