@react-md/core 6.2.1 → 6.3.1
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/_base.scss +1 -1
- package/dist/app-bar/styles.d.ts +0 -2
- package/dist/app-bar/styles.js.map +1 -1
- package/dist/autocomplete/types.d.ts +12 -0
- package/dist/autocomplete/types.js.map +1 -1
- package/dist/avatar/Avatar.d.ts +0 -10
- package/dist/avatar/Avatar.js.map +1 -1
- package/dist/avatar/styles.d.ts +10 -0
- package/dist/avatar/styles.js.map +1 -1
- package/dist/badge/Badge.d.ts +11 -0
- package/dist/badge/Badge.js.map +1 -1
- package/dist/badge/styles.d.ts +0 -8
- package/dist/badge/styles.js.map +1 -1
- package/dist/box/_box.scss +8 -8
- package/dist/box/styles.d.ts +9 -0
- package/dist/box/styles.js.map +1 -1
- package/dist/button/_button.scss +4 -0
- package/dist/button/styles.d.ts +5 -1
- package/dist/button/styles.js.map +1 -1
- package/dist/card/Card.d.ts +0 -7
- package/dist/card/Card.js.map +1 -1
- package/dist/card/styles.d.ts +6 -0
- package/dist/card/styles.js +8 -8
- package/dist/card/styles.js.map +1 -1
- package/dist/chip/Chip.d.ts +6 -13
- package/dist/chip/Chip.js.map +1 -1
- package/dist/chip/styles.d.ts +26 -1
- package/dist/chip/styles.js.map +1 -1
- package/dist/datetime/NativeDateField.d.ts +24 -0
- package/dist/datetime/NativeDateField.js +63 -0
- package/dist/datetime/NativeDateField.js.map +1 -0
- package/dist/datetime/NativeTimeField.d.ts +26 -0
- package/dist/datetime/NativeTimeField.js +63 -0
- package/dist/datetime/NativeTimeField.js.map +1 -0
- package/dist/datetime/useDateField.d.ts +120 -0
- package/dist/datetime/useDateField.js +35 -0
- package/dist/datetime/useDateField.js.map +1 -0
- package/dist/datetime/useTimeField.d.ts +124 -0
- package/dist/datetime/useTimeField.js +65 -0
- package/dist/datetime/useTimeField.js.map +1 -0
- package/dist/datetime/utils.d.ts +34 -0
- package/dist/datetime/utils.js +27 -0
- package/dist/datetime/utils.js.map +1 -0
- package/dist/dialog/styles.d.ts +5 -2
- package/dist/dialog/styles.js.map +1 -1
- package/dist/divider/styles.d.ts +1 -1
- package/dist/divider/styles.js.map +1 -1
- package/dist/draggable/utils.d.ts +3 -6
- package/dist/draggable/utils.js.map +1 -1
- package/dist/error-boundary/ErrorBoundary.js.map +1 -1
- package/dist/expansion-panel/ExpansionList.js +1 -1
- package/dist/expansion-panel/ExpansionList.js.map +1 -1
- package/dist/expansion-panel/useExpansionList.d.ts +2 -7
- package/dist/expansion-panel/useExpansionList.js.map +1 -1
- package/dist/files/validation.js.map +1 -1
- package/dist/form/FormMessage.js +3 -1
- package/dist/form/FormMessage.js.map +1 -1
- package/dist/form/FormMessageContainer.d.ts +2 -1
- package/dist/form/FormMessageContainer.js +3 -2
- package/dist/form/FormMessageContainer.js.map +1 -1
- package/dist/form/FormMessageCounter.d.ts +3 -2
- package/dist/form/FormMessageCounter.js +5 -2
- package/dist/form/FormMessageCounter.js.map +1 -1
- package/dist/form/InputToggle.js.map +1 -1
- package/dist/form/Label.d.ts +0 -10
- package/dist/form/Label.js.map +1 -1
- package/dist/form/Listbox.d.ts +3 -10
- package/dist/form/Listbox.js +8 -27
- package/dist/form/Listbox.js.map +1 -1
- package/dist/form/ListboxProvider.d.ts +17 -0
- package/dist/form/ListboxProvider.js +33 -1
- package/dist/form/ListboxProvider.js.map +1 -1
- package/dist/form/NativeSelect.js +1 -0
- package/dist/form/NativeSelect.js.map +1 -1
- package/dist/form/Slider.d.ts +4 -0
- package/dist/form/Slider.js.map +1 -1
- package/dist/form/Switch.js.map +1 -1
- package/dist/form/TextArea.js +1 -0
- package/dist/form/TextArea.js.map +1 -1
- package/dist/form/TextField.js +1 -0
- package/dist/form/TextField.js.map +1 -1
- package/dist/form/TextFieldContainer.d.ts +0 -13
- package/dist/form/TextFieldContainer.js.map +1 -1
- package/dist/form/_form-message.scss +13 -0
- package/dist/form/_select.scss +5 -1
- package/dist/form/_text-area.scss +2 -1
- package/dist/form/_text-field.scss +13 -3
- package/dist/form/formMessageContainerStyles.d.ts +7 -0
- package/dist/form/formMessageContainerStyles.js +4 -2
- package/dist/form/formMessageContainerStyles.js.map +1 -1
- package/dist/form/sliderUtils.d.ts +3 -7
- package/dist/form/sliderUtils.js.map +1 -1
- package/dist/form/types.d.ts +33 -0
- package/dist/form/types.js.map +1 -1
- package/dist/form/useCombobox.d.ts +6 -2
- package/dist/form/useCombobox.js +8 -9
- package/dist/form/useCombobox.js.map +1 -1
- package/dist/form/useFormReset.d.ts +4 -1
- package/dist/form/useFormReset.js +9 -4
- package/dist/form/useFormReset.js.map +1 -1
- package/dist/form/useNumberField.d.ts +5 -5
- package/dist/form/useNumberField.js +10 -2
- package/dist/form/useNumberField.js.map +1 -1
- package/dist/form/useSelectCombobox.js +2 -2
- package/dist/form/useSelectCombobox.js.map +1 -1
- package/dist/form/useTextField.d.ts +76 -59
- package/dist/form/useTextField.js +7 -1
- package/dist/form/useTextField.js.map +1 -1
- package/dist/interaction/types.d.ts +5 -1
- package/dist/interaction/types.js.map +1 -1
- package/dist/interaction/utils.d.ts +14 -0
- package/dist/interaction/utils.js +23 -12
- package/dist/interaction/utils.js.map +1 -1
- package/dist/link/Link.d.ts +0 -7
- package/dist/link/Link.js.map +1 -1
- package/dist/link/styles.d.ts +7 -0
- package/dist/link/styles.js.map +1 -1
- package/dist/list/List.d.ts +5 -20
- package/dist/list/List.js.map +1 -1
- package/dist/list/ListItem.d.ts +4 -38
- package/dist/list/ListItem.js.map +1 -1
- package/dist/list/listItemStyles.d.ts +24 -2
- package/dist/list/listItemStyles.js.map +1 -1
- package/dist/list/listStyles.d.ts +17 -2
- package/dist/list/listStyles.js.map +1 -1
- package/dist/menu/Menu.js.map +1 -1
- package/dist/menu/MenuBar.js +1 -1
- package/dist/menu/MenuBar.js.map +1 -1
- package/dist/menu/MenuItemTextField.d.ts +1 -2
- package/dist/menu/MenuItemTextField.js.map +1 -1
- package/dist/menu/MenuWidget.js +3 -2
- package/dist/menu/MenuWidget.js.map +1 -1
- package/dist/movement/constants.d.ts +10 -0
- package/dist/movement/constants.js +20 -4
- package/dist/movement/constants.js.map +1 -1
- package/dist/movement/types.d.ts +59 -10
- package/dist/movement/types.js.map +1 -1
- package/dist/movement/useKeyboardMovementProvider.d.ts +5 -1
- package/dist/movement/useKeyboardMovementProvider.js +171 -73
- package/dist/movement/useKeyboardMovementProvider.js.map +1 -1
- package/dist/navigation/NavItem.d.ts +4 -1
- package/dist/navigation/NavItem.js.map +1 -1
- package/dist/navigation/navItemStyles.d.ts +7 -0
- package/dist/navigation/navItemStyles.js.map +1 -1
- package/dist/overlay/Overlay.d.ts +4 -23
- package/dist/overlay/Overlay.js.map +1 -1
- package/dist/overlay/styles.d.ts +26 -8
- package/dist/overlay/styles.js.map +1 -1
- package/dist/progress/LinearProgress.d.ts +4 -9
- package/dist/progress/LinearProgress.js.map +1 -1
- package/dist/progress/circularProgressStyles.d.ts +6 -0
- package/dist/progress/circularProgressStyles.js.map +1 -1
- package/dist/progress/linearProgressStyles.d.ts +20 -5
- package/dist/progress/linearProgressStyles.js.map +1 -1
- package/dist/progress/types.d.ts +0 -9
- package/dist/progress/types.js.map +1 -1
- package/dist/segmented-button/SegmentedButton.d.ts +7 -12
- package/dist/segmented-button/SegmentedButton.js.map +1 -1
- package/dist/segmented-button/segmentedButtonStyles.d.ts +26 -3
- package/dist/segmented-button/segmentedButtonStyles.js.map +1 -1
- package/dist/sheet/Sheet.d.ts +0 -12
- package/dist/sheet/Sheet.js.map +1 -1
- package/dist/sheet/styles.d.ts +12 -0
- package/dist/sheet/styles.js.map +1 -1
- package/dist/snackbar/Toast.d.ts +2 -13
- package/dist/snackbar/Toast.js.map +1 -1
- package/dist/snackbar/ToastManager.js.map +1 -1
- package/dist/snackbar/toastStyles.d.ts +17 -2
- package/dist/snackbar/toastStyles.js.map +1 -1
- package/dist/tabs/Tab.d.ts +2 -41
- package/dist/tabs/Tab.js.map +1 -1
- package/dist/tabs/tabStyles.d.ts +45 -4
- package/dist/tabs/tabStyles.js.map +1 -1
- package/dist/tabs/useTabList.js +1 -1
- package/dist/tabs/useTabList.js.map +1 -1
- package/dist/test-utils/drag.d.ts +6 -9
- package/dist/test-utils/mocks/IntersectionObserver.js.map +1 -1
- package/dist/test-utils/mocks/ResizeObserver.js.map +1 -1
- package/dist/test-utils/utils/createFileList.js.map +1 -1
- package/dist/theme/_theme.scss +0 -1
- package/dist/theme/getDerivedTheme.d.ts +0 -24
- package/dist/theme/getDerivedTheme.js.map +1 -1
- package/dist/theme/types.d.ts +25 -0
- package/dist/theme/types.js.map +1 -1
- package/dist/tooltip/Tooltip.d.ts +4 -32
- package/dist/tooltip/Tooltip.js.map +1 -1
- package/dist/tooltip/styles.d.ts +38 -1
- package/dist/tooltip/styles.js +1 -1
- package/dist/tooltip/styles.js.map +1 -1
- package/dist/transition/SkeletonPlaceholder.d.ts +0 -7
- package/dist/transition/SkeletonPlaceholder.js.map +1 -1
- package/dist/transition/Slide.js.map +1 -1
- package/dist/transition/skeletonPlaceholderUtils.d.ts +7 -0
- package/dist/transition/skeletonPlaceholderUtils.js.map +1 -1
- package/dist/transition/useCarousel.d.ts +2 -2
- package/dist/transition/useCarousel.js.map +1 -1
- package/dist/transition/useMaxWidthTransition.d.ts +14 -2
- package/dist/transition/useMaxWidthTransition.js.map +1 -1
- package/dist/transition/useSlideTransition.d.ts +5 -0
- package/dist/transition/useSlideTransition.js.map +1 -1
- package/dist/tree/Tree.d.ts +5 -9
- package/dist/tree/Tree.js +1 -1
- package/dist/tree/Tree.js.map +1 -1
- package/dist/tree/styles.d.ts +9 -1
- package/dist/tree/styles.js.map +1 -1
- package/dist/tree/useTreeMovement.d.ts +2 -1
- package/dist/tree/useTreeMovement.js +2 -1
- package/dist/tree/useTreeMovement.js.map +1 -1
- package/dist/types.d.ts +14 -0
- package/dist/types.js.map +1 -1
- package/dist/typography/Mark.d.ts +4 -1
- package/dist/typography/Mark.js.map +1 -1
- package/dist/typography/TextContainer.d.ts +0 -6
- package/dist/typography/TextContainer.js.map +1 -1
- package/dist/typography/markStyles.d.ts +5 -0
- package/dist/typography/markStyles.js.map +1 -1
- package/dist/typography/textContainerStyles.d.ts +6 -0
- package/dist/typography/textContainerStyles.js.map +1 -1
- package/dist/typography/typographyStyles.d.ts +9 -0
- package/dist/typography/typographyStyles.js.map +1 -1
- package/dist/useResizeObserver.js.map +1 -1
- package/dist/utils/getMiddleOfRange.d.ts +2 -3
- package/dist/utils/getMiddleOfRange.js.map +1 -1
- package/dist/utils/getPercentage.d.ts +2 -9
- package/dist/utils/getPercentage.js +1 -1
- package/dist/utils/getPercentage.js.map +1 -1
- package/dist/utils/getRangeSteps.d.ts +2 -3
- package/dist/utils/getRangeSteps.js +0 -3
- package/dist/utils/getRangeSteps.js.map +1 -1
- package/dist/utils/nearest.d.ts +2 -3
- package/dist/utils/nearest.js +0 -3
- package/dist/utils/nearest.js.map +1 -1
- package/dist/utils/trigonometry.d.ts +31 -0
- package/dist/utils/trigonometry.js +25 -0
- package/dist/utils/trigonometry.js.map +1 -0
- package/dist/window-splitter/WindowSplitter.d.ts +5 -19
- package/dist/window-splitter/WindowSplitter.js.map +1 -1
- package/dist/window-splitter/styles.d.ts +27 -3
- package/dist/window-splitter/styles.js.map +1 -1
- package/dist/window-splitter/useWindowSplitter.d.ts +1 -1
- package/dist/window-splitter/useWindowSplitter.js.map +1 -1
- package/package.json +8 -8
- package/src/app-bar/styles.ts +0 -2
- package/src/autocomplete/types.ts +17 -0
- package/src/avatar/Avatar.tsx +0 -11
- package/src/avatar/styles.ts +11 -0
- package/src/badge/Badge.tsx +12 -0
- package/src/badge/styles.ts +0 -9
- package/src/box/styles.ts +9 -0
- package/src/button/styles.ts +5 -1
- package/src/card/Card.tsx +0 -8
- package/src/card/styles.ts +15 -8
- package/src/chip/Chip.tsx +9 -15
- package/src/chip/styles.ts +29 -1
- package/src/datetime/NativeDateField.tsx +92 -0
- package/src/datetime/NativeTimeField.tsx +94 -0
- package/src/datetime/useDateField.ts +193 -0
- package/src/datetime/useTimeField.ts +233 -0
- package/src/datetime/utils.ts +48 -0
- package/src/dialog/styles.ts +5 -2
- package/src/divider/styles.ts +1 -1
- package/src/draggable/utils.ts +3 -6
- package/src/expansion-panel/ExpansionList.tsx +2 -1
- package/src/expansion-panel/useExpansionList.ts +6 -12
- package/src/form/FormMessage.tsx +4 -0
- package/src/form/FormMessageContainer.tsx +8 -4
- package/src/form/FormMessageCounter.tsx +17 -6
- package/src/form/InputToggle.tsx +2 -0
- package/src/form/Label.tsx +0 -11
- package/src/form/Listbox.tsx +18 -46
- package/src/form/ListboxProvider.ts +61 -1
- package/src/form/NativeSelect.tsx +1 -0
- package/src/form/Slider.tsx +6 -0
- package/src/form/Switch.tsx +2 -0
- package/src/form/TextArea.tsx +3 -0
- package/src/form/TextField.tsx +1 -0
- package/src/form/TextFieldContainer.tsx +0 -14
- package/src/form/formMessageContainerStyles.ts +10 -2
- package/src/form/sliderUtils.ts +3 -7
- package/src/form/types.ts +44 -0
- package/src/form/useCombobox.ts +15 -10
- package/src/form/useFormReset.ts +12 -5
- package/src/form/useNumberField.ts +17 -14
- package/src/form/useSelectCombobox.ts +2 -2
- package/src/form/useTextField.ts +102 -69
- package/src/interaction/types.ts +5 -1
- package/src/interaction/utils.ts +18 -20
- package/src/link/Link.tsx +0 -8
- package/src/link/styles.ts +8 -0
- package/src/list/List.tsx +7 -24
- package/src/list/ListItem.tsx +7 -43
- package/src/list/listItemStyles.ts +26 -2
- package/src/list/listStyles.ts +18 -2
- package/src/menu/Menu.tsx +2 -0
- package/src/menu/MenuBar.tsx +1 -1
- package/src/menu/MenuItemTextField.tsx +1 -3
- package/src/menu/MenuWidget.tsx +4 -2
- package/src/movement/constants.ts +26 -4
- package/src/movement/types.ts +84 -19
- package/src/movement/useKeyboardMovementProvider.ts +209 -95
- package/src/navigation/NavItem.tsx +6 -2
- package/src/navigation/navItemStyles.ts +8 -0
- package/src/overlay/Overlay.tsx +4 -26
- package/src/overlay/styles.ts +29 -10
- package/src/progress/LinearProgress.tsx +8 -10
- package/src/progress/circularProgressStyles.ts +7 -0
- package/src/progress/linearProgressStyles.ts +22 -5
- package/src/progress/types.ts +0 -10
- package/src/segmented-button/SegmentedButton.tsx +14 -15
- package/src/segmented-button/segmentedButtonStyles.ts +28 -3
- package/src/sheet/Sheet.tsx +0 -13
- package/src/sheet/styles.ts +13 -0
- package/src/snackbar/Toast.tsx +2 -15
- package/src/snackbar/toastStyles.ts +20 -2
- package/src/tabs/Tab.tsx +4 -49
- package/src/tabs/tabStyles.ts +52 -4
- package/src/tabs/useTabList.ts +1 -1
- package/src/test-utils/drag.ts +8 -12
- package/src/theme/getDerivedTheme.ts +0 -26
- package/src/theme/types.ts +26 -0
- package/src/tooltip/Tooltip.tsx +4 -36
- package/src/tooltip/styles.ts +43 -2
- package/src/transition/SkeletonPlaceholder.tsx +0 -8
- package/src/transition/Slide.tsx +2 -0
- package/src/transition/skeletonPlaceholderUtils.ts +8 -0
- package/src/transition/useCarousel.ts +2 -2
- package/src/transition/useMaxWidthTransition.ts +17 -2
- package/src/transition/useSlideTransition.ts +8 -0
- package/src/tree/Tree.tsx +6 -11
- package/src/tree/styles.ts +10 -1
- package/src/tree/useTreeMovement.ts +4 -0
- package/src/types.ts +16 -0
- package/src/typography/Mark.tsx +6 -2
- package/src/typography/TextContainer.tsx +0 -7
- package/src/typography/markStyles.ts +6 -0
- package/src/typography/textContainerStyles.ts +7 -0
- package/src/typography/typographyStyles.ts +10 -0
- package/src/utils/getMiddleOfRange.ts +2 -3
- package/src/utils/getPercentage.ts +3 -11
- package/src/utils/getRangeSteps.ts +3 -3
- package/src/utils/nearest.ts +3 -3
- package/src/utils/trigonometry.ts +46 -0
- package/src/window-splitter/WindowSplitter.tsx +9 -22
- package/src/window-splitter/styles.ts +31 -3
- package/src/window-splitter/useWindowSplitter.ts +3 -2
package/src/form/Slider.tsx
CHANGED
|
@@ -33,6 +33,8 @@ import { type RangeSliderState } from "./useRangeSlider.js";
|
|
|
33
33
|
import { type SliderState, type SliderValueOptions } from "./useSlider.js";
|
|
34
34
|
import { useSliderDraggable } from "./useSliderDraggable.js";
|
|
35
35
|
|
|
36
|
+
// NOTE: The augmentation appears in this file since no type definitions are
|
|
37
|
+
// ever imported from the `sliderStyles` file.
|
|
36
38
|
declare module "react" {
|
|
37
39
|
interface CSSProperties {
|
|
38
40
|
"--rmd-slider-color"?: string;
|
|
@@ -47,6 +49,10 @@ declare module "react" {
|
|
|
47
49
|
"--rmd-slider-tooltip-scale"?: string | number;
|
|
48
50
|
"--rmd-slider-tooltip-translate"?: string | number;
|
|
49
51
|
"--rmd-slider-mark-offset"?: string;
|
|
52
|
+
"--rmd-slider-mark-active-color"?: string;
|
|
53
|
+
"--rmd-slider-mark-active-opacity"?: string | number;
|
|
54
|
+
"--rmd-slider-mark-inactive-color"?: string;
|
|
55
|
+
"--rmd-slider-mark-inactive-opacity"?: string | number;
|
|
50
56
|
}
|
|
51
57
|
}
|
|
52
58
|
|
package/src/form/Switch.tsx
CHANGED
|
@@ -19,6 +19,8 @@ import {
|
|
|
19
19
|
type FormMessageContainerExtension,
|
|
20
20
|
} from "./types.js";
|
|
21
21
|
|
|
22
|
+
// NOTE: The augmentation appears in this file since no type definitions are
|
|
23
|
+
// ever imported from the `switchStyles` file.
|
|
22
24
|
declare module "react" {
|
|
23
25
|
interface CSSProperties {
|
|
24
26
|
"--rmd-switch-track-background-color"?: string;
|
package/src/form/TextArea.tsx
CHANGED
|
@@ -22,6 +22,8 @@ import {
|
|
|
22
22
|
useResizingTextArea,
|
|
23
23
|
} from "./useResizingTextArea.js";
|
|
24
24
|
|
|
25
|
+
// NOTE: The augmentation appears in this file since no type definitions are
|
|
26
|
+
// ever imported from the `textAreaStylesStyles` file.
|
|
25
27
|
declare module "react" {
|
|
26
28
|
interface CSSProperties {
|
|
27
29
|
"--rmd-text-area-height"?: string | number;
|
|
@@ -250,6 +252,7 @@ export const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(
|
|
|
250
252
|
|
|
251
253
|
return (
|
|
252
254
|
<FormMessageContainer
|
|
255
|
+
inline={inline}
|
|
253
256
|
{...messageContainerProps}
|
|
254
257
|
messageProps={messageProps}
|
|
255
258
|
>
|
package/src/form/TextField.tsx
CHANGED
|
@@ -7,20 +7,6 @@ import { getFormConfig } from "./formConfig.js";
|
|
|
7
7
|
import { textFieldContainer } from "./textFieldContainerStyles.js";
|
|
8
8
|
import { type TextFieldContainerOptions } from "./types.js";
|
|
9
9
|
|
|
10
|
-
declare module "react" {
|
|
11
|
-
interface CSSProperties {
|
|
12
|
-
"--rmd-text-field-height"?: string | number;
|
|
13
|
-
"--rmd-text-field-padding-left"?: string | number;
|
|
14
|
-
"--rmd-text-field-padding-right"?: string | number;
|
|
15
|
-
"--rmd-text-field-padding-top"?: string | number;
|
|
16
|
-
"--rmd-text-field-border-color"?: string;
|
|
17
|
-
"--rmd-text-field-hover-border-color"?: string;
|
|
18
|
-
"--rmd-text-field-filled-color"?: string;
|
|
19
|
-
"--rmd-form-addon-top"?: string | number;
|
|
20
|
-
"--rmd-form-addon-margin-top"?: string | number;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
10
|
export interface TextFieldContainerProps
|
|
25
11
|
extends HTMLAttributes<HTMLDivElement>,
|
|
26
12
|
TextFieldContainerOptions {
|
|
@@ -9,6 +9,14 @@ const styles = bem("rmd-form-message-container");
|
|
|
9
9
|
*/
|
|
10
10
|
export interface FormMessageContainerClassNameOptions {
|
|
11
11
|
className?: string;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Set to `true` to enable `display: inline-flex; width: auto`.
|
|
15
|
+
*
|
|
16
|
+
* @defaultValue `false`
|
|
17
|
+
* @since 6.3.0
|
|
18
|
+
*/
|
|
19
|
+
inline?: boolean;
|
|
12
20
|
}
|
|
13
21
|
|
|
14
22
|
/**
|
|
@@ -17,7 +25,7 @@ export interface FormMessageContainerClassNameOptions {
|
|
|
17
25
|
export function formMessageContainer(
|
|
18
26
|
options: FormMessageContainerClassNameOptions = {}
|
|
19
27
|
): string {
|
|
20
|
-
const { className } = options;
|
|
28
|
+
const { className, inline } = options;
|
|
21
29
|
|
|
22
|
-
return cnb(styles(), className);
|
|
30
|
+
return cnb(styles({ inline }), className);
|
|
23
31
|
}
|
package/src/form/sliderUtils.ts
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
type DraggableMouseEventHandlers,
|
|
7
7
|
type DraggableTouchEventHandlers,
|
|
8
8
|
} from "../draggable/useDraggable.js";
|
|
9
|
-
import { type RenameKeysWithPrefix } from "../types.js";
|
|
9
|
+
import { type MinMaxRange, type RenameKeysWithPrefix } from "../types.js";
|
|
10
10
|
import {
|
|
11
11
|
type ClientPositionEvent,
|
|
12
12
|
getClientPosition,
|
|
@@ -18,9 +18,7 @@ import { getRangeSteps } from "../utils/getRangeSteps.js";
|
|
|
18
18
|
* @since 6.0.0
|
|
19
19
|
* @internal
|
|
20
20
|
*/
|
|
21
|
-
interface JumpOptions {
|
|
22
|
-
min: number;
|
|
23
|
-
max: number;
|
|
21
|
+
interface JumpOptions extends MinMaxRange {
|
|
24
22
|
step: number;
|
|
25
23
|
jump: number | undefined;
|
|
26
24
|
}
|
|
@@ -178,9 +176,7 @@ function getThumbOffset(
|
|
|
178
176
|
* @since 6.0.0
|
|
179
177
|
* @internal
|
|
180
178
|
*/
|
|
181
|
-
export interface ThumbOffsetsOptions {
|
|
182
|
-
min: number;
|
|
183
|
-
max: number;
|
|
179
|
+
export interface ThumbOffsetsOptions extends MinMaxRange {
|
|
184
180
|
thumb1Value: number;
|
|
185
181
|
thumb1Dragging: boolean;
|
|
186
182
|
thumb1DragPercentage: number;
|
package/src/form/types.ts
CHANGED
|
@@ -12,6 +12,35 @@ declare module "react" {
|
|
|
12
12
|
interface CSSProperties {
|
|
13
13
|
"--rmd-form-active-color"?: string;
|
|
14
14
|
"--rmd-form-focus-color"?: string;
|
|
15
|
+
|
|
16
|
+
// NOTE: The label properties are in this file since all label types are
|
|
17
|
+
// in this file. If they are able to be moved to labelStyles or Label and
|
|
18
|
+
// the compiled `.d.ts` includes the types from those files, this can be
|
|
19
|
+
// moved.
|
|
20
|
+
"--rmd-label-floating-x"?: string | number;
|
|
21
|
+
"--rmd-label-floating-y"?: string | number;
|
|
22
|
+
"--rmd-label-floating-active-x"?: string | number;
|
|
23
|
+
"--rmd-label-floating-active-y"?: string | number;
|
|
24
|
+
"--rmd-label-active-padding"?: string | number;
|
|
25
|
+
"--rmd-label-active-background-color"?: string;
|
|
26
|
+
|
|
27
|
+
// NOTE: The text field properties are in this file since there are no
|
|
28
|
+
// typedefs included from `TextFieldContainer` or
|
|
29
|
+
// `textFieldContainerStyles`.
|
|
30
|
+
"--rmd-text-field-addon-top"?: string | number;
|
|
31
|
+
"--rmd-text-field-addon-spacing"?: string | number;
|
|
32
|
+
"--rmd-text-field-addon-margin-top"?: string | number;
|
|
33
|
+
"--rmd-text-field-addon-left-offset"?: string | number;
|
|
34
|
+
"--rmd-text-field-height"?: string | number;
|
|
35
|
+
"--rmd-text-field-padding-left"?: string | number;
|
|
36
|
+
"--rmd-text-field-padding-right"?: string | number;
|
|
37
|
+
"--rmd-text-field-padding-top"?: string | number;
|
|
38
|
+
"--rmd-text-field-border-color"?: string;
|
|
39
|
+
"--rmd-text-field-hover-border-color"?: string;
|
|
40
|
+
"--rmd-text-field-filled-color"?: string;
|
|
41
|
+
"--rmd-text-field-filled-padding"?: string | number;
|
|
42
|
+
"--rmd-text-field-outlined-padding"?: string | number;
|
|
43
|
+
"--rmd-text-field-underlined-padding"?: string | number;
|
|
15
44
|
}
|
|
16
45
|
}
|
|
17
46
|
|
|
@@ -255,6 +284,21 @@ export interface FormMessageProps
|
|
|
255
284
|
*/
|
|
256
285
|
disableWrap?: boolean;
|
|
257
286
|
|
|
287
|
+
/**
|
|
288
|
+
* Optional props to provide to inline counter.
|
|
289
|
+
*
|
|
290
|
+
* @since 6.3.0
|
|
291
|
+
*/
|
|
292
|
+
counterProps?: PropsWithRef<HTMLAttributes<HTMLSpanElement>>;
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* Optional props to apply to the `<p>` tag that surrounds the `children`.
|
|
296
|
+
* This will not be used if `role="alert"` or `disableWrap={true}`.
|
|
297
|
+
*
|
|
298
|
+
* @since 6.3.0
|
|
299
|
+
*/
|
|
300
|
+
messageProps?: PropsWithRef<HTMLAttributes<HTMLParagraphElement>>;
|
|
301
|
+
|
|
258
302
|
/**
|
|
259
303
|
* An optional style to apply to the `<p>` tag that surrounds the `children`.
|
|
260
304
|
* This will not be used if `role="alert"` or `disableWrap={true}`.
|
package/src/form/useCombobox.ts
CHANGED
|
@@ -69,7 +69,12 @@ export interface ComboboxKeyboardMovementData<
|
|
|
69
69
|
show: () => void;
|
|
70
70
|
hide: () => void;
|
|
71
71
|
visible: boolean;
|
|
72
|
-
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* @since 6.3.0 Renamed from `focusLast` to `focusLastRef` to support the new
|
|
75
|
+
* actions.
|
|
76
|
+
*/
|
|
77
|
+
focusLastRef: NonNullMutableRef<boolean>;
|
|
73
78
|
}
|
|
74
79
|
|
|
75
80
|
/**
|
|
@@ -280,7 +285,7 @@ export interface ComboboxMenuProps<PopupEl extends HTMLElement = HTMLDivElement>
|
|
|
280
285
|
export interface ComboboxImplementation<
|
|
281
286
|
ComboboxEl extends HTMLElement = HTMLInputElement,
|
|
282
287
|
PopupEl extends HTMLElement = HTMLElement,
|
|
283
|
-
> extends KeyboardMovementProviderImplementation<ComboboxEl> {
|
|
288
|
+
> extends Omit<KeyboardMovementProviderImplementation<ComboboxEl>, "nodeRef"> {
|
|
284
289
|
show: () => void;
|
|
285
290
|
hide: () => void;
|
|
286
291
|
visible: boolean;
|
|
@@ -349,16 +354,17 @@ export function useCombobox<
|
|
|
349
354
|
|
|
350
355
|
const popupId = useEnsuredId(propPopupId, "combobox-popup");
|
|
351
356
|
const comboboxId = useEnsuredId(propComboboxId, "combobox");
|
|
352
|
-
const [comboboxRef, comboboxRefCallback] = useEnsuredRef(propComboboxRef);
|
|
353
357
|
const [popupRef, popupRefCallback] = useEnsuredRef(propPopupRef);
|
|
354
|
-
const
|
|
358
|
+
const focusLastRef = useRef(false);
|
|
355
359
|
const {
|
|
360
|
+
nodeRef: comboboxRef,
|
|
356
361
|
movementProps,
|
|
357
362
|
movementContext,
|
|
358
363
|
currentFocusIndex,
|
|
359
364
|
activeDescendantId,
|
|
360
365
|
setActiveDescendantId,
|
|
361
366
|
} = useKeyboardMovementProvider<ComboboxEl>({
|
|
367
|
+
ref: propComboboxRef,
|
|
362
368
|
onFocus,
|
|
363
369
|
onKeyDown,
|
|
364
370
|
onClick(event) {
|
|
@@ -375,7 +381,7 @@ export function useCombobox<
|
|
|
375
381
|
show,
|
|
376
382
|
hide,
|
|
377
383
|
visible,
|
|
378
|
-
|
|
384
|
+
focusLastRef,
|
|
379
385
|
});
|
|
380
386
|
const { event } = movementData;
|
|
381
387
|
if (event.isPropagationStopped()) {
|
|
@@ -406,7 +412,7 @@ export function useCombobox<
|
|
|
406
412
|
case "ArrowDown":
|
|
407
413
|
event.preventDefault();
|
|
408
414
|
event.stopPropagation();
|
|
409
|
-
|
|
415
|
+
focusLastRef.current = event.key === "ArrowUp";
|
|
410
416
|
show();
|
|
411
417
|
break;
|
|
412
418
|
case "Enter":
|
|
@@ -445,7 +451,7 @@ export function useCombobox<
|
|
|
445
451
|
hide,
|
|
446
452
|
visible,
|
|
447
453
|
setVisible,
|
|
448
|
-
focusLast,
|
|
454
|
+
focusLast: focusLastRef,
|
|
449
455
|
popupRef,
|
|
450
456
|
popupProps,
|
|
451
457
|
comboboxRef,
|
|
@@ -456,7 +462,6 @@ export function useCombobox<
|
|
|
456
462
|
"aria-expanded": visible,
|
|
457
463
|
"aria-haspopup": popup,
|
|
458
464
|
id: comboboxId,
|
|
459
|
-
ref: comboboxRefCallback,
|
|
460
465
|
role: "combobox",
|
|
461
466
|
},
|
|
462
467
|
movementProps,
|
|
@@ -496,11 +501,11 @@ export function useCombobox<
|
|
|
496
501
|
|
|
497
502
|
const focusables = getFocusableElements(popup, true);
|
|
498
503
|
const index = getEnterDefaultFocusedIndex({
|
|
499
|
-
focusLast:
|
|
504
|
+
focusLast: focusLastRef.current,
|
|
500
505
|
focusables,
|
|
501
506
|
currentFocusIndex: currentFocusIndex.current,
|
|
502
507
|
});
|
|
503
|
-
|
|
508
|
+
focusLastRef.current = false;
|
|
504
509
|
currentFocusIndex.current = index;
|
|
505
510
|
|
|
506
511
|
const option = focusables[index];
|
package/src/form/useFormReset.ts
CHANGED
|
@@ -9,12 +9,15 @@ import {
|
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* @since 6.0.0
|
|
12
|
+
* @since 6.3.0 Added the optional `onReset` callback and updated
|
|
13
|
+
* `defaultValue` to be optional.
|
|
12
14
|
* @internal
|
|
13
15
|
*/
|
|
14
16
|
export interface FormResetOptions {
|
|
15
17
|
form?: string;
|
|
16
18
|
elementRef: RefObject<ChangeableHTMLElement>;
|
|
17
|
-
|
|
19
|
+
onReset?: () => void;
|
|
20
|
+
defaultValue?: string;
|
|
18
21
|
}
|
|
19
22
|
|
|
20
23
|
/**
|
|
@@ -22,11 +25,11 @@ export interface FormResetOptions {
|
|
|
22
25
|
* @internal
|
|
23
26
|
*/
|
|
24
27
|
export function useFormReset(options: FormResetOptions): void {
|
|
25
|
-
const { form, elementRef, defaultValue } = options;
|
|
28
|
+
const { form, elementRef, defaultValue, onReset } = options;
|
|
26
29
|
|
|
27
30
|
useEffect(() => {
|
|
28
31
|
const element = elementRef.current;
|
|
29
|
-
if (!element) {
|
|
32
|
+
if (!element || (typeof defaultValue === "undefined" && !onReset)) {
|
|
30
33
|
return;
|
|
31
34
|
}
|
|
32
35
|
|
|
@@ -39,12 +42,16 @@ export function useFormReset(options: FormResetOptions): void {
|
|
|
39
42
|
}
|
|
40
43
|
|
|
41
44
|
const handleReset = (): void => {
|
|
42
|
-
|
|
45
|
+
if (onReset) {
|
|
46
|
+
onReset();
|
|
47
|
+
} else if (typeof defaultValue !== "undefined") {
|
|
48
|
+
triggerManualChangeEvent(element, defaultValue);
|
|
49
|
+
}
|
|
43
50
|
};
|
|
44
51
|
|
|
45
52
|
formElement.addEventListener("reset", handleReset);
|
|
46
53
|
return () => {
|
|
47
54
|
formElement.removeEventListener("reset", handleReset);
|
|
48
55
|
};
|
|
49
|
-
}, [defaultValue, elementRef, form]);
|
|
56
|
+
}, [defaultValue, elementRef, form, onReset]);
|
|
50
57
|
}
|
|
@@ -4,6 +4,7 @@ import { useCallback, useRef, useState } from "react";
|
|
|
4
4
|
|
|
5
5
|
import { type UseStateInitializer, type UseStateSetter } from "../types.js";
|
|
6
6
|
import { withinRange } from "../utils/withinRange.js";
|
|
7
|
+
import { useFormReset } from "./useFormReset.js";
|
|
7
8
|
import {
|
|
8
9
|
type ProvidedTextFieldMessageProps,
|
|
9
10
|
type ProvidedTextFieldProps,
|
|
@@ -46,10 +47,7 @@ export interface NumberFieldConstraints {
|
|
|
46
47
|
* - Renamed `fixOnBlur` to `updateValueOnBlur`
|
|
47
48
|
*/
|
|
48
49
|
export interface NumberFieldHookOptions
|
|
49
|
-
extends Omit<
|
|
50
|
-
TextFieldHookOptions<HTMLInputElement>,
|
|
51
|
-
"defaultValue" | "isNumber"
|
|
52
|
-
>,
|
|
50
|
+
extends Omit<TextFieldHookOptions, "defaultValue" | "isNumber">,
|
|
53
51
|
NumberFieldConstraints {
|
|
54
52
|
/**
|
|
55
53
|
* @defaultValue `undefined`
|
|
@@ -121,24 +119,21 @@ export interface NumberFieldHookState
|
|
|
121
119
|
|
|
122
120
|
/** @since 2.5.6 */
|
|
123
121
|
export interface ProvidedNumberFieldProps
|
|
124
|
-
extends ProvidedTextFieldProps
|
|
122
|
+
extends ProvidedTextFieldProps,
|
|
125
123
|
NumberFieldConstraints {
|
|
126
124
|
type: "number";
|
|
127
125
|
}
|
|
128
126
|
|
|
129
127
|
/** @since 2.5.6 */
|
|
130
128
|
export interface ProvidedNumberFieldMessageProps
|
|
131
|
-
extends ProvidedTextFieldMessageProps
|
|
129
|
+
extends ProvidedTextFieldMessageProps,
|
|
132
130
|
NumberFieldConstraints {
|
|
133
131
|
type: "number";
|
|
134
132
|
}
|
|
135
133
|
|
|
136
134
|
/** @since 6.0.0 */
|
|
137
135
|
export interface NumberFieldImplementation
|
|
138
|
-
extends Omit<
|
|
139
|
-
TextFieldImplementation<HTMLInputElement>,
|
|
140
|
-
"value" | "setState"
|
|
141
|
-
> {
|
|
136
|
+
extends Omit<TextFieldImplementation, "value" | "setState"> {
|
|
142
137
|
value: number | undefined;
|
|
143
138
|
setState: UseStateSetter<NumberFieldHookState>;
|
|
144
139
|
fieldProps: ProvidedNumberFieldProps;
|
|
@@ -152,10 +147,7 @@ export interface NumberFieldWithMessageImplementation
|
|
|
152
147
|
|
|
153
148
|
/** @since 6.0.0 */
|
|
154
149
|
export interface ValidatedNumberFieldImplementation
|
|
155
|
-
extends Omit<
|
|
156
|
-
ValidatedTextFieldImplementation<HTMLInputElement>,
|
|
157
|
-
"value" | "setState"
|
|
158
|
-
> {
|
|
150
|
+
extends Omit<ValidatedTextFieldImplementation, "value" | "setState"> {
|
|
159
151
|
value: number | undefined;
|
|
160
152
|
setState: UseStateSetter<NumberFieldHookState>;
|
|
161
153
|
fieldProps: ProvidedNumberFieldProps | ProvidedNumberFieldMessageProps;
|
|
@@ -361,10 +353,12 @@ export function useNumberField(
|
|
|
361
353
|
min,
|
|
362
354
|
max,
|
|
363
355
|
step,
|
|
356
|
+
form,
|
|
364
357
|
onBlur = noop,
|
|
365
358
|
onChange = noop,
|
|
366
359
|
updateValue = "change",
|
|
367
360
|
updateValueOnBlur = true,
|
|
361
|
+
disableReset,
|
|
368
362
|
defaultValue,
|
|
369
363
|
...textOptions
|
|
370
364
|
} = options;
|
|
@@ -374,6 +368,7 @@ export function useNumberField(
|
|
|
374
368
|
const {
|
|
375
369
|
value: _value,
|
|
376
370
|
reset: resetTextField,
|
|
371
|
+
fieldRef,
|
|
377
372
|
fieldProps,
|
|
378
373
|
setState: setTextFieldState,
|
|
379
374
|
...remaining
|
|
@@ -381,6 +376,7 @@ export function useNumberField(
|
|
|
381
376
|
...textOptions,
|
|
382
377
|
isNumber: true,
|
|
383
378
|
defaultValue: `${number ?? ""}`,
|
|
379
|
+
disableReset: true,
|
|
384
380
|
onBlur(event) {
|
|
385
381
|
onBlur(event);
|
|
386
382
|
if (event.isPropagationStopped()) {
|
|
@@ -482,11 +478,18 @@ export function useNumberField(
|
|
|
482
478
|
[setTextFieldState]
|
|
483
479
|
);
|
|
484
480
|
|
|
481
|
+
useFormReset({
|
|
482
|
+
form,
|
|
483
|
+
elementRef: fieldRef,
|
|
484
|
+
onReset: disableReset ? undefined : reset,
|
|
485
|
+
});
|
|
486
|
+
|
|
485
487
|
return {
|
|
486
488
|
...remaining,
|
|
487
489
|
reset,
|
|
488
490
|
value: number,
|
|
489
491
|
setState,
|
|
492
|
+
fieldRef,
|
|
490
493
|
fieldProps: {
|
|
491
494
|
...fieldProps,
|
|
492
495
|
min,
|
|
@@ -40,7 +40,7 @@ export function useSelectCombobox<
|
|
|
40
40
|
...comboboxOptions,
|
|
41
41
|
searchable: true,
|
|
42
42
|
extendKeyDown(movementData) {
|
|
43
|
-
const { event, show,
|
|
43
|
+
const { event, show, focusLastRef, visible } = movementData;
|
|
44
44
|
if (visible) {
|
|
45
45
|
return;
|
|
46
46
|
}
|
|
@@ -51,7 +51,7 @@ export function useSelectCombobox<
|
|
|
51
51
|
case "End":
|
|
52
52
|
event.preventDefault();
|
|
53
53
|
event.stopPropagation();
|
|
54
|
-
|
|
54
|
+
focusLastRef.current = event.key === "End";
|
|
55
55
|
show();
|
|
56
56
|
break;
|
|
57
57
|
}
|