@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.
- package/dist/CoreProviders.d.ts +1 -0
- package/dist/CoreProviders.js.map +1 -1
- package/dist/_a11y.scss +3 -1
- package/dist/_base.scss +3 -0
- package/dist/_box-shadows.scss +20 -12
- package/dist/_core.scss +2 -1
- package/dist/_utils.scss +32 -10
- package/dist/app-bar/AppBar.js.map +1 -1
- package/dist/app-bar/AppBarTitle.js.map +1 -1
- package/dist/app-bar/_app-bar.scss +3 -3
- package/dist/autocomplete/AutocompleteListboxChildren.js.map +1 -1
- package/dist/autocomplete/_autocomplete.scss +20 -16
- package/dist/autocomplete/types.js.map +1 -1
- package/dist/autocomplete/utils.js.map +1 -1
- package/dist/avatar/Avatar.js.map +1 -1
- package/dist/avatar/_avatar.scss +2 -1
- package/dist/button/Button.js.map +1 -1
- package/dist/button/FloatingActionButton.js.map +1 -1
- package/dist/button/_button.scss +9 -5
- package/dist/card/Card.js.map +1 -1
- package/dist/card/CardContent.js.map +1 -1
- package/dist/card/ClickableCard.js.map +1 -1
- package/dist/card/_card.scss +6 -6
- package/dist/chip/Chip.js.map +1 -1
- package/dist/chip/_chip.scss +6 -6
- package/dist/datetime/NativeDateField.js.map +1 -1
- package/dist/datetime/NativeTimeField.js.map +1 -1
- package/dist/datetime/useDateField.js.map +1 -1
- package/dist/datetime/useTimeField.js.map +1 -1
- package/dist/dialog/Dialog.js.map +1 -1
- package/dist/dialog/DialogContainer.js.map +1 -1
- package/dist/dialog/DialogContent.js.map +1 -1
- package/dist/dialog/DialogFooter.js.map +1 -1
- package/dist/dialog/_dialog.scss +6 -6
- package/dist/divider/Divider.js.map +1 -1
- package/dist/divider/_divider.scss +6 -2
- package/dist/draggable/useDraggable.js.map +1 -1
- package/dist/draggable/utils.js.map +1 -1
- package/dist/expansion-panel/ExpansionPanelHeader.js.map +1 -1
- package/dist/files/FileInput.js.map +1 -1
- package/dist/files/useFileUpload.js.map +1 -1
- package/dist/files/validation.js.map +1 -1
- package/dist/focus/useFocusContainer.js.map +1 -1
- package/dist/form/Fieldset.d.ts +19 -0
- package/dist/form/Fieldset.js +22 -2
- package/dist/form/Fieldset.js.map +1 -1
- package/dist/form/FormMessageContainer.js.map +1 -1
- package/dist/form/FormMessageCounter.js.map +1 -1
- package/dist/form/InputToggle.js.map +1 -1
- package/dist/form/Legend.d.ts +27 -5
- package/dist/form/Legend.js +39 -6
- package/dist/form/Legend.js.map +1 -1
- package/dist/form/Listbox.js.map +1 -1
- package/dist/form/ListboxProvider.js.map +1 -1
- package/dist/form/NativeSelect.js.map +1 -1
- package/dist/form/Password.js.map +1 -1
- package/dist/form/ResizingTextAreaWrapper.js.map +1 -1
- package/dist/form/Select.d.ts +24 -0
- package/dist/form/Select.js +14 -3
- package/dist/form/Select.js.map +1 -1
- package/dist/form/SelectedOption.d.ts +1 -2
- package/dist/form/SelectedOption.js +2 -2
- package/dist/form/SelectedOption.js.map +1 -1
- package/dist/form/Slider.js.map +1 -1
- package/dist/form/SliderContainer.js.map +1 -1
- package/dist/form/SliderThumb.js.map +1 -1
- package/dist/form/SliderTrack.js.map +1 -1
- package/dist/form/SliderValueMarks.js.map +1 -1
- package/dist/form/Switch.js.map +1 -1
- package/dist/form/TextArea.js.map +1 -1
- package/dist/form/TextField.js.map +1 -1
- package/dist/form/TextFieldContainer.js.map +1 -1
- package/dist/form/_fieldset.scss +7 -0
- package/dist/form/_input-toggle.scss +6 -5
- package/dist/form/_label.scss +2 -2
- package/dist/form/_legend.scss +77 -0
- package/dist/form/_slider.scss +7 -5
- package/dist/form/_switch.scss +7 -5
- package/dist/form/_text-field.scss +52 -15
- package/dist/form/defaultGetSelectedOptionChildren.d.ts +1 -0
- package/dist/form/fieldsetStyles.d.ts +6 -1
- package/dist/form/fieldsetStyles.js +3 -2
- package/dist/form/fieldsetStyles.js.map +1 -1
- package/dist/form/getSelectedOptionChildren.d.ts +1 -0
- package/dist/form/inputToggleStyles.js.map +1 -1
- package/dist/form/labelStyles.d.ts +1 -1
- package/dist/form/labelStyles.js +1 -1
- package/dist/form/labelStyles.js.map +1 -1
- package/dist/form/legendStyles.d.ts +83 -0
- package/dist/form/legendStyles.js +25 -0
- package/dist/form/legendStyles.js.map +1 -0
- package/dist/form/selectUtils.js.map +1 -1
- package/dist/form/textFieldContainerStyles.js.map +1 -1
- package/dist/form/types.d.ts +28 -6
- package/dist/form/types.js.map +1 -1
- package/dist/form/useCheckboxGroup.js.map +1 -1
- package/dist/form/useCombobox.js.map +1 -1
- package/dist/form/useNumberField.js +16 -19
- package/dist/form/useNumberField.js.map +1 -1
- package/dist/form/useRangeSlider.js.map +1 -1
- package/dist/form/useSlider.js.map +1 -1
- package/dist/form/useTextField.js.map +1 -1
- package/dist/hoverMode/useHoverMode.js.map +1 -1
- package/dist/icon/FontIcon.js.map +1 -1
- package/dist/icon/IconRotator.js.map +1 -1
- package/dist/icon/MaterialIcon.js.map +1 -1
- package/dist/icon/MaterialSymbol.js.map +1 -1
- package/dist/icon/SVGIcon.js.map +1 -1
- package/dist/icon/config.d.ts +0 -1
- package/dist/icon/config.js +10 -7
- package/dist/icon/config.js.map +1 -1
- package/dist/icon/materialConfig.js.map +1 -1
- package/dist/icon/styles.js.map +1 -1
- package/dist/interaction/UserInteractionModeProvider.js +6 -4
- package/dist/interaction/UserInteractionModeProvider.js.map +1 -1
- package/dist/interaction/_interaction.scss +5 -3
- package/dist/interaction/types.js.map +1 -1
- package/dist/interaction/useElementInteraction.js.map +1 -1
- package/dist/layout/LayoutAppBar.d.ts +6 -6
- package/dist/layout/LayoutAppBar.js +6 -6
- package/dist/layout/LayoutAppBar.js.map +1 -1
- package/dist/layout/LayoutNav.js.map +1 -1
- package/dist/layout/LayoutWindowSplitter.js.map +1 -1
- package/dist/layout/Main.js.map +1 -1
- package/dist/layout/useExpandableLayout.js +43 -0
- package/dist/layout/useExpandableLayout.js.map +1 -1
- package/dist/layout/useHorizontalLayoutTransition.js.map +1 -1
- package/dist/layout/useLayoutTree.js.map +1 -1
- package/dist/layout/useLayoutWindowSplitter.js.map +1 -1
- package/dist/layout/useResizableLayout.js.map +1 -1
- package/dist/link/Link.js.map +1 -1
- package/dist/link/SkipToMainContent.js +19 -21
- package/dist/link/SkipToMainContent.js.map +1 -1
- package/dist/list/List.js.map +1 -1
- package/dist/list/ListItem.js.map +1 -1
- package/dist/list/ListItemAddon.js.map +1 -1
- package/dist/list/ListItemLink.js.map +1 -1
- package/dist/list/ListSubheader.js.map +1 -1
- package/dist/list/getListItemHeight.js.map +1 -1
- package/dist/list/listItemStyles.js.map +1 -1
- package/dist/list/types.js.map +1 -1
- package/dist/media-queries/AppSizeProvider.d.ts +2 -0
- package/dist/media-queries/AppSizeProvider.js +3 -2
- package/dist/media-queries/AppSizeProvider.js.map +1 -1
- package/dist/media-queries/appSize.d.ts +3 -0
- package/dist/media-queries/appSize.js +3 -1
- package/dist/media-queries/appSize.js.map +1 -1
- package/dist/media-queries/config.d.ts +11 -0
- package/dist/media-queries/config.js +26 -0
- package/dist/media-queries/config.js.map +1 -0
- package/dist/menu/DropdownMenu.js.map +1 -1
- package/dist/menu/Menu.js.map +1 -1
- package/dist/menu/MenuItemButton.js.map +1 -1
- package/dist/menu/MenuItemFileInput.js.map +1 -1
- package/dist/menu/MenuItemInputToggle.js.map +1 -1
- package/dist/menu/MenuItemSeparator.js.map +1 -1
- package/dist/menu/MenuVisibilityProvider.js.map +1 -1
- package/dist/menu/MenuWidget.js.map +1 -1
- package/dist/menu/useContextMenu.js.map +1 -1
- package/dist/movement/types.d.ts +28 -3
- package/dist/movement/types.js.map +1 -1
- package/dist/movement/useKeyboardMovementProvider.js +96 -47
- package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
- package/dist/navigation/CollapsibleNavGroup.js.map +1 -1
- package/dist/navigation/NavItem.js.map +1 -1
- package/dist/navigation/NavItemButton.js.map +1 -1
- package/dist/navigation/NavItemLink.js.map +1 -1
- package/dist/navigation/getTableOfContentsHeadings.js.map +1 -1
- package/dist/navigation/types.js.map +1 -1
- package/dist/overlay/Overlay.js.map +1 -1
- package/dist/positioning/createHorizontalPosition.js.map +1 -1
- package/dist/positioning/createVerticalPosition.js.map +1 -1
- package/dist/positioning/useFixedPositioning.js.map +1 -1
- package/dist/progress/CircularProgress.js.map +1 -1
- package/dist/progress/LinearProgress.js.map +1 -1
- package/dist/progress/linearProgressStyles.js.map +1 -1
- package/dist/responsive-item/ResponsiveItem.js.map +1 -1
- package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
- package/dist/searching/caseInsensitive.js.map +1 -1
- package/dist/segmented-button/SegmentedButton.js.map +1 -1
- package/dist/segmented-button/SegmentedButtonContainer.js.map +1 -1
- package/dist/segmented-button/segmentedButtonStyles.js.map +1 -1
- package/dist/sheet/Sheet.js.map +1 -1
- package/dist/snackbar/Toast.js.map +1 -1
- package/dist/snackbar/_snackbar.scss +3 -3
- package/dist/spinbutton/SpinButton.d.ts +16 -0
- package/dist/spinbutton/SpinButton.js +55 -0
- package/dist/spinbutton/SpinButton.js.map +1 -0
- package/dist/spinbutton/SpinButtonGroupProvider.d.ts +17 -0
- package/dist/spinbutton/SpinButtonGroupProvider.js +19 -0
- package/dist/spinbutton/SpinButtonGroupProvider.js.map +1 -0
- package/dist/spinbutton/defaults.d.ts +9 -0
- package/dist/spinbutton/defaults.js +25 -0
- package/dist/spinbutton/defaults.js.map +1 -0
- package/dist/spinbutton/types.d.ts +324 -0
- package/dist/spinbutton/types.js +5 -0
- package/dist/spinbutton/types.js.map +1 -0
- package/dist/spinbutton/useSpinButton.d.ts +5 -0
- package/dist/spinbutton/useSpinButton.js +260 -0
- package/dist/spinbutton/useSpinButton.js.map +1 -0
- package/dist/spinbutton/useSpinButtonGroupProvider.d.ts +27 -0
- package/dist/spinbutton/useSpinButtonGroupProvider.js +49 -0
- package/dist/spinbutton/useSpinButtonGroupProvider.js.map +1 -0
- package/dist/spinbutton/utils/deselectNode.d.ts +5 -0
- package/dist/spinbutton/utils/deselectNode.js +17 -0
- package/dist/spinbutton/utils/deselectNode.js.map +1 -0
- package/dist/spinbutton/utils/resolveInputEvent.d.ts +30 -0
- package/dist/spinbutton/utils/resolveInputEvent.js +53 -0
- package/dist/spinbutton/utils/resolveInputEvent.js.map +1 -0
- package/dist/spinbutton/utils/selectNode.d.ts +5 -0
- package/dist/spinbutton/utils/selectNode.js +15 -0
- package/dist/spinbutton/utils/selectNode.js.map +1 -0
- package/dist/table/StickyTableSection.js.map +1 -1
- package/dist/table/Table.js.map +1 -1
- package/dist/table/TableBody.js.map +1 -1
- package/dist/table/TableCellContent.js.map +1 -1
- package/dist/table/TableCheckbox.js.map +1 -1
- package/dist/table/TableFooter.js.map +1 -1
- package/dist/table/TableHeader.js.map +1 -1
- package/dist/table/TableRadio.js.map +1 -1
- package/dist/table/TableRow.js.map +1 -1
- package/dist/table/useStickyTableSection.js.map +1 -1
- package/dist/tabs/SimpleTabPanel.js.map +1 -1
- package/dist/tabs/SimpleTabPanels.js.map +1 -1
- package/dist/tabs/Tab.js.map +1 -1
- package/dist/tabs/TabList.js.map +1 -1
- package/dist/tabs/TabListScrollButton.js.map +1 -1
- package/dist/tabs/_tabs.scss +5 -6
- package/dist/tabs/useMaxTabPanelHeight.js.map +1 -1
- package/dist/test-utils/data-testid.js.map +1 -1
- package/dist/test-utils/mocks/match-media.js +5 -5
- package/dist/test-utils/mocks/match-media.js.map +1 -1
- package/dist/test-utils/vitest/timers.d.ts +1 -1
- package/dist/test-utils/vitest/timers.js +1 -1
- package/dist/test-utils/vitest/timers.js.map +1 -1
- package/dist/theme/_a11y.scss +3 -1
- package/dist/theme/_theme.scss +16 -12
- package/dist/tooltip/Tooltip.js.map +1 -1
- package/dist/tooltip/TooltipHoverModeProvider.js.map +1 -1
- package/dist/tooltip/useTooltip.js.map +1 -1
- package/dist/transition/CSSTransition.js.map +1 -1
- package/dist/transition/Collapse.js.map +1 -1
- package/dist/transition/CrossFade.js.map +1 -1
- package/dist/transition/ScaleTransition.js.map +1 -1
- package/dist/transition/SkeletonPlaceholder.js.map +1 -1
- package/dist/transition/Slide.js.map +1 -1
- package/dist/transition/SlideContainer.js.map +1 -1
- package/dist/transition/types.js.map +1 -1
- package/dist/transition/useCollapseTransition.js.map +1 -1
- package/dist/transition/useCrossFadeTransition.js.map +1 -1
- package/dist/transition/useMaxWidthTransition.js.map +1 -1
- package/dist/transition/useScaleTransition.js.map +1 -1
- package/dist/transition/useSkeletonPlaceholder.js.map +1 -1
- package/dist/tree/Tree.js.map +1 -1
- package/dist/tree/TreeItem.js.map +1 -1
- package/dist/tree/TreeProvider.js.map +1 -1
- package/dist/tree/styles.js.map +1 -1
- package/dist/tree/types.js.map +1 -1
- package/dist/tree/useTreeMovement.js.map +1 -1
- package/dist/typography/HighlightTextMark.js.map +1 -1
- package/dist/typography/Mark.js.map +1 -1
- package/dist/typography/TextContainer.js.map +1 -1
- package/dist/typography/Typography.js.map +1 -1
- package/dist/typography/_typography.scss +0 -1
- package/dist/useElementSize.js.map +1 -1
- package/dist/useIntersectionObserver.js.map +1 -1
- package/dist/useMutationObserver.js.map +1 -1
- package/dist/useWindowSize.js.map +1 -1
- package/dist/utils/getNumberOfDigits.d.ts +7 -0
- package/dist/utils/getNumberOfDigits.js +11 -0
- package/dist/utils/getNumberOfDigits.js.map +1 -0
- package/dist/utils/nearest.js +2 -1
- package/dist/utils/nearest.js.map +1 -1
- package/dist/utils/useDevEffect.d.ts +7 -0
- package/dist/utils/useDevEffect.js +8 -0
- package/dist/utils/useDevEffect.js.map +1 -0
- package/dist/window-splitter/WindowSplitter.js +3 -2
- package/dist/window-splitter/WindowSplitter.js.map +1 -1
- package/dist/window-splitter/_window-splitter.scss +65 -19
- package/dist/window-splitter/styles.d.ts +9 -0
- package/dist/window-splitter/styles.js +3 -2
- package/dist/window-splitter/styles.js.map +1 -1
- package/dist/window-splitter/useWindowSplitter.js.map +1 -1
- package/package.json +38 -30
- package/src/CoreProviders.tsx +1 -0
- package/src/app-bar/AppBar.tsx +1 -2
- package/src/app-bar/AppBarTitle.tsx +1 -2
- package/src/autocomplete/AutocompleteListboxChildren.tsx +3 -1
- package/src/autocomplete/types.ts +24 -19
- package/src/autocomplete/utils.ts +9 -6
- package/src/avatar/Avatar.tsx +2 -1
- package/src/button/Button.tsx +2 -1
- package/src/button/FloatingActionButton.tsx +2 -1
- package/src/card/Card.tsx +2 -1
- package/src/card/CardContent.tsx +1 -2
- package/src/card/ClickableCard.tsx +1 -2
- package/src/chip/Chip.tsx +2 -1
- package/src/datetime/NativeDateField.tsx +2 -1
- package/src/datetime/NativeTimeField.tsx +2 -1
- package/src/datetime/useDateField.ts +13 -8
- package/src/datetime/useTimeField.ts +13 -8
- package/src/dialog/Dialog.tsx +2 -1
- package/src/dialog/DialogContainer.tsx +1 -2
- package/src/dialog/DialogContent.tsx +1 -2
- package/src/dialog/DialogFooter.tsx +1 -2
- package/src/divider/Divider.tsx +1 -2
- package/src/draggable/useDraggable.ts +4 -4
- package/src/draggable/utils.ts +4 -2
- package/src/expansion-panel/ExpansionPanelHeader.tsx +1 -2
- package/src/files/FileInput.tsx +2 -1
- package/src/files/useFileUpload.ts +6 -6
- package/src/files/validation.ts +1 -2
- package/src/focus/useFocusContainer.ts +4 -4
- package/src/form/Fieldset.tsx +25 -3
- package/src/form/FormMessageContainer.tsx +1 -2
- package/src/form/FormMessageCounter.tsx +1 -2
- package/src/form/InputToggle.tsx +3 -3
- package/src/form/Legend.tsx +55 -10
- package/src/form/Listbox.tsx +1 -2
- package/src/form/ListboxProvider.ts +3 -2
- package/src/form/NativeSelect.tsx +2 -1
- package/src/form/Password.tsx +4 -2
- package/src/form/ResizingTextAreaWrapper.tsx +1 -2
- package/src/form/Select.tsx +55 -3
- package/src/form/SelectedOption.tsx +2 -4
- package/src/form/Slider.tsx +2 -1
- package/src/form/SliderContainer.tsx +1 -2
- package/src/form/SliderThumb.tsx +6 -3
- package/src/form/SliderTrack.tsx +2 -1
- package/src/form/SliderValueMarks.tsx +1 -2
- package/src/form/Switch.tsx +2 -1
- package/src/form/TextArea.tsx +1 -2
- package/src/form/TextField.tsx +2 -1
- package/src/form/TextFieldContainer.tsx +1 -2
- package/src/form/fieldsetStyles.ts +18 -3
- package/src/form/inputToggleStyles.ts +4 -2
- package/src/form/labelStyles.ts +1 -1
- package/src/form/legendStyles.ts +132 -0
- package/src/form/selectUtils.ts +3 -2
- package/src/form/textFieldContainerStyles.ts +1 -2
- package/src/form/types.ts +35 -17
- package/src/form/useCheckboxGroup.ts +3 -2
- package/src/form/useCombobox.ts +8 -3
- package/src/form/useNumberField.ts +36 -35
- package/src/form/useRangeSlider.ts +1 -2
- package/src/form/useSlider.ts +1 -2
- package/src/form/useTextField.ts +8 -3
- package/src/hoverMode/useHoverMode.ts +4 -8
- package/src/icon/FontIcon.tsx +1 -2
- package/src/icon/IconRotator.tsx +1 -2
- package/src/icon/MaterialIcon.tsx +2 -1
- package/src/icon/MaterialSymbol.tsx +2 -1
- package/src/icon/SVGIcon.tsx +1 -2
- package/src/icon/config.tsx +10 -7
- package/src/icon/materialConfig.ts +1 -2
- package/src/icon/styles.ts +1 -2
- package/src/interaction/UserInteractionModeProvider.tsx +9 -4
- package/src/interaction/types.ts +1 -2
- package/src/interaction/useElementInteraction.tsx +3 -2
- package/src/layout/LayoutAppBar.tsx +6 -6
- package/src/layout/LayoutNav.tsx +2 -1
- package/src/layout/LayoutWindowSplitter.tsx +2 -1
- package/src/layout/Main.tsx +1 -2
- package/src/layout/useExpandableLayout.ts +63 -5
- package/src/layout/useHorizontalLayoutTransition.ts +1 -2
- package/src/layout/useLayoutTree.ts +2 -2
- package/src/layout/useLayoutWindowSplitter.ts +6 -6
- package/src/layout/useResizableLayout.ts +3 -6
- package/src/link/Link.tsx +1 -2
- package/src/link/SkipToMainContent.tsx +20 -23
- package/src/list/List.tsx +1 -2
- package/src/list/ListItem.tsx +2 -1
- package/src/list/ListItemAddon.tsx +2 -1
- package/src/list/ListItemLink.tsx +2 -1
- package/src/list/ListSubheader.tsx +1 -2
- package/src/list/getListItemHeight.ts +8 -9
- package/src/list/listItemStyles.ts +1 -2
- package/src/list/types.ts +1 -2
- package/src/media-queries/AppSizeProvider.tsx +8 -10
- package/src/media-queries/appSize.ts +3 -0
- package/src/media-queries/config.ts +41 -0
- package/src/menu/DropdownMenu.tsx +4 -5
- package/src/menu/Menu.tsx +2 -1
- package/src/menu/MenuItemButton.tsx +1 -2
- package/src/menu/MenuItemFileInput.tsx +2 -1
- package/src/menu/MenuItemInputToggle.tsx +3 -3
- package/src/menu/MenuItemSeparator.tsx +2 -1
- package/src/menu/MenuVisibilityProvider.tsx +4 -2
- package/src/menu/MenuWidget.tsx +1 -2
- package/src/menu/useContextMenu.ts +4 -2
- package/src/movement/types.ts +52 -13
- package/src/movement/useKeyboardMovementProvider.ts +77 -38
- package/src/navigation/CollapsibleNavGroup.tsx +1 -2
- package/src/navigation/NavItem.tsx +1 -2
- package/src/navigation/NavItemButton.tsx +2 -1
- package/src/navigation/NavItemLink.tsx +2 -1
- package/src/navigation/getTableOfContentsHeadings.ts +1 -2
- package/src/navigation/types.ts +1 -2
- package/src/overlay/Overlay.tsx +2 -1
- package/src/positioning/createHorizontalPosition.ts +10 -12
- package/src/positioning/createVerticalPosition.ts +10 -11
- package/src/positioning/useFixedPositioning.ts +6 -3
- package/src/progress/CircularProgress.tsx +2 -1
- package/src/progress/LinearProgress.tsx +2 -1
- package/src/progress/linearProgressStyles.ts +1 -2
- package/src/responsive-item/ResponsiveItem.tsx +1 -2
- package/src/responsive-item/ResponsiveItemOverlay.tsx +2 -1
- package/src/searching/caseInsensitive.ts +2 -4
- package/src/segmented-button/SegmentedButton.tsx +2 -1
- package/src/segmented-button/SegmentedButtonContainer.tsx +2 -1
- package/src/segmented-button/segmentedButtonStyles.ts +1 -2
- package/src/sheet/Sheet.tsx +1 -2
- package/src/snackbar/Toast.tsx +2 -1
- package/src/spinbutton/SpinButton.tsx +98 -0
- package/src/spinbutton/SpinButtonGroupProvider.tsx +32 -0
- package/src/spinbutton/defaults.ts +45 -0
- package/src/spinbutton/types.ts +413 -0
- package/src/spinbutton/useSpinButton.ts +311 -0
- package/src/spinbutton/useSpinButtonGroupProvider.ts +104 -0
- package/src/spinbutton/utils/deselectNode.ts +17 -0
- package/src/spinbutton/utils/resolveInputEvent.ts +112 -0
- package/src/spinbutton/utils/selectNode.ts +15 -0
- package/src/table/StickyTableSection.tsx +2 -1
- package/src/table/Table.tsx +1 -2
- package/src/table/TableBody.tsx +2 -1
- package/src/table/TableCellContent.tsx +1 -2
- package/src/table/TableCheckbox.tsx +1 -2
- package/src/table/TableFooter.tsx +1 -2
- package/src/table/TableHeader.tsx +1 -2
- package/src/table/TableRadio.tsx +1 -2
- package/src/table/TableRow.tsx +1 -2
- package/src/table/useStickyTableSection.tsx +1 -2
- package/src/tabs/SimpleTabPanel.tsx +2 -1
- package/src/tabs/SimpleTabPanels.tsx +2 -1
- package/src/tabs/Tab.tsx +3 -6
- package/src/tabs/TabList.tsx +2 -1
- package/src/tabs/TabListScrollButton.tsx +1 -2
- package/src/tabs/useMaxTabPanelHeight.ts +7 -4
- package/src/test-utils/data-testid.ts +1 -2
- package/src/test-utils/mocks/match-media.ts +5 -10
- package/src/test-utils/vitest/timers.ts +1 -1
- package/src/tooltip/Tooltip.tsx +2 -1
- package/src/tooltip/TooltipHoverModeProvider.tsx +1 -2
- package/src/tooltip/useTooltip.ts +9 -5
- package/src/transition/CSSTransition.tsx +2 -1
- package/src/transition/Collapse.tsx +4 -2
- package/src/transition/CrossFade.tsx +2 -1
- package/src/transition/ScaleTransition.tsx +2 -1
- package/src/transition/SkeletonPlaceholder.tsx +1 -2
- package/src/transition/Slide.tsx +2 -1
- package/src/transition/SlideContainer.tsx +1 -2
- package/src/transition/types.ts +15 -16
- package/src/transition/useCollapseTransition.ts +6 -5
- package/src/transition/useCrossFadeTransition.ts +3 -2
- package/src/transition/useMaxWidthTransition.ts +1 -2
- package/src/transition/useScaleTransition.ts +3 -2
- package/src/transition/useSkeletonPlaceholder.ts +1 -2
- package/src/tree/Tree.tsx +2 -1
- package/src/tree/TreeItem.tsx +2 -1
- package/src/tree/TreeProvider.tsx +4 -4
- package/src/tree/styles.ts +1 -2
- package/src/tree/types.ts +1 -2
- package/src/tree/useTreeMovement.ts +1 -2
- package/src/typography/HighlightTextMark.tsx +1 -2
- package/src/typography/Mark.tsx +1 -2
- package/src/typography/TextContainer.tsx +1 -2
- package/src/typography/Typography.tsx +1 -2
- package/src/useElementSize.ts +7 -4
- package/src/useIntersectionObserver.ts +3 -2
- package/src/useMutationObserver.ts +3 -2
- package/src/useWindowSize.ts +4 -2
- package/src/utils/getNumberOfDigits.ts +18 -0
- package/src/utils/nearest.ts +2 -1
- package/src/utils/useDevEffect.ts +9 -0
- package/src/window-splitter/WindowSplitter.tsx +5 -2
- package/src/window-splitter/styles.ts +13 -2
- 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"];
|
package/src/form/Select.tsx
CHANGED
|
@@ -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
|
|
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
|
|
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 =
|
|
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") {
|
package/src/form/Slider.tsx
CHANGED
|
@@ -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
|
|
package/src/form/SliderThumb.tsx
CHANGED
|
@@ -83,8 +83,10 @@ export interface SliderThumbPresentation {
|
|
|
83
83
|
/**
|
|
84
84
|
* @since 6.0.0
|
|
85
85
|
*/
|
|
86
|
-
export interface ConfigurableSliderThumbProps
|
|
87
|
-
|
|
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
|
|
99
|
+
extends
|
|
100
|
+
ConfigurableSliderThumbProps,
|
|
98
101
|
Required<SliderValueOptions>,
|
|
99
102
|
Required<SliderThumbPresentation> {
|
|
100
103
|
id: string;
|
package/src/form/SliderTrack.tsx
CHANGED
|
@@ -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
|
|
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;
|
package/src/form/Switch.tsx
CHANGED
|
@@ -33,7 +33,8 @@ declare module "react" {
|
|
|
33
33
|
* `FormMessage` behavior.
|
|
34
34
|
*/
|
|
35
35
|
export interface SwitchProps
|
|
36
|
-
extends
|
|
36
|
+
extends
|
|
37
|
+
InputHTMLAttributes<HTMLInputElement>,
|
|
37
38
|
InputToggleLabelProps,
|
|
38
39
|
FormMessageContainerExtension,
|
|
39
40
|
FormComponentStates {
|
package/src/form/TextArea.tsx
CHANGED
|
@@ -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
|
|
package/src/form/TextField.tsx
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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 {
|
|
35
|
+
const {
|
|
36
|
+
className,
|
|
37
|
+
fullWidth,
|
|
38
|
+
browserStyles = false,
|
|
39
|
+
floatingLegend,
|
|
40
|
+
} = options;
|
|
30
41
|
|
|
31
42
|
return cnb(
|
|
32
|
-
styles({
|
|
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
|
-
|
|
25
|
+
export interface InputToggleClassNameOptions extends Omit<
|
|
26
|
+
FormComponentStates,
|
|
27
|
+
"readOnly"
|
|
28
|
+
> {
|
|
27
29
|
className?: string;
|
|
28
30
|
type: "checkbox" | "radio";
|
|
29
31
|
|
package/src/form/labelStyles.ts
CHANGED
|
@@ -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
|
+
}
|
package/src/form/selectUtils.ts
CHANGED
|
@@ -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<
|
|
10
|
-
extends
|
|
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.
|
|
117
|
+
* @since 6.4.0
|
|
106
118
|
*/
|
|
107
|
-
export interface
|
|
119
|
+
export interface InteractableFormComponentStates {
|
|
108
120
|
/** @defaultValue `false` */
|
|
109
|
-
|
|
121
|
+
disabled?: boolean;
|
|
110
122
|
|
|
111
123
|
/** @defaultValue `false` */
|
|
112
|
-
|
|
124
|
+
readOnly?: boolean;
|
|
125
|
+
}
|
|
113
126
|
|
|
127
|
+
/**
|
|
128
|
+
* @since 6.4.0
|
|
129
|
+
*/
|
|
130
|
+
export interface EditableFormComponentStates extends InteractableFormComponentStates {
|
|
114
131
|
/** @defaultValue `false` */
|
|
115
|
-
|
|
132
|
+
error?: boolean;
|
|
133
|
+
}
|
|
116
134
|
|
|
135
|
+
/**
|
|
136
|
+
* @since 6.0.0
|
|
137
|
+
*/
|
|
138
|
+
export interface FormComponentStates extends EditableFormComponentStates {
|
|
117
139
|
/** @defaultValue `false` */
|
|
118
|
-
|
|
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
|
|
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<
|
|
74
|
-
extends
|
|
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;
|
package/src/form/useCombobox.ts
CHANGED
|
@@ -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
|
-
>
|
|
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
|
-
>
|
|
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
|
|
283
|
+
extends
|
|
284
|
+
Omit<ConfigurableComboboxMenuProps, keyof ProvidedComboboxMenuProps>,
|
|
280
285
|
ProvidedComboboxMenuProps<PopupEl> {}
|
|
281
286
|
|
|
282
287
|
/**
|