@react-md/core 6.3.4 → 6.4.0

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 (450) hide show
  1. package/dist/CoreProviders.d.ts +1 -0
  2. package/dist/CoreProviders.js.map +1 -1
  3. package/dist/_base.scss +3 -0
  4. package/dist/_core.scss +1 -0
  5. package/dist/_utils.scss +15 -7
  6. package/dist/app-bar/AppBar.js.map +1 -1
  7. package/dist/app-bar/AppBarTitle.js.map +1 -1
  8. package/dist/autocomplete/AutocompleteListboxChildren.js.map +1 -1
  9. package/dist/autocomplete/types.js.map +1 -1
  10. package/dist/autocomplete/utils.js.map +1 -1
  11. package/dist/avatar/Avatar.js.map +1 -1
  12. package/dist/button/Button.js.map +1 -1
  13. package/dist/button/FloatingActionButton.js.map +1 -1
  14. package/dist/card/Card.js.map +1 -1
  15. package/dist/card/CardContent.js.map +1 -1
  16. package/dist/card/ClickableCard.js.map +1 -1
  17. package/dist/chip/Chip.js.map +1 -1
  18. package/dist/datetime/NativeDateField.js.map +1 -1
  19. package/dist/datetime/NativeTimeField.js.map +1 -1
  20. package/dist/datetime/useDateField.js.map +1 -1
  21. package/dist/datetime/useTimeField.js.map +1 -1
  22. package/dist/dialog/Dialog.js.map +1 -1
  23. package/dist/dialog/DialogContainer.js.map +1 -1
  24. package/dist/dialog/DialogContent.js.map +1 -1
  25. package/dist/dialog/DialogFooter.js.map +1 -1
  26. package/dist/divider/Divider.js.map +1 -1
  27. package/dist/draggable/useDraggable.js.map +1 -1
  28. package/dist/draggable/utils.js.map +1 -1
  29. package/dist/expansion-panel/ExpansionPanelHeader.js.map +1 -1
  30. package/dist/files/FileInput.js.map +1 -1
  31. package/dist/files/useFileUpload.js.map +1 -1
  32. package/dist/files/validation.js.map +1 -1
  33. package/dist/focus/useFocusContainer.js.map +1 -1
  34. package/dist/form/Fieldset.d.ts +19 -0
  35. package/dist/form/Fieldset.js +22 -2
  36. package/dist/form/Fieldset.js.map +1 -1
  37. package/dist/form/FormMessageContainer.js.map +1 -1
  38. package/dist/form/FormMessageCounter.js.map +1 -1
  39. package/dist/form/InputToggle.js.map +1 -1
  40. package/dist/form/Legend.d.ts +27 -5
  41. package/dist/form/Legend.js +39 -6
  42. package/dist/form/Legend.js.map +1 -1
  43. package/dist/form/Listbox.js.map +1 -1
  44. package/dist/form/ListboxProvider.js.map +1 -1
  45. package/dist/form/NativeSelect.js.map +1 -1
  46. package/dist/form/Password.js.map +1 -1
  47. package/dist/form/ResizingTextAreaWrapper.js.map +1 -1
  48. package/dist/form/Select.js.map +1 -1
  49. package/dist/form/Slider.js.map +1 -1
  50. package/dist/form/SliderContainer.js.map +1 -1
  51. package/dist/form/SliderThumb.js.map +1 -1
  52. package/dist/form/SliderTrack.js.map +1 -1
  53. package/dist/form/SliderValueMarks.js.map +1 -1
  54. package/dist/form/Switch.js.map +1 -1
  55. package/dist/form/TextArea.js.map +1 -1
  56. package/dist/form/TextField.js.map +1 -1
  57. package/dist/form/TextFieldContainer.js.map +1 -1
  58. package/dist/form/_fieldset.scss +7 -0
  59. package/dist/form/_legend.scss +68 -0
  60. package/dist/form/_text-field.scss +39 -4
  61. package/dist/form/fieldsetStyles.d.ts +6 -1
  62. package/dist/form/fieldsetStyles.js +3 -2
  63. package/dist/form/fieldsetStyles.js.map +1 -1
  64. package/dist/form/inputToggleStyles.js.map +1 -1
  65. package/dist/form/labelStyles.d.ts +1 -1
  66. package/dist/form/labelStyles.js +1 -1
  67. package/dist/form/labelStyles.js.map +1 -1
  68. package/dist/form/legendStyles.d.ts +83 -0
  69. package/dist/form/legendStyles.js +25 -0
  70. package/dist/form/legendStyles.js.map +1 -0
  71. package/dist/form/selectUtils.js.map +1 -1
  72. package/dist/form/textFieldContainerStyles.js.map +1 -1
  73. package/dist/form/types.d.ts +28 -6
  74. package/dist/form/types.js.map +1 -1
  75. package/dist/form/useCheckboxGroup.js.map +1 -1
  76. package/dist/form/useCombobox.js.map +1 -1
  77. package/dist/form/useNumberField.js +16 -19
  78. package/dist/form/useNumberField.js.map +1 -1
  79. package/dist/form/useRangeSlider.js.map +1 -1
  80. package/dist/form/useSlider.js.map +1 -1
  81. package/dist/form/useTextField.js.map +1 -1
  82. package/dist/hoverMode/useHoverMode.js.map +1 -1
  83. package/dist/icon/FontIcon.js.map +1 -1
  84. package/dist/icon/IconRotator.js.map +1 -1
  85. package/dist/icon/MaterialIcon.js.map +1 -1
  86. package/dist/icon/MaterialSymbol.js.map +1 -1
  87. package/dist/icon/SVGIcon.js.map +1 -1
  88. package/dist/icon/config.d.ts +0 -1
  89. package/dist/icon/config.js +10 -7
  90. package/dist/icon/config.js.map +1 -1
  91. package/dist/icon/materialConfig.js.map +1 -1
  92. package/dist/icon/styles.js.map +1 -1
  93. package/dist/interaction/UserInteractionModeProvider.js +6 -4
  94. package/dist/interaction/UserInteractionModeProvider.js.map +1 -1
  95. package/dist/interaction/types.js.map +1 -1
  96. package/dist/interaction/useElementInteraction.js.map +1 -1
  97. package/dist/layout/LayoutAppBar.d.ts +6 -6
  98. package/dist/layout/LayoutAppBar.js +6 -6
  99. package/dist/layout/LayoutAppBar.js.map +1 -1
  100. package/dist/layout/LayoutNav.js.map +1 -1
  101. package/dist/layout/LayoutWindowSplitter.js.map +1 -1
  102. package/dist/layout/Main.js.map +1 -1
  103. package/dist/layout/useExpandableLayout.js +43 -0
  104. package/dist/layout/useExpandableLayout.js.map +1 -1
  105. package/dist/layout/useHorizontalLayoutTransition.js.map +1 -1
  106. package/dist/layout/useLayoutTree.js.map +1 -1
  107. package/dist/layout/useLayoutWindowSplitter.js.map +1 -1
  108. package/dist/layout/useResizableLayout.js.map +1 -1
  109. package/dist/link/Link.js.map +1 -1
  110. package/dist/link/SkipToMainContent.js +19 -21
  111. package/dist/link/SkipToMainContent.js.map +1 -1
  112. package/dist/list/List.js.map +1 -1
  113. package/dist/list/ListItem.js.map +1 -1
  114. package/dist/list/ListItemAddon.js.map +1 -1
  115. package/dist/list/ListItemLink.js.map +1 -1
  116. package/dist/list/ListSubheader.js.map +1 -1
  117. package/dist/list/getListItemHeight.js.map +1 -1
  118. package/dist/list/listItemStyles.js.map +1 -1
  119. package/dist/list/types.js.map +1 -1
  120. package/dist/media-queries/AppSizeProvider.d.ts +2 -0
  121. package/dist/media-queries/AppSizeProvider.js +3 -2
  122. package/dist/media-queries/AppSizeProvider.js.map +1 -1
  123. package/dist/media-queries/appSize.d.ts +3 -0
  124. package/dist/media-queries/appSize.js +3 -1
  125. package/dist/media-queries/appSize.js.map +1 -1
  126. package/dist/media-queries/config.d.ts +11 -0
  127. package/dist/media-queries/config.js +26 -0
  128. package/dist/media-queries/config.js.map +1 -0
  129. package/dist/menu/DropdownMenu.js.map +1 -1
  130. package/dist/menu/Menu.js.map +1 -1
  131. package/dist/menu/MenuItemButton.js.map +1 -1
  132. package/dist/menu/MenuItemFileInput.js.map +1 -1
  133. package/dist/menu/MenuItemInputToggle.js.map +1 -1
  134. package/dist/menu/MenuItemSeparator.js.map +1 -1
  135. package/dist/menu/MenuVisibilityProvider.js.map +1 -1
  136. package/dist/menu/MenuWidget.js.map +1 -1
  137. package/dist/menu/useContextMenu.js.map +1 -1
  138. package/dist/movement/types.d.ts +28 -3
  139. package/dist/movement/types.js.map +1 -1
  140. package/dist/movement/useKeyboardMovementProvider.js +96 -47
  141. package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
  142. package/dist/navigation/CollapsibleNavGroup.js.map +1 -1
  143. package/dist/navigation/NavItem.js.map +1 -1
  144. package/dist/navigation/NavItemButton.js.map +1 -1
  145. package/dist/navigation/NavItemLink.js.map +1 -1
  146. package/dist/navigation/getTableOfContentsHeadings.js.map +1 -1
  147. package/dist/navigation/types.js.map +1 -1
  148. package/dist/overlay/Overlay.js.map +1 -1
  149. package/dist/positioning/createHorizontalPosition.js.map +1 -1
  150. package/dist/positioning/createVerticalPosition.js.map +1 -1
  151. package/dist/positioning/useFixedPositioning.js.map +1 -1
  152. package/dist/progress/CircularProgress.js.map +1 -1
  153. package/dist/progress/LinearProgress.js.map +1 -1
  154. package/dist/progress/linearProgressStyles.js.map +1 -1
  155. package/dist/responsive-item/ResponsiveItem.js.map +1 -1
  156. package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
  157. package/dist/searching/caseInsensitive.js.map +1 -1
  158. package/dist/segmented-button/SegmentedButton.js.map +1 -1
  159. package/dist/segmented-button/SegmentedButtonContainer.js.map +1 -1
  160. package/dist/segmented-button/segmentedButtonStyles.js.map +1 -1
  161. package/dist/sheet/Sheet.js.map +1 -1
  162. package/dist/snackbar/Toast.js.map +1 -1
  163. package/dist/spinbutton/SpinButton.d.ts +16 -0
  164. package/dist/spinbutton/SpinButton.js +55 -0
  165. package/dist/spinbutton/SpinButton.js.map +1 -0
  166. package/dist/spinbutton/SpinButtonGroupProvider.d.ts +17 -0
  167. package/dist/spinbutton/SpinButtonGroupProvider.js +19 -0
  168. package/dist/spinbutton/SpinButtonGroupProvider.js.map +1 -0
  169. package/dist/spinbutton/defaults.d.ts +9 -0
  170. package/dist/spinbutton/defaults.js +25 -0
  171. package/dist/spinbutton/defaults.js.map +1 -0
  172. package/dist/spinbutton/types.d.ts +324 -0
  173. package/dist/spinbutton/types.js +5 -0
  174. package/dist/spinbutton/types.js.map +1 -0
  175. package/dist/spinbutton/useSpinButton.d.ts +5 -0
  176. package/dist/spinbutton/useSpinButton.js +260 -0
  177. package/dist/spinbutton/useSpinButton.js.map +1 -0
  178. package/dist/spinbutton/useSpinButtonGroupProvider.d.ts +27 -0
  179. package/dist/spinbutton/useSpinButtonGroupProvider.js +49 -0
  180. package/dist/spinbutton/useSpinButtonGroupProvider.js.map +1 -0
  181. package/dist/spinbutton/utils/deselectNode.d.ts +5 -0
  182. package/dist/spinbutton/utils/deselectNode.js +17 -0
  183. package/dist/spinbutton/utils/deselectNode.js.map +1 -0
  184. package/dist/spinbutton/utils/resolveInputEvent.d.ts +30 -0
  185. package/dist/spinbutton/utils/resolveInputEvent.js +53 -0
  186. package/dist/spinbutton/utils/resolveInputEvent.js.map +1 -0
  187. package/dist/spinbutton/utils/selectNode.d.ts +5 -0
  188. package/dist/spinbutton/utils/selectNode.js +15 -0
  189. package/dist/spinbutton/utils/selectNode.js.map +1 -0
  190. package/dist/table/StickyTableSection.js.map +1 -1
  191. package/dist/table/Table.js.map +1 -1
  192. package/dist/table/TableBody.js.map +1 -1
  193. package/dist/table/TableCellContent.js.map +1 -1
  194. package/dist/table/TableCheckbox.js.map +1 -1
  195. package/dist/table/TableFooter.js.map +1 -1
  196. package/dist/table/TableHeader.js.map +1 -1
  197. package/dist/table/TableRadio.js.map +1 -1
  198. package/dist/table/TableRow.js.map +1 -1
  199. package/dist/table/useStickyTableSection.js.map +1 -1
  200. package/dist/tabs/SimpleTabPanel.js.map +1 -1
  201. package/dist/tabs/SimpleTabPanels.js.map +1 -1
  202. package/dist/tabs/Tab.js.map +1 -1
  203. package/dist/tabs/TabList.js.map +1 -1
  204. package/dist/tabs/TabListScrollButton.js.map +1 -1
  205. package/dist/tabs/useMaxTabPanelHeight.js.map +1 -1
  206. package/dist/test-utils/data-testid.js.map +1 -1
  207. package/dist/test-utils/mocks/match-media.js +5 -5
  208. package/dist/test-utils/mocks/match-media.js.map +1 -1
  209. package/dist/test-utils/vitest/timers.d.ts +1 -1
  210. package/dist/test-utils/vitest/timers.js +1 -1
  211. package/dist/test-utils/vitest/timers.js.map +1 -1
  212. package/dist/tooltip/Tooltip.js.map +1 -1
  213. package/dist/tooltip/TooltipHoverModeProvider.js.map +1 -1
  214. package/dist/tooltip/useTooltip.js.map +1 -1
  215. package/dist/transition/CSSTransition.js.map +1 -1
  216. package/dist/transition/Collapse.js.map +1 -1
  217. package/dist/transition/CrossFade.js.map +1 -1
  218. package/dist/transition/ScaleTransition.js.map +1 -1
  219. package/dist/transition/SkeletonPlaceholder.js.map +1 -1
  220. package/dist/transition/Slide.js.map +1 -1
  221. package/dist/transition/SlideContainer.js.map +1 -1
  222. package/dist/transition/types.js.map +1 -1
  223. package/dist/transition/useCollapseTransition.js.map +1 -1
  224. package/dist/transition/useCrossFadeTransition.js.map +1 -1
  225. package/dist/transition/useMaxWidthTransition.js.map +1 -1
  226. package/dist/transition/useScaleTransition.js.map +1 -1
  227. package/dist/transition/useSkeletonPlaceholder.js.map +1 -1
  228. package/dist/tree/Tree.js.map +1 -1
  229. package/dist/tree/TreeItem.js.map +1 -1
  230. package/dist/tree/TreeProvider.js.map +1 -1
  231. package/dist/tree/styles.js.map +1 -1
  232. package/dist/tree/types.js.map +1 -1
  233. package/dist/tree/useTreeMovement.js.map +1 -1
  234. package/dist/typography/HighlightTextMark.js.map +1 -1
  235. package/dist/typography/Mark.js.map +1 -1
  236. package/dist/typography/TextContainer.js.map +1 -1
  237. package/dist/typography/Typography.js.map +1 -1
  238. package/dist/typography/_typography.scss +0 -1
  239. package/dist/useElementSize.js.map +1 -1
  240. package/dist/useIntersectionObserver.js.map +1 -1
  241. package/dist/useMutationObserver.js.map +1 -1
  242. package/dist/useWindowSize.js.map +1 -1
  243. package/dist/utils/getNumberOfDigits.d.ts +7 -0
  244. package/dist/utils/getNumberOfDigits.js +11 -0
  245. package/dist/utils/getNumberOfDigits.js.map +1 -0
  246. package/dist/utils/nearest.js +2 -1
  247. package/dist/utils/nearest.js.map +1 -1
  248. package/dist/utils/useDevEffect.d.ts +7 -0
  249. package/dist/utils/useDevEffect.js +8 -0
  250. package/dist/utils/useDevEffect.js.map +1 -0
  251. package/dist/window-splitter/WindowSplitter.js +3 -2
  252. package/dist/window-splitter/WindowSplitter.js.map +1 -1
  253. package/dist/window-splitter/_window-splitter.scss +60 -12
  254. package/dist/window-splitter/styles.d.ts +9 -0
  255. package/dist/window-splitter/styles.js +3 -2
  256. package/dist/window-splitter/styles.js.map +1 -1
  257. package/dist/window-splitter/useWindowSplitter.js.map +1 -1
  258. package/package.json +37 -29
  259. package/src/CoreProviders.tsx +1 -0
  260. package/src/app-bar/AppBar.tsx +1 -2
  261. package/src/app-bar/AppBarTitle.tsx +1 -2
  262. package/src/autocomplete/AutocompleteListboxChildren.tsx +3 -1
  263. package/src/autocomplete/types.ts +24 -19
  264. package/src/autocomplete/utils.ts +9 -6
  265. package/src/avatar/Avatar.tsx +2 -1
  266. package/src/button/Button.tsx +2 -1
  267. package/src/button/FloatingActionButton.tsx +2 -1
  268. package/src/card/Card.tsx +2 -1
  269. package/src/card/CardContent.tsx +1 -2
  270. package/src/card/ClickableCard.tsx +1 -2
  271. package/src/chip/Chip.tsx +2 -1
  272. package/src/datetime/NativeDateField.tsx +2 -1
  273. package/src/datetime/NativeTimeField.tsx +2 -1
  274. package/src/datetime/useDateField.ts +13 -8
  275. package/src/datetime/useTimeField.ts +13 -8
  276. package/src/dialog/Dialog.tsx +2 -1
  277. package/src/dialog/DialogContainer.tsx +1 -2
  278. package/src/dialog/DialogContent.tsx +1 -2
  279. package/src/dialog/DialogFooter.tsx +1 -2
  280. package/src/divider/Divider.tsx +1 -2
  281. package/src/draggable/useDraggable.ts +4 -4
  282. package/src/draggable/utils.ts +4 -2
  283. package/src/expansion-panel/ExpansionPanelHeader.tsx +1 -2
  284. package/src/files/FileInput.tsx +2 -1
  285. package/src/files/useFileUpload.ts +6 -6
  286. package/src/files/validation.ts +1 -2
  287. package/src/focus/useFocusContainer.ts +4 -4
  288. package/src/form/Fieldset.tsx +25 -3
  289. package/src/form/FormMessageContainer.tsx +1 -2
  290. package/src/form/FormMessageCounter.tsx +1 -2
  291. package/src/form/InputToggle.tsx +3 -3
  292. package/src/form/Legend.tsx +55 -10
  293. package/src/form/Listbox.tsx +1 -2
  294. package/src/form/ListboxProvider.ts +3 -2
  295. package/src/form/NativeSelect.tsx +2 -1
  296. package/src/form/Password.tsx +4 -2
  297. package/src/form/ResizingTextAreaWrapper.tsx +1 -2
  298. package/src/form/Select.tsx +2 -1
  299. package/src/form/Slider.tsx +2 -1
  300. package/src/form/SliderContainer.tsx +1 -2
  301. package/src/form/SliderThumb.tsx +6 -3
  302. package/src/form/SliderTrack.tsx +2 -1
  303. package/src/form/SliderValueMarks.tsx +1 -2
  304. package/src/form/Switch.tsx +2 -1
  305. package/src/form/TextArea.tsx +1 -2
  306. package/src/form/TextField.tsx +2 -1
  307. package/src/form/TextFieldContainer.tsx +1 -2
  308. package/src/form/fieldsetStyles.ts +18 -3
  309. package/src/form/inputToggleStyles.ts +4 -2
  310. package/src/form/labelStyles.ts +1 -1
  311. package/src/form/legendStyles.ts +132 -0
  312. package/src/form/selectUtils.ts +3 -2
  313. package/src/form/textFieldContainerStyles.ts +1 -2
  314. package/src/form/types.ts +35 -17
  315. package/src/form/useCheckboxGroup.ts +3 -2
  316. package/src/form/useCombobox.ts +8 -3
  317. package/src/form/useNumberField.ts +36 -35
  318. package/src/form/useRangeSlider.ts +1 -2
  319. package/src/form/useSlider.ts +1 -2
  320. package/src/form/useTextField.ts +8 -3
  321. package/src/hoverMode/useHoverMode.ts +4 -8
  322. package/src/icon/FontIcon.tsx +1 -2
  323. package/src/icon/IconRotator.tsx +1 -2
  324. package/src/icon/MaterialIcon.tsx +2 -1
  325. package/src/icon/MaterialSymbol.tsx +2 -1
  326. package/src/icon/SVGIcon.tsx +1 -2
  327. package/src/icon/config.tsx +10 -7
  328. package/src/icon/materialConfig.ts +1 -2
  329. package/src/icon/styles.ts +1 -2
  330. package/src/interaction/UserInteractionModeProvider.tsx +9 -4
  331. package/src/interaction/types.ts +1 -2
  332. package/src/interaction/useElementInteraction.tsx +3 -2
  333. package/src/layout/LayoutAppBar.tsx +6 -6
  334. package/src/layout/LayoutNav.tsx +2 -1
  335. package/src/layout/LayoutWindowSplitter.tsx +2 -1
  336. package/src/layout/Main.tsx +1 -2
  337. package/src/layout/useExpandableLayout.ts +63 -5
  338. package/src/layout/useHorizontalLayoutTransition.ts +1 -2
  339. package/src/layout/useLayoutTree.ts +2 -2
  340. package/src/layout/useLayoutWindowSplitter.ts +6 -6
  341. package/src/layout/useResizableLayout.ts +3 -6
  342. package/src/link/Link.tsx +1 -2
  343. package/src/link/SkipToMainContent.tsx +20 -23
  344. package/src/list/List.tsx +1 -2
  345. package/src/list/ListItem.tsx +2 -1
  346. package/src/list/ListItemAddon.tsx +2 -1
  347. package/src/list/ListItemLink.tsx +2 -1
  348. package/src/list/ListSubheader.tsx +1 -2
  349. package/src/list/getListItemHeight.ts +8 -9
  350. package/src/list/listItemStyles.ts +1 -2
  351. package/src/list/types.ts +1 -2
  352. package/src/media-queries/AppSizeProvider.tsx +8 -10
  353. package/src/media-queries/appSize.ts +3 -0
  354. package/src/media-queries/config.ts +41 -0
  355. package/src/menu/DropdownMenu.tsx +4 -5
  356. package/src/menu/Menu.tsx +2 -1
  357. package/src/menu/MenuItemButton.tsx +1 -2
  358. package/src/menu/MenuItemFileInput.tsx +2 -1
  359. package/src/menu/MenuItemInputToggle.tsx +3 -3
  360. package/src/menu/MenuItemSeparator.tsx +2 -1
  361. package/src/menu/MenuVisibilityProvider.tsx +4 -2
  362. package/src/menu/MenuWidget.tsx +1 -2
  363. package/src/menu/useContextMenu.ts +4 -2
  364. package/src/movement/types.ts +52 -13
  365. package/src/movement/useKeyboardMovementProvider.ts +77 -38
  366. package/src/navigation/CollapsibleNavGroup.tsx +1 -2
  367. package/src/navigation/NavItem.tsx +1 -2
  368. package/src/navigation/NavItemButton.tsx +2 -1
  369. package/src/navigation/NavItemLink.tsx +2 -1
  370. package/src/navigation/getTableOfContentsHeadings.ts +1 -2
  371. package/src/navigation/types.ts +1 -2
  372. package/src/overlay/Overlay.tsx +2 -1
  373. package/src/positioning/createHorizontalPosition.ts +10 -12
  374. package/src/positioning/createVerticalPosition.ts +10 -11
  375. package/src/positioning/useFixedPositioning.ts +6 -3
  376. package/src/progress/CircularProgress.tsx +2 -1
  377. package/src/progress/LinearProgress.tsx +2 -1
  378. package/src/progress/linearProgressStyles.ts +1 -2
  379. package/src/responsive-item/ResponsiveItem.tsx +1 -2
  380. package/src/responsive-item/ResponsiveItemOverlay.tsx +2 -1
  381. package/src/searching/caseInsensitive.ts +2 -4
  382. package/src/segmented-button/SegmentedButton.tsx +2 -1
  383. package/src/segmented-button/SegmentedButtonContainer.tsx +2 -1
  384. package/src/segmented-button/segmentedButtonStyles.ts +1 -2
  385. package/src/sheet/Sheet.tsx +1 -2
  386. package/src/snackbar/Toast.tsx +2 -1
  387. package/src/spinbutton/SpinButton.tsx +98 -0
  388. package/src/spinbutton/SpinButtonGroupProvider.tsx +32 -0
  389. package/src/spinbutton/defaults.ts +45 -0
  390. package/src/spinbutton/types.ts +413 -0
  391. package/src/spinbutton/useSpinButton.ts +311 -0
  392. package/src/spinbutton/useSpinButtonGroupProvider.ts +104 -0
  393. package/src/spinbutton/utils/deselectNode.ts +17 -0
  394. package/src/spinbutton/utils/resolveInputEvent.ts +112 -0
  395. package/src/spinbutton/utils/selectNode.ts +15 -0
  396. package/src/table/StickyTableSection.tsx +2 -1
  397. package/src/table/Table.tsx +1 -2
  398. package/src/table/TableBody.tsx +2 -1
  399. package/src/table/TableCellContent.tsx +1 -2
  400. package/src/table/TableCheckbox.tsx +1 -2
  401. package/src/table/TableFooter.tsx +1 -2
  402. package/src/table/TableHeader.tsx +1 -2
  403. package/src/table/TableRadio.tsx +1 -2
  404. package/src/table/TableRow.tsx +1 -2
  405. package/src/table/useStickyTableSection.tsx +1 -2
  406. package/src/tabs/SimpleTabPanel.tsx +2 -1
  407. package/src/tabs/SimpleTabPanels.tsx +2 -1
  408. package/src/tabs/Tab.tsx +3 -6
  409. package/src/tabs/TabList.tsx +2 -1
  410. package/src/tabs/TabListScrollButton.tsx +1 -2
  411. package/src/tabs/useMaxTabPanelHeight.ts +7 -4
  412. package/src/test-utils/data-testid.ts +1 -2
  413. package/src/test-utils/mocks/match-media.ts +5 -10
  414. package/src/test-utils/vitest/timers.ts +1 -1
  415. package/src/tooltip/Tooltip.tsx +2 -1
  416. package/src/tooltip/TooltipHoverModeProvider.tsx +1 -2
  417. package/src/tooltip/useTooltip.ts +9 -5
  418. package/src/transition/CSSTransition.tsx +2 -1
  419. package/src/transition/Collapse.tsx +4 -2
  420. package/src/transition/CrossFade.tsx +2 -1
  421. package/src/transition/ScaleTransition.tsx +2 -1
  422. package/src/transition/SkeletonPlaceholder.tsx +1 -2
  423. package/src/transition/Slide.tsx +2 -1
  424. package/src/transition/SlideContainer.tsx +1 -2
  425. package/src/transition/types.ts +15 -16
  426. package/src/transition/useCollapseTransition.ts +6 -5
  427. package/src/transition/useCrossFadeTransition.ts +3 -2
  428. package/src/transition/useMaxWidthTransition.ts +1 -2
  429. package/src/transition/useScaleTransition.ts +3 -2
  430. package/src/transition/useSkeletonPlaceholder.ts +1 -2
  431. package/src/tree/Tree.tsx +2 -1
  432. package/src/tree/TreeItem.tsx +2 -1
  433. package/src/tree/TreeProvider.tsx +4 -4
  434. package/src/tree/styles.ts +1 -2
  435. package/src/tree/types.ts +1 -2
  436. package/src/tree/useTreeMovement.ts +1 -2
  437. package/src/typography/HighlightTextMark.tsx +1 -2
  438. package/src/typography/Mark.tsx +1 -2
  439. package/src/typography/TextContainer.tsx +1 -2
  440. package/src/typography/Typography.tsx +1 -2
  441. package/src/useElementSize.ts +7 -4
  442. package/src/useIntersectionObserver.ts +3 -2
  443. package/src/useMutationObserver.ts +3 -2
  444. package/src/useWindowSize.ts +4 -2
  445. package/src/utils/getNumberOfDigits.ts +18 -0
  446. package/src/utils/nearest.ts +2 -1
  447. package/src/utils/useDevEffect.ts +9 -0
  448. package/src/window-splitter/WindowSplitter.tsx +5 -2
  449. package/src/window-splitter/styles.ts +13 -2
  450. package/src/window-splitter/useWindowSplitter.ts +3 -1
