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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (665) hide show
  1. package/dist/_box-shadows.scss +76 -0
  2. package/dist/_colors.scss +279 -277
  3. package/dist/_core.scss +107 -16
  4. package/dist/_object-fit.scss +86 -0
  5. package/dist/_utils.scss +246 -72
  6. package/dist/app-bar/AppBar.d.ts +1 -90
  7. package/dist/app-bar/AppBar.js +1 -40
  8. package/dist/app-bar/AppBar.js.map +1 -1
  9. package/dist/app-bar/AppBarTitle.d.ts +1 -27
  10. package/dist/app-bar/AppBarTitle.js +1 -15
  11. package/dist/app-bar/AppBarTitle.js.map +1 -1
  12. package/dist/app-bar/_app-bar.scss +156 -25
  13. package/dist/app-bar/styles.d.ts +117 -0
  14. package/dist/app-bar/styles.js +55 -0
  15. package/dist/app-bar/styles.js.map +1 -0
  16. package/dist/autocomplete/Autocomplete.d.ts +8 -79
  17. package/dist/autocomplete/Autocomplete.js +112 -83
  18. package/dist/autocomplete/Autocomplete.js.map +1 -1
  19. package/dist/autocomplete/AutocompleteChip.d.ts +8 -0
  20. package/dist/autocomplete/AutocompleteChip.js +34 -0
  21. package/dist/autocomplete/AutocompleteChip.js.map +1 -0
  22. package/dist/autocomplete/AutocompleteCircularProgress.d.ts +5 -11
  23. package/dist/autocomplete/AutocompleteCircularProgress.js +4 -0
  24. package/dist/autocomplete/AutocompleteCircularProgress.js.map +1 -1
  25. package/dist/autocomplete/AutocompleteClearButton.d.ts +9 -0
  26. package/dist/autocomplete/AutocompleteClearButton.js +29 -0
  27. package/dist/autocomplete/AutocompleteClearButton.js.map +1 -0
  28. package/dist/autocomplete/AutocompleteDropdownButton.d.ts +4 -26
  29. package/dist/autocomplete/AutocompleteDropdownButton.js +5 -1
  30. package/dist/autocomplete/AutocompleteDropdownButton.js.map +1 -1
  31. package/dist/autocomplete/AutocompleteListboxChildren.d.ts +22 -0
  32. package/dist/autocomplete/AutocompleteListboxChildren.js +37 -0
  33. package/dist/autocomplete/AutocompleteListboxChildren.js.map +1 -0
  34. package/dist/autocomplete/_autocomplete.scss +362 -34
  35. package/dist/autocomplete/autocompleteStyles.d.ts +22 -0
  36. package/dist/autocomplete/autocompleteStyles.js +17 -8
  37. package/dist/autocomplete/autocompleteStyles.js.map +1 -1
  38. package/dist/autocomplete/defaults.d.ts +9 -9
  39. package/dist/autocomplete/defaults.js +13 -13
  40. package/dist/autocomplete/defaults.js.map +1 -1
  41. package/dist/autocomplete/types.d.ts +554 -56
  42. package/dist/autocomplete/types.js.map +1 -1
  43. package/dist/autocomplete/useAutocomplete.d.ts +22 -0
  44. package/dist/autocomplete/useAutocomplete.js +281 -0
  45. package/dist/autocomplete/useAutocomplete.js.map +1 -0
  46. package/dist/autocomplete/utils.d.ts +81 -0
  47. package/dist/autocomplete/utils.js +108 -0
  48. package/dist/autocomplete/utils.js.map +1 -0
  49. package/dist/avatar/_avatar.scss +93 -2
  50. package/dist/badge/Badge.d.ts +1 -20
  51. package/dist/badge/Badge.js +1 -14
  52. package/dist/badge/Badge.js.map +1 -1
  53. package/dist/badge/_badge.scss +90 -3
  54. package/dist/badge/styles.d.ts +26 -0
  55. package/dist/badge/styles.js +18 -0
  56. package/dist/badge/styles.js.map +1 -0
  57. package/dist/box/Box.js +2 -1
  58. package/dist/box/Box.js.map +1 -1
  59. package/dist/box/_box.scss +130 -17
  60. package/dist/box/styles.d.ts +6 -0
  61. package/dist/box/styles.js +2 -1
  62. package/dist/box/styles.js.map +1 -1
  63. package/dist/button/AsyncButton.d.ts +1 -1
  64. package/dist/button/AsyncButton.js.map +1 -1
  65. package/dist/button/Button.d.ts +2 -1
  66. package/dist/button/Button.js +2 -1
  67. package/dist/button/Button.js.map +1 -1
  68. package/dist/button/_button.scss +157 -25
  69. package/dist/card/Card.d.ts +16 -0
  70. package/dist/card/Card.js +11 -3
  71. package/dist/card/Card.js.map +1 -1
  72. package/dist/card/ClickableCard.d.ts +2 -1
  73. package/dist/card/ClickableCard.js +5 -2
  74. package/dist/card/ClickableCard.js.map +1 -1
  75. package/dist/card/_card.scss +90 -19
  76. package/dist/card/styles.d.ts +0 -7
  77. package/dist/card/styles.js +2 -3
  78. package/dist/card/styles.js.map +1 -1
  79. package/dist/chip/Chip.d.ts +2 -1
  80. package/dist/chip/Chip.js +2 -1
  81. package/dist/chip/Chip.js.map +1 -1
  82. package/dist/chip/_chip.scss +45 -22
  83. package/dist/chip/styles.d.ts +12 -10
  84. package/dist/chip/styles.js.map +1 -1
  85. package/dist/cssUtils.js.map +1 -1
  86. package/dist/delegateEvent.d.ts +2 -2
  87. package/dist/delegateEvent.js.map +1 -1
  88. package/dist/dialog/Dialog.d.ts +8 -21
  89. package/dist/dialog/Dialog.js +27 -27
  90. package/dist/dialog/Dialog.js.map +1 -1
  91. package/dist/dialog/FixedDialog.d.ts +1 -3
  92. package/dist/dialog/FixedDialog.js +0 -8
  93. package/dist/dialog/FixedDialog.js.map +1 -1
  94. package/dist/dialog/_dialog.scss +67 -13
  95. package/dist/dialog/styles.d.ts +56 -0
  96. package/dist/dialog/styles.js +29 -2
  97. package/dist/dialog/styles.js.map +1 -1
  98. package/dist/divider/Divider.d.ts +0 -11
  99. package/dist/divider/Divider.js.map +1 -1
  100. package/dist/divider/_divider.scss +7 -1
  101. package/dist/divider/styles.d.ts +11 -0
  102. package/dist/divider/styles.js.map +1 -1
  103. package/dist/draggable/useDraggable.d.ts +6 -6
  104. package/dist/draggable/useDraggable.js.map +1 -1
  105. package/dist/draggable/utils.d.ts +3 -3
  106. package/dist/draggable/utils.js.map +1 -1
  107. package/dist/expansion-panel/ExpansionPanel.d.ts +1 -1
  108. package/dist/expansion-panel/ExpansionPanel.js.map +1 -1
  109. package/dist/expansion-panel/_expansion-panel.scss +5 -1
  110. package/dist/expansion-panel/useExpansionPanels.js +12 -24
  111. package/dist/expansion-panel/useExpansionPanels.js.map +1 -1
  112. package/dist/{form → files}/FileInput.d.ts +3 -6
  113. package/dist/{form → files}/FileInput.js +3 -6
  114. package/dist/files/FileInput.js.map +1 -0
  115. package/dist/files/_files.scss +22 -0
  116. package/dist/files/styles.d.ts +5 -0
  117. package/dist/files/styles.js +7 -0
  118. package/dist/files/styles.js.map +1 -0
  119. package/dist/{form → files}/useFileUpload.d.ts +7 -9
  120. package/dist/{form → files}/useFileUpload.js +5 -7
  121. package/dist/files/useFileUpload.js.map +1 -0
  122. package/dist/files/utils.d.ts +169 -0
  123. package/dist/files/utils.js +114 -0
  124. package/dist/files/utils.js.map +1 -0
  125. package/dist/{form/fileUtils.d.ts → files/validation.d.ts} +11 -176
  126. package/dist/{form/fileUtils.js → files/validation.js} +10 -135
  127. package/dist/files/validation.js.map +1 -0
  128. package/dist/focus/useFocusContainer.d.ts +2 -2
  129. package/dist/focus/useFocusContainer.js.map +1 -1
  130. package/dist/focus/utils.js.map +1 -1
  131. package/dist/form/FormMessage.js.map +1 -1
  132. package/dist/form/FormMessageContainer.js +4 -2
  133. package/dist/form/FormMessageContainer.js.map +1 -1
  134. package/dist/form/InputToggle.d.ts +2 -1
  135. package/dist/form/InputToggle.js +2 -1
  136. package/dist/form/InputToggle.js.map +1 -1
  137. package/dist/form/InputToggleIcon.js.map +1 -1
  138. package/dist/form/Label.js +2 -2
  139. package/dist/form/Label.js.map +1 -1
  140. package/dist/form/Listbox.d.ts +24 -0
  141. package/dist/form/Listbox.js +46 -0
  142. package/dist/form/Listbox.js.map +1 -0
  143. package/dist/form/ListboxProvider.d.ts +21 -0
  144. package/dist/form/{useListboxProvider.js → ListboxProvider.js} +1 -1
  145. package/dist/form/ListboxProvider.js.map +1 -0
  146. package/dist/form/MenuItemTextField.js +1 -2
  147. package/dist/form/MenuItemTextField.js.map +1 -1
  148. package/dist/form/NativeSelect.js +7 -4
  149. package/dist/form/NativeSelect.js.map +1 -1
  150. package/dist/form/Option.d.ts +49 -10
  151. package/dist/form/Option.js +11 -9
  152. package/dist/form/Option.js.map +1 -1
  153. package/dist/form/Password.js.map +1 -1
  154. package/dist/form/Select.d.ts +2 -2
  155. package/dist/form/Select.js +81 -85
  156. package/dist/form/Select.js.map +1 -1
  157. package/dist/form/SelectedOption.js +2 -1
  158. package/dist/form/SelectedOption.js.map +1 -1
  159. package/dist/form/Slider.d.ts +4 -4
  160. package/dist/form/Slider.js +6 -2
  161. package/dist/form/Slider.js.map +1 -1
  162. package/dist/form/SliderThumb.d.ts +3 -3
  163. package/dist/form/SliderThumb.js.map +1 -1
  164. package/dist/form/SliderValueMarks.d.ts +2 -2
  165. package/dist/form/SliderValueMarks.js.map +1 -1
  166. package/dist/form/SliderValueTooltip.js.map +1 -1
  167. package/dist/form/TextArea.js +1 -2
  168. package/dist/form/TextArea.js.map +1 -1
  169. package/dist/form/TextField.js +1 -2
  170. package/dist/form/TextField.js.map +1 -1
  171. package/dist/form/TextFieldContainer.js +1 -2
  172. package/dist/form/TextFieldContainer.js.map +1 -1
  173. package/dist/form/_form.scss +193 -124
  174. package/dist/form/formMessageContainerStyles.d.ts +10 -0
  175. package/dist/form/formMessageContainerStyles.js +11 -0
  176. package/dist/form/formMessageContainerStyles.js.map +1 -0
  177. package/dist/form/inputToggleStyles.js.map +1 -1
  178. package/dist/form/optionStyles.d.ts +1 -0
  179. package/dist/form/optionStyles.js +2 -2
  180. package/dist/form/optionStyles.js.map +1 -1
  181. package/dist/form/selectUtils.js.map +1 -1
  182. package/dist/form/sliderUtils.d.ts +1 -1
  183. package/dist/form/sliderUtils.js.map +1 -1
  184. package/dist/form/textFieldContainerStyles.d.ts +0 -2
  185. package/dist/form/textFieldContainerStyles.js +1 -2
  186. package/dist/form/textFieldContainerStyles.js.map +1 -1
  187. package/dist/form/types.d.ts +3 -10
  188. package/dist/form/types.js.map +1 -1
  189. package/dist/form/useCheckboxGroup.d.ts +17 -17
  190. package/dist/form/useCheckboxGroup.js +9 -17
  191. package/dist/form/useCheckboxGroup.js.map +1 -1
  192. package/dist/form/useCombobox.d.ts +56 -21
  193. package/dist/form/useCombobox.js +19 -4
  194. package/dist/form/useCombobox.js.map +1 -1
  195. package/dist/form/useEditableCombobox.d.ts +24 -4
  196. package/dist/form/useEditableCombobox.js +5 -0
  197. package/dist/form/useEditableCombobox.js.map +1 -1
  198. package/dist/form/useNumberField.js.map +1 -1
  199. package/dist/form/useRadioGroup.d.ts +6 -6
  200. package/dist/form/useRadioGroup.js.map +1 -1
  201. package/dist/form/useResizingTextArea.js.map +1 -1
  202. package/dist/form/useSelectCombobox.d.ts +3 -4
  203. package/dist/form/useSelectCombobox.js.map +1 -1
  204. package/dist/form/useTextField.d.ts +1 -1
  205. package/dist/form/useTextField.js.map +1 -1
  206. package/dist/form/useTextFieldContainerAddons.js.map +1 -1
  207. package/dist/hoverMode/useHoverMode.d.ts +3 -3
  208. package/dist/hoverMode/useHoverMode.js.map +1 -1
  209. package/dist/hoverMode/useHoverModeProvider.d.ts +4 -4
  210. package/dist/hoverMode/useHoverModeProvider.js.map +1 -1
  211. package/dist/icon/FontIcon.d.ts +4 -2
  212. package/dist/icon/FontIcon.js.map +1 -1
  213. package/dist/icon/TextIconSpacing.d.ts +3 -1
  214. package/dist/icon/TextIconSpacing.js.map +1 -1
  215. package/dist/icon/_icon.scss +151 -2
  216. package/dist/icon/iconConfig.d.ts +10 -0
  217. package/dist/icon/iconConfig.js +7 -0
  218. package/dist/icon/iconConfig.js.map +1 -1
  219. package/dist/icon/materialConfig.js.map +1 -1
  220. package/dist/icon/styles.js.map +1 -1
  221. package/dist/interaction/UserInteractionModeProvider.d.ts +5 -5
  222. package/dist/interaction/UserInteractionModeProvider.js +12 -8
  223. package/dist/interaction/UserInteractionModeProvider.js.map +1 -1
  224. package/dist/interaction/types.d.ts +20 -2
  225. package/dist/interaction/types.js.map +1 -1
  226. package/dist/interaction/useElementInteraction.d.ts +7 -1
  227. package/dist/interaction/useElementInteraction.js +1 -2
  228. package/dist/interaction/useElementInteraction.js.map +1 -1
  229. package/dist/interaction/utils.d.ts +2 -2
  230. package/dist/interaction/utils.js +2 -2
  231. package/dist/interaction/utils.js.map +1 -1
  232. package/dist/layout/LayoutWindowSplitter.js.map +1 -1
  233. package/dist/layout/_layout.scss +23 -10
  234. package/dist/layout/useExpandableLayout.d.ts +3 -3
  235. package/dist/layout/useExpandableLayout.js.map +1 -1
  236. package/dist/layout/useLayoutAppBarHeight.d.ts +2 -3
  237. package/dist/layout/useLayoutAppBarHeight.js.map +1 -1
  238. package/dist/layout/useTemporaryLayout.d.ts +2 -2
  239. package/dist/layout/useTemporaryLayout.js.map +1 -1
  240. package/dist/link/SkipToMainContent.js.map +1 -1
  241. package/dist/list/ListItem.d.ts +2 -1
  242. package/dist/list/ListItem.js +2 -1
  243. package/dist/list/ListItem.js.map +1 -1
  244. package/dist/list/ListItemChildren.js.map +1 -1
  245. package/dist/list/ListItemLink.d.ts +2 -1
  246. package/dist/list/ListItemLink.js +2 -1
  247. package/dist/list/ListItemLink.js.map +1 -1
  248. package/dist/list/_list.scss +6 -5
  249. package/dist/media-queries/_media-queries.scss +12 -0
  250. package/dist/media-queries/appSize.js.map +1 -1
  251. package/dist/media-queries/useMediaQuery.js +3 -1
  252. package/dist/media-queries/useMediaQuery.js.map +1 -1
  253. package/dist/menu/DropdownMenu.js.map +1 -1
  254. package/dist/menu/Menu.d.ts +8 -3
  255. package/dist/menu/Menu.js +2 -1
  256. package/dist/menu/Menu.js.map +1 -1
  257. package/dist/menu/MenuItemButton.js +6 -2
  258. package/dist/menu/MenuItemButton.js.map +1 -1
  259. package/dist/menu/useContextMenu.d.ts +3 -3
  260. package/dist/menu/useContextMenu.js.map +1 -1
  261. package/dist/movement/types.d.ts +5 -5
  262. package/dist/movement/types.js.map +1 -1
  263. package/dist/navigation/CollapsibleNavGroup.d.ts +5 -3
  264. package/dist/navigation/CollapsibleNavGroup.js +3 -4
  265. package/dist/navigation/CollapsibleNavGroup.js.map +1 -1
  266. package/dist/navigation/DefaultNavigationRenderer.d.ts +1 -2
  267. package/dist/navigation/DefaultNavigationRenderer.js +6 -2
  268. package/dist/navigation/DefaultNavigationRenderer.js.map +1 -1
  269. package/dist/navigation/NavItemButton.d.ts +1 -1
  270. package/dist/navigation/NavItemButton.js +1 -0
  271. package/dist/navigation/NavItemButton.js.map +1 -1
  272. package/dist/navigation/NavItemLink.d.ts +3 -2
  273. package/dist/navigation/NavItemLink.js +6 -2
  274. package/dist/navigation/NavItemLink.js.map +1 -1
  275. package/dist/navigation/NavSubheader.d.ts +2 -3
  276. package/dist/navigation/NavSubheader.js.map +1 -1
  277. package/dist/navigation/Navigation.d.ts +1 -1
  278. package/dist/navigation/Navigation.js.map +1 -1
  279. package/dist/navigation/_navigation.scss +6 -5
  280. package/dist/navigation/types.d.ts +54 -6
  281. package/dist/navigation/types.js.map +1 -1
  282. package/dist/navigation/useActiveHeadingId.d.ts +1 -1
  283. package/dist/navigation/useActiveHeadingId.js.map +1 -1
  284. package/dist/navigation/useNavigationExpansion.d.ts +104 -0
  285. package/dist/navigation/useNavigationExpansion.js +77 -0
  286. package/dist/navigation/useNavigationExpansion.js.map +1 -0
  287. package/dist/navigation/utils.d.ts +13 -0
  288. package/dist/navigation/utils.js +36 -0
  289. package/dist/navigation/utils.js.map +1 -0
  290. package/dist/objectFit.d.ts +69 -0
  291. package/dist/objectFit.js +52 -0
  292. package/dist/objectFit.js.map +1 -0
  293. package/dist/overlay/_overlay.scss +2 -1
  294. package/dist/positioning/useFixedPositioning.d.ts +17 -4
  295. package/dist/positioning/useFixedPositioning.js +10 -5
  296. package/dist/positioning/useFixedPositioning.js.map +1 -1
  297. package/dist/positioning/utils.js.map +1 -1
  298. package/dist/progress/LinearProgress.js.map +1 -1
  299. package/dist/progress/_progress.scss +20 -14
  300. package/dist/responsive-item/ResponsiveItem.d.ts +64 -0
  301. package/dist/responsive-item/ResponsiveItem.js +68 -0
  302. package/dist/responsive-item/ResponsiveItem.js.map +1 -0
  303. package/dist/responsive-item/ResponsiveItemOverlay.d.ts +1 -19
  304. package/dist/responsive-item/ResponsiveItemOverlay.js +1 -12
  305. package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
  306. package/dist/responsive-item/_responsive-item.scss +110 -133
  307. package/dist/responsive-item/responsiveItemOverlayStyles.d.ts +19 -0
  308. package/dist/responsive-item/responsiveItemOverlayStyles.js +14 -0
  309. package/dist/responsive-item/responsiveItemOverlayStyles.js.map +1 -0
  310. package/dist/responsive-item/responsiveItemStyles.d.ts +52 -0
  311. package/dist/responsive-item/responsiveItemStyles.js +15 -0
  312. package/dist/responsive-item/responsiveItemStyles.js.map +1 -0
  313. package/dist/scroll/useScrollLock.d.ts +5 -0
  314. package/dist/scroll/useScrollLock.js.map +1 -1
  315. package/dist/searching/utils.d.ts +2 -2
  316. package/dist/searching/utils.js.map +1 -1
  317. package/dist/segmented-button/SegmentedButton.d.ts +2 -1
  318. package/dist/segmented-button/SegmentedButton.js +2 -1
  319. package/dist/segmented-button/SegmentedButton.js.map +1 -1
  320. package/dist/segmented-button/_segmented-button.scss +6 -6
  321. package/dist/sheet/_sheet.scss +18 -6
  322. package/dist/snackbar/ToastManager.js +15 -5
  323. package/dist/snackbar/ToastManager.js.map +1 -1
  324. package/dist/snackbar/_snackbar.scss +30 -17
  325. package/dist/snackbar/useCurrentToastActions.d.ts +5 -5
  326. package/dist/snackbar/useCurrentToastActions.js.map +1 -1
  327. package/dist/table/_table.scss +15 -3
  328. package/dist/table/tableCellStyles.d.ts +7 -3
  329. package/dist/table/tableCellStyles.js +2 -2
  330. package/dist/table/tableCellStyles.js.map +1 -1
  331. package/dist/tabs/Tab.d.ts +2 -1
  332. package/dist/tabs/Tab.js +2 -1
  333. package/dist/tabs/Tab.js.map +1 -1
  334. package/dist/tabs/TabList.d.ts +2 -2
  335. package/dist/tabs/TabList.js.map +1 -1
  336. package/dist/tabs/TabListScrollButton.d.ts +1 -1
  337. package/dist/tabs/TabListScrollButton.js +1 -1
  338. package/dist/tabs/TabListScrollButton.js.map +1 -1
  339. package/dist/tabs/_tabs.scss +30 -9
  340. package/dist/tabs/getTabListScrollToOptions.d.ts +18 -0
  341. package/dist/tabs/getTabListScrollToOptions.js +19 -0
  342. package/dist/tabs/getTabListScrollToOptions.js.map +1 -0
  343. package/dist/tabs/tabStyles.d.ts +3 -0
  344. package/dist/tabs/tabStyles.js.map +1 -1
  345. package/dist/tabs/useTabList.d.ts +1 -8
  346. package/dist/tabs/useTabList.js +1 -0
  347. package/dist/tabs/useTabList.js.map +1 -1
  348. package/dist/tabs/useTabs.d.ts +6 -6
  349. package/dist/tabs/useTabs.js.map +1 -1
  350. package/dist/tabs/utils.d.ts +0 -18
  351. package/dist/tabs/utils.js +0 -15
  352. package/dist/tabs/utils.js.map +1 -1
  353. package/dist/test-utils/ResizeObserver.d.ts +11 -12
  354. package/dist/test-utils/ResizeObserver.js +11 -12
  355. package/dist/test-utils/ResizeObserver.js.map +1 -1
  356. package/dist/test-utils/matchMedia.d.ts +3 -3
  357. package/dist/test-utils/matchMedia.js +6 -6
  358. package/dist/test-utils/matchMedia.js.map +1 -1
  359. package/dist/test-utils/polyfills/TextDecoder.js +0 -1
  360. package/dist/test-utils/polyfills/TextDecoder.js.map +1 -1
  361. package/dist/test-utils/timers.d.ts +9 -5
  362. package/dist/test-utils/timers.js +5 -5
  363. package/dist/test-utils/timers.js.map +1 -1
  364. package/dist/theme/LocalStorageColorSchemeProvider.d.ts +1 -1
  365. package/dist/theme/LocalStorageColorSchemeProvider.js +2 -1
  366. package/dist/theme/LocalStorageColorSchemeProvider.js.map +1 -1
  367. package/dist/theme/ThemeProvider.js +3 -1
  368. package/dist/theme/ThemeProvider.js.map +1 -1
  369. package/dist/theme/_a11y.scss +86 -13
  370. package/dist/theme/_colors.scss +279 -277
  371. package/dist/theme/_theme.scss +308 -37
  372. package/dist/theme/isColorScheme.d.ts +16 -0
  373. package/dist/theme/isColorScheme.js +19 -0
  374. package/dist/theme/isColorScheme.js.map +1 -0
  375. package/dist/theme/types.d.ts +53 -1
  376. package/dist/theme/types.js +1 -23
  377. package/dist/theme/types.js.map +1 -1
  378. package/dist/theme/useCSSVariables.d.ts +2 -19
  379. package/dist/theme/useCSSVariables.js.map +1 -1
  380. package/dist/theme/useColorScheme.d.ts +1 -35
  381. package/dist/theme/useColorScheme.js.map +1 -1
  382. package/dist/theme/useColorSchemeMetaTag.d.ts +1 -1
  383. package/dist/theme/useColorSchemeMetaTag.js.map +1 -1
  384. package/dist/theme/useColorSchemeProvider.d.ts +1 -1
  385. package/dist/theme/useColorSchemeProvider.js +1 -1
  386. package/dist/theme/useColorSchemeProvider.js.map +1 -1
  387. package/dist/theme/{usePrefersColorScheme.js → usePrefersDarkScheme.js} +1 -1
  388. package/dist/theme/usePrefersDarkScheme.js.map +1 -0
  389. package/dist/theme/utils.js.map +1 -1
  390. package/dist/tooltip/useTooltip.d.ts +14 -9
  391. package/dist/tooltip/useTooltip.js +2 -1
  392. package/dist/tooltip/useTooltip.js.map +1 -1
  393. package/dist/transition/_transition.scss +16 -9
  394. package/dist/transition/skeletonPlaceholderUtils.js.map +1 -1
  395. package/dist/transition/types.d.ts +1 -1
  396. package/dist/transition/types.js.map +1 -1
  397. package/dist/transition/useCarousel.d.ts +3 -3
  398. package/dist/transition/useCarousel.js.map +1 -1
  399. package/dist/transition/useCollapseTransition.js.map +1 -1
  400. package/dist/transition/useTransition.js +1 -0
  401. package/dist/transition/useTransition.js.map +1 -1
  402. package/dist/transition/utils.js.map +1 -1
  403. package/dist/tree/TreeItem.d.ts +2 -1
  404. package/dist/tree/TreeItem.js +4 -3
  405. package/dist/tree/TreeItem.js.map +1 -1
  406. package/dist/tree/TreeItemExpander.js.map +1 -1
  407. package/dist/tree/_tree.scss +8 -6
  408. package/dist/tree/useTreeExpansion.d.ts +1 -1
  409. package/dist/tree/useTreeExpansion.js +6 -18
  410. package/dist/tree/useTreeExpansion.js.map +1 -1
  411. package/dist/tree/useTreeSelection.d.ts +1 -1
  412. package/dist/tree/useTreeSelection.js +7 -25
  413. package/dist/tree/useTreeSelection.js.map +1 -1
  414. package/dist/tree/utils.d.ts +1 -1
  415. package/dist/tree/utils.js.map +1 -1
  416. package/dist/types.d.ts +12 -4
  417. package/dist/types.js.map +1 -1
  418. package/dist/typography/WritingDirectionProvider.d.ts +1 -1
  419. package/dist/typography/WritingDirectionProvider.js.map +1 -1
  420. package/dist/typography/_typography.scss +94 -37
  421. package/dist/typography/typographyStyles.js.map +1 -1
  422. package/dist/useDebouncedFunction.d.ts +1 -5
  423. package/dist/useDebouncedFunction.js +3 -1
  424. package/dist/useDebouncedFunction.js.map +1 -1
  425. package/dist/useDropzone.d.ts +4 -4
  426. package/dist/useDropzone.js.map +1 -1
  427. package/dist/useEnsuredId.js.map +1 -1
  428. package/dist/useIntersectionObserver.d.ts +5 -5
  429. package/dist/useIntersectionObserver.js.map +1 -1
  430. package/dist/useLocalStorage.d.ts +3 -3
  431. package/dist/useLocalStorage.js +1 -1
  432. package/dist/useLocalStorage.js.map +1 -1
  433. package/dist/useMutationObserver.d.ts +1 -1
  434. package/dist/useMutationObserver.js.map +1 -1
  435. package/dist/useOrientation.js +3 -1
  436. package/dist/useOrientation.js.map +1 -1
  437. package/dist/usePageInactive.d.ts +2 -2
  438. package/dist/usePageInactive.js.map +1 -1
  439. package/dist/useReadonlySet.d.ts +76 -0
  440. package/dist/useReadonlySet.js +72 -0
  441. package/dist/useReadonlySet.js.map +1 -0
  442. package/dist/useResizeListener.d.ts +1 -1
  443. package/dist/useResizeListener.js.map +1 -1
  444. package/dist/useResizeObserver.d.ts +19 -0
  445. package/dist/useResizeObserver.js +19 -0
  446. package/dist/useResizeObserver.js.map +1 -1
  447. package/dist/useThrottledFunction.d.ts +1 -5
  448. package/dist/useThrottledFunction.js +3 -1
  449. package/dist/useThrottledFunction.js.map +1 -1
  450. package/dist/useToggle.d.ts +3 -3
  451. package/dist/useToggle.js.map +1 -1
  452. package/dist/utils/RenderRecursively.d.ts +2 -2
  453. package/dist/utils/RenderRecursively.js.map +1 -1
  454. package/dist/utils/alphaNumericSort.d.ts +5 -5
  455. package/dist/utils/alphaNumericSort.js.map +1 -1
  456. package/dist/utils/bem.d.ts +1 -1
  457. package/dist/utils/bem.js +1 -1
  458. package/dist/utils/bem.js.map +1 -1
  459. package/dist/utils/debounce.d.ts +5 -0
  460. package/dist/utils/debounce.js +17 -0
  461. package/dist/utils/debounce.js.map +1 -0
  462. package/dist/utils/nearest.js.map +1 -1
  463. package/dist/utils/parseCssLengthUnit.js.map +1 -1
  464. package/dist/utils/throttle.d.ts +5 -0
  465. package/dist/utils/throttle.js +30 -0
  466. package/dist/utils/throttle.js.map +1 -0
  467. package/dist/utils/wait.js +3 -1
  468. package/dist/utils/wait.js.map +1 -1
  469. package/dist/window-splitter/WindowSplitter.d.ts +37 -15
  470. package/dist/window-splitter/WindowSplitter.js +38 -17
  471. package/dist/window-splitter/WindowSplitter.js.map +1 -1
  472. package/dist/window-splitter/_window-splitter.scss +32 -14
  473. package/dist/window-splitter/styles.d.ts +14 -0
  474. package/dist/window-splitter/styles.js +18 -0
  475. package/dist/window-splitter/styles.js.map +1 -0
  476. package/package.json +25 -24
  477. package/src/app-bar/AppBar.tsx +1 -170
  478. package/src/app-bar/AppBarTitle.tsx +1 -44
  479. package/src/app-bar/styles.ts +206 -0
  480. package/src/autocomplete/Autocomplete.tsx +194 -211
  481. package/src/autocomplete/AutocompleteChip.tsx +48 -0
  482. package/src/autocomplete/AutocompleteCircularProgress.tsx +6 -17
  483. package/src/autocomplete/AutocompleteClearButton.tsx +44 -0
  484. package/src/autocomplete/AutocompleteDropdownButton.tsx +16 -37
  485. package/src/autocomplete/AutocompleteListboxChildren.tsx +68 -0
  486. package/src/autocomplete/autocompleteStyles.ts +48 -9
  487. package/src/autocomplete/defaults.ts +26 -17
  488. package/src/autocomplete/types.ts +744 -61
  489. package/src/autocomplete/useAutocomplete.ts +428 -0
  490. package/src/autocomplete/utils.ts +211 -0
  491. package/src/badge/Badge.tsx +1 -39
  492. package/src/badge/styles.ts +45 -0
  493. package/src/box/Box.tsx +11 -9
  494. package/src/box/styles.ts +14 -5
  495. package/src/button/AsyncButton.tsx +1 -1
  496. package/src/button/Button.tsx +5 -1
  497. package/src/card/Card.tsx +35 -4
  498. package/src/card/ClickableCard.tsx +9 -2
  499. package/src/card/styles.ts +1 -10
  500. package/src/chip/Chip.tsx +6 -1
  501. package/src/chip/styles.ts +12 -10
  502. package/src/delegateEvent.ts +5 -5
  503. package/src/dialog/Dialog.tsx +48 -61
  504. package/src/dialog/FixedDialog.tsx +1 -11
  505. package/src/dialog/styles.ts +97 -0
  506. package/src/divider/Divider.tsx +0 -12
  507. package/src/divider/styles.ts +12 -0
  508. package/src/draggable/useDraggable.ts +17 -10
  509. package/src/draggable/utils.ts +3 -3
  510. package/src/expansion-panel/ExpansionPanel.tsx +1 -1
  511. package/src/expansion-panel/useExpansionPanels.ts +18 -27
  512. package/src/{form → files}/FileInput.tsx +7 -15
  513. package/src/files/styles.ts +10 -0
  514. package/src/{form → files}/useFileUpload.ts +30 -34
  515. package/src/files/utils.ts +234 -0
  516. package/src/{form/fileUtils.ts → files/validation.ts} +15 -244
  517. package/src/focus/useFocusContainer.ts +16 -8
  518. package/src/form/FormMessageContainer.tsx +2 -2
  519. package/src/form/InputToggle.tsx +5 -1
  520. package/src/form/Label.tsx +18 -18
  521. package/src/form/Listbox.tsx +87 -0
  522. package/src/form/ListboxProvider.ts +37 -0
  523. package/src/form/MenuItemTextField.tsx +1 -2
  524. package/src/form/NativeSelect.tsx +14 -10
  525. package/src/form/Option.tsx +74 -22
  526. package/src/form/Select.tsx +89 -85
  527. package/src/form/SelectedOption.tsx +2 -0
  528. package/src/form/Slider.tsx +14 -11
  529. package/src/form/SliderThumb.tsx +4 -4
  530. package/src/form/SliderValueMarks.tsx +4 -4
  531. package/src/form/TextArea.tsx +6 -8
  532. package/src/form/TextField.tsx +0 -2
  533. package/src/form/TextFieldContainer.tsx +9 -11
  534. package/src/form/formMessageContainerStyles.ts +22 -0
  535. package/src/form/optionStyles.ts +7 -2
  536. package/src/form/sliderUtils.ts +1 -1
  537. package/src/form/textFieldContainerStyles.ts +9 -14
  538. package/src/form/types.ts +3 -11
  539. package/src/form/useCheckboxGroup.ts +28 -36
  540. package/src/form/useCombobox.ts +86 -38
  541. package/src/form/useEditableCombobox.ts +43 -8
  542. package/src/form/useRadioGroup.ts +6 -6
  543. package/src/form/useSelectCombobox.ts +4 -4
  544. package/src/form/useTextField.ts +1 -1
  545. package/src/hoverMode/useHoverMode.ts +3 -3
  546. package/src/hoverMode/useHoverModeProvider.ts +4 -4
  547. package/src/icon/FontIcon.tsx +4 -2
  548. package/src/icon/TextIconSpacing.tsx +1 -1
  549. package/src/icon/iconConfig.tsx +12 -0
  550. package/src/interaction/UserInteractionModeProvider.tsx +12 -8
  551. package/src/interaction/types.ts +21 -2
  552. package/src/interaction/useElementInteraction.tsx +9 -2
  553. package/src/interaction/utils.ts +7 -7
  554. package/src/layout/useExpandableLayout.ts +3 -3
  555. package/src/layout/useLayoutAppBarHeight.ts +3 -4
  556. package/src/layout/useTemporaryLayout.ts +2 -2
  557. package/src/list/ListItem.tsx +5 -1
  558. package/src/list/ListItemLink.tsx +5 -1
  559. package/src/media-queries/useMediaQuery.ts +2 -1
  560. package/src/menu/Menu.tsx +11 -3
  561. package/src/menu/MenuItemButton.tsx +7 -1
  562. package/src/menu/useContextMenu.ts +3 -3
  563. package/src/movement/types.ts +5 -5
  564. package/src/navigation/CollapsibleNavGroup.tsx +16 -8
  565. package/src/navigation/DefaultNavigationRenderer.tsx +8 -6
  566. package/src/navigation/NavItemButton.tsx +2 -1
  567. package/src/navigation/NavItemLink.tsx +11 -3
  568. package/src/navigation/NavSubheader.tsx +1 -1
  569. package/src/navigation/Navigation.tsx +1 -1
  570. package/src/navigation/types.ts +60 -10
  571. package/src/navigation/useActiveHeadingId.ts +1 -1
  572. package/src/navigation/useNavigationExpansion.ts +170 -0
  573. package/src/navigation/utils.ts +47 -0
  574. package/src/objectFit.ts +88 -0
  575. package/src/positioning/useFixedPositioning.ts +34 -11
  576. package/src/responsive-item/ResponsiveItem.tsx +96 -0
  577. package/src/responsive-item/ResponsiveItemOverlay.tsx +6 -46
  578. package/src/responsive-item/responsiveItemOverlayStyles.ts +46 -0
  579. package/src/responsive-item/responsiveItemStyles.ts +81 -0
  580. package/src/scroll/useScrollLock.ts +6 -0
  581. package/src/searching/utils.ts +3 -3
  582. package/src/segmented-button/SegmentedButton.tsx +5 -1
  583. package/src/snackbar/ToastManager.tsx +16 -5
  584. package/src/snackbar/useCurrentToastActions.ts +5 -5
  585. package/src/table/tableCellStyles.ts +10 -6
  586. package/src/tabs/Tab.tsx +4 -1
  587. package/src/tabs/TabList.tsx +2 -2
  588. package/src/tabs/TabListScrollButton.tsx +4 -4
  589. package/src/tabs/getTabListScrollToOptions.ts +37 -0
  590. package/src/tabs/tabStyles.ts +4 -0
  591. package/src/tabs/useTabList.ts +2 -9
  592. package/src/tabs/useTabs.ts +6 -6
  593. package/src/tabs/utils.ts +0 -38
  594. package/src/test-utils/ResizeObserver.ts +11 -12
  595. package/src/test-utils/matchMedia.ts +7 -7
  596. package/src/test-utils/polyfills/TextDecoder.ts +0 -1
  597. package/src/test-utils/timers.ts +10 -7
  598. package/src/theme/LocalStorageColorSchemeProvider.tsx +4 -4
  599. package/src/theme/ThemeProvider.tsx +3 -3
  600. package/src/theme/isColorScheme.ts +22 -0
  601. package/src/theme/types.ts +67 -1
  602. package/src/theme/useCSSVariables.ts +7 -30
  603. package/src/theme/useColorScheme.ts +1 -40
  604. package/src/theme/useColorSchemeMetaTag.ts +1 -1
  605. package/src/theme/useColorSchemeProvider.ts +2 -2
  606. package/src/tooltip/useTooltip.ts +17 -9
  607. package/src/transition/types.ts +1 -1
  608. package/src/transition/useCarousel.ts +3 -3
  609. package/src/transition/useTransition.ts +1 -0
  610. package/src/tree/TreeItem.tsx +7 -1
  611. package/src/tree/TreeItemExpander.tsx +1 -1
  612. package/src/tree/useTreeExpansion.ts +7 -25
  613. package/src/tree/useTreeSelection.ts +8 -32
  614. package/src/tree/utils.ts +6 -2
  615. package/src/types.ts +20 -4
  616. package/src/typography/WritingDirectionProvider.tsx +1 -1
  617. package/src/useDebouncedFunction.ts +4 -9
  618. package/src/useDropzone.ts +4 -4
  619. package/src/useIntersectionObserver.ts +5 -5
  620. package/src/useLocalStorage.ts +6 -6
  621. package/src/useMutationObserver.ts +1 -1
  622. package/src/useOrientation.ts +3 -1
  623. package/src/usePageInactive.ts +2 -2
  624. package/src/useReadonlySet.ts +122 -0
  625. package/src/useResizeListener.ts +1 -1
  626. package/src/useResizeObserver.ts +19 -0
  627. package/src/useThrottledFunction.ts +6 -9
  628. package/src/useToggle.ts +3 -3
  629. package/src/utils/RenderRecursively.tsx +2 -2
  630. package/src/utils/alphaNumericSort.ts +5 -5
  631. package/src/utils/bem.ts +1 -1
  632. package/src/utils/debounce.ts +22 -0
  633. package/src/utils/throttle.ts +38 -0
  634. package/src/utils/wait.ts +5 -1
  635. package/src/window-splitter/WindowSplitter.tsx +38 -43
  636. package/src/window-splitter/styles.ts +42 -0
  637. package/dist/autocomplete/FilterAutocompleteOptions.d.ts +0 -8
  638. package/dist/autocomplete/FilterAutocompleteOptions.js +0 -57
  639. package/dist/autocomplete/FilterAutocompleteOptions.js.map +0 -1
  640. package/dist/dialog/DialogContainer.d.ts +0 -14
  641. package/dist/dialog/DialogContainer.js +0 -20
  642. package/dist/dialog/DialogContainer.js.map +0 -1
  643. package/dist/form/FileInput.js.map +0 -1
  644. package/dist/form/fileUtils.js.map +0 -1
  645. package/dist/form/useFileUpload.js.map +0 -1
  646. package/dist/form/useListboxProvider.d.ts +0 -31
  647. package/dist/form/useListboxProvider.js.map +0 -1
  648. package/dist/navigation/getHrefFromParents.d.ts +0 -5
  649. package/dist/navigation/getHrefFromParents.js +0 -13
  650. package/dist/navigation/getHrefFromParents.js.map +0 -1
  651. package/dist/responsive-item/ResponsiveItemContainer.d.ts +0 -115
  652. package/dist/responsive-item/ResponsiveItemContainer.js +0 -80
  653. package/dist/responsive-item/ResponsiveItemContainer.js.map +0 -1
  654. package/dist/responsive-item/styles.d.ts +0 -34
  655. package/dist/responsive-item/styles.js +0 -17
  656. package/dist/responsive-item/styles.js.map +0 -1
  657. package/dist/theme/usePrefersColorScheme.js.map +0 -1
  658. package/src/autocomplete/FilterAutocompleteOptions.tsx +0 -86
  659. package/src/dialog/DialogContainer.tsx +0 -28
  660. package/src/form/useListboxProvider.ts +0 -45
  661. package/src/navigation/getHrefFromParents.ts +0 -15
  662. package/src/responsive-item/ResponsiveItemContainer.tsx +0 -174
  663. package/src/responsive-item/styles.ts +0 -58
  664. /package/dist/theme/{usePrefersColorScheme.d.ts → usePrefersDarkScheme.d.ts} +0 -0
  665. /package/src/theme/{usePrefersColorScheme.ts → usePrefersDarkScheme.ts} +0 -0
