@react-md/core 1.0.0-next.19 → 1.0.0-next.20

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 (1071) hide show
  1. package/dist/CoreProviders.js.map +1 -1
  2. package/dist/NoSsr.js.map +1 -1
  3. package/dist/RootHtml.js.map +1 -1
  4. package/dist/SsrProvider.js.map +1 -1
  5. package/dist/_core.scss +10 -9
  6. package/dist/app-bar/AppBar.js.map +1 -1
  7. package/dist/app-bar/AppBarTitle.js.map +1 -1
  8. package/dist/app-bar/_app-bar.scss +0 -4
  9. package/dist/app-bar/styles.js.map +1 -1
  10. package/dist/autocomplete/Autocomplete.js.map +1 -1
  11. package/dist/autocomplete/AutocompleteChip.js +1 -1
  12. package/dist/autocomplete/AutocompleteChip.js.map +1 -1
  13. package/dist/autocomplete/AutocompleteCircularProgress.js.map +1 -1
  14. package/dist/autocomplete/AutocompleteClearButton.js +1 -1
  15. package/dist/autocomplete/AutocompleteClearButton.js.map +1 -1
  16. package/dist/autocomplete/AutocompleteDropdownButton.js +1 -1
  17. package/dist/autocomplete/AutocompleteDropdownButton.js.map +1 -1
  18. package/dist/autocomplete/AutocompleteListboxChildren.js.map +1 -1
  19. package/dist/autocomplete/_autocomplete.scss +15 -13
  20. package/dist/autocomplete/autocompleteStyles.js.map +1 -1
  21. package/dist/autocomplete/types.js.map +1 -1
  22. package/dist/autocomplete/useAutocomplete.js +1 -1
  23. package/dist/autocomplete/useAutocomplete.js.map +1 -1
  24. package/dist/autocomplete/utils.js.map +1 -1
  25. package/dist/avatar/Avatar.js.map +1 -1
  26. package/dist/avatar/styles.js.map +1 -1
  27. package/dist/badge/Badge.js.map +1 -1
  28. package/dist/badge/styles.js.map +1 -1
  29. package/dist/box/Box.js +2 -1
  30. package/dist/box/Box.js.map +1 -1
  31. package/dist/box/_box.scss +24 -1
  32. package/dist/box/styles.d.ts +11 -0
  33. package/dist/box/styles.js +4 -3
  34. package/dist/box/styles.js.map +1 -1
  35. package/dist/button/AsyncButton.js.map +1 -1
  36. package/dist/button/Button.js.map +1 -1
  37. package/dist/button/ButtonUnstyled.js.map +1 -1
  38. package/dist/button/FloatingActionButton.js.map +1 -1
  39. package/dist/button/TooltippedButton.js.map +1 -1
  40. package/dist/button/buttonStyles.js.map +1 -1
  41. package/dist/card/Card.d.ts +4 -13
  42. package/dist/card/Card.js +3 -3
  43. package/dist/card/Card.js.map +1 -1
  44. package/dist/card/CardContent.js.map +1 -1
  45. package/dist/card/CardFooter.js.map +1 -1
  46. package/dist/card/CardHeader.js.map +1 -1
  47. package/dist/card/CardSubtitle.js.map +1 -1
  48. package/dist/card/CardTitle.js.map +1 -1
  49. package/dist/card/ClickableCard.js.map +1 -1
  50. package/dist/card/_card.scss +5 -0
  51. package/dist/card/styles.js.map +1 -1
  52. package/dist/chip/Chip.js +1 -1
  53. package/dist/chip/Chip.js.map +1 -1
  54. package/dist/chip/styles.js.map +1 -1
  55. package/dist/dialog/Dialog.d.ts +4 -4
  56. package/dist/dialog/Dialog.js.map +1 -1
  57. package/dist/dialog/DialogContent.js.map +1 -1
  58. package/dist/dialog/DialogFooter.js.map +1 -1
  59. package/dist/dialog/DialogHeader.js.map +1 -1
  60. package/dist/dialog/DialogTitle.js.map +1 -1
  61. package/dist/dialog/FixedDialog.js +8 -5
  62. package/dist/dialog/FixedDialog.js.map +1 -1
  63. package/dist/dialog/NestedDialogProvider.js.map +1 -1
  64. package/dist/dialog/styles.d.ts +12 -3
  65. package/dist/dialog/styles.js.map +1 -1
  66. package/dist/divider/Divider.js.map +1 -1
  67. package/dist/divider/styles.js.map +1 -1
  68. package/dist/draggable/useDraggable.d.ts +3 -0
  69. package/dist/draggable/useDraggable.js +20 -5
  70. package/dist/draggable/useDraggable.js.map +1 -1
  71. package/dist/draggable/utils.js.map +1 -1
  72. package/dist/expansion-panel/ExpansionList.js.map +1 -1
  73. package/dist/expansion-panel/ExpansionPanel.js.map +1 -1
  74. package/dist/expansion-panel/ExpansionPanelHeader.js +1 -1
  75. package/dist/expansion-panel/ExpansionPanelHeader.js.map +1 -1
  76. package/dist/expansion-panel/expansionPanelStyles.js.map +1 -1
  77. package/dist/expansion-panel/useExpansionList.js.map +1 -1
  78. package/dist/expansion-panel/useExpansionPanels.js.map +1 -1
  79. package/dist/files/FileInput.js +1 -1
  80. package/dist/files/FileInput.js.map +1 -1
  81. package/dist/files/styles.js.map +1 -1
  82. package/dist/files/useFileUpload.js.map +1 -1
  83. package/dist/files/utils.d.ts +31 -1
  84. package/dist/files/utils.js +30 -0
  85. package/dist/files/utils.js.map +1 -1
  86. package/dist/focus/useFocusContainer.d.ts +5 -7
  87. package/dist/focus/useFocusContainer.js +5 -7
  88. package/dist/focus/useFocusContainer.js.map +1 -1
  89. package/dist/form/Checkbox.js.map +1 -1
  90. package/dist/form/Fieldset.js.map +1 -1
  91. package/dist/form/Form.js.map +1 -1
  92. package/dist/form/FormMessage.js.map +1 -1
  93. package/dist/form/FormMessageContainer.js.map +1 -1
  94. package/dist/form/FormMessageCounter.js.map +1 -1
  95. package/dist/form/InputToggle.js.map +1 -1
  96. package/dist/form/InputToggleIcon.js +1 -1
  97. package/dist/form/InputToggleIcon.js.map +1 -1
  98. package/dist/form/Label.js.map +1 -1
  99. package/dist/form/Legend.js.map +1 -1
  100. package/dist/form/Listbox.js.map +1 -1
  101. package/dist/form/ListboxProvider.js.map +1 -1
  102. package/dist/form/MenuItemCheckbox.js.map +1 -1
  103. package/dist/form/MenuItemFileInput.d.ts +1 -4
  104. package/dist/form/MenuItemFileInput.js +15 -6
  105. package/dist/form/MenuItemFileInput.js.map +1 -1
  106. package/dist/form/MenuItemInputToggle.js.map +1 -1
  107. package/dist/form/MenuItemRadio.js.map +1 -1
  108. package/dist/form/MenuItemSwitch.js.map +1 -1
  109. package/dist/form/MenuItemTextField.js.map +1 -1
  110. package/dist/form/NativeSelect.js +1 -1
  111. package/dist/form/NativeSelect.js.map +1 -1
  112. package/dist/form/OptGroup.js.map +1 -1
  113. package/dist/form/Option.js +4 -4
  114. package/dist/form/Option.js.map +1 -1
  115. package/dist/form/Password.js +2 -2
  116. package/dist/form/Password.js.map +1 -1
  117. package/dist/form/Radio.js.map +1 -1
  118. package/dist/form/ResizingTextAreaWrapper.js.map +1 -1
  119. package/dist/form/Select.js +1 -1
  120. package/dist/form/Select.js.map +1 -1
  121. package/dist/form/SelectedOption.js.map +1 -1
  122. package/dist/form/Slider.js +9 -62
  123. package/dist/form/Slider.js.map +1 -1
  124. package/dist/form/SliderContainer.js.map +1 -1
  125. package/dist/form/SliderMark.js.map +1 -1
  126. package/dist/form/SliderMarkLabel.js.map +1 -1
  127. package/dist/form/SliderThumb.js +1 -0
  128. package/dist/form/SliderThumb.js.map +1 -1
  129. package/dist/form/SliderTrack.js.map +1 -1
  130. package/dist/form/SliderValueMarks.js.map +1 -1
  131. package/dist/form/SliderValueTooltip.js.map +1 -1
  132. package/dist/form/Switch.js.map +1 -1
  133. package/dist/form/SwitchTrack.js.map +1 -1
  134. package/dist/form/TextArea.js.map +1 -1
  135. package/dist/form/TextField.js.map +1 -1
  136. package/dist/form/TextFieldAddon.js.map +1 -1
  137. package/dist/form/TextFieldContainer.js.map +1 -1
  138. package/dist/form/_form.scss +313 -269
  139. package/dist/form/formMessageContainerStyles.js.map +1 -1
  140. package/dist/form/formMessageStyles.js.map +1 -1
  141. package/dist/form/inputToggleStyles.js.map +1 -1
  142. package/dist/form/menuItemInputToggleStyles.js.map +1 -1
  143. package/dist/form/nativeSelectStyles.js.map +1 -1
  144. package/dist/form/optionStyles.js.map +1 -1
  145. package/dist/form/passwordStyles.js.map +1 -1
  146. package/dist/form/selectStyles.js.map +1 -1
  147. package/dist/form/selectUtils.js.map +1 -1
  148. package/dist/form/sliderUtils.d.ts +2 -7
  149. package/dist/form/sliderUtils.js +5 -5
  150. package/dist/form/sliderUtils.js.map +1 -1
  151. package/dist/form/switchStyles.js.map +1 -1
  152. package/dist/form/textAreaStyles.js.map +1 -1
  153. package/dist/form/textFieldContainerStyles.js.map +1 -1
  154. package/dist/form/textFieldStyles.js.map +1 -1
  155. package/dist/form/types.js.map +1 -1
  156. package/dist/form/useCheckboxGroup.d.ts +2 -2
  157. package/dist/form/useCheckboxGroup.js.map +1 -1
  158. package/dist/form/useCombobox.js.map +1 -1
  159. package/dist/form/useEditableCombobox.js.map +1 -1
  160. package/dist/form/useFormReset.js.map +1 -1
  161. package/dist/form/useNumberField.js.map +1 -1
  162. package/dist/form/useRadioGroup.d.ts +1 -1
  163. package/dist/form/useRadioGroup.js.map +1 -1
  164. package/dist/form/useRangeSlider.d.ts +1 -0
  165. package/dist/form/useRangeSlider.js.map +1 -1
  166. package/dist/form/useResizingTextArea.js.map +1 -1
  167. package/dist/form/useSelectCombobox.js.map +1 -1
  168. package/dist/form/useSlider.d.ts +1 -3
  169. package/dist/form/useSlider.js.map +1 -1
  170. package/dist/form/useSliderDraggable.d.ts +9 -0
  171. package/dist/form/useSliderDraggable.js +44 -0
  172. package/dist/form/useSliderDraggable.js.map +1 -0
  173. package/dist/form/useTextField.d.ts +24 -14
  174. package/dist/form/useTextField.js +7 -5
  175. package/dist/form/useTextField.js.map +1 -1
  176. package/dist/form/useTextFieldContainerAddons.js.map +1 -1
  177. package/dist/form/validation.js +2 -0
  178. package/dist/form/validation.js.map +1 -1
  179. package/dist/hoverMode/useHoverMode.d.ts +64 -3
  180. package/dist/hoverMode/useHoverMode.js.map +1 -1
  181. package/dist/hoverMode/useHoverModeProvider.d.ts +22 -12
  182. package/dist/hoverMode/useHoverModeProvider.js +21 -11
  183. package/dist/hoverMode/useHoverModeProvider.js.map +1 -1
  184. package/dist/icon/FontIcon.js.map +1 -1
  185. package/dist/icon/IconRotator.js.map +1 -1
  186. package/dist/icon/MaterialIcon.js.map +1 -1
  187. package/dist/icon/MaterialSymbol.js.map +1 -1
  188. package/dist/icon/SVGIcon.js.map +1 -1
  189. package/dist/icon/TextIconSpacing.js.map +1 -1
  190. package/dist/icon/{iconConfig.js → config.js} +1 -1
  191. package/dist/icon/config.js.map +1 -0
  192. package/dist/icon/materialConfig.js.map +1 -1
  193. package/dist/icon/styles.js.map +1 -1
  194. package/dist/interaction/Ripple.js.map +1 -1
  195. package/dist/interaction/RippleContainer.js.map +1 -1
  196. package/dist/interaction/UserInteractionModeProvider.js.map +1 -1
  197. package/dist/interaction/_interaction.scss +2 -2
  198. package/dist/interaction/useElementInteraction.d.ts +24 -25
  199. package/dist/interaction/useElementInteraction.js +20 -21
  200. package/dist/interaction/useElementInteraction.js.map +1 -1
  201. package/dist/interaction/useHigherContrastChildren.d.ts +8 -6
  202. package/dist/interaction/useHigherContrastChildren.js +10 -8
  203. package/dist/interaction/useHigherContrastChildren.js.map +1 -1
  204. package/dist/interaction/utils.js.map +1 -1
  205. package/dist/layout/LayoutAppBar.js.map +1 -1
  206. package/dist/layout/LayoutNav.js.map +1 -1
  207. package/dist/layout/LayoutWindowSplitter.js.map +1 -1
  208. package/dist/layout/Main.js.map +1 -1
  209. package/dist/layout/_layout.scss +4 -0
  210. package/dist/layout/layoutNavStyles.js.map +1 -1
  211. package/dist/layout/layoutWindowSplitterStyles.js.map +1 -1
  212. package/dist/layout/mainStyles.js.map +1 -1
  213. package/dist/layout/useExpandableLayout.d.ts +12 -14
  214. package/dist/layout/useExpandableLayout.js +13 -15
  215. package/dist/layout/useExpandableLayout.js.map +1 -1
  216. package/dist/layout/useHorizontalLayoutTransition.js.map +1 -1
  217. package/dist/layout/useLayoutAppBarHeight.js.map +1 -1
  218. package/dist/layout/useLayoutTree.d.ts +4 -3
  219. package/dist/layout/useLayoutTree.js +4 -3
  220. package/dist/layout/useLayoutTree.js.map +1 -1
  221. package/dist/layout/useLayoutWindowSplitter.js.map +1 -1
  222. package/dist/layout/useMainTabIndex.js.map +1 -1
  223. package/dist/layout/useResizableLayout.d.ts +13 -16
  224. package/dist/layout/useResizableLayout.js +13 -16
  225. package/dist/layout/useResizableLayout.js.map +1 -1
  226. package/dist/layout/useTemporaryLayout.d.ts +14 -9
  227. package/dist/layout/useTemporaryLayout.js +12 -10
  228. package/dist/layout/useTemporaryLayout.js.map +1 -1
  229. package/dist/link/Link.js.map +1 -1
  230. package/dist/link/SkipToMainContent.js.map +1 -1
  231. package/dist/link/styles.js.map +1 -1
  232. package/dist/list/List.js.map +1 -1
  233. package/dist/list/ListItem.js +1 -1
  234. package/dist/list/ListItem.js.map +1 -1
  235. package/dist/list/ListItemAddon.js.map +1 -1
  236. package/dist/list/ListItemChildren.js.map +1 -1
  237. package/dist/list/ListItemLink.js.map +1 -1
  238. package/dist/list/ListItemText.js.map +1 -1
  239. package/dist/list/ListSubheader.js.map +1 -1
  240. package/dist/list/listItemStyles.js.map +1 -1
  241. package/dist/list/listStyles.js.map +1 -1
  242. package/dist/list/types.js.map +1 -1
  243. package/dist/media-queries/AppSizeProvider.d.ts +1 -1
  244. package/dist/media-queries/AppSizeProvider.js +1 -1
  245. package/dist/media-queries/AppSizeProvider.js.map +1 -1
  246. package/dist/media-queries/useMediaQuery.d.ts +3 -3
  247. package/dist/media-queries/useMediaQuery.js +3 -3
  248. package/dist/media-queries/useMediaQuery.js.map +1 -1
  249. package/dist/menu/DropdownMenu.js.map +1 -1
  250. package/dist/menu/Menu.js.map +1 -1
  251. package/dist/menu/MenuBar.js.map +1 -1
  252. package/dist/menu/MenuButton.js +1 -1
  253. package/dist/menu/MenuButton.js.map +1 -1
  254. package/dist/menu/MenuConfigurationProvider.js.map +1 -1
  255. package/dist/menu/MenuItem.js.map +1 -1
  256. package/dist/menu/MenuItemButton.js +1 -1
  257. package/dist/menu/MenuItemButton.js.map +1 -1
  258. package/dist/menu/MenuItemCircularProgress.js.map +1 -1
  259. package/dist/menu/MenuItemGroup.js.map +1 -1
  260. package/dist/menu/MenuItemSeparator.js.map +1 -1
  261. package/dist/menu/MenuSheet.js.map +1 -1
  262. package/dist/menu/MenuVisibilityProvider.js.map +1 -1
  263. package/dist/menu/MenuWidget.js.map +1 -1
  264. package/dist/menu/MenuWidgetKeyboardProvider.js.map +1 -1
  265. package/dist/menu/useContextMenu.js.map +1 -1
  266. package/dist/menu/useMenuBarProvider.js.map +1 -1
  267. package/dist/movement/types.js.map +1 -1
  268. package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
  269. package/dist/movement/utils.js.map +1 -1
  270. package/dist/navigation/CollapsibleNavGroup.js.map +1 -1
  271. package/dist/navigation/DefaultNavigationRenderer.js.map +1 -1
  272. package/dist/navigation/NavGroup.js.map +1 -1
  273. package/dist/navigation/NavItem.js.map +1 -1
  274. package/dist/navigation/NavItemButton.js +1 -1
  275. package/dist/navigation/NavItemButton.js.map +1 -1
  276. package/dist/navigation/NavItemLink.js.map +1 -1
  277. package/dist/navigation/NavSubheader.d.ts +1 -1
  278. package/dist/navigation/NavSubheader.js +1 -1
  279. package/dist/navigation/NavSubheader.js.map +1 -1
  280. package/dist/navigation/Navigation.js.map +1 -1
  281. package/dist/navigation/navGroupStyles.js.map +1 -1
  282. package/dist/navigation/navItemStyles.js.map +1 -1
  283. package/dist/navigation/types.js.map +1 -1
  284. package/dist/navigation/useActiveHeadingId.d.ts +1 -1
  285. package/dist/navigation/useActiveHeadingId.js +4 -4
  286. package/dist/navigation/useActiveHeadingId.js.map +1 -1
  287. package/dist/navigation/useNavigationExpansion.js.map +1 -1
  288. package/dist/navigation/useTableOfContentsHeadings.d.ts +75 -0
  289. package/dist/navigation/useTableOfContentsHeadings.js +91 -0
  290. package/dist/navigation/useTableOfContentsHeadings.js.map +1 -0
  291. package/dist/objectFit.js.map +1 -1
  292. package/dist/overlay/Overlay.js +1 -1
  293. package/dist/overlay/Overlay.js.map +1 -1
  294. package/dist/overlay/overlayStyles.d.ts +7 -3
  295. package/dist/overlay/overlayStyles.js.map +1 -1
  296. package/dist/portal/Portal.js.map +1 -1
  297. package/dist/portal/PortalContainerProvider.js.map +1 -1
  298. package/dist/positioning/createHorizontalPosition.js.map +1 -1
  299. package/dist/positioning/createVerticalPosition.js.map +1 -1
  300. package/dist/positioning/useFixedPositioning.d.ts +11 -8
  301. package/dist/positioning/useFixedPositioning.js +7 -6
  302. package/dist/positioning/useFixedPositioning.js.map +1 -1
  303. package/dist/progress/CircularProgress.js.map +1 -1
  304. package/dist/progress/LinearProgress.js.map +1 -1
  305. package/dist/progress/_progress.scss +2 -1
  306. package/dist/responsive-item/ResponsiveItem.js.map +1 -1
  307. package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
  308. package/dist/responsive-item/responsiveItemOverlayStyles.js.map +1 -1
  309. package/dist/responsive-item/responsiveItemStyles.js.map +1 -1
  310. package/dist/scroll/ScrollLock.js.map +1 -1
  311. package/dist/scroll/useScrollLock.d.ts +1 -1
  312. package/dist/scroll/useScrollLock.js +1 -1
  313. package/dist/scroll/useScrollLock.js.map +1 -1
  314. package/dist/searching/fuzzy.d.ts +1 -1
  315. package/dist/searching/fuzzy.js.map +1 -1
  316. package/dist/searching/useFuzzyMatch.js.map +1 -1
  317. package/dist/segmented-button/SegmentedButton.js +1 -1
  318. package/dist/segmented-button/SegmentedButton.js.map +1 -1
  319. package/dist/segmented-button/SegmentedButtonContainer.js.map +1 -1
  320. package/dist/segmented-button/_segmented-button.scss +40 -0
  321. package/dist/segmented-button/segmentedButtonContainerStyles.js.map +1 -1
  322. package/dist/segmented-button/segmentedButtonStyles.js.map +1 -1
  323. package/dist/sheet/Sheet.js.map +1 -1
  324. package/dist/sheet/styles.js.map +1 -1
  325. package/dist/snackbar/DefaultToastRenderer.js.map +1 -1
  326. package/dist/snackbar/Snackbar.js.map +1 -1
  327. package/dist/snackbar/Toast.js.map +1 -1
  328. package/dist/snackbar/ToastActionButton.js.map +1 -1
  329. package/dist/snackbar/ToastCloseButton.js +1 -1
  330. package/dist/snackbar/ToastCloseButton.js.map +1 -1
  331. package/dist/snackbar/ToastContent.js.map +1 -1
  332. package/dist/snackbar/ToastManager.js.map +1 -1
  333. package/dist/snackbar/ToastManagerProvider.js.map +1 -1
  334. package/dist/snackbar/snackbarStyles.js.map +1 -1
  335. package/dist/snackbar/toastContentStyles.js.map +1 -1
  336. package/dist/snackbar/toastStyles.js.map +1 -1
  337. package/dist/snackbar/useCurrentToastActions.js.map +1 -1
  338. package/dist/storage/internalUtils.d.ts +19 -0
  339. package/dist/storage/internalUtils.js +22 -0
  340. package/dist/storage/internalUtils.js.map +1 -0
  341. package/dist/storage/types.d.ts +75 -0
  342. package/dist/storage/types.js +3 -0
  343. package/dist/storage/types.js.map +1 -0
  344. package/dist/storage/useStorage.d.ts +113 -0
  345. package/dist/storage/useStorage.js +247 -0
  346. package/dist/storage/useStorage.js.map +1 -0
  347. package/dist/storage/utils.d.ts +94 -0
  348. package/dist/storage/utils.js +106 -0
  349. package/dist/storage/utils.js.map +1 -0
  350. package/dist/suspense/CircularProgressSuspense.js.map +1 -1
  351. package/dist/suspense/NullSuspense.js.map +1 -1
  352. package/dist/table/StickyTableSection.js.map +1 -1
  353. package/dist/table/Table.js.map +1 -1
  354. package/dist/table/TableBody.js.map +1 -1
  355. package/dist/table/TableCell.js +1 -1
  356. package/dist/table/TableCell.js.map +1 -1
  357. package/dist/table/TableCellContent.js.map +1 -1
  358. package/dist/table/TableCheckbox.js.map +1 -1
  359. package/dist/table/TableConfigurationProvider.js.map +1 -1
  360. package/dist/table/TableContainer.js.map +1 -1
  361. package/dist/table/TableContainerProvider.js.map +1 -1
  362. package/dist/table/TableFooter.js.map +1 -1
  363. package/dist/table/TableHeader.js.map +1 -1
  364. package/dist/table/TableRadio.js.map +1 -1
  365. package/dist/table/TableRow.js.map +1 -1
  366. package/dist/table/_table.scss +0 -1
  367. package/dist/table/tableCellStyles.js.map +1 -1
  368. package/dist/table/tableFooterStyles.js.map +1 -1
  369. package/dist/table/tableHeaderStyles.js.map +1 -1
  370. package/dist/table/tableRowStyles.js.map +1 -1
  371. package/dist/table/tableStyles.js.map +1 -1
  372. package/dist/table/useStickyTableSection.js.map +1 -1
  373. package/dist/table/useTableSectionConfig.js.map +1 -1
  374. package/dist/tabs/SimpleTabPanel.d.ts +17 -0
  375. package/dist/tabs/SimpleTabPanel.js +21 -0
  376. package/dist/tabs/SimpleTabPanel.js.map +1 -0
  377. package/dist/tabs/SimpleTabPanels.d.ts +17 -0
  378. package/dist/tabs/SimpleTabPanels.js +18 -0
  379. package/dist/tabs/SimpleTabPanels.js.map +1 -0
  380. package/dist/tabs/Tab.js.map +1 -1
  381. package/dist/tabs/TabList.d.ts +8 -25
  382. package/dist/tabs/TabList.js +4 -6
  383. package/dist/tabs/TabList.js.map +1 -1
  384. package/dist/tabs/TabListScrollButton.js +2 -1
  385. package/dist/tabs/TabListScrollButton.js.map +1 -1
  386. package/dist/tabs/_tabs.scss +50 -14
  387. package/dist/tabs/tabIndicatorStyles.js.map +1 -1
  388. package/dist/tabs/tabListScrollButtonStyles.js.map +1 -1
  389. package/dist/tabs/tabListStyles.d.ts +9 -0
  390. package/dist/tabs/tabListStyles.js +2 -1
  391. package/dist/tabs/tabListStyles.js.map +1 -1
  392. package/dist/tabs/tabStyles.d.ts +7 -0
  393. package/dist/tabs/tabStyles.js.map +1 -1
  394. package/dist/tabs/types.d.ts +25 -0
  395. package/dist/tabs/types.js +24 -0
  396. package/dist/tabs/types.js.map +1 -0
  397. package/dist/tabs/useMaxTabPanelHeight.d.ts +82 -0
  398. package/dist/tabs/useMaxTabPanelHeight.js +95 -0
  399. package/dist/tabs/useMaxTabPanelHeight.js.map +1 -0
  400. package/dist/tabs/useTabList.d.ts +4 -2
  401. package/dist/tabs/useTabList.js +24 -6
  402. package/dist/tabs/useTabList.js.map +1 -1
  403. package/dist/tabs/useTabs.d.ts +53 -68
  404. package/dist/tabs/useTabs.js +6 -2
  405. package/dist/tabs/useTabs.js.map +1 -1
  406. package/dist/tabs/utils.d.ts +4 -0
  407. package/dist/tabs/utils.js +5 -0
  408. package/dist/tabs/utils.js.map +1 -1
  409. package/dist/test-utils/drag.d.ts +1 -0
  410. package/dist/test-utils/index.d.ts +6 -4
  411. package/dist/test-utils/index.js +6 -4
  412. package/dist/test-utils/index.js.map +1 -1
  413. package/dist/test-utils/jest-globals/index.d.ts +4 -0
  414. package/dist/test-utils/jest-globals/index.js +6 -0
  415. package/dist/test-utils/jest-globals/index.js.map +1 -0
  416. package/dist/test-utils/jest-globals/match-media.d.ts +32 -0
  417. package/dist/test-utils/jest-globals/match-media.js +35 -0
  418. package/dist/test-utils/jest-globals/match-media.js.map +1 -0
  419. package/dist/test-utils/jest-globals/resize-observer.d.ts +5 -0
  420. package/dist/test-utils/jest-globals/resize-observer.js +10 -0
  421. package/dist/test-utils/jest-globals/resize-observer.js.map +1 -0
  422. package/dist/test-utils/jest-globals/setup.d.ts +1 -0
  423. package/dist/test-utils/{jest-setup.js → jest-globals/setup.js} +4 -3
  424. package/dist/test-utils/jest-globals/setup.js.map +1 -0
  425. package/dist/test-utils/{timers.d.ts → jest-globals/timers.d.ts} +2 -2
  426. package/dist/test-utils/{timers.js → jest-globals/timers.js} +2 -2
  427. package/dist/test-utils/jest-globals/timers.js.map +1 -0
  428. package/dist/test-utils/jest-globals/uploadMenuItemFileInput.d.ts +32 -0
  429. package/dist/test-utils/jest-globals/uploadMenuItemFileInput.js +39 -0
  430. package/dist/test-utils/jest-globals/uploadMenuItemFileInput.js.map +1 -0
  431. package/dist/test-utils/mocks/IntersectionObserver.js.map +1 -0
  432. package/dist/test-utils/{ResizeObserver.d.ts → mocks/ResizeObserver.d.ts} +16 -23
  433. package/dist/test-utils/{ResizeObserver.js → mocks/ResizeObserver.js} +17 -38
  434. package/dist/test-utils/mocks/ResizeObserver.js.map +1 -0
  435. package/dist/test-utils/mocks/match-media-implementation.d.ts +42 -0
  436. package/dist/test-utils/mocks/match-media-implementation.js +46 -0
  437. package/dist/test-utils/mocks/match-media-implementation.js.map +1 -0
  438. package/dist/test-utils/mocks/match-media.d.ts +32 -0
  439. package/dist/test-utils/mocks/match-media.js +39 -0
  440. package/dist/test-utils/mocks/match-media.js.map +1 -0
  441. package/dist/test-utils/polyfills/IntersectionObserver.js +1 -1
  442. package/dist/test-utils/polyfills/IntersectionObserver.js.map +1 -1
  443. package/dist/test-utils/polyfills/ResizeObserver.js +1 -1
  444. package/dist/test-utils/polyfills/ResizeObserver.js.map +1 -1
  445. package/dist/test-utils/polyfills/matchMedia.js +1 -1
  446. package/dist/test-utils/polyfills/matchMedia.js.map +1 -1
  447. package/dist/test-utils/queries/index.d.ts +2 -0
  448. package/dist/test-utils/queries/index.js +4 -0
  449. package/dist/test-utils/queries/index.js.map +1 -0
  450. package/dist/test-utils/queries/select.d.ts +67 -0
  451. package/dist/test-utils/queries/select.js +69 -0
  452. package/dist/test-utils/queries/select.js.map +1 -0
  453. package/dist/test-utils/queries/slider.d.ts +126 -0
  454. package/dist/test-utils/queries/slider.js +136 -0
  455. package/dist/test-utils/queries/slider.js.map +1 -0
  456. package/dist/test-utils/queries/types.d.ts +8 -0
  457. package/dist/test-utils/queries/types.js +5 -0
  458. package/dist/test-utils/queries/types.js.map +1 -0
  459. package/dist/test-utils/render.js.map +1 -1
  460. package/dist/test-utils/utils/createFileList.d.ts +4 -0
  461. package/dist/test-utils/utils/createFileList.js +27 -0
  462. package/dist/test-utils/utils/createFileList.js.map +1 -0
  463. package/dist/test-utils/utils/createResizeObserverEntry.d.ts +18 -0
  464. package/dist/test-utils/utils/createResizeObserverEntry.js +33 -0
  465. package/dist/test-utils/utils/createResizeObserverEntry.js.map +1 -0
  466. package/dist/test-utils/vitest/index.d.ts +4 -0
  467. package/dist/test-utils/vitest/index.js +6 -0
  468. package/dist/test-utils/vitest/index.js.map +1 -0
  469. package/dist/test-utils/vitest/match-media.d.ts +32 -0
  470. package/dist/test-utils/vitest/match-media.js +35 -0
  471. package/dist/test-utils/vitest/match-media.js.map +1 -0
  472. package/dist/test-utils/vitest/resize-observer.d.ts +5 -0
  473. package/dist/test-utils/vitest/resize-observer.js +10 -0
  474. package/dist/test-utils/vitest/resize-observer.js.map +1 -0
  475. package/dist/test-utils/vitest/setup.d.ts +1 -0
  476. package/dist/test-utils/vitest/setup.js +14 -0
  477. package/dist/test-utils/vitest/setup.js.map +1 -0
  478. package/dist/test-utils/vitest/timers.d.ts +42 -0
  479. package/dist/test-utils/vitest/timers.js +42 -0
  480. package/dist/test-utils/vitest/timers.js.map +1 -0
  481. package/dist/test-utils/vitest/uploadMenuItemFileInput.d.ts +32 -0
  482. package/dist/test-utils/vitest/uploadMenuItemFileInput.js +39 -0
  483. package/dist/test-utils/vitest/uploadMenuItemFileInput.js.map +1 -0
  484. package/dist/theme/LocalStorageColorSchemeProvider.d.ts +17 -17
  485. package/dist/theme/LocalStorageColorSchemeProvider.js +19 -19
  486. package/dist/theme/LocalStorageColorSchemeProvider.js.map +1 -1
  487. package/dist/theme/ThemeProvider.d.ts +2 -2
  488. package/dist/theme/ThemeProvider.js +4 -4
  489. package/dist/theme/ThemeProvider.js.map +1 -1
  490. package/dist/theme/_theme.scss +0 -4
  491. package/dist/theme/isColorScheme.d.ts +5 -5
  492. package/dist/theme/isColorScheme.js +5 -5
  493. package/dist/theme/isColorScheme.js.map +1 -1
  494. package/dist/theme/types.d.ts +10 -22
  495. package/dist/theme/types.js.map +1 -1
  496. package/dist/theme/useCSSVariables.d.ts +8 -15
  497. package/dist/theme/useCSSVariables.js.map +1 -1
  498. package/dist/theme/useColorScheme.d.ts +15 -13
  499. package/dist/theme/useColorScheme.js +17 -15
  500. package/dist/theme/useColorScheme.js.map +1 -1
  501. package/dist/theme/useColorSchemeMetaTag.d.ts +15 -2
  502. package/dist/theme/useColorSchemeMetaTag.js +13 -0
  503. package/dist/theme/useColorSchemeMetaTag.js.map +1 -1
  504. package/dist/theme/useColorSchemeProvider.d.ts +18 -20
  505. package/dist/theme/useColorSchemeProvider.js +13 -13
  506. package/dist/theme/useColorSchemeProvider.js.map +1 -1
  507. package/dist/theme/{usePrefersDarkScheme.js → usePrefersDarkTheme.js} +1 -1
  508. package/dist/theme/usePrefersDarkTheme.js.map +1 -0
  509. package/dist/tooltip/Tooltip.js.map +1 -1
  510. package/dist/tooltip/TooltipHoverModeProvider.js.map +1 -1
  511. package/dist/tooltip/tooltipStyles.js.map +1 -1
  512. package/dist/tooltip/useTooltip.d.ts +5 -2
  513. package/dist/tooltip/useTooltip.js.map +1 -1
  514. package/dist/tooltip/useTooltipPosition.js.map +1 -1
  515. package/dist/transition/CSSTransition.js.map +1 -1
  516. package/dist/transition/Collapse.js.map +1 -1
  517. package/dist/transition/CrossFade.d.ts +1 -1
  518. package/dist/transition/CrossFade.js +1 -1
  519. package/dist/transition/CrossFade.js.map +1 -1
  520. package/dist/transition/ScaleTransition.js.map +1 -1
  521. package/dist/transition/SkeletonPlaceholder.js.map +1 -1
  522. package/dist/transition/Slide.js.map +1 -1
  523. package/dist/transition/SlideContainer.js.map +1 -1
  524. package/dist/transition/collapseStyles.js.map +1 -1
  525. package/dist/transition/config.d.ts +4 -1
  526. package/dist/transition/config.js.map +1 -1
  527. package/dist/transition/maxWidthTransition.d.ts +6 -0
  528. package/dist/transition/maxWidthTransition.js +3 -1
  529. package/dist/transition/maxWidthTransition.js.map +1 -1
  530. package/dist/transition/skeletonPlaceholderUtils.js.map +1 -1
  531. package/dist/transition/types.d.ts +0 -1
  532. package/dist/transition/types.js.map +1 -1
  533. package/dist/transition/useCSSTransition.d.ts +8 -4
  534. package/dist/transition/useCSSTransition.js +8 -4
  535. package/dist/transition/useCSSTransition.js.map +1 -1
  536. package/dist/transition/useCarousel.js.map +1 -1
  537. package/dist/transition/useCollapseTransition.d.ts +13 -8
  538. package/dist/transition/useCollapseTransition.js +11 -6
  539. package/dist/transition/useCollapseTransition.js.map +1 -1
  540. package/dist/transition/useCrossFadeTransition.js.map +1 -1
  541. package/dist/transition/useMaxWidthTransition.d.ts +9 -0
  542. package/dist/transition/useMaxWidthTransition.js +9 -0
  543. package/dist/transition/useMaxWidthTransition.js.map +1 -1
  544. package/dist/transition/useScaleTransition.d.ts +27 -6
  545. package/dist/transition/useScaleTransition.js +4 -2
  546. package/dist/transition/useScaleTransition.js.map +1 -1
  547. package/dist/transition/useSkeletonPlaceholder.d.ts +16 -0
  548. package/dist/transition/useSkeletonPlaceholder.js +13 -1
  549. package/dist/transition/useSkeletonPlaceholder.js.map +1 -1
  550. package/dist/transition/useSlideTransition.d.ts +12 -16
  551. package/dist/transition/useSlideTransition.js +12 -16
  552. package/dist/transition/useSlideTransition.js.map +1 -1
  553. package/dist/transition/useTransition.js +1 -1
  554. package/dist/transition/useTransition.js.map +1 -1
  555. package/dist/tree/DefaultTreeItemRenderer.js.map +1 -1
  556. package/dist/tree/Tree.js.map +1 -1
  557. package/dist/tree/TreeGroup.js.map +1 -1
  558. package/dist/tree/TreeItem.js.map +1 -1
  559. package/dist/tree/TreeItemExpander.js +1 -1
  560. package/dist/tree/TreeItemExpander.js.map +1 -1
  561. package/dist/tree/TreeProvider.js.map +1 -1
  562. package/dist/tree/_tree.scss +0 -1
  563. package/dist/tree/styles.js.map +1 -1
  564. package/dist/tree/types.js.map +1 -1
  565. package/dist/tree/useTree.js.map +1 -1
  566. package/dist/tree/useTreeExpansion.js.map +1 -1
  567. package/dist/tree/useTreeItems.d.ts +1 -1
  568. package/dist/tree/useTreeItems.js.map +1 -1
  569. package/dist/tree/useTreeMovement.js.map +1 -1
  570. package/dist/tree/useTreeSelection.js.map +1 -1
  571. package/dist/typography/SrOnly.js.map +1 -1
  572. package/dist/typography/TextContainer.js.map +1 -1
  573. package/dist/typography/Typography.js.map +1 -1
  574. package/dist/typography/WritingDirectionProvider.js.map +1 -1
  575. package/dist/typography/textContainerStyles.js.map +1 -1
  576. package/dist/typography/typographyStyles.js.map +1 -1
  577. package/dist/useAsyncFunction.d.ts +20 -0
  578. package/dist/useAsyncFunction.js.map +1 -1
  579. package/dist/useDebouncedFunction.js.map +1 -1
  580. package/dist/useDropzone.d.ts +18 -11
  581. package/dist/useDropzone.js +27 -23
  582. package/dist/useDropzone.js.map +1 -1
  583. package/dist/useElementSize.d.ts +3 -3
  584. package/dist/useElementSize.js +1 -1
  585. package/dist/useElementSize.js.map +1 -1
  586. package/dist/useEnsuredId.d.ts +1 -1
  587. package/dist/useEnsuredId.js +1 -1
  588. package/dist/useEnsuredId.js.map +1 -1
  589. package/dist/useEnsuredRef.d.ts +1 -1
  590. package/dist/useEnsuredRef.js +1 -1
  591. package/dist/useEnsuredRef.js.map +1 -1
  592. package/dist/useEnsuredState.js.map +1 -1
  593. package/dist/useHtmlClassName.d.ts +11 -0
  594. package/dist/useHtmlClassName.js +11 -0
  595. package/dist/useHtmlClassName.js.map +1 -1
  596. package/dist/useIntersectionObserver.d.ts +3 -3
  597. package/dist/useIntersectionObserver.js +2 -2
  598. package/dist/useIntersectionObserver.js.map +1 -1
  599. package/dist/useIsomorphicLayoutEffect.js.map +1 -1
  600. package/dist/useMutationObserver.d.ts +3 -3
  601. package/dist/useMutationObserver.js +4 -4
  602. package/dist/useMutationObserver.js.map +1 -1
  603. package/dist/useOrientation.d.ts +0 -1
  604. package/dist/useOrientation.js +0 -1
  605. package/dist/useOrientation.js.map +1 -1
  606. package/dist/usePageInactive.d.ts +7 -2
  607. package/dist/usePageInactive.js +7 -2
  608. package/dist/usePageInactive.js.map +1 -1
  609. package/dist/useReadonlySet.d.ts +5 -4
  610. package/dist/useReadonlySet.js +4 -3
  611. package/dist/useReadonlySet.js.map +1 -1
  612. package/dist/useResizeListener.d.ts +6 -4
  613. package/dist/useResizeListener.js +6 -4
  614. package/dist/useResizeListener.js.map +1 -1
  615. package/dist/useResizeObserver.d.ts +1 -1
  616. package/dist/useResizeObserver.js +1 -1
  617. package/dist/useResizeObserver.js.map +1 -1
  618. package/dist/useThrottledFunction.js.map +1 -1
  619. package/dist/useToggle.d.ts +3 -3
  620. package/dist/useToggle.js +3 -3
  621. package/dist/useToggle.js.map +1 -1
  622. package/dist/useUnmounted.js.map +1 -1
  623. package/dist/useWindowSize.d.ts +1 -1
  624. package/dist/useWindowSize.js +1 -1
  625. package/dist/useWindowSize.js.map +1 -1
  626. package/dist/utils/RenderRecursively.d.ts +88 -32
  627. package/dist/utils/RenderRecursively.js +88 -32
  628. package/dist/utils/RenderRecursively.js.map +1 -1
  629. package/dist/utils/alphaNumericSort.d.ts +5 -0
  630. package/dist/utils/alphaNumericSort.js +5 -4
  631. package/dist/utils/alphaNumericSort.js.map +1 -1
  632. package/dist/utils/bem.d.ts +49 -6
  633. package/dist/utils/bem.js +5 -14
  634. package/dist/utils/bem.js.map +1 -1
  635. package/dist/utils/getRangeDefaultValue.js.map +1 -1
  636. package/dist/utils/isElementVisible.d.ts +1 -1
  637. package/dist/utils/isElementVisible.js +1 -1
  638. package/dist/utils/isElementVisible.js.map +1 -1
  639. package/dist/utils/loop.d.ts +2 -0
  640. package/dist/utils/loop.js.map +1 -1
  641. package/dist/utils/parseCssLengthUnit.d.ts +1 -1
  642. package/dist/utils/parseCssLengthUnit.js.map +1 -1
  643. package/dist/utils/wait.d.ts +4 -4
  644. package/dist/utils/wait.js +6 -4
  645. package/dist/utils/wait.js.map +1 -1
  646. package/dist/window-splitter/WindowSplitter.js.map +1 -1
  647. package/dist/window-splitter/styles.js.map +1 -1
  648. package/dist/window-splitter/useWindowSplitter.d.ts +4 -1
  649. package/dist/window-splitter/useWindowSplitter.js +4 -1
  650. package/dist/window-splitter/useWindowSplitter.js.map +1 -1
  651. package/package.json +26 -22
  652. package/src/CoreProviders.tsx +8 -6
  653. package/src/NoSsr.tsx +3 -1
  654. package/src/RootHtml.tsx +1 -0
  655. package/src/SsrProvider.tsx +3 -2
  656. package/src/app-bar/AppBar.tsx +3 -2
  657. package/src/app-bar/AppBarTitle.tsx +1 -0
  658. package/src/app-bar/styles.ts +1 -0
  659. package/src/autocomplete/Autocomplete.tsx +2 -0
  660. package/src/autocomplete/AutocompleteChip.tsx +2 -1
  661. package/src/autocomplete/AutocompleteCircularProgress.tsx +1 -0
  662. package/src/autocomplete/AutocompleteClearButton.tsx +3 -1
  663. package/src/autocomplete/AutocompleteDropdownButton.tsx +3 -1
  664. package/src/autocomplete/AutocompleteListboxChildren.tsx +2 -0
  665. package/src/autocomplete/autocompleteStyles.ts +1 -0
  666. package/src/autocomplete/types.ts +1 -0
  667. package/src/autocomplete/useAutocomplete.ts +4 -2
  668. package/src/autocomplete/utils.ts +1 -0
  669. package/src/avatar/Avatar.tsx +3 -2
  670. package/src/avatar/styles.ts +2 -1
  671. package/src/badge/Badge.tsx +3 -2
  672. package/src/badge/styles.ts +1 -0
  673. package/src/box/Box.tsx +5 -2
  674. package/src/box/styles.ts +17 -2
  675. package/src/button/AsyncButton.tsx +3 -1
  676. package/src/button/Button.tsx +4 -2
  677. package/src/button/ButtonUnstyled.tsx +2 -1
  678. package/src/button/FloatingActionButton.tsx +2 -1
  679. package/src/button/TooltippedButton.tsx +4 -2
  680. package/src/button/buttonStyles.ts +2 -1
  681. package/src/card/Card.tsx +10 -23
  682. package/src/card/CardContent.tsx +3 -2
  683. package/src/card/CardFooter.tsx +1 -0
  684. package/src/card/CardHeader.tsx +2 -1
  685. package/src/card/CardSubtitle.tsx +1 -0
  686. package/src/card/CardTitle.tsx +1 -0
  687. package/src/card/ClickableCard.tsx +3 -1
  688. package/src/card/styles.ts +1 -0
  689. package/src/chip/Chip.tsx +4 -2
  690. package/src/chip/styles.ts +1 -0
  691. package/src/dialog/Dialog.tsx +10 -6
  692. package/src/dialog/DialogContent.tsx +3 -2
  693. package/src/dialog/DialogFooter.tsx +3 -2
  694. package/src/dialog/DialogHeader.tsx +2 -1
  695. package/src/dialog/DialogTitle.tsx +2 -1
  696. package/src/dialog/FixedDialog.tsx +14 -9
  697. package/src/dialog/NestedDialogProvider.ts +1 -0
  698. package/src/dialog/styles.ts +5 -4
  699. package/src/divider/Divider.tsx +3 -2
  700. package/src/divider/styles.ts +1 -0
  701. package/src/draggable/useDraggable.ts +25 -12
  702. package/src/draggable/utils.ts +2 -1
  703. package/src/expansion-panel/ExpansionList.tsx +3 -1
  704. package/src/expansion-panel/ExpansionPanel.tsx +3 -1
  705. package/src/expansion-panel/ExpansionPanelHeader.tsx +3 -2
  706. package/src/expansion-panel/expansionPanelStyles.ts +1 -0
  707. package/src/expansion-panel/useExpansionList.ts +2 -0
  708. package/src/expansion-panel/useExpansionPanels.ts +1 -0
  709. package/src/files/FileInput.tsx +4 -2
  710. package/src/files/styles.ts +1 -0
  711. package/src/files/useFileUpload.ts +7 -5
  712. package/src/files/utils.ts +31 -1
  713. package/src/focus/useFocusContainer.ts +10 -10
  714. package/src/form/Checkbox.tsx +2 -1
  715. package/src/form/Fieldset.tsx +2 -1
  716. package/src/form/Form.tsx +2 -1
  717. package/src/form/FormMessage.tsx +1 -0
  718. package/src/form/FormMessageContainer.tsx +2 -1
  719. package/src/form/FormMessageCounter.tsx +1 -0
  720. package/src/form/InputToggle.tsx +3 -1
  721. package/src/form/InputToggleIcon.tsx +4 -3
  722. package/src/form/Label.tsx +1 -0
  723. package/src/form/Legend.tsx +1 -0
  724. package/src/form/Listbox.tsx +1 -0
  725. package/src/form/ListboxProvider.ts +2 -0
  726. package/src/form/MenuItemCheckbox.tsx +5 -3
  727. package/src/form/MenuItemFileInput.tsx +25 -13
  728. package/src/form/MenuItemInputToggle.tsx +3 -1
  729. package/src/form/MenuItemRadio.tsx +4 -2
  730. package/src/form/MenuItemSwitch.tsx +2 -0
  731. package/src/form/MenuItemTextField.tsx +3 -1
  732. package/src/form/NativeSelect.tsx +3 -2
  733. package/src/form/OptGroup.tsx +3 -1
  734. package/src/form/Option.tsx +6 -4
  735. package/src/form/Password.tsx +5 -3
  736. package/src/form/Radio.tsx +2 -0
  737. package/src/form/ResizingTextAreaWrapper.tsx +2 -1
  738. package/src/form/Select.tsx +6 -4
  739. package/src/form/SelectedOption.tsx +1 -0
  740. package/src/form/Slider.tsx +13 -71
  741. package/src/form/SliderContainer.tsx +2 -1
  742. package/src/form/SliderMark.tsx +1 -0
  743. package/src/form/SliderMarkLabel.tsx +2 -1
  744. package/src/form/SliderThumb.tsx +6 -3
  745. package/src/form/SliderTrack.tsx +4 -3
  746. package/src/form/SliderValueMarks.tsx +3 -2
  747. package/src/form/SliderValueTooltip.tsx +2 -0
  748. package/src/form/Switch.tsx +2 -1
  749. package/src/form/SwitchTrack.tsx +2 -1
  750. package/src/form/TextArea.tsx +4 -2
  751. package/src/form/TextField.tsx +2 -1
  752. package/src/form/TextFieldAddon.tsx +1 -0
  753. package/src/form/TextFieldContainer.tsx +3 -1
  754. package/src/form/formMessageContainerStyles.ts +1 -0
  755. package/src/form/formMessageStyles.ts +1 -0
  756. package/src/form/inputToggleStyles.ts +1 -0
  757. package/src/form/menuItemInputToggleStyles.ts +1 -0
  758. package/src/form/nativeSelectStyles.ts +1 -0
  759. package/src/form/optionStyles.ts +1 -0
  760. package/src/form/passwordStyles.ts +1 -0
  761. package/src/form/selectStyles.ts +1 -0
  762. package/src/form/selectUtils.ts +2 -1
  763. package/src/form/sliderUtils.ts +8 -7
  764. package/src/form/switchStyles.ts +1 -0
  765. package/src/form/textAreaStyles.ts +2 -1
  766. package/src/form/textFieldContainerStyles.ts +2 -1
  767. package/src/form/textFieldStyles.ts +1 -0
  768. package/src/form/types.ts +1 -0
  769. package/src/form/useCheckboxGroup.ts +4 -2
  770. package/src/form/useCombobox.ts +4 -2
  771. package/src/form/useEditableCombobox.ts +2 -0
  772. package/src/form/useFormReset.ts +4 -2
  773. package/src/form/useNumberField.ts +3 -1
  774. package/src/form/useRadioGroup.ts +5 -3
  775. package/src/form/useRangeSlider.ts +3 -0
  776. package/src/form/useResizingTextArea.ts +5 -3
  777. package/src/form/useSelectCombobox.ts +2 -1
  778. package/src/form/useSlider.ts +3 -3
  779. package/src/form/useSliderDraggable.ts +71 -0
  780. package/src/form/useTextField.ts +40 -26
  781. package/src/form/useTextFieldContainerAddons.ts +4 -2
  782. package/src/form/validation.ts +2 -0
  783. package/src/hoverMode/useHoverMode.ts +76 -4
  784. package/src/hoverMode/useHoverModeProvider.ts +24 -12
  785. package/src/icon/FontIcon.tsx +3 -2
  786. package/src/icon/IconRotator.tsx +5 -4
  787. package/src/icon/MaterialIcon.tsx +3 -2
  788. package/src/icon/MaterialSymbol.tsx +4 -3
  789. package/src/icon/SVGIcon.tsx +3 -2
  790. package/src/icon/TextIconSpacing.tsx +2 -2
  791. package/src/icon/{iconConfig.tsx → config.tsx} +1 -0
  792. package/src/icon/materialConfig.ts +1 -0
  793. package/src/icon/styles.ts +2 -1
  794. package/src/interaction/Ripple.tsx +2 -0
  795. package/src/interaction/RippleContainer.tsx +1 -0
  796. package/src/interaction/UserInteractionModeProvider.tsx +3 -2
  797. package/src/interaction/useElementInteraction.tsx +39 -36
  798. package/src/interaction/useHigherContrastChildren.tsx +11 -8
  799. package/src/interaction/utils.ts +1 -0
  800. package/src/layout/LayoutAppBar.tsx +2 -0
  801. package/src/layout/LayoutNav.tsx +4 -2
  802. package/src/layout/LayoutWindowSplitter.tsx +4 -2
  803. package/src/layout/Main.tsx +4 -2
  804. package/src/layout/layoutNavStyles.ts +1 -0
  805. package/src/layout/layoutWindowSplitterStyles.ts +1 -0
  806. package/src/layout/mainStyles.ts +1 -0
  807. package/src/layout/useExpandableLayout.ts +17 -17
  808. package/src/layout/useHorizontalLayoutTransition.ts +2 -0
  809. package/src/layout/useLayoutAppBarHeight.ts +3 -1
  810. package/src/layout/useLayoutTree.ts +6 -3
  811. package/src/layout/useLayoutWindowSplitter.ts +2 -1
  812. package/src/layout/useMainTabIndex.ts +1 -0
  813. package/src/layout/useResizableLayout.ts +14 -17
  814. package/src/layout/useTemporaryLayout.ts +18 -11
  815. package/src/link/Link.tsx +3 -2
  816. package/src/link/SkipToMainContent.tsx +4 -2
  817. package/src/link/styles.ts +1 -0
  818. package/src/list/List.tsx +2 -1
  819. package/src/list/ListItem.tsx +4 -2
  820. package/src/list/ListItemAddon.tsx +2 -1
  821. package/src/list/ListItemChildren.tsx +1 -0
  822. package/src/list/ListItemLink.tsx +4 -2
  823. package/src/list/ListItemText.tsx +2 -1
  824. package/src/list/ListSubheader.tsx +2 -1
  825. package/src/list/listItemStyles.ts +1 -0
  826. package/src/list/listStyles.ts +1 -0
  827. package/src/list/types.ts +1 -0
  828. package/src/media-queries/AppSizeProvider.tsx +7 -5
  829. package/src/media-queries/useMediaQuery.ts +5 -3
  830. package/src/menu/DropdownMenu.tsx +5 -3
  831. package/src/menu/Menu.tsx +8 -6
  832. package/src/menu/MenuBar.tsx +2 -0
  833. package/src/menu/MenuButton.tsx +3 -1
  834. package/src/menu/MenuConfigurationProvider.tsx +4 -2
  835. package/src/menu/MenuItem.tsx +2 -0
  836. package/src/menu/MenuItemButton.tsx +3 -1
  837. package/src/menu/MenuItemCircularProgress.tsx +2 -1
  838. package/src/menu/MenuItemGroup.tsx +3 -1
  839. package/src/menu/MenuItemSeparator.tsx +3 -1
  840. package/src/menu/MenuSheet.tsx +3 -1
  841. package/src/menu/MenuVisibilityProvider.tsx +4 -2
  842. package/src/menu/MenuWidget.tsx +3 -1
  843. package/src/menu/MenuWidgetKeyboardProvider.tsx +2 -0
  844. package/src/menu/useContextMenu.ts +2 -0
  845. package/src/menu/useMenuBarProvider.ts +2 -0
  846. package/src/movement/types.ts +1 -0
  847. package/src/movement/useKeyboardMovementProvider.ts +2 -0
  848. package/src/movement/utils.ts +1 -0
  849. package/src/navigation/CollapsibleNavGroup.tsx +3 -1
  850. package/src/navigation/DefaultNavigationRenderer.tsx +1 -0
  851. package/src/navigation/NavGroup.tsx +2 -1
  852. package/src/navigation/NavItem.tsx +2 -1
  853. package/src/navigation/NavItemButton.tsx +4 -2
  854. package/src/navigation/NavItemLink.tsx +4 -2
  855. package/src/navigation/NavSubheader.tsx +2 -1
  856. package/src/navigation/Navigation.tsx +3 -2
  857. package/src/navigation/navGroupStyles.ts +1 -0
  858. package/src/navigation/navItemStyles.ts +1 -0
  859. package/src/navigation/types.ts +1 -0
  860. package/src/navigation/useActiveHeadingId.ts +8 -6
  861. package/src/navigation/useNavigationExpansion.ts +2 -0
  862. package/src/navigation/useTableOfContentsHeadings.ts +150 -0
  863. package/src/objectFit.ts +1 -0
  864. package/src/overlay/Overlay.tsx +4 -2
  865. package/src/overlay/overlayStyles.ts +10 -10
  866. package/src/portal/Portal.tsx +1 -0
  867. package/src/portal/PortalContainerProvider.tsx +4 -3
  868. package/src/positioning/createHorizontalPosition.ts +1 -1
  869. package/src/positioning/createVerticalPosition.ts +1 -1
  870. package/src/positioning/useFixedPositioning.ts +17 -12
  871. package/src/progress/CircularProgress.tsx +3 -2
  872. package/src/progress/LinearProgress.tsx +3 -2
  873. package/src/responsive-item/ResponsiveItem.tsx +3 -2
  874. package/src/responsive-item/ResponsiveItemOverlay.tsx +3 -2
  875. package/src/responsive-item/responsiveItemOverlayStyles.ts +1 -0
  876. package/src/responsive-item/responsiveItemStyles.ts +1 -0
  877. package/src/scroll/ScrollLock.tsx +1 -0
  878. package/src/scroll/useScrollLock.ts +3 -1
  879. package/src/searching/fuzzy.ts +1 -1
  880. package/src/searching/useFuzzyMatch.ts +2 -0
  881. package/src/segmented-button/SegmentedButton.tsx +4 -2
  882. package/src/segmented-button/SegmentedButtonContainer.tsx +3 -2
  883. package/src/segmented-button/segmentedButtonContainerStyles.ts +1 -0
  884. package/src/segmented-button/segmentedButtonStyles.ts +1 -0
  885. package/src/sheet/Sheet.tsx +4 -2
  886. package/src/sheet/styles.ts +3 -3
  887. package/src/snackbar/DefaultToastRenderer.tsx +5 -3
  888. package/src/snackbar/Snackbar.tsx +4 -2
  889. package/src/snackbar/Toast.tsx +4 -2
  890. package/src/snackbar/ToastActionButton.tsx +2 -0
  891. package/src/snackbar/ToastCloseButton.tsx +3 -1
  892. package/src/snackbar/ToastContent.tsx +3 -1
  893. package/src/snackbar/ToastManager.tsx +1 -0
  894. package/src/snackbar/ToastManagerProvider.tsx +4 -3
  895. package/src/snackbar/snackbarStyles.ts +1 -0
  896. package/src/snackbar/toastContentStyles.ts +1 -0
  897. package/src/snackbar/toastStyles.ts +2 -1
  898. package/src/snackbar/useCurrentToastActions.ts +1 -0
  899. package/src/storage/internalUtils.ts +43 -0
  900. package/src/storage/types.ts +88 -0
  901. package/src/storage/useStorage.ts +277 -0
  902. package/src/storage/utils.ts +156 -0
  903. package/src/suspense/CircularProgressSuspense.tsx +2 -1
  904. package/src/suspense/NullSuspense.tsx +1 -1
  905. package/src/table/StickyTableSection.tsx +3 -1
  906. package/src/table/Table.tsx +3 -1
  907. package/src/table/TableBody.tsx +3 -1
  908. package/src/table/TableCell.tsx +4 -2
  909. package/src/table/TableCellContent.tsx +2 -1
  910. package/src/table/TableCheckbox.tsx +3 -1
  911. package/src/table/TableConfigurationProvider.tsx +2 -0
  912. package/src/table/TableContainer.tsx +4 -2
  913. package/src/table/TableContainerProvider.tsx +2 -1
  914. package/src/table/TableFooter.tsx +3 -1
  915. package/src/table/TableHeader.tsx +3 -1
  916. package/src/table/TableRadio.tsx +3 -1
  917. package/src/table/TableRow.tsx +3 -1
  918. package/src/table/tableCellStyles.ts +1 -0
  919. package/src/table/tableFooterStyles.ts +1 -0
  920. package/src/table/tableHeaderStyles.ts +1 -0
  921. package/src/table/tableRowStyles.ts +1 -0
  922. package/src/table/tableStyles.ts +1 -0
  923. package/src/table/useStickyTableSection.tsx +4 -2
  924. package/src/table/useTableSectionConfig.ts +2 -0
  925. package/src/tabs/SimpleTabPanel.tsx +35 -0
  926. package/src/tabs/SimpleTabPanels.tsx +28 -0
  927. package/src/tabs/Tab.tsx +4 -3
  928. package/src/tabs/TabList.tsx +38 -51
  929. package/src/tabs/TabListScrollButton.tsx +6 -3
  930. package/src/tabs/tabIndicatorStyles.ts +1 -0
  931. package/src/tabs/tabListScrollButtonStyles.ts +1 -0
  932. package/src/tabs/tabListStyles.ts +22 -2
  933. package/src/tabs/tabStyles.ts +8 -0
  934. package/src/tabs/types.ts +30 -0
  935. package/src/tabs/useMaxTabPanelHeight.ts +138 -0
  936. package/src/tabs/useTabList.ts +45 -8
  937. package/src/tabs/useTabs.ts +64 -79
  938. package/src/tabs/utils.ts +9 -0
  939. package/src/test-utils/drag.ts +10 -2
  940. package/src/test-utils/index.ts +6 -5
  941. package/src/test-utils/jest-globals/index.ts +4 -0
  942. package/src/test-utils/jest-globals/match-media.ts +41 -0
  943. package/src/test-utils/jest-globals/resize-observer.ts +11 -0
  944. package/src/test-utils/{jest-setup.ts → jest-globals/setup.ts} +4 -2
  945. package/src/test-utils/{timers.ts → jest-globals/timers.ts} +2 -2
  946. package/src/test-utils/jest-globals/uploadMenuItemFileInput.ts +52 -0
  947. package/src/test-utils/{ResizeObserver.ts → mocks/ResizeObserver.ts} +25 -59
  948. package/src/test-utils/mocks/match-media-implementation.ts +111 -0
  949. package/src/test-utils/mocks/match-media.ts +63 -0
  950. package/src/test-utils/polyfills/IntersectionObserver.ts +1 -1
  951. package/src/test-utils/polyfills/ResizeObserver.ts +1 -1
  952. package/src/test-utils/polyfills/matchMedia.ts +1 -1
  953. package/src/test-utils/queries/index.ts +2 -0
  954. package/src/test-utils/queries/select.ts +116 -0
  955. package/src/test-utils/queries/slider.ts +247 -0
  956. package/src/test-utils/queries/types.ts +13 -0
  957. package/src/test-utils/render.tsx +2 -1
  958. package/src/test-utils/utils/createFileList.ts +27 -0
  959. package/src/test-utils/utils/createResizeObserverEntry.ts +47 -0
  960. package/src/test-utils/vitest/index.ts +4 -0
  961. package/src/test-utils/vitest/match-media.ts +41 -0
  962. package/src/test-utils/vitest/resize-observer.ts +11 -0
  963. package/src/test-utils/vitest/setup.ts +15 -0
  964. package/src/test-utils/vitest/timers.ts +48 -0
  965. package/src/test-utils/vitest/uploadMenuItemFileInput.ts +52 -0
  966. package/src/theme/LocalStorageColorSchemeProvider.tsx +30 -30
  967. package/src/theme/ThemeProvider.tsx +9 -7
  968. package/src/theme/isColorScheme.ts +8 -6
  969. package/src/theme/types.ts +11 -23
  970. package/src/theme/useCSSVariables.ts +10 -15
  971. package/src/theme/useColorScheme.ts +19 -15
  972. package/src/theme/useColorSchemeMetaTag.ts +17 -2
  973. package/src/theme/useColorSchemeProvider.ts +36 -37
  974. package/src/theme/{usePrefersDarkScheme.ts → usePrefersDarkTheme.ts} +1 -0
  975. package/src/tooltip/Tooltip.tsx +3 -1
  976. package/src/tooltip/TooltipHoverModeProvider.tsx +6 -4
  977. package/src/tooltip/tooltipStyles.ts +2 -1
  978. package/src/tooltip/useTooltip.ts +15 -10
  979. package/src/tooltip/useTooltipPosition.ts +2 -0
  980. package/src/transition/CSSTransition.tsx +3 -1
  981. package/src/transition/Collapse.tsx +4 -2
  982. package/src/transition/CrossFade.tsx +5 -3
  983. package/src/transition/ScaleTransition.tsx +4 -2
  984. package/src/transition/SkeletonPlaceholder.tsx +4 -2
  985. package/src/transition/Slide.tsx +3 -1
  986. package/src/transition/SlideContainer.tsx +2 -1
  987. package/src/transition/collapseStyles.ts +1 -0
  988. package/src/transition/config.ts +4 -1
  989. package/src/transition/maxWidthTransition.ts +7 -0
  990. package/src/transition/skeletonPlaceholderUtils.ts +1 -0
  991. package/src/transition/types.ts +0 -2
  992. package/src/transition/useCSSTransition.ts +10 -4
  993. package/src/transition/useCarousel.ts +2 -0
  994. package/src/transition/useCollapseTransition.ts +20 -14
  995. package/src/transition/useCrossFadeTransition.ts +1 -0
  996. package/src/transition/useMaxWidthTransition.ts +11 -0
  997. package/src/transition/useScaleTransition.ts +12 -10
  998. package/src/transition/useSkeletonPlaceholder.ts +20 -2
  999. package/src/transition/useSlideTransition.ts +14 -16
  1000. package/src/transition/useTransition.ts +3 -1
  1001. package/src/tree/DefaultTreeItemRenderer.tsx +1 -0
  1002. package/src/tree/Tree.tsx +3 -1
  1003. package/src/tree/TreeGroup.tsx +3 -1
  1004. package/src/tree/TreeItem.tsx +4 -2
  1005. package/src/tree/TreeItemExpander.tsx +5 -3
  1006. package/src/tree/TreeProvider.tsx +4 -2
  1007. package/src/tree/styles.ts +1 -0
  1008. package/src/tree/types.ts +1 -0
  1009. package/src/tree/useTree.ts +3 -2
  1010. package/src/tree/useTreeExpansion.ts +1 -0
  1011. package/src/tree/useTreeItems.ts +4 -3
  1012. package/src/tree/useTreeMovement.ts +2 -0
  1013. package/src/tree/useTreeSelection.ts +1 -0
  1014. package/src/typography/SrOnly.tsx +2 -1
  1015. package/src/typography/TextContainer.tsx +3 -2
  1016. package/src/typography/Typography.tsx +3 -2
  1017. package/src/typography/WritingDirectionProvider.tsx +4 -2
  1018. package/src/typography/textContainerStyles.ts +1 -0
  1019. package/src/typography/typographyStyles.ts +2 -1
  1020. package/src/useAsyncFunction.ts +23 -0
  1021. package/src/useDebouncedFunction.ts +2 -0
  1022. package/src/useDropzone.ts +50 -34
  1023. package/src/useElementSize.ts +7 -5
  1024. package/src/useEnsuredId.ts +1 -1
  1025. package/src/useEnsuredRef.ts +3 -1
  1026. package/src/useEnsuredState.ts +1 -0
  1027. package/src/useHtmlClassName.ts +12 -0
  1028. package/src/useIntersectionObserver.ts +5 -3
  1029. package/src/useIsomorphicLayoutEffect.ts +1 -0
  1030. package/src/useMutationObserver.ts +7 -6
  1031. package/src/useOrientation.ts +1 -1
  1032. package/src/usePageInactive.ts +8 -2
  1033. package/src/useReadonlySet.ts +7 -4
  1034. package/src/useResizeListener.ts +8 -4
  1035. package/src/useResizeObserver.ts +4 -3
  1036. package/src/useThrottledFunction.ts +2 -0
  1037. package/src/useToggle.ts +5 -3
  1038. package/src/useUnmounted.ts +2 -0
  1039. package/src/useWindowSize.ts +4 -2
  1040. package/src/utils/RenderRecursively.tsx +88 -32
  1041. package/src/utils/alphaNumericSort.ts +10 -4
  1042. package/src/utils/bem.ts +58 -26
  1043. package/src/utils/getRangeDefaultValue.ts +1 -1
  1044. package/src/utils/isElementVisible.ts +1 -1
  1045. package/src/utils/loop.ts +2 -0
  1046. package/src/utils/parseCssLengthUnit.ts +1 -1
  1047. package/src/utils/wait.ts +6 -5
  1048. package/src/window-splitter/WindowSplitter.tsx +2 -2
  1049. package/src/window-splitter/styles.ts +1 -0
  1050. package/src/window-splitter/useWindowSplitter.ts +7 -2
  1051. package/dist/icon/iconConfig.js.map +0 -1
  1052. package/dist/test-utils/IntersectionObserver.js.map +0 -1
  1053. package/dist/test-utils/ResizeObserver.js.map +0 -1
  1054. package/dist/test-utils/jest-setup.d.ts +0 -1
  1055. package/dist/test-utils/jest-setup.js.map +0 -1
  1056. package/dist/test-utils/matchMedia.d.ts +0 -97
  1057. package/dist/test-utils/matchMedia.js +0 -112
  1058. package/dist/test-utils/matchMedia.js.map +0 -1
  1059. package/dist/test-utils/timers.js.map +0 -1
  1060. package/dist/theme/usePrefersDarkScheme.js.map +0 -1
  1061. package/dist/useLocalStorage.d.ts +0 -368
  1062. package/dist/useLocalStorage.js +0 -377
  1063. package/dist/useLocalStorage.js.map +0 -1
  1064. package/src/test-utils/README.md +0 -150
  1065. package/src/test-utils/matchMedia.ts +0 -194
  1066. package/src/useLocalStorage.ts +0 -584
  1067. /package/dist/icon/{iconConfig.d.ts → config.d.ts} +0 -0
  1068. /package/dist/test-utils/{IntersectionObserver.d.ts → mocks/IntersectionObserver.d.ts} +0 -0
  1069. /package/dist/test-utils/{IntersectionObserver.js → mocks/IntersectionObserver.js} +0 -0
  1070. /package/dist/theme/{usePrefersDarkScheme.d.ts → usePrefersDarkTheme.d.ts} +0 -0
  1071. /package/src/test-utils/{IntersectionObserver.ts → mocks/IntersectionObserver.ts} +0 -0
