@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
@@ -1,10 +1,71 @@
1
1
  import { cnb } from "cnbuilder";
2
+ import {
3
+ type CSSTransitionClassNames,
4
+ type TransitionTimeout,
5
+ } from "../transition/types.js";
2
6
  import { bem } from "../utils/bem.js";
7
+ import { DISPLAY_NONE_CLASS } from "../utils/isElementVisible.js";
3
8
 
4
9
  const styles = bem("rmd-dialog");
10
+ const containerStyles = bem("rmd-dialog-container");
11
+
12
+ declare module "react" {
13
+ interface CSSProperties {
14
+ "--rmd-dialog-background-color"?: string;
15
+ "--rmd-dialog-color"?: string;
16
+ "--rmd-dialog-min-width"?: string | number;
17
+ "--rmd-dialog-horizontal-margin"?: string | number;
18
+ "--rmd-dialog-vertical-margin"?: string | number;
19
+ "--rmd-dialog-z-index"?: string | number;
20
+ "--rmd-dialog-header-padding"?: string | number;
21
+ "--rmd-dialog-header-padding-bottom"?: string | number;
22
+ "--rmd-dialog-content-padding"?: string | number;
23
+ "--rmd-dialog-footer-padding"?: string | number;
24
+ }
25
+ }
5
26
 
6
27
  export type DialogType = "full-page" | "centered" | "custom";
7
28
 
29
+ /**
30
+ * This can be used to enforce a specific width for dialogs instead of relying
31
+ * on the size of the content to determine the width. The width will also ensure
32
+ * that it does not overflow based on the viewport width and margins applied.
33
+ *
34
+ * For example: if the `width="extra-large"` and the total viewport size is
35
+ * `600px`, the dialog width would be `420px` since there is a default `80px`
36
+ * margin to the left and right of the dialog. If the user expands the browser,
37
+ * the dialog width will continue to grow until it reaches the `extra-large`
38
+ * width and stop growing from that point.
39
+ *
40
+ * @since 6.0.0
41
+ */
42
+ export type DialogWidth = "auto" | "small" | "medium" | "large" | "extra-large";
43
+
44
+ /**
45
+ * @since 6.0.0
46
+ */
47
+ export interface DialogContainerClassNameOptions {
48
+ className?: string;
49
+
50
+ centered?: boolean;
51
+ displayNone?: boolean;
52
+ }
53
+
54
+ /**
55
+ * @since 6.0.0
56
+ */
57
+ export function dialogContainer(
58
+ options: DialogContainerClassNameOptions = {}
59
+ ): string {
60
+ const { className, centered, displayNone } = options;
61
+
62
+ return cnb(
63
+ containerStyles({ centered }),
64
+ displayNone && DISPLAY_NONE_CLASS,
65
+ className
66
+ );
67
+ }
68
+
8
69
  /** @since 6.0.0 */
9
70
  export interface DialogClassNameOptions {
10
71
  className?: string;
@@ -14,6 +75,11 @@ export interface DialogClassNameOptions {
14
75
  */
15
76
  type?: DialogType;
16
77
 
78
+ /**
79
+ * @defaultValue `"auto"`
80
+ */
81
+ width?: DialogWidth;
82
+
17
83
  /**
18
84
  * @defaultValue `false`
19
85
  */
@@ -23,14 +89,24 @@ export interface DialogClassNameOptions {
23
89
  * @defaultValue `type === "full-page"`
24
90
  */
25
91
  outline?: boolean;
92
+
93
+ /**
94
+ * This is mostly used for handling nested dialogs and removes any box shadow
95
+ * on a dialog that has a child visible.
96
+ *
97
+ * @defaultValue `false`
98
+ */
99
+ disableBoxShadow?: boolean;
26
100
  }
27
101
 
28
102
  /** @since 6.0.0 */
29
103
  export function dialog(options: DialogClassNameOptions = {}): string {
30
104
  const {
31
105
  type = "centered",
106
+ width,
32
107
  fixed = false,
33
108
  outline = type === "full-page",
109
+ disableBoxShadow,
34
110
  className,
35
111
  } = options;
36
112
 
@@ -40,6 +116,11 @@ export function dialog(options: DialogClassNameOptions = {}): string {
40
116
  outline,
41
117
  centered: type === "centered",
42
118
  "full-page": type === "full-page",
119
+ "no-box-shadow": type === "centered" && disableBoxShadow,
120
+ "s-width": width === "small",
121
+ "m-width": width === "medium",
122
+ "l-width": width === "large",
123
+ "xl-width": width === "extra-large",
43
124
  }),
44
125
  className
45
126
  );
@@ -116,3 +197,19 @@ export function dialogFooter(
116
197
  className
117
198
  );
118
199
  }