@@ -1,4 +1,5 @@
1
- import type { CSSProperties } from "react";
1
+ import { type CSSProperties } from "react";
2
+ import { type UseStateSetter } from "../types.js";
2
3
 
3
4
  /**
4
5
  * @since 6.0.0
@@ -36,3 +37,68 @@ export type DefinedCustomProperty<Property = keyof CSSProperties> =
36
37
  * @since 6.0.0
37
38
  */
38
39
  export type DefinedCSSVariableName = DefinedCustomProperty;
40
+
41
+ /**
42
+ * @since 6.0.0
43
+ */
44
+ export interface CSSVariable<
45
+ Name extends CSSVariableName = DefinedCSSVariableName,
46
+ > {
47
+ name: Name;
48
+ value: string | number;
49
+ }
50
+
51
+ /**
52
+ * @since 6.0.0
53
+ */
54
+ export type CSSVariablesProperties<
55
+ Name extends CSSVariableName = DefinedCSSVariableName,
56
+ > = {
57
+ [key in Name]?: string | number;
58
+ };
59
+
60
+ /**
61
+ * @since 6.0.0
62
+ */
63
+ export type ReadonlyCSSVariableList<
64
+ Name extends CSSVariableName = DefinedCSSVariableName,
65
+ > = readonly Readonly<CSSVariable<Name>>[];
66
+
67
+ /** @since 6.0.0 */
68
+ export type ColorScheme = "light" | "dark";
69
+
70
+ /** @since 6.0.0 */
71
+ export type ColorSchemeMode = ColorScheme | "system";
72
+
73
+ /**
74
+ * @since 6.0.0
75
+ */
76
+ export interface ColorSchemeModeBehavior {
77
+ /**
78
+ * The current color scheme mode that is being used by your app that should
79
+ * default to the `$color-scheme` SCSS variable. If the
80
+ * {@link setColorSchemeMode} is called, this will update to that new value.
81
+ *
82
+ * TODO: Figure out how to document this
83
+ *
84
+ * - `colorScheme` - only `light` or `dark` -- only useful when the `colorSchemeMode` is set to `system`
85
+ * - `colorSchemeMode` - current **user** defined color scheme behavior? should default to `$color-scheme`, but will change based on `setColorSchemeMode`
86
+ */
87
+ colorSchemeMode: ColorSchemeMode;
88
+
89
+ /**
90
+ * A function to update the color scheme.
91
+ *
92
+ * @see {@link useColorScheme} for an example usage
93
+ */
94
+ setColorSchemeMode: UseStateSetter<ColorSchemeMode>;
95
+ }
96
+
97
+ /** @since 6.0.0 */
98
+ export interface ColorSchemeContext extends ColorSchemeModeBehavior {
99
+ /**
100
+ * The current color scheme that is being used. This is only useful when the
101
+ * {@link colorSchemeMode} is set to `"system"`.
102
+ */
103
+ colorScheme: ColorScheme;
104
+ }
@@ -1,33 +1,10 @@
1
1
  "use client";
