@react-md/core 6.3.3 → 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 (456) 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/box/_box.scss +20 -1
  13. package/dist/box/styles.d.ts +39 -0
  14. package/dist/box/styles.js +39 -0
  15. package/dist/box/styles.js.map +1 -1
  16. package/dist/button/Button.js.map +1 -1
  17. package/dist/button/FloatingActionButton.js.map +1 -1
  18. package/dist/card/Card.js.map +1 -1
  19. package/dist/card/CardContent.js.map +1 -1
  20. package/dist/card/ClickableCard.js.map +1 -1
  21. package/dist/chip/Chip.js.map +1 -1
  22. package/dist/datetime/NativeDateField.js.map +1 -1
  23. package/dist/datetime/NativeTimeField.js.map +1 -1
  24. package/dist/datetime/useDateField.js.map +1 -1
  25. package/dist/datetime/useTimeField.js.map +1 -1
  26. package/dist/dialog/Dialog.js.map +1 -1
  27. package/dist/dialog/DialogContainer.js.map +1 -1
  28. package/dist/dialog/DialogContent.js.map +1 -1
  29. package/dist/dialog/DialogFooter.js.map +1 -1
  30. package/dist/divider/Divider.js.map +1 -1
  31. package/dist/draggable/useDraggable.js.map +1 -1
  32. package/dist/draggable/utils.js.map +1 -1
  33. package/dist/expansion-panel/ExpansionPanelHeader.js.map +1 -1
  34. package/dist/files/FileInput.js.map +1 -1
  35. package/dist/files/useFileUpload.js.map +1 -1
  36. package/dist/files/validation.js.map +1 -1
  37. package/dist/focus/useFocusContainer.js.map +1 -1
  38. package/dist/form/Fieldset.d.ts +19 -0
  39. package/dist/form/Fieldset.js +22 -2
  40. package/dist/form/Fieldset.js.map +1 -1
  41. package/dist/form/FormMessageContainer.js.map +1 -1
  42. package/dist/form/FormMessageCounter.js.map +1 -1
  43. package/dist/form/InputToggle.js.map +1 -1
  44. package/dist/form/Legend.d.ts +27 -5
  45. package/dist/form/Legend.js +39 -6
  46. package/dist/form/Legend.js.map +1 -1
  47. package/dist/form/Listbox.js.map +1 -1
  48. package/dist/form/ListboxProvider.js.map +1 -1
  49. package/dist/form/NativeSelect.js.map +1 -1
  50. package/dist/form/Password.js.map +1 -1
  51. package/dist/form/ResizingTextAreaWrapper.js.map +1 -1
  52. package/dist/form/Select.js.map +1 -1
  53. package/dist/form/Slider.js.map +1 -1
  54. package/dist/form/SliderContainer.js.map +1 -1
  55. package/dist/form/SliderThumb.js.map +1 -1
  56. package/dist/form/SliderTrack.js.map +1 -1
  57. package/dist/form/SliderValueMarks.js.map +1 -1
  58. package/dist/form/Switch.js.map +1 -1
  59. package/dist/form/TextArea.js.map +1 -1
  60. package/dist/form/TextField.js.map +1 -1
  61. package/dist/form/TextFieldContainer.js.map +1 -1
  62. package/dist/form/_fieldset.scss +7 -0
  63. package/dist/form/_legend.scss +68 -0
  64. package/dist/form/_text-field.scss +39 -4
  65. package/dist/form/fieldsetStyles.d.ts +6 -1
  66. package/dist/form/fieldsetStyles.js +3 -2
  67. package/dist/form/fieldsetStyles.js.map +1 -1
  68. package/dist/form/inputToggleStyles.js.map +1 -1
  69. package/dist/form/labelStyles.d.ts +1 -1
  70. package/dist/form/labelStyles.js +1 -1
  71. package/dist/form/labelStyles.js.map +1 -1
  72. package/dist/form/legendStyles.d.ts +83 -0
  73. package/dist/form/legendStyles.js +25 -0
  74. package/dist/form/legendStyles.js.map +1 -0
  75. package/dist/form/selectUtils.js.map +1 -1
  76. package/dist/form/textFieldContainerStyles.js.map +1 -1
  77. package/dist/form/types.d.ts +28 -6
  78. package/dist/form/types.js.map +1 -1
  79. package/dist/form/useCheckboxGroup.js.map +1 -1
  80. package/dist/form/useCombobox.js.map +1 -1
  81. package/dist/form/useNumberField.js +16 -19
  82. package/dist/form/useNumberField.js.map +1 -1
  83. package/dist/form/useRangeSlider.js.map +1 -1
  84. package/dist/form/useSlider.js.map +1 -1
  85. package/dist/form/useTextField.d.ts +1 -1
  86. package/dist/form/useTextField.js.map +1 -1
  87. package/dist/hoverMode/useHoverMode.js.map +1 -1
  88. package/dist/icon/FontIcon.js.map +1 -1
  89. package/dist/icon/IconRotator.js.map +1 -1
  90. package/dist/icon/MaterialIcon.js.map +1 -1
  91. package/dist/icon/MaterialSymbol.js.map +1 -1
  92. package/dist/icon/SVGIcon.js.map +1 -1
  93. package/dist/icon/config.d.ts +0 -1
  94. package/dist/icon/config.js +10 -7
  95. package/dist/icon/config.js.map +1 -1
  96. package/dist/icon/materialConfig.js.map +1 -1
  97. package/dist/icon/styles.js.map +1 -1
  98. package/dist/interaction/UserInteractionModeProvider.js +6 -4
  99. package/dist/interaction/UserInteractionModeProvider.js.map +1 -1
  100. package/dist/interaction/types.js.map +1 -1
  101. package/dist/interaction/useElementInteraction.js.map +1 -1
  102. package/dist/layout/LayoutAppBar.d.ts +6 -6
  103. package/dist/layout/LayoutAppBar.js +6 -6
  104. package/dist/layout/LayoutAppBar.js.map +1 -1
  105. package/dist/layout/LayoutNav.js.map +1 -1
  106. package/dist/layout/LayoutWindowSplitter.js.map +1 -1
  107. package/dist/layout/Main.js.map +1 -1
  108. package/dist/layout/useExpandableLayout.js +43 -0
  109. package/dist/layout/useExpandableLayout.js.map +1 -1
  110. package/dist/layout/useHorizontalLayoutTransition.js.map +1 -1
  111. package/dist/layout/useLayoutTree.js.map +1 -1
  112. package/dist/layout/useLayoutWindowSplitter.js.map +1 -1
  113. package/dist/layout/useResizableLayout.js.map +1 -1
  114. package/dist/link/Link.js.map +1 -1
  115. package/dist/link/SkipToMainContent.js +19 -21
  116. package/dist/link/SkipToMainContent.js.map +1 -1
  117. package/dist/list/List.js.map +1 -1
  118. package/dist/list/ListItem.js.map +1 -1
  119. package/dist/list/ListItemAddon.js.map +1 -1
  120. package/dist/list/ListItemLink.js.map +1 -1
  121. package/dist/list/ListSubheader.js.map +1 -1
  122. package/dist/list/getListItemHeight.js.map +1 -1
  123. package/dist/list/listItemStyles.js.map +1 -1
  124. package/dist/list/types.js.map +1 -1
  125. package/dist/media-queries/AppSizeProvider.d.ts +2 -0
  126. package/dist/media-queries/AppSizeProvider.js +3 -2
  127. package/dist/media-queries/AppSizeProvider.js.map +1 -1
  128. package/dist/media-queries/appSize.d.ts +3 -0
  129. package/dist/media-queries/appSize.js +3 -1
  130. package/dist/media-queries/appSize.js.map +1 -1
  131. package/dist/media-queries/config.d.ts +11 -0
  132. package/dist/media-queries/config.js +26 -0
  133. package/dist/media-queries/config.js.map +1 -0
  134. package/dist/menu/DropdownMenu.js.map +1 -1
  135. package/dist/menu/Menu.js.map +1 -1
  136. package/dist/menu/MenuItemButton.js.map +1 -1
  137. package/dist/menu/MenuItemFileInput.js.map +1 -1
  138. package/dist/menu/MenuItemInputToggle.js.map +1 -1
  139. package/dist/menu/MenuItemSeparator.js.map +1 -1
  140. package/dist/menu/MenuVisibilityProvider.js.map +1 -1
  141. package/dist/menu/MenuWidget.js.map +1 -1
  142. package/dist/menu/useContextMenu.js.map +1 -1
  143. package/dist/movement/types.d.ts +28 -3
  144. package/dist/movement/types.js.map +1 -1
  145. package/dist/movement/useKeyboardMovementProvider.js +96 -47
  146. package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
  147. package/dist/navigation/CollapsibleNavGroup.js.map +1 -1
  148. package/dist/navigation/NavItem.js.map +1 -1
  149. package/dist/navigation/NavItemButton.js.map +1 -1
  150. package/dist/navigation/NavItemLink.js.map +1 -1
  151. package/dist/navigation/getTableOfContentsHeadings.js.map +1 -1
  152. package/dist/navigation/types.js.map +1 -1
  153. package/dist/overlay/Overlay.js.map +1 -1
  154. package/dist/positioning/createHorizontalPosition.js.map +1 -1
  155. package/dist/positioning/createVerticalPosition.js.map +1 -1
  156. package/dist/positioning/useFixedPositioning.js.map +1 -1
  157. package/dist/progress/CircularProgress.js.map +1 -1
  158. package/dist/progress/LinearProgress.js.map +1 -1
  159. package/dist/progress/linearProgressStyles.js.map +1 -1
  160. package/dist/responsive-item/ResponsiveItem.js.map +1 -1
  161. package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
  162. package/dist/searching/caseInsensitive.js.map +1 -1
  163. package/dist/segmented-button/SegmentedButton.js.map +1 -1
  164. package/dist/segmented-button/SegmentedButtonContainer.js.map +1 -1
  165. package/dist/segmented-button/segmentedButtonStyles.js.map +1 -1
  166. package/dist/sheet/Sheet.js.map +1 -1
  167. package/dist/snackbar/Toast.js.map +1 -1
  168. package/dist/spinbutton/SpinButton.d.ts +16 -0
  169. package/dist/spinbutton/SpinButton.js +55 -0
  170. package/dist/spinbutton/SpinButton.js.map +1 -0
  171. package/dist/spinbutton/SpinButtonGroupProvider.d.ts +17 -0
  172. package/dist/spinbutton/SpinButtonGroupProvider.js +19 -0
  173. package/dist/spinbutton/SpinButtonGroupProvider.js.map +1 -0
  174. package/dist/spinbutton/defaults.d.ts +9 -0
  175. package/dist/spinbutton/defaults.js +25 -0
  176. package/dist/spinbutton/defaults.js.map +1 -0
  177. package/dist/spinbutton/types.d.ts +324 -0
  178. package/dist/spinbutton/types.js +5 -0
  179. package/dist/spinbutton/types.js.map +1 -0
  180. package/dist/spinbutton/useSpinButton.d.ts +5 -0
  181. package/dist/spinbutton/useSpinButton.js +260 -0
  182. package/dist/spinbutton/useSpinButton.js.map +1 -0
  183. package/dist/spinbutton/useSpinButtonGroupProvider.d.ts +27 -0
  184. package/dist/spinbutton/useSpinButtonGroupProvider.js +49 -0
  185. package/dist/spinbutton/useSpinButtonGroupProvider.js.map +1 -0
  186. package/dist/spinbutton/utils/deselectNode.d.ts +5 -0
  187. package/dist/spinbutton/utils/deselectNode.js +17 -0
  188. package/dist/spinbutton/utils/deselectNode.js.map +1 -0
  189. package/dist/spinbutton/utils/resolveInputEvent.d.ts +30 -0
  190. package/dist/spinbutton/utils/resolveInputEvent.js +53 -0
  191. package/dist/spinbutton/utils/resolveInputEvent.js.map +1 -0
  192. package/dist/spinbutton/utils/selectNode.d.ts +5 -0
  193. package/dist/spinbutton/utils/selectNode.js +15 -0
  194. package/dist/spinbutton/utils/selectNode.js.map +1 -0
  195. package/dist/table/StickyTableSection.js.map +1 -1
  196. package/dist/table/Table.js.map +1 -1
  197. package/dist/table/TableBody.js.map +1 -1
  198. package/dist/table/TableCellContent.js.map +1 -1
  199. package/dist/table/TableCheckbox.js.map +1 -1
  200. package/dist/table/TableFooter.js.map +1 -1
  201. package/dist/table/TableHeader.js.map +1 -1
  202. package/dist/table/TableRadio.js.map +1 -1
  203. package/dist/table/TableRow.js.map +1 -1
  204. package/dist/table/useStickyTableSection.js.map +1 -1
  205. package/dist/tabs/SimpleTabPanel.js.map +1 -1
  206. package/dist/tabs/SimpleTabPanels.js.map +1 -1
  207. package/dist/tabs/Tab.js.map +1 -1
  208. package/dist/tabs/TabList.js.map +1 -1
  209. package/dist/tabs/TabListScrollButton.js.map +1 -1
  210. package/dist/tabs/useMaxTabPanelHeight.js.map +1 -1
  211. package/dist/test-utils/data-testid.js.map +1 -1
  212. package/dist/test-utils/mocks/match-media.js +5 -5
  213. package/dist/test-utils/mocks/match-media.js.map +1 -1
  214. package/dist/test-utils/vitest/timers.d.ts +1 -1
  215. package/dist/test-utils/vitest/timers.js +1 -1
  216. package/dist/test-utils/vitest/timers.js.map +1 -1
  217. package/dist/tooltip/Tooltip.js.map +1 -1
  218. package/dist/tooltip/TooltipHoverModeProvider.js.map +1 -1
  219. package/dist/tooltip/useTooltip.js.map +1 -1
  220. package/dist/transition/CSSTransition.js.map +1 -1
  221. package/dist/transition/Collapse.js.map +1 -1
  222. package/dist/transition/CrossFade.js.map +1 -1
  223. package/dist/transition/ScaleTransition.js.map +1 -1
  224. package/dist/transition/SkeletonPlaceholder.js.map +1 -1
  225. package/dist/transition/Slide.js.map +1 -1
  226. package/dist/transition/SlideContainer.js.map +1 -1
  227. package/dist/transition/types.js.map +1 -1
  228. package/dist/transition/useCollapseTransition.js.map +1 -1
  229. package/dist/transition/useCrossFadeTransition.js.map +1 -1
  230. package/dist/transition/useMaxWidthTransition.js.map +1 -1
  231. package/dist/transition/useScaleTransition.js.map +1 -1
  232. package/dist/transition/useSkeletonPlaceholder.js.map +1 -1
  233. package/dist/tree/Tree.js.map +1 -1
  234. package/dist/tree/TreeItem.js.map +1 -1
  235. package/dist/tree/TreeProvider.js.map +1 -1
  236. package/dist/tree/styles.js.map +1 -1
  237. package/dist/tree/types.js.map +1 -1
  238. package/dist/tree/useTreeMovement.js.map +1 -1
  239. package/dist/typography/HighlightTextMark.js.map +1 -1
  240. package/dist/typography/Mark.js.map +1 -1
  241. package/dist/typography/TextContainer.js.map +1 -1
  242. package/dist/typography/Typography.js.map +1 -1
  243. package/dist/typography/_typography.scss +0 -1
  244. package/dist/useElementSize.js.map +1 -1
  245. package/dist/useIntersectionObserver.js.map +1 -1
  246. package/dist/useMutationObserver.js.map +1 -1
  247. package/dist/useWindowSize.js.map +1 -1
  248. package/dist/utils/getNumberOfDigits.d.ts +7 -0
  249. package/dist/utils/getNumberOfDigits.js +11 -0
  250. package/dist/utils/getNumberOfDigits.js.map +1 -0
  251. package/dist/utils/nearest.js +2 -1
  252. package/dist/utils/nearest.js.map +1 -1
  253. package/dist/utils/useDevEffect.d.ts +7 -0
  254. package/dist/utils/useDevEffect.js +8 -0
  255. package/dist/utils/useDevEffect.js.map +1 -0
  256. package/dist/window-splitter/WindowSplitter.js +3 -2
  257. package/dist/window-splitter/WindowSplitter.js.map +1 -1
  258. package/dist/window-splitter/_window-splitter.scss +60 -12
  259. package/dist/window-splitter/styles.d.ts +9 -0
  260. package/dist/window-splitter/styles.js +3 -2
  261. package/dist/window-splitter/styles.js.map +1 -1
  262. package/dist/window-splitter/useWindowSplitter.js.map +1 -1
  263. package/package.json +38 -30
  264. package/src/CoreProviders.tsx +1 -0
  265. package/src/app-bar/AppBar.tsx +1 -2
  266. package/src/app-bar/AppBarTitle.tsx +1 -2
  267. package/src/autocomplete/AutocompleteListboxChildren.tsx +3 -1
  268. package/src/autocomplete/types.ts +24 -19
  269. package/src/autocomplete/utils.ts +9 -6
  270. package/src/avatar/Avatar.tsx +2 -1
  271. package/src/box/styles.ts +39 -0
  272. package/src/button/Button.tsx +2 -1
  273. package/src/button/FloatingActionButton.tsx +2 -1
  274. package/src/card/Card.tsx +2 -1
  275. package/src/card/CardContent.tsx +1 -2
  276. package/src/card/ClickableCard.tsx +1 -2
  277. package/src/chip/Chip.tsx +2 -1
  278. package/src/datetime/NativeDateField.tsx +2 -1
  279. package/src/datetime/NativeTimeField.tsx +2 -1
  280. package/src/datetime/useDateField.ts +13 -8
  281. package/src/datetime/useTimeField.ts +13 -8
  282. package/src/dialog/Dialog.tsx +2 -1
  283. package/src/dialog/DialogContainer.tsx +1 -2
  284. package/src/dialog/DialogContent.tsx +1 -2
  285. package/src/dialog/DialogFooter.tsx +1 -2
  286. package/src/divider/Divider.tsx +1 -2
  287. package/src/draggable/useDraggable.ts +4 -4
  288. package/src/draggable/utils.ts +4 -2
  289. package/src/expansion-panel/ExpansionPanelHeader.tsx +1 -2
  290. package/src/files/FileInput.tsx +2 -1
  291. package/src/files/useFileUpload.ts +6 -6
  292. package/src/files/validation.ts +1 -2
  293. package/src/focus/useFocusContainer.ts +4 -4
  294. package/src/form/Fieldset.tsx +25 -3
  295. package/src/form/FormMessageContainer.tsx +1 -2
  296. package/src/form/FormMessageCounter.tsx +1 -2
  297. package/src/form/InputToggle.tsx +3 -3
  298. package/src/form/Legend.tsx +55 -10
  299. package/src/form/Listbox.tsx +1 -2
  300. package/src/form/ListboxProvider.ts +3 -2
  301. package/src/form/NativeSelect.tsx +2 -1
  302. package/src/form/Password.tsx +4 -2
  303. package/src/form/ResizingTextAreaWrapper.tsx +1 -2
  304. package/src/form/Select.tsx +2 -1
  305. package/src/form/Slider.tsx +2 -1
  306. package/src/form/SliderContainer.tsx +1 -2
  307. package/src/form/SliderThumb.tsx +6 -3
  308. package/src/form/SliderTrack.tsx +2 -1
  309. package/src/form/SliderValueMarks.tsx +1 -2
  310. package/src/form/Switch.tsx +2 -1
  311. package/src/form/TextArea.tsx +1 -2
  312. package/src/form/TextField.tsx +2 -1
  313. package/src/form/TextFieldContainer.tsx +1 -2
  314. package/src/form/fieldsetStyles.ts +18 -3
  315. package/src/form/inputToggleStyles.ts +4 -2
  316. package/src/form/labelStyles.ts +1 -1
  317. package/src/form/legendStyles.ts +132 -0
  318. package/src/form/selectUtils.ts +3 -2
  319. package/src/form/textFieldContainerStyles.ts +1 -2
  320. package/src/form/types.ts +35 -17
  321. package/src/form/useCheckboxGroup.ts +3 -2
  322. package/src/form/useCombobox.ts +8 -3
  323. package/src/form/useNumberField.ts +36 -35
  324. package/src/form/useRangeSlider.ts +1 -2
  325. package/src/form/useSlider.ts +1 -2
  326. package/src/form/useTextField.ts +9 -4
  327. package/src/hoverMode/useHoverMode.ts +4 -8
  328. package/src/icon/FontIcon.tsx +1 -2
  329. package/src/icon/IconRotator.tsx +1 -2
  330. package/src/icon/MaterialIcon.tsx +2 -1
  331. package/src/icon/MaterialSymbol.tsx +2 -1
  332. package/src/icon/SVGIcon.tsx +1 -2
  333. package/src/icon/config.tsx +10 -7
  334. package/src/icon/materialConfig.ts +1 -2
  335. package/src/icon/styles.ts +1 -2
  336. package/src/interaction/UserInteractionModeProvider.tsx +9 -4
  337. package/src/interaction/types.ts +1 -2
  338. package/src/interaction/useElementInteraction.tsx +3 -2
  339. package/src/layout/LayoutAppBar.tsx +6 -6
  340. package/src/layout/LayoutNav.tsx +2 -1
  341. package/src/layout/LayoutWindowSplitter.tsx +2 -1
  342. package/src/layout/Main.tsx +1 -2
  343. package/src/layout/useExpandableLayout.ts +63 -5
  344. package/src/layout/useHorizontalLayoutTransition.ts +1 -2
  345. package/src/layout/useLayoutTree.ts +2 -2
  346. package/src/layout/useLayoutWindowSplitter.ts +6 -6
  347. package/src/layout/useResizableLayout.ts +3 -6
  348. package/src/link/Link.tsx +1 -2
  349. package/src/link/SkipToMainContent.tsx +20 -23
  350. package/src/list/List.tsx +1 -2
  351. package/src/list/ListItem.tsx +2 -1
  352. package/src/list/ListItemAddon.tsx +2 -1
  353. package/src/list/ListItemLink.tsx +2 -1
  354. package/src/list/ListSubheader.tsx +1 -2
  355. package/src/list/getListItemHeight.ts +8 -9
  356. package/src/list/listItemStyles.ts +1 -2
  357. package/src/list/types.ts +1 -2
  358. package/src/media-queries/AppSizeProvider.tsx +8 -10
  359. package/src/media-queries/appSize.ts +3 -0
  360. package/src/media-queries/config.ts +41 -0
  361. package/src/menu/DropdownMenu.tsx +4 -5
  362. package/src/menu/Menu.tsx +2 -1
  363. package/src/menu/MenuItemButton.tsx +1 -2
  364. package/src/menu/MenuItemFileInput.tsx +2 -1
  365. package/src/menu/MenuItemInputToggle.tsx +3 -3
  366. package/src/menu/MenuItemSeparator.tsx +2 -1
  367. package/src/menu/MenuVisibilityProvider.tsx +4 -2
  368. package/src/menu/MenuWidget.tsx +1 -2
  369. package/src/menu/useContextMenu.ts +4 -2
  370. package/src/movement/types.ts +52 -13
  371. package/src/movement/useKeyboardMovementProvider.ts +77 -38
  372. package/src/navigation/CollapsibleNavGroup.tsx +1 -2
  373. package/src/navigation/NavItem.tsx +1 -2
  374. package/src/navigation/NavItemButton.tsx +2 -1
  375. package/src/navigation/NavItemLink.tsx +2 -1
  376. package/src/navigation/getTableOfContentsHeadings.ts +1 -2
  377. package/src/navigation/types.ts +1 -2
  378. package/src/overlay/Overlay.tsx +2 -1
  379. package/src/positioning/createHorizontalPosition.ts +10 -12
  380. package/src/positioning/createVerticalPosition.ts +10 -11
  381. package/src/positioning/useFixedPositioning.ts +6 -3
  382. package/src/progress/CircularProgress.tsx +2 -1
  383. package/src/progress/LinearProgress.tsx +2 -1
  384. package/src/progress/linearProgressStyles.ts +1 -2
  385. package/src/responsive-item/ResponsiveItem.tsx +1 -2
  386. package/src/responsive-item/ResponsiveItemOverlay.tsx +2 -1
  387. package/src/searching/caseInsensitive.ts +2 -4
  388. package/src/segmented-button/SegmentedButton.tsx +2 -1
  389. package/src/segmented-button/SegmentedButtonContainer.tsx +2 -1
  390. package/src/segmented-button/segmentedButtonStyles.ts +1 -2
  391. package/src/sheet/Sheet.tsx +1 -2
  392. package/src/snackbar/Toast.tsx +2 -1
  393. package/src/spinbutton/SpinButton.tsx +98 -0
  394. package/src/spinbutton/SpinButtonGroupProvider.tsx +32 -0
  395. package/src/spinbutton/defaults.ts +45 -0
  396. package/src/spinbutton/types.ts +413 -0
  397. package/src/spinbutton/useSpinButton.ts +311 -0
  398. package/src/spinbutton/useSpinButtonGroupProvider.ts +104 -0
  399. package/src/spinbutton/utils/deselectNode.ts +17 -0
  400. package/src/spinbutton/utils/resolveInputEvent.ts +112 -0
  401. package/src/spinbutton/utils/selectNode.ts +15 -0
  402. package/src/table/StickyTableSection.tsx +2 -1
  403. package/src/table/Table.tsx +1 -2
  404. package/src/table/TableBody.tsx +2 -1
  405. package/src/table/TableCellContent.tsx +1 -2
  406. package/src/table/TableCheckbox.tsx +1 -2
  407. package/src/table/TableFooter.tsx +1 -2
  408. package/src/table/TableHeader.tsx +1 -2
  409. package/src/table/TableRadio.tsx +1 -2
  410. package/src/table/TableRow.tsx +1 -2
  411. package/src/table/useStickyTableSection.tsx +1 -2
  412. package/src/tabs/SimpleTabPanel.tsx +2 -1
  413. package/src/tabs/SimpleTabPanels.tsx +2 -1
  414. package/src/tabs/Tab.tsx +3 -6
  415. package/src/tabs/TabList.tsx +2 -1
  416. package/src/tabs/TabListScrollButton.tsx +1 -2
  417. package/src/tabs/useMaxTabPanelHeight.ts +7 -4
  418. package/src/test-utils/data-testid.ts +1 -2
  419. package/src/test-utils/mocks/match-media.ts +5 -10
  420. package/src/test-utils/vitest/timers.ts +1 -1
  421. package/src/tooltip/Tooltip.tsx +2 -1
  422. package/src/tooltip/TooltipHoverModeProvider.tsx +1 -2
  423. package/src/tooltip/useTooltip.ts +9 -5
  424. package/src/transition/CSSTransition.tsx +2 -1
  425. package/src/transition/Collapse.tsx +4 -2
  426. package/src/transition/CrossFade.tsx +2 -1
  427. package/src/transition/ScaleTransition.tsx +2 -1
  428. package/src/transition/SkeletonPlaceholder.tsx +1 -2
  429. package/src/transition/Slide.tsx +2 -1
  430. package/src/transition/SlideContainer.tsx +1 -2
  431. package/src/transition/types.ts +15 -16
  432. package/src/transition/useCollapseTransition.ts +6 -5
  433. package/src/transition/useCrossFadeTransition.ts +3 -2
  434. package/src/transition/useMaxWidthTransition.ts +1 -2
  435. package/src/transition/useScaleTransition.ts +3 -2
  436. package/src/transition/useSkeletonPlaceholder.ts +1 -2
  437. package/src/tree/Tree.tsx +2 -1
  438. package/src/tree/TreeItem.tsx +2 -1
  439. package/src/tree/TreeProvider.tsx +4 -4
  440. package/src/tree/styles.ts +1 -2
  441. package/src/tree/types.ts +1 -2
  442. package/src/tree/useTreeMovement.ts +1 -2
  443. package/src/typography/HighlightTextMark.tsx +1 -2
  444. package/src/typography/Mark.tsx +1 -2
  445. package/src/typography/TextContainer.tsx +1 -2
  446. package/src/typography/Typography.tsx +1 -2
  447. package/src/useElementSize.ts +7 -4
  448. package/src/useIntersectionObserver.ts +3 -2
  449. package/src/useMutationObserver.ts +3 -2
  450. package/src/useWindowSize.ts +4 -2
  451. package/src/utils/getNumberOfDigits.ts +18 -0
  452. package/src/utils/nearest.ts +2 -1
  453. package/src/utils/useDevEffect.ts +9 -0
  454. package/src/window-splitter/WindowSplitter.tsx +5 -2
  455. package/src/window-splitter/styles.ts +13 -2
  456. package/src/window-splitter/useWindowSplitter.ts +3 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/window-splitter/styles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\n\nimport { bem } from \"../utils/bem.js\";\n\nconst styles = bem(\"rmd-window-splitter\");\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-window-splitter-size\"?: string | number;\n \"--rmd-window-splitter-background-size\"?: string | number;\n \"--rmd-window-splitter-x\"?: string | number;\n \"--rmd-window-splitter-y\"?: string | number;\n \"--rmd-window-splitter-z\"?: string | number;\n \"--rmd-window-splitter-position\"?: string | number;\n \"--rmd-window-splitter-backgrond-color\"?: string;\n \"--rmd-window-splitter-opacity\"?: string | number;\n }\n}\n\n/**\n * @since 6.3.1\n */\nexport interface BaseWindowSplitterClassNameOptions {\n className?: string;\n\n /**\n * Set this to `true` if the window splitter should use `position: absolute`\n * instead of `position: fixed`.\n *\n * @defaultValue `false`\n */\n disableFixed?: boolean;\n}\n\n/**\n * @since 6.0.0\n * @since 6.3.1 Extends BaseWindowSplitterClassNameOptions\n */\nexport interface WindowSplitterClassNameOptions\n extends BaseWindowSplitterClassNameOptions {\n dragging?: boolean;\n reversed?: boolean;\n vertical?: boolean;\n}\n\n/**\n * @since 6.0.0\n */\nexport function windowSplitter(\n options: WindowSplitterClassNameOptions = {}\n): string {\n const {\n vertical = false,\n dragging,\n reversed,\n disableFixed,\n className,\n } = options;\n\n return cnb(\n styles({\n h: !vertical,\n hr: !vertical && reversed,\n v: vertical,\n vr: vertical && reversed,\n a: disableFixed,\n dragging,\n }),\n className\n );\n}\n"],"names":["cnb","bem","styles","windowSplitter","options","vertical","dragging","reversed","disableFixed","className","h","hr","v","vr","a"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAEhC,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,SAASD,IAAI;AAyCnB;;CAEC,GACD,OAAO,SAASE,eACdC,UAA0C,CAAC,CAAC;IAE5C,MAAM,EACJC,WAAW,KAAK,EAChBC,QAAQ,EACRC,QAAQ,EACRC,YAAY,EACZC,SAAS,EACV,GAAGL;IAEJ,OAAOJ,IACLE,OAAO;QACLQ,GAAG,CAACL;QACJM,IAAI,CAACN,YAAYE;QACjBK,GAAGP;QACHQ,IAAIR,YAAYE;QAChBO,GAAGN;QACHF;IACF,IACAG;AAEJ"}
1
+ {"version":3,"sources":["../../src/window-splitter/styles.ts"],"sourcesContent":["import { cnb } from \"cnbuilder\";\n\nimport { bem } from \"../utils/bem.js\";\n\nconst styles = bem(\"rmd-window-splitter\");\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-window-splitter-size\"?: string | number;\n \"--rmd-window-splitter-background-size\"?: string | number;\n \"--rmd-window-splitter-x\"?: string | number;\n \"--rmd-window-splitter-y\"?: string | number;\n \"--rmd-window-splitter-z\"?: string | number;\n \"--rmd-window-splitter-position\"?: string | number;\n \"--rmd-window-splitter-backgrond-color\"?: string;\n \"--rmd-window-splitter-inactive-backgrond-color\"?: string;\n \"--rmd-window-splitter-opacity\"?: string | number;\n }\n}\n\n/**\n * @since 6.3.1\n */\nexport interface BaseWindowSplitterClassNameOptions {\n className?: string;\n\n /**\n * Set this to `true` if the window splitter should use `position: absolute`\n * instead of `position: fixed`.\n *\n * @defaultValue `false`\n */\n disableFixed?: boolean;\n\n /**\n * Set to `true` to enable a background-color to the `WindowSplitter` even\n * while not being interacted with by the user.\n *\n * @since 6.4.0\n * @defaultValue `false`\n */\n inactiveBackground?: boolean;\n}\n\n/**\n * @since 6.0.0\n * @since 6.3.1 Extends BaseWindowSplitterClassNameOptions\n */\nexport interface WindowSplitterClassNameOptions extends BaseWindowSplitterClassNameOptions {\n dragging?: boolean;\n reversed?: boolean;\n vertical?: boolean;\n}\n\n/**\n * @since 6.0.0\n */\nexport function windowSplitter(\n options: WindowSplitterClassNameOptions = {}\n): string {\n const {\n vertical = false,\n dragging,\n reversed,\n disableFixed,\n inactiveBackground,\n className,\n } = options;\n\n return cnb(\n styles({\n h: !vertical,\n hr: !vertical && reversed,\n v: vertical,\n vr: vertical && reversed,\n a: disableFixed,\n dragging,\n \"no-inactive-bg\": !inactiveBackground,\n }),\n className\n );\n}\n"],"names":["cnb","bem","styles","windowSplitter","options","vertical","dragging","reversed","disableFixed","inactiveBackground","className","h","hr","v","vr","a"],"mappings":"AAAA,SAASA,GAAG,QAAQ,YAAY;AAEhC,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,SAASD,IAAI;AAkDnB;;CAEC,GACD,OAAO,SAASE,eACdC,UAA0C,CAAC,CAAC;IAE5C,MAAM,EACJC,WAAW,KAAK,EAChBC,QAAQ,EACRC,QAAQ,EACRC,YAAY,EACZC,kBAAkB,EAClBC,SAAS,EACV,GAAGN;IAEJ,OAAOJ,IACLE,OAAO;QACLS,GAAG,CAACN;QACJO,IAAI,CAACP,YAAYE;QACjBM,GAAGR;QACHS,IAAIT,YAAYE;QAChBQ,GAAGP;QACHF;QACA,kBAAkB,CAACG;IACrB,IACAC;AAEJ"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/window-splitter/useWindowSplitter.ts"],"sourcesContent":["\"use client\";\n\nimport { type Ref, type RefCallback } from \"react\";\n\nimport {\n type BaseDraggableOptions,\n type DraggableImplementation,\n type DraggableKeyboardEventHandlers,\n type DraggableMouseEventHandlers,\n type DraggableStateOptions,\n type DraggableTouchEventHandlers,\n useDraggable,\n} from \"../draggable/useDraggable.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface BaseWindowSplitterOptions<\n E extends HTMLElement = HTMLButtonElement,\n> extends Omit<BaseDraggableOptions<E>, keyof DraggableTouchEventHandlers<E>> {\n /**\n * An optional id to use for the window splitter.\n *\n * @defaultValue `\"window-splitter-\" + useId()`\n */\n id?: string;\n\n /**\n * An optional ref for the window splitter element. This will be merged into\n * the {@link WindowSplitterWidgetProps.ref}.\n */\n ref?: Ref<E>;\n}\n\n/**\n * @since 6.0.0\n */\nexport type WindowSplitterOptions<E extends HTMLElement = HTMLButtonElement> =\n BaseWindowSplitterOptions<E> & DraggableStateOptions;\n\n/**\n * @since 6.0.0\n */\nexport interface WindowSplitterWidgetProps<\n E extends HTMLElement = HTMLButtonElement,\n> extends Required<DraggableMouseEventHandlers<E>>,\n Required<DraggableKeyboardEventHandlers<E>> {\n \"aria-orientation\": \"vertical\" | undefined;\n \"aria-valuenow\": number;\n \"aria-valuemin\": number;\n \"aria-valuemax\": number;\n id: string;\n ref: RefCallback<E>;\n role: \"separator\";\n reversed: boolean;\n dragging: boolean;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface WindowSplitterImplementation<\n E extends HTMLElement = HTMLButtonElement,\n> extends DraggableImplementation<E> {\n splitterProps: WindowSplitterWidgetProps<E>;\n}\n\n/**\n * Used to control the state for the `WindowSplitter` component.\n *\n * @example Custom Implementation\n * ```tsx\n * import {\n * useWindowSplitter,\n * type WindowSplitterImplementation\n * } from \"@react-md/core/window-splitter/useWindowSplitter\";\n * import { useState } from \"react\";\n *\n * // this is pretty much the `useWindowSplitter` implementation\n * export function useMyCustomWindowSplitter(): WindowSplitterImplementation {\n * const [dragging, setDragging] = useState(false);\n * const [value, setValue] = useState(0);\n * const splitter = useWindowSplitter({\n * min: 0,\n * max: 100,\n * value,\n * setValue,\n * dragging,\n * setDragging,\n * });\n *\n * return {\n * ...splitter,\n * value,\n * setValue,\n * dragging,\n * }\n * }\n * ```\n *\n * @since 6.0.0\n */\nexport function useWindowSplitter<E extends HTMLElement = HTMLButtonElement>(\n options: WindowSplitterOptions<E>\n): WindowSplitterImplementation<E> {\n const { id: propId, reversed = false, vertical } = options;\n\n const id = useEnsuredId(propId, \"splitter\");\n const draggableImplementation = useDraggable(options);\n const {\n dragging,\n percentage,\n draggableRef,\n mouseEventHandlers,\n keyboardEventHandlers,\n } = draggableImplementation;\n\n return {\n ...draggableImplementation,\n splitterProps: {\n \"aria-orientation\": vertical ? \"vertical\" : undefined,\n \"aria-valuenow\": Math.ceil(percentage * 100),\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100,\n id,\n ref: draggableRef,\n role: \"separator\",\n dragging,\n reversed,\n ...mouseEventHandlers,\n ...keyboardEventHandlers,\n },\n };\n}\n"],"names":["useDraggable","useEnsuredId","useWindowSplitter","options","id","propId","reversed","vertical","draggableImplementation","dragging","percentage","draggableRef","mouseEventHandlers","keyboardEventHandlers","splitterProps","undefined","Math","ceil","ref","role"],"mappings":"AAAA;AAIA,SAOEA,YAAY,QACP,+BAA+B;AACtC,SAASC,YAAY,QAAQ,qBAAqB;AAuDlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCC,GACD,OAAO,SAASC,kBACdC,OAAiC;IAEjC,MAAM,EAAEC,IAAIC,MAAM,EAAEC,WAAW,KAAK,EAAEC,QAAQ,EAAE,GAAGJ;IAEnD,MAAMC,KAAKH,aAAaI,QAAQ;IAChC,MAAMG,0BAA0BR,aAAaG;IAC7C,MAAM,EACJM,QAAQ,EACRC,UAAU,EACVC,YAAY,EACZC,kBAAkB,EAClBC,qBAAqB,EACtB,GAAGL;IAEJ,OAAO;QACL,GAAGA,uBAAuB;QAC1BM,eAAe;YACb,oBAAoBP,WAAW,aAAaQ;YAC5C,iBAAiBC,KAAKC,IAAI,CAACP,aAAa;YACxC,iBAAiB;YACjB,iBAAiB;YACjBN;YACAc,KAAKP;YACLQ,MAAM;YACNV;YACAH;YACA,GAAGM,kBAAkB;YACrB,GAAGC,qBAAqB;QAC1B;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/window-splitter/useWindowSplitter.ts"],"sourcesContent":["\"use client\";\n\nimport { type Ref, type RefCallback } from \"react\";\n\nimport {\n type BaseDraggableOptions,\n type DraggableImplementation,\n type DraggableKeyboardEventHandlers,\n type DraggableMouseEventHandlers,\n type DraggableStateOptions,\n type DraggableTouchEventHandlers,\n useDraggable,\n} from \"../draggable/useDraggable.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface BaseWindowSplitterOptions<\n E extends HTMLElement = HTMLButtonElement,\n> extends Omit<BaseDraggableOptions<E>, keyof DraggableTouchEventHandlers<E>> {\n /**\n * An optional id to use for the window splitter.\n *\n * @defaultValue `\"window-splitter-\" + useId()`\n */\n id?: string;\n\n /**\n * An optional ref for the window splitter element. This will be merged into\n * the {@link WindowSplitterWidgetProps.ref}.\n */\n ref?: Ref<E>;\n}\n\n/**\n * @since 6.0.0\n */\nexport type WindowSplitterOptions<E extends HTMLElement = HTMLButtonElement> =\n BaseWindowSplitterOptions<E> & DraggableStateOptions;\n\n/**\n * @since 6.0.0\n */\nexport interface WindowSplitterWidgetProps<\n E extends HTMLElement = HTMLButtonElement,\n>\n extends\n Required<DraggableMouseEventHandlers<E>>,\n Required<DraggableKeyboardEventHandlers<E>> {\n \"aria-orientation\": \"vertical\" | undefined;\n \"aria-valuenow\": number;\n \"aria-valuemin\": number;\n \"aria-valuemax\": number;\n id: string;\n ref: RefCallback<E>;\n role: \"separator\";\n reversed: boolean;\n dragging: boolean;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface WindowSplitterImplementation<\n E extends HTMLElement = HTMLButtonElement,\n> extends DraggableImplementation<E> {\n splitterProps: WindowSplitterWidgetProps<E>;\n}\n\n/**\n * Used to control the state for the `WindowSplitter` component.\n *\n * @example Custom Implementation\n * ```tsx\n * import {\n * useWindowSplitter,\n * type WindowSplitterImplementation\n * } from \"@react-md/core/window-splitter/useWindowSplitter\";\n * import { useState } from \"react\";\n *\n * // this is pretty much the `useWindowSplitter` implementation\n * export function useMyCustomWindowSplitter(): WindowSplitterImplementation {\n * const [dragging, setDragging] = useState(false);\n * const [value, setValue] = useState(0);\n * const splitter = useWindowSplitter({\n * min: 0,\n * max: 100,\n * value,\n * setValue,\n * dragging,\n * setDragging,\n * });\n *\n * return {\n * ...splitter,\n * value,\n * setValue,\n * dragging,\n * }\n * }\n * ```\n *\n * @since 6.0.0\n */\nexport function useWindowSplitter<E extends HTMLElement = HTMLButtonElement>(\n options: WindowSplitterOptions<E>\n): WindowSplitterImplementation<E> {\n const { id: propId, reversed = false, vertical } = options;\n\n const id = useEnsuredId(propId, \"splitter\");\n const draggableImplementation = useDraggable(options);\n const {\n dragging,\n percentage,\n draggableRef,\n mouseEventHandlers,\n keyboardEventHandlers,\n } = draggableImplementation;\n\n return {\n ...draggableImplementation,\n splitterProps: {\n \"aria-orientation\": vertical ? \"vertical\" : undefined,\n \"aria-valuenow\": Math.ceil(percentage * 100),\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100,\n id,\n ref: draggableRef,\n role: \"separator\",\n dragging,\n reversed,\n ...mouseEventHandlers,\n ...keyboardEventHandlers,\n },\n };\n}\n"],"names":["useDraggable","useEnsuredId","useWindowSplitter","options","id","propId","reversed","vertical","draggableImplementation","dragging","percentage","draggableRef","mouseEventHandlers","keyboardEventHandlers","splitterProps","undefined","Math","ceil","ref","role"],"mappings":"AAAA;AAIA,SAOEA,YAAY,QACP,+BAA+B;AACtC,SAASC,YAAY,QAAQ,qBAAqB;AAyDlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCC,GACD,OAAO,SAASC,kBACdC,OAAiC;IAEjC,MAAM,EAAEC,IAAIC,MAAM,EAAEC,WAAW,KAAK,EAAEC,QAAQ,EAAE,GAAGJ;IAEnD,MAAMC,KAAKH,aAAaI,QAAQ;IAChC,MAAMG,0BAA0BR,aAAaG;IAC7C,MAAM,EACJM,QAAQ,EACRC,UAAU,EACVC,YAAY,EACZC,kBAAkB,EAClBC,qBAAqB,EACtB,GAAGL;IAEJ,OAAO;QACL,GAAGA,uBAAuB;QAC1BM,eAAe;YACb,oBAAoBP,WAAW,aAAaQ;YAC5C,iBAAiBC,KAAKC,IAAI,CAACP,aAAa;YACxC,iBAAiB;YACjB,iBAAiB;YACjBN;YACAc,KAAKP;YACLQ,MAAM;YACNV;YACAH;YACA,GAAGM,kBAAkB;YACrB,GAAGC,qBAAqB;QAC1B;IACF;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-md/core",
3
- "version": "6.3.3",
3
+ "version": "6.4.0",
4
4
  "description": "The core components and functionality for react-md.",
