react-aria-components 1.10.1 → 1.11.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/Breadcrumbs.main.js +9 -2
- package/dist/Breadcrumbs.main.js.map +1 -1
- package/dist/Breadcrumbs.mjs +10 -3
- package/dist/Breadcrumbs.module.js +10 -3
- package/dist/Breadcrumbs.module.js.map +1 -1
- package/dist/Button.main.js +7 -17
- package/dist/Button.main.js.map +1 -1
- package/dist/Button.mjs +7 -17
- package/dist/Button.module.js +7 -17
- package/dist/Button.module.js.map +1 -1
- package/dist/Calendar.main.js +36 -14
- package/dist/Calendar.main.js.map +1 -1
- package/dist/Calendar.mjs +38 -16
- package/dist/Calendar.module.js +38 -16
- package/dist/Calendar.module.js.map +1 -1
- package/dist/Checkbox.main.js +8 -3
- package/dist/Checkbox.main.js.map +1 -1
- package/dist/Checkbox.mjs +10 -5
- package/dist/Checkbox.module.js +10 -5
- package/dist/Checkbox.module.js.map +1 -1
- package/dist/Collection.main.js.map +1 -1
- package/dist/Collection.module.js.map +1 -1
- package/dist/ColorArea.main.js +4 -4
- package/dist/ColorArea.main.js.map +1 -1
- package/dist/ColorArea.mjs +5 -5
- package/dist/ColorArea.module.js +5 -5
- package/dist/ColorArea.module.js.map +1 -1
- package/dist/ColorField.main.js +14 -1
- package/dist/ColorField.main.js.map +1 -1
- package/dist/ColorField.mjs +14 -1
- package/dist/ColorField.module.js +14 -1
- package/dist/ColorField.module.js.map +1 -1
- package/dist/ColorSlider.main.js +3 -1
- package/dist/ColorSlider.main.js.map +1 -1
- package/dist/ColorSlider.mjs +3 -1
- package/dist/ColorSlider.module.js +3 -1
- package/dist/ColorSlider.module.js.map +1 -1
- package/dist/ColorSwatch.main.js +6 -2
- package/dist/ColorSwatch.main.js.map +1 -1
- package/dist/ColorSwatch.mjs +6 -2
- package/dist/ColorSwatch.module.js +6 -2
- package/dist/ColorSwatch.module.js.map +1 -1
- package/dist/ColorSwatchPicker.main.js.map +1 -1
- package/dist/ColorSwatchPicker.module.js.map +1 -1
- package/dist/ColorThumb.main.js +3 -1
- package/dist/ColorThumb.main.js.map +1 -1
- package/dist/ColorThumb.mjs +3 -1
- package/dist/ColorThumb.module.js +3 -1
- package/dist/ColorThumb.module.js.map +1 -1
- package/dist/ColorWheel.main.js +3 -1
- package/dist/ColorWheel.main.js.map +1 -1
- package/dist/ColorWheel.mjs +3 -1
- package/dist/ColorWheel.module.js +3 -1
- package/dist/ColorWheel.module.js.map +1 -1
- package/dist/ComboBox.main.js +4 -1
- package/dist/ComboBox.main.js.map +1 -1
- package/dist/ComboBox.mjs +4 -1
- package/dist/ComboBox.module.js +4 -1
- package/dist/ComboBox.module.js.map +1 -1
- package/dist/DateField.main.js +16 -3
- package/dist/DateField.main.js.map +1 -1
- package/dist/DateField.mjs +16 -3
- package/dist/DateField.module.js +16 -3
- package/dist/DateField.module.js.map +1 -1
- package/dist/DatePicker.main.js +15 -8
- package/dist/DatePicker.main.js.map +1 -1
- package/dist/DatePicker.mjs +16 -9
- package/dist/DatePicker.module.js +16 -9
- package/dist/DatePicker.module.js.map +1 -1
- package/dist/Dialog.main.js +4 -3
- package/dist/Dialog.main.js.map +1 -1
- package/dist/Dialog.mjs +5 -4
- package/dist/Dialog.module.js +5 -4
- package/dist/Dialog.module.js.map +1 -1
- package/dist/Disclosure.main.js +12 -10
- package/dist/Disclosure.main.js.map +1 -1
- package/dist/Disclosure.mjs +13 -11
- package/dist/Disclosure.module.js +13 -11
- package/dist/Disclosure.module.js.map +1 -1
- package/dist/DragAndDrop.main.js +31 -3
- package/dist/DragAndDrop.main.js.map +1 -1
- package/dist/DragAndDrop.mjs +31 -3
- package/dist/DragAndDrop.module.js +31 -3
- package/dist/DragAndDrop.module.js.map +1 -1
- package/dist/DropZone.main.js +4 -3
- package/dist/DropZone.main.js.map +1 -1
- package/dist/DropZone.mjs +4 -3
- package/dist/DropZone.module.js +4 -3
- package/dist/DropZone.module.js.map +1 -1
- package/dist/FieldError.main.js +3 -1
- package/dist/FieldError.main.js.map +1 -1
- package/dist/FieldError.mjs +3 -1
- package/dist/FieldError.module.js +3 -1
- package/dist/FieldError.module.js.map +1 -1
- package/dist/FileTrigger.main.js +3 -1
- package/dist/FileTrigger.main.js.map +1 -1
- package/dist/FileTrigger.mjs +3 -1
- package/dist/FileTrigger.module.js +3 -1
- package/dist/FileTrigger.module.js.map +1 -1
- package/dist/Form.main.js.map +1 -1
- package/dist/Form.module.js.map +1 -1
- package/dist/GridList.main.js +20 -13
- package/dist/GridList.main.js.map +1 -1
- package/dist/GridList.mjs +21 -14
- package/dist/GridList.module.js +21 -14
- package/dist/GridList.module.js.map +1 -1
- package/dist/HiddenDateInput.main.js +118 -0
- package/dist/HiddenDateInput.main.js.map +1 -0
- package/dist/HiddenDateInput.mjs +109 -0
- package/dist/HiddenDateInput.module.js +109 -0
- package/dist/HiddenDateInput.module.js.map +1 -0
- package/dist/Link.main.js +7 -1
- package/dist/Link.main.js.map +1 -1
- package/dist/Link.mjs +7 -1
- package/dist/Link.module.js +7 -1
- package/dist/Link.module.js.map +1 -1
- package/dist/ListBox.main.js +22 -19
- package/dist/ListBox.main.js.map +1 -1
- package/dist/ListBox.mjs +23 -20
- package/dist/ListBox.module.js +23 -20
- package/dist/ListBox.module.js.map +1 -1
- package/dist/Menu.main.js +15 -8
- package/dist/Menu.main.js.map +1 -1
- package/dist/Menu.mjs +16 -9
- package/dist/Menu.module.js +16 -9
- package/dist/Menu.module.js.map +1 -1
- package/dist/Meter.main.js +6 -2
- package/dist/Meter.main.js.map +1 -1
- package/dist/Meter.mjs +6 -2
- package/dist/Meter.module.js +6 -2
- package/dist/Meter.module.js.map +1 -1
- package/dist/Modal.main.js +31 -6
- package/dist/Modal.main.js.map +1 -1
- package/dist/Modal.mjs +31 -6
- package/dist/Modal.module.js +31 -6
- package/dist/Modal.module.js.map +1 -1
- package/dist/NumberField.main.js +4 -1
- package/dist/NumberField.main.js.map +1 -1
- package/dist/NumberField.mjs +4 -1
- package/dist/NumberField.module.js +4 -1
- package/dist/NumberField.module.js.map +1 -1
- package/dist/Popover.main.js +3 -1
- package/dist/Popover.main.js.map +1 -1
- package/dist/Popover.mjs +3 -1
- package/dist/Popover.module.js +3 -1
- package/dist/Popover.module.js.map +1 -1
- package/dist/ProgressBar.main.js +6 -2
- package/dist/ProgressBar.main.js.map +1 -1
- package/dist/ProgressBar.mjs +6 -2
- package/dist/ProgressBar.module.js +6 -2
- package/dist/ProgressBar.module.js.map +1 -1
- package/dist/RadioGroup.main.js +8 -3
- package/dist/RadioGroup.main.js.map +1 -1
- package/dist/RadioGroup.mjs +9 -4
- package/dist/RadioGroup.module.js +9 -4
- package/dist/RadioGroup.module.js.map +1 -1
- package/dist/SearchField.main.js +3 -1
- package/dist/SearchField.main.js.map +1 -1
- package/dist/SearchField.mjs +3 -1
- package/dist/SearchField.module.js +3 -1
- package/dist/SearchField.module.js.map +1 -1
- package/dist/Select.main.js +12 -14
- package/dist/Select.main.js.map +1 -1
- package/dist/Select.mjs +13 -15
- package/dist/Select.module.js +13 -15
- package/dist/Select.module.js.map +1 -1
- package/dist/Separator.main.js +4 -2
- package/dist/Separator.main.js.map +1 -1
- package/dist/Separator.mjs +5 -3
- package/dist/Separator.module.js +5 -3
- package/dist/Separator.module.js.map +1 -1
- package/dist/Slider.main.js +7 -5
- package/dist/Slider.main.js.map +1 -1
- package/dist/Slider.mjs +8 -6
- package/dist/Slider.module.js +8 -6
- package/dist/Slider.module.js.map +1 -1
- package/dist/Switch.main.js +4 -1
- package/dist/Switch.main.js.map +1 -1
- package/dist/Switch.mjs +4 -1
- package/dist/Switch.module.js +4 -1
- package/dist/Switch.module.js.map +1 -1
- package/dist/Table.main.js +47 -26
- package/dist/Table.main.js.map +1 -1
- package/dist/Table.mjs +48 -27
- package/dist/Table.module.js +48 -27
- package/dist/Table.module.js.map +1 -1
- package/dist/Tabs.main.js +20 -10
- package/dist/Tabs.main.js.map +1 -1
- package/dist/Tabs.mjs +21 -11
- package/dist/Tabs.module.js +21 -11
- package/dist/Tabs.module.js.map +1 -1
- package/dist/TagGroup.main.js +14 -8
- package/dist/TagGroup.main.js.map +1 -1
- package/dist/TagGroup.mjs +14 -8
- package/dist/TagGroup.module.js +14 -8
- package/dist/TagGroup.module.js.map +1 -1
- package/dist/TextField.main.js +13 -1
- package/dist/TextField.main.js.map +1 -1
- package/dist/TextField.mjs +13 -1
- package/dist/TextField.module.js +13 -1
- package/dist/TextField.module.js.map +1 -1
- package/dist/Toast.main.js +9 -5
- package/dist/Toast.main.js.map +1 -1
- package/dist/Toast.mjs +9 -5
- package/dist/Toast.module.js +9 -5
- package/dist/Toast.module.js.map +1 -1
- package/dist/ToggleButton.main.js +8 -2
- package/dist/ToggleButton.main.js.map +1 -1
- package/dist/ToggleButton.mjs +8 -2
- package/dist/ToggleButton.module.js +8 -2
- package/dist/ToggleButton.module.js.map +1 -1
- package/dist/ToggleButtonGroup.main.js +6 -2
- package/dist/ToggleButtonGroup.main.js.map +1 -1
- package/dist/ToggleButtonGroup.mjs +6 -2
- package/dist/ToggleButtonGroup.module.js +6 -2
- package/dist/ToggleButtonGroup.module.js.map +1 -1
- package/dist/Toolbar.main.js +4 -3
- package/dist/Toolbar.main.js.map +1 -1
- package/dist/Toolbar.mjs +4 -3
- package/dist/Toolbar.module.js +4 -3
- package/dist/Toolbar.module.js.map +1 -1
- package/dist/Tooltip.main.js +5 -3
- package/dist/Tooltip.main.js.map +1 -1
- package/dist/Tooltip.mjs +5 -3
- package/dist/Tooltip.module.js +5 -3
- package/dist/Tooltip.module.js.map +1 -1
- package/dist/Tree.main.js +73 -26
- package/dist/Tree.main.js.map +1 -1
- package/dist/Tree.mjs +74 -27
- package/dist/Tree.module.js +74 -27
- package/dist/Tree.module.js.map +1 -1
- package/dist/TreeDropTargetDelegate.main.js +8 -5
- package/dist/TreeDropTargetDelegate.main.js.map +1 -1
- package/dist/TreeDropTargetDelegate.mjs +8 -5
- package/dist/TreeDropTargetDelegate.module.js +8 -5
- package/dist/TreeDropTargetDelegate.module.js.map +1 -1
- package/dist/import.mjs +5 -5
- package/dist/main.js +4 -4
- package/dist/main.js.map +1 -1
- package/dist/module.js +5 -5
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +212 -203
- package/dist/types.d.ts.map +1 -1
- package/dist/useDragAndDrop.main.js.map +1 -1
- package/dist/useDragAndDrop.module.js.map +1 -1
- package/dist/utils.main.js.map +1 -1
- package/dist/utils.module.js.map +1 -1
- package/i18n/de-DE.js +1 -1
- package/i18n/de-DE.mjs +1 -1
- package/package.json +25 -25
- package/src/Breadcrumbs.tsx +10 -6
- package/src/Button.tsx +8 -30
- package/src/Calendar.tsx +41 -24
- package/src/Checkbox.tsx +8 -6
- package/src/Collection.tsx +2 -2
- package/src/ColorArea.tsx +5 -6
- package/src/ColorField.tsx +6 -4
- package/src/ColorSlider.tsx +3 -2
- package/src/ColorSwatch.tsx +6 -3
- package/src/ColorSwatchPicker.tsx +3 -3
- package/src/ColorThumb.tsx +3 -3
- package/src/ColorWheel.tsx +6 -5
- package/src/ComboBox.tsx +4 -4
- package/src/DateField.tsx +15 -10
- package/src/DatePicker.tsx +14 -12
- package/src/Dialog.tsx +6 -6
- package/src/Disclosure.tsx +10 -14
- package/src/DragAndDrop.tsx +31 -1
- package/src/DropZone.tsx +4 -5
- package/src/FieldError.tsx +3 -3
- package/src/FileTrigger.tsx +4 -3
- package/src/Form.tsx +2 -1
- package/src/GridList.tsx +25 -18
- package/src/HiddenDateInput.tsx +142 -0
- package/src/Link.tsx +7 -3
- package/src/ListBox.tsx +30 -26
- package/src/Menu.tsx +15 -12
- package/src/Meter.tsx +6 -3
- package/src/Modal.tsx +16 -5
- package/src/NumberField.tsx +4 -4
- package/src/Popover.tsx +3 -3
- package/src/ProgressBar.tsx +6 -2
- package/src/RadioGroup.tsx +8 -6
- package/src/SearchField.tsx +3 -2
- package/src/Select.tsx +13 -16
- package/src/Separator.tsx +6 -4
- package/src/Slider.tsx +9 -11
- package/src/Switch.tsx +4 -3
- package/src/Table.tsx +58 -56
- package/src/Tabs.tsx +18 -15
- package/src/TagGroup.tsx +13 -12
- package/src/TextField.tsx +5 -2
- package/src/Toast.tsx +10 -8
- package/src/ToggleButton.tsx +8 -4
- package/src/ToggleButtonGroup.tsx +6 -4
- package/src/Toolbar.tsx +4 -5
- package/src/Tooltip.tsx +6 -5
- package/src/Tree.tsx +90 -42
- package/src/TreeDropTargetDelegate.ts +5 -1
- package/src/index.ts +8 -8
- package/src/useDragAndDrop.tsx +2 -2
- package/src/utils.tsx +9 -9
package/src/ColorSlider.tsx
CHANGED
|
@@ -2,6 +2,7 @@ import {AriaColorSliderProps, Orientation, useColorSlider, useLocale} from 'reac
|
|
|
2
2
|
import {ColorSliderContext} from './RSPContexts';
|
|
3
3
|
import {ColorSliderState, useColorSliderState} from 'react-stately';
|
|
4
4
|
import {filterDOMProps} from '@react-aria/utils';
|
|
5
|
+
import {GlobalDOMAttributes} from '@react-types/shared';
|
|
5
6
|
import {InternalColorThumbContext} from './ColorThumb';
|
|
6
7
|
import {LabelContext} from './Label';
|
|
7
8
|
import {Provider, RenderProps, SlotProps, useContextProps, useRenderProps, useSlot} from './utils';
|
|
@@ -25,7 +26,7 @@ export interface ColorSliderRenderProps {
|
|
|
25
26
|
state: ColorSliderState
|
|
26
27
|
}
|
|
27
28
|
|
|
28
|
-
export interface ColorSliderProps extends Omit<AriaColorSliderProps, 'label'>, RenderProps<ColorSliderRenderProps>, SlotProps {}
|
|
29
|
+
export interface ColorSliderProps extends Omit<AriaColorSliderProps, 'label'>, RenderProps<ColorSliderRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {}
|
|
29
30
|
|
|
30
31
|
export const ColorSliderStateContext = createContext<ColorSliderState | null>(null);
|
|
31
32
|
|
|
@@ -65,7 +66,7 @@ export const ColorSlider = forwardRef(function ColorSlider(props: ColorSliderPro
|
|
|
65
66
|
defaultClassName: 'react-aria-ColorSlider'
|
|
66
67
|
});
|
|
67
68
|
|
|
68
|
-
let DOMProps = filterDOMProps(props);
|
|
69
|
+
let DOMProps = filterDOMProps(props, {global: true});
|
|
69
70
|
delete DOMProps.id;
|
|
70
71
|
|
|
71
72
|
return (
|
package/src/ColorSwatch.tsx
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import {AriaColorSwatchProps, useColorSwatch} from 'react-aria';
|
|
2
2
|
import {Color} from 'react-stately';
|
|
3
3
|
import {ContextValue, SlotProps, StyleRenderProps, useContextProps, useRenderProps} from './utils';
|
|
4
|
+
import {filterDOMProps, mergeProps} from '@react-aria/utils';
|
|
5
|
+
import {GlobalDOMAttributes} from '@react-types/shared';
|
|
4
6
|
import React, {createContext, ForwardedRef, forwardRef} from 'react';
|
|
5
7
|
|
|
6
8
|
export interface ColorSwatchRenderProps {
|
|
@@ -8,7 +10,7 @@ export interface ColorSwatchRenderProps {
|
|
|
8
10
|
color: Color
|
|
9
11
|
}
|
|
10
12
|
|
|
11
|
-
export interface ColorSwatchProps extends AriaColorSwatchProps, StyleRenderProps<ColorSwatchRenderProps>, SlotProps {}
|
|
13
|
+
export interface ColorSwatchProps extends AriaColorSwatchProps, StyleRenderProps<ColorSwatchRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {}
|
|
12
14
|
|
|
13
15
|
export const ColorSwatchContext = createContext<ContextValue<ColorSwatchProps, HTMLDivElement>>(null);
|
|
14
16
|
|
|
@@ -26,11 +28,12 @@ export const ColorSwatch = forwardRef(function ColorSwatch(props: ColorSwatchPro
|
|
|
26
28
|
color
|
|
27
29
|
}
|
|
28
30
|
});
|
|
31
|
+
|
|
32
|
+
let DOMProps = filterDOMProps(props, {global: true});
|
|
29
33
|
|
|
30
34
|
return (
|
|
31
35
|
<div
|
|
32
|
-
{...colorSwatchProps}
|
|
33
|
-
{...renderProps}
|
|
36
|
+
{...mergeProps(DOMProps, colorSwatchProps, renderProps)}
|
|
34
37
|
slot={props.slot || undefined}
|
|
35
38
|
ref={ref} />
|
|
36
39
|
);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {AriaLabelingProps, HoverEvents, ValueBase} from '@react-types/shared';
|
|
1
|
+
import {AriaLabelingProps, GlobalDOMAttributes, HoverEvents, PressEvents, ValueBase} from '@react-types/shared';
|
|
2
2
|
import {Color, parseColor, useColorPickerState} from 'react-stately';
|
|
3
3
|
import {ColorSwatchContext} from './ColorSwatch';
|
|
4
4
|
import {composeRenderProps, ContextValue, RenderProps, StyleRenderProps, useContextProps} from './utils';
|
|
@@ -10,7 +10,7 @@ import React, {createContext, ForwardedRef, forwardRef, ReactNode, useContext, u
|
|
|
10
10
|
import {useLocale, useLocalizedStringFormatter} from 'react-aria';
|
|
11
11
|
|
|
12
12
|
export interface ColorSwatchPickerRenderProps extends Omit<ListBoxRenderProps, 'isDropTarget'> {}
|
|
13
|
-
export interface ColorSwatchPickerProps extends ValueBase<string | Color, Color>, AriaLabelingProps, StyleRenderProps<ColorSwatchPickerRenderProps> {
|
|
13
|
+
export interface ColorSwatchPickerProps extends ValueBase<string | Color, Color>, AriaLabelingProps, StyleRenderProps<ColorSwatchPickerRenderProps>, GlobalDOMAttributes<HTMLDivElement> {
|
|
14
14
|
/** The children of the ColorSwatchPicker. */
|
|
15
15
|
children?: ReactNode,
|
|
16
16
|
/**
|
|
@@ -61,7 +61,7 @@ export interface ColorSwatchPickerItemRenderProps extends Omit<ListBoxItemRender
|
|
|
61
61
|
color: Color
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
export interface ColorSwatchPickerItemProps extends RenderProps<ColorSwatchPickerItemRenderProps>, HoverEvents {
|
|
64
|
+
export interface ColorSwatchPickerItemProps extends RenderProps<ColorSwatchPickerItemRenderProps>, HoverEvents, PressEvents, Omit<GlobalDOMAttributes<HTMLDivElement>, 'onClick'> {
|
|
65
65
|
/** The color of the swatch. */
|
|
66
66
|
color: string | Color,
|
|
67
67
|
/** Whether the color swatch is disabled. */
|
package/src/ColorThumb.tsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {Color} from 'react-stately';
|
|
2
2
|
import {filterDOMProps} from '@react-aria/utils';
|
|
3
|
-
import {HoverEvents, RefObject} from '@react-types/shared';
|
|
3
|
+
import {GlobalDOMAttributes, HoverEvents, RefObject} from '@react-types/shared';
|
|
4
4
|
import {mergeProps, useFocusRing, useHover} from 'react-aria';
|
|
5
5
|
import React, {createContext, ForwardedRef, forwardRef, HTMLAttributes, InputHTMLAttributes, useContext} from 'react';
|
|
6
6
|
import {RenderProps, useRenderProps} from './utils';
|
|
@@ -54,7 +54,7 @@ export interface ColorThumbRenderProps {
|
|
|
54
54
|
isDisabled: boolean
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
export interface ColorThumbProps extends HoverEvents, RenderProps<ColorThumbRenderProps> {}
|
|
57
|
+
export interface ColorThumbProps extends HoverEvents, RenderProps<ColorThumbRenderProps>, GlobalDOMAttributes<HTMLDivElement> {}
|
|
58
58
|
|
|
59
59
|
/**
|
|
60
60
|
* A color thumb appears within a ColorArea, ColorSlider, or ColorWheel and allows a user to drag to adjust the color value.
|
|
@@ -81,7 +81,7 @@ export const ColorThumb = forwardRef(function ColorThumb(props: ColorThumbProps,
|
|
|
81
81
|
}
|
|
82
82
|
});
|
|
83
83
|
|
|
84
|
-
let DOMProps = filterDOMProps(props
|
|
84
|
+
let DOMProps = filterDOMProps(props, {global: true});
|
|
85
85
|
delete DOMProps.id;
|
|
86
86
|
|
|
87
87
|
return (
|
package/src/ColorWheel.tsx
CHANGED
|
@@ -3,6 +3,7 @@ import {ColorWheelContext} from './RSPContexts';
|
|
|
3
3
|
import {ColorWheelState, useColorWheelState} from 'react-stately';
|
|
4
4
|
import {ContextValue, Provider, RenderProps, SlotProps, StyleRenderProps, useContextProps, useRenderProps} from './utils';
|
|
5
5
|
import {filterDOMProps} from '@react-aria/utils';
|
|
6
|
+
import {GlobalDOMAttributes} from '@react-types/shared';
|
|
6
7
|
import {InternalColorThumbContext} from './ColorThumb';
|
|
7
8
|
import React, {createContext, ForwardedRef, forwardRef, HTMLAttributes, useContext, useRef} from 'react';
|
|
8
9
|
|
|
@@ -13,12 +14,12 @@ export interface ColorWheelRenderProps {
|
|
|
13
14
|
*/
|
|
14
15
|
isDisabled: boolean,
|
|
15
16
|
/**
|
|
16
|
-
* State of the color
|
|
17
|
+
* State of the color wheel.
|
|
17
18
|
*/
|
|
18
19
|
state: ColorWheelState
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
export interface ColorWheelProps extends AriaColorWheelOptions, RenderProps<ColorWheelRenderProps>, SlotProps {}
|
|
22
|
+
export interface ColorWheelProps extends AriaColorWheelOptions, RenderProps<ColorWheelRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {}
|
|
22
23
|
|
|
23
24
|
export const ColorWheelStateContext = createContext<ColorWheelState | null>(null);
|
|
24
25
|
|
|
@@ -43,7 +44,7 @@ export const ColorWheel = forwardRef(function ColorWheel(props: ColorWheelProps,
|
|
|
43
44
|
}
|
|
44
45
|
});
|
|
45
46
|
|
|
46
|
-
let DOMProps = filterDOMProps(props);
|
|
47
|
+
let DOMProps = filterDOMProps(props, {global: true});
|
|
47
48
|
delete DOMProps.id;
|
|
48
49
|
|
|
49
50
|
return (
|
|
@@ -66,8 +67,8 @@ export const ColorWheel = forwardRef(function ColorWheel(props: ColorWheelProps,
|
|
|
66
67
|
});
|
|
67
68
|
|
|
68
69
|
export interface ColorWheelTrackRenderProps extends ColorWheelRenderProps {}
|
|
69
|
-
export interface ColorWheelTrackProps extends StyleRenderProps<ColorWheelTrackRenderProps> {}
|
|
70
|
-
interface ColorWheelTrackContextValue extends Omit<HTMLAttributes<HTMLElement>, 'children' | 'className' | 'style'>,
|
|
70
|
+
export interface ColorWheelTrackProps extends StyleRenderProps<ColorWheelTrackRenderProps>, GlobalDOMAttributes<HTMLDivElement> {}
|
|
71
|
+
interface ColorWheelTrackContextValue extends Omit<HTMLAttributes<HTMLElement>, 'children' | 'className' | 'style'>, StyleRenderProps<ColorWheelTrackRenderProps> {}
|
|
71
72
|
|
|
72
73
|
export const ColorWheelTrackContext = createContext<ContextValue<ColorWheelTrackContextValue, HTMLDivElement>>(null);
|
|
73
74
|
|
package/src/ComboBox.tsx
CHANGED
|
@@ -17,7 +17,7 @@ import {ContextValue, Provider, RACValidation, removeDataAttributes, RenderProps
|
|
|
17
17
|
import {FieldErrorContext} from './FieldError';
|
|
18
18
|
import {filterDOMProps, useResizeObserver} from '@react-aria/utils';
|
|
19
19
|
import {FormContext} from './Form';
|
|
20
|
-
import {forwardRefType, RefObject} from '@react-types/shared';
|
|
20
|
+
import {forwardRefType, GlobalDOMAttributes, RefObject} from '@react-types/shared';
|
|
21
21
|
import {GroupContext} from './Group';
|
|
22
22
|
import {InputContext} from './Input';
|
|
23
23
|
import {LabelContext} from './Label';
|
|
@@ -50,7 +50,7 @@ export interface ComboBoxRenderProps {
|
|
|
50
50
|
isRequired: boolean
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
export interface ComboBoxProps<T extends object> extends Omit<AriaComboBoxProps<T>, 'children' | 'placeholder' | 'label' | 'description' | 'errorMessage' | 'validationState' | 'validationBehavior'>, RACValidation, RenderProps<ComboBoxRenderProps>, SlotProps {
|
|
53
|
+
export interface ComboBoxProps<T extends object> extends Omit<AriaComboBoxProps<T>, 'children' | 'placeholder' | 'label' | 'description' | 'errorMessage' | 'validationState' | 'validationBehavior'>, RACValidation, RenderProps<ComboBoxRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {
|
|
54
54
|
/** The filter function used to determine if a option should be included in the combo box list. */
|
|
55
55
|
defaultFilter?: (textValue: string, inputValue: string) => boolean,
|
|
56
56
|
/**
|
|
@@ -182,7 +182,7 @@ function ComboBoxInner<T extends object>({props, collection, comboBoxRef: ref}:
|
|
|
182
182
|
defaultClassName: 'react-aria-ComboBox'
|
|
183
183
|
});
|
|
184
184
|
|
|
185
|
-
let DOMProps = filterDOMProps(props);
|
|
185
|
+
let DOMProps = filterDOMProps(props, {global: true});
|
|
186
186
|
delete DOMProps.id;
|
|
187
187
|
|
|
188
188
|
return (
|
|
@@ -224,7 +224,7 @@ function ComboBoxInner<T extends object>({props, collection, comboBoxRef: ref}:
|
|
|
224
224
|
data-disabled={props.isDisabled || undefined}
|
|
225
225
|
data-invalid={validation.isInvalid || undefined}
|
|
226
226
|
data-required={props.isRequired || undefined} />
|
|
227
|
-
{name && formValue === 'key' && <input type="hidden" name={name} value={state.selectedKey ?? ''} />}
|
|
227
|
+
{name && formValue === 'key' && <input type="hidden" name={name} form={props.form} value={state.selectedKey ?? ''} />}
|
|
228
228
|
</Provider>
|
|
229
229
|
);
|
|
230
230
|
}
|
package/src/DateField.tsx
CHANGED
|
@@ -16,8 +16,9 @@ import {DateFieldState, DateSegmentType, DateSegment as IDateSegment, TimeFieldS
|
|
|
16
16
|
import {FieldErrorContext} from './FieldError';
|
|
17
17
|
import {filterDOMProps, useObjectRef} from '@react-aria/utils';
|
|
18
18
|
import {FormContext} from './Form';
|
|
19
|
-
import {forwardRefType} from '@react-types/shared';
|
|
19
|
+
import {forwardRefType, GlobalDOMAttributes} from '@react-types/shared';
|
|
20
20
|
import {Group, GroupContext} from './Group';
|
|
21
|
+
import {HiddenDateInput} from './HiddenDateInput';
|
|
21
22
|
import {Input, InputContext} from './Input';
|
|
22
23
|
import {LabelContext} from './Label';
|
|
23
24
|
import React, {cloneElement, createContext, ForwardedRef, forwardRef, JSX, ReactElement, useContext, useRef} from 'react';
|
|
@@ -39,8 +40,8 @@ export interface DateFieldRenderProps {
|
|
|
39
40
|
*/
|
|
40
41
|
isDisabled: boolean
|
|
41
42
|
}
|
|
42
|
-
export interface DateFieldProps<T extends DateValue> extends Omit<AriaDateFieldProps<T>, 'label' | 'description' | 'errorMessage' | 'validationState' | 'validationBehavior'>, RACValidation, RenderProps<DateFieldRenderProps>, SlotProps {}
|
|
43
|
-
export interface TimeFieldProps<T extends TimeValue> extends Omit<AriaTimeFieldProps<T>, 'label' | 'description' | 'errorMessage' | 'validationState' | 'validationBehavior'>, RACValidation, RenderProps<DateFieldRenderProps>, SlotProps {}
|
|
43
|
+
export interface DateFieldProps<T extends DateValue> extends Omit<AriaDateFieldProps<T>, 'label' | 'description' | 'errorMessage' | 'validationState' | 'validationBehavior'>, RACValidation, RenderProps<DateFieldRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {}
|
|
44
|
+
export interface TimeFieldProps<T extends TimeValue> extends Omit<AriaTimeFieldProps<T>, 'label' | 'description' | 'errorMessage' | 'validationState' | 'validationBehavior'>, RACValidation, RenderProps<DateFieldRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {}
|
|
44
45
|
|
|
45
46
|
export const DateFieldContext = createContext<ContextValue<DateFieldProps<any>, HTMLDivElement>>(null);
|
|
46
47
|
export const TimeFieldContext = createContext<ContextValue<TimeFieldProps<any>, HTMLDivElement>>(null);
|
|
@@ -85,7 +86,7 @@ export const DateField = /*#__PURE__*/ (forwardRef as forwardRefType)(function D
|
|
|
85
86
|
defaultClassName: 'react-aria-DateField'
|
|
86
87
|
});
|
|
87
88
|
|
|
88
|
-
let DOMProps = filterDOMProps(props);
|
|
89
|
+
let DOMProps = filterDOMProps(props, {global: true});
|
|
89
90
|
delete DOMProps.id;
|
|
90
91
|
|
|
91
92
|
return (
|
|
@@ -110,6 +111,11 @@ export const DateField = /*#__PURE__*/ (forwardRef as forwardRefType)(function D
|
|
|
110
111
|
slot={props.slot || undefined}
|
|
111
112
|
data-invalid={state.isInvalid || undefined}
|
|
112
113
|
data-disabled={state.isDisabled || undefined} />
|
|
114
|
+
<HiddenDateInput
|
|
115
|
+
autoComplete={props.autoComplete}
|
|
116
|
+
name={props.name}
|
|
117
|
+
isDisabled={props.isDisabled}
|
|
118
|
+
state={state} />
|
|
113
119
|
</Provider>
|
|
114
120
|
);
|
|
115
121
|
});
|
|
@@ -151,7 +157,7 @@ export const TimeField = /*#__PURE__*/ (forwardRef as forwardRefType)(function T
|
|
|
151
157
|
defaultClassName: 'react-aria-TimeField'
|
|
152
158
|
});
|
|
153
159
|
|
|
154
|
-
let DOMProps = filterDOMProps(props);
|
|
160
|
+
let DOMProps = filterDOMProps(props, {global: true});
|
|
155
161
|
delete DOMProps.id;
|
|
156
162
|
|
|
157
163
|
return (
|
|
@@ -209,7 +215,7 @@ export interface DateInputRenderProps {
|
|
|
209
215
|
isInvalid: boolean
|
|
210
216
|
}
|
|
211
217
|
|
|
212
|
-
export interface DateInputProps extends SlotProps, StyleRenderProps<DateInputRenderProps> {
|
|
218
|
+
export interface DateInputProps extends SlotProps, StyleRenderProps<DateInputRenderProps>, GlobalDOMAttributes<HTMLDivElement> {
|
|
213
219
|
children: (segment: IDateSegment) => ReactElement
|
|
214
220
|
}
|
|
215
221
|
|
|
@@ -315,7 +321,7 @@ export interface DateSegmentRenderProps extends Omit<IDateSegment, 'isEditable'>
|
|
|
315
321
|
type: DateSegmentType
|
|
316
322
|
}
|
|
317
323
|
|
|
318
|
-
export interface DateSegmentProps extends RenderProps<DateSegmentRenderProps>, HoverEvents {
|
|
324
|
+
export interface DateSegmentProps extends RenderProps<DateSegmentRenderProps>, HoverEvents, GlobalDOMAttributes<HTMLSpanElement> {
|
|
319
325
|
segment: IDateSegment
|
|
320
326
|
}
|
|
321
327
|
|
|
@@ -323,7 +329,7 @@ export interface DateSegmentProps extends RenderProps<DateSegmentRenderProps>, H
|
|
|
323
329
|
* A date segment displays an individual unit of a date and time, and allows users to edit
|
|
324
330
|
* the value by typing or using the arrow keys to increment and decrement.
|
|
325
331
|
*/
|
|
326
|
-
export const DateSegment = /*#__PURE__*/ (forwardRef as forwardRefType)(function DateSegment({segment, ...otherProps}: DateSegmentProps, ref: ForwardedRef<
|
|
332
|
+
export const DateSegment = /*#__PURE__*/ (forwardRef as forwardRefType)(function DateSegment({segment, ...otherProps}: DateSegmentProps, ref: ForwardedRef<HTMLSpanElement>) {
|
|
327
333
|
let dateFieldState = useContext(DateFieldStateContext);
|
|
328
334
|
let timeFieldState = useContext(TimeFieldStateContext);
|
|
329
335
|
let state = dateFieldState ?? timeFieldState!;
|
|
@@ -347,10 +353,9 @@ export const DateSegment = /*#__PURE__*/ (forwardRef as forwardRefType)(function
|
|
|
347
353
|
defaultClassName: 'react-aria-DateSegment'
|
|
348
354
|
});
|
|
349
355
|
|
|
350
|
-
|
|
351
356
|
return (
|
|
352
357
|
<span
|
|
353
|
-
{...mergeProps(filterDOMProps(otherProps
|
|
358
|
+
{...mergeProps(filterDOMProps(otherProps, {global: true}), segmentProps, focusProps, hoverProps)}
|
|
354
359
|
{...renderProps}
|
|
355
360
|
style={segmentProps.style}
|
|
356
361
|
ref={domRef}
|
package/src/DatePicker.tsx
CHANGED
|
@@ -17,10 +17,11 @@ import {DateFieldContext} from './DateField';
|
|
|
17
17
|
import {DatePickerState, DatePickerStateOptions, DateRangePickerState, DateRangePickerStateOptions, useDatePickerState, useDateRangePickerState} from 'react-stately';
|
|
18
18
|
import {DialogContext, OverlayTriggerStateContext} from './Dialog';
|
|
19
19
|
import {FieldErrorContext} from './FieldError';
|
|
20
|
-
import {filterDOMProps, useResizeObserver} from '@react-aria/utils';
|
|
20
|
+
import {filterDOMProps, mergeProps, useResizeObserver} from '@react-aria/utils';
|
|
21
21
|
import {FormContext} from './Form';
|
|
22
|
-
import {forwardRefType} from '@react-types/shared';
|
|
22
|
+
import {forwardRefType, GlobalDOMAttributes} from '@react-types/shared';
|
|
23
23
|
import {GroupContext} from './Group';
|
|
24
|
+
import {HiddenDateInput} from './HiddenDateInput';
|
|
24
25
|
import {LabelContext} from './Label';
|
|
25
26
|
import {PopoverContext} from './Popover';
|
|
26
27
|
import React, {createContext, ForwardedRef, forwardRef, useCallback, useRef, useState} from 'react';
|
|
@@ -64,8 +65,8 @@ export interface DateRangePickerRenderProps extends Omit<DatePickerRenderProps,
|
|
|
64
65
|
state: DateRangePickerState
|
|
65
66
|
}
|
|
66
67
|
|
|
67
|
-
export interface DatePickerProps<T extends DateValue> extends Omit<AriaDatePickerProps<T>, 'label' | 'description' | 'errorMessage' | 'validationState' | 'validationBehavior'>, Pick<DatePickerStateOptions<T>, 'shouldCloseOnSelect'>, RACValidation, RenderProps<DatePickerRenderProps>, SlotProps {}
|
|
68
|
-
export interface DateRangePickerProps<T extends DateValue> extends Omit<AriaDateRangePickerProps<T>, 'label' | 'description' | 'errorMessage' | 'validationState' | 'validationBehavior'>, Pick<DateRangePickerStateOptions<T>, 'shouldCloseOnSelect'>, RACValidation, RenderProps<DateRangePickerRenderProps>, SlotProps {}
|
|
68
|
+
export interface DatePickerProps<T extends DateValue> extends Omit<AriaDatePickerProps<T>, 'label' | 'description' | 'errorMessage' | 'validationState' | 'validationBehavior'>, Pick<DatePickerStateOptions<T>, 'shouldCloseOnSelect'>, RACValidation, RenderProps<DatePickerRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {}
|
|
69
|
+
export interface DateRangePickerProps<T extends DateValue> extends Omit<AriaDateRangePickerProps<T>, 'label' | 'description' | 'errorMessage' | 'validationState' | 'validationBehavior'>, Pick<DateRangePickerStateOptions<T>, 'shouldCloseOnSelect'>, RACValidation, RenderProps<DateRangePickerRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {}
|
|
69
70
|
|
|
70
71
|
export const DatePickerContext = createContext<ContextValue<DatePickerProps<any>, HTMLDivElement>>(null);
|
|
71
72
|
export const DateRangePickerContext = createContext<ContextValue<DateRangePickerProps<any>, HTMLDivElement>>(null);
|
|
@@ -134,7 +135,7 @@ export const DatePicker = /*#__PURE__*/ (forwardRef as forwardRefType)(function
|
|
|
134
135
|
defaultClassName: 'react-aria-DatePicker'
|
|
135
136
|
});
|
|
136
137
|
|
|
137
|
-
let DOMProps = filterDOMProps(props);
|
|
138
|
+
let DOMProps = filterDOMProps(props, {global: true});
|
|
138
139
|
delete DOMProps.id;
|
|
139
140
|
|
|
140
141
|
return (
|
|
@@ -164,9 +165,7 @@ export const DatePicker = /*#__PURE__*/ (forwardRef as forwardRefType)(function
|
|
|
164
165
|
[FieldErrorContext, validation]
|
|
165
166
|
]}>
|
|
166
167
|
<div
|
|
167
|
-
{...focusProps}
|
|
168
|
-
{...DOMProps}
|
|
169
|
-
{...renderProps}
|
|
168
|
+
{...mergeProps(DOMProps, renderProps, focusProps)}
|
|
170
169
|
ref={ref}
|
|
171
170
|
slot={props.slot || undefined}
|
|
172
171
|
data-focus-within={isFocused || undefined}
|
|
@@ -174,6 +173,11 @@ export const DatePicker = /*#__PURE__*/ (forwardRef as forwardRefType)(function
|
|
|
174
173
|
data-focus-visible={isFocusVisible || undefined}
|
|
175
174
|
data-disabled={props.isDisabled || undefined}
|
|
176
175
|
data-open={state.isOpen || undefined} />
|
|
176
|
+
<HiddenDateInput
|
|
177
|
+
autoComplete={props.autoComplete}
|
|
178
|
+
name={props.name}
|
|
179
|
+
isDisabled={props.isDisabled}
|
|
180
|
+
state={state} />
|
|
177
181
|
</Provider>
|
|
178
182
|
);
|
|
179
183
|
});
|
|
@@ -239,7 +243,7 @@ export const DateRangePicker = /*#__PURE__*/ (forwardRef as forwardRefType)(func
|
|
|
239
243
|
defaultClassName: 'react-aria-DateRangePicker'
|
|
240
244
|
});
|
|
241
245
|
|
|
242
|
-
let DOMProps = filterDOMProps(props);
|
|
246
|
+
let DOMProps = filterDOMProps(props, {global: true});
|
|
243
247
|
delete DOMProps.id;
|
|
244
248
|
|
|
245
249
|
return (
|
|
@@ -274,9 +278,7 @@ export const DateRangePicker = /*#__PURE__*/ (forwardRef as forwardRefType)(func
|
|
|
274
278
|
[FieldErrorContext, validation]
|
|
275
279
|
]}>
|
|
276
280
|
<div
|
|
277
|
-
{...focusProps}
|
|
278
|
-
{...DOMProps}
|
|
279
|
-
{...renderProps}
|
|
281
|
+
{...mergeProps(DOMProps, renderProps, focusProps)}
|
|
280
282
|
ref={ref}
|
|
281
283
|
slot={props.slot || undefined}
|
|
282
284
|
data-focus-within={isFocused || undefined}
|
package/src/Dialog.tsx
CHANGED
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
import {AriaDialogProps, useDialog, useId, useOverlayTrigger} from 'react-aria';
|
|
13
13
|
import {ButtonContext} from './Button';
|
|
14
14
|
import {ContextValue, DEFAULT_SLOT, Provider, SlotProps, StyleProps, useContextProps, useRenderProps} from './utils';
|
|
15
|
-
import {filterDOMProps, useResizeObserver} from '@react-aria/utils';
|
|
16
|
-
import {forwardRefType} from '@react-types/shared';
|
|
15
|
+
import {filterDOMProps, mergeProps, useResizeObserver} from '@react-aria/utils';
|
|
16
|
+
import {forwardRefType, GlobalDOMAttributes} from '@react-types/shared';
|
|
17
17
|
import {HeadingContext} from './RSPContexts';
|
|
18
18
|
import {OverlayTriggerProps, OverlayTriggerState, useMenuTriggerState} from 'react-stately';
|
|
19
19
|
import {PopoverContext} from './Popover';
|
|
@@ -29,7 +29,7 @@ export interface DialogRenderProps {
|
|
|
29
29
|
close: () => void
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
export interface DialogProps extends AriaDialogProps, StyleProps, SlotProps {
|
|
32
|
+
export interface DialogProps extends AriaDialogProps, StyleProps, SlotProps, GlobalDOMAttributes<HTMLElement> {
|
|
33
33
|
/** Children of the dialog. A function may be provided to access a function to close the dialog. */
|
|
34
34
|
children?: ReactNode | ((opts: DialogRenderProps) => ReactNode)
|
|
35
35
|
}
|
|
@@ -122,11 +122,11 @@ export const Dialog = /*#__PURE__*/ (forwardRef as forwardRefType)(function Dial
|
|
|
122
122
|
}
|
|
123
123
|
});
|
|
124
124
|
|
|
125
|
+
let DOMProps = filterDOMProps(props, {global: true});
|
|
126
|
+
|
|
125
127
|
return (
|
|
126
128
|
<section
|
|
127
|
-
{...
|
|
128
|
-
{...dialogProps}
|
|
129
|
-
{...renderProps}
|
|
129
|
+
{...mergeProps(DOMProps, renderProps, dialogProps)}
|
|
130
130
|
ref={ref}
|
|
131
131
|
slot={props.slot || undefined}>
|
|
132
132
|
<Provider
|
package/src/Disclosure.tsx
CHANGED
|
@@ -14,11 +14,11 @@ import {AriaDisclosureProps, useDisclosure, useFocusRing} from 'react-aria';
|
|
|
14
14
|
import {ButtonContext} from './Button';
|
|
15
15
|
import {ContextValue, DEFAULT_SLOT, Provider, RenderProps, SlotProps, useContextProps, useRenderProps} from './utils';
|
|
16
16
|
import {DisclosureGroupState, DisclosureState, DisclosureGroupProps as StatelyDisclosureGroupProps, useDisclosureGroupState, useDisclosureState} from 'react-stately';
|
|
17
|
-
import {DOMProps, forwardRefType, Key} from '@react-types/shared';
|
|
17
|
+
import {DOMProps, forwardRefType, GlobalDOMAttributes, Key} from '@react-types/shared';
|
|
18
18
|
import {filterDOMProps, mergeProps, mergeRefs, useId} from '@react-aria/utils';
|
|
19
19
|
import React, {createContext, DOMAttributes, ForwardedRef, forwardRef, ReactNode, useContext} from 'react';
|
|
20
20
|
|
|
21
|
-
export interface DisclosureGroupProps extends StatelyDisclosureGroupProps, RenderProps<DisclosureGroupRenderProps>, DOMProps {}
|
|
21
|
+
export interface DisclosureGroupProps extends StatelyDisclosureGroupProps, RenderProps<DisclosureGroupRenderProps>, DOMProps, GlobalDOMAttributes<HTMLDivElement> {}
|
|
22
22
|
|
|
23
23
|
export interface DisclosureGroupRenderProps {
|
|
24
24
|
/**
|
|
@@ -50,7 +50,7 @@ export const DisclosureGroup = forwardRef(function DisclosureGroup(props: Disclo
|
|
|
50
50
|
}
|
|
51
51
|
});
|
|
52
52
|
|
|
53
|
-
let domProps = filterDOMProps(props);
|
|
53
|
+
let domProps = filterDOMProps(props, {global: true});
|
|
54
54
|
|
|
55
55
|
return (
|
|
56
56
|
<div
|
|
@@ -65,7 +65,7 @@ export const DisclosureGroup = forwardRef(function DisclosureGroup(props: Disclo
|
|
|
65
65
|
);
|
|
66
66
|
});
|
|
67
67
|
|
|
68
|
-
export interface DisclosureProps extends Omit<AriaDisclosureProps, 'children'>, RenderProps<DisclosureRenderProps>, SlotProps {
|
|
68
|
+
export interface DisclosureProps extends Omit<AriaDisclosureProps, 'children'>, RenderProps<DisclosureRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {
|
|
69
69
|
/** An id for the disclosure when used within a DisclosureGroup, matching the id used in `expandedKeys`. */
|
|
70
70
|
id?: Key
|
|
71
71
|
}
|
|
@@ -152,7 +152,7 @@ export const Disclosure = /*#__PURE__*/ (forwardRef as forwardRefType)(function
|
|
|
152
152
|
}
|
|
153
153
|
});
|
|
154
154
|
|
|
155
|
-
let domProps = filterDOMProps(otherProps
|
|
155
|
+
let domProps = filterDOMProps(otherProps, {global: true});
|
|
156
156
|
|
|
157
157
|
return (
|
|
158
158
|
<Provider
|
|
@@ -167,13 +167,11 @@ export const Disclosure = /*#__PURE__*/ (forwardRef as forwardRefType)(function
|
|
|
167
167
|
[DisclosureStateContext, state]
|
|
168
168
|
]}>
|
|
169
169
|
<div
|
|
170
|
+
{...mergeProps(domProps, renderProps, focusWithinProps)}
|
|
170
171
|
ref={ref}
|
|
171
172
|
data-expanded={state.isExpanded || undefined}
|
|
172
173
|
data-disabled={isDisabled || undefined}
|
|
173
|
-
data-focus-visible-within={isFocusVisibleWithin || undefined}
|
|
174
|
-
{...domProps}
|
|
175
|
-
{...focusWithinProps}
|
|
176
|
-
{...renderProps}>
|
|
174
|
+
data-focus-visible-within={isFocusVisibleWithin || undefined}>
|
|
177
175
|
{renderProps.children}
|
|
178
176
|
</div>
|
|
179
177
|
</Provider>
|
|
@@ -188,7 +186,7 @@ export interface DisclosurePanelRenderProps {
|
|
|
188
186
|
isFocusVisibleWithin: boolean
|
|
189
187
|
}
|
|
190
188
|
|
|
191
|
-
export interface DisclosurePanelProps extends RenderProps<DisclosurePanelRenderProps>, DOMProps {
|
|
189
|
+
export interface DisclosurePanelProps extends RenderProps<DisclosurePanelRenderProps>, DOMProps, GlobalDOMAttributes<HTMLDivElement> {
|
|
192
190
|
/**
|
|
193
191
|
* The accessibility role for the disclosure's panel.
|
|
194
192
|
* @default 'group'
|
|
@@ -217,13 +215,11 @@ export const DisclosurePanel = /*#__PURE__*/ (forwardRef as forwardRefType)(func
|
|
|
217
215
|
isFocusVisibleWithin
|
|
218
216
|
}
|
|
219
217
|
});
|
|
220
|
-
let DOMProps = filterDOMProps(props);
|
|
218
|
+
let DOMProps = filterDOMProps(props, {global: true});
|
|
221
219
|
return (
|
|
222
220
|
<div
|
|
223
|
-
{...DOMProps}
|
|
221
|
+
{...mergeProps(DOMProps, renderProps, panelProps, focusWithinProps)}
|
|
224
222
|
ref={mergeRefs(ref, panelRef)}
|
|
225
|
-
{...mergeProps(panelProps, focusWithinProps)}
|
|
226
|
-
{...renderProps}
|
|
227
223
|
role={role}
|
|
228
224
|
data-focus-visible-within={isFocusVisibleWithin || undefined}>
|
|
229
225
|
<Provider
|
package/src/DragAndDrop.tsx
CHANGED
|
@@ -69,7 +69,37 @@ export function useDndPersistedKeys(selectionManager: MultipleSelectionManager,
|
|
|
69
69
|
dropTargetKey = dropState.target.key;
|
|
70
70
|
if (dropState.target.dropPosition === 'after') {
|
|
71
71
|
// Normalize to the "before" drop position since we only render those to the DOM.
|
|
72
|
-
|
|
72
|
+
let nextKey = dropState.collection.getKeyAfter(dropTargetKey);
|
|
73
|
+
let lastDescendantKey: Key | null = null;
|
|
74
|
+
if (nextKey != null) {
|
|
75
|
+
let targetLevel = dropState.collection.getItem(dropTargetKey)?.level ?? 0;
|
|
76
|
+
// Skip over any rows that are descendants of the target ("after" position should be after all children)
|
|
77
|
+
while (nextKey) {
|
|
78
|
+
let node = dropState.collection.getItem(nextKey);
|
|
79
|
+
// eslint-disable-next-line max-depth
|
|
80
|
+
if (!node) {
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
// Skip over non-item nodes (e.g., loaders) since they can't be drop targets.
|
|
84
|
+
// eslint-disable-next-line max-depth
|
|
85
|
+
if (node.type !== 'item') {
|
|
86
|
+
nextKey = dropState.collection.getKeyAfter(nextKey);
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Stop once we find an item at the same level or higher
|
|
91
|
+
// eslint-disable-next-line max-depth
|
|
92
|
+
if ((node.level ?? 0) <= targetLevel) {
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
lastDescendantKey = nextKey;
|
|
97
|
+
nextKey = dropState.collection.getKeyAfter(nextKey);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// If nextKey is null (end of collection), use the last descendant
|
|
102
|
+
dropTargetKey = nextKey ?? lastDescendantKey ?? dropTargetKey;
|
|
73
103
|
}
|
|
74
104
|
}
|
|
75
105
|
|
package/src/DropZone.tsx
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import {AriaLabelingProps, HoverEvents} from '@react-types/shared';
|
|
13
|
+
import {AriaLabelingProps, GlobalDOMAttributes, HoverEvents} from '@react-types/shared';
|
|
14
14
|
import {ContextValue, Provider, RenderProps, SlotProps, useContextProps, useRenderProps} from './utils';
|
|
15
15
|
import {DropOptions, mergeProps, useButton, useClipboard, useDrop, useFocusRing, useHover, useLocalizedStringFormatter, VisuallyHidden} from 'react-aria';
|
|
16
16
|
import {filterDOMProps, isFocusable, useLabels, useObjectRef, useSlotId} from '@react-aria/utils';
|
|
@@ -47,7 +47,7 @@ export interface DropZoneRenderProps {
|
|
|
47
47
|
isDisabled: boolean
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
export interface DropZoneProps extends Omit<DropOptions, 'getDropOperationForPoint' | 'ref' | 'hasDropButton'>, HoverEvents, RenderProps<DropZoneRenderProps>, SlotProps, AriaLabelingProps {}
|
|
50
|
+
export interface DropZoneProps extends Omit<DropOptions, 'getDropOperationForPoint' | 'ref' | 'hasDropButton'>, HoverEvents, RenderProps<DropZoneRenderProps>, SlotProps, AriaLabelingProps, GlobalDOMAttributes<HTMLDivElement> {}
|
|
51
51
|
|
|
52
52
|
export const DropZoneContext = createContext<ContextValue<DropZoneProps, HTMLDivElement>>(null);
|
|
53
53
|
|
|
@@ -88,7 +88,7 @@ export const DropZone = forwardRef(function DropZone(props: DropZoneProps, ref:
|
|
|
88
88
|
values: {isHovered, isFocused, isFocusVisible, isDropTarget, isDisabled},
|
|
89
89
|
defaultClassName: 'react-aria-DropZone'
|
|
90
90
|
});
|
|
91
|
-
let DOMProps = filterDOMProps(props);
|
|
91
|
+
let DOMProps = filterDOMProps(props, {global: true});
|
|
92
92
|
delete DOMProps.id;
|
|
93
93
|
|
|
94
94
|
return (
|
|
@@ -98,8 +98,7 @@ export const DropZone = forwardRef(function DropZone(props: DropZoneProps, ref:
|
|
|
98
98
|
]}>
|
|
99
99
|
{/* eslint-disable-next-line */}
|
|
100
100
|
<div
|
|
101
|
-
{...mergeProps(dropProps, hoverProps
|
|
102
|
-
{...renderProps}
|
|
101
|
+
{...mergeProps(DOMProps, renderProps, dropProps, hoverProps)}
|
|
103
102
|
slot={props.slot || undefined}
|
|
104
103
|
ref={dropzoneRef}
|
|
105
104
|
onClick={(e) => {
|
package/src/FieldError.tsx
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import {DOMProps, ValidationResult} from '@react-types/shared';
|
|
13
|
+
import {DOMProps, GlobalDOMAttributes, ValidationResult} from '@react-types/shared';
|
|
14
14
|
import {filterDOMProps} from '@react-aria/utils';
|
|
15
15
|
import React, {createContext, ForwardedRef, forwardRef, useContext} from 'react';
|
|
16
16
|
import {RenderProps, useRenderProps} from './utils';
|
|
@@ -19,7 +19,7 @@ import {Text} from './Text';
|
|
|
19
19
|
export const FieldErrorContext = createContext<ValidationResult | null>(null);
|
|
20
20
|
|
|
21
21
|
export interface FieldErrorRenderProps extends ValidationResult {}
|
|
22
|
-
export interface FieldErrorProps extends RenderProps<FieldErrorRenderProps>, DOMProps {}
|
|
22
|
+
export interface FieldErrorProps extends RenderProps<FieldErrorRenderProps>, DOMProps, GlobalDOMAttributes<HTMLDivElement> {}
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* A FieldError displays validation errors for a form field.
|
|
@@ -35,7 +35,7 @@ export const FieldError = forwardRef(function FieldError(props: FieldErrorProps,
|
|
|
35
35
|
|
|
36
36
|
const FieldErrorInner = forwardRef((props: FieldErrorProps, ref: ForwardedRef<HTMLElement>) => {
|
|
37
37
|
let validation = useContext(FieldErrorContext)!;
|
|
38
|
-
let domProps = filterDOMProps(props)!;
|
|
38
|
+
let domProps = filterDOMProps(props, {global: true})!;
|
|
39
39
|
let renderProps = useRenderProps({
|
|
40
40
|
...props,
|
|
41
41
|
defaultClassName: 'react-aria-FieldError',
|
package/src/FileTrigger.tsx
CHANGED
|
@@ -11,15 +11,16 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import {filterDOMProps, useObjectRef} from '@react-aria/utils';
|
|
14
|
+
import {GlobalDOMAttributes} from '@react-types/shared';
|
|
14
15
|
import {Input} from './Input';
|
|
15
16
|
import {PressResponder} from '@react-aria/interactions';
|
|
16
17
|
import React, {ForwardedRef, forwardRef, ReactNode} from 'react';
|
|
17
18
|
|
|
18
|
-
export interface FileTriggerProps {
|
|
19
|
+
export interface FileTriggerProps extends GlobalDOMAttributes<HTMLInputElement> {
|
|
19
20
|
/**
|
|
20
21
|
* Specifies what mime type of files are allowed.
|
|
21
22
|
*/
|
|
22
|
-
acceptedFileTypes?:
|
|
23
|
+
acceptedFileTypes?: ReadonlyArray<string>,
|
|
23
24
|
/**
|
|
24
25
|
* Whether multiple files can be selected.
|
|
25
26
|
*/
|
|
@@ -48,7 +49,7 @@ export interface FileTriggerProps {
|
|
|
48
49
|
export const FileTrigger = forwardRef(function FileTrigger(props: FileTriggerProps, ref: ForwardedRef<HTMLInputElement>) {
|
|
49
50
|
let {onSelect, acceptedFileTypes, allowsMultiple, defaultCamera, children, acceptDirectory, ...rest} = props;
|
|
50
51
|
let inputRef = useObjectRef(ref);
|
|
51
|
-
let domProps = filterDOMProps(rest);
|
|
52
|
+
let domProps = filterDOMProps(rest, {global: true});
|
|
52
53
|
|
|
53
54
|
return (
|
|
54
55
|
<>
|
package/src/Form.tsx
CHANGED
|
@@ -12,10 +12,11 @@
|
|
|
12
12
|
|
|
13
13
|
import {ContextValue, DOMProps, useContextProps} from './utils';
|
|
14
14
|
import {FormValidationContext} from 'react-stately';
|
|
15
|
+
import {GlobalDOMAttributes} from '@react-types/shared';
|
|
15
16
|
import React, {createContext, ForwardedRef, forwardRef} from 'react';
|
|
16
17
|
import {FormProps as SharedFormProps} from '@react-types/form';
|
|
17
18
|
|
|
18
|
-
export interface FormProps extends SharedFormProps, DOMProps {
|
|
19
|
+
export interface FormProps extends SharedFormProps, DOMProps, GlobalDOMAttributes<HTMLFormElement> {
|
|
19
20
|
/**
|
|
20
21
|
* Whether to use native HTML form validation to prevent form submission
|
|
21
22
|
* when a field value is missing or invalid, or mark fields as required
|