react-aria-components 1.5.0 → 1.6.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/Autocomplete.main.js +80 -0
- package/dist/Autocomplete.main.js.map +1 -0
- package/dist/Autocomplete.mjs +68 -0
- package/dist/Autocomplete.module.js +68 -0
- package/dist/Autocomplete.module.js.map +1 -0
- package/dist/Breadcrumbs.main.js +2 -5
- package/dist/Breadcrumbs.main.js.map +1 -1
- package/dist/Breadcrumbs.mjs +3 -6
- package/dist/Breadcrumbs.module.js +3 -6
- package/dist/Breadcrumbs.module.js.map +1 -1
- package/dist/Button.main.js +5 -5
- package/dist/Button.main.js.map +1 -1
- package/dist/Button.mjs +5 -5
- package/dist/Button.module.js +5 -5
- package/dist/Button.module.js.map +1 -1
- package/dist/Calendar.main.js +29 -28
- package/dist/Calendar.main.js.map +1 -1
- package/dist/Calendar.mjs +30 -29
- package/dist/Calendar.module.js +30 -29
- package/dist/Calendar.module.js.map +1 -1
- package/dist/Checkbox.main.js +5 -12
- package/dist/Checkbox.main.js.map +1 -1
- package/dist/Checkbox.mjs +6 -13
- package/dist/Checkbox.module.js +6 -13
- package/dist/Checkbox.module.js.map +1 -1
- package/dist/ColorArea.main.js +2 -5
- package/dist/ColorArea.main.js.map +1 -1
- package/dist/ColorArea.mjs +3 -6
- package/dist/ColorArea.module.js +3 -6
- package/dist/ColorArea.module.js.map +1 -1
- package/dist/ColorField.main.js +2 -5
- package/dist/ColorField.main.js.map +1 -1
- package/dist/ColorField.mjs +2 -5
- package/dist/ColorField.module.js +2 -5
- package/dist/ColorField.module.js.map +1 -1
- package/dist/ColorSlider.main.js +2 -5
- package/dist/ColorSlider.main.js.map +1 -1
- package/dist/ColorSlider.mjs +2 -5
- package/dist/ColorSlider.module.js +2 -5
- package/dist/ColorSlider.module.js.map +1 -1
- package/dist/ColorSwatch.main.js +2 -5
- package/dist/ColorSwatch.main.js.map +1 -1
- package/dist/ColorSwatch.mjs +2 -5
- package/dist/ColorSwatch.module.js +2 -5
- package/dist/ColorSwatch.module.js.map +1 -1
- package/dist/ColorSwatchPicker.main.js +4 -8
- package/dist/ColorSwatchPicker.main.js.map +1 -1
- package/dist/ColorSwatchPicker.mjs +5 -9
- package/dist/ColorSwatchPicker.module.js +5 -9
- package/dist/ColorSwatchPicker.module.js.map +1 -1
- package/dist/ColorThumb.main.js +2 -5
- package/dist/ColorThumb.main.js.map +1 -1
- package/dist/ColorThumb.mjs +3 -6
- package/dist/ColorThumb.module.js +3 -6
- package/dist/ColorThumb.module.js.map +1 -1
- package/dist/ColorWheel.main.js +5 -11
- package/dist/ColorWheel.main.js.map +1 -1
- package/dist/ColorWheel.mjs +6 -12
- package/dist/ColorWheel.module.js +6 -12
- package/dist/ColorWheel.module.js.map +1 -1
- package/dist/ComboBox.main.js +2 -5
- package/dist/ComboBox.main.js.map +1 -1
- package/dist/ComboBox.mjs +3 -6
- package/dist/ComboBox.module.js +3 -6
- package/dist/ComboBox.module.js.map +1 -1
- package/dist/DateField.main.js +8 -23
- package/dist/DateField.main.js.map +1 -1
- package/dist/DateField.mjs +9 -24
- package/dist/DateField.module.js +9 -24
- package/dist/DateField.module.js.map +1 -1
- package/dist/DatePicker.main.js +4 -11
- package/dist/DatePicker.main.js.map +1 -1
- package/dist/DatePicker.mjs +5 -12
- package/dist/DatePicker.module.js +5 -12
- package/dist/DatePicker.module.js.map +1 -1
- package/dist/Dialog.main.js +2 -5
- package/dist/Dialog.main.js.map +1 -1
- package/dist/Dialog.mjs +3 -6
- package/dist/Dialog.module.js +3 -6
- package/dist/Dialog.module.js.map +1 -1
- package/dist/Disclosure.main.js +6 -16
- package/dist/Disclosure.main.js.map +1 -1
- package/dist/Disclosure.mjs +6 -16
- package/dist/Disclosure.module.js +6 -16
- package/dist/Disclosure.module.js.map +1 -1
- package/dist/DragAndDrop.main.js +2 -5
- package/dist/DragAndDrop.main.js.map +1 -1
- package/dist/DragAndDrop.mjs +3 -6
- package/dist/DragAndDrop.module.js +3 -6
- package/dist/DragAndDrop.module.js.map +1 -1
- package/dist/DropZone.main.js +2 -5
- package/dist/DropZone.main.js.map +1 -1
- package/dist/DropZone.mjs +3 -6
- package/dist/DropZone.module.js +3 -6
- package/dist/DropZone.module.js.map +1 -1
- package/dist/FieldError.main.js +2 -5
- package/dist/FieldError.main.js.map +1 -1
- package/dist/FieldError.mjs +3 -6
- package/dist/FieldError.module.js +3 -6
- package/dist/FieldError.module.js.map +1 -1
- package/dist/FileTrigger.main.js +2 -5
- package/dist/FileTrigger.main.js.map +1 -1
- package/dist/FileTrigger.mjs +2 -5
- package/dist/FileTrigger.module.js +2 -5
- package/dist/FileTrigger.module.js.map +1 -1
- package/dist/Form.main.js +2 -6
- package/dist/Form.main.js.map +1 -1
- package/dist/Form.mjs +2 -6
- package/dist/Form.module.js +2 -6
- package/dist/Form.module.js.map +1 -1
- package/dist/GridList.main.js +2 -6
- package/dist/GridList.main.js.map +1 -1
- package/dist/GridList.mjs +3 -7
- package/dist/GridList.module.js +3 -7
- package/dist/GridList.module.js.map +1 -1
- package/dist/Group.main.js +2 -5
- package/dist/Group.main.js.map +1 -1
- package/dist/Group.mjs +2 -5
- package/dist/Group.module.js +2 -5
- package/dist/Group.module.js.map +1 -1
- package/dist/Heading.main.js +2 -3
- package/dist/Heading.main.js.map +1 -1
- package/dist/Heading.mjs +2 -3
- package/dist/Heading.module.js +2 -3
- package/dist/Heading.module.js.map +1 -1
- package/dist/Input.main.js +2 -5
- package/dist/Input.main.js.map +1 -1
- package/dist/Input.mjs +2 -5
- package/dist/Input.module.js +2 -5
- package/dist/Input.module.js.map +1 -1
- package/dist/Keyboard.main.js +2 -3
- package/dist/Keyboard.main.js.map +1 -1
- package/dist/Keyboard.mjs +2 -3
- package/dist/Keyboard.module.js +2 -3
- package/dist/Keyboard.module.js.map +1 -1
- package/dist/Label.main.js +2 -3
- package/dist/Label.main.js.map +1 -1
- package/dist/Label.mjs +2 -3
- package/dist/Label.module.js +2 -3
- package/dist/Label.module.js.map +1 -1
- package/dist/Link.main.js +2 -6
- package/dist/Link.main.js.map +1 -1
- package/dist/Link.mjs +2 -6
- package/dist/Link.module.js +2 -6
- package/dist/Link.module.js.map +1 -1
- package/dist/ListBox.main.js +22 -11
- package/dist/ListBox.main.js.map +1 -1
- package/dist/ListBox.mjs +24 -13
- package/dist/ListBox.module.js +24 -13
- package/dist/ListBox.module.js.map +1 -1
- package/dist/Menu.main.js +21 -13
- package/dist/Menu.main.js.map +1 -1
- package/dist/Menu.mjs +23 -15
- package/dist/Menu.module.js +23 -15
- package/dist/Menu.module.js.map +1 -1
- package/dist/Meter.main.js +2 -5
- package/dist/Meter.main.js.map +1 -1
- package/dist/Meter.mjs +2 -5
- package/dist/Meter.module.js +2 -5
- package/dist/Meter.module.js.map +1 -1
- package/dist/Modal.main.js +7 -10
- package/dist/Modal.main.js.map +1 -1
- package/dist/Modal.mjs +10 -13
- package/dist/Modal.module.js +10 -13
- package/dist/Modal.module.js.map +1 -1
- package/dist/NumberField.main.js +2 -5
- package/dist/NumberField.main.js.map +1 -1
- package/dist/NumberField.mjs +3 -6
- package/dist/NumberField.module.js +3 -6
- package/dist/NumberField.module.js.map +1 -1
- package/dist/OverlayArrow.main.js +2 -6
- package/dist/OverlayArrow.main.js.map +1 -1
- package/dist/OverlayArrow.mjs +2 -6
- package/dist/OverlayArrow.module.js +2 -6
- package/dist/OverlayArrow.module.js.map +1 -1
- package/dist/Popover.main.js +4 -7
- package/dist/Popover.main.js.map +1 -1
- package/dist/Popover.mjs +7 -10
- package/dist/Popover.module.js +7 -10
- package/dist/Popover.module.js.map +1 -1
- package/dist/ProgressBar.main.js +2 -6
- package/dist/ProgressBar.main.js.map +1 -1
- package/dist/ProgressBar.mjs +2 -6
- package/dist/ProgressBar.module.js +2 -6
- package/dist/ProgressBar.module.js.map +1 -1
- package/dist/RadioGroup.main.js +4 -10
- package/dist/RadioGroup.main.js.map +1 -1
- package/dist/RadioGroup.mjs +4 -10
- package/dist/RadioGroup.module.js +4 -10
- package/dist/RadioGroup.module.js.map +1 -1
- package/dist/SearchField.main.js +6 -8
- package/dist/SearchField.main.js.map +1 -1
- package/dist/SearchField.mjs +8 -10
- package/dist/SearchField.module.js +8 -10
- package/dist/SearchField.module.js.map +1 -1
- package/dist/Select.main.js +6 -12
- package/dist/Select.main.js.map +1 -1
- package/dist/Select.mjs +7 -13
- package/dist/Select.module.js +7 -13
- package/dist/Select.module.js.map +1 -1
- package/dist/Slider.main.js +8 -20
- package/dist/Slider.main.js.map +1 -1
- package/dist/Slider.mjs +9 -21
- package/dist/Slider.module.js +9 -21
- package/dist/Slider.module.js.map +1 -1
- package/dist/Switch.main.js +2 -5
- package/dist/Switch.main.js.map +1 -1
- package/dist/Switch.mjs +2 -5
- package/dist/Switch.module.js +2 -5
- package/dist/Switch.module.js.map +1 -1
- package/dist/Table.main.js +6 -12
- package/dist/Table.main.js.map +1 -1
- package/dist/Table.mjs +7 -13
- package/dist/Table.module.js +7 -13
- package/dist/Table.module.js.map +1 -1
- package/dist/Tabs.main.js +9 -17
- package/dist/Tabs.main.js.map +1 -1
- package/dist/Tabs.mjs +11 -19
- package/dist/Tabs.module.js +11 -19
- package/dist/Tabs.module.js.map +1 -1
- package/dist/TagGroup.main.js +4 -10
- package/dist/TagGroup.main.js.map +1 -1
- package/dist/TagGroup.mjs +5 -11
- package/dist/TagGroup.module.js +5 -11
- package/dist/TagGroup.module.js.map +1 -1
- package/dist/Text.main.js +2 -3
- package/dist/Text.main.js.map +1 -1
- package/dist/Text.mjs +2 -3
- package/dist/Text.module.js +2 -3
- package/dist/Text.module.js.map +1 -1
- package/dist/TextArea.main.js +2 -5
- package/dist/TextArea.main.js.map +1 -1
- package/dist/TextArea.mjs +2 -5
- package/dist/TextArea.module.js +2 -5
- package/dist/TextArea.module.js.map +1 -1
- package/dist/TextField.main.js +9 -9
- package/dist/TextField.main.js.map +1 -1
- package/dist/TextField.mjs +11 -11
- package/dist/TextField.module.js +11 -11
- package/dist/TextField.module.js.map +1 -1
- package/dist/ToggleButton.main.js +2 -5
- package/dist/ToggleButton.main.js.map +1 -1
- package/dist/ToggleButton.mjs +3 -6
- package/dist/ToggleButton.module.js +3 -6
- package/dist/ToggleButton.module.js.map +1 -1
- package/dist/ToggleButtonGroup.main.js +2 -5
- package/dist/ToggleButtonGroup.main.js.map +1 -1
- package/dist/ToggleButtonGroup.mjs +2 -5
- package/dist/ToggleButtonGroup.module.js +2 -5
- package/dist/ToggleButtonGroup.module.js.map +1 -1
- package/dist/Toolbar.main.js +2 -6
- package/dist/Toolbar.main.js.map +1 -1
- package/dist/Toolbar.mjs +2 -6
- package/dist/Toolbar.module.js +2 -6
- package/dist/Toolbar.module.js.map +1 -1
- package/dist/Tooltip.main.js +4 -7
- package/dist/Tooltip.main.js.map +1 -1
- package/dist/Tooltip.mjs +7 -10
- package/dist/Tooltip.module.js +7 -10
- package/dist/Tooltip.module.js.map +1 -1
- package/dist/Tree.main.js +2 -6
- package/dist/Tree.main.js.map +1 -1
- package/dist/Tree.mjs +3 -7
- package/dist/Tree.module.js +3 -7
- package/dist/Tree.module.js.map +1 -1
- package/dist/import.mjs +4 -2
- package/dist/main.js +6 -0
- package/dist/main.js.map +1 -1
- package/dist/module.js +4 -2
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +230 -220
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.main.js +0 -61
- package/dist/utils.main.js.map +1 -1
- package/dist/utils.mjs +1 -60
- package/dist/utils.module.js +1 -60
- package/dist/utils.module.js.map +1 -1
- package/i18n/ar-AE.js +1 -1
- package/i18n/ar-AE.mjs +1 -1
- package/i18n/bg-BG.js +1 -1
- package/i18n/bg-BG.mjs +1 -1
- package/i18n/cs-CZ.js +1 -1
- package/i18n/cs-CZ.mjs +1 -1
- package/i18n/da-DK.js +1 -1
- package/i18n/da-DK.mjs +1 -1
- package/i18n/de-DE.js +1 -1
- package/i18n/de-DE.mjs +1 -1
- package/i18n/el-GR.js +1 -1
- package/i18n/el-GR.mjs +1 -1
- package/i18n/en-US.js +1 -1
- package/i18n/en-US.mjs +1 -1
- package/i18n/es-ES.js +1 -1
- package/i18n/es-ES.mjs +1 -1
- package/i18n/et-EE.js +1 -1
- package/i18n/et-EE.mjs +1 -1
- package/i18n/fi-FI.js +1 -1
- package/i18n/fi-FI.mjs +1 -1
- package/i18n/fr-FR.js +1 -1
- package/i18n/fr-FR.mjs +1 -1
- package/i18n/he-IL.js +1 -1
- package/i18n/he-IL.mjs +1 -1
- package/i18n/hr-HR.js +1 -1
- package/i18n/hr-HR.mjs +1 -1
- package/i18n/hu-HU.js +1 -1
- package/i18n/hu-HU.mjs +1 -1
- package/i18n/index.js +1 -1
- package/i18n/index.mjs +1 -1
- package/i18n/it-IT.js +1 -1
- package/i18n/it-IT.mjs +1 -1
- package/i18n/ja-JP.js +1 -1
- package/i18n/ja-JP.mjs +1 -1
- package/i18n/ko-KR.js +1 -1
- package/i18n/ko-KR.mjs +1 -1
- package/i18n/lt-LT.js +1 -1
- package/i18n/lt-LT.mjs +1 -1
- package/i18n/lv-LV.js +1 -1
- package/i18n/lv-LV.mjs +1 -1
- package/i18n/nb-NO.js +1 -1
- package/i18n/nb-NO.mjs +1 -1
- package/i18n/nl-NL.js +1 -1
- package/i18n/nl-NL.mjs +1 -1
- package/i18n/pl-PL.js +1 -1
- package/i18n/pl-PL.mjs +1 -1
- package/i18n/pt-BR.js +1 -1
- package/i18n/pt-BR.mjs +1 -1
- package/i18n/pt-PT.js +1 -1
- package/i18n/pt-PT.mjs +1 -1
- package/i18n/ro-RO.js +1 -1
- package/i18n/ro-RO.mjs +1 -1
- package/i18n/ru-RU.js +1 -1
- package/i18n/ru-RU.mjs +1 -1
- package/i18n/sk-SK.js +1 -1
- package/i18n/sk-SK.mjs +1 -1
- package/i18n/sl-SI.js +1 -1
- package/i18n/sl-SI.mjs +1 -1
- package/i18n/sr-SP.js +1 -1
- package/i18n/sr-SP.mjs +1 -1
- package/i18n/sv-SE.js +1 -1
- package/i18n/sv-SE.mjs +1 -1
- package/i18n/tr-TR.js +1 -1
- package/i18n/tr-TR.mjs +1 -1
- package/i18n/uk-UA.js +1 -1
- package/i18n/uk-UA.mjs +1 -1
- package/i18n/zh-CN.js +1 -1
- package/i18n/zh-CN.mjs +1 -1
- package/i18n/zh-TW.js +1 -1
- package/i18n/zh-TW.mjs +1 -1
- package/package.json +30 -28
- package/src/Autocomplete.tsx +71 -0
- package/src/Breadcrumbs.tsx +5 -8
- package/src/Button.tsx +8 -8
- package/src/Calendar.tsx +35 -39
- package/src/Checkbox.tsx +11 -17
- package/src/ColorArea.tsx +5 -8
- package/src/ColorField.tsx +5 -8
- package/src/ColorSlider.tsx +5 -8
- package/src/ColorSwatch.tsx +5 -8
- package/src/ColorSwatchPicker.tsx +7 -13
- package/src/ColorThumb.tsx +5 -8
- package/src/ColorWheel.tsx +10 -16
- package/src/ComboBox.tsx +5 -8
- package/src/DateField.tsx +21 -33
- package/src/DatePicker.tsx +9 -15
- package/src/Dialog.tsx +5 -8
- package/src/Disclosure.tsx +16 -25
- package/src/DragAndDrop.tsx +5 -8
- package/src/DropZone.tsx +5 -8
- package/src/FieldError.tsx +5 -8
- package/src/FileTrigger.tsx +5 -8
- package/src/Form.tsx +6 -9
- package/src/GridList.tsx +6 -9
- package/src/Group.tsx +5 -8
- package/src/Heading.tsx +2 -5
- package/src/Input.tsx +5 -8
- package/src/Keyboard.tsx +2 -5
- package/src/Label.tsx +2 -5
- package/src/Link.tsx +6 -9
- package/src/ListBox.tsx +16 -15
- package/src/Menu.tsx +20 -19
- package/src/Meter.tsx +5 -8
- package/src/Modal.tsx +7 -10
- package/src/NumberField.tsx +5 -8
- package/src/OverlayArrow.tsx +6 -9
- package/src/Popover.tsx +7 -10
- package/src/ProgressBar.tsx +6 -9
- package/src/RadioGroup.tsx +10 -16
- package/src/SearchField.tsx +9 -11
- package/src/Select.tsx +12 -17
- package/src/Slider.tsx +20 -32
- package/src/Switch.tsx +5 -8
- package/src/Table.tsx +10 -19
- package/src/Tabs.tsx +18 -25
- package/src/TagGroup.tsx +8 -14
- package/src/Text.tsx +2 -5
- package/src/TextArea.tsx +5 -7
- package/src/TextField.tsx +11 -13
- package/src/ToggleButton.tsx +5 -8
- package/src/ToggleButtonGroup.tsx +5 -8
- package/src/Toolbar.tsx +6 -9
- package/src/Tooltip.tsx +7 -10
- package/src/Tree.tsx +6 -9
- package/src/index.ts +3 -1
- package/src/utils.tsx +0 -71
package/src/NumberField.tsx
CHANGED
|
@@ -46,7 +46,10 @@ export interface NumberFieldProps extends Omit<AriaNumberFieldProps, 'label' | '
|
|
|
46
46
|
export const NumberFieldContext = createContext<ContextValue<NumberFieldProps, HTMLDivElement>>(null);
|
|
47
47
|
export const NumberFieldStateContext = createContext<NumberFieldState | null>(null);
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
/**
|
|
50
|
+
* A number field allows a user to enter a number, and increment or decrement the value using stepper buttons.
|
|
51
|
+
*/
|
|
52
|
+
export const NumberField = /*#__PURE__*/ (forwardRef as forwardRefType)(function NumberField(props: NumberFieldProps, ref: ForwardedRef<HTMLDivElement>) {
|
|
50
53
|
[props, ref] = useContextProps(props, ref, NumberFieldContext);
|
|
51
54
|
let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};
|
|
52
55
|
let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';
|
|
@@ -118,10 +121,4 @@ function NumberField(props: NumberFieldProps, ref: ForwardedRef<HTMLDivElement>)
|
|
|
118
121
|
{props.name && <input type="hidden" name={props.name} value={isNaN(state.numberValue) ? '' : state.numberValue} />}
|
|
119
122
|
</Provider>
|
|
120
123
|
);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* A number field allows a user to enter a number, and increment or decrement the value using stepper buttons.
|
|
125
|
-
*/
|
|
126
|
-
const _NumberField = /*#__PURE__*/ (forwardRef as forwardRefType)(NumberField);
|
|
127
|
-
export {_NumberField as NumberField};
|
|
124
|
+
});
|
package/src/OverlayArrow.tsx
CHANGED
|
@@ -33,7 +33,11 @@ export interface OverlayArrowRenderProps {
|
|
|
33
33
|
placement: PlacementAxis | null
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
/**
|
|
37
|
+
* An OverlayArrow renders a custom arrow element relative to an overlay element
|
|
38
|
+
* such as a popover or tooltip such that it aligns with a trigger element.
|
|
39
|
+
*/
|
|
40
|
+
export const OverlayArrow = /*#__PURE__*/ (forwardRef as forwardRefType)(function OverlayArrow(props: OverlayArrowProps, ref: ForwardedRef<HTMLDivElement>) {
|
|
37
41
|
[props, ref] = useContextProps(props, ref, OverlayArrowContext);
|
|
38
42
|
let placement = (props as OverlayArrowContextValue).placement;
|
|
39
43
|
let style: CSSProperties = {
|
|
@@ -68,11 +72,4 @@ function OverlayArrow(props: OverlayArrowProps, ref: ForwardedRef<HTMLDivElement
|
|
|
68
72
|
ref={ref}
|
|
69
73
|
data-placement={placement} />
|
|
70
74
|
);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* An OverlayArrow renders a custom arrow element relative to an overlay element
|
|
75
|
-
* such as a popover or tooltip such that it aligns with a trigger element.
|
|
76
|
-
*/
|
|
77
|
-
const _OverlayArrow = /*#__PURE__*/ (forwardRef as forwardRefType)(OverlayArrow);
|
|
78
|
-
export {_OverlayArrow as OverlayArrow};
|
|
75
|
+
});
|
package/src/Popover.tsx
CHANGED
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import {AriaPopoverProps, DismissButton, Overlay, PlacementAxis, PositionProps, usePopover} from 'react-aria';
|
|
14
|
-
import {ContextValue, RenderProps, SlotProps, useContextProps,
|
|
15
|
-
import {filterDOMProps, mergeProps, useLayoutEffect} from '@react-aria/utils';
|
|
14
|
+
import {ContextValue, RenderProps, SlotProps, useContextProps, useRenderProps} from './utils';
|
|
15
|
+
import {filterDOMProps, mergeProps, useEnterAnimation, useExitAnimation, useLayoutEffect} from '@react-aria/utils';
|
|
16
16
|
import {forwardRefType, RefObject} from '@react-types/shared';
|
|
17
17
|
import {OverlayArrowContext} from './OverlayArrow';
|
|
18
18
|
import {OverlayTriggerProps, OverlayTriggerState, useOverlayTriggerState} from 'react-stately';
|
|
@@ -80,7 +80,10 @@ export interface PopoverRenderProps {
|
|
|
80
80
|
|
|
81
81
|
export const PopoverContext = createContext<ContextValue<PopoverProps, HTMLElement>>(null);
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
/**
|
|
84
|
+
* A popover is an overlay element positioned relative to a trigger.
|
|
85
|
+
*/
|
|
86
|
+
export const Popover = /*#__PURE__*/ (forwardRef as forwardRefType)(function Popover(props: PopoverProps, ref: ForwardedRef<HTMLElement>) {
|
|
84
87
|
[props, ref] = useContextProps(props, ref, PopoverContext);
|
|
85
88
|
let contextState = useContext(OverlayTriggerStateContext);
|
|
86
89
|
let localState = useOverlayTriggerState(props);
|
|
@@ -116,13 +119,7 @@ function Popover(props: PopoverProps, ref: ForwardedRef<HTMLElement>) {
|
|
|
116
119
|
popoverRef={ref}
|
|
117
120
|
isExiting={isExiting} />
|
|
118
121
|
);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* A popover is an overlay element positioned relative to a trigger.
|
|
123
|
-
*/
|
|
124
|
-
const _Popover = /*#__PURE__*/ (forwardRef as forwardRefType)(Popover);
|
|
125
|
-
export {_Popover as Popover};
|
|
122
|
+
});
|
|
126
123
|
|
|
127
124
|
interface PopoverInnerProps extends AriaPopoverProps, RenderProps<PopoverRenderProps>, SlotProps {
|
|
128
125
|
state: OverlayTriggerState,
|
package/src/ProgressBar.tsx
CHANGED
|
@@ -37,7 +37,11 @@ export interface ProgressBarRenderProps {
|
|
|
37
37
|
|
|
38
38
|
export const ProgressBarContext = createContext<ContextValue<ProgressBarProps, HTMLDivElement>>(null);
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Progress bars show either determinate or indeterminate progress of an operation
|
|
42
|
+
* over time.
|
|
43
|
+
*/
|
|
44
|
+
export const ProgressBar = forwardRef(function ProgressBar(props: ProgressBarProps, ref: ForwardedRef<HTMLDivElement>) {
|
|
41
45
|
[props, ref] = useContextProps(props, ref, ProgressBarContext);
|
|
42
46
|
let {
|
|
43
47
|
value = 0,
|
|
@@ -73,11 +77,4 @@ function ProgressBar(props: ProgressBarProps, ref: ForwardedRef<HTMLDivElement>)
|
|
|
73
77
|
</LabelContext.Provider>
|
|
74
78
|
</div>
|
|
75
79
|
);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Progress bars show either determinate or indeterminate progress of an operation
|
|
80
|
-
* over time.
|
|
81
|
-
*/
|
|
82
|
-
const _ProgressBar = forwardRef(ProgressBar);
|
|
83
|
-
export {_ProgressBar as ProgressBar};
|
|
80
|
+
});
|
package/src/RadioGroup.tsx
CHANGED
|
@@ -113,7 +113,10 @@ export const RadioGroupContext = createContext<ContextValue<RadioGroupProps, HTM
|
|
|
113
113
|
export const RadioContext = createContext<ContextValue<Partial<RadioProps>, HTMLLabelElement>>(null);
|
|
114
114
|
export const RadioGroupStateContext = createContext<RadioGroupState | null>(null);
|
|
115
115
|
|
|
116
|
-
|
|
116
|
+
/**
|
|
117
|
+
* A radio group allows a user to select a single item from a list of mutually exclusive options.
|
|
118
|
+
*/
|
|
119
|
+
export const RadioGroup = /*#__PURE__*/ (forwardRef as forwardRefType)(function RadioGroup(props: RadioGroupProps, ref: ForwardedRef<HTMLDivElement>) {
|
|
117
120
|
[props, ref] = useContextProps(props, ref, RadioGroupContext);
|
|
118
121
|
let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};
|
|
119
122
|
let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';
|
|
@@ -169,9 +172,12 @@ function RadioGroup(props: RadioGroupProps, ref: ForwardedRef<HTMLDivElement>) {
|
|
|
169
172
|
</Provider>
|
|
170
173
|
</div>
|
|
171
174
|
);
|
|
172
|
-
}
|
|
175
|
+
});
|
|
173
176
|
|
|
174
|
-
|
|
177
|
+
/**
|
|
178
|
+
* A radio represents an individual option within a radio group.
|
|
179
|
+
*/
|
|
180
|
+
export const Radio = /*#__PURE__*/ (forwardRef as forwardRefType)(function Radio(props: RadioProps, ref: ForwardedRef<HTMLLabelElement>) {
|
|
175
181
|
let {
|
|
176
182
|
inputRef: userProvidedInputRef = null,
|
|
177
183
|
...otherProps
|
|
@@ -230,16 +236,4 @@ function Radio(props: RadioProps, ref: ForwardedRef<HTMLLabelElement>) {
|
|
|
230
236
|
{renderProps.children}
|
|
231
237
|
</label>
|
|
232
238
|
);
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* A radio group allows a user to select a single item from a list of mutually exclusive options.
|
|
237
|
-
*/
|
|
238
|
-
const _RadioGroup = /*#__PURE__*/ (forwardRef as forwardRefType)(RadioGroup);
|
|
239
|
-
|
|
240
|
-
/**
|
|
241
|
-
* A radio represents an individual option within a radio group.
|
|
242
|
-
*/
|
|
243
|
-
const _Radio = /*#__PURE__*/ (forwardRef as forwardRefType)(Radio);
|
|
244
|
-
|
|
245
|
-
export {_RadioGroup as RadioGroup, _Radio as Radio};
|
|
239
|
+
});
|
package/src/SearchField.tsx
CHANGED
|
@@ -14,7 +14,7 @@ import {AriaSearchFieldProps, useSearchField} from 'react-aria';
|
|
|
14
14
|
import {ButtonContext} from './Button';
|
|
15
15
|
import {ContextValue, Provider, RACValidation, removeDataAttributes, RenderProps, SlotProps, useContextProps, useRenderProps, useSlot, useSlottedContext} from './utils';
|
|
16
16
|
import {FieldErrorContext} from './FieldError';
|
|
17
|
-
import {filterDOMProps} from '@react-aria/utils';
|
|
17
|
+
import {filterDOMProps, mergeProps} from '@react-aria/utils';
|
|
18
18
|
import {FormContext} from './Form';
|
|
19
19
|
import {forwardRefType} from '@react-types/shared';
|
|
20
20
|
import {GroupContext} from './Group';
|
|
@@ -50,11 +50,15 @@ export interface SearchFieldProps extends Omit<AriaSearchFieldProps, 'label' | '
|
|
|
50
50
|
|
|
51
51
|
export const SearchFieldContext = createContext<ContextValue<SearchFieldProps, HTMLDivElement>>(null);
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
/**
|
|
54
|
+
* A search field allows a user to enter and clear a search query.
|
|
55
|
+
*/
|
|
56
|
+
export const SearchField = /*#__PURE__*/ (forwardRef as forwardRefType)(function SearchField(props: SearchFieldProps, ref: ForwardedRef<HTMLDivElement>) {
|
|
54
57
|
[props, ref] = useContextProps(props, ref, SearchFieldContext);
|
|
55
58
|
let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};
|
|
56
59
|
let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';
|
|
57
60
|
let inputRef = useRef<HTMLInputElement>(null);
|
|
61
|
+
let [inputContextProps, mergedInputRef] = useContextProps({}, inputRef, InputContext);
|
|
58
62
|
let [labelRef, label] = useSlot();
|
|
59
63
|
let state = useSearchFieldState({
|
|
60
64
|
...props,
|
|
@@ -65,7 +69,7 @@ function SearchField(props: SearchFieldProps, ref: ForwardedRef<HTMLDivElement>)
|
|
|
65
69
|
...removeDataAttributes(props),
|
|
66
70
|
label,
|
|
67
71
|
validationBehavior
|
|
68
|
-
}, state,
|
|
72
|
+
}, state, mergedInputRef);
|
|
69
73
|
|
|
70
74
|
let renderProps = useRenderProps({
|
|
71
75
|
...props,
|
|
@@ -93,7 +97,7 @@ function SearchField(props: SearchFieldProps, ref: ForwardedRef<HTMLDivElement>)
|
|
|
93
97
|
<Provider
|
|
94
98
|
values={[
|
|
95
99
|
[LabelContext, {...labelProps, ref: labelRef}],
|
|
96
|
-
[InputContext, {...inputProps, ref:
|
|
100
|
+
[InputContext, {...mergeProps(inputProps, inputContextProps), ref: mergedInputRef}],
|
|
97
101
|
[ButtonContext, clearButtonProps],
|
|
98
102
|
[TextContext, {
|
|
99
103
|
slots: {
|
|
@@ -108,10 +112,4 @@ function SearchField(props: SearchFieldProps, ref: ForwardedRef<HTMLDivElement>)
|
|
|
108
112
|
</Provider>
|
|
109
113
|
</div>
|
|
110
114
|
);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* A search field allows a user to enter and clear a search query.
|
|
115
|
-
*/
|
|
116
|
-
const _SearchField = /*#__PURE__*/ (forwardRef as forwardRefType)(SearchField);
|
|
117
|
-
export {_SearchField as SearchField};
|
|
115
|
+
});
|
package/src/Select.tsx
CHANGED
|
@@ -67,7 +67,10 @@ export interface SelectProps<T extends object = {}> extends Omit<AriaSelectProps
|
|
|
67
67
|
export const SelectContext = createContext<ContextValue<SelectProps<any>, HTMLDivElement>>(null);
|
|
68
68
|
export const SelectStateContext = createContext<SelectState<unknown> | null>(null);
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
/**
|
|
71
|
+
* A select displays a collapsible list of options and allows a user to select one of them.
|
|
72
|
+
*/
|
|
73
|
+
export const Select = /*#__PURE__*/ (forwardRef as forwardRefType)(function Select<T extends object = {}>(props: SelectProps<T>, ref: ForwardedRef<HTMLDivElement>) {
|
|
71
74
|
[props, ref] = useContextProps(props, ref, SelectContext);
|
|
72
75
|
let {children, isDisabled = false, isInvalid = false, isRequired = false} = props;
|
|
73
76
|
let content = useMemo(() => (
|
|
@@ -89,7 +92,7 @@ function Select<T extends object = {}>(props: SelectProps<T>, ref: ForwardedRef<
|
|
|
89
92
|
{collection => <SelectInner props={props} collection={collection} selectRef={ref} />}
|
|
90
93
|
</CollectionBuilder>
|
|
91
94
|
);
|
|
92
|
-
}
|
|
95
|
+
});
|
|
93
96
|
|
|
94
97
|
interface SelectInnerProps<T extends object> {
|
|
95
98
|
props: SelectProps<T>,
|
|
@@ -199,6 +202,7 @@ function SelectInner<T extends object>({props, selectRef: ref, collection}: Sele
|
|
|
199
202
|
data-invalid={validation.isInvalid || undefined}
|
|
200
203
|
data-required={props.isRequired || undefined} />
|
|
201
204
|
<HiddenSelect
|
|
205
|
+
autoComplete={props.autoComplete}
|
|
202
206
|
state={state}
|
|
203
207
|
triggerRef={buttonRef}
|
|
204
208
|
label={label}
|
|
@@ -208,12 +212,6 @@ function SelectInner<T extends object>({props, selectRef: ref, collection}: Sele
|
|
|
208
212
|
);
|
|
209
213
|
}
|
|
210
214
|
|
|
211
|
-
/**
|
|
212
|
-
* A select displays a collapsible list of options and allows a user to select one of them.
|
|
213
|
-
*/
|
|
214
|
-
const _Select = /*#__PURE__*/ (forwardRef as forwardRefType)(Select);
|
|
215
|
-
export {_Select as Select};
|
|
216
|
-
|
|
217
215
|
export interface SelectValueRenderProps<T> {
|
|
218
216
|
/**
|
|
219
217
|
* Whether the value is a placeholder.
|
|
@@ -230,7 +228,11 @@ export interface SelectValueProps<T extends object> extends Omit<HTMLAttributes<
|
|
|
230
228
|
|
|
231
229
|
export const SelectValueContext = createContext<ContextValue<SelectValueProps<any>, HTMLSpanElement>>(null);
|
|
232
230
|
|
|
233
|
-
|
|
231
|
+
/**
|
|
232
|
+
* SelectValue renders the current value of a Select, or a placeholder if no value is selected.
|
|
233
|
+
* It is usually placed within the button element.
|
|
234
|
+
*/
|
|
235
|
+
export const SelectValue = /*#__PURE__*/ (forwardRef as forwardRefType)(function SelectValue<T extends object>(props: SelectValueProps<T>, ref: ForwardedRef<HTMLSpanElement>) {
|
|
234
236
|
[props, ref] = useContextProps(props, ref, SelectValueContext);
|
|
235
237
|
let state = useContext(SelectStateContext)!;
|
|
236
238
|
let {placeholder} = useSlottedContext(SelectContext)!;
|
|
@@ -276,11 +278,4 @@ function SelectValue<T extends object>(props: SelectValueProps<T>, ref: Forwarde
|
|
|
276
278
|
</TextContext.Provider>
|
|
277
279
|
</span>
|
|
278
280
|
);
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
/**
|
|
282
|
-
* SelectValue renders the current value of a Select, or a placeholder if no value is selected.
|
|
283
|
-
* It is usually placed within the button element.
|
|
284
|
-
*/
|
|
285
|
-
const _SelectValue = /*#__PURE__*/ (forwardRef as forwardRefType)(SelectValue);
|
|
286
|
-
export {_SelectValue as SelectValue};
|
|
281
|
+
});
|
package/src/Slider.tsx
CHANGED
|
@@ -47,7 +47,10 @@ export interface SliderRenderProps {
|
|
|
47
47
|
state: SliderState
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
/**
|
|
51
|
+
* A slider allows a user to select one or more values within a range.
|
|
52
|
+
*/
|
|
53
|
+
export const Slider = /*#__PURE__*/ (forwardRef as forwardRefType)(function Slider<T extends number | number[]>(props: SliderProps<T>, ref: ForwardedRef<HTMLDivElement>) {
|
|
51
54
|
[props, ref] = useContextProps(props, ref, SliderContext);
|
|
52
55
|
let trackRef = useRef<HTMLDivElement>(null);
|
|
53
56
|
let numberFormatter = useNumberFormatter(props.formatOptions);
|
|
@@ -91,18 +94,15 @@ function Slider<T extends number | number[]>(props: SliderProps<T>, ref: Forward
|
|
|
91
94
|
data-disabled={state.isDisabled || undefined} />
|
|
92
95
|
</Provider>
|
|
93
96
|
);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* A slider allows a user to select one or more values within a range.
|
|
98
|
-
*/
|
|
99
|
-
const _Slider = /*#__PURE__*/ (forwardRef as forwardRefType)(Slider);
|
|
100
|
-
export {_Slider as Slider};
|
|
97
|
+
});
|
|
101
98
|
|
|
102
99
|
export interface SliderOutputProps extends RenderProps<SliderRenderProps> {}
|
|
103
100
|
interface SliderOutputContextValue extends Omit<OutputHTMLAttributes<HTMLOutputElement>, 'children' | 'className' | 'style'>, SliderOutputProps {}
|
|
104
101
|
|
|
105
|
-
|
|
102
|
+
/**
|
|
103
|
+
* A slider output displays the current value of a slider as text.
|
|
104
|
+
*/
|
|
105
|
+
export const SliderOutput = /*#__PURE__*/ (forwardRef as forwardRefType)(function SliderOutput(props: SliderOutputProps, ref: ForwardedRef<HTMLOutputElement>) {
|
|
106
106
|
[props, ref] = useContextProps(props, ref, SliderOutputContext);
|
|
107
107
|
let {children, style, className, ...otherProps} = props;
|
|
108
108
|
let state = useContext(SliderStateContext)!;
|
|
@@ -127,13 +127,7 @@ function SliderOutput(props: SliderOutputProps, ref: ForwardedRef<HTMLOutputElem
|
|
|
127
127
|
data-orientation={state.orientation || undefined}
|
|
128
128
|
data-disabled={state.isDisabled || undefined} />
|
|
129
129
|
);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* A slider output displays the current value of a slider as text.
|
|
134
|
-
*/
|
|
135
|
-
const _SliderOutput = /*#__PURE__*/ (forwardRef as forwardRefType)(SliderOutput);
|
|
136
|
-
export {_SliderOutput as SliderOutput};
|
|
130
|
+
});
|
|
137
131
|
|
|
138
132
|
export interface SliderTrackRenderProps extends SliderRenderProps {
|
|
139
133
|
/**
|
|
@@ -146,7 +140,10 @@ export interface SliderTrackRenderProps extends SliderRenderProps {
|
|
|
146
140
|
export interface SliderTrackProps extends HoverEvents, RenderProps<SliderTrackRenderProps> {}
|
|
147
141
|
interface SliderTrackContextValue extends Omit<HTMLAttributes<HTMLElement>, 'children' | 'className' | 'style'>, SliderTrackProps {}
|
|
148
142
|
|
|
149
|
-
|
|
143
|
+
/**
|
|
144
|
+
* A slider track is a container for one or more slider thumbs.
|
|
145
|
+
*/
|
|
146
|
+
export const SliderTrack = /*#__PURE__*/ (forwardRef as forwardRefType)(function SliderTrack(props: SliderTrackProps, ref: ForwardedRef<HTMLDivElement>) {
|
|
150
147
|
[props, ref] = useContextProps(props, ref, SliderTrackContext);
|
|
151
148
|
let state = useContext(SliderStateContext)!;
|
|
152
149
|
let {onHoverStart, onHoverEnd, onHoverChange, ...otherProps} = props;
|
|
@@ -171,13 +168,7 @@ function SliderTrack(props: SliderTrackProps, ref: ForwardedRef<HTMLDivElement>)
|
|
|
171
168
|
data-orientation={state.orientation || undefined}
|
|
172
169
|
data-disabled={state.isDisabled || undefined} />
|
|
173
170
|
);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* A slider track is a container for one or more slider thumbs.
|
|
178
|
-
*/
|
|
179
|
-
const _SliderTrack = /*#__PURE__*/ (forwardRef as forwardRefType)(SliderTrack);
|
|
180
|
-
export {_SliderTrack as SliderTrack};
|
|
171
|
+
});
|
|
181
172
|
|
|
182
173
|
export interface SliderThumbRenderProps {
|
|
183
174
|
/**
|
|
@@ -218,7 +209,10 @@ export interface SliderThumbProps extends Omit<AriaSliderThumbProps, 'label' | '
|
|
|
218
209
|
inputRef?: RefObject<HTMLInputElement | null>
|
|
219
210
|
}
|
|
220
211
|
|
|
221
|
-
|
|
212
|
+
/**
|
|
213
|
+
* A slider thumb represents an individual value that the user can adjust within a slider track.
|
|
214
|
+
*/
|
|
215
|
+
export const SliderThumb = /*#__PURE__*/ (forwardRef as forwardRefType)(function SliderThumb(props: SliderThumbProps, ref: ForwardedRef<HTMLDivElement>) {
|
|
222
216
|
let {
|
|
223
217
|
inputRef: userInputRef = null
|
|
224
218
|
} = props;
|
|
@@ -277,10 +271,4 @@ function SliderThumb(props: SliderThumbProps, ref: ForwardedRef<HTMLDivElement>)
|
|
|
277
271
|
</Provider>
|
|
278
272
|
</div>
|
|
279
273
|
);
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
/**
|
|
283
|
-
* A slider thumb represents an individual value that the user can adjust within a slider track.
|
|
284
|
-
*/
|
|
285
|
-
const _SliderThumb = /*#__PURE__*/ (forwardRef as forwardRefType)(SliderThumb);
|
|
286
|
-
export {_SliderThumb as SliderThumb};
|
|
274
|
+
});
|
package/src/Switch.tsx
CHANGED
|
@@ -68,7 +68,10 @@ export interface SwitchRenderProps {
|
|
|
68
68
|
|
|
69
69
|
export const SwitchContext = createContext<ContextValue<SwitchProps, HTMLLabelElement>>(null);
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
/**
|
|
72
|
+
* A switch allows a user to turn a setting on or off.
|
|
73
|
+
*/
|
|
74
|
+
export const Switch = /*#__PURE__*/ (forwardRef as forwardRefType)(function Switch(props: SwitchProps, ref: ForwardedRef<HTMLLabelElement>) {
|
|
72
75
|
let {
|
|
73
76
|
inputRef: userProvidedInputRef = null,
|
|
74
77
|
...otherProps
|
|
@@ -125,10 +128,4 @@ function Switch(props: SwitchProps, ref: ForwardedRef<HTMLLabelElement>) {
|
|
|
125
128
|
{renderProps.children}
|
|
126
129
|
</label>
|
|
127
130
|
);
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* A switch allows a user to turn a setting on or off.
|
|
132
|
-
*/
|
|
133
|
-
const _Switch = /*#__PURE__*/ (forwardRef as forwardRefType)(Switch);
|
|
134
|
-
export {_Switch as Switch};
|
|
131
|
+
});
|
package/src/Table.tsx
CHANGED
|
@@ -214,7 +214,7 @@ export interface ResizableTableContainerProps extends DOMProps, ScrollableProps<
|
|
|
214
214
|
onResizeEnd?: (widths: Map<Key, ColumnSize>) => void
|
|
215
215
|
}
|
|
216
216
|
|
|
217
|
-
function ResizableTableContainer(props: ResizableTableContainerProps, ref: ForwardedRef<HTMLDivElement>) {
|
|
217
|
+
export const ResizableTableContainer = forwardRef(function ResizableTableContainer(props: ResizableTableContainerProps, ref: ForwardedRef<HTMLDivElement>) {
|
|
218
218
|
let containerRef = useObjectRef(ref);
|
|
219
219
|
let tableRef = useRef<HTMLTableElement>(null);
|
|
220
220
|
let scrollRef = useRef<HTMLElement | null>(null);
|
|
@@ -267,10 +267,7 @@ function ResizableTableContainer(props: ResizableTableContainerProps, ref: Forwa
|
|
|
267
267
|
</ResizableTableContainerContext.Provider>
|
|
268
268
|
</div>
|
|
269
269
|
);
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
const _ResizableTableContainer = forwardRef(ResizableTableContainer);
|
|
273
|
-
export {_ResizableTableContainer as ResizableTableContainer};
|
|
270
|
+
});
|
|
274
271
|
|
|
275
272
|
export const TableContext = createContext<ContextValue<TableProps, HTMLTableElement>>(null);
|
|
276
273
|
export const TableStateContext = createContext<TableState<any> | null>(null);
|
|
@@ -317,7 +314,11 @@ export interface TableProps extends Omit<SharedTableProps<any>, 'children'>, Sty
|
|
|
317
314
|
dragAndDropHooks?: DragAndDropHooks
|
|
318
315
|
}
|
|
319
316
|
|
|
320
|
-
|
|
317
|
+
/**
|
|
318
|
+
* A table displays data in rows and columns and enables a user to navigate its contents via directional navigation keys,
|
|
319
|
+
* and optionally supports row selection and sorting.
|
|
320
|
+
*/
|
|
321
|
+
export const Table = forwardRef(function Table(props: TableProps, ref: ForwardedRef<HTMLTableElement>) {
|
|
321
322
|
[props, ref] = useContextProps(props, ref, TableContext);
|
|
322
323
|
|
|
323
324
|
// Separate selection state so we have access to it from collection components via useTableOptions.
|
|
@@ -342,7 +343,7 @@ function Table(props: TableProps, ref: ForwardedRef<HTMLTableElement>) {
|
|
|
342
343
|
{collection => <TableInner props={props} forwardedRef={ref} selectionState={selectionState} collection={collection} />}
|
|
343
344
|
</CollectionBuilder>
|
|
344
345
|
);
|
|
345
|
-
}
|
|
346
|
+
});
|
|
346
347
|
|
|
347
348
|
interface TableInnerProps {
|
|
348
349
|
props: TableProps,
|
|
@@ -490,13 +491,6 @@ function TableInner({props, forwardedRef: ref, selectionState, collection}: Tabl
|
|
|
490
491
|
);
|
|
491
492
|
}
|
|
492
493
|
|
|
493
|
-
/**
|
|
494
|
-
* A table displays data in rows and columns and enables a user to navigate its contents via directional navigation keys,
|
|
495
|
-
* and optionally supports row selection and sorting.
|
|
496
|
-
*/
|
|
497
|
-
const _Table = forwardRef(Table);
|
|
498
|
-
export {_Table as Table};
|
|
499
|
-
|
|
500
494
|
function useElementType<E extends keyof JSX.IntrinsicElements>(element: E): E | 'div' {
|
|
501
495
|
let {isVirtualized} = useContext(CollectionRendererContext);
|
|
502
496
|
return isVirtualized ? 'div' : element;
|
|
@@ -802,7 +796,7 @@ interface ColumnResizerContextValue {
|
|
|
802
796
|
|
|
803
797
|
const ColumnResizerContext = createContext<ColumnResizerContextValue | null>(null);
|
|
804
798
|
|
|
805
|
-
function ColumnResizer(props: ColumnResizerProps, ref: ForwardedRef<HTMLDivElement>) {
|
|
799
|
+
export const ColumnResizer = forwardRef(function ColumnResizer(props: ColumnResizerProps, ref: ForwardedRef<HTMLDivElement>) {
|
|
806
800
|
let layoutState = useContext(TableColumnResizeStateContext);
|
|
807
801
|
if (!layoutState) {
|
|
808
802
|
throw new Error('Wrap your <Table> in a <ResizableTableContainer> to enable column resizing');
|
|
@@ -891,10 +885,7 @@ function ColumnResizer(props: ColumnResizerProps, ref: ForwardedRef<HTMLDivEleme
|
|
|
891
885
|
{isResizing && isMouseDown && ReactDOM.createPortal(<div style={{position: 'fixed', top: 0, left: 0, bottom: 0, right: 0, cursor}} />, document.body)}
|
|
892
886
|
</div>
|
|
893
887
|
);
|
|
894
|
-
}
|
|
895
|
-
|
|
896
|
-
const _ColumnResizer = forwardRef(ColumnResizer);
|
|
897
|
-
export {_ColumnResizer as ColumnResizer};
|
|
888
|
+
});
|
|
898
889
|
|
|
899
890
|
export interface TableBodyRenderProps {
|
|
900
891
|
/**
|
package/src/Tabs.tsx
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
import {AriaLabelingProps, forwardRefType, HoverEvents, Key, LinkDOMProps, RefObject} from '@react-types/shared';
|
|
14
14
|
import {AriaTabListProps, AriaTabPanelProps, mergeProps, Orientation, useFocusRing, useHover, useTab, useTabList, useTabPanel} from 'react-aria';
|
|
15
15
|
import {Collection, CollectionBuilder, createHideableComponent, createLeafComponent} from '@react-aria/collections';
|
|
16
|
-
import {CollectionProps, CollectionRendererContext, usePersistedKeys} from './Collection';
|
|
16
|
+
import {CollectionProps, CollectionRendererContext, DefaultCollectionRenderer, usePersistedKeys} from './Collection';
|
|
17
17
|
import {ContextValue, Provider, RenderProps, SlotProps, StyleRenderProps, useContextProps, useRenderProps, useSlottedContext} from './utils';
|
|
18
18
|
import {filterDOMProps, useObjectRef} from '@react-aria/utils';
|
|
19
19
|
import {Collection as ICollection, Node, TabListState, useTabListState} from 'react-stately';
|
|
@@ -118,7 +118,10 @@ export interface TabPanelRenderProps {
|
|
|
118
118
|
export const TabsContext = createContext<ContextValue<TabsProps, HTMLDivElement>>(null);
|
|
119
119
|
export const TabListStateContext = createContext<TabListState<object> | null>(null);
|
|
120
120
|
|
|
121
|
-
|
|
121
|
+
/**
|
|
122
|
+
* Tabs organize content into multiple sections and allow users to navigate between them.
|
|
123
|
+
*/
|
|
124
|
+
export const Tabs = /*#__PURE__*/ (forwardRef as forwardRefType)(function Tabs(props: TabsProps, ref: ForwardedRef<HTMLDivElement>) {
|
|
122
125
|
[props, ref] = useContextProps(props, ref, TabsContext);
|
|
123
126
|
let {children, orientation = 'horizontal'} = props;
|
|
124
127
|
children = useMemo(() => (
|
|
@@ -132,7 +135,7 @@ function Tabs(props: TabsProps, ref: ForwardedRef<HTMLDivElement>) {
|
|
|
132
135
|
{collection => <TabsInner props={props} collection={collection} tabsRef={ref} />}
|
|
133
136
|
</CollectionBuilder>
|
|
134
137
|
);
|
|
135
|
-
}
|
|
138
|
+
});
|
|
136
139
|
|
|
137
140
|
interface TabsInnerProps {
|
|
138
141
|
props: TabsProps,
|
|
@@ -182,17 +185,15 @@ function TabsInner({props, tabsRef: ref, collection}: TabsInnerProps) {
|
|
|
182
185
|
}
|
|
183
186
|
|
|
184
187
|
/**
|
|
185
|
-
*
|
|
188
|
+
* A TabList is used within Tabs to group tabs that a user can switch between.
|
|
189
|
+
* The ids of the items within the <TabList> must match up with a corresponding item inside the <TabPanels>.
|
|
186
190
|
*/
|
|
187
|
-
const
|
|
188
|
-
export {_Tabs as Tabs};
|
|
189
|
-
|
|
190
|
-
function TabList<T extends object>(props: TabListProps<T>, ref: ForwardedRef<HTMLDivElement>): JSX.Element {
|
|
191
|
+
export const TabList = /*#__PURE__*/ (forwardRef as forwardRefType)(function TabList<T extends object>(props: TabListProps<T>, ref: ForwardedRef<HTMLDivElement>): JSX.Element {
|
|
191
192
|
let state = useContext(TabListStateContext);
|
|
192
193
|
return state
|
|
193
194
|
? <TabListInner props={props} forwardedRef={ref} />
|
|
194
195
|
: <Collection {...props} />;
|
|
195
|
-
}
|
|
196
|
+
});
|
|
196
197
|
|
|
197
198
|
interface TabListInnerProps<T> {
|
|
198
199
|
props: TabListProps<T>,
|
|
@@ -236,13 +237,6 @@ function TabListInner<T extends object>({props, forwardedRef: ref}: TabListInner
|
|
|
236
237
|
);
|
|
237
238
|
}
|
|
238
239
|
|
|
239
|
-
/**
|
|
240
|
-
* A TabList is used within Tabs to group tabs that a user can switch between.
|
|
241
|
-
* The ids of the items within the <TabList> must match up with a corresponding item inside the <TabPanels>.
|
|
242
|
-
*/
|
|
243
|
-
const _TabList = /*#__PURE__*/ (forwardRef as forwardRefType)(TabList);
|
|
244
|
-
export {_TabList as TabList};
|
|
245
|
-
|
|
246
240
|
/**
|
|
247
241
|
* A Tab provides a title for an individual item within a TabList.
|
|
248
242
|
*/
|
|
@@ -287,7 +281,10 @@ export const Tab = /*#__PURE__*/ createLeafComponent('item', (props: TabProps, f
|
|
|
287
281
|
);
|
|
288
282
|
});
|
|
289
283
|
|
|
290
|
-
|
|
284
|
+
/**
|
|
285
|
+
* A TabPanel provides the content for a tab.
|
|
286
|
+
*/
|
|
287
|
+
export const TabPanel = /*#__PURE__*/ createHideableComponent(function TabPanel(props: TabPanelProps, forwardedRef: ForwardedRef<HTMLDivElement>) {
|
|
291
288
|
const state = useContext(TabListStateContext)!;
|
|
292
289
|
let ref = useObjectRef<HTMLDivElement>(forwardedRef);
|
|
293
290
|
let {tabPanelProps} = useTabPanel(props, state, ref);
|
|
@@ -330,14 +327,10 @@ function TabPanel(props: TabPanelProps, forwardedRef: ForwardedRef<HTMLDivElemen
|
|
|
330
327
|
[TabsContext, null],
|
|
331
328
|
[TabListStateContext, null]
|
|
332
329
|
]}>
|
|
333
|
-
{
|
|
330
|
+
<CollectionRendererContext.Provider value={DefaultCollectionRenderer}>
|
|
331
|
+
{renderProps.children}
|
|
332
|
+
</CollectionRendererContext.Provider>
|
|
334
333
|
</Provider>
|
|
335
334
|
</div>
|
|
336
335
|
);
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
/**
|
|
340
|
-
* A TabPanel provides the content for a tab.
|
|
341
|
-
*/
|
|
342
|
-
const _TabPanel = /*#__PURE__*/ createHideableComponent(TabPanel);
|
|
343
|
-
export {_TabPanel as TabPanel};
|
|
336
|
+
});
|
package/src/TagGroup.tsx
CHANGED
|
@@ -55,14 +55,17 @@ export interface TagListProps<T> extends Omit<CollectionProps<T>, 'disabledKeys'
|
|
|
55
55
|
export const TagGroupContext = createContext<ContextValue<TagGroupProps, HTMLDivElement>>(null);
|
|
56
56
|
export const TagListContext = createContext<ContextValue<TagListProps<any>, HTMLDivElement>>(null);
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
/**
|
|
59
|
+
* A tag group is a focusable list of labels, categories, keywords, filters, or other items, with support for keyboard navigation, selection, and removal.
|
|
60
|
+
*/
|
|
61
|
+
export const TagGroup = /*#__PURE__*/ (forwardRef as forwardRefType)(function TagGroup(props: TagGroupProps, ref: ForwardedRef<HTMLDivElement>) {
|
|
59
62
|
[props, ref] = useContextProps(props, ref, TagGroupContext);
|
|
60
63
|
return (
|
|
61
64
|
<CollectionBuilder content={props.children}>
|
|
62
65
|
{collection => <TagGroupInner props={props} forwardedRef={ref} collection={collection} />}
|
|
63
66
|
</CollectionBuilder>
|
|
64
67
|
);
|
|
65
|
-
}
|
|
68
|
+
});
|
|
66
69
|
|
|
67
70
|
interface TagGroupInnerProps {
|
|
68
71
|
props: TagGroupProps,
|
|
@@ -119,17 +122,14 @@ function TagGroupInner({props, forwardedRef: ref, collection}: TagGroupInnerProp
|
|
|
119
122
|
}
|
|
120
123
|
|
|
121
124
|
/**
|
|
122
|
-
* A tag
|
|
125
|
+
* A tag list is a container for tags within a TagGroup.
|
|
123
126
|
*/
|
|
124
|
-
const
|
|
125
|
-
export {_TagGroup as TagGroup};
|
|
126
|
-
|
|
127
|
-
function TagList<T extends object>(props: TagListProps<T>, ref: ForwardedRef<HTMLDivElement>): JSX.Element {
|
|
127
|
+
export const TagList = /*#__PURE__*/ (forwardRef as forwardRefType)(function TagList<T extends object>(props: TagListProps<T>, ref: ForwardedRef<HTMLDivElement>): JSX.Element {
|
|
128
128
|
let state = useContext(ListStateContext);
|
|
129
129
|
return state
|
|
130
130
|
? <TagListInner props={props} forwardedRef={ref} />
|
|
131
131
|
: <Collection {...props} />;
|
|
132
|
-
}
|
|
132
|
+
});
|
|
133
133
|
|
|
134
134
|
interface TagListInnerProps<T> {
|
|
135
135
|
props: TagListProps<T>,
|
|
@@ -174,12 +174,6 @@ function TagListInner<T extends object>({props, forwardedRef}: TagListInnerProps
|
|
|
174
174
|
);
|
|
175
175
|
}
|
|
176
176
|
|
|
177
|
-
/**
|
|
178
|
-
* A tag list is a container for tags within a TagGroup.
|
|
179
|
-
*/
|
|
180
|
-
const _TagList = /*#__PURE__*/ (forwardRef as forwardRefType)(TagList);
|
|
181
|
-
export {_TagList as TagList};
|
|
182
|
-
|
|
183
177
|
export interface TagRenderProps extends Omit<ItemRenderProps, 'allowsDragging' | 'isDragging' | 'isDropTarget'> {
|
|
184
178
|
/**
|
|
185
179
|
* Whether the tag group allows items to be removed.
|
package/src/Text.tsx
CHANGED
|
@@ -19,12 +19,9 @@ export interface TextProps extends HTMLAttributes<HTMLElement> {
|
|
|
19
19
|
|
|
20
20
|
export const TextContext = createContext<ContextValue<TextProps, HTMLElement>>({});
|
|
21
21
|
|
|
22
|
-
function Text(props: TextProps, ref: ForwardedRef<HTMLElement>) {
|
|
22
|
+
export const Text = forwardRef(function Text(props: TextProps, ref: ForwardedRef<HTMLElement>) {
|
|
23
23
|
[props, ref] = useContextProps(props, ref, TextContext);
|
|
24
24
|
let {elementType: ElementType = 'span', ...domProps} = props;
|
|
25
25
|
// @ts-ignore
|
|
26
26
|
return <ElementType className="react-aria-Text" {...domProps} ref={ref} />;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const _Text = forwardRef(Text);
|
|
30
|
-
export {_Text as Text};
|
|
27
|
+
});
|