5
5
  "type": "module",
6
6
  "sass": "./dist/_core.scss",
@@ -78,44 +78,45 @@
78
78
  "remove-accents": "^0.5.0"
79
79
  },
80
80
  "devDependencies": {
81
- "@jest/globals": "^29.7.0",
82
- "@jest/types": "^29.6.3",
83
- "@microsoft/api-extractor": "^7.52.13",
84
- "@swc/cli": "^0.6.0",
85
- "@swc/core": "^1.13.20",
86
- "@swc/jest": "^0.2.39",
81
+ "@jest/globals": "^30.2.0",
82
+ "@jest/types": "^30.2.0",
83
+ "@microsoft/api-extractor": "^7.55.1",
84
+ "@swc/cli": "^0.7.9",
85
+ "@swc/core": "^1.15.3",
87
86
  "@testing-library/dom": "^10.4.1",
88
- "@testing-library/jest-dom": "^6.8.0",
87
+ "@testing-library/jest-dom": "^6.9.1",
89
88
  "@testing-library/react": "^16.3.0",
90
89
  "@testing-library/user-event": "^14.6.1",
91
- "@trivago/prettier-plugin-sort-imports": "^5.2.2",
92
- "@types/lodash": "^4.17.20",
93
- "@types/node": "^22.15.29",
94
- "@types/react": "^18.3.12",
95
- "@types/react-dom": "^18.3.1",
96
- "chokidar": "^4.0.3",
97
- "eslint": "^9.36.0",
90
+ "@trivago/prettier-plugin-sort-imports": "^6.0.0",
91
+ "@types/lodash": "^4.17.21",
92
+ "@types/node": "^24.10.1",
93
+ "@types/react": "^18.3.27",
94
+ "@types/react-dom": "^18.3.7",
95
+ "@vitejs/plugin-react-swc": "^4.2.2",
96
+ "@vitest/coverage-v8": "^3.2.4",
97
+ "chokidar": "^5.0.0",
98
+ "eslint": "^9.39.1",
98
99
  "filesize": "^11.0.13",
99
- "glob": "11.0.3",
100
- "jest": "^29.7.0",
101
- "jest-environment-jsdom": "^29.7.0",
102
- "jest-watch-typeahead": "^2.2.2",
100
+ "glob": "13.0.0",
101
+ "jsdom": "^27.2.0",
103
102
  "lodash": "^4.17.21",
104
103
  "lz-string": "^1.5.0",
105
- "npm-run-all": "^4.1.5",
106
- "prettier": "^3.6.2",
107
- "stylelint": "^16.24.0",
108
- "ts-morph": "^27.0.0",
104
+ "npm-run-all2": "^8.0.2",
105
+ "prettier": "^3.7.4",
106
+ "react": "^18.3.1",
107
+ "react-dom": "^18.3.1",
108
+ "stylelint": "^16.26.1",
109
+ "ts-morph": "^27.0.2",
109
110
  "ts-node": "^10.9.2",
110
- "tsx": "^4.20.6",
111
- "typescript": "^5.8.3",
111
+ "tsx": "^4.21.0",
112
+ "typescript": "^5.9.3",
112
113
  "vitest": "^3.2.4",
113
114
  "@react-md/eslint-config": "1.0.0",
114
115
  "@react-md/stylelint-config": "1.0.0"
115
116
  },