200
+
201
+ /** @since 4.0.0 */
202
+ export const DEFAULT_DIALOG_CLASSNAMES: Readonly<CSSTransitionClassNames> = {
203
+ appear: "rmd-dialog--enter",
204
+ appearActive: "rmd-dialog--enter-active",
205
+ enter: "rmd-dialog--enter",
206
+ enterActive: "rmd-dialog--enter-active",
207
+ exit: "rmd-dialog--exit",
208
+ exitActive: "rmd-dialog--exit-active",
209
+ };
210
+
211
+ /** @since 4.0.0 */
212
+ export const DEFAULT_DIALOG_TIMEOUT: Readonly<TransitionTimeout> = {
213
+ enter: 200,
214
+ exit: 150,
215
+ };
@@ -1,18 +1,6 @@
1
1
  import { forwardRef, type ElementType, type HTMLAttributes } from "react";
2
2
  import { divider, type DividerClassNameOptions } from "./styles.js";
3
3
 
4
- declare module "react" {
5
- interface CSSProperties {
6
- "--rmd-divider-size"?: string | number;
7
- "--rmd-divider-vertical-size"?: string | number;
8
- "--rmd-divider-color"?: string;
9
- "--rmd-divider-spacing"?: string | number;
10
- "--rmd-divider-vertical-spacing"?: string | number;
11
- "--rmd-divider-inset"?: string | number;
12
- "--rmd-divider-max-size"?: string | number;
13
- }
14
- }
15
-
16
4
  export type DividerElement = HTMLHRElement | HTMLDivElement;
17
5
 
18
6
  /**
@@ -3,6 +3,18 @@ import { bem } from "../utils/bem.js";
3
3
 
4
4
  const styles = bem("rmd-divider");
5
5
 
6
+ declare module "react" {
7
+ interface CSSProperties {
8
+ "--rmd-divider-size"?: string | number;
9
+ "--rmd-divider-vertical-size"?: string | number;
10
+ "--rmd-divider-color"?: string;
11
+ "--rmd-divider-spacing"?: string | number;
12
+ "--rmd-divider-vertical-spacing"?: string | number;
13
+ "--rmd-divider-inset"?: string | number;
14
+ "--rmd-divider-max-size"?: string | number;
15
+ }
16
+ }
17
+
6
18
  /** @since 6.0.0 */
