@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
@@ -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
@@ -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
@@ -8,8 +8,7 @@ export type DividerElement = HTMLHRElement | HTMLDivElement;
8
8
  * @since 6.0.0 Extends the {@link DividerClassNameOptions}
9
9
  */
10
10
  export interface DividerProps
11
- extends HTMLAttributes<DividerElement>,
12
- DividerClassNameOptions {}
11
+ extends HTMLAttributes<DividerElement>, DividerClassNameOptions {}
13
12
 
14
13
  /**
15
14
  * @example Simple Example
@@ -84,8 +84,7 @@ export interface ControllableDraggableStateOptions {
84
84
  * @since 6.0.0
85
85
  */
86
86
  export interface BaseDraggableOptions<E extends HTMLElement>
87
- extends DraggableEventHandlers<E>,
88
- ControllableDraggableStateOptions {
87
+ extends DraggableEventHandlers<E>, ControllableDraggableStateOptions {
89
88
  /**
90
89
  * An optional ref to merge with the returned
91
90
  * {@link DraggableImplementation.draggableRef}.
@@ -275,8 +274,9 @@ export type DraggableOptions<E extends HTMLElement = HTMLElement> =
275
274
  /**
276
275
  * @since 6.0.0
277
276
  */
278
- export interface DraggableImplementation<E extends HTMLElement = HTMLElement>
279
- extends Required<DraggableEventHandlers<E>> {
277
+ export interface DraggableImplementation<
278
+ E extends HTMLElement = HTMLElement,
279
+ > extends Required<DraggableEventHandlers<E>> {
280
280
  mouseEventHandlers: Required<DraggableMouseEventHandlers<E>>;
281
281
  touchEventHandlers: Required<DraggableTouchEventHandlers<E>>;
282
282
  keyboardEventHandlers: Required<DraggableKeyboardEventHandlers<E>>;
@@ -120,8 +120,10 @@ export const getRelativeDragPosition = (
120
120
  /**
121
121
  * @internal
122
122
  */
123
- interface UpdateDragPositionOptions
124
- extends Omit<RelativeDragPositionOptions, "container"> {
123
+ interface UpdateDragPositionOptions extends Omit<
124
+ RelativeDragPositionOptions,
125
+ "container"
126
+ > {
125
127
  event: ClientPositionEvent;
126
128
  nodeRef: RefObject<HTMLElement>;
127
129
  focus?: boolean;
@@ -17,8 +17,7 @@ import { expansionPanelButton, expansionPanelHeading } from "./styles.js";
17
17
  * @since 6.0.0 Updated to include additional heading/Typography
18
18
  * props.
19
19
  */
20
- export interface ExpansionPanelHeaderProps
21
- extends ButtonHTMLAttributes<HTMLButtonElement> {
20
+ export interface ExpansionPanelHeaderProps extends ButtonHTMLAttributes<HTMLButtonElement> {
22
21
  id: string;
23
22
 
24
23
  /**
@@ -27,7 +27,8 @@ export type FileInputHTMLAttributes = Omit<
27
27
  * longer required.
28
28
  */
29
29
  export interface FileInputProps
30
- extends ButtonClassNameThemeOptions,
30
+ extends
31
+ ButtonClassNameThemeOptions,
31
32
  FileInputHTMLAttributes,
32
33
  ComponentWithRippleProps {
33
34
  /**
@@ -67,8 +67,9 @@ export interface FileUploadState<CustomError = never> {
67
67
  * @since 2.9.0
68
68
  * @internal
69
69
  */
70
- export interface FileUploadHookState<CustomError = never>
71
- extends FileUploadState<CustomError> {
70
+ export interface FileUploadHookState<
71
+ CustomError = never,
72
+ > extends FileUploadState<CustomError> {
72
73
  /**
73
74
  * All the current readers used for uploading files to the browser.
74
75
  *
@@ -86,8 +87,7 @@ export interface FileUploadHookState<CustomError = never>
86
87
  * @since 2.9.0
87
88
  */
88
89
  export interface FileUploadOptions<E extends HTMLElement, CustomError = never>
89
- extends FileUploadHandlers<E>,
90
- FileValidationOptions {
90
+ extends FileUploadHandlers<E>, FileValidationOptions {
91
91
  /**
92
92
  * Setting this value to a number greater than `0` will update the browser
93
93
  * upload process to queue the uploads in chunks instead of all at once. This
@@ -153,8 +153,8 @@ export interface FileUploadActions {
153
153
  export interface FileUploadHookReturnValue<
154
154
  E extends HTMLElement = HTMLElement,
155
155
  CustomError = never,
156
- > extends FileUploadActions,
157
- Required<FileUploadHandlers<E>> {
156
+ >
157
+ extends FileUploadActions, Required<FileUploadHandlers<E>> {
158
158
  /** {@inheritDoc FileUploadState.errors} */
159
159
  errors: readonly FileValidationError<CustomError>[];
160
160
 
@@ -283,8 +283,7 @@ export interface FileValidationOptions {
283
283
  }
284
284
 
285
285
  /** @since 2.9.0 */
286
- export interface FilesValidationOptions
287
- extends Required<FileValidationOptions> {
286
+ export interface FilesValidationOptions extends Required<FileValidationOptions> {
288
287
  /**
289
288
  * The total number of bytes in the {@link FileUploadHookReturnValue.stats}
290
289
  * list. This is really just:
@@ -50,8 +50,9 @@ export type FocusContainerTransitionCallbacks = TransitionCallbacks;
50
50
  * @since 6.3.2 Fixed by extending `TransitionCallbacks` after the
51
51
  * `onEnteredOnce` and `onExitedOnce` support was added to CSS transitions.
52
52
  */
53
- export interface FocusContainerTransitionOptions<E extends HTMLElement>
54
- extends TransitionCallbacks {
53
+ export interface FocusContainerTransitionOptions<
54
+ E extends HTMLElement,
55
+ > extends TransitionCallbacks {
55
56
  /**
56
57
  * An optional ref that will be merged with the
57
58
  * {@link FocusContainerImplementation.nodeRef}
@@ -83,8 +84,7 @@ export interface FocusContainerComponentProps {
83
84
 
84
85
  /** @since 6.0.0 */
85
86
  export interface FocusContainerOptions<E extends HTMLElement>
86
- extends FocusContainerTransitionOptions<E>,
87
- FocusContainerComponentProps {
87
+ extends FocusContainerTransitionOptions<E>, FocusContainerComponentProps {
88
88
  onKeyDown?: KeyboardEventHandler<E>;
89
89
  /**
90
90
  * This to `true` will capture the current focused element as a focus target
@@ -8,7 +8,8 @@ import { type FieldsetClassNameOptions, fieldset } from "./fieldsetStyles.js";
8
8
  * yourself manually instead of using a prop.
9
9
  */
10
10
  export interface FieldsetProps
11
- extends FieldsetHTMLAttributes<HTMLFieldSetElement>,
11
+ extends
12
+ FieldsetHTMLAttributes<HTMLFieldSetElement>,
12
13
  FieldsetClassNameOptions {}
13
14
 
14
15
  /**
@@ -30,14 +31,34 @@ export interface FieldsetProps
30
31
  * }
31
32
  * ```
32
33
  *
34
+ * @example Floating Legend Example
35
+ * ```tsx
36
+ * import { Form } from "@react-md/core/form/Form";
37
+ * import { Fieldset } from "@react-md/core/form/Fieldset";
38
+ * import { Legend } from "@react-md/core/form/Legend";
39
+ *
40
+ * function Example(): ReactElement {
41
+ * return (
42
+ * <Form>
43
+ * <Fieldset floatingLegend>
44
+ * <Legend floating>Some Title</Legend>
45
+ * // form components
46
+ * </Fieldset>
47
+ * </Form>
48
+ * );
49
+ * }
50
+ * ```
51
+ * ```
52
+ *
33
53
  * @see {@link https://react-md.dev/components/fieldset | Fieldset Demos}
34
54
  */
35
55
  export const Fieldset = forwardRef<HTMLFieldSetElement, FieldsetProps>(
36
56
  function Fieldset(props, ref) {
37
57
  const {
38
58
  className,
39
- fullWidth = false,
40
- browserStyles = false,
59
+ fullWidth,
60
+ browserStyles,
61
+ floatingLegend,
41
62
  children,
42
63
  ...remaining
43
64
  } = props;
@@ -50,6 +71,7 @@ export const Fieldset = forwardRef<HTMLFieldSetElement, FieldsetProps>(
50
71
  className,
51
72
  fullWidth,
52
73
  browserStyles,
74
+ floatingLegend,
53
75
  })}
54
76
  >
55
77
  {children}
@@ -12,8 +12,7 @@ import { type FormMessageProps } from "./types.js";
12
12
  * @since 2.5.0
13
13
  */
14
14
  export interface FormMessageContainerProps
15
- extends HTMLAttributes<HTMLDivElement>,
16
- FormMessageContainerClassNameOptions {
15
+ extends HTMLAttributes<HTMLDivElement>, FormMessageContainerClassNameOptions {
17
16
  /**
18
17
  * If the extension doesn't actually want to render the `FormMessage`
19
18
  * component, these props are optional. It kind of eliminates the whole
@@ -8,8 +8,7 @@ import {
8
8
  import { formMessageCounter } from "./formMessageStyles.js";
9
9
 
10
10
  /** @since 2.9.0 */
11
- export interface FormMessageCounterProps
12
- extends HTMLAttributes<HTMLSpanElement> {
11
+ export interface FormMessageCounterProps extends HTMLAttributes<HTMLSpanElement> {
13
12
  /**
14
13
  * The children to display in the counter. This is normally a string like:
15
14
  *
@@ -149,7 +149,8 @@ export interface InputToggleLabelProps {
149
149
  * @since 6.0.0
150
150
  */
151
151
  export interface BaseInputToggleProps
152
- extends Omit<InputHTMLAttributes<HTMLInputElement>, "size">,
152
+ extends
153
+ Omit<InputHTMLAttributes<HTMLInputElement>, "size">,
153
154
  FormMessageContainerExtension,
154
155
  FormComponentStates,
155
156
  ConfigurableInputToggleIconProps,
@@ -194,8 +195,7 @@ export interface IndeterminateCheckboxProps {
194
195
  }
195
196
 
196
197
  export interface CheckboxProps
197
- extends BaseInputToggleProps,
198
- IndeterminateCheckboxProps {}
198
+ extends BaseInputToggleProps, IndeterminateCheckboxProps {}
199
199
 
200
200
  /** @since 6.0.0 */
201
201
  export interface CheckboxInputToggleProps extends CheckboxProps {
@@ -1,35 +1,80 @@
1
- import { cnb } from "cnbuilder";
2
1
  import { forwardRef } from "react";
3
2
 
4
- import { cssUtils } from "../cssUtils.js";
5
3
  import { Typography, type TypographyProps } from "../typography/Typography.js";
4
+ import { type LegendClassNameOptions, legend } from "./legendStyles.js";
6
5
 
7
6
  /**
8
7
  * @since 6.0.0
8
+ * @since 6.4.0 Extends the `LegendClassNameOptions`
9
9
  */
10
- export interface LegendProps extends TypographyProps {
11
- /**
12
- * @defaultValue `false`
13
- */
14
- srOnly?: boolean;
15
- }
10
+ export interface LegendProps extends TypographyProps, LegendClassNameOptions {}
16
11
 
17
12
  /**
18
13
  * This should be used within a `Fieldset` to apply a label.
19
14
  *
15
+ * @example Simple Example
16
+ * ```tsx
17
+ * <Fieldset>
18
+ * <Legend>I am legend</Legend>
19
+ * {children}
20
+ * </Fieldset>
21
+ * ```
22
+ *
23
+ * @example Visible to Screen readers only
24
+ * ```tsx
25
+ * <Fieldset>
26
+ * <Legend srOnly>I am legend</Legend>
27
+ * {children}
28
+ * </Fieldset>
29
+ * ```
30
+ *
31
+ * @example Acting as a floating label
32
+ * ```tsx
33
+ * <Fieldset floatingLegend>
34
+ * <Legend floating>I am legend</Legend>
35
+ * {children}
36
+ * </Fieldset>
37
+ * ```
38
+ *
20
39
  * @see {@link https://react-md.dev/components/fieldset | Fieldset Demos}
21
40
  * @since 6.0.0
22
41
  */
23
42
  export const Legend = forwardRef<HTMLLegendElement, LegendProps>(
24
43
  function Legend(props, ref) {
25
- const { srOnly = false, className, children, ...remaining } = props;
44
+ const {
45
+ srOnly,
46
+ floating,
47
+ theme,
48
+ gap,
49
+ dense,
50
+ active,
51
+ error,
52
+ disabled,
53
+ stacked,
54
+ reversed,
55
+ className,
56
+ children,
57
+ ...remaining
58
+ } = props;
26
59
 
27
60
  return (
28
61
  <Typography
29
62
  {...remaining}
30
63
  as="legend"
31
64
  ref={ref}
32
- className={cnb("rmd-legend", cssUtils({ srOnly }), className)}
65
+ className={legend({
66
+ srOnly,
67
+ floating,
68
+ theme,
69
+ gap,
70
+ dense,
71
+ active,
72
+ error,
73
+ disabled,
74
+ stacked,
75
+ reversed,
76
+ className,
77
+ })}
33
78
  >
34
79
  {children}
35
80
  </Typography>
@@ -16,8 +16,7 @@ import {
16
16
  * @internal
17
17
  */
18
18
  export interface ListboxProps<Value extends ListboxValue>
19
- extends MenuProps,
20
- ListboxProviderOptions<Value> {
19
+ extends MenuProps, ListboxProviderOptions<Value> {
21
20
  nodeRef?: Ref<HTMLDivElement>;
22
21
  children: ReactNode;
23
22
  }
@@ -47,8 +47,9 @@ export type ListboxValue = string | number | null | object;
47
47
  /**
48
48
  * @since 6.3.0
49
49
  */
50
- export interface ListboxProviderOptions<Value extends ListboxValue>
51
- extends OptionSelectedIconProps {
50
+ export interface ListboxProviderOptions<
51
+ Value extends ListboxValue,
52
+ > extends OptionSelectedIconProps {
52
53
  value: ListboxValue | readonly NonNullable<ListboxValue>[];
53
54
  setValue: Dispatch<NonNullable<Value>>;
54
55
  }
@@ -23,7 +23,8 @@ import {
23
23
  * @since 6.0.0 Added support for {@link UserAgentAutocompleteProps}
24
24
  */
25
25
  export interface NativeSelectProps
26
- extends Omit<SelectHTMLAttributes<HTMLSelectElement>, "autoComplete">,
26
+ extends
27
+ Omit<SelectHTMLAttributes<HTMLSelectElement>, "autoComplete">,
27
28
  UserAgentAutocompleteProps,
28
29
  FormFieldOptions {
29
30
  /**
@@ -64,8 +64,10 @@ export interface ConfigurableVisibilityIcon {
64
64
  * @since 6.0.0 Merged the `getVisibilityIcon` prop behavior into the
65
65
  * `visibilityIcon` prop.
66
66
  */
67
- export interface PasswordProps
68
- extends Omit<TextFieldProps, "type" | "rightAddon"> {
67
+ export interface PasswordProps extends Omit<
68
+ TextFieldProps,
69
+ "type" | "rightAddon"
70
+ > {
69
71
  /**
70
72
  * @defaultValue `"password"`
71
73
  * @since 6.0.0 Defaults to `"password"`