116
117
  "peerDependencies": {
117
- "@jest/globals": ">= 29 <=30",
118
- "@jest/types": ">= 29 <=30",
118
+ "@jest/globals": ">= 29 <=31",
119
+ "@jest/types": ">= 29 <=31",
119
120
  "@testing-library/dom": ">= 9",
120
121
  "@testing-library/jest-dom": ">= 6",
121
122
  "@testing-library/react": ">= 14",
@@ -157,8 +158,8 @@
157
158
  "access": "public"
158
159
  },
159
160
  "volta": {
160
- "node": "22.13.1",
161
- "pnpm": "10.8.0"
161
+ "node": "24.11.1",
162
+ "pnpm": "10.24.0"
162
163
  },
163
164
  "scripts": {
164
165
  "run-script": "tsx --tsconfig scripts/tsconfig.json",
@@ -176,9 +177,16 @@
176
177
  "clean-dist": "rm -rf dist",
177
178
  "clean": "rm -rf .turbo dist node_modules",
178
179
  "typecheck": "tsc --noEmit",
180
+ "check-format": "prettier --check .",
181
+ "format": "prettier --write .",
179
182
  "lint-scripts": "eslint \"src/**/*.{ts,tsx,js,jsx,cjs,mjs}\"",
180
183
  "lint-styles": "stylelint \"src/**/*.{css,scss}\"",
181
184
  "lint": "npm-run-all lint-scripts lint-styles",
182
- "test": "NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 jest"
185
+ "lint-fix": "npm-run-all \"lint-scripts --fix\" \"lint-styles --fix\"",
186
+ "test": "vitest",
187
+ "test-run": "vitest run",
188
+ "test-coverage": "vitest --coverage",
189
+ "test-run-coverage": "pnpm test-run --coverage",
190
+ "test-run-snapshot": "pnpm test-run -u"
183
191
  }
