@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
@@ -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"];
@@ -26,6 +26,7 @@ import {
26
26
  import { useEnsuredId } from "../useEnsuredId.js";
27
27
  import { useEnsuredRef } from "../useEnsuredRef.js";
28
28
  import { Listbox } from "./Listbox.js";
29
+ import { type OptionProps } from "./Option.js";
29
30
  import { SelectedOption } from "./SelectedOption.js";
30
31
  import {
31
32
  TextFieldContainer,
@@ -46,6 +47,41 @@ const noop = (): void => {
46
47
  // do nothing
47
48
  };
48
49
 
50
+ /**
51
+ * @since 6.5.0
52
+ */
53
+ export interface GetSelectedOptionChildrenOptions<
54
+ Value extends string = string,
55
+ > {
56
+ value: "" | Value;
57
+
58
+ /**
59
+ * The option will be undefined if there is no value or matching option.
60
+ */
61
+ option: OptionProps | undefined;
62
+
63
+ /**
64
+ * This is a pass-through of the {@link SelectProps.placeholder}
65
+ */
66
+ placeholder?: ReactNode;
67
+
68
+ /**
69
+ * This is a pass-through of the {@link SelectProps.selectedOptionProps}
70
+ */
71
+ children?: ReactNode;
72
+ }
73
+
74
+ /**
75
+ * @since 6.5.0
76
+ */
77
+ const defaultGetSelectedOptionChildren = (
78
+ options: GetSelectedOptionChildrenOptions
79
+ ): ReactNode => {
80
+ const { children, option, placeholder } = options;
81
+
82
+ return children ?? (option?.children || placeholder);
83
+ };
84
+
49
85
  /**
50
86
  * This is a convenience type for casting the `event.currentTarget.value` of a
51
87
  * `Select`'s change event to be union of available values.
@@ -95,7 +131,8 @@ export type SelectChangeEvent<Value extends string> =
95
131
  * @since 6.0.0 Rewritten with a new API.
96
132
  */
97
133
  export interface SelectProps<Value extends string>
98
- extends Omit<TextFieldContainerProps, "label">,
134
+ extends
135
+ Omit<TextFieldContainerProps, "label">,
99
136
  Pick<InputHTMLAttributes<HTMLInputElement>, "form" | "required">,
100
137
  UserAgentAutocompleteProps {
101
138
  /**
@@ -205,6 +242,14 @@ export interface SelectProps<Value extends string>
205
242
  */
206
243
  disableSelectedIcon?: boolean;
207
244
 
245
+ /**
246
+ * @since 6.5.0
247
+ * @defaultValue `({ children, option, placeholder }) => children ?? (option?.children || placeholder)`
248
+ */
249
+ getSelectedOptionChildren?: (
250
+ options: GetSelectedOptionChildrenOptions<Value>
251
+ ) => ReactNode;
252
+
208
253
  /**
209
254
  * This should be the available `Option`s for the select to choose from. It
210
255
  * can also contain `OptGroup` or any other elements but only clicking on an
@@ -265,6 +310,7 @@ export function Select<Value extends string>(
265
310
  label,
266
311
  labelProps = {},
267
312
  selectedOptionProps,
313
+ getSelectedOptionChildren = defaultGetSelectedOptionChildren,
268
314
  icon: propIcon,
269
315
  value,
270
316
  defaultValue,
@@ -350,10 +396,16 @@ export function Select<Value extends string>(
350
396
  >
351
397
  <SelectedOption
352
398
  option={currentOption}
353
- placeholder={placeholder}
354
399
  disableAddon={disableOptionAddon}
355
400
  {...selectedOptionProps}
356
- />
401
+ >
402
+ {getSelectedOptionChildren({
403
+ value: currentValue,
404
+ option: currentOption,
405
+ placeholder,
406
+ children: selectedOptionProps?.children,
407
+ })}
408
+ </SelectedOption>
357
409
  <input
358
410
  aria-hidden
359
411
  id={inputId}
@@ -1,5 +1,5 @@
1
1
  import { cnb } from "cnbuilder";
2
- import { type ReactElement, type ReactNode } from "react";
2
+ import { type ReactElement } from "react";
3
3
 
4
4
  import { Box, type BoxProps } from "../box/Box.js";
5
5
  import { cssUtils } from "../cssUtils.js";
@@ -12,7 +12,6 @@ import { textField } from "./textFieldStyles.js";
12
12
  */
13
13
  export interface SelectedOptionProps extends BoxProps {
14
14
  option: OptionProps | undefined;
15
- placeholder?: ReactNode;
16
15
  disableAddon: boolean;
17
16
  }
18
17
 
@@ -29,11 +28,10 @@ export function SelectedOption(props: SelectedOptionProps): ReactElement {
29
28
  className,
30
29
  disableWrap = true,
31
30
  disablePadding = true,
32
- placeholder,
33
31
  ...remaining
34
32
  } = props;
35
33
 
36
- let children = option?.children || placeholder;
34
+ let { children } = remaining;
37
35
  // when the children are a string or number, wrap it in additional span so
38
36
  // that overflow can be ellipsis-ed
39
37
  if (typeof children === "string" || typeof children === "number") {
@@ -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,
@@ -0,0 +1,132 @@
1
+ import { cnb } from "cnbuilder";
2
+
3
+ import { cssUtils } from "../cssUtils.js";
4
+ import { bem } from "../utils/bem.js";
5
+ import { getFormConfig } from "./formConfig.js";
6
+ import { label } from "./labelStyles.js";
7
+ import { type FormTheme, type LabelClassNameOptions } from "./types.js";
8
+
9
+ const styles = bem("rmd-legend");
10
+
11
+ /**
12
+ * @since 6.4.0
13
+ */
14
+ export type LegendLabelClassNameOptions = Pick<
15
+ LabelClassNameOptions,
16
+ "active" | "gap" | "error" | "stacked" | "disabled" | "reversed"
17
+ >;
18
+
19
+ /**
20
+ * @since 6.4.0
21
+ */
22
+ export interface LegendClassNameOptions extends LegendLabelClassNameOptions {
23
+ className?: string;
24
+
25
+ /**
26
+ * @defaultValue `false`
27
+ */
28
+ srOnly?: boolean;
29
+
30
+ /**
31
+ * Set this to `true` to make the `<legend>` have the styles of a floating label.
32
+ * This requires the parent `<fieldset>` to have the `floatingLegend` flag
33
+ * enabled.
34
+ *
35
+ * @defaultValue `false`
36
+ */
37
+ floating?: boolean;
38
+
39
+ /**
40
+ * This will only apply if {@link floating} is `true`.
41
+ *
42
+ * @see {@link FormTheme}
43
+ * @defaultValue `getFormConfig("theme")`
44
+ */
45
+ theme?: FormTheme;
46
+
47
+ /**
48
+ * This will only apply if {@link floating} is `true`.
49
+ *
50
+ * @see {@link LabelClassNameOptions.active}
51
+ * @defaultValue `false`
52
+ */
53
+ active?: boolean;
54
+
55
+ /**
56
+ * This will only apply if {@link floating} is `true`.
57
+ *
58
+ * @see {@link LabelClassNameOptions.gap}
59
+ * @defaultValue `false`
60
+ */
61
+ gap?: boolean;
62
+
63
+ /**
64
+ * This will only apply if {@link floating} is `true`.
65
+ *
66
+ * @see {@link LabelClassNameOptions.disabled}
67
+ * @defaultValue `false`
68
+ */
69
+ disabled?: boolean;
70
+
71
+ /**
72
+ * This will only apply if {@link floating} is `true`.
73
+ *
74
+ * @see {@link LabelClassNameOptions.dense}
75
+ * @defaultValue `false`
76
+ */
77
+ dense?: boolean;
78
+
79
+ /**
80
+ * This will only apply if {@link floating} is `true`.
81
+ *
82
+ * @see {@link LabelClassNameOptions.error}
83
+ * @defaultValue `false`
84
+ */
85
+ error?: boolean;
86
+
87
+ /**
88
+ * This will only apply if {@link floating} is `true`.
89
+ *
90
+ * @see {@link LabelClassNameOptions.stacked}
91
+ * @defaultValue `false`
92
+ */
93
+ stacked?: boolean;
94
+
95
+ /**
96
+ * This will only apply if {@link floating} is `true`.
97
+ *
98
+ * @see {@link LabelClassNameOptions.reversed}
99
+ * @defaultValue `false`
100
+ */
101
+ reversed?: boolean;
102
+ }
103
+
104
+ /**
105
+ * @since 6.4.0
106
+ */
107
+ export function legend(options: LegendClassNameOptions = {}): string {
108
+ const {
109
+ className,
110
+ srOnly,
111
+ floating,
112
+ theme = getFormConfig("theme"),
113
+ ...labelOptions
114
+ } = options;
115
+
116
+ return cnb(
117
+ styles({
118
+ floating,
119
+ "floating-filled": floating && theme === "filled",
120
+ "floating-underline": floating && theme === "underline",
121
+ "floating-outline": floating && theme === "outline",
122
+ }),
123
+ floating &&
124
+ label({
125
+ ...labelOptions,
126
+ floating: true,
127
+ floatingActive: true,
128
+ }),
129
+ cssUtils({ srOnly }),
130
+ className
131
+ );
132
+ }
@@ -6,8 +6,9 @@ import { type MenuItemProps } from "../menu/MenuItem.js";
6
6
  * @internal
7
7
  * @since 6.0.0
8
8
  */
9
- export interface SelectOption<Value extends string | number = string>
10
- extends MenuItemProps {
9
+ export interface SelectOption<
10
+ Value extends string | number = string,
11
+ > extends MenuItemProps {
11
12
  value: Value;
12
13
  }
13
14
 
@@ -8,8 +8,7 @@ const styles = bem("rmd-text-field-container");
8
8
 
9
9
  /** @since 6.0.0 */
10
10
  export interface TextFieldContainerClassNameOptions
11
- extends FormThemeOptions,
12
- FormComponentStates {
11
+ extends FormThemeOptions, FormComponentStates {
13
12
  className?: string;
14
13
 
15
14
  /** @defaultValue `false` */
package/src/form/types.ts CHANGED
@@ -31,15 +31,27 @@ declare module "react" {
31
31
  "--rmd-text-field-addon-spacing"?: string | number;
32
32
  "--rmd-text-field-addon-margin-top"?: string | number;
33
33
  "--rmd-text-field-addon-left-offset"?: string | number;
34
+ /** @since 6.4.0 */
35
+ "--rmd-text-field-base-height"?: string | number;
34
36
  "--rmd-text-field-height"?: string | number;
37
+ /** @since 6.4.0 */
38
+ "--rmd-text-field-dense-height"?: string | number;
39
+ /** @since 6.4.0 */
40
+ "--rmd-text-field-label-height"?: string | number;
41
+ /** @since 6.4.0 */
42
+ "--rmd-text-field-dense-label-height"?: string | number;
35
43
  "--rmd-text-field-padding-left"?: string | number;
36
44
  "--rmd-text-field-padding-right"?: string | number;
37
45
  "--rmd-text-field-padding-top"?: string | number;
38
46
  "--rmd-text-field-border-color"?: string;
47
+ /** @since 6.4.0 */
48
+ "--rmd-text-field-border-radius"?: string | number;
39
49
  "--rmd-text-field-hover-border-color"?: string;
40
50
  "--rmd-text-field-filled-color"?: string;
41
51
  "--rmd-text-field-filled-padding"?: string | number;
42
52
  "--rmd-text-field-outlined-padding"?: string | number;
53
+ /** @since 6.4.0 */
54
+ "--rmd-text-field-outlined-border-radius"?: string | number;
43
55
  "--rmd-text-field-underlined-padding"?: string | number;
44
56
  }
45
57
  }
@@ -102,20 +114,30 @@ export interface FormConfiguration extends Required<FormThemeOptions> {
102
114
  }
103
115
 
104
116
  /**
105
- * @since 6.0.0
117
+ * @since 6.4.0
106
118
  */
107
- export interface FormComponentStates {
119
+ export interface InteractableFormComponentStates {
108
120
  /** @defaultValue `false` */
109
- error?: boolean;
121
+ disabled?: boolean;
110
122
 
111
123
  /** @defaultValue `false` */
112
- active?: boolean;
124
+ readOnly?: boolean;
125
+ }
113
126
 
127
+ /**
128
+ * @since 6.4.0
129
+ */
130
+ export interface EditableFormComponentStates extends InteractableFormComponentStates {
114
131
  /** @defaultValue `false` */
115
- disabled?: boolean;
132
+ error?: boolean;
133
+ }
116
134
 
135
+ /**
136
+ * @since 6.0.0
137
+ */
138
+ export interface FormComponentStates extends EditableFormComponentStates {
117
139
  /** @defaultValue `false` */
118
- readOnly?: boolean;
140
+ active?: boolean;
119
141
  }
120
142
 
121
143
  /**
@@ -255,7 +277,8 @@ export interface FormMessageClassNameOptions {
255
277
  }
256
278
 
257
279
  export interface FormMessageProps
258
- extends Omit<HTMLAttributes<HTMLDivElement>, "minLength" | "maxLength">,
280
+ extends
281
+ Omit<HTMLAttributes<HTMLDivElement>, "minLength" | "maxLength">,
259
282
  FormMessageClassNameOptions {
260
283
  /**
261
284
  * If this component is acting as a form-level error message handler, the role
@@ -359,8 +382,7 @@ export interface FormMessageInputLengthCounterProps {
359
382
  }
360
383
 
361
384
  export interface FormMessageWithCounterProps
362
- extends FormMessageProps,
363
- FormMessageInputLengthCounterProps {}
385
+ extends FormMessageProps, FormMessageInputLengthCounterProps {}
364
386
 
365
387
  /**
366
388
  * @since 6.0.0
@@ -477,14 +499,12 @@ export interface LabelClassNameOptions {
477
499
  }
478
500
 
479
501
  export interface LabelProps
480
- extends LabelHTMLAttributes<HTMLLabelElement>,
481
- LabelClassNameOptions {}
502
+ extends LabelHTMLAttributes<HTMLLabelElement>, LabelClassNameOptions {}
482
503
 
483
504
  /**
484
505
  * @since 6.0.0
485
506
  */
486
- export interface ConfigurableTextFieldAddonProps
487
- extends HTMLAttributes<HTMLSpanElement> {
507
+ export interface ConfigurableTextFieldAddonProps extends HTMLAttributes<HTMLSpanElement> {
488
508
  /**
489
509
  * Boolean if the addon should be presentational only and prevent pointer
490
510
  * events.
@@ -519,8 +539,7 @@ export interface TextFieldAddonProps extends ConfigurableTextFieldAddonProps {
519
539
  * `leftAddonProps` / `rightAddonProps`. Removed `stretch`
520
540
  */
521
541
  export interface TextFieldContainerOptions
522
- extends FormThemeOptions,
523
- FormComponentStates {
542
+ extends FormThemeOptions, FormComponentStates {
524
543
  /**
525
544
  * Set this to `true` to enable the dense spec which reduces the height.
526
545
  *
@@ -578,8 +597,7 @@ export interface TextFieldContainerOptions
578
597
  }
579
598
 
580
599
  export interface FormFieldOptions
581
- extends TextFieldContainerOptions,
582
- FormMessageContainerExtension {
600
+ extends TextFieldContainerOptions, FormMessageContainerExtension {
583
601
  /**
584
602
  * An optional floating label to use with the text field. A label is generally
585
603
  * recommended for accessibility, but can be omitted if an `aria-label` or
@@ -70,8 +70,9 @@ export interface CheckboxGroupImplementation<V extends string> {
70
70
  }
71
71
 
72
72
  /** @since 6.0.0 */
73
- export interface IndeterminateCheckboxGroupImplementation<V extends string>
74
- extends CheckboxGroupImplementation<V> {
73
+ export interface IndeterminateCheckboxGroupImplementation<
74
+ V extends string,
75
+ > extends CheckboxGroupImplementation<V> {
75
76
  getIndeterminateProps: () => {
76
77
  "aria-checked": "mixed" | undefined;
77
78
  name: string;
@@ -141,7 +141,9 @@ export interface ComboboxVisibilityOptions {
141
141
  export interface ConfigurableComboboxOptions<
142
142
  ComboboxEl extends HTMLElement = HTMLInputElement,
143
143
  PopupEl extends HTMLElement = HTMLElement,
144
- > extends ComboboxKeyboardMovementOptions<ComboboxEl>,
144
+ >
145
+ extends
146
+ ComboboxKeyboardMovementOptions<ComboboxEl>,
145
147
  ComboboxVisibilityOptions {
146
148
  /**
147
149
  * This is the {@link InputHTMLAttributes.form} attribute and is used to
@@ -259,7 +261,9 @@ export type ConfigurableComboboxMenuProps = Partial<
259
261
  */
260
262
  export interface ProvidedComboboxMenuProps<
261
263
  PopupEl extends HTMLElement = HTMLDivElement,
262
- > extends Required<ComboboxTransitionCallbacks>,
264
+ >
265
+ extends
266
+ Required<ComboboxTransitionCallbacks>,
263
267
  ComboboxWidgetPopupProps<PopupEl> {
264
268
  visible: boolean;
265
269
  onRequestClose: () => void;
@@ -276,7 +280,8 @@ export interface ProvidedComboboxMenuProps<
276
280
  * @since 6.0.0
277
281
  */
278
282
  export interface ComboboxMenuProps<PopupEl extends HTMLElement = HTMLDivElement>
279
- extends Omit<ConfigurableComboboxMenuProps, keyof ProvidedComboboxMenuProps>,
283
+ extends
284
+ Omit<ConfigurableComboboxMenuProps, keyof ProvidedComboboxMenuProps>,
280
285
  ProvidedComboboxMenuProps<PopupEl> {}
281
286
 
282
287
  /**