@@ -0,0 +1,52 @@
1
+ import { fireEvent } from "@testing-library/dom";
2
+ import { type UserEvent } from "@testing-library/user-event";
3
+ import { vitest } from "vitest";
4
+
5
+ import { createFileList } from "../utils/createFileList.js";
6
+
7
+ /**
8
+ * @since 6.0.0
9
+ */
10
+ export interface UploadMenuItemFileUploadOptions {
11
+ user: UserEvent;
12
+ files: File | readonly File[];
13
+ menuItem: HTMLElement;
14
+ }
15
+
16
+ /**
17
+ * @example Main Example
18
+ * ```tsx
19
+ * const user = userEvent.setup()
20
+ * render(<Test />);
21
+ *
22
+ * await user.click(screen.getByRole("button", { name: "Dropdown Menu" }));
23
+ *
24
+ * const menuItem = screen.getByRole("menuitem", { name: "Upload" });
25
+ * const file = new File(["pretend-bytes"], "README.txt");
26
+ * await uploadMenuItemFileUpload({
27
+ * user,
28
+ * // can be a single file or multiple
29
+ * files: file,
30
+ * menuItem,
31
+ * });
32
+ *
33
+ * // expect something with uploaded file
34
+ * ```
35
+ *
36
+ * @since 6.0.0
37
+ */
38
+ export async function uploadMenuItemFileUpload(
39
+ options: UploadMenuItemFileUploadOptions
40
+ ): Promise<void> {
41
+ const { user, files, menuItem } = options;
42
+
43
+ const input = document.createElement("input");
44
+ vitest.spyOn(document, "createElement").mockReturnValueOnce(input);
45
+ vitest.spyOn(input, "click").mockImplementationOnce(() => {
46
+ fireEvent.change(input, {
47
+ target: { files: createFileList(window, files) },
48
+ });
49
+ });
50
+
51
+ await user.click(menuItem);
52
+ }
@@ -1,10 +1,12 @@
1
1
  "use client";