184
192
  }
@@ -46,6 +46,7 @@ export interface ReactMDCoreConfiguration {
46
46
  /**
47
47
  * @defaultValue `DEFAULT_APP_SIZE_QUERIES`
48
48
  * @see {@link DEFAULT_APP_SIZE_QUERIES}
49
+ * @deprecated Update the `MEDIA_QUERY_CONFIG` instead
49
50
  */
50
51
  appSizeQueries?: Readonly<AppSizeQueries>;
51
52
 
@@ -27,8 +27,7 @@ export type CustomAppBarComponent = ElementType<
27
27
  * @since 6.0.0 Added the {@link stacked} and {@link scrollbarOffset} props.
28
28
  */
29
29
  export interface AppBarProps
30
- extends HTMLAttributes<HTMLDivElement>,
31
- AppBarClassNameOptions {
30
+ extends HTMLAttributes<HTMLDivElement>, AppBarClassNameOptions {
32
31
  /** @defaultValue `fixed ? "header" : "div"` */
33
32
  as?: CustomAppBarComponent;
34
33
  }
@@ -13,8 +13,7 @@ import { type AppBarTitleClassNameOptions, appBarTitle } from "./styles.js";
13
13
  * will default to `"ellipsis"` which is new as well.
14
14
  */
15
15
  export interface AppBarTitleProps
16
- extends TypographyProps,
17
- AppBarTitleClassNameOptions {
16
+ extends TypographyProps, AppBarTitleClassNameOptions {
18
17
  /** @defaultValue `"headline-6"` */
19
18
  type?: TypographyType;
20
19
 
@@ -16,7 +16,9 @@ import {
16
16
  */
17
17
  export interface AutocompleteListboxChildrenProps<
18
18
  Option extends AutocompleteOption,
19
- > extends Required<AutocompleteGetOptionProps<Option>>,
19
+ >
20
+ extends
21
+ Required<AutocompleteGetOptionProps<Option>>,
20
22
  Required<AutocompleteGetOptionLabel<Option>> {
21
23
  query: string;
22
24
  options: readonly Option[];
@@ -301,8 +301,9 @@ export type AutocompleteOptionLabelExtractor<
301
301
  /**
302
302
  * @since 6.0.0
303
303
  */
304
- export interface AutocompleteFilteringOptions<Option extends AutocompleteOption>
305
- extends AutocompleteGetOptionLabel<Option> {
304
+ export interface AutocompleteFilteringOptions<
305
+ Option extends AutocompleteOption,
306
+ > extends AutocompleteGetOptionLabel<Option> {
306
307
  /**
307
308
  * The list of options that can be shown within the autocomplete and filtered
308
309
  * based on the current query.
@@ -390,7 +391,9 @@ export interface AutocompleteFilteringOptions<Option extends AutocompleteOption>
390
391
  */
391
392
  export interface AutocompleteFilterAndListboxOptions<
392
393
  Option extends AutocompleteOption,
393
- > extends AutocompleteFilteringOptions<Option>,
394
+ >
395
+ extends
396
+ AutocompleteFilteringOptions<Option>,
394
397
  AutocompleteGetOptionProps<Option>,
395
398
  OptionSelectedIconProps {
396
399
  /**
@@ -429,7 +432,9 @@ export interface AutocompleteEditableComboboxOptions<
429
432
  Option extends AutocompleteOption,
430
433
  ComboboxEl extends EditableHTMLElement = HTMLInputElement,
431
434
  PopupEl extends HTMLElement = HTMLElement,
432
- > extends EditableComboboxOptions<ComboboxEl, PopupEl>,
435
+ >
436
+ extends
437
+ EditableComboboxOptions<ComboboxEl, PopupEl>,
433
438
  AutocompleteFilterAndListboxOptions<Option> {
434
439
  onBlur?: FocusEventHandler<ComboboxEl>;
435
440
  onChange?: ChangeEventHandler<ComboboxEl>;
@@ -481,7 +486,9 @@ export interface AutocompleteOptions<
481
486
  Option extends AutocompleteOption,
482
487
  ComboboxEl extends EditableHTMLElement = HTMLInputElement,
483
488
  PopupEl extends HTMLElement = HTMLElement,
484
- > extends AutocompleteEditableComboboxOptions<Option, ComboboxEl, PopupEl>,
489
+ >
490
+ extends
491
+ AutocompleteEditableComboboxOptions<Option, ComboboxEl, PopupEl>,
485
492
  AutocompleteUnknownQueryAndValueOptions<Option> {}
486
493
 
487
494
  /**
@@ -502,8 +509,8 @@ export interface AutocompleteComboboxProps<
502
509
  export interface AutocompleteListboxProps<
503
510
  T extends AutocompleteOption = AutocompleteOption,
504
511
  PopupEl extends HTMLElement = HTMLElement,
505
- > extends Omit<ComboboxMenuProps<PopupEl>, "ref">,
506
- OptionSelectedIconProps {
512
+ >
513
+ extends Omit<ComboboxMenuProps<PopupEl>, "ref">, OptionSelectedIconProps {
507
514
  value: T | null | readonly T[];
508
515
  setValue: Dispatch<T>;
509
516
  onEnter: (appearing: boolean) => void;
@@ -513,8 +520,7 @@ export interface AutocompleteListboxProps<
513
520
  * @since 6.0.0
514
521
  */
515
522
  export interface ConfigurableAutocompleteListboxProps
516
- extends ConfigurableComboboxMenuProps,
517
- OptionSelectedIconProps {
523
+ extends ConfigurableComboboxMenuProps, OptionSelectedIconProps {
518
524
  id?: string;
519
525
  }
520
526
 
@@ -550,16 +556,14 @@ export interface ConfigurableAutocompleteClearButtonProps extends ButtonProps {
550
556
  * @internal
551
557
  * @since 6.0.0
552
558
  */
553
- export interface AutocompleteClearButtonProps
554
- extends ConfigurableAutocompleteClearButtonProps {
559
+ export interface AutocompleteClearButtonProps extends ConfigurableAutocompleteClearButtonProps {
555
560
  onClick: MouseEventHandler<HTMLButtonElement>;
556
561
  }
557
562
 
558
563
  /**
559
564
  * @since 6.0.0
560
565
  */
561
- export interface ConfigurableAutocompleteDropdownButtonProps
562
- extends ButtonProps {
566
+ export interface ConfigurableAutocompleteDropdownButtonProps extends ButtonProps {
563
567
  /** @defaultValue `AutocompleteProps.listboxLabel` */
564
568
  "aria-label"?: string;
565
569
  /** @defaultValue `AutocompleteProps.listboxLabelledby` */
@@ -576,8 +580,7 @@ export interface ConfigurableAutocompleteDropdownButtonProps
576
580
  /**
577
581
  * @since 6.0.0
578
582
  */
579
- export interface AutocompleteDropdownButtonProps
580
- extends ConfigurableAutocompleteDropdownButtonProps {
583
+ export interface AutocompleteDropdownButtonProps extends ConfigurableAutocompleteDropdownButtonProps {
581
584
  "aria-controls": string;
582
585
  onClick: MouseEventHandler<HTMLButtonElement>;
583
586
  visible: boolean;
@@ -586,8 +589,7 @@ export interface AutocompleteDropdownButtonProps
586
589
  /**
587
590
  * @since 6.0.0
588
591
  */
589
- export interface AutocompleteCircularProgressProps
590
- extends CircularProgressProps {
592
+ export interface AutocompleteCircularProgressProps extends CircularProgressProps {
591
593
  /** @defaultValue `"Loading"` */
592
594
  "aria-label"?: string;
593
595
 
@@ -616,7 +618,9 @@ export interface AutocompleteWithQueryImplementation<
616
618
  Option extends AutocompleteOption,
617
619
  ComboboxEl extends EditableHTMLElement = HTMLInputElement,
618
620
  PopupEl extends HTMLElement = HTMLElement,
619
- > extends EditableComboboxImplementation<ComboboxEl, PopupEl>,
621
+ >
622
+ extends
623
+ EditableComboboxImplementation<ComboboxEl, PopupEl>,
620
624
  Required<AutocompleteGetOptionProps<Option>>,
621
625
  Required<AutocompleteGetOptionLabel<Option>> {
622
626
  query: string;
@@ -700,7 +704,8 @@ export interface AutocompleteImplementation<
700
704
  * @since 6.0.0
701
705
  */
702
706
  export interface AutocompleteBaseProps<Option extends AutocompleteOption>
703
- extends Omit<TextFieldProps, "value" | "defaultValue">,
707
+ extends
708
+ Omit<TextFieldProps, "value" | "defaultValue">,
704
709
  AutocompleteFilterAndListboxOptions<Option>,
705
710
  ComboboxVisibilityOptions {
706
711
  inputRef?: Ref<HTMLInputElement>;
@@ -16,8 +16,9 @@ import {
16
16
  * @since 6.0.0
17
17
  * @internal
18
18
  */
19
- export interface GetDefaultValueOptions<Option extends AutocompleteOption>
20
- extends Required<AutocompleteGetOptionLabel<Option>> {
19
+ export interface GetDefaultValueOptions<
20
+ Option extends AutocompleteOption,
21
+ > extends Required<AutocompleteGetOptionLabel<Option>> {
21
22
  query: string | undefined;
22
23
  multiselect?: boolean;
23
24
  defaultQuery: UseStateInitializer<string> | undefined;
@@ -86,8 +87,9 @@ export function getDefaultValue<Option extends AutocompleteOption>(
86
87
  * @since 6.0.0
87
88
  * @internal
88
89
  */
89
- interface GetDefaultQueryOptions<Option extends AutocompleteOption>
90
- extends Required<AutocompleteGetOptionLabel<Option>> {
90
+ interface GetDefaultQueryOptions<
91
+ Option extends AutocompleteOption,
92
+ > extends Required<AutocompleteGetOptionLabel<Option>> {
91
93
  value: Option | null | readonly Option[];
92
94
  defaultQuery?: UseStateInitializer<string>;
93
95
  }
@@ -122,8 +124,9 @@ export function getDefaultQuery<Option extends AutocompleteOption>(
122
124
  * @since 6.0.0
123
125
  * @internal
124
126
  */
125
- export interface EnforceSelectedValueOptions<Option extends AutocompleteOption>
126
- extends Required<AutocompleteGetOptionLabel<Option>> {
127
+ export interface EnforceSelectedValueOptions<
128
+ Option extends AutocompleteOption,
129
+ > extends Required<AutocompleteGetOptionLabel<Option>> {
127
130
  value: Option | readonly Option[] | null;
128
131
  visible: boolean;
129
132
  container: HTMLElement | null;
@@ -15,7 +15,8 @@ export type AvatarImgAttributes = ImgHTMLAttributes<HTMLImageElement>;
15
15
  * the `role="presentation"`.
16
16
  */
17
17
  export interface AvatarProps
18
- extends Omit<HTMLAttributes<HTMLSpanElement>, "color">,
18
+ extends
19
+ Omit<HTMLAttributes<HTMLSpanElement>, "color">,
19
20
  AvatarClassNameOptions {
20
21
  /**
21
22
  * Since avatars are normally presentational data, they are hidden from screen
package/src/box/styles.ts CHANGED
@@ -254,6 +254,20 @@ export interface BoxOptions {
254
254
  }
255
255
 
256
256
  /**
257
+ * Applies the `className` from the `Box` component to any element.
258
+ *
259
+ * @example Simple Example
260
+ * ```tsx
261
+ * return (
262
+ * <form className={box({ stacked: true})}>
263
+ * {children}
264
+ * </form>
265
+ * );
266
+ * ```
267
+ *
268
+ * If custom media query breakpoints are required, use the {@link boxStyles}
269
+ * function instead which will also set the CSS variables.
270
+ *
257
271
  * @see {@link boxStyles}
258
272
  * @since 6.0.0
259
273
  */
@@ -442,6 +456,31 @@ export interface BoxStylesOptions extends BoxOptions {
442
456
  }
443
457
 
444
458
  /**
459
+ * Used to apply the styles from the `Box` component to any element by
460
+ * providing a `style` object with CSS variables and a `className`.
461
+ *
462
+ * If you do not need to use
463
+ *
464
+ * @example Simple Example
465
+ * ```tsx
466
+ * return (
467
+ * <form
468
+ * {...boxStyles({
469
+ * grid: true,
470
+ * gridColumns: {
471
+ * phone: 1,
472
+ * desktop: 3,
473
+ * },
474
+ * gridItemSize: {
475
+ * tablet: "12rem",
476
+ * },
477
+ * })}
478
+ * >
479
+ * {children}
480
+ * </form>
481
+ * );
482
+ * ```
483
+ *
445
484
  * @see {@link box}
446
485
  * @since 6.0.0
447
486
  */
@@ -14,7 +14,8 @@ import {
14
14
  import { type ButtonClassNameThemeOptions, button } from "./styles.js";
15
15
 
16
16
  export interface ButtonProps
17
- extends ButtonHTMLAttributes<HTMLButtonElement>,
17
+ extends
18
+ ButtonHTMLAttributes<HTMLButtonElement>,
18
19
  ButtonClassNameThemeOptions,
19
20
  ComponentWithRippleProps {
20
21
  /** @defaultValue `"button"` */
@@ -62,7 +62,8 @@ export function fab(options: FloatingActionButtonClassNameOptions): string {
62
62
 
63
63
  /** @since 6.0.0 */
64
64
  export interface FloatingActionButtonProps
65
- extends HTMLAttributes<HTMLSpanElement>,
65
+ extends
66
+ HTMLAttributes<HTMLSpanElement>,
66
67
  FloatingActionButtonClassNameOptions {}
67
68
 
68
69
  /**
package/src/card/Card.tsx CHANGED
@@ -9,7 +9,8 @@ import { type CardClassNameOptions, card } from "./styles.js";
9
9
  * deprecated `raiseable` prop
10
10
  */
11
11
  export interface CardProps
12
- extends HTMLAttributes<HTMLDivElement>,
12
+ extends
13
+ HTMLAttributes<HTMLDivElement>,
13
14
  CardClassNameOptions,
14
15
  Pick<BoxOptions, "align" | "justify" | "fullWidth" | "disableWrap"> {
15
16
  /** @defaultValue `"stretch"` */
@@ -7,8 +7,7 @@ import { type CardContentClassNameOptions, cardContent } from "./styles.js";
7
7
  * removed the `disableParagraphMargin` prop.
8
8
  */
9
9
  export interface CardContentProps
10
- extends HTMLAttributes<HTMLDivElement>,
11
- CardContentClassNameOptions {}
10
+ extends HTMLAttributes<HTMLDivElement>, CardContentClassNameOptions {}
12
11
 
13
12
  /**
14
13
  * @see {@link https://react-md.dev/components/card | Card Demos}
@@ -16,8 +16,7 @@ const noop = (): void => {
16
16
  * @since 6.0.0
17
17
  */
18
18
  export interface ClickableCardProps
19
- extends CardProps,
20
- ComponentWithRippleProps {
19
+ extends CardProps, ComponentWithRippleProps {
21
20
  onClick: MouseEventHandler<HTMLDivElement>;
22
21
 
23
22
  /**
package/src/chip/Chip.tsx CHANGED
@@ -28,7 +28,8 @@ import { type ChipTheme, chip, chipContent } from "./styles.js";
28
28
  * augmentation.
29
29
  */
30
30
  export interface ChipProps
31
- extends ButtonHTMLAttributes<HTMLButtonElement>,
31
+ extends
32
+ ButtonHTMLAttributes<HTMLButtonElement>,
32
33
  BaseMaxWidthTransitionOptions,
33
34
  ComponentWithRippleProps {
34
35
  /**
@@ -7,7 +7,8 @@ import { type DateFieldOptions, useDateField } from "./useDateField.js";
7
7
 
8
8
  /** @since 6.3.0 */
9
9
  export interface NativeDateFieldProps
10
- extends Omit<TextFieldProps, keyof DateFieldOptions | "value">,
10
+ extends
11
+ Omit<TextFieldProps, keyof DateFieldOptions | "value">,
11
12
  Omit<DateFieldOptions, "ref"> {}
12
13
 
13
14
  /**
@@ -9,7 +9,8 @@ import { type TimeFieldOptions, useTimeField } from "./useTimeField.js";
9
9
  * @since 6.3.0
10
10
  */
11
11
  export interface NativeTimeFieldProps
12
- extends Omit<TextFieldProps, keyof TimeFieldOptions | "value">,
12
+ extends
13
+ Omit<TextFieldProps, keyof TimeFieldOptions | "value">,
13
14
  Omit<TimeFieldOptions, "ref"> {}
14
15
 
15
16
  /**
@@ -42,7 +42,8 @@ export interface DateFieldConstraints {
42
42
 
43
43
  /** @since 6.3.0 */
44
44
  export interface DateFieldOptions
45
- extends Omit<
45
+ extends
46
+ Omit<
46
47
  TextFieldHookOptions,
47
48
  | "isNumber"
48
49
  | "counter"
@@ -55,7 +56,8 @@ export interface DateFieldOptions
55
56
 
56
57
  /** @since 6.3.0 */
57
58
  export interface ProvidedDateFieldProps
58
- extends Omit<ProvidedTextFieldProps, "value">,
59
+ extends
60
+ Omit<ProvidedTextFieldProps, "value">,
59
61
  Omit<DateFieldConstraints, "step"> {
60
62
  type: "date";
61
63
  step?: number | "any";
@@ -72,20 +74,23 @@ export interface ProvidedDateFieldMessageProps extends ProvidedDateFieldProps {
72
74
  }
73
75
 
74
76
  /** @since 6.3.0 */
75
- export interface DateFieldImplementation
76
- extends Omit<TextFieldImplementation, "fieldProps"> {
77
+ export interface DateFieldImplementation extends Omit<
78
+ TextFieldImplementation,
79
+ "fieldProps"
80
+ > {
77
81
  fieldProps: ProvidedDateFieldProps;
78
82
  }
79
83
 
80
84
  /** @since 6.3.0 */
81
- export interface DateFieldWithMessageImplementation
82
- extends Omit<TextFieldWithMessageImplementation, "fieldProps"> {
85
+ export interface DateFieldWithMessageImplementation extends Omit<
86
+ TextFieldWithMessageImplementation,
87
+ "fieldProps"
88
+ > {
83
89
  fieldProps: ProvidedDateFieldMessageProps;
84
90
  }
85
91
 
86
92
  /** @since 6.3.0 */
87
- export interface ValidatedDateFieldImplementation
88
- extends DateFieldImplementation {
93
+ export interface ValidatedDateFieldImplementation extends DateFieldImplementation {
89
94
  fieldProps: ProvidedDateFieldProps | ProvidedDateFieldMessageProps;
90
95
  }
91
96
 
@@ -69,7 +69,8 @@ export interface TimeFieldConstraints {
69
69
 
70
70
  /** @since 6.3.0 */
71
71
  export interface TimeFieldOptions
72
- extends Omit<
72
+ extends
73
+ Omit<
73
74
  TextFieldHookOptions,
74
75
  | "isNumber"
75
76
  | "counter"
@@ -82,7 +83,8 @@ export interface TimeFieldOptions
82
83
 
83
84
  /** @since 6.3.0 */
84
85
  export interface ProvidedTimeFieldProps
85
- extends Omit<ProvidedTextFieldProps, "value">,
86
+ extends
87
+ Omit<ProvidedTextFieldProps, "value">,
86
88
  Omit<TimeFieldConstraints, "step"> {
87
89
  type: "time";
88
90
  step?: number | "any";
@@ -99,20 +101,23 @@ export interface ProvidedTimeFieldMessageProps extends ProvidedTimeFieldProps {
99
101
  }
100
102
 
101
103
  /** @since 6.3.0 */
102
- export interface TimeFieldImplementation
103
- extends Omit<TextFieldImplementation, "fieldProps"> {
104
+ export interface TimeFieldImplementation extends Omit<
105
+ TextFieldImplementation,
106
+ "fieldProps"
107
+ > {
104
108
  fieldProps: ProvidedTimeFieldProps;
105
109
  }
106
110
 
107
111
  /** @since 6.3.0 */
108
- export interface TimeFieldWithMessageImplementation
109
- extends Omit<TextFieldWithMessageImplementation, "fieldProps"> {
112
+ export interface TimeFieldWithMessageImplementation extends Omit<
113
+ TextFieldWithMessageImplementation,
114
+ "fieldProps"
115
+ > {
110
116
  fieldProps: ProvidedTimeFieldMessageProps;
111
117
  }
112
118
 
113
119
  /** @since 6.3.0 */
114
- export interface ValidatedTimeFieldImplementation
115
- extends TimeFieldImplementation {
120
+ export interface ValidatedTimeFieldImplementation extends TimeFieldImplementation {
116
121
  fieldProps: ProvidedTimeFieldProps | ProvidedTimeFieldMessageProps;
117
122
  }
118
123
 
@@ -42,7 +42,8 @@ const noop = (): void => {
42
42
  const noopBool = (): boolean => false;
43
43
 
44
44
  export interface BaseDialogProps
45
- extends HTMLAttributes<HTMLDivElement>,
45
+ extends
46
+ HTMLAttributes<HTMLDivElement>,
46
47
  CSSTransitionComponentProps,
47
48
  TransitionActions,
48
49
  FocusContainerComponentProps {
@@ -5,8 +5,7 @@ import { dialogContainer } from "./styles.js";
5
5
  /**
6
6
  * @since 6.0.0
7
7
  */
8
- export interface ConfigurableDialogContainerProps
9
- extends HTMLAttributes<HTMLDivElement> {
8
+ export interface ConfigurableDialogContainerProps extends HTMLAttributes<HTMLDivElement> {
10
9
  /**
11
10
  * Set to `true` to force the `Dialog` to be wrapped in a `DialogContainer`
12
11
  * div. This defaults to `true` for `type !== "custom"`.
@@ -3,8 +3,7 @@ import { type HTMLAttributes, forwardRef } from "react";
3
3
  import { type DialogContentClassNameOptions, dialogContent } from "./styles.js";
4
4
 
5
5
  export interface DialogContentProps
6
- extends HTMLAttributes<HTMLDivElement>,
7
- DialogContentClassNameOptions {}
6
+ extends HTMLAttributes<HTMLDivElement>, DialogContentClassNameOptions {}
8
7
 
9
8
  /**
10
9
  * The `DialogContent` component should be used as a child of the `Dialog`
@@ -3,8 +3,7 @@ import { type HTMLAttributes, forwardRef } from "react";
3
3
  import { type DialogFooterClassNameOptions, dialogFooter } from "./styles.js";
4
4
 
5
5
  export interface DialogFooterProps
6
- extends HTMLAttributes<HTMLDivElement>,
7
- DialogFooterClassNameOptions {}
6
+ extends HTMLAttributes<HTMLDivElement>, DialogFooterClassNameOptions {}
8
7
 
9
8
  /**
10
9
  * The `DialogFooter` is a simple `<footer>` with simple `display: flex` styles