@react-md/core 6.3.4 → 6.5.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 (477) hide show
  1. package/dist/CoreProviders.d.ts +1 -0
  2. package/dist/CoreProviders.js.map +1 -1
  3. package/dist/_a11y.scss +3 -1
  4. package/dist/_base.scss +3 -0
  5. package/dist/_box-shadows.scss +20 -12
  6. package/dist/_core.scss +2 -1
  7. package/dist/_utils.scss +32 -10
  8. package/dist/app-bar/AppBar.js.map +1 -1
  9. package/dist/app-bar/AppBarTitle.js.map +1 -1
  10. package/dist/app-bar/_app-bar.scss +3 -3
  11. package/dist/autocomplete/AutocompleteListboxChildren.js.map +1 -1
  12. package/dist/autocomplete/_autocomplete.scss +20 -16
  13. package/dist/autocomplete/types.js.map +1 -1
  14. package/dist/autocomplete/utils.js.map +1 -1
  15. package/dist/avatar/Avatar.js.map +1 -1
  16. package/dist/avatar/_avatar.scss +2 -1
  17. package/dist/button/Button.js.map +1 -1
  18. package/dist/button/FloatingActionButton.js.map +1 -1
  19. package/dist/button/_button.scss +9 -5
  20. package/dist/card/Card.js.map +1 -1
  21. package/dist/card/CardContent.js.map +1 -1
  22. package/dist/card/ClickableCard.js.map +1 -1
  23. package/dist/card/_card.scss +6 -6
  24. package/dist/chip/Chip.js.map +1 -1
  25. package/dist/chip/_chip.scss +6 -6
  26. package/dist/datetime/NativeDateField.js.map +1 -1
  27. package/dist/datetime/NativeTimeField.js.map +1 -1
  28. package/dist/datetime/useDateField.js.map +1 -1
  29. package/dist/datetime/useTimeField.js.map +1 -1
  30. package/dist/dialog/Dialog.js.map +1 -1
  31. package/dist/dialog/DialogContainer.js.map +1 -1
  32. package/dist/dialog/DialogContent.js.map +1 -1
  33. package/dist/dialog/DialogFooter.js.map +1 -1
  34. package/dist/dialog/_dialog.scss +6 -6
  35. package/dist/divider/Divider.js.map +1 -1
  36. package/dist/divider/_divider.scss +6 -2
  37. package/dist/draggable/useDraggable.js.map +1 -1
  38. package/dist/draggable/utils.js.map +1 -1
  39. package/dist/expansion-panel/ExpansionPanelHeader.js.map +1 -1
  40. package/dist/files/FileInput.js.map +1 -1
  41. package/dist/files/useFileUpload.js.map +1 -1
  42. package/dist/files/validation.js.map +1 -1
  43. package/dist/focus/useFocusContainer.js.map +1 -1
  44. package/dist/form/Fieldset.d.ts +19 -0
  45. package/dist/form/Fieldset.js +22 -2
  46. package/dist/form/Fieldset.js.map +1 -1
  47. package/dist/form/FormMessageContainer.js.map +1 -1
  48. package/dist/form/FormMessageCounter.js.map +1 -1
  49. package/dist/form/InputToggle.js.map +1 -1
  50. package/dist/form/Legend.d.ts +27 -5
  51. package/dist/form/Legend.js +39 -6
  52. package/dist/form/Legend.js.map +1 -1
  53. package/dist/form/Listbox.js.map +1 -1
  54. package/dist/form/ListboxProvider.js.map +1 -1
  55. package/dist/form/NativeSelect.js.map +1 -1
  56. package/dist/form/Password.js.map +1 -1
  57. package/dist/form/ResizingTextAreaWrapper.js.map +1 -1
  58. package/dist/form/Select.d.ts +24 -0
  59. package/dist/form/Select.js +14 -3
  60. package/dist/form/Select.js.map +1 -1
  61. package/dist/form/SelectedOption.d.ts +1 -2
  62. package/dist/form/SelectedOption.js +2 -2
  63. package/dist/form/SelectedOption.js.map +1 -1
  64. package/dist/form/Slider.js.map +1 -1
  65. package/dist/form/SliderContainer.js.map +1 -1
  66. package/dist/form/SliderThumb.js.map +1 -1
  67. package/dist/form/SliderTrack.js.map +1 -1
  68. package/dist/form/SliderValueMarks.js.map +1 -1
  69. package/dist/form/Switch.js.map +1 -1
  70. package/dist/form/TextArea.js.map +1 -1
  71. package/dist/form/TextField.js.map +1 -1
  72. package/dist/form/TextFieldContainer.js.map +1 -1
  73. package/dist/form/_fieldset.scss +7 -0
  74. package/dist/form/_input-toggle.scss +6 -5
  75. package/dist/form/_label.scss +2 -2
  76. package/dist/form/_legend.scss +77 -0
  77. package/dist/form/_slider.scss +7 -5
  78. package/dist/form/_switch.scss +7 -5
  79. package/dist/form/_text-field.scss +52 -15
  80. package/dist/form/defaultGetSelectedOptionChildren.d.ts +1 -0
  81. package/dist/form/fieldsetStyles.d.ts +6 -1
  82. package/dist/form/fieldsetStyles.js +3 -2
  83. package/dist/form/fieldsetStyles.js.map +1 -1
  84. package/dist/form/getSelectedOptionChildren.d.ts +1 -0
  85. package/dist/form/inputToggleStyles.js.map +1 -1
  86. package/dist/form/labelStyles.d.ts +1 -1
  87. package/dist/form/labelStyles.js +1 -1
  88. package/dist/form/labelStyles.js.map +1 -1
  89. package/dist/form/legendStyles.d.ts +83 -0
  90. package/dist/form/legendStyles.js +25 -0
  91. package/dist/form/legendStyles.js.map +1 -0
  92. package/dist/form/selectUtils.js.map +1 -1
  93. package/dist/form/textFieldContainerStyles.js.map +1 -1
  94. package/dist/form/types.d.ts +28 -6
  95. package/dist/form/types.js.map +1 -1
  96. package/dist/form/useCheckboxGroup.js.map +1 -1
  97. package/dist/form/useCombobox.js.map +1 -1
  98. package/dist/form/useNumberField.js +16 -19
  99. package/dist/form/useNumberField.js.map +1 -1
  100. package/dist/form/useRangeSlider.js.map +1 -1
  101. package/dist/form/useSlider.js.map +1 -1
  102. package/dist/form/useTextField.js.map +1 -1
  103. package/dist/hoverMode/useHoverMode.js.map +1 -1
  104. package/dist/icon/FontIcon.js.map +1 -1
  105. package/dist/icon/IconRotator.js.map +1 -1
  106. package/dist/icon/MaterialIcon.js.map +1 -1
  107. package/dist/icon/MaterialSymbol.js.map +1 -1
  108. package/dist/icon/SVGIcon.js.map +1 -1
  109. package/dist/icon/config.d.ts +0 -1
  110. package/dist/icon/config.js +10 -7
  111. package/dist/icon/config.js.map +1 -1
  112. package/dist/icon/materialConfig.js.map +1 -1
  113. package/dist/icon/styles.js.map +1 -1
  114. package/dist/interaction/UserInteractionModeProvider.js +6 -4
  115. package/dist/interaction/UserInteractionModeProvider.js.map +1 -1
  116. package/dist/interaction/_interaction.scss +5 -3
  117. package/dist/interaction/types.js.map +1 -1
  118. package/dist/interaction/useElementInteraction.js.map +1 -1
  119. package/dist/layout/LayoutAppBar.d.ts +6 -6
  120. package/dist/layout/LayoutAppBar.js +6 -6
  121. package/dist/layout/LayoutAppBar.js.map +1 -1
  122. package/dist/layout/LayoutNav.js.map +1 -1
  123. package/dist/layout/LayoutWindowSplitter.js.map +1 -1
  124. package/dist/layout/Main.js.map +1 -1
  125. package/dist/layout/useExpandableLayout.js +43 -0
  126. package/dist/layout/useExpandableLayout.js.map +1 -1
  127. package/dist/layout/useHorizontalLayoutTransition.js.map +1 -1
  128. package/dist/layout/useLayoutTree.js.map +1 -1
  129. package/dist/layout/useLayoutWindowSplitter.js.map +1 -1
  130. package/dist/layout/useResizableLayout.js.map +1 -1
  131. package/dist/link/Link.js.map +1 -1
  132. package/dist/link/SkipToMainContent.js +19 -21
  133. package/dist/link/SkipToMainContent.js.map +1 -1
  134. package/dist/list/List.js.map +1 -1
  135. package/dist/list/ListItem.js.map +1 -1
  136. package/dist/list/ListItemAddon.js.map +1 -1
  137. package/dist/list/ListItemLink.js.map +1 -1
  138. package/dist/list/ListSubheader.js.map +1 -1
  139. package/dist/list/getListItemHeight.js.map +1 -1
  140. package/dist/list/listItemStyles.js.map +1 -1
  141. package/dist/list/types.js.map +1 -1
  142. package/dist/media-queries/AppSizeProvider.d.ts +2 -0
  143. package/dist/media-queries/AppSizeProvider.js +3 -2
  144. package/dist/media-queries/AppSizeProvider.js.map +1 -1
  145. package/dist/media-queries/appSize.d.ts +3 -0
  146. package/dist/media-queries/appSize.js +3 -1
  147. package/dist/media-queries/appSize.js.map +1 -1
  148. package/dist/media-queries/config.d.ts +11 -0
  149. package/dist/media-queries/config.js +26 -0
  150. package/dist/media-queries/config.js.map +1 -0
  151. package/dist/menu/DropdownMenu.js.map +1 -1
  152. package/dist/menu/Menu.js.map +1 -1
  153. package/dist/menu/MenuItemButton.js.map +1 -1
  154. package/dist/menu/MenuItemFileInput.js.map +1 -1
  155. package/dist/menu/MenuItemInputToggle.js.map +1 -1
  156. package/dist/menu/MenuItemSeparator.js.map +1 -1
  157. package/dist/menu/MenuVisibilityProvider.js.map +1 -1
  158. package/dist/menu/MenuWidget.js.map +1 -1
  159. package/dist/menu/useContextMenu.js.map +1 -1
  160. package/dist/movement/types.d.ts +28 -3
  161. package/dist/movement/types.js.map +1 -1
  162. package/dist/movement/useKeyboardMovementProvider.js +96 -47
  163. package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
  164. package/dist/navigation/CollapsibleNavGroup.js.map +1 -1
  165. package/dist/navigation/NavItem.js.map +1 -1
  166. package/dist/navigation/NavItemButton.js.map +1 -1
  167. package/dist/navigation/NavItemLink.js.map +1 -1
  168. package/dist/navigation/getTableOfContentsHeadings.js.map +1 -1
  169. package/dist/navigation/types.js.map +1 -1
  170. package/dist/overlay/Overlay.js.map +1 -1
  171. package/dist/positioning/createHorizontalPosition.js.map +1 -1
  172. package/dist/positioning/createVerticalPosition.js.map +1 -1
  173. package/dist/positioning/useFixedPositioning.js.map +1 -1
  174. package/dist/progress/CircularProgress.js.map +1 -1
  175. package/dist/progress/LinearProgress.js.map +1 -1
  176. package/dist/progress/linearProgressStyles.js.map +1 -1
  177. package/dist/responsive-item/ResponsiveItem.js.map +1 -1
  178. package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
  179. package/dist/searching/caseInsensitive.js.map +1 -1
  180. package/dist/segmented-button/SegmentedButton.js.map +1 -1
  181. package/dist/segmented-button/SegmentedButtonContainer.js.map +1 -1
  182. package/dist/segmented-button/segmentedButtonStyles.js.map +1 -1
  183. package/dist/sheet/Sheet.js.map +1 -1
  184. package/dist/snackbar/Toast.js.map +1 -1
  185. package/dist/snackbar/_snackbar.scss +3 -3
  186. package/dist/spinbutton/SpinButton.d.ts +16 -0
  187. package/dist/spinbutton/SpinButton.js +55 -0
  188. package/dist/spinbutton/SpinButton.js.map +1 -0
  189. package/dist/spinbutton/SpinButtonGroupProvider.d.ts +17 -0
  190. package/dist/spinbutton/SpinButtonGroupProvider.js +19 -0
  191. package/dist/spinbutton/SpinButtonGroupProvider.js.map +1 -0
  192. package/dist/spinbutton/defaults.d.ts +9 -0
  193. package/dist/spinbutton/defaults.js +25 -0
  194. package/dist/spinbutton/defaults.js.map +1 -0
  195. package/dist/spinbutton/types.d.ts +324 -0
  196. package/dist/spinbutton/types.js +5 -0
  197. package/dist/spinbutton/types.js.map +1 -0
  198. package/dist/spinbutton/useSpinButton.d.ts +5 -0
  199. package/dist/spinbutton/useSpinButton.js +260 -0
  200. package/dist/spinbutton/useSpinButton.js.map +1 -0
  201. package/dist/spinbutton/useSpinButtonGroupProvider.d.ts +27 -0
  202. package/dist/spinbutton/useSpinButtonGroupProvider.js +49 -0
  203. package/dist/spinbutton/useSpinButtonGroupProvider.js.map +1 -0
  204. package/dist/spinbutton/utils/deselectNode.d.ts +5 -0
  205. package/dist/spinbutton/utils/deselectNode.js +17 -0
  206. package/dist/spinbutton/utils/deselectNode.js.map +1 -0
  207. package/dist/spinbutton/utils/resolveInputEvent.d.ts +30 -0
  208. package/dist/spinbutton/utils/resolveInputEvent.js +53 -0
  209. package/dist/spinbutton/utils/resolveInputEvent.js.map +1 -0
  210. package/dist/spinbutton/utils/selectNode.d.ts +5 -0
  211. package/dist/spinbutton/utils/selectNode.js +15 -0
  212. package/dist/spinbutton/utils/selectNode.js.map +1 -0
  213. package/dist/table/StickyTableSection.js.map +1 -1
  214. package/dist/table/Table.js.map +1 -1
  215. package/dist/table/TableBody.js.map +1 -1
  216. package/dist/table/TableCellContent.js.map +1 -1
  217. package/dist/table/TableCheckbox.js.map +1 -1
  218. package/dist/table/TableFooter.js.map +1 -1
  219. package/dist/table/TableHeader.js.map +1 -1
  220. package/dist/table/TableRadio.js.map +1 -1
  221. package/dist/table/TableRow.js.map +1 -1
  222. package/dist/table/useStickyTableSection.js.map +1 -1
  223. package/dist/tabs/SimpleTabPanel.js.map +1 -1
  224. package/dist/tabs/SimpleTabPanels.js.map +1 -1
  225. package/dist/tabs/Tab.js.map +1 -1
  226. package/dist/tabs/TabList.js.map +1 -1
  227. package/dist/tabs/TabListScrollButton.js.map +1 -1
  228. package/dist/tabs/_tabs.scss +5 -6
  229. package/dist/tabs/useMaxTabPanelHeight.js.map +1 -1
  230. package/dist/test-utils/data-testid.js.map +1 -1
  231. package/dist/test-utils/mocks/match-media.js +5 -5
  232. package/dist/test-utils/mocks/match-media.js.map +1 -1
  233. package/dist/test-utils/vitest/timers.d.ts +1 -1
  234. package/dist/test-utils/vitest/timers.js +1 -1
  235. package/dist/test-utils/vitest/timers.js.map +1 -1
  236. package/dist/theme/_a11y.scss +3 -1
  237. package/dist/theme/_theme.scss +16 -12
  238. package/dist/tooltip/Tooltip.js.map +1 -1
  239. package/dist/tooltip/TooltipHoverModeProvider.js.map +1 -1
  240. package/dist/tooltip/useTooltip.js.map +1 -1
  241. package/dist/transition/CSSTransition.js.map +1 -1
  242. package/dist/transition/Collapse.js.map +1 -1
  243. package/dist/transition/CrossFade.js.map +1 -1
  244. package/dist/transition/ScaleTransition.js.map +1 -1
  245. package/dist/transition/SkeletonPlaceholder.js.map +1 -1
  246. package/dist/transition/Slide.js.map +1 -1
  247. package/dist/transition/SlideContainer.js.map +1 -1
  248. package/dist/transition/types.js.map +1 -1
  249. package/dist/transition/useCollapseTransition.js.map +1 -1
  250. package/dist/transition/useCrossFadeTransition.js.map +1 -1
  251. package/dist/transition/useMaxWidthTransition.js.map +1 -1
  252. package/dist/transition/useScaleTransition.js.map +1 -1
  253. package/dist/transition/useSkeletonPlaceholder.js.map +1 -1
  254. package/dist/tree/Tree.js.map +1 -1
  255. package/dist/tree/TreeItem.js.map +1 -1
  256. package/dist/tree/TreeProvider.js.map +1 -1
  257. package/dist/tree/styles.js.map +1 -1
  258. package/dist/tree/types.js.map +1 -1
  259. package/dist/tree/useTreeMovement.js.map +1 -1
  260. package/dist/typography/HighlightTextMark.js.map +1 -1
  261. package/dist/typography/Mark.js.map +1 -1
  262. package/dist/typography/TextContainer.js.map +1 -1
  263. package/dist/typography/Typography.js.map +1 -1
  264. package/dist/typography/_typography.scss +0 -1
  265. package/dist/useElementSize.js.map +1 -1
  266. package/dist/useIntersectionObserver.js.map +1 -1
  267. package/dist/useMutationObserver.js.map +1 -1
  268. package/dist/useWindowSize.js.map +1 -1
  269. package/dist/utils/getNumberOfDigits.d.ts +7 -0
  270. package/dist/utils/getNumberOfDigits.js +11 -0
  271. package/dist/utils/getNumberOfDigits.js.map +1 -0
  272. package/dist/utils/nearest.js +2 -1
  273. package/dist/utils/nearest.js.map +1 -1
  274. package/dist/utils/useDevEffect.d.ts +7 -0
  275. package/dist/utils/useDevEffect.js +8 -0
  276. package/dist/utils/useDevEffect.js.map +1 -0
  277. package/dist/window-splitter/WindowSplitter.js +3 -2
  278. package/dist/window-splitter/WindowSplitter.js.map +1 -1
  279. package/dist/window-splitter/_window-splitter.scss +65 -19
  280. package/dist/window-splitter/styles.d.ts +9 -0
  281. package/dist/window-splitter/styles.js +3 -2
  282. package/dist/window-splitter/styles.js.map +1 -1
  283. package/dist/window-splitter/useWindowSplitter.js.map +1 -1
  284. package/package.json +38 -30
  285. package/src/CoreProviders.tsx +1 -0
  286. package/src/app-bar/AppBar.tsx +1 -2
  287. package/src/app-bar/AppBarTitle.tsx +1 -2
  288. package/src/autocomplete/AutocompleteListboxChildren.tsx +3 -1
  289. package/src/autocomplete/types.ts +24 -19
  290. package/src/autocomplete/utils.ts +9 -6
  291. package/src/avatar/Avatar.tsx +2 -1
  292. package/src/button/Button.tsx +2 -1
  293. package/src/button/FloatingActionButton.tsx +2 -1
  294. package/src/card/Card.tsx +2 -1
  295. package/src/card/CardContent.tsx +1 -2
  296. package/src/card/ClickableCard.tsx +1 -2
  297. package/src/chip/Chip.tsx +2 -1
  298. package/src/datetime/NativeDateField.tsx +2 -1
  299. package/src/datetime/NativeTimeField.tsx +2 -1
  300. package/src/datetime/useDateField.ts +13 -8
  301. package/src/datetime/useTimeField.ts +13 -8
  302. package/src/dialog/Dialog.tsx +2 -1
  303. package/src/dialog/DialogContainer.tsx +1 -2
  304. package/src/dialog/DialogContent.tsx +1 -2
  305. package/src/dialog/DialogFooter.tsx +1 -2
  306. package/src/divider/Divider.tsx +1 -2
  307. package/src/draggable/useDraggable.ts +4 -4
  308. package/src/draggable/utils.ts +4 -2
  309. package/src/expansion-panel/ExpansionPanelHeader.tsx +1 -2
  310. package/src/files/FileInput.tsx +2 -1
  311. package/src/files/useFileUpload.ts +6 -6
  312. package/src/files/validation.ts +1 -2
  313. package/src/focus/useFocusContainer.ts +4 -4
  314. package/src/form/Fieldset.tsx +25 -3
  315. package/src/form/FormMessageContainer.tsx +1 -2
  316. package/src/form/FormMessageCounter.tsx +1 -2
  317. package/src/form/InputToggle.tsx +3 -3
  318. package/src/form/Legend.tsx +55 -10
  319. package/src/form/Listbox.tsx +1 -2
  320. package/src/form/ListboxProvider.ts +3 -2
  321. package/src/form/NativeSelect.tsx +2 -1
  322. package/src/form/Password.tsx +4 -2
  323. package/src/form/ResizingTextAreaWrapper.tsx +1 -2
  324. package/src/form/Select.tsx +55 -3
  325. package/src/form/SelectedOption.tsx +2 -4
  326. package/src/form/Slider.tsx +2 -1
  327. package/src/form/SliderContainer.tsx +1 -2
  328. package/src/form/SliderThumb.tsx +6 -3
  329. package/src/form/SliderTrack.tsx +2 -1
  330. package/src/form/SliderValueMarks.tsx +1 -2
  331. package/src/form/Switch.tsx +2 -1
  332. package/src/form/TextArea.tsx +1 -2
  333. package/src/form/TextField.tsx +2 -1
  334. package/src/form/TextFieldContainer.tsx +1 -2
  335. package/src/form/fieldsetStyles.ts +18 -3
  336. package/src/form/inputToggleStyles.ts +4 -2
  337. package/src/form/labelStyles.ts +1 -1
  338. package/src/form/legendStyles.ts +132 -0
  339. package/src/form/selectUtils.ts +3 -2
  340. package/src/form/textFieldContainerStyles.ts +1 -2
  341. package/src/form/types.ts +35 -17
  342. package/src/form/useCheckboxGroup.ts +3 -2
  343. package/src/form/useCombobox.ts +8 -3
  344. package/src/form/useNumberField.ts +36 -35
  345. package/src/form/useRangeSlider.ts +1 -2
  346. package/src/form/useSlider.ts +1 -2
  347. package/src/form/useTextField.ts +8 -3
  348. package/src/hoverMode/useHoverMode.ts +4 -8
  349. package/src/icon/FontIcon.tsx +1 -2
  350. package/src/icon/IconRotator.tsx +1 -2
  351. package/src/icon/MaterialIcon.tsx +2 -1
  352. package/src/icon/MaterialSymbol.tsx +2 -1
  353. package/src/icon/SVGIcon.tsx +1 -2
  354. package/src/icon/config.tsx +10 -7
  355. package/src/icon/materialConfig.ts +1 -2
  356. package/src/icon/styles.ts +1 -2
  357. package/src/interaction/UserInteractionModeProvider.tsx +9 -4
  358. package/src/interaction/types.ts +1 -2
  359. package/src/interaction/useElementInteraction.tsx +3 -2
  360. package/src/layout/LayoutAppBar.tsx +6 -6
  361. package/src/layout/LayoutNav.tsx +2 -1
  362. package/src/layout/LayoutWindowSplitter.tsx +2 -1
  363. package/src/layout/Main.tsx +1 -2
  364. package/src/layout/useExpandableLayout.ts +63 -5
  365. package/src/layout/useHorizontalLayoutTransition.ts +1 -2
  366. package/src/layout/useLayoutTree.ts +2 -2
  367. package/src/layout/useLayoutWindowSplitter.ts +6 -6
  368. package/src/layout/useResizableLayout.ts +3 -6
  369. package/src/link/Link.tsx +1 -2
  370. package/src/link/SkipToMainContent.tsx +20 -23
  371. package/src/list/List.tsx +1 -2
  372. package/src/list/ListItem.tsx +2 -1
  373. package/src/list/ListItemAddon.tsx +2 -1
  374. package/src/list/ListItemLink.tsx +2 -1
  375. package/src/list/ListSubheader.tsx +1 -2
  376. package/src/list/getListItemHeight.ts +8 -9
  377. package/src/list/listItemStyles.ts +1 -2
  378. package/src/list/types.ts +1 -2
  379. package/src/media-queries/AppSizeProvider.tsx +8 -10
  380. package/src/media-queries/appSize.ts +3 -0
  381. package/src/media-queries/config.ts +41 -0
  382. package/src/menu/DropdownMenu.tsx +4 -5
  383. package/src/menu/Menu.tsx +2 -1
  384. package/src/menu/MenuItemButton.tsx +1 -2
  385. package/src/menu/MenuItemFileInput.tsx +2 -1
  386. package/src/menu/MenuItemInputToggle.tsx +3 -3
  387. package/src/menu/MenuItemSeparator.tsx +2 -1
  388. package/src/menu/MenuVisibilityProvider.tsx +4 -2
  389. package/src/menu/MenuWidget.tsx +1 -2
  390. package/src/menu/useContextMenu.ts +4 -2
  391. package/src/movement/types.ts +52 -13
  392. package/src/movement/useKeyboardMovementProvider.ts +77 -38
  393. package/src/navigation/CollapsibleNavGroup.tsx +1 -2
  394. package/src/navigation/NavItem.tsx +1 -2
  395. package/src/navigation/NavItemButton.tsx +2 -1
  396. package/src/navigation/NavItemLink.tsx +2 -1
  397. package/src/navigation/getTableOfContentsHeadings.ts +1 -2
  398. package/src/navigation/types.ts +1 -2
  399. package/src/overlay/Overlay.tsx +2 -1
  400. package/src/positioning/createHorizontalPosition.ts +10 -12
  401. package/src/positioning/createVerticalPosition.ts +10 -11
  402. package/src/positioning/useFixedPositioning.ts +6 -3
  403. package/src/progress/CircularProgress.tsx +2 -1
  404. package/src/progress/LinearProgress.tsx +2 -1
  405. package/src/progress/linearProgressStyles.ts +1 -2
  406. package/src/responsive-item/ResponsiveItem.tsx +1 -2
  407. package/src/responsive-item/ResponsiveItemOverlay.tsx +2 -1
  408. package/src/searching/caseInsensitive.ts +2 -4
  409. package/src/segmented-button/SegmentedButton.tsx +2 -1
  410. package/src/segmented-button/SegmentedButtonContainer.tsx +2 -1
  411. package/src/segmented-button/segmentedButtonStyles.ts +1 -2
  412. package/src/sheet/Sheet.tsx +1 -2
  413. package/src/snackbar/Toast.tsx +2 -1
  414. package/src/spinbutton/SpinButton.tsx +98 -0
  415. package/src/spinbutton/SpinButtonGroupProvider.tsx +32 -0
  416. package/src/spinbutton/defaults.ts +45 -0
  417. package/src/spinbutton/types.ts +413 -0
  418. package/src/spinbutton/useSpinButton.ts +311 -0
  419. package/src/spinbutton/useSpinButtonGroupProvider.ts +104 -0
  420. package/src/spinbutton/utils/deselectNode.ts +17 -0
  421. package/src/spinbutton/utils/resolveInputEvent.ts +112 -0
  422. package/src/spinbutton/utils/selectNode.ts +15 -0
  423. package/src/table/StickyTableSection.tsx +2 -1
  424. package/src/table/Table.tsx +1 -2
  425. package/src/table/TableBody.tsx +2 -1
  426. package/src/table/TableCellContent.tsx +1 -2
  427. package/src/table/TableCheckbox.tsx +1 -2
  428. package/src/table/TableFooter.tsx +1 -2
  429. package/src/table/TableHeader.tsx +1 -2
  430. package/src/table/TableRadio.tsx +1 -2
  431. package/src/table/TableRow.tsx +1 -2
  432. package/src/table/useStickyTableSection.tsx +1 -2
  433. package/src/tabs/SimpleTabPanel.tsx +2 -1
  434. package/src/tabs/SimpleTabPanels.tsx +2 -1
  435. package/src/tabs/Tab.tsx +3 -6
  436. package/src/tabs/TabList.tsx +2 -1
  437. package/src/tabs/TabListScrollButton.tsx +1 -2
  438. package/src/tabs/useMaxTabPanelHeight.ts +7 -4
  439. package/src/test-utils/data-testid.ts +1 -2
  440. package/src/test-utils/mocks/match-media.ts +5 -10
  441. package/src/test-utils/vitest/timers.ts +1 -1
  442. package/src/tooltip/Tooltip.tsx +2 -1
  443. package/src/tooltip/TooltipHoverModeProvider.tsx +1 -2
  444. package/src/tooltip/useTooltip.ts +9 -5
  445. package/src/transition/CSSTransition.tsx +2 -1
  446. package/src/transition/Collapse.tsx +4 -2
  447. package/src/transition/CrossFade.tsx +2 -1
  448. package/src/transition/ScaleTransition.tsx +2 -1
  449. package/src/transition/SkeletonPlaceholder.tsx +1 -2
  450. package/src/transition/Slide.tsx +2 -1
  451. package/src/transition/SlideContainer.tsx +1 -2
  452. package/src/transition/types.ts +15 -16
  453. package/src/transition/useCollapseTransition.ts +6 -5
  454. package/src/transition/useCrossFadeTransition.ts +3 -2
  455. package/src/transition/useMaxWidthTransition.ts +1 -2
  456. package/src/transition/useScaleTransition.ts +3 -2
  457. package/src/transition/useSkeletonPlaceholder.ts +1 -2
  458. package/src/tree/Tree.tsx +2 -1
  459. package/src/tree/TreeItem.tsx +2 -1
  460. package/src/tree/TreeProvider.tsx +4 -4
  461. package/src/tree/styles.ts +1 -2
  462. package/src/tree/types.ts +1 -2
  463. package/src/tree/useTreeMovement.ts +1 -2
  464. package/src/typography/HighlightTextMark.tsx +1 -2
  465. package/src/typography/Mark.tsx +1 -2
  466. package/src/typography/TextContainer.tsx +1 -2
  467. package/src/typography/Typography.tsx +1 -2
  468. package/src/useElementSize.ts +7 -4
  469. package/src/useIntersectionObserver.ts +3 -2
  470. package/src/useMutationObserver.ts +3 -2
  471. package/src/useWindowSize.ts +4 -2
  472. package/src/utils/getNumberOfDigits.ts +18 -0
  473. package/src/utils/nearest.ts +2 -1
  474. package/src/utils/useDevEffect.ts +9 -0
  475. package/src/window-splitter/WindowSplitter.tsx +5 -2
  476. package/src/window-splitter/styles.ts +13 -2
  477. package/src/window-splitter/useWindowSplitter.ts +3 -1
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`
@@ -172,8 +172,8 @@ export interface TransitionCallbacks {
172
172
  */
173
173
  export interface PreconfiguredTransitionInDefaultedOptions<
174
174
  E extends HTMLElement,
175
- > extends TransitionActions,
176
- TransitionCallbacks {
175
+ >
176
+ extends TransitionActions, TransitionCallbacks {
177
177
  /**
178
178
  * An optional ref that will be merged with the
179
179
  * {@link TransitionHookReturnValue.ref}
@@ -205,8 +205,9 @@ export interface PreconfiguredTransitionInDefaultedOptions<
205
205
  * transition.
206
206
  * @since 4.0.0
207
207
  */
208
- export interface PreconfiguredTransitionOptions<E extends HTMLElement>
209
- extends PreconfiguredTransitionInDefaultedOptions<E> {
208
+ export interface PreconfiguredTransitionOptions<
209
+ E extends HTMLElement,
210
+ > extends PreconfiguredTransitionInDefaultedOptions<E> {
210
211
  /** {@inheritDoc PreconfiguredTransitionInDefaultedOptions.transitionIn} */
211
212
  transitionIn: boolean;
212
213
  }
@@ -216,8 +217,9 @@ export interface PreconfiguredTransitionOptions<E extends HTMLElement>
216
217
  * transition.
217
218
  * @since 4.0.0
218
219
  */
219
- export interface TransitionOptions<E extends HTMLElement>
220
- extends PreconfiguredTransitionOptions<E> {
220
+ export interface TransitionOptions<
221
+ E extends HTMLElement,
222
+ > extends PreconfiguredTransitionOptions<E> {
221
223
  /** {@inheritDoc TransitionTimeout} */
222
224
  timeout: TransitionTimeout;
223
225
  }
@@ -383,8 +385,9 @@ export interface PreconfiguredCSSTransitionInDefaultedOptions<
383
385
  * transition.
384
386
  * @since 4.0.0
385
387
  */
386
- export interface PreconfiguredCSSTransitionOptions<E extends HTMLElement>
387
- extends PreconfiguredCSSTransitionInDefaultedOptions<E> {
388
+ export interface PreconfiguredCSSTransitionOptions<
389
+ E extends HTMLElement,
390
+ > extends PreconfiguredCSSTransitionInDefaultedOptions<E> {
388
391
  /** {@inheritDoc PreconfiguredTransitionInDefaultedOptions.transitionIn} */
389
392
  transitionIn: boolean;
390
393
  }
@@ -412,8 +415,7 @@ export interface SSRTransitionOptions {
412
415
  * @since 4.0.0
413
416
  */
414
417
  export interface TransitionHookOptions<E extends HTMLElement>
415
- extends TransitionOptions<E>,
416
- SSRTransitionOptions {
418
+ extends TransitionOptions<E>, SSRTransitionOptions {
417
419
  /**
418
420
  * Boolean if the DOM should forcefully be reflow each time a transition
419
421
  * change occurs. This is generally required for any CSS transition and is
@@ -453,8 +455,7 @@ export interface TransitionState {
453
455
  * @since 4.0.0
454
456
  */
455
457
  export interface TransitionHookReturnValue<E extends HTMLElement>
456
- extends TransitionState,
457
- Required<SSRTransitionOptions> {
458
+ extends TransitionState, Required<SSRTransitionOptions> {
458
459
  /**
459
460
  * A ref that is required for the transition to occur and should be passed to
460
461
  * the element affected by the transition.
@@ -506,8 +507,7 @@ export interface TransitionHookReturnValue<E extends HTMLElement>
506
507
  * @since 4.0.0
507
508
  */
508
509
  export interface CSSTransitionHookOptions<E extends HTMLElement>
509
- extends PreconfiguredCSSTransitionOptions<E>,
510
- SSRTransitionOptions {
510
+ extends PreconfiguredCSSTransitionOptions<E>, SSRTransitionOptions {
511
511
  /** {@inheritDoc TransitionTimeout} */
512
512
  timeout: TransitionTimeout;
513
513
  /** {@inheritDoc CSSTransitionClassNames} */
@@ -535,8 +535,7 @@ export interface CSSTransitionElementProps<E extends HTMLElement> {
535
535
  * @since 4.0.0
536
536
  */
537
537
  export interface CSSTransitionHookReturnValue<E extends HTMLElement>
538
- extends TransitionHookReturnValue<E>,
539
- CSSTransitionElementProps<E> {
538
+ extends TransitionHookReturnValue<E>, CSSTransitionElementProps<E> {
540
539
  /**
541
540
  * This can be used so that you don't need to destructure multiple props from
542
541
  * the hook return value to pass to the transitioning component.
@@ -93,8 +93,9 @@ export interface CollapseStyle extends CollapseConfigurationStyle {
93
93
  * transition.
94
94
  * @since 4.0.0
95
95
  */
96
- export interface CollapseElementProps<E extends HTMLElement>
97
- extends CSSTransitionElementProps<E> {
96
+ export interface CollapseElementProps<
97
+ E extends HTMLElement,
98
+ > extends CSSTransitionElementProps<E> {
98
99
  /**
99
100
  * A merged styled object required for the collapse transition to work.
100
101
  *
@@ -110,7 +111,8 @@ export interface CollapseElementProps<E extends HTMLElement>
110
111
  * @since 4.0.0
111
112
  */
112
113
  export interface CollapseTransitionHookOptions<E extends HTMLElement>
113
- extends Omit<PreconfiguredCSSTransitionOptions<E>, "exitedHidden">,
114
+ extends
115
+ Omit<PreconfiguredCSSTransitionOptions<E>, "exitedHidden">,
114
116
  CollapseConfigurationStyle {
115
117
  /**
116
118
  * An optional style to merge with the required collapse transition styles.
@@ -140,8 +142,7 @@ export interface CollapseTransitionHookOptions<E extends HTMLElement>
140
142
  * @since 4.0.0
141
143
  */
142
144
  export interface CollapseTransitionHookReturnValue<E extends HTMLElement>
143
- extends CSSTransitionHookReturnValue<E>,
144
- CollapseElementProps<E> {
145
+ extends CSSTransitionHookReturnValue<E>, CollapseElementProps<E> {
145
146
  /**
146
147
  * This is just a convenience object so that you don't need to destructure as
147
148
  * many variables to pass to an element.
@@ -40,8 +40,9 @@ export const DEFAULT_CROSS_FADE_CLASSNAMES = {
40
40
  * transition.
41
41
  * @since 4.0.0
42
42
  */
43
- export interface CrossFadeTransitionHookOptions<E extends HTMLElement>
44
- extends PreconfiguredCSSTransitionInDefaultedOptions<E> {
43
+ export interface CrossFadeTransitionHookOptions<
44
+ E extends HTMLElement,
45
+ > extends PreconfiguredCSSTransitionInDefaultedOptions<E> {
45
46
  /**
46
47
  * @see {@link TransitionTimeout}
47
48
  * @see {@link DEFAULT_CROSS_FADE_TIMEOUT}
@@ -24,8 +24,7 @@ export interface BaseMaxWidthTransitionOptions {
24
24
  * @since 6.0.0
25
25
  * @since 6.3.1 Extends BaseMaxWidthTransitionOptions
26
26
  */
27
- export interface MaxWidthTransitionOptions
28
- extends BaseMaxWidthTransitionOptions {
27
+ export interface MaxWidthTransitionOptions extends BaseMaxWidthTransitionOptions {
29
28
  element: ReactNode;
30
29
  transitionIn: boolean;
31
30
 
@@ -66,8 +66,9 @@ export const DEFAULT_SCALE_Y_CLASSNAMES = {
66
66
  * transition.
67
67
  * @since 4.0.0
68
68
  */
69
- export interface ScaleTransitionHookOptions<E extends HTMLElement>
70
- extends PreconfiguredCSSTransitionOptions<E> {
69
+ export interface ScaleTransitionHookOptions<
70
+ E extends HTMLElement,
71
+ > extends PreconfiguredCSSTransitionOptions<E> {
71
72
  /**
72
73
  * Boolean if the scale transition should be vertical instead of horizontal.
73
74
  * This really only changes the default value for the {@link classNames}.
@@ -11,8 +11,7 @@ import {
11
11
  } from "./skeletonPlaceholderUtils.js";
12
12
 
13
13
  /** @since 6.0.0 */
14
- export interface SkeletonPlaceholderOptions
15
- extends SkeletonPlaceholderRandomOptions {
14
+ export interface SkeletonPlaceholderOptions extends SkeletonPlaceholderRandomOptions {
16
15
  style?: CSSProperties;
17
16
  className?: string;
18
17
 
package/src/tree/Tree.tsx CHANGED
@@ -51,7 +51,8 @@ export type TreeHTMLAttributes = Omit<
51
51
  * augmentation.
52
52
  */
53
53
  export interface TreeProps<T extends TreeItemNode>
54
- extends TreeHTMLAttributes,
54
+ extends
55
+ TreeHTMLAttributes,
55
56
  TreeClassNameOptions,
56
57
  TreeExpansion,
57
58
  TreeSelection {
@@ -29,7 +29,8 @@ import { type DefaultTreeItemNode } from "./types.js";
29
29
  * `contentComponent`, and `readOnly` props were removed.
30
30
  */
31
31
  export interface TreeItemProps
32
- extends Omit<DefaultTreeItemNode, "parentId">,
32
+ extends
33
+ Omit<DefaultTreeItemNode, "parentId">,
33
34
  HTMLAttributes<HTMLLIElement>,
34
35
  ComponentWithRippleProps {
35
36
  /**
@@ -78,8 +78,7 @@ export interface TreeItemMetadataLookup {
78
78
  * @since 6.0.0
79
79
  */
80
80
  export interface TreeContext<T extends TreeItemNode = DefaultTreeItemNode>
81
- extends TreeExpansion,
82
- TreeSelection {
81
+ extends TreeExpansion, TreeSelection {
83
82
  data: TreeData<T>;
84
83
  rootId: string | null;
85
84
  disableTransition: boolean;
@@ -124,8 +123,9 @@ export function useTreeContext<
124
123
  * @internal
125
124
  * @since 6.0.0
126
125
  */
127
- export interface TreeProviderProps<T extends TreeItemNode = DefaultTreeItemNode>
128
- extends TreeContext<T> {
126
+ export interface TreeProviderProps<
127
+ T extends TreeItemNode = DefaultTreeItemNode,
128
+ > extends TreeContext<T> {
129
129
  children: ReactNode;
130
130
  }
131
131
 
@@ -67,8 +67,7 @@ export function treeItem(options: TreeItemClassNameOptions = {}): string {
67
67
  }
68
68
 
69
69
  /** @since 6.0.0 */
70
- export interface TreeItemContentClassNameOptions
71
- extends InternalListItemClassNameOptions {
70
+ export interface TreeItemContentClassNameOptions extends InternalListItemClassNameOptions {
72
71
  /**
73
72
  * Set this
74
73
  *
package/src/tree/types.ts CHANGED
@@ -19,8 +19,7 @@ export interface TreeItemNode {
19
19
  * @since 6.0.0
20
20
  */
21
21
  export interface DefaultTreeItemNode
22
- extends TreeItemNode,
23
- ListItemChildrenProps {
22
+ extends TreeItemNode, ListItemChildrenProps {
24
23
  /**
25
24
  * If this is defined, the `TreeItem` will render the content within a `Link`
26
25
  * instead of a `<span>`.
@@ -73,8 +73,7 @@ interface TreeMovementOptions<T extends TreeItemNode> extends TreeExpansion {
73
73
  * @since 6.0.0
74
74
  * @internal
75
75
  */
76
- interface TreeMovement
77
- extends KeyboardMovementProviderImplementation<HTMLUListElement> {
76
+ interface TreeMovement extends KeyboardMovementProviderImplementation<HTMLUListElement> {
78
77
  /**
79
78
  * This will be mutated by the `TreeItem` component and used to handle
80
79
  * keyboard movement.
@@ -7,8 +7,7 @@ import { Mark, type MarkProps } from "./Mark.js";
7
7
  * @since 6.0.0
8
8
  */
9
9
  export interface HighlightTextMarkProps
10
- extends HighlightTextComponentProps,
11
- Omit<MarkProps, "children"> {}
10
+ extends HighlightTextComponentProps, Omit<MarkProps, "children"> {}
12
11
 
13
12
  /**
14
13
  * This is the default implementation for the `HighlightText` component that
@@ -8,8 +8,7 @@ import { type MarkClassNameOptions, mark } from "./markStyles.js";
8
8
  * augmentation.
9
9
  */
10
10
  export interface MarkProps
11
- extends HTMLAttributes<HTMLElement>,
12
- MarkClassNameOptions {
11
+ extends HTMLAttributes<HTMLElement>, MarkClassNameOptions {
13
12
  children: ReactNode;
14
13
  }
15
14
 
@@ -12,8 +12,7 @@ import {
12
12
  * behavior. Use the `textContainer` class name utility instead.
13
13
  */
14
14
  export interface TextContainerProps
15
- extends HTMLAttributes<HTMLDivElement>,
16
- TextContainerClassNameOptions {}
15
+ extends HTMLAttributes<HTMLDivElement>, TextContainerClassNameOptions {}
17
16
 
18
17
  /**
19
18
  * This component should be used to render text based content with an
@@ -72,8 +72,7 @@ function getComponent(
72
72
  * `typography` class name utility instead.
73
73
  */
74
74
  export interface TypographyProps
75
- extends HTMLAttributes<TypographyHTMLElement>,
76
- TypographyClassNameOptions {
75
+ extends HTMLAttributes<TypographyHTMLElement>, TypographyClassNameOptions {
77
76
  /**
78
77
  * The component to render as when the children are not a render function. If
79
78
  * this prop is omitted, the component will be determined by the `type` prop
@@ -11,8 +11,10 @@ import {
11
11
  /**
12
12
  * @since 6.0.0
13
13
  */
14
- export interface ElementSizeOptions<E extends HTMLElement>
15
- extends Omit<ResizeObserverHookOptions<E>, "onUpdate"> {
14
+ export interface ElementSizeOptions<E extends HTMLElement> extends Omit<
15
+ ResizeObserverHookOptions<E>,
16
+ "onUpdate"
17
+ > {
16
18
  /** @defaultValue `{ height: 0, width: 0 }` */
17
19
  defaultValue?: UseStateInitializer<ElementSize>;
18
20
  }
@@ -20,8 +22,9 @@ export interface ElementSizeOptions<E extends HTMLElement>
20
22
  /**
21
23
  * @since 6.0.0
22
24
  */
23
- export interface ElementSizeImplementation<E extends HTMLElement>
24
- extends ElementSize {
25
+ export interface ElementSizeImplementation<
26
+ E extends HTMLElement,
27
+ > extends ElementSize {
25
28
  elementRef: RefCallback<E>;
26
29
 
27
30
  /**
@@ -130,8 +130,9 @@ export interface BaseIntersectionObserverHookOptions {
130
130
  * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#intersection_observer_options}
131
131
  * @since 6.0.0
132
132
  */
133
- export interface IntersectionObserverHookOptions<E extends HTMLElement>
134
- extends BaseIntersectionObserverHookOptions {
133
+ export interface IntersectionObserverHookOptions<
134
+ E extends HTMLElement,
135
+ > extends BaseIntersectionObserverHookOptions {
135
136
  /**
136
137
  * An optional ref to merge with the ref returned by this hook.
137
138
  */
@@ -5,8 +5,9 @@ import { useEnsuredRef } from "./useEnsuredRef.js";
5
5
  /**
6
6
  * @since 6.0.0
7
7
  */
8
- export interface MutationObserverHookOptions<E extends HTMLElement>
9
- extends MutationObserverInit {
8
+ export interface MutationObserverHookOptions<
9
+ E extends HTMLElement,
10
+ > extends MutationObserverInit {
10
11
  ref?: Ref<E>;
11
12
 
12
13
  /**
@@ -12,8 +12,10 @@ import {
12
12
  /**
13
13
  * @since 6.0.0
14
14
  */
15
- export interface WindowSizeOptions
16
- extends Omit<ResizeListenerOptions, "disabled" | "onUpdate"> {
15
+ export interface WindowSizeOptions extends Omit<
16
+ ResizeListenerOptions,
17
+ "disabled" | "onUpdate"
18
+ > {
17
19
  /**
18
20
  * The default value to use in SSR environments for the window's height.
19
21
  *
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @since 6.4.0
3
+ * @see {@link https://stackoverflow.com/a/28203456}
4
+ */
5
+ export function getNumberOfDigits(value: number): number;
6
+ export function getNumberOfDigits(value: undefined): undefined;
7
+ export function getNumberOfDigits(
8
+ value: number | undefined
9
+ ): number | undefined;
10
+ export function getNumberOfDigits(
11
+ value: number | undefined
12
+ ): number | undefined {
13
+ if (typeof value !== "number") {
14
+ return;
15
+ }
16
+
17
+ return (Math.log10((value ^ (value >> 31)) - (value >> 31)) | 0) + 1;
18
+ }