2
- import type { RefObject } from "react";
3
- import { useEffect, useMemo } from "react";
4
- import type { CSSVariableName, DefinedCSSVariableName } from "./types.js";
5
-
6
- /**
7
- * @since 6.0.0
8
- */
9
- export interface CSSVariable<
10
- Name extends CSSVariableName = DefinedCSSVariableName,
11
- > {
12
- name: Name;
13
- value: string | number;
14
- }
15
-
16
- /**
17
- * @since 6.0.0
18
- */
19
- export type CSSVariablesProperties<
20
- Name extends CSSVariableName = DefinedCSSVariableName,
21
- > = {
22
- [key in Name]?: string | number;
23
- };
24
-
25
- /**
26
- * @since 6.0.0
27
- */
28
- export type ReadonlyCSSVariableList<
29
- Name extends CSSVariableName = DefinedCSSVariableName,
30
- > = readonly Readonly<CSSVariable<Name>>[];
2
+ import { type RefObject, useEffect, useMemo } from "react";
3
+ import {
4
+ type CSSVariableName,
5
+ type CSSVariablesProperties,
6
+ type ReadonlyCSSVariableList,
7
+ } from "./types.js";
31
8
 
32
9
  /**
33
10
  * @example Applying Variables the root html element
@@ -110,7 +87,7 @@ export function useCSSVariables<Name extends CSSVariableName>(
110
87
  export function useCSSVariables<Name extends CSSVariableName>(
111
88
  variables: ReadonlyCSSVariableList<Name>,
112
89
  rootNodeOrInlineStyle?: RefObject<HTMLElement> | HTMLElement | boolean
113
- ): CSSVariablesProperties<Name> | void {
90
+ ): CSSVariablesProperties<Name> | undefined {
114
91
  useEffect(() => {
115
92
  if (rootNodeOrInlineStyle === true || !variables.length) {
116
93
  return;
@@ -1,45 +1,6 @@
1
1
  "use client";
2
2
  import { createContext, useContext } from "react";
3
- import type { UseStateSetter } from "../types.js";
4
-
5
- /** @since 6.0.0 */
6
- export type ColorScheme = "light" | "dark";
7
-
8
- /** @since 6.0.0 */
9
- export type ColorSchemeMode = ColorScheme | "system";
10
-
11
- /**
12
- * @since 6.0.0
13
- */
14
- export interface ColorSchemeModeBehavior {
15
- /**
16
- * The current color scheme mode that is being used by your app that should
17
- * default to the `$color-scheme` SCSS variable. If the
18
- * {@link setColorSchemeMode} is called, this will update to that new value.
19
- *
20
- * TODO: Figure out how to document this
21
- *
22
- * - `colorScheme` - only `light` or `dark` -- only useful when the `colorSchemeMode` is set to `system`
23
- * - `colorSchemeMode` - current **user** defined color scheme behavior? should default to `$color-scheme`, but will change based on `setColorSchemeMode`
24
- */
25
- colorSchemeMode: ColorSchemeMode;
26
-
27
- /**
28
- * A function to update the color scheme.
29
- *
30
- * @see {@link useColorScheme} for an example usage
31
- */
32
- setColorSchemeMode: UseStateSetter<ColorSchemeMode>;
33
- }
34
-
35
- /** @since 6.0.0 */
36
- export interface ColorSchemeContext extends ColorSchemeModeBehavior {
37
- /**
38
- * The current color scheme that is being used. This is only useful when the
39
- * {@link colorSchemeMode} is set to `"system"`.
40
- */
41
- colorScheme: ColorScheme;
42
- }
3
+ import { type ColorSchemeContext } from "./types.js";
43
4
 