7
19
  export interface DividerClassNameOptions {
8
20
  className?: string;
@@ -1,13 +1,20 @@
1
1
  "use client";
2
2
  import { cnb } from "cnbuilder";
3
- import type { HTMLAttributes, Ref, RefCallback } from "react";
4
- import { useCallback, useEffect, useRef, useState } from "react";
3
+ import {
4
+ useCallback,
5
+ useEffect,
6
+ useRef,
7
+ useState,
8
+ type HTMLAttributes,
9
+ type Ref,
10
+ type RefCallback,
11
+ } from "react";
5
12
  import { useUserInteractionMode } from "../interaction/UserInteractionModeProvider.js";
6
13
  import { useScrollLock } from "../scroll/useScrollLock.js";
7
- import type {
8
- NonNullRef,
9
- UseStateInitializer,
10
- UseStateSetter,
14
+ import {
15
+ type NonNullRef,
16
+ type UseStateInitializer,
17
+ type UseStateSetter,
11
18
  } from "../types.js";
12
19
  import { useDir } from "../typography/WritingDirectionProvider.js";
13
20
  import { useEnsuredRef } from "../useEnsuredRef.js";
@@ -275,22 +282,22 @@ export interface DraggableImplementation<E extends HTMLElement = HTMLElement>
275
282
  /**
276
283
  * Set the {@link value} to {@link DraggableOptions.min}.
277
284
  */
278
- minimum(): void;
285
+ minimum: () => void;
279
286
 
280
287
  /**
281
288
  * Set the {@link value} to {@link DraggableOptions.max}.
282
289
  */
283
- maximum(): void;
290
+ maximum: () => void;
284
291
 
285
292
  /**
286
293
  * Increment the {@link value} by {@link DraggableOptions.step}.
287
294
  */
288
- increment(): void;
295
+ increment: () => void;
289
296
 
290
297
  /**
291
298
  * Decrement the {@link value} by {@link DraggableOptions.step}.
292
299
  */
293
- decrement(): void;
300
+ decrement: () => void;
294
301
 
295
302
  /**
296
303
  * The current percentage the `value` is within the range.
@@ -126,9 +126,9 @@ interface UpdateDragPositionOptions
126
126
  nodeRef: RefObject<HTMLElement>;
127
127
  focus?: boolean;
128
128
  isDragStart: boolean;
129
- setValue(value: number): void;
130
- setDragging(dragging: boolean): void;
131
- setDragPercentage(value: number): void;
129
+ setValue: (value: number) => void;
130
+ setDragging: (dragging: boolean) => void;
131
+ setDragPercentage: (value: number) => void;
132
132
  withinOffsetParent: boolean;
133
133
  }
134
134
 
@@ -29,7 +29,7 @@ export interface ExpansionPanelProps extends CardProps {
29
29
  * A function that should toggle the {@link expanded} state. This should
30
30
  * generally be provided by the `useExpansionPanels` hook.
31
31
  */
32
- onExpandClick(): void;
32
+ onExpandClick: () => void;
33
33
 
34
34
  /**
35
35
  * Set this to `true` to prevent the panel from toggling the {@link expanded}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { useState } from "react";
3
2
  import type { UseStateInitializer, UseStateSetter } from "../types.js";
4
3
  import { useEnsuredId } from "../useEnsuredId.js";
4
+ import { useReadonlySet } from "../useReadonlySet.js";
5
5
  import type { ExpansionPanelProps } from "./ExpansionPanel.js";
6
6
 
7
7
  /** @since 6.0.0 */
@@ -210,21 +210,26 @@ export function useExpansionPanels(
210
210
 
211
211
  const baseId = useEnsuredId(propBaseId, "expansion-panel");
212
212
  const createId = (index: number): string => `${baseId}-${index + 1}`;
213
- const [expandedIds, setExpandedIds] = useState<ReadonlySet<string>>(() => {
214
- if (typeof defaultExpandedIds === "undefined") {
215
- const initialList: string[] = [];
216
- if (typeof defaultExpandedIndex === "number" || preventAllCollapsed) {
217
- initialList.push(createId(defaultExpandedIndex ?? 0));
218
- }
213
+ const {
214
+ value: expandedIds,
215
+ setValue: setExpandedIds,
216
+ toggleValue,
217
+ } = useReadonlySet({
218
+ toggleType: multiple ? "multiple" : "single",
219
+ defaultValue: () => {
220
+ if (typeof defaultExpandedIds === "undefined") {
221
+ const initialList: string[] = [];
222
+ if (typeof defaultExpandedIndex === "number" || preventAllCollapsed) {
223
+ initialList.push(createId(defaultExpandedIndex ?? 0));
224
+ }
219
225
 
220
- return new Set(initialList);
221
- }
226
+ return new Set(initialList);
227
+ }
222
228
 
223
- const ids =
224
- typeof defaultExpandedIds === "function"
229
+ return typeof defaultExpandedIds === "function"
225
230
  ? defaultExpandedIds()
226
231
  : defaultExpandedIds;
227
- return new Set(ids);
232
+ },
228
233
  });
229
234
 
230
235
  return {
@@ -252,21 +257,7 @@ export function useExpansionPanels(
252
257
  return;
253
258
  }
254
259
 
255
- setExpandedIds((prevIds) => {
256
- const expanded = prevIds.has(panelId);
257
- if (!multiple) {
258
- return new Set(expanded ? [] : [panelId]);
259
- }
260
-
261
- const nextIds = new Set(prevIds);
262
- if (expanded) {
263
- nextIds.delete(panelId);
264
- } else {
265
- nextIds.add(panelId);
266
- }
267
-
268
- return nextIds;
269
- });
260
+ toggleValue(panelId);
270
261
  },
271
262
  disableTransition,
272
263
  disableContentPadding,
@@ -1,29 +1,18 @@
1
1
  "use client";
2
- import { cnb } from "cnbuilder";
3
2
  import {
4
3
  forwardRef,
5
4
  type InputHTMLAttributes,
6
5
  type LabelHTMLAttributes,
7
6
  type ReactNode,
8
7
  } from "react";
9
- import {
10
- button,
11
- type ButtonClassNameOptions,
12
- type ButtonClassNameThemeOptions,
13
- } from "../button/buttonStyles.js";
8
+ import { type ButtonClassNameThemeOptions } from "../button/buttonStyles.js";
14
9
  import { getIcon } from "../icon/iconConfig.js";
10
+ import { type ComponentWithRippleProps } from "../interaction/types.js";
15
11
  import { useElementInteraction } from "../interaction/useElementInteraction.js";
16
12
  import { type PropsWithRef } from "../types.js";
17
13
  import { SrOnly } from "../typography/SrOnly.js";
18
14
  import { useEnsuredId } from "../useEnsuredId.js";
19
-
20
- /** @since 6.0.0 */
21
- export type FileInputClassNameOptions = ButtonClassNameOptions;
22
-
23
- /** @since 6.0.0 */
24
- export function fileInput(options: FileInputClassNameOptions = {}): string {
25
- return cnb("rmd-file-input", button(options));
26
- }
15
+ import { fileInput } from "./styles.js";
27
16
 
28
17
  /** @since 6.0.0 */
29
18
  export type FileInputHTMLAttributes = Omit<
@@ -37,7 +26,8 @@ export type FileInputHTMLAttributes = Omit<
37
26
  */
38
27
  export interface FileInputProps
39
28
  extends ButtonClassNameThemeOptions,
40
- FileInputHTMLAttributes {
29
+ FileInputHTMLAttributes,
30
+ ComponentWithRippleProps {
41
31
  /**
42
32
  * This is the label text for icon-only file inputs.
43
33
  *
@@ -154,12 +144,14 @@ export const FileInput = forwardRef<HTMLInputElement, FileInputProps>(
154
144
  iconSize,
155
145
  responsive,
156
146
  multiple = false,
147
+ disableRipple,
157
148
  ...remaining
158
149
  } = props;
159
150
  const id = useEnsuredId(propId, "file-input");
160
151
  const { pressed, pressedClassName, ripples, handlers } =
161
152
  useElementInteraction({
162
153
  ...labelProps,
154
+ mode: disableRipple ? "none" : undefined,
163
155
  onClick(event) {
164
156
  labelProps?.onClick?.(event);
165
157
 
@@ -0,0 +1,10 @@
1
+ import { cnb } from "cnbuilder";
2
+ import { type ButtonClassNameOptions, button } from "../button/buttonStyles.js";
3
+
4
+ /** @since 6.0.0 */
5
+ export type FileInputClassNameOptions = ButtonClassNameOptions;
6
+
7
+ /** @since 6.0.0 */
8
+ export function fileInput(options: FileInputClassNameOptions = {}): string {
9
+ return cnb("rmd-file-input", button(options));
10
+ }
@@ -8,20 +8,22 @@ import {
8
8
  type DragEvent,
9
9
  } from "react";
10
10
  import {
11
- FileAccessError,
12
11
  getFileParser as defaultGetFileParser,
13
- isValidFileName as defaultIsValidFileName,
14
- validateFiles as defaultValidateFiles,
15
12
  type CompletedFileUploadStats,
16
13
  type FileReaderResult,
17
14
  type FileUploadHandlers,
18
15
  type FileUploadStats,
16
+ type GetFileParser,
17
+ type ProcessingFileUploadStats,
18
+ } from "./utils.js";
19
+ import {
20
+ FileAccessError,
21
+ isValidFileName as defaultIsValidFileName,
22
+ validateFiles as defaultValidateFiles,
19
23
  type FileValidationError,
20
24
  type FileValidationOptions,
21
25
  type FilesValidator,
22
- type GetFileParser,
23
- type ProcessingFileUploadStats,
24
- } from "./fileUtils.js";
26
+ } from "./validation.js";
25
27
 
26
28
  const noop = (): void => {
27
29
  // do nothing
@@ -120,13 +122,13 @@ export interface FileUploadActions {
120
122
  * Reset everything related to uploads ensuring that all file readers have
121
123
  * been aborted.
122
124
  */
123
- reset(): void;
125
+ reset: () => void;
124
126
 
125
127
  /**
126
- * Removes all the errors that exist in state without cancelling any of the
128
+ * Removes all the errors that exist in state without canceling any of the
127
129
  * uploads already in progress.
128
130
  */
129
- clearErrors(): void;
131
+ clearErrors: () => void;
130
132
 
131
133
  /**
132
134
  * This function is used to cancel pending and uploading files or removing
@@ -135,7 +137,7 @@ export interface FileUploadActions {
135
137
  * @param keyOrKeys - A single or list of {@link BaseFileUploadStats.key} to
136
138
  * remove from state.
137
139
  */
138
- remove(keyOrKeys: string | readonly string[]): void;
140
+ remove: (keyOrKeys: string | readonly string[]) => void;
139
141
  }
140
142
 
141
143
  /**
@@ -201,9 +203,6 @@ const EMPTY_OBJECT = {} as const;
201
203
  * can also be used to upload the files as an `ArrayBuffer` and then uploaded to
202
204
  * a server.
203
205
  *
204
- * Note: If using the `aws-sdk` to upload files directly to S3, **do not use
205
- * this hook** since it uses its own upload process.
206
- *
207
206
  * @typeParam E - An optional HTMLElement type that is used for the
208
207
  * {@link FileUploadHandlers}.
209
208
  * @typeParam CustomError - An optional error type that gets returned from the
@@ -212,21 +211,23 @@ const EMPTY_OBJECT = {} as const;
212
211
  * @returns the {@link FileUploadHookReturnValue}
213
212
  * @since 2.9.0
214
213
  */
215
- export function useFileUpload<E extends HTMLElement, CustomError = never>({
216
- maxFiles = -1,
217
- extensions = EMPTY_LIST,
218
- minFileSize = -1,
219
- maxFileSize = -1,
220
- totalFileSize = -1,
221
- concurrency = -1,
222
- onDrop: propOnDrop = noop,
223
- onChange: propOnChange = noop,
224
- validateFiles = defaultValidateFiles,
225
- getFileParser = defaultGetFileParser,
226
- isValidFileName = defaultIsValidFileName,
227
- }: FileUploadOptions<E, CustomError> = {}): Readonly<
228
- FileUploadHookReturnValue<E, CustomError>
229
- > {
214
+ export function useFileUpload<E extends HTMLElement, CustomError = never>(
215
+ options: FileUploadOptions<E, CustomError> = {}
216
+ ): Readonly<FileUploadHookReturnValue<E, CustomError>> {
217
+ const {
218
+ maxFiles = -1,
219
+ extensions = EMPTY_LIST,
220
+ minFileSize = -1,
221
+ maxFileSize = -1,
222
+ totalFileSize = -1,
223
+ concurrency = -1,
224
+ onDrop: propOnDrop = noop,
225
+ onChange: propOnChange = noop,
226
+ validateFiles = defaultValidateFiles,
227
+ getFileParser = defaultGetFileParser,
228
+ isValidFileName = defaultIsValidFileName,
229
+ } = options;
230
+
230
231
  const [state, dispatch] = useReducer(
231
232
  function reducer(
232
233
  state: FileUploadHookState<CustomError>,
@@ -497,12 +498,7 @@ export function useFileUpload<E extends HTMLElement, CustomError = never>({
497
498
  /* istanbul ignore next */
498
499
  if (
499
500
  process.env.NODE_ENV !== "production" &&
500
- ![
501
- "readAsText",
502
- "readAsDataURL",
503
- "readAsArrayBuffer",
504
- "readAsBinaryString",
505
- ].includes(parser)
501
+ !["readAsText", "readAsDataURL", "readAsArrayBuffer"].includes(parser)
506
502
  ) {
507
503
  throw new Error("Invalid file reader parser");
508
504
  }