@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
@@ -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"`
@@ -13,8 +13,7 @@ import { textArea } from "./textAreaStyles.js";
13
13
  * @since 6.0.0
14
14
  * @internal
15
15
  */
16
- export interface ResizingTextAreaWrapperProps
17
- extends HTMLAttributes<HTMLDivElement> {
16
+ export interface ResizingTextAreaWrapperProps extends HTMLAttributes<HTMLDivElement> {
18
17
  maskId: string;
19
18
  maskRef: Ref<HTMLTextAreaElement>;
20
19
  defaultValue?: TextareaHTMLAttributes<HTMLTextAreaElement>["defaultValue"];
@@ -95,7 +95,8 @@ export type SelectChangeEvent<Value extends string> =
95
95
  * @since 6.0.0 Rewritten with a new API.
96
96
  */
97
97
  export interface SelectProps<Value extends string>
98
- extends Omit<TextFieldContainerProps, "label">,
98
+ extends
99
+ Omit<TextFieldContainerProps, "label">,
99
100
  Pick<InputHTMLAttributes<HTMLInputElement>, "form" | "required">,
100
101
  UserAgentAutocompleteProps {
101
102
  /**
@@ -65,7 +65,8 @@ const noop = (): undefined => {
65
65
  * @since 2.5.0
66
66
  */
67
67
  export interface BaseSliderProps
68
- extends HTMLAttributes<HTMLDivElement>,
68
+ extends
69
+ HTMLAttributes<HTMLDivElement>,
69
70
  SliderThumbPresentation,
70
71
  SliderValueOptions,
71
72
  SliderAddonProps,
@@ -32,8 +32,7 @@ export interface SliderAddonProps {
32
32
  * a `Fieldset` instead.
33
33
  */
34
34
  export interface SliderContainerProps
35
- extends HTMLAttributes<HTMLDivElement>,
36
- SliderAddonProps {
35
+ extends HTMLAttributes<HTMLDivElement>, SliderAddonProps {
37
36
  vertical: boolean;
38
37
  }
39
38
 
@@ -83,8 +83,10 @@ export interface SliderThumbPresentation {
83
83
  /**
84
84
  * @since 6.0.0
85
85
  */
86
- export interface ConfigurableSliderThumbProps
87
- extends Omit<HTMLAttributes<HTMLSpanElement>, "onChange"> {
86
+ export interface ConfigurableSliderThumbProps extends Omit<
87
+ HTMLAttributes<HTMLSpanElement>,
88
+ "onChange"
89
+ > {
88
90
  name?: string;
89
91
  }
90
92
 
@@ -94,7 +96,8 @@ export interface ConfigurableSliderThumbProps
94
96
  * @since 6.0.0 Internal only component.
95
97
  */
96
98
  export interface SliderThumbProps
97
- extends ConfigurableSliderThumbProps,
99
+ extends
100
+ ConfigurableSliderThumbProps,
98
101
  Required<SliderValueOptions>,
99
102
  Required<SliderThumbPresentation> {
100
103
  id: string;
@@ -14,7 +14,8 @@ import {
14
14
  * @since 6.0.0 Updated to be internal only.
15
15
  */
16
16
  export interface SliderTrackProps
17
- extends HTMLAttributes<HTMLSpanElement>,
17
+ extends
18
+ HTMLAttributes<HTMLSpanElement>,
18
19
  ClosestThumbEventHandlersOptions,
19
20
  ThumbOffsetsOptions {
20
21
  animate: boolean;
@@ -127,8 +127,7 @@ export interface SliderMarksOptions {
127
127
  * @since 6.0.0
128
128
  */
129
129
  export interface SliderValueMarksProps
130
- extends RangeStepsOptions,
131
- Required<SliderMarksOptions> {
130
+ extends RangeStepsOptions, Required<SliderMarksOptions> {
132
131
  vertical: boolean;
133
132
  thumb1Value: number;
134
133
  thumb2Value: number;
@@ -33,7 +33,8 @@ declare module "react" {
33
33
  * `FormMessage` behavior.
34
34
  */
35
35
  export interface SwitchProps
36
- extends InputHTMLAttributes<HTMLInputElement>,
36
+ extends
37
+ InputHTMLAttributes<HTMLInputElement>,
37
38
  InputToggleLabelProps,
38
39
  FormMessageContainerExtension,
39
40
  FormComponentStates {
@@ -35,8 +35,7 @@ declare module "react" {
35
35
  * @since 6.0.0 Added `containerProps`.
36
36
  */
37
37
  export interface TextAreaProps
38
- extends FormFieldOptions,
39
- TextareaHTMLAttributes<HTMLTextAreaElement> {
38
+ extends FormFieldOptions, TextareaHTMLAttributes<HTMLTextAreaElement> {
40
39
  /** @defaultValue `"text-area-" + useId()` */
41
40
  id?: string;
42
41
 
@@ -51,7 +51,8 @@ export type TextFieldInputAttributes = Omit<
51
51
  * @since 6.0.0 Removed the `containerRef` prop.
52
52
  */
53
53
  export interface TextFieldProps
54
- extends TextFieldInputAttributes,
54
+ extends
55
+ TextFieldInputAttributes,
55
56
  UserAgentAutocompleteProps,
56
57
  FormFieldOptions {
57
58
  /**
@@ -8,8 +8,7 @@ import { textFieldContainer } from "./textFieldContainerStyles.js";
8
8
  import { type TextFieldContainerOptions } from "./types.js";
9
9
 
10
10
  export interface TextFieldContainerProps
11
- extends HTMLAttributes<HTMLDivElement>,
12
- TextFieldContainerOptions {
11
+ extends HTMLAttributes<HTMLDivElement>, TextFieldContainerOptions {
13
12
  /**
14
13
  * Set this to `true` if there is a floating label with the `TextField` or
15
14
  * `TextArea`.
@@ -8,6 +8,11 @@ const styles = bem("rmd-fieldset");
8
8
  export interface FieldsetClassNameOptions {
9
9
  className?: string;
10
10
 
11
+ /**
12
+ * @defaultValue `false`
13
+ */
14
+ fullWidth?: boolean;
15
+
11
16
  /**
12
17
  * Set this to `true` to enable the default browser styles for a fieldset.
13
18
  *
@@ -17,19 +22,29 @@ export interface FieldsetClassNameOptions {
17
22
  browserStyles?: boolean;
18
23
 
19
24
  /**
25
+ * @since 6.4.0
20
26
  * @defaultValue `false`
21
27
  */
22
- fullWidth?: boolean;
28
+ floatingLegend?: boolean;
23
29
  }
24
30
 
25
31
  /**
26
32
  * @since 6.0.0
27
33
  */
28
34
  export function fieldset(options: FieldsetClassNameOptions = {}): string {
29
- const { className, fullWidth, browserStyles = false } = options;
35
+ const {
36
+ className,
37
+ fullWidth,
38
+ browserStyles = false,
39
+ floatingLegend,
40
+ } = options;
30
41
 
31
42
  return cnb(
32
- styles({ unstyled: !browserStyles, "full-width": fullWidth }),
43
+ styles({
44
+ unstyled: !browserStyles,
45
+ "full-width": fullWidth,
46
+ "floating-legend": floatingLegend,
47
+ }),
33
48
  className
34
49
  );
35
50
  }
@@ -22,8 +22,10 @@ const styles = bem("rmd-input-toggle");
22
22
  export type InputToggleSize = "auto" | "small" | "dense" | "normal" | "large";
23
23
 
24
24
  /** @since 6.0.0 */
25
- export interface InputToggleClassNameOptions
26
- extends Omit<FormComponentStates, "readOnly"> {
25
+ export interface InputToggleClassNameOptions extends Omit<
26
+ FormComponentStates,
27
+ "readOnly"
28
+ > {
27
29
  className?: string;
28
30
  type: "checkbox" | "radio";
29
31
 
@@ -9,7 +9,7 @@ const styles = bem("rmd-label");
9
9
  /**
10
10
  * @since 6.0.0
11
11
  */
12
- export function label(options: LabelClassNameOptions): string {
12
+ export function label(options: LabelClassNameOptions = {}): string {
13
13
  const {
14
14
  className,
15
15
  gap,