44
5
  const context = createContext<ColorSchemeContext>({
45
6
  colorScheme: "light",
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { useEffect } from "react";
3
- import { type ColorScheme } from "./useColorScheme.js";
3
+ import { type ColorScheme } from "./types.js";
4
4
 
5
5
  /**
6
6
  * @since 6.0.0
@@ -6,9 +6,9 @@ import {
6
6
  type ColorSchemeContext,
7
7
  type ColorSchemeMode,
8
8
  type ColorSchemeModeBehavior,
9
- } from "./useColorScheme.js";
9
+ } from "./types.js";
10
10
  import { useColorSchemeMetaTag } from "./useColorSchemeMetaTag.js";
11
- import { usePrefersDarkTheme } from "./usePrefersColorScheme.js";
11
+ import { usePrefersDarkTheme } from "./usePrefersDarkScheme.js";
12
12
 
13
13
  /**
14
14
  * @since 6.0.0
@@ -122,13 +122,13 @@ export interface TooltipPositioningOptions {
122
122
  export interface TooltippedElementEventHandlers<
123
123
  E extends HTMLElement = HTMLButtonElement,
124
124
  > {
125
- onBlur?(event: FocusEvent<E>): void;
126
- onFocus?(event: FocusEvent<E>): void;
127
- onMouseEnter?(event: MouseEvent<E>): void;
128
- onMouseLeave?(event: MouseEvent<E>): void;
129
- onTouchStart?(event: TouchEvent<E>): void;
130
- onTouchEnd?(event: TouchEvent<E>): void;
131
- onContextMenu?(event: MouseEvent<E>): void;
125
+ onBlur?: (event: FocusEvent<E>) => void;
126
+ onFocus?: (event: FocusEvent<E>) => void;
127
+ onMouseEnter?: (event: MouseEvent<E>) => void;
128
+ onMouseLeave?: (event: MouseEvent<E>) => void;
129
+ onTouchStart?: (event: TouchEvent<E>) => void;
130
+ onTouchEnd?: (event: TouchEvent<E>) => void;
131
+ onContextMenu?: (event: MouseEvent<E>) => void;
132
132
  }
133
133
 
134
134
  /**
@@ -254,6 +254,12 @@ export interface TooltipOptions<
254
254
  * @since 6.0.0
255
255
  */
256
256
  overflowOnly?: boolean;
257
+
258
+ /**
259
+ * @see {@link FixedPositioningOptions.disabled}
260
+ * @defaultValue `false`
261
+ */
262
+ disableFixedPositioning?: boolean;
257
263
  }
258
264
 
259
265
  /**
@@ -265,7 +271,7 @@ export interface ProvidedTooltipProps<E extends HTMLElement = HTMLSpanElement>
265
271
  id: string;
266
272
  ref: Ref<E>;
267
273
  dense: boolean;
268
- style: CSSProperties;
274
+ style: CSSProperties | undefined;
269
275
  visible: boolean;
270
276
  position: SimplePosition;
271
277
  }
@@ -292,7 +298,7 @@ export interface TooltipImplementation<
292
298
  * This is a wrapper around the {@link setVisible} behavior that will also
293
299
  * clear any pending timeouts.
294
300
  */
295
- hideTooltip(): void;
301
+ hideTooltip: () => void;
296
302
 
297
303
  /**
298
304
  * @since 6.0.0
@@ -422,6 +428,7 @@ export function useTooltip<
422
428
  onEntered = noop,
423
429
  onExited,
424
430
  overflowOnly,
431
+ disableFixedPositioning,
425
432
  } = options;
426
433
 
427
434
  const fallbackId = useId();
@@ -469,6 +476,7 @@ export function useTooltip<
469
476
  fixedTo: elementRef,
470
477
  anchor: getAnchor(position),
471
478
  disableSwapping: disableSwapping ?? !!determinedPosition,
479
+ disabled: disableFixedPositioning,
472
480
  getFixedPositionOptions() {
473
481
  let tooltipSpacing = dense ? denseSpacing : spacing;
474
482
  const tooltip = tooltipRef.current;
@@ -478,7 +478,7 @@ export interface TransitionHookReturnValue<E extends HTMLElement>
478
478
  *
479
479
  * @param stage - The {@link TransitionStage} to set to
480
480
  */
481
- transitionTo(stage: TransitionStage): void;
481
+ transitionTo: (stage: TransitionStage) => void;
482
482
  }