@@ -0,0 +1,104 @@
1
+ "use client";
2
+
3
+ import {
4
+ DEFAULT_LTR_KEYBOARD_MOVEMENT_WITHOUT_JUMP,
5
+ DEFAULT_RTL_KEYBOARD_MOVEMENT_WITHOUT_JUMP,
6
+ } from "../movement/constants.js";
7
+ import {
8
+ type KeyboardMovementProps,
9
+ type KeyboardMovementProviderImplementation,
10
+ type SimpleKeyboardMovementWrapperOptions,
11
+ } from "../movement/types.js";
12
+ import { useKeyboardMovementProvider } from "../movement/useKeyboardMovementProvider.js";
13
+ import { useDir } from "../typography/WritingDirectionProvider.js";
14
+
15
+ const SPINBUTTON_ROLE = '[role="spinbutton"]';
16
+
17
+ /**
18
+ * @internal
19
+ * @since 6.4.0
20
+ */
21
+ const getSpinButtonsOnly = (container: HTMLElement): readonly HTMLElement[] => [
22
+ ...container.querySelectorAll<HTMLElement>(SPINBUTTON_ROLE),
23
+ ];
24
+
25
+ /**
26
+ * @since 6.4.0
27
+ */
28
+ export interface SpinButtonGroupProviderOptions<
29
+ E extends HTMLElement = HTMLElement,
30
+ > extends SimpleKeyboardMovementWrapperOptions<E> {
31
+ /**
32
+ * Set this to `true` to update the container's `onClick` handler to move
33
+ * focus to the first spinbutton that does not have a value or the first
34
+ * spinbutton in the group so that focus is always moved to the spin buttons.
35
+ *
36
+ * @defaultValue `false`
37
+ */
38
+ forceFocusWithin?: boolean;
39
+ }
40
+
41
+ export interface ProvidedSpinButtonGroupProps<
42
+ E extends HTMLElement = HTMLElement,
43
+ > extends KeyboardMovementProps<E> {
44
+ role: "group";
45
+ }
46
+
47
+ /**
48
+ * @since 6.4.0
49
+ */
50
+ export interface SpinButtonGroupProviderImplementation<
51
+ E extends HTMLElement = HTMLElement,
52
+ > extends KeyboardMovementProviderImplementation<E> {
53
+ movementProps: Readonly<ProvidedSpinButtonGroupProps<E>>;
54
+ }
55
+
56
+ /**
57
+ * @since 6.4.0
58
+ */
59
+ export function useSpinButtonGroupProvider<E extends HTMLElement = HTMLElement>(
60
+ options: SpinButtonGroupProviderOptions<E> = {}
61
+ ): SpinButtonGroupProviderImplementation<E> {
62
+ const { disabled, forceFocusWithin } = options;
63
+
64
+ const isRTL = useDir().dir === "rtl";
65
+ const movementKeys = isRTL
66
+ ? DEFAULT_RTL_KEYBOARD_MOVEMENT_WITHOUT_JUMP
67
+ : DEFAULT_LTR_KEYBOARD_MOVEMENT_WITHOUT_JUMP;
68
+
69
+ const { movementProps, ...remaining } = useKeyboardMovementProvider({
70
+ ...options,
71
+ ...movementKeys,
72
+ loopable: false,
73
+ trackTabKeys: true,
74
+ getFocusableElements: getSpinButtonsOnly,
75
+ });
76
+
77
+ return {
78
+ ...remaining,
79
+ movementProps: {
80
+ ...movementProps,
81
+ role: "group",
82
+ onClick: (event) => {
83
+ movementProps.onClick(event);
84
+
85
+ const { target, currentTarget } = event;
86
+ if (
87
+ disabled ||
88
+ !forceFocusWithin ||
89
+ !(target instanceof HTMLElement) ||
90
+ target.closest(SPINBUTTON_ROLE)
91
+ ) {
92
+ return;
93
+ }
94
+
95
+ const buttons = [...currentTarget.querySelectorAll(SPINBUTTON_ROLE)];
96
+ const i = buttons.findIndex((button) => !button.ariaValueNow);
97
+ remaining.movementContext.updateFocusIndex({
98
+ index: Math.max(0, i),
99
+ force: true,
100
+ });
101
+ },
102
+ },
103
+ };
104
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @since 6.4.0
3
+ * @internal
4
+ */
5
+ export function deselectNode(node: Node): void {
6
+ const selection = window.getSelection();
7
+ if (!selection) {
8
+ return;
9
+ }
10
+
11
+ for (let i = 0; i < selection.rangeCount; i++) {
12
+ const range = selection.getRangeAt(i);
13
+ if (range.startContainer.contains(node)) {
14
+ selection.removeRange(range);
15
+ }
16
+ }
17
+ }
@@ -0,0 +1,112 @@
1
+ import { type MinMaxRange } from "../../types.js";
2
+ import { getNumberOfDigits } from "../../utils/getNumberOfDigits.js";
3
+ import {
4
+ type SpinButtonChangeReason,
5
+ type SpinButtonCharacterValueMap,
6
+ type SpinButtonValue,
7
+ } from "../types.js";
8
+
9
+ /**
10
+ * @since 6.4.0
11
+ * @internal
12
+ */
13
+ interface ResolveInputEventOptions extends Partial<MinMaxRange> {
14
+ text: string;
15
+ mappings?: SpinButtonCharacterValueMap;
16
+ minDigits?: number;
17
+ maxDigits?: number;
18
+ prevText: string;
19
+ prevValue: SpinButtonValue;
20
+ typedCount: number;
21
+ }
22
+
23
+ type SpinButtonResolvedInputReason =
24
+ | SpinButtonChangeReason
25
+ | "ignored"
26
+ | "placeholder-digit";
27
+
28
+ /**
29
+ * @since 6.4.0
30
+ * @internal
31
+ */
32
+ interface ResolveInputEvent {
33
+ reason: SpinButtonResolvedInputReason;
34
+ nextValue: SpinButtonValue;
35
+ }
36
+
37
+ /**
38
+ * @since 6.4.0
39
+ * @internal
40
+ */
41
+ export function resolveInputEvent(
42
+ options: ResolveInputEventOptions
43
+ ): ResolveInputEvent {
44
+ const {
45
+ min,
46
+ max,
47
+ minDigits = getNumberOfDigits(min),
48
+ maxDigits = getNumberOfDigits(max),
49
+ text,
50
+ mappings,
51
+ typedCount,
52
+ prevValue,
53
+ } = options;
54
+
55
+ let { prevText } = options;
56
+ if (typedCount === 0) {
57
+ prevText = "";
58
+ }
59
+
60
+ if (!text) {
61
+ return {
62
+ reason: "cleared",
63
+ nextValue: null,
64
+ };
65
+ }
66
+
67
+ if (mappings) {
68
+ const nextValue = mappings[text] ?? prevValue;
69
+
70
+ let reason: SpinButtonResolvedInputReason = "ignored";
71
+ if (typeof mappings[text] === "number") {
72
+ reason = "typed-to-completion";
73
+ }
74
+
75
+ return {
76
+ reason,
77
+ nextValue,
78
+ };
79
+ }
80
+
81
+ if (/[^0-9]/.test(text)) {
82
+ return {
83
+ reason: "ignored",
84
+ nextValue: prevValue,
85
+ };
86
+ }
87
+
88
+ let reason: SpinButtonResolvedInputReason = "type";
89
+ let nextValue: SpinButtonValue = parseInt(prevText + text, 10);
90
+ if (typeof minDigits === "number" && typedCount + 1 < minDigits) {
91
+ reason = "placeholder-digit";
92
+ }
93
+
94
+ if (typeof max === "number" && nextValue > max) {
95
+ nextValue = prevValue;
96
+ }
97
+
98
+ if (
99
+ typeof nextValue === "number" &&
100
+ // if typing a new value surpasses the number of digits allowed
101
+ ((typeof maxDigits === "number" && typedCount + 1 >= maxDigits) ||
102
+ // typing a new value would exceed the max value
103
+ (typeof max === "number" && nextValue * 10 > max))
104
+ ) {
105
+ reason = "typed-to-completion";
106
+ }
107
+
108
+ return {
109
+ reason,
110
+ nextValue,
111
+ };
112
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @since 6.4.0
3
+ * @internal
4
+ */
5
+ export function selectNode(node: Node): void {
6
+ const selection = window.getSelection();
7
+ if (!selection) {
8
+ return;
9
+ }
10
+
11
+ const range = document.createRange();
12
+ range.selectNodeContents(node);
13
+ selection.removeAllRanges();
14
+ selection.addRange(range);
15
+ }
@@ -14,7 +14,8 @@ import { useTableSectionConfig } from "./useTableSectionConfig.js";
14
14
 
15
15
  /** @since 6.0.0 */
16
16
  export interface StickyTableSectionProps
17
- extends HTMLAttributes<HTMLTableSectionElement>,
17
+ extends
18
+ HTMLAttributes<HTMLTableSectionElement>,
18
19
  TableStickySectionConfiguration,
19
20
  TableSectionConfiguration {
20
21
  type: "header" | "footer";
@@ -27,8 +27,7 @@ declare module "react" {
27
27
  }
28
28
 
29
29
  export interface TableProps
30
- extends TableHTMLAttributes<HTMLTableElement>,
31
- TableConfiguration {}
30
+ extends TableHTMLAttributes<HTMLTableElement>, TableConfiguration {}
32
31
 
33
32
  /**
34
33
  * **Client Component**
@@ -10,7 +10,8 @@ import {
10
10
  import { type TableConfig, type TableConfigContext } from "./types.js";
11
11
 
12
12
  export interface TableBodyProps
13
- extends HTMLAttributes<HTMLTableSectionElement>,
13
+ extends
14
+ HTMLAttributes<HTMLTableSectionElement>,
14
15
  Omit<TableConfig, "header"> {}
15
16
 
16
17
  /**
@@ -19,8 +19,7 @@ export type TableCellContentsIconRotatorProps = Omit<
19
19
  * can be passed to the `ButtonUnstyled`
20
20
  * @internal
21
21
  */
22
- export interface TableCellContentProps
23
- extends ButtonHTMLAttributes<HTMLButtonElement> {
22
+ export interface TableCellContentProps extends ButtonHTMLAttributes<HTMLButtonElement> {
24
23
  /**
25
24
  * The current sort order for this cell. Setting this to `null` will prevent
26
25
  * the button from being rendered.
@@ -48,8 +48,7 @@ export type TableCheckboxSupportedCheckboxProps = Pick<
48
48
  * `"Toggle Row Selection"` to `"Select Row"`.
49
49
  */
50
50
  export interface TableCheckboxProps
51
- extends TableCheckboxTdHTMLAttributes,
52
- TableCheckboxSupportedCheckboxProps {
51
+ extends TableCheckboxTdHTMLAttributes, TableCheckboxSupportedCheckboxProps {
53
52
  /**
54
53
  * @defaultValue `!props["aria-labelledby"] ? "Select Row" : undefined`
55
54
  */
@@ -8,8 +8,7 @@ import { type TableSectionConfiguration } from "./types.js";
8
8
  import { useTableSectionConfig } from "./useTableSectionConfig.js";
9
9
 
10
10
  export interface TableFooterProps
11
- extends HTMLAttributes<HTMLTableSectionElement>,
12
- TableSectionConfiguration {
11
+ extends HTMLAttributes<HTMLTableSectionElement>, TableSectionConfiguration {
13
12
  /**
14
13
  * NOTE: It is recommended to use the `StickyTableSection` component instead
15
14
  * of enabling this prop since it supports dynamically adding styles while the
@@ -8,8 +8,7 @@ import { type TableSectionConfiguration } from "./types.js";
8
8
  import { useTableSectionConfig } from "./useTableSectionConfig.js";
9
9
 
10
10
  export interface TableHeaderProps
11
- extends HTMLAttributes<HTMLTableSectionElement>,
12
- TableSectionConfiguration {
11
+ extends HTMLAttributes<HTMLTableSectionElement>, TableSectionConfiguration {
13
12
  /**
14
13
  * NOTE: It is recommended to use the `StickyTableSection` component instead
15
14
  * of enabling this prop since it supports dynamically adding styles while the
@@ -43,8 +43,7 @@ export type TableRadioSupportedRadioProps = Pick<
43
43
  * @since 6.0.0
44
44
  */
45
45
  export interface TableRadioProps
46
- extends TableRadioTdHTMLAttributes,
47
- TableRadioSupportedRadioProps {
46
+ extends TableRadioTdHTMLAttributes, TableRadioSupportedRadioProps {
48
47
  /**
49
48
  * @defaultValue `!props["aria-labelledby"] ? "Select Row" : undefined`
50
49
  */
@@ -7,8 +7,7 @@ import { tableRow } from "./tableRowStyles.js";
7
7
  import { type TableRowConfiguration } from "./types.js";
8
8
 
9
9
  export interface TableRowProps
10
- extends HTMLAttributes<HTMLTableRowElement>,
11
- TableRowConfiguration {
10
+ extends HTMLAttributes<HTMLTableRowElement>, TableRowConfiguration {
12
11
  /**
13
12
  * Boolean if the current row has been selected and should apply the selected
14
13
  * background-color.
@@ -44,8 +44,7 @@ export const isTableFooterStickyActive: IsStickyTableSectionActive = (
44
44
  };
45
45
 
46
46
  /** @since 6.0.0 */
47
- export interface TableStickySectionOptions
48
- extends TableStickySectionConfiguration {
47
+ export interface TableStickySectionOptions extends TableStickySectionConfiguration {
49
48
  ref?: Ref<HTMLTableSectionElement>;
50
49
  type: "header" | "footer";
51
50
  }
@@ -8,7 +8,8 @@ import { type ProvidedTabPanelProps } from "./useTabs.js";
8
8
  * @since 6.0.0
9
9
  */
10
10
  export interface SimpleTabPanelProps
11
- extends Omit<HTMLAttributes<HTMLDivElement>, keyof ProvidedTabPanelProps>,
11
+ extends
12
+ Omit<HTMLAttributes<HTMLDivElement>, keyof ProvidedTabPanelProps>,
12
13
  ProvidedTabPanelProps {
13
14
  children: ReactNode;
14
15
  }
@@ -6,7 +6,8 @@ import { type ProvidedTabPanelsProps } from "./useTabs.js";
6
6
  * @since 6.0.0
7
7
  */
8
8
  export interface SimpleTabPanelsProps
9
- extends HTMLAttributes<HTMLDivElement>,
9
+ extends
10
+ HTMLAttributes<HTMLDivElement>,
10
11
  Omit<ProvidedTabPanelsProps<HTMLDivElement>, "ref"> {
11
12
  children: ReactNode;
12
13
  }
package/src/tabs/Tab.tsx CHANGED
@@ -21,8 +21,7 @@ import { type useTabs } from "./useTabs.js";
21
21
  * @since 6.0.0
22
22
  */
23
23
  export interface BaseTabProps
24
- extends ComponentWithRippleProps,
25
- BaseTabClassNameOptions {
24
+ extends ComponentWithRippleProps, BaseTabClassNameOptions {
26
25
  /**
27
26
  * Set this to `true` if the tab is currently active.
28
27
  *
@@ -51,8 +50,7 @@ export interface BaseTabProps
51
50
  * @since 6.0.0
52
51
  */
53
52
  export interface TabButtonProps
54
- extends BaseTabProps,
55
- ButtonHTMLAttributes<HTMLButtonElement> {
53
+ extends BaseTabProps, ButtonHTMLAttributes<HTMLButtonElement> {
56
54
  as?: "button";
57
55
  }
58
56
 
@@ -60,8 +58,7 @@ export interface TabButtonProps
60
58
  * @since 6.0.0
61
59
  */
62
60
  export interface TabLinkProps
63
- extends BaseTabProps,
64
- AnchorHTMLAttributes<HTMLAnchorElement> {
61
+ extends BaseTabProps, AnchorHTMLAttributes<HTMLAnchorElement> {
65
62
  as: CustomLinkComponent;
66
63
  }
67
64
 
@@ -27,7 +27,8 @@ import { type useTabs } from "./useTabs.js";
27
27
  * @since 6.0.0
28
28
  */
29
29
  export interface TabListProps
30
- extends HTMLAttributes<HTMLDivElement>,
30
+ extends
31
+ HTMLAttributes<HTMLDivElement>,
31
32
  Omit<TabListClassNameOptions, "animate" | "indicator"> {
32
33
  activeIndex: number;
33
34
  setActiveIndex: (nextActiveIndex: number) => void;
@@ -29,8 +29,7 @@ import {
29
29
  * @since 6.0.0
30
30
  */
31
31
  export interface BaseTabListScrollButtonProps
32
- extends HTMLAttributes<HTMLDivElement>,
33
- ButtonClassNameThemeOptions {
32
+ extends HTMLAttributes<HTMLDivElement>, ButtonClassNameThemeOptions {
34
33
  buttonProps?: PropsWithRef<ButtonProps>;
35
34
 
36
35
  /** @defaultValue `false` */
@@ -12,8 +12,10 @@ import { getTabPanelRoleOnly } from "./utils.js";
12
12
  /**
13
13
  * @since 6.0.0
14
14
  */
15
- export interface MaxTabPanelHeightOptions<E extends HTMLElement>
16
- extends Pick<TabsImplementation, "getTabPanelsProps"> {
15
+ export interface MaxTabPanelHeightOptions<E extends HTMLElement> extends Pick<
16
+ TabsImplementation,
17
+ "getTabPanelsProps"
18
+ > {
17
19
  ref?: Ref<E>;
18
20
  style?: CSSProperties;
19
21
 
@@ -26,8 +28,9 @@ export interface MaxTabPanelHeightOptions<E extends HTMLElement>
26
28
  /**
27
29
  * @since 6.0.0
28
30
  */
29
- export interface ProvidedMaxTabPanelsHeightProps<E extends HTMLElement>
30
- extends ProvidedTabPanelsProps<E> {
31
+ export interface ProvidedMaxTabPanelsHeightProps<
32
+ E extends HTMLElement,
33
+ > extends ProvidedTabPanelsProps<E> {
31
34
  style: CSSProperties;
32
35
  }
33
36
 
@@ -2,8 +2,7 @@
2
2
 
3
3
  declare module "react" {
4
4
  interface HTMLAttributes<T>
5
- extends React.AriaAttributes,
6
- React.DOMAttributes<T> {
5
+ extends React.AriaAttributes, React.DOMAttributes<T> {
7
6
  "data-testid"?: string | number;
8
7
  }
9
8
  }
@@ -1,9 +1,4 @@
1
- import {
2
- DEFAULT_DESKTOP_LARGE_MIN_WIDTH,
3
- DEFAULT_DESKTOP_MIN_WIDTH,
4
- DEFAULT_PHONE_MAX_WIDTH,
5
- DEFAULT_TABLET_MIN_WIDTH,
6
- } from "../../media-queries/appSize.js";
1
+ import { MEDIA_QUERY_CONFIG } from "../../media-queries/config.js";
7
2
 
8
3
  /**
9
4
  * @since 6.0.0
@@ -64,28 +59,28 @@ export type MatchMediaMatcher = (query: string) => boolean;
64
59
  * @returns `true` for phone media queries
65
60
  */
66
61
  export const matchPhone: MatchMediaMatcher = (query) =>
67
- query.includes(DEFAULT_PHONE_MAX_WIDTH);
62
+ query.includes(`${MEDIA_QUERY_CONFIG.phoneMaxWidth}`);
68
63
 
69
64
  /**
70
65
  * @since 6.0.0
71
66
  * @returns `true` for tablet media queries
72
67
  */
73
68
  export const matchTablet: MatchMediaMatcher = (query) =>
74
- query.includes(DEFAULT_TABLET_MIN_WIDTH);
69
+ query.includes(`${MEDIA_QUERY_CONFIG.tabletMinWidth}`);
75
70
 
76
71
  /**
77
72
  * @since 6.0.0
78
73
  * @returns `true` for desktop media queries
79
74
  */
80
75
  export const matchDesktop: MatchMediaMatcher = (query) =>
81
- query.includes(DEFAULT_DESKTOP_MIN_WIDTH);
76
+ query.includes(`${MEDIA_QUERY_CONFIG.desktopMinWidth}`);
82
77
 
83
78
  /**
84
79
  * @since 6.0.0
85
80
  * @returns `true` for large desktop media queries
86
81
  */
87
82
  export const matchLargeDesktop: MatchMediaMatcher = (query) =>
88
- query.includes(DEFAULT_DESKTOP_LARGE_MIN_WIDTH);
83
+ query.includes(`${MEDIA_QUERY_CONFIG.desktopLargeMinWidth}`);
89
84
 
90
85
  /**
91
86
  * @since 6.0.0
@@ -27,7 +27,7 @@ export type RafSpy = MockInstance<typeof requestAnimationFrame>;
27
27
  * import { testImmediateRaf } from "@react-md/core/test-utils/vitest";
28
28
  *
29
29
  * afterEach(() => {
30
- * jest.restoreAllMocks();
30
+ * vi.restoreAllMocks();
31
31
  * });
32
32
  *
33
33
  * describe("some test suite", () => {
@@ -32,7 +32,8 @@ import { type TooltipClassNameOptions, tooltip } from "./styles.js";
32
32
  * augmentation.
33
33
  */
34
34
  export interface TooltipProps
35
- extends HTMLAttributes<HTMLSpanElement>,
35
+ extends
36
+ HTMLAttributes<HTMLSpanElement>,
36
37
  TooltipClassNameOptions,
37
38
  CSSTransitionComponentProps,
38
39
  SSRTransitionOptions,
@@ -38,8 +38,7 @@ export function useTooltipHoverMode(): Readonly<TooltipHoverModeContext> {
38
38
  /**
39
39
  * @since 6.0.0
40
40
  */
41
- export interface TooltipHoverModeProviderProps
42
- extends Partial<HoverModeConfiguration> {
41
+ export interface TooltipHoverModeProviderProps extends Partial<HoverModeConfiguration> {
43
42
  children: ReactNode;
44
43
 
45
44
  /**
@@ -129,8 +129,9 @@ export interface TooltippedElementEventHandlers<
129
129
  * @since 2.8.0
130
130
  * @since 6.0.0 Renamed from `TooltipHookProvidedElementProps`
131
131
  */
132
- export interface ProvidedTooltippedElementProps<E extends HTMLElement>
133
- extends Required<TooltippedElementEventHandlers<E>> {
132
+ export interface ProvidedTooltippedElementProps<
133
+ E extends HTMLElement,
134
+ > extends Required<TooltippedElementEventHandlers<E>> {
134
135
  "aria-describedby": string | undefined;
135
136
  id: string;
136
137
  }
@@ -144,7 +145,9 @@ export interface ProvidedTooltippedElementProps<E extends HTMLElement>
144
145
  */
145
146
  export interface TooltipOptions<
146
147
  TooltippedElement extends HTMLElement = HTMLButtonElement,
147
- > extends FixedPositioningTransitionCallbacks,
148
+ >
149
+ extends
150
+ FixedPositioningTransitionCallbacks,
148
151
  TooltippedElementEventHandlers<TooltippedElement>,
149
152
  TooltipPositioningOptions,
150
153
  TooltipPositionHookOptions {
@@ -263,8 +266,9 @@ export interface TooltipOptions<
263
266
  * @since 2.8.0
264
267
  * @since 6.0.0 This was renamed from `TooltipHookProvidedTooltipProps`
265
268
  */
266
- export interface ProvidedTooltipProps<E extends HTMLElement = HTMLSpanElement>
267
- extends Required<FixedPositioningTransitionCallbacks> {
269
+ export interface ProvidedTooltipProps<
270
+ E extends HTMLElement = HTMLSpanElement,
271
+ > extends Required<FixedPositioningTransitionCallbacks> {
268
272
  id: string;
269
273
  ref: Ref<E>;
270
274
  dense: boolean;
@@ -15,7 +15,8 @@ import { useCSSTransition } from "./useCSSTransition.js";
15
15
  * @since 4.0.0
16
16
  */
17
17
  export interface CSSTransitionProps<E extends HTMLElement>
18
- extends CSSTransitionHookOptions<E>,
18
+ extends
19
+ CSSTransitionHookOptions<E>,
19
20
  CSSTransitionComponentImplementation<E> {}
20
21
 
21
22
  /**
@@ -16,8 +16,10 @@ import {
16
16
  * @since 2.0.0
17
17
  * @since 4.0.0 Updated for the new CSS Transition API.
18
18
  */
19
- export interface CollapseProps<E extends HTMLElement>
20
- extends Omit<CollapseTransitionHookOptions<E>, "transitionIn"> {
19
+ export interface CollapseProps<E extends HTMLElement> extends Omit<
20
+ CollapseTransitionHookOptions<E>,
21
+ "transitionIn"
22
+ > {
21
23
  /**
22
24
  * The child element that should have a `ref` and the `style`/`className`
23
25
  * props cloned into using the `cloneElement` API. If the child is a custom
@@ -16,7 +16,8 @@ import {
16
16
  * @since 4.0.0 Updated for the new CSS Transition API
17
17
  */
18
18
  export interface CrossFadeProps<E extends HTMLElement>
19
- extends CrossFadeTransitionHookOptions<E>,
19
+ extends
20
+ CrossFadeTransitionHookOptions<E>,
20
21
  CSSTransitionComponentImplementation<E> {
21
22
  /**
22
23
  * Unlike the {@link useCrossFadeTransition}, the `appear` value is defaulted
@@ -17,7 +17,8 @@ import {
17
17
  * @since 6.0.0 Removed portal props
18
18
  */
19
19
  export interface ScaleTransitionProps<E extends HTMLElement>
20
- extends CSSTransitionComponentImplementation<E>,
20
+ extends
21
+ CSSTransitionComponentImplementation<E>,
21
22
  ScaleTransitionHookOptions<E> {}
22
23
 
23
24
  /**
@@ -14,8 +14,7 @@ import {
14
14
 
15
15
  /** @since 6.0.0 */
16
16
  export interface SkeletonPlaceholderProps
17
- extends HTMLAttributes<HTMLDivElement>,
18
- SkeletonPlaceholderOptions {
17
+ extends HTMLAttributes<HTMLDivElement>, SkeletonPlaceholderOptions {
19
18
  /**
20
19
  * @defaultValue `!!children`
21
20
  * @see {@link SkeletonPlaceholderOptions.disabled}
@@ -22,7 +22,8 @@ declare module "react" {
22
22
 
23
23
  /** @since 6.0.0 */
24
24
  export interface SlideProps
25
- extends HTMLAttributes<HTMLDivElement>,
25
+ extends
26
+ HTMLAttributes<HTMLDivElement>,
26
27
  CSSTransitionComponentProps,
27
28
  TransitionActions {
28
29
  /**
@@ -72,8 +72,7 @@ export function slideContainer(
72
72
 
73
73
  /** @since 6.0.0 */
74
74
  export interface SlideContainerProps
75
- extends HTMLAttributes<HTMLDivElement>,
76
- SlideContainerClassNameOptions {}
75
+ extends HTMLAttributes<HTMLDivElement>, SlideContainerClassNameOptions {}
77
76
 
78
77
  /**
79
78
  * The `SlideContainer` is used to enable a slide transition when child `Slide`