2
+
2
3
  import { type ReactElement, type ReactNode } from "react";
3
- import { useLocalStorage } from "../useLocalStorage.js";
4
- import { type ColorSchemeMode } from "./types.js";
4
+
5
+ import { useStorage } from "../storage/useStorage.js";
6
+ import { isColorScheme } from "./isColorScheme.js";
7
+ import { type ColorScheme } from "./types.js";
5
8
  import { ColorSchemeProvider } from "./useColorScheme.js";
6
9
  import { useColorSchemeProvider } from "./useColorSchemeProvider.js";
7
- import { isColorSchemeMode } from "./isColorScheme.js";
8
10
 
9
11
  /**
10
12
  * @since 6.0.0
@@ -19,20 +21,20 @@ export interface LocalStorageColorSchemeProviderProps {
19
21
  disableMetaTag?: boolean;
20
22
 
21
23
  /**
22
- * Set this to a string like `"colorScheme"` if you want to store the user's
23
- * color scheme preference in local storage.
24
+ * Set this to an empty string to disable the local storage behavior. Otherwise,
25
+ * this can be used to customize the name.
24
26
  *
25
- * @defaultValue `""`
27
+ * @defaultValue `"colorScheme"`
26
28
  */
27
29
  localStorageKey?: string;
28
30
 