483
483
 
484
484
  /**
@@ -22,13 +22,13 @@ export interface CarouselImplementation extends CarouselState {
22
22
  * Increments the carousel slide active index by 1 ensuring it does not
23
23
  * advance past the {@link CarouselOptions.totalSlides} index.
24
24
  */
25
- increment(): void;
25
+ increment: () => void;
26
26
 
27
27
  /**
28
28
  * Decrements the carousel slide active index by 1 and prevents decrementing
29
29
  * past 0.
30
30
  */
31
- decrement(): void;
31
+ decrement: () => void;
32
32
 
33
33
  /**
34
34
  * This can be used to manually control the {@link paused} state.
@@ -38,7 +38,7 @@ export interface CarouselImplementation extends CarouselState {
38
38
  /**
39
39
  * Toggles the {@link paused} state.
40
40
  */
41
- togglePaused(): void;
41
+ togglePaused: () => void;
42
42
 
43
43
  /**
44
44
  * A convenience wrapper for the {@link setCarouselSlideState} that will
@@ -206,6 +206,7 @@ export function useTransition<E extends HTMLElement>(
206
206
 
207
207
  if (reflow && ref.current && stage !== "exited" && stage !== "entered") {
208
208
  // force reflow by accessing scrollTop
209
+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
209
210
  ref.current.scrollTop;
210
211
  }
211
212
 
@@ -6,6 +6,7 @@ import {
6
6
  type ReactNode,
7
7
  type Ref,
8
8
  } from "react";
9
+ import { type ComponentWithRippleProps } from "../interaction/types.js";
9
10
  import { useElementInteraction } from "../interaction/useElementInteraction.js";
10
11
  import { useHigherContrastChildren } from "../interaction/useHigherContrastChildren.js";
11
12
  import { ListItemChildren } from "../list/ListItemChildren.js";
@@ -27,7 +28,8 @@ import { type DefaultTreeItemNode } from "./types.js";
27
28
  */
28
29
  export interface TreeItemProps
29
30
  extends Omit<DefaultTreeItemNode, "parentId">,
30
- HTMLAttributes<HTMLLIElement> {
31
+ HTMLAttributes<HTMLLIElement>,
32
+ ComponentWithRippleProps {
31
33
  /**
32
34
  * @defaultValue `"tree-item-" + useId()`
33
35
  */
@@ -140,6 +142,7 @@ export function TreeItem(props: TreeItemProps): ReactElement {
140
142
  onTouchEnd,
141
143
  onTouchMove,
142
144
  contentRef,
145
+ disableRipple,
143
146
  ...remaining
144
147
  } = props;
145
148
 
@@ -179,15 +182,18 @@ export function TreeItem(props: TreeItemProps): ReactElement {
179
182
  lookup.itemToElement[itemId] = id;
180
183
 
181
184
  return () => {
185
+ /* eslint-disable @typescript-eslint/no-dynamic-delete */
182
186
  delete lookup.disabledItems[itemId];
183
187
  delete lookup.expandable[itemId];
184
188
  delete lookup.elementToItem[id];
185
189
  delete lookup.itemToElement[itemId];
190
+ /* eslint-enable @typescript-eslint/no-dynamic-delete */
186
191
  };
187
192
  }, [id, metadataLookup, itemId, isLeafNode, disabled, depth]);
188
193
 
189
194
  const { pressedClassName, ripples, handlers } =
190
195
  useElementInteraction<HTMLLIElement>({
196
+ mode: disableRipple ? "none" : undefined,
191
197
  onBlur,
192
198
  onClick(event) {
193
199
  onClick?.(event);
@@ -60,7 +60,7 @@ export function TreeItemExpander(props: TreeItemExpanderProps): ReactElement {
60
60
  }
61
61
 
62
62
  const isCloneable = isValidElement(icon);
63
- let clickProps: { onClick: MouseEventHandler<Element> } | undefined;
63
+ let clickProps: { onClick: MouseEventHandler } | undefined;
64
64
  if (expansionMode === "manual" && !disabled) {
65
65
  clickProps = {
66
66
  onClick(event) {
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { useCallback, useState } from "react";
3
2
  import { type UseStateSetter } from "../types.js";
3
+ import { useReadonlySet } from "../useReadonlySet.js";
4
4
  import { type TreeDefaultIds, type TreeItemIdSet } from "./types.js";
5
5
 
6
6
  /**
@@ -11,7 +11,7 @@ import { type TreeDefaultIds, type TreeItemIdSet } from "./types.js";
11
11
  */
12
12
  export interface TreeExpansion {
13
13
  expandedIds: TreeItemIdSet;
14
- toggleTreeItemExpansion(itemId: string): void;
14
+ toggleTreeItemExpansion: (itemId: string) => void;
15
15
  expandMultipleTreeItems: UseStateSetter<TreeItemIdSet>;
16
16
  }
17
17
 
@@ -22,31 +22,13 @@ export interface TreeExpansion {
22
22
  export function useTreeExpansion(
23
23
  defaultExpandedIds?: TreeDefaultIds
24
24
  ): TreeExpansion {
25
- const [expandedIds, setExpandedIds] = useState<TreeItemIdSet>(() => {
26
- const defaultIds =
27
- typeof defaultExpandedIds === "function"
28
- ? defaultExpandedIds()
29
- : defaultExpandedIds;
30
-
31
- return new Set(defaultIds);
25
+ const { value, setValue, toggleValue } = useReadonlySet({
26
+ defaultValue: defaultExpandedIds,
32
27
  });
33
28
 
34
- const toggleTreeItemExpansion = useCallback((itemId: string) => {
35
- setExpandedIds((prevExpandedIds) => {
36
- const expandedIds = new Set(prevExpandedIds);
37
- if (expandedIds.has(itemId)) {
38
- expandedIds.delete(itemId);
39
- } else {
40
- expandedIds.add(itemId);
41
- }
42
-
43
- return expandedIds;
44
- });
45
- }, []);
46
-
47
29
  return {
48
- expandedIds,
49
- toggleTreeItemExpansion,
50
- expandMultipleTreeItems: setExpandedIds,
30
+ expandedIds: value,
31
+ toggleTreeItemExpansion: toggleValue,
32
+ expandMultipleTreeItems: setValue,
51
33
  };
52
34
  }
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { useCallback, useState } from "react";
3
2
  import { type UseStateSetter } from "../types.js";
3
+ import { useReadonlySet } from "../useReadonlySet.js";
4
4
  import { type TreeDefaultIds, type TreeItemIdSet } from "./types.js";
5
5
 
6
6
  /**
@@ -13,7 +13,7 @@ export interface TreeSelection {
13
13
  /** @defaultValue `false` */
14
14
  multiSelect?: boolean;
15
15
  selectedIds: ReadonlySet<string>;
16
- toggleTreeItemSelection(itemId: string): void;
16
+ toggleTreeItemSelection: (itemId: string) => void;
17
17
  selectMultipleTreeItems: UseStateSetter<TreeItemIdSet>;
18
18
  }
19
19
 
@@ -25,39 +25,15 @@ export function useTreeSelection(
25
25
  defaultSelectedIds?: TreeDefaultIds,
26
26
  multiSelect = false
27
27
  ): Required<TreeSelection> {
28
- const [selectedIds, setSelectedIds] = useState<TreeItemIdSet>(() => {
29
- const defaultIds =
30
- typeof defaultSelectedIds === "function"
31
- ? defaultSelectedIds()
32
- : defaultSelectedIds;
33
-
34
- return new Set(defaultIds);
28
+ const { value, setValue, toggleValue } = useReadonlySet({
29
+ toggleType: multiSelect ? "multiple" : "single-select",
30
+ defaultValue: defaultSelectedIds,
35
31
  });
36
32
 
37
- const toggleTreeItemSelection = useCallback(
38
- (itemId: string) => {
39
- setSelectedIds((selectedIds) => {
40
- if (!multiSelect) {
41
- return selectedIds.has(itemId) ? selectedIds : new Set([itemId]);
42
- }
43
-
44
- const nextSelectedIds = new Set(selectedIds);
45
- if (selectedIds.has(itemId)) {
46
- nextSelectedIds.delete(itemId);
47
- } else {
48
- nextSelectedIds.add(itemId);
49
- }
50
-
51
- return nextSelectedIds;
52
- });
53
- },
54
- [multiSelect]
55
- );
56
-
57
33
  return {
58
- selectedIds,
59
34
  multiSelect,
60
- toggleTreeItemSelection,
61
- selectMultipleTreeItems: setSelectedIds,
35
+ selectedIds: value,
36
+ toggleTreeItemSelection: toggleValue,
37
+ selectMultipleTreeItems: setValue,
62
38
  };
63
39
  }
package/src/tree/utils.ts CHANGED
@@ -1,4 +1,8 @@
1
- import type { TreeItemNode, TreeData, DefaultTreeItemNode } from "./types.js";
1
+ import {
2
+ type DefaultTreeItemNode,
3
+ type TreeData,
4
+ type TreeItemNode,
5
+ } from "./types.js";
2
6
 
3
7
  /**
4
8
  * This will get all the items from the provided itemId up to the root of the
@@ -48,7 +52,7 @@ export function getChildTreeItems<T extends TreeItemNode = DefaultTreeItemNode>(
48
52
  parentId: string | null,
49
53
  recursive = false
50
54
  ): readonly T[] {
51
- const items = Array.isArray(data) ? data : Object.values(data);
55
+ const items: readonly T[] = Array.isArray(data) ? data : Object.values(data);
52
56
 
53
57
  return items.reduce<T[]>((list, item) => {
54
58
  if (parentId !== item.parentId) {
package/src/types.ts CHANGED
@@ -5,7 +5,7 @@ import type { Dispatch, ReactElement, Ref, SetStateAction } from "react";
5
5
  * object even though a `ref` isn't a real prop.
6
6
  */
7
7
  export type PropsWithRef<
8
- Props extends {},
8
+ Props extends object,
9
9
  Element extends HTMLElement,
10
10
  > = Props & {
11
11
  /**
@@ -18,7 +18,7 @@ export type PropsWithRef<
18
18
  * A simple type that can be used for different components that clone a
19
19
  * `className` into a child component.
20
20
  */
21
- export type ClassNameCloneableChild<T = {}> = ReactElement<
21
+ export type ClassNameCloneableChild<T = object> = ReactElement<
22
22
  T & { className?: string }
23
23
  >;
24
24
 
@@ -171,12 +171,28 @@ export type CssPosition = "fixed" | "sticky" | "static";
171
171
  * @since 6.0.0
172
172
  */
173
173
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
174
- export type AnyFunction = (...args: any[]) => any | void;
174
+ export type AnyFunction = (...args: any[]) => any;
175
175
 
176
176
  /**
177
177
  * @since 6.0.0
178
178
  */
179
- export type CancelableFunction<F extends AnyFunction> = F & { cancel(): void };
179
+ export type CancelableFunction<F extends AnyFunction> = F & {
180
+ cancel: () => void;
181
+ };
182
+
183
+ /**
184
+ * @since 6.0.0
185
+ */
186
+ export type DebouncedFunction<F extends AnyFunction> = CancelableFunction<
187
+ (...args: Parameters<F>) => void
188
+ >;
189
+
190
+ /**
191
+ * @since 6.0.0
192
+ */
193
+ export type ThrottledFunction<F extends AnyFunction> = CancelableFunction<
194
+ (...args: Parameters<F>) => ReturnType<F>
195
+ >;
180
196
 
181
197
  /**
182
198
  * @since 6.0.0
@@ -34,7 +34,7 @@ export interface WritingDirectionContext {
34
34
  /**
35
35
  * Toggles the current writing direction for the first parent `Dir` component.
36
36
  */
37
- toggleDir(): void;
37
+ toggleDir: () => void;
38
38
  }
39
39
 
40
40
  /** @internal */
@@ -1,15 +1,8 @@
1
1
  "use client";
2
2
  import { useEffect, useMemo, useRef } from "react";
3
- import { type CancelableFunction, type AnyFunction } from "./types.js";
3
+ import { type AnyFunction, type DebouncedFunction } from "./types.js";
4
4
  import { useIsomorphicLayoutEffect } from "./useIsomorphicLayoutEffect.js";
5
5
 
6
- /**
7
- * @since 6.0.0
8
- */
9
- export type DebouncedFunction<F extends AnyFunction> = CancelableFunction<
10
- (...args: Parameters<F>) => void
11
- >;
12
-
13
6
  /**
14
7
  * Creates a function that will only be called if it has not been called again
15
8
  * for X milliseconds.
@@ -109,7 +102,9 @@ export function useDebouncedFunction<F extends AnyFunction>(
109
102
  funcRef.current(...args);
110
103
  }, wait);
111
104
  };
112
- debounced.cancel = () => window.clearTimeout(timeout.current);
105
+ debounced.cancel = () => {
106
+ window.clearTimeout(timeout.current);
107
+ };
113
108
 
114
109
  return debounced;
115
110
  }, [wait]);
@@ -12,10 +12,10 @@ const noop = (): void => {
12
12
  * instead of the `DropzoneHandlers` type.
13
13
  */
14
14
  export interface DropzoneHandlers {
15
- onDrop<E extends HTMLElement>(event: DragEvent<E>): void;
16
- onDragEnter?<E extends HTMLElement>(event: DragEvent<E>): void;
17
- onDragOver?<E extends HTMLElement>(event: DragEvent<E>): void;
18
- onDragLeave?<E extends HTMLElement>(event: DragEvent<E>): void;
15
+ onDrop: <E extends HTMLElement>(event: DragEvent<E>) => void;
16
+ onDragEnter?: <E extends HTMLElement>(event: DragEvent<E>) => void;
17
+ onDragOver?: <E extends HTMLElement>(event: DragEvent<E>) => void;
18
+ onDragLeave?: <E extends HTMLElement>(event: DragEvent<E>) => void;
19
19
  }
20
20
 
21
21
  /**
@@ -89,7 +89,7 @@ export interface BaseIntersectionObserverHookOptions {
89
89
  * // pretend some expensive computation
90
90
  * return [0, 0.25, 0.5, 0.75, 1];
91
91
  * }, []),
92
- * OnUpdate: useCallback(() => {
92
+ * onUpdate: useCallback(() => {
93
93
  * // do something
94
94
  * }, []),
95
95
  * });
@@ -97,7 +97,7 @@ export interface BaseIntersectionObserverHookOptions {
97
97
  *
98
98
  * If this option is provided, {@link threshold}'s value will be ignored.
99
99
  */
100
- getThreshold?(): IntersectionObserverThreshold;
100
+ getThreshold?: () => IntersectionObserverThreshold;
101
101
 
102
102
  /**
103
103
  * **Must be wrapped in `useCallback` to prevent re-creating the
@@ -121,7 +121,7 @@ export interface BaseIntersectionObserverHookOptions {
121
121
  *
122
122
  * Note: If this option is provided, {@link rootMargin} will be ignored.
123
123
  */
124
- getRootMargin?(): IntersectionObserverRootMargin;
124
+ getRootMargin?: () => IntersectionObserverRootMargin;
125
125
  }
126
126
 
127
127
  /**
@@ -156,7 +156,7 @@ export interface IntersectionObserverHookOptions<E extends HTMLElement>
156
156
  * }
157
157
  * ```
158
158
  */
159
- onUpdate(entries: readonly IntersectionObserverEntry[]): void;
159
+ onUpdate: (entries: readonly IntersectionObserverEntry[]) => void;
160
160
 
161
161
  /**
162
162
  * **Must be wrapped in `useCallback` to prevent re-creating the
@@ -185,7 +185,7 @@ export interface IntersectionObserverHookOptions<E extends HTMLElement>
185
185
  * }
186
186
  * ```
187
187
  */
188
- getTargets?(): readonly Element[];
188
+ getTargets?: () => readonly Element[];
189
189
  }
190
190
 
191
191
  /**