29
31
  /**
30
- * The current color scheme mode that is being used by your app. This should
32
+ * The current color scheme that is being used by your app. This should
31
33
  * match the `$color-scheme` SCSS variable.
32
34
  *
33
35
  * @defaultValue `"light"`
34
36
  */
35
- defaultColorSchemeMode?: ColorSchemeMode;
37
+ defaultColorScheme?: ColorScheme;
36
38
 
37
39
  children: ReactNode;
38
40
  }
@@ -53,34 +55,34 @@ export interface LocalStorageColorSchemeProviderProps {
53
55
  * import { createRoot } from "react-dom/client";
54
56
  *
55
57
  * function MyComponent(): ReactElement {
56
- * const { colorScheme, colorSchemeMode, setColorSchemeMode } = useColorScheme();
57
- * // colorScheme: "light" | "dark"
58
- * // colorSchemeMode: "light" | "dark" | "system"
58
+ * const { currentColor, colorScheme, setColorScheme } = useColorScheme();
59
+ * // currentColor: "light" | "dark"
60
+ * // colorScheme: "light" | "dark" | "system"
59
61
  *
60
62
  * return (
61
63
  * <>
62
- * The current color scheme is {colorScheme}
64
+ * The current color scheme is {currentColor}
63
65
  * <SegmentedButtonContainer>
64
66
  * <SegmentedButton
65
- * selected={colorSchemeMode === "light"}
67
+ * selected={colorScheme === "light"}
66
68
  * onClick={() => {
67
- * setColorSchemeMode("light")
69
+ * setColorScheme("light")
68
70
  * }}
69
71
  * >
70
72
  * Light
71
73
  * </SegmentedButton>
72
74
  * <SegmentedButton
73
- * selected={colorSchemeMode === "dark"}
75
+ * selected={colorScheme === "dark"}
74
76
  * onClick={() => {
75
- * setColorSchemeMode("dark")
77
+ * setColorScheme("dark")
76
78
  * }}
77
79
  * >
78
80
  * Dark
79
81
  * </SegmentedButton>
80
82
  * <SegmentedButton
81
- * selected={colorSchemeMode === "system"}
83
+ * selected={colorScheme === "system"}
82
84
  * onClick={() => {
83
- * setColorSchemeMode("system")
85
+ * setColorScheme("system")
84
86
  * }}
85
87
  * >
86
88
  * System
@@ -94,7 +96,7 @@ export interface LocalStorageColorSchemeProviderProps {
94
96
  * const root = createRoot(container);
95
97
  *
96
98
  * root.render(
97
- * <LocalStorageColorSchemeProvider defaultColorSchemeMode="system">
99
+ * <LocalStorageColorSchemeProvider defaultColorScheme="system">
98
100
  * <MyComponent />
99
101
  * </LocalStorageColorSchemeProvider>
100
102
  * );
@@ -106,24 +108,22 @@ export function LocalStorageColorSchemeProvider(
106
108
  props: LocalStorageColorSchemeProviderProps
107
109
  ): ReactElement {
108
110
  const {
109
- localStorageKey = "",
110
- defaultColorSchemeMode = "light",
111
+ localStorageKey = "colorScheme",
112
+ defaultColorScheme = "light",
111
113
  disableMetaTag,
112
114
  children,
113
115
  } = props;
114
116
 
115
- const { value: colorSchemeMode, setValue: setColorSchemeMode } =
116
- useLocalStorage({
117
- key: localStorageKey,
118
- defaultValue: defaultColorSchemeMode,
119
- deserializer: (item) =>
120
- isColorSchemeMode(item) ? item : defaultColorSchemeMode,
121
- });
117
+ const { value: colorScheme, setValue: setColorScheme } = useStorage({
118
+ key: localStorageKey,
119
+ defaultValue: defaultColorScheme,
120
+ deserializer: (item) => (isColorScheme(item) ? item : defaultColorScheme),
121
+ });
122
122
 
123
123
  const value = useColorSchemeProvider({
124
124
  disableMetaTag,
125
- colorSchemeMode,
126
- setColorSchemeMode,
125
+ colorScheme,
126
+ setColorScheme,
127
127
  });
128
128
 
129
129
  return <ColorSchemeProvider value={value}>{children}</ColorSchemeProvider>;
@@ -1,13 +1,15 @@
1
1
  "use client";
2
+
2
3
  import {
4
+ type ReactElement,
5
+ type ReactNode,
3
6
  createContext,
4
7
  useContext,
5
8
  useEffect,
6
9
  useMemo,
7
10
  useState,
8
- type ReactElement,
9
- type ReactNode,
10
11
  } from "react";
12
+
11
13
  import { useSsr } from "../SsrProvider.js";
12
14
  import { type UseStateSetter } from "../types.js";
13
15
  import {
@@ -257,7 +259,7 @@ export interface ThemeProviderProps {
257
259
  * When this is `undefined`, the theme will be derived by computing the
258
260
  * `document.documentElement`'s styles for all the `react-md` theme custom
259
261
  * properties. The theme will also automatically update whenever the
260
- * `colorScheme` or `colorSchemeMode` change.
262
+ * `currentColor` or `colorScheme` change.
261
263
  *
262
264
  * It is recommended to manually provide your theme if you know it beforehand.
263
265
  * Deriving the theme is really only useful if you allow your user to
@@ -266,7 +268,7 @@ export interface ThemeProviderProps {
266
268
  *
267
269
  * @see {@link DEFAULT_DARK_THEME}
268
270
  * @see {@link DEFAULT_LIGHT_THEME}
269
- * @defaultValue `colorScheme === "dark" ? DEFAULT_DARK_THEME : DEFAULT_LIGHT_THEME`
271
+ * @defaultValue `currentColor === "dark" ? DEFAULT_DARK_THEME : DEFAULT_LIGHT_THEME`
270
272
  */
271
273
  theme?: Readonly<ConfigurableThemeColors>;
272
274
 
@@ -356,7 +358,7 @@ export interface ThemeProviderProps {
356
358
  export function ThemeProvider(props: ThemeProviderProps): ReactElement {
357
359
  const { children, theme } = props;
358
360
  const ssr = useSsr();
359
- const { colorScheme, colorSchemeMode } = useColorScheme();
361
+ const { currentColor, colorScheme } = useColorScheme();
360
362
  const [derivedTheme, setDerivedTheme] = useState<ConfigurableThemeColors>(
361
363
  () => {
362
364
  if (theme) {
@@ -367,7 +369,7 @@ export function ThemeProvider(props: ThemeProviderProps): ReactElement {
367
369
  return getDerivedTheme(document.documentElement);
368
370
  }
369
371
 
370
- return colorScheme === "dark" ? DEFAULT_DARK_THEME : DEFAULT_LIGHT_THEME;
372
+ return currentColor === "dark" ? DEFAULT_DARK_THEME : DEFAULT_LIGHT_THEME;
371
373
  }
372
374
  );
373
375
 
@@ -391,7 +393,7 @@ export function ThemeProvider(props: ThemeProviderProps): ReactElement {
391
393
  return () => {
392
394
  window.cancelAnimationFrame(frame);
393
395
  };
394
- }, [theme, colorScheme, colorSchemeMode]);
396
+ }, [theme, currentColor, colorScheme]);
395
397
 
396
398
  const value = useMemo<ThemeContext>(() => {
397
399
  const backgroundColor =
@@ -1,22 +1,24 @@
1
- import { type ColorSchemeMode, type ColorScheme } from "./types.js";
1
+ import { type ColorScheme, type LightDarkColorScheme } from "./types.js";
2
2
 
3
3
  /**
4
- * A type assertion helper to check if a value is a valid {@link ColorScheme}
4
+ * A type assertion helper to check if a value is a valid {@link LightDarkColorScheme}
5
5
  * when it is pulled from unknown sources (like local storage).
6
6
  *
7
7
  * @since 6.0.0
8
8
  */
9
- export function isColorScheme(value: unknown): value is ColorScheme {
9
+ export function isLightDarkColorScheme(
10
+ value: unknown
11
+ ): value is LightDarkColorScheme {
10
12
  return value === "light" || value === "dark";
11
13
  }
12
14
 
13
15
  /**
14
16
  * A type assertion helper to check if a value is a valid
15
- * {@link ColorSchemeMode} when it is pulled from unknown sources (like local
17
+ * {@link ColorScheme} when it is pulled from unknown sources (like local
16
18
  * storage).
17
19
  *
18
20
  * @since 6.0.0
19
21
  */
20
- export function isColorSchemeMode(value: unknown): value is ColorSchemeMode {
21
- return isColorScheme(value) || value === "system";
22
+ export function isColorScheme(value: unknown): value is ColorScheme {
23
+ return isLightDarkColorScheme(value) || value === "system";
22
24
  }
@@ -1,4 +1,5 @@
1
1
  import { type CSSProperties } from "react";
2
+
2
3
  import { type UseStateSetter } from "../types.js";
3
4
 
4
5
  /**
@@ -65,40 +66,27 @@ export type ReadonlyCSSVariableList<
65
66
  > = readonly Readonly<CSSVariable<Name>>[];
66
67
 
67
68
  /** @since 6.0.0 */
68
- export type ColorScheme = "light" | "dark";
69
+ export type LightDarkColorScheme = "light" | "dark";
69
70
 
70
71
  /** @since 6.0.0 */
71
- export type ColorSchemeMode = ColorScheme | "system";
72
+ export type ColorScheme = LightDarkColorScheme | "system";
72
73
 
73
74
  /**
74
75
  * @since 6.0.0
75
76
  */
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
-
77
+ export interface ColorSchemeState {
89
78
  /**
90
- * A function to update the color scheme.
91
- *
92
- * @see {@link useColorScheme} for an example usage
79
+ * The defined color scheme for the app that should match the `$color-scheme`
80
+ * SCSS variable.
93
81
  */
94
- setColorSchemeMode: UseStateSetter<ColorSchemeMode>;
82
+ colorScheme: ColorScheme;
83
+ setColorScheme: UseStateSetter<ColorScheme>;
95
84
  }
96
85
 
97
86
  /** @since 6.0.0 */
98
- export interface ColorSchemeContext extends ColorSchemeModeBehavior {
87
+ export interface ColorSchemeContext extends ColorSchemeState {
99
88
  /**
100
- * The current color scheme that is being used. This is only useful when the
101
- * {@link colorSchemeMode} is set to `"system"`.
89
+ * When the {@link colorScheme} is set to `"system"`, this will reflect
102
90
  */
103
- colorScheme: ColorScheme;
91
+ currentColor: LightDarkColorScheme;
104
92
  }
@@ -1,5 +1,7 @@
1
1
  "use client";
2
+
2
3
  import { type RefObject, useEffect, useMemo } from "react";
4
+
3
5
  import {
4
6
  type CSSVariableName,
5
7
  type CSSVariablesProperties,
@@ -9,12 +11,9 @@ import {
9
11
  /**
10
12
  * @example Applying Variables the root html element
11
13
  * ```ts
12
- * import {
13
- * contrastColor,
14
- * pinkAccent200,
15
- * purple500,
16
- * useCSSVariables,
17
- * } from "@react-md/core";
14
+ * import { purple500 } from "@react-md/core/theme/colors";
15
+ * import { useCSSVariables } from "@react-md/core/theme/useCSSVariables";
16
+ * import { contrastColor } from "@react-md/core/theme/utils";
18
17
  * import { useMemo } from "react";
19
18
  *
20
19
  * function Example(): null {
@@ -46,15 +45,11 @@ export function useCSSVariables<Name extends CSSVariableName>(
46
45
  /**
47
46
  * @example Applying variables through inline styles
48
47
  * ```tsx
49
- * import {
50
- * contrastColor,
51
- * ReadonlyCSSVariableList,
52
- * pinkAccent200,
53
- * purple500,
54
- * useCSSVariables,
55
- * } from "@react-md/core";
56
- * import { useMemo } from "react";
57
- * import type { ReactElement, ReactNode } from "react";
48
+ * import { purple500 } from "@react-md/core/theme/colors";
49
+ * import { type ReadonlyCSSVariableList } from "@react-md/core/theme/types";
50
+ * import { useCSSVariables } from "@react-md/core/theme/useCSSVariables";
51
+ * import { contrastColor } from "@react-md/core/theme/utils";
52
+ * import { type ReactElement, type ReactNode, useMemo } from "react";
58
53
  *
59
54
  * function Example({ children }: { children: ReactNode }): ReactElement {
60
55
  * const customVariables = useMemo<ReadonlyCSSVariableList>(() => {
@@ -1,11 +1,13 @@
1
1
  "use client";
2
+
2
3
  import { createContext, useContext } from "react";
4
+
3
5
  import { type ColorSchemeContext } from "./types.js";
4
6
 
5
7
  const context = createContext<ColorSchemeContext>({
8
+ currentColor: "light",
6
9
  colorScheme: "light",
7
- colorSchemeMode: "light",
8
- setColorSchemeMode() {
10
+ setColorScheme() {
9
11
  if (process.env.NODE_ENV !== "production") {
10
12
  throw new Error("The `ColorSchemeProvider` has not been initialized.");
11
13
  }
@@ -17,45 +19,47 @@ export const { Provider: ColorSchemeProvider } = context;
17
19
  /**
18
20
  * @example Lazy Load Configurable Themes
19
21
  * ```tsx
20
- * import type { ChangeEvent, ReactElement } from "react";
21
- * import { lazy } from "react";
22
- * import { createRoot } from "react-doc/client";
23
- * import { Checkbox, ColorSchemeProvider, useColorScheme } from "@react-md/core";
22
+ * import { Checkbox } from "@react-md/core/form/Checkbox";
23
+ * import { ColorSchemeProvider, useColorScheme } from "@react-md/core/theme/useColorScheme";
24
+ * import { type ChangeEvent, lazy, type ReactElement } from "react";
25
+ * import { createRoot } from "react-dom/client";
24
26
  *
25
- * const DarkTheme = lazy(() => import("./DarkTheme"));
26
- * const SystemTheme = lazy(() => import("./SystemTheme"));
27
+ * const DarkTheme = lazy(() => import("./DarkTheme.jsx"));
28
+ * const SystemTheme = lazy(() => import("./SystemTheme.jsx"));
27
29
  *
28
30
  * function App(): ReactElement {
29
- * const { colorScheme, colorSchemeMode, setColorSchemeMode } =
31
+ * const { currentColor, colorScheme, setColorScheme } =
30
32
  * useColorScheme();
31
33
  *
32
34
  * const onChange = (event: ChangeEvent<HTMLInputElement>): void => {
33
35
  * const { value } = event.currentTarget;
34
36
  * if (value === "light" || value === "dark" || value === "system") {
35
- * setColorSchemeMode(value);
37
+ * setColorScheme(value);
36
38
  * }
37
39
  * };
38
40
  *
39
41
  * return (
40
42
  * <>
41
- * {colorSchemeMode === "dark" && <DarkTheme />}
42
- * {colorSchemeMode === "system" && <SystemTheme />}
43
+ * <NullSuspense>
44
+ * {colorScheme === "dark" && <DarkTheme />}
45
+ * {colorScheme === "system" && <SystemTheme />}
46
+ * </NullSuspense>
43
47
  * <Checkbox
44
48
  * label="Light"
45
49
  * value="light"
46
- * checked={colorSchemeMode === "light"}
50
+ * checked={colorScheme === "light"}
47
51
  * onChange={onChange}
48
52
  * />
49
53
  * <Checkbox
50
54
  * label="Dark"
51
55
  * value="dark"
52
- * checked={colorSchemeMode === "dark"}
56
+ * checked={colorScheme === "dark"}
53
57
  * onChange={onChange}
54
58
  * />
55
59
  * <Checkbox
56
60
  * label="System"
57
61
  * value="system"
58
- * checked={colorSchemeMode === "system"}
62
+ * checked={colorScheme === "system"}
59
63
  * onChange={onChange}
60
64
  * />
61
65
  * </>
@@ -1,6 +1,8 @@
1
1
  "use client";
2
+
2
3
  import { useEffect } from "react";
3
- import { type ColorScheme } from "./types.js";
4
+
5
+ import { type LightDarkColorScheme } from "./types.js";
4
6
 
5
7
  /**
6
8
  * @since 6.0.0
@@ -10,7 +12,7 @@ export interface ColorSchemeMetaTagOptions {
10
12
  * @defaultValue `"false"`
11
13
  */
12
14
  disabled?: boolean;
13
- colorScheme: ColorScheme;
15
+ colorScheme: LightDarkColorScheme;
14
16
  }
15
17
 
16
18
  /**
@@ -19,6 +21,19 @@ export interface ColorSchemeMetaTagOptions {
19
21
  * should not be used if you are using the `useColorSchemeProvider` since it is
20
22
  * already built in.
21
23
  *
24
+ * @example
25
+ * ```tsx
26
+ * import { useColorScheme } from "@react-md/core/theme/useColorScheme";
27
+ * import { useColorSchemeMetaTag } from "@react-md/core/theme/useColorSchemeMetaTag";
28
+ *
29
+ * function Example() {
30
+ * const { currentColor } = useColorScheme();
31
+ * useColorSchemeMetaTag({ colorScheme: currentColor });
32
+ *
33
+ * return null;
34
+ * }
35
+ * ```
36
+ *
22
37
  * @since 6.0.0
23
38
  */
24
39
  export function useColorSchemeMetaTag(
@@ -1,20 +1,21 @@
1
1
  "use client";
2
+
2
3
  import { useMemo } from "react";
4
+
3
5
  import { type UseStateInitializer } from "../types.js";
4
6
  import { useEnsuredState } from "../useEnsuredState.js";
5
7
  import {
8
+ type ColorScheme,
6
9
  type ColorSchemeContext,
7
- type ColorSchemeMode,
8
- type ColorSchemeModeBehavior,
10
+ type ColorSchemeState,
9
11
  } from "./types.js";
10
12
  import { useColorSchemeMetaTag } from "./useColorSchemeMetaTag.js";
11
- import { usePrefersDarkTheme } from "./usePrefersDarkScheme.js";
13
+ import { usePrefersDarkTheme } from "./usePrefersDarkTheme.js";
12
14
 
13
15
  /**
14
16
  * @since 6.0.0
15
17
  */
16
- export interface ColorSchemeProviderOptions
17
- extends Partial<ColorSchemeModeBehavior> {
18
+ export interface ColorSchemeProviderOptions extends Partial<ColorSchemeState> {
18
19
  /**
19
20
  * Set this to `true` to prevent a `<meta name="color-scheme" content="{COLOR_SCHEME}">`
20
21
  * from being added to the `document.head`.
@@ -24,60 +25,58 @@ export interface ColorSchemeProviderOptions
24
25
  disableMetaTag?: boolean;
25
26
 
26
27
  /**
27
- * The current color scheme mode that is being used by your app. This should
28
+ * The current color scheme that is being used by your app. This should
28
29
  * match the `$color-scheme` SCSS variable.
29
30
  *
30
31
  * @defaultValue `"light"`
31
32
  */
32
- defaultColorSchemeMode?: UseStateInitializer<ColorSchemeMode>;
33
+ defaultColorScheme?: UseStateInitializer<ColorScheme>;
33
34
  }
34
35
 
35
36
  /**
36
37
  * @example
37
38
  * ```tsx
38
- * import {
39
- * ColorSchemeProvider,
40
- * useColorSchemeProvider,
41
- * type ColorSchemeMode,
42
- * } from "@react-md/core";
39
+ * import { type ColorScheme } from "@react-md/core/theme/types";
40
+ * import { ColorSchemeProvider } from "@react-md/core/theme/useColorScheme";
41
+ * import { useColorSchemeProvider } from "@reat-md/core/theme/useColorSchemeProvider";
43
42
  * import { type PropsWithChildren, type ReactElement } from "react";
44
43
  * import Cookies from "js-cookie";
45
44
  *
46
45
  * function MyColorSchemeProvider(props: PropsWithChildren): ReactElement {
47
46
  * const { children } = props;
48
47
  *
49
- * const [colorSchemeMode, setColorSchemeMode] = useState<ColorSchemeMode>(
50
- * () => Cookies.get("colorSchemeMode") || "system"
48
+ * const [colorScheme, setColorScheme] = useState<ColorScheme>(
49
+ * () => Cookies.get("colorScheme") || "system"
51
50
  * );
52
51
  * const value = useColorSchemeProvider({
53
- * colorSchemeMode,
54
- * setColorSchemeMode(nextValue) {
55
- * setColorSchemeMode((prevValue) => {
52
+ * colorScheme,
53
+ * setColorScheme(nextValue) {
54
+ * setColorScheme((prevValue) => {
56
55
  * const value = typeof nextValue === "function"
57
56
  * ? nextValue(prevValue)
58
57
  * : nextValue;
59
58
  *
60
- * Cookies.set("colorSchemeMode", value);
59
+ * Cookies.set("colorScheme", value);
61
60
  * return value;
62
61
  * });
63
62
  * }
64
63
  * });
65
64
  *
66
- * return <ColorSchemeProvider value={value}>{children}</ColorSchemeProvider>
65
+ * return <ColorSchemeProvider value={value}>{children}</ColorSchemeProvider>;
67
66
  * }
68
67
  * ```
69
68
  * @since 6.0.0
70
69
  */
71
70
  export function useColorSchemeProvider(
72
- options?: { [key in keyof ColorSchemeModeBehavior]?: never } & {
71
+ options?: { [key in keyof ColorSchemeState]?: never } & {
73
72
  disableMetaTag?: boolean;
74
- defaultColorSchemeMode?: UseStateInitializer<ColorSchemeMode>;
73
+ defaultColorScheme?: UseStateInitializer<ColorScheme>;
75
74
  }
76
75
  ): ColorSchemeContext;
77
76
  export function useColorSchemeProvider(
78
- options: ColorSchemeModeBehavior & {
77
+ options: ColorSchemeState & {
79
78
  disableMetaTag?: boolean;
80
- defaultColorSchemeMode?: never;
79
+ defaultColorScheme?: never;
81
80
  }
82
81
  ): ColorSchemeContext;
83
82
  export function useColorSchemeProvider(
@@ -85,32 +84,32 @@ export function useColorSchemeProvider(
85
84
  ): ColorSchemeContext {
86
85
  const {
87
86
  disableMetaTag,
88
- colorSchemeMode: value,
89
- setColorSchemeMode: setValue,
90
- defaultColorSchemeMode,
87
+ colorScheme: propColorScheme,
88
+ setColorScheme: propSetColorScheme,
89
+ defaultColorScheme,
91
90
  } = options;
92
91
 
93
- const [colorSchemeMode, setColorSchemeMode] = useEnsuredState({
94
- value,
95
- setValue,
96
- defaultValue: defaultColorSchemeMode,
92
+ const [colorScheme, setColorScheme] = useEnsuredState({
93
+ value: propColorScheme,
94
+ setValue: propSetColorScheme,
95
+ defaultValue: defaultColorScheme,
97
96
  });
98
- const prefersDarkTheme = usePrefersDarkTheme(colorSchemeMode !== "system");
97
+ const prefersDarkTheme = usePrefersDarkTheme(colorScheme !== "system");
99
98
  const derivedColorScheme = prefersDarkTheme ? "dark" : "light";
100
- const colorScheme =
101
- colorSchemeMode === "system" ? derivedColorScheme : colorSchemeMode;
99
+ const currentColor =
100
+ colorScheme === "system" ? derivedColorScheme : colorScheme;
102
101
 
103
102
  useColorSchemeMetaTag({
104
103
  disabled: disableMetaTag,
105
- colorScheme,
104
+ colorScheme: currentColor,
106
105
  });
107
106
 
108
107
  return useMemo<ColorSchemeContext>(
109
108
  () => ({
109
+ currentColor,
110
110
  colorScheme,
111
- colorSchemeMode,
112
- setColorSchemeMode,
111
+ setColorScheme,
113
112
  }),
114
- [colorScheme, colorSchemeMode, setColorSchemeMode]
113
+ [currentColor, colorScheme, setColorScheme]
115
114
  );
116
115
  }
@@ -1,4 +1,5 @@
1
1
  "use client";
2
+
2
3
  import { useMediaQuery } from "../media-queries/useMediaQuery.js";
3
4
 
4
5
  /**
@@ -1,5 +1,7 @@
1
1
  "use client";
2
- import { forwardRef, type HTMLAttributes } from "react";
2
+
3
+ import { type HTMLAttributes, forwardRef } from "react";
4
+
3
5
  import { type TextOverflow } from "../cssUtils.js";
4
6
  import { Portal } from "../portal/Portal.js";
5
7
  import { type SimplePosition } from "../positioning/types.js";