@depup/react-aria-components 1.16.0-depup.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/LICENSE +201 -0
- package/README.md +31 -0
- package/changes.json +10 -0
- package/dist/Autocomplete.main.js +78 -0
- package/dist/Autocomplete.main.js.map +1 -0
- package/dist/Autocomplete.mjs +67 -0
- package/dist/Autocomplete.module.js +67 -0
- package/dist/Autocomplete.module.js.map +1 -0
- package/dist/Breadcrumbs.main.js +103 -0
- package/dist/Breadcrumbs.main.js.map +1 -0
- package/dist/Breadcrumbs.mjs +92 -0
- package/dist/Breadcrumbs.module.js +92 -0
- package/dist/Breadcrumbs.module.js.map +1 -0
- package/dist/Button.main.js +123 -0
- package/dist/Button.main.js.map +1 -0
- package/dist/Button.mjs +113 -0
- package/dist/Button.module.js +113 -0
- package/dist/Button.module.js.map +1 -0
- package/dist/Calendar.main.js +364 -0
- package/dist/Calendar.main.js.map +1 -0
- package/dist/Calendar.mjs +345 -0
- package/dist/Calendar.module.js +345 -0
- package/dist/Calendar.module.js.map +1 -0
- package/dist/Checkbox.main.js +188 -0
- package/dist/Checkbox.main.js.map +1 -0
- package/dist/Checkbox.mjs +176 -0
- package/dist/Checkbox.module.js +176 -0
- package/dist/Checkbox.module.js.map +1 -0
- package/dist/Collection.main.js +105 -0
- package/dist/Collection.main.js.map +1 -0
- package/dist/Collection.mjs +91 -0
- package/dist/Collection.module.js +91 -0
- package/dist/Collection.module.js.map +1 -0
- package/dist/ColorArea.main.js +80 -0
- package/dist/ColorArea.main.js.map +1 -0
- package/dist/ColorArea.mjs +70 -0
- package/dist/ColorArea.module.js +70 -0
- package/dist/ColorArea.module.js.map +1 -0
- package/dist/ColorField.main.js +168 -0
- package/dist/ColorField.main.js.map +1 -0
- package/dist/ColorField.mjs +158 -0
- package/dist/ColorField.module.js +158 -0
- package/dist/ColorField.module.js.map +1 -0
- package/dist/ColorPicker.main.js +102 -0
- package/dist/ColorPicker.main.js.map +1 -0
- package/dist/ColorPicker.mjs +91 -0
- package/dist/ColorPicker.module.js +91 -0
- package/dist/ColorPicker.module.js.map +1 -0
- package/dist/ColorSlider.main.js +112 -0
- package/dist/ColorSlider.main.js.map +1 -0
- package/dist/ColorSlider.mjs +102 -0
- package/dist/ColorSlider.module.js +102 -0
- package/dist/ColorSlider.module.js.map +1 -0
- package/dist/ColorSwatch.main.js +44 -0
- package/dist/ColorSwatch.main.js.map +1 -0
- package/dist/ColorSwatch.mjs +34 -0
- package/dist/ColorSwatch.module.js +34 -0
- package/dist/ColorSwatch.module.js.map +1 -0
- package/dist/ColorSwatchPicker.main.js +102 -0
- package/dist/ColorSwatchPicker.main.js.map +1 -0
- package/dist/ColorSwatchPicker.mjs +95 -0
- package/dist/ColorSwatchPicker.module.js +95 -0
- package/dist/ColorSwatchPicker.module.js.map +1 -0
- package/dist/ColorThumb.main.js +67 -0
- package/dist/ColorThumb.main.js.map +1 -0
- package/dist/ColorThumb.mjs +57 -0
- package/dist/ColorThumb.module.js +57 -0
- package/dist/ColorThumb.module.js.map +1 -0
- package/dist/ColorWheel.main.js +102 -0
- package/dist/ColorWheel.main.js.map +1 -0
- package/dist/ColorWheel.mjs +90 -0
- package/dist/ColorWheel.module.js +90 -0
- package/dist/ColorWheel.module.js.map +1 -0
- package/dist/ComboBox.main.js +322 -0
- package/dist/ComboBox.main.js.map +1 -0
- package/dist/ComboBox.mjs +309 -0
- package/dist/ComboBox.module.js +309 -0
- package/dist/ComboBox.module.js.map +1 -0
- package/dist/DateField.main.js +361 -0
- package/dist/DateField.main.js.map +1 -0
- package/dist/DateField.mjs +345 -0
- package/dist/DateField.module.js +345 -0
- package/dist/DateField.module.js.map +1 -0
- package/dist/DatePicker.main.js +342 -0
- package/dist/DatePicker.main.js.map +1 -0
- package/dist/DatePicker.mjs +328 -0
- package/dist/DatePicker.module.js +328 -0
- package/dist/DatePicker.module.js.map +1 -0
- package/dist/Dialog.main.js +167 -0
- package/dist/Dialog.main.js.map +1 -0
- package/dist/Dialog.mjs +155 -0
- package/dist/Dialog.module.js +155 -0
- package/dist/Dialog.module.js.map +1 -0
- package/dist/Disclosure.main.js +171 -0
- package/dist/Disclosure.main.js.map +1 -0
- package/dist/Disclosure.mjs +157 -0
- package/dist/Disclosure.module.js +157 -0
- package/dist/Disclosure.module.js.map +1 -0
- package/dist/DragAndDrop.main.js +103 -0
- package/dist/DragAndDrop.main.js.map +1 -0
- package/dist/DragAndDrop.mjs +90 -0
- package/dist/DragAndDrop.module.js +90 -0
- package/dist/DragAndDrop.module.js.map +1 -0
- package/dist/DropZone.main.js +127 -0
- package/dist/DropZone.main.js.map +1 -0
- package/dist/DropZone.mjs +121 -0
- package/dist/DropZone.module.js +121 -0
- package/dist/DropZone.module.js.map +1 -0
- package/dist/FieldError.main.js +61 -0
- package/dist/FieldError.main.js.map +1 -0
- package/dist/FieldError.mjs +51 -0
- package/dist/FieldError.module.js +51 -0
- package/dist/FieldError.module.js.map +1 -0
- package/dist/FileTrigger.main.js +60 -0
- package/dist/FileTrigger.main.js.map +1 -0
- package/dist/FileTrigger.mjs +51 -0
- package/dist/FileTrigger.module.js +51 -0
- package/dist/FileTrigger.module.js.map +1 -0
- package/dist/Form.main.js +49 -0
- package/dist/Form.main.js.map +1 -0
- package/dist/Form.mjs +39 -0
- package/dist/Form.module.js +39 -0
- package/dist/Form.module.js.map +1 -0
- package/dist/GridList.main.js +589 -0
- package/dist/GridList.main.js.map +1 -0
- package/dist/GridList.mjs +573 -0
- package/dist/GridList.module.js +573 -0
- package/dist/GridList.module.js.map +1 -0
- package/dist/Group.main.js +72 -0
- package/dist/Group.main.js.map +1 -0
- package/dist/Group.mjs +62 -0
- package/dist/Group.module.js +62 -0
- package/dist/Group.module.js.map +1 -0
- package/dist/Header.main.js +40 -0
- package/dist/Header.main.js.map +1 -0
- package/dist/Header.mjs +30 -0
- package/dist/Header.module.js +30 -0
- package/dist/Header.module.js.map +1 -0
- package/dist/Heading.main.js +40 -0
- package/dist/Heading.main.js.map +1 -0
- package/dist/Heading.mjs +31 -0
- package/dist/Heading.module.js +31 -0
- package/dist/Heading.module.js.map +1 -0
- package/dist/HiddenDateInput.main.js +126 -0
- package/dist/HiddenDateInput.main.js.map +1 -0
- package/dist/HiddenDateInput.mjs +117 -0
- package/dist/HiddenDateInput.module.js +117 -0
- package/dist/HiddenDateInput.module.js.map +1 -0
- package/dist/Input.main.js +72 -0
- package/dist/Input.main.js.map +1 -0
- package/dist/Input.mjs +62 -0
- package/dist/Input.module.js +62 -0
- package/dist/Input.module.js.map +1 -0
- package/dist/Keyboard.main.js +38 -0
- package/dist/Keyboard.main.js.map +1 -0
- package/dist/Keyboard.mjs +28 -0
- package/dist/Keyboard.module.js +28 -0
- package/dist/Keyboard.module.js.map +1 -0
- package/dist/Label.main.js +43 -0
- package/dist/Label.main.js.map +1 -0
- package/dist/Label.mjs +33 -0
- package/dist/Label.module.js +33 -0
- package/dist/Label.module.js.map +1 -0
- package/dist/Link.main.js +72 -0
- package/dist/Link.main.js.map +1 -0
- package/dist/Link.mjs +62 -0
- package/dist/Link.module.js +62 -0
- package/dist/Link.module.js.map +1 -0
- package/dist/ListBox.main.js +477 -0
- package/dist/ListBox.main.js.map +1 -0
- package/dist/ListBox.mjs +463 -0
- package/dist/ListBox.module.js +463 -0
- package/dist/ListBox.module.js.map +1 -0
- package/dist/Menu.main.js +459 -0
- package/dist/Menu.main.js.map +1 -0
- package/dist/Menu.mjs +443 -0
- package/dist/Menu.module.js +443 -0
- package/dist/Menu.module.js.map +1 -0
- package/dist/Meter.main.js +72 -0
- package/dist/Meter.main.js.map +1 -0
- package/dist/Meter.mjs +62 -0
- package/dist/Meter.module.js +62 -0
- package/dist/Meter.module.js.map +1 -0
- package/dist/Modal.main.js +191 -0
- package/dist/Modal.main.js.map +1 -0
- package/dist/Modal.mjs +180 -0
- package/dist/Modal.module.js +180 -0
- package/dist/Modal.module.js.map +1 -0
- package/dist/NumberField.main.js +147 -0
- package/dist/NumberField.main.js.map +1 -0
- package/dist/NumberField.mjs +136 -0
- package/dist/NumberField.module.js +136 -0
- package/dist/NumberField.module.js.map +1 -0
- package/dist/OverlayArrow.main.js +64 -0
- package/dist/OverlayArrow.main.js.map +1 -0
- package/dist/OverlayArrow.mjs +54 -0
- package/dist/OverlayArrow.module.js +54 -0
- package/dist/OverlayArrow.module.js.map +1 -0
- package/dist/Popover.main.js +196 -0
- package/dist/Popover.main.js.map +1 -0
- package/dist/Popover.mjs +186 -0
- package/dist/Popover.module.js +186 -0
- package/dist/Popover.module.js.map +1 -0
- package/dist/ProgressBar.main.js +73 -0
- package/dist/ProgressBar.main.js.map +1 -0
- package/dist/ProgressBar.mjs +63 -0
- package/dist/ProgressBar.module.js +63 -0
- package/dist/ProgressBar.module.js.map +1 -0
- package/dist/RSPContexts.main.js +37 -0
- package/dist/RSPContexts.main.js.map +1 -0
- package/dist/RSPContexts.mjs +25 -0
- package/dist/RSPContexts.module.js +25 -0
- package/dist/RSPContexts.module.js.map +1 -0
- package/dist/RadioGroup.main.js +184 -0
- package/dist/RadioGroup.main.js.map +1 -0
- package/dist/RadioGroup.mjs +171 -0
- package/dist/RadioGroup.module.js +171 -0
- package/dist/RadioGroup.module.js.map +1 -0
- package/dist/SearchField.main.js +140 -0
- package/dist/SearchField.main.js.map +1 -0
- package/dist/SearchField.mjs +130 -0
- package/dist/SearchField.module.js +130 -0
- package/dist/SearchField.module.js.map +1 -0
- package/dist/Select.main.js +324 -0
- package/dist/Select.main.js.map +1 -0
- package/dist/Select.mjs +315 -0
- package/dist/Select.module.js +315 -0
- package/dist/Select.module.js.map +1 -0
- package/dist/SelectionIndicator.main.js +45 -0
- package/dist/SelectionIndicator.main.js.map +1 -0
- package/dist/SelectionIndicator.mjs +35 -0
- package/dist/SelectionIndicator.module.js +35 -0
- package/dist/SelectionIndicator.module.js.map +1 -0
- package/dist/Separator.main.js +71 -0
- package/dist/Separator.main.js.map +1 -0
- package/dist/Separator.mjs +61 -0
- package/dist/Separator.module.js +61 -0
- package/dist/Separator.module.js.map +1 -0
- package/dist/SharedElementTransition.main.js +140 -0
- package/dist/SharedElementTransition.main.js.map +1 -0
- package/dist/SharedElementTransition.mjs +130 -0
- package/dist/SharedElementTransition.module.js +130 -0
- package/dist/SharedElementTransition.module.js.map +1 -0
- package/dist/Slider.main.js +220 -0
- package/dist/Slider.main.js.map +1 -0
- package/dist/Slider.mjs +204 -0
- package/dist/Slider.module.js +204 -0
- package/dist/Slider.module.js.map +1 -0
- package/dist/Switch.main.js +89 -0
- package/dist/Switch.main.js.map +1 -0
- package/dist/Switch.mjs +79 -0
- package/dist/Switch.module.js +79 -0
- package/dist/Switch.module.js.map +1 -0
- package/dist/Table.main.js +1171 -0
- package/dist/Table.main.js.map +1 -0
- package/dist/Table.mjs +1154 -0
- package/dist/Table.module.js +1154 -0
- package/dist/Table.module.js.map +1 -0
- package/dist/TableLayout.main.js +38 -0
- package/dist/TableLayout.main.js.map +1 -0
- package/dist/TableLayout.mjs +33 -0
- package/dist/TableLayout.module.js +33 -0
- package/dist/TableLayout.module.js.map +1 -0
- package/dist/Tabs.main.js +330 -0
- package/dist/Tabs.main.js.map +1 -0
- package/dist/Tabs.mjs +315 -0
- package/dist/Tabs.module.js +315 -0
- package/dist/Tabs.module.js.map +1 -0
- package/dist/TagGroup.main.js +255 -0
- package/dist/TagGroup.main.js.map +1 -0
- package/dist/TagGroup.mjs +242 -0
- package/dist/TagGroup.module.js +242 -0
- package/dist/TagGroup.module.js.map +1 -0
- package/dist/Text.main.js +41 -0
- package/dist/Text.main.js.map +1 -0
- package/dist/Text.mjs +31 -0
- package/dist/Text.module.js +31 -0
- package/dist/Text.module.js.map +1 -0
- package/dist/TextArea.main.js +57 -0
- package/dist/TextArea.main.js.map +1 -0
- package/dist/TextArea.mjs +47 -0
- package/dist/TextArea.module.js +47 -0
- package/dist/TextArea.module.js.map +1 -0
- package/dist/TextField.main.js +145 -0
- package/dist/TextField.main.js.map +1 -0
- package/dist/TextField.mjs +135 -0
- package/dist/TextField.module.js +135 -0
- package/dist/TextField.module.js.map +1 -0
- package/dist/Toast.main.js +183 -0
- package/dist/Toast.main.js.map +1 -0
- package/dist/Toast.mjs +170 -0
- package/dist/Toast.module.js +170 -0
- package/dist/Toast.module.js.map +1 -0
- package/dist/ToggleButton.main.js +96 -0
- package/dist/ToggleButton.main.js.map +1 -0
- package/dist/ToggleButton.mjs +86 -0
- package/dist/ToggleButton.module.js +86 -0
- package/dist/ToggleButton.module.js.map +1 -0
- package/dist/ToggleButtonGroup.main.js +66 -0
- package/dist/ToggleButtonGroup.main.js.map +1 -0
- package/dist/ToggleButtonGroup.mjs +55 -0
- package/dist/ToggleButtonGroup.module.js +55 -0
- package/dist/ToggleButtonGroup.module.js.map +1 -0
- package/dist/Toolbar.main.js +55 -0
- package/dist/Toolbar.main.js.map +1 -0
- package/dist/Toolbar.mjs +45 -0
- package/dist/Toolbar.module.js +45 -0
- package/dist/Toolbar.module.js.map +1 -0
- package/dist/Tooltip.main.js +132 -0
- package/dist/Tooltip.main.js.map +1 -0
- package/dist/Tooltip.mjs +120 -0
- package/dist/Tooltip.module.js +120 -0
- package/dist/Tooltip.module.js.map +1 -0
- package/dist/Tree.main.js +834 -0
- package/dist/Tree.main.js.map +1 -0
- package/dist/Tree.mjs +818 -0
- package/dist/Tree.module.js +818 -0
- package/dist/Tree.module.js.map +1 -0
- package/dist/TreeDropTargetDelegate.main.js +216 -0
- package/dist/TreeDropTargetDelegate.main.js.map +1 -0
- package/dist/TreeDropTargetDelegate.mjs +211 -0
- package/dist/TreeDropTargetDelegate.module.js +211 -0
- package/dist/TreeDropTargetDelegate.module.js.map +1 -0
- package/dist/Virtualizer.main.js +135 -0
- package/dist/Virtualizer.main.js.map +1 -0
- package/dist/Virtualizer.mjs +126 -0
- package/dist/Virtualizer.module.js +126 -0
- package/dist/Virtualizer.module.js.map +1 -0
- package/dist/ar-AE.main.js +9 -0
- package/dist/ar-AE.main.js.map +1 -0
- package/dist/ar-AE.mjs +11 -0
- package/dist/ar-AE.module.js +11 -0
- package/dist/ar-AE.module.js.map +1 -0
- package/dist/bg-BG.main.js +9 -0
- package/dist/bg-BG.main.js.map +1 -0
- package/dist/bg-BG.mjs +11 -0
- package/dist/bg-BG.module.js +11 -0
- package/dist/bg-BG.module.js.map +1 -0
- package/dist/cs-CZ.main.js +9 -0
- package/dist/cs-CZ.main.js.map +1 -0
- package/dist/cs-CZ.mjs +11 -0
- package/dist/cs-CZ.module.js +11 -0
- package/dist/cs-CZ.module.js.map +1 -0
- package/dist/da-DK.main.js +9 -0
- package/dist/da-DK.main.js.map +1 -0
- package/dist/da-DK.mjs +11 -0
- package/dist/da-DK.module.js +11 -0
- package/dist/da-DK.module.js.map +1 -0
- package/dist/de-DE.main.js +9 -0
- package/dist/de-DE.main.js.map +1 -0
- package/dist/de-DE.mjs +11 -0
- package/dist/de-DE.module.js +11 -0
- package/dist/de-DE.module.js.map +1 -0
- package/dist/el-GR.main.js +9 -0
- package/dist/el-GR.main.js.map +1 -0
- package/dist/el-GR.mjs +11 -0
- package/dist/el-GR.module.js +11 -0
- package/dist/el-GR.module.js.map +1 -0
- package/dist/en-US.main.js +9 -0
- package/dist/en-US.main.js.map +1 -0
- package/dist/en-US.mjs +11 -0
- package/dist/en-US.module.js +11 -0
- package/dist/en-US.module.js.map +1 -0
- package/dist/es-ES.main.js +9 -0
- package/dist/es-ES.main.js.map +1 -0
- package/dist/es-ES.mjs +11 -0
- package/dist/es-ES.module.js +11 -0
- package/dist/es-ES.module.js.map +1 -0
- package/dist/et-EE.main.js +9 -0
- package/dist/et-EE.main.js.map +1 -0
- package/dist/et-EE.mjs +11 -0
- package/dist/et-EE.module.js +11 -0
- package/dist/et-EE.module.js.map +1 -0
- package/dist/fi-FI.main.js +9 -0
- package/dist/fi-FI.main.js.map +1 -0
- package/dist/fi-FI.mjs +11 -0
- package/dist/fi-FI.module.js +11 -0
- package/dist/fi-FI.module.js.map +1 -0
- package/dist/fr-FR.main.js +9 -0
- package/dist/fr-FR.main.js.map +1 -0
- package/dist/fr-FR.mjs +11 -0
- package/dist/fr-FR.module.js +11 -0
- package/dist/fr-FR.module.js.map +1 -0
- package/dist/he-IL.main.js +9 -0
- package/dist/he-IL.main.js.map +1 -0
- package/dist/he-IL.mjs +11 -0
- package/dist/he-IL.module.js +11 -0
- package/dist/he-IL.module.js.map +1 -0
- package/dist/hr-HR.main.js +9 -0
- package/dist/hr-HR.main.js.map +1 -0
- package/dist/hr-HR.mjs +11 -0
- package/dist/hr-HR.module.js +11 -0
- package/dist/hr-HR.module.js.map +1 -0
- package/dist/hu-HU.main.js +9 -0
- package/dist/hu-HU.main.js.map +1 -0
- package/dist/hu-HU.mjs +11 -0
- package/dist/hu-HU.module.js +11 -0
- package/dist/hu-HU.module.js.map +1 -0
- package/dist/import.mjs +161 -0
- package/dist/intlStrings.main.js +108 -0
- package/dist/intlStrings.main.js.map +1 -0
- package/dist/intlStrings.mjs +110 -0
- package/dist/intlStrings.module.js +110 -0
- package/dist/intlStrings.module.js.map +1 -0
- package/dist/it-IT.main.js +9 -0
- package/dist/it-IT.main.js.map +1 -0
- package/dist/it-IT.mjs +11 -0
- package/dist/it-IT.module.js +11 -0
- package/dist/it-IT.module.js.map +1 -0
- package/dist/ja-JP.main.js +9 -0
- package/dist/ja-JP.main.js.map +1 -0
- package/dist/ja-JP.mjs +11 -0
- package/dist/ja-JP.module.js +11 -0
- package/dist/ja-JP.module.js.map +1 -0
- package/dist/ko-KR.main.js +9 -0
- package/dist/ko-KR.main.js.map +1 -0
- package/dist/ko-KR.mjs +11 -0
- package/dist/ko-KR.module.js +11 -0
- package/dist/ko-KR.module.js.map +1 -0
- package/dist/lt-LT.main.js +9 -0
- package/dist/lt-LT.main.js.map +1 -0
- package/dist/lt-LT.mjs +11 -0
- package/dist/lt-LT.module.js +11 -0
- package/dist/lt-LT.module.js.map +1 -0
- package/dist/lv-LV.main.js +9 -0
- package/dist/lv-LV.main.js.map +1 -0
- package/dist/lv-LV.mjs +11 -0
- package/dist/lv-LV.module.js +11 -0
- package/dist/lv-LV.module.js.map +1 -0
- package/dist/main.js +430 -0
- package/dist/main.js.map +1 -0
- package/dist/module.js +161 -0
- package/dist/module.js.map +1 -0
- package/dist/nb-NO.main.js +9 -0
- package/dist/nb-NO.main.js.map +1 -0
- package/dist/nb-NO.mjs +11 -0
- package/dist/nb-NO.module.js +11 -0
- package/dist/nb-NO.module.js.map +1 -0
- package/dist/nl-NL.main.js +9 -0
- package/dist/nl-NL.main.js.map +1 -0
- package/dist/nl-NL.mjs +11 -0
- package/dist/nl-NL.module.js +11 -0
- package/dist/nl-NL.module.js.map +1 -0
- package/dist/pl-PL.main.js +9 -0
- package/dist/pl-PL.main.js.map +1 -0
- package/dist/pl-PL.mjs +11 -0
- package/dist/pl-PL.module.js +11 -0
- package/dist/pl-PL.module.js.map +1 -0
- package/dist/pt-BR.main.js +9 -0
- package/dist/pt-BR.main.js.map +1 -0
- package/dist/pt-BR.mjs +11 -0
- package/dist/pt-BR.module.js +11 -0
- package/dist/pt-BR.module.js.map +1 -0
- package/dist/pt-PT.main.js +9 -0
- package/dist/pt-PT.main.js.map +1 -0
- package/dist/pt-PT.mjs +11 -0
- package/dist/pt-PT.module.js +11 -0
- package/dist/pt-PT.module.js.map +1 -0
- package/dist/ro-RO.main.js +9 -0
- package/dist/ro-RO.main.js.map +1 -0
- package/dist/ro-RO.mjs +11 -0
- package/dist/ro-RO.module.js +11 -0
- package/dist/ro-RO.module.js.map +1 -0
- package/dist/ru-RU.main.js +9 -0
- package/dist/ru-RU.main.js.map +1 -0
- package/dist/ru-RU.mjs +11 -0
- package/dist/ru-RU.module.js +11 -0
- package/dist/ru-RU.module.js.map +1 -0
- package/dist/sk-SK.main.js +9 -0
- package/dist/sk-SK.main.js.map +1 -0
- package/dist/sk-SK.mjs +11 -0
- package/dist/sk-SK.module.js +11 -0
- package/dist/sk-SK.module.js.map +1 -0
- package/dist/sl-SI.main.js +9 -0
- package/dist/sl-SI.main.js.map +1 -0
- package/dist/sl-SI.mjs +11 -0
- package/dist/sl-SI.module.js +11 -0
- package/dist/sl-SI.module.js.map +1 -0
- package/dist/sr-SP.main.js +9 -0
- package/dist/sr-SP.main.js.map +1 -0
- package/dist/sr-SP.mjs +11 -0
- package/dist/sr-SP.module.js +11 -0
- package/dist/sr-SP.module.js.map +1 -0
- package/dist/sv-SE.main.js +9 -0
- package/dist/sv-SE.main.js.map +1 -0
- package/dist/sv-SE.mjs +11 -0
- package/dist/sv-SE.module.js +11 -0
- package/dist/sv-SE.module.js.map +1 -0
- package/dist/tr-TR.main.js +9 -0
- package/dist/tr-TR.main.js.map +1 -0
- package/dist/tr-TR.mjs +11 -0
- package/dist/tr-TR.module.js +11 -0
- package/dist/tr-TR.module.js.map +1 -0
- package/dist/types.d.ts +3764 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/uk-UA.main.js +9 -0
- package/dist/uk-UA.main.js.map +1 -0
- package/dist/uk-UA.mjs +11 -0
- package/dist/uk-UA.module.js +11 -0
- package/dist/uk-UA.module.js.map +1 -0
- package/dist/useDragAndDrop.main.js +74 -0
- package/dist/useDragAndDrop.main.js.map +1 -0
- package/dist/useDragAndDrop.mjs +69 -0
- package/dist/useDragAndDrop.module.js +69 -0
- package/dist/useDragAndDrop.module.js.map +1 -0
- package/dist/utils.main.js +205 -0
- package/dist/utils.main.js.map +1 -0
- package/dist/utils.mjs +188 -0
- package/dist/utils.module.js +188 -0
- package/dist/utils.module.js.map +1 -0
- package/dist/zh-CN.main.js +9 -0
- package/dist/zh-CN.main.js.map +1 -0
- package/dist/zh-CN.mjs +11 -0
- package/dist/zh-CN.module.js +11 -0
- package/dist/zh-CN.module.js.map +1 -0
- package/dist/zh-TW.main.js +9 -0
- package/dist/zh-TW.main.js.map +1 -0
- package/dist/zh-TW.mjs +11 -0
- package/dist/zh-TW.module.js +11 -0
- package/dist/zh-TW.module.js.map +1 -0
- package/i18n/ar-AE.js +1 -0
- package/i18n/ar-AE.mjs +1 -0
- package/i18n/bg-BG.js +1 -0
- package/i18n/bg-BG.mjs +1 -0
- package/i18n/cs-CZ.js +1 -0
- package/i18n/cs-CZ.mjs +1 -0
- package/i18n/da-DK.js +1 -0
- package/i18n/da-DK.mjs +1 -0
- package/i18n/de-DE.js +1 -0
- package/i18n/de-DE.mjs +1 -0
- package/i18n/el-GR.js +1 -0
- package/i18n/el-GR.mjs +1 -0
- package/i18n/en-US.js +1 -0
- package/i18n/en-US.mjs +1 -0
- package/i18n/es-ES.js +1 -0
- package/i18n/es-ES.mjs +1 -0
- package/i18n/et-EE.js +1 -0
- package/i18n/et-EE.mjs +1 -0
- package/i18n/fi-FI.js +1 -0
- package/i18n/fi-FI.mjs +1 -0
- package/i18n/fr-FR.js +1 -0
- package/i18n/fr-FR.mjs +1 -0
- package/i18n/he-IL.js +1 -0
- package/i18n/he-IL.mjs +1 -0
- package/i18n/hr-HR.js +1 -0
- package/i18n/hr-HR.mjs +1 -0
- package/i18n/hu-HU.js +1 -0
- package/i18n/hu-HU.mjs +1 -0
- package/i18n/index.d.ts +13 -0
- package/i18n/index.js +118 -0
- package/i18n/index.mjs +115 -0
- package/i18n/it-IT.js +1 -0
- package/i18n/it-IT.mjs +1 -0
- package/i18n/ja-JP.js +1 -0
- package/i18n/ja-JP.mjs +1 -0
- package/i18n/ko-KR.js +1 -0
- package/i18n/ko-KR.mjs +1 -0
- package/i18n/lang.d.ts +7 -0
- package/i18n/lt-LT.js +1 -0
- package/i18n/lt-LT.mjs +1 -0
- package/i18n/lv-LV.js +1 -0
- package/i18n/lv-LV.mjs +1 -0
- package/i18n/nb-NO.js +1 -0
- package/i18n/nb-NO.mjs +1 -0
- package/i18n/nl-NL.js +1 -0
- package/i18n/nl-NL.mjs +1 -0
- package/i18n/pl-PL.js +1 -0
- package/i18n/pl-PL.mjs +1 -0
- package/i18n/pt-BR.js +1 -0
- package/i18n/pt-BR.mjs +1 -0
- package/i18n/pt-PT.js +1 -0
- package/i18n/pt-PT.mjs +1 -0
- package/i18n/ro-RO.js +1 -0
- package/i18n/ro-RO.mjs +1 -0
- package/i18n/ru-RU.js +1 -0
- package/i18n/ru-RU.mjs +1 -0
- package/i18n/sk-SK.js +1 -0
- package/i18n/sk-SK.mjs +1 -0
- package/i18n/sl-SI.js +1 -0
- package/i18n/sl-SI.mjs +1 -0
- package/i18n/sr-SP.js +1 -0
- package/i18n/sr-SP.mjs +1 -0
- package/i18n/sv-SE.js +1 -0
- package/i18n/sv-SE.mjs +1 -0
- package/i18n/tr-TR.js +1 -0
- package/i18n/tr-TR.mjs +1 -0
- package/i18n/uk-UA.js +1 -0
- package/i18n/uk-UA.mjs +1 -0
- package/i18n/zh-CN.js +1 -0
- package/i18n/zh-CN.mjs +1 -0
- package/i18n/zh-TW.js +1 -0
- package/i18n/zh-TW.mjs +1 -0
- package/package.json +105 -0
- package/src/Autocomplete.tsx +64 -0
- package/src/Breadcrumbs.tsx +137 -0
- package/src/Button.tsx +185 -0
- package/src/Calendar.tsx +620 -0
- package/src/Checkbox.tsx +282 -0
- package/src/Collection.tsx +225 -0
- package/src/ColorArea.tsx +89 -0
- package/src/ColorField.tsx +243 -0
- package/src/ColorPicker.tsx +63 -0
- package/src/ColorSlider.tsx +110 -0
- package/src/ColorSwatch.tsx +54 -0
- package/src/ColorSwatchPicker.tsx +125 -0
- package/src/ColorThumb.tsx +108 -0
- package/src/ColorWheel.tsx +122 -0
- package/src/ComboBox.tsx +325 -0
- package/src/DateField.tsx +425 -0
- package/src/DatePicker.tsx +334 -0
- package/src/Dialog.tsx +159 -0
- package/src/Disclosure.tsx +259 -0
- package/src/DragAndDrop.tsx +115 -0
- package/src/DropZone.tsx +145 -0
- package/src/FieldError.tsx +57 -0
- package/src/FileTrigger.tsx +79 -0
- package/src/Form.tsx +52 -0
- package/src/GridList.tsx +678 -0
- package/src/Group.tsx +114 -0
- package/src/Header.tsx +28 -0
- package/src/Heading.tsx +31 -0
- package/src/HiddenDateInput.tsx +152 -0
- package/src/Input.tsx +113 -0
- package/src/Keyboard.tsx +23 -0
- package/src/Label.tsx +29 -0
- package/src/Link.tsx +115 -0
- package/src/ListBox.tsx +577 -0
- package/src/Menu.tsx +496 -0
- package/src/Meter.tsx +93 -0
- package/src/Modal.tsx +262 -0
- package/src/NumberField.tsx +152 -0
- package/src/OverlayArrow.tsx +91 -0
- package/src/Popover.tsx +267 -0
- package/src/ProgressBar.tsx +101 -0
- package/src/RSPContexts.ts +52 -0
- package/src/RadioGroup.tsx +273 -0
- package/src/SearchField.tsx +152 -0
- package/src/Select.tsx +356 -0
- package/src/SelectionIndicator.tsx +46 -0
- package/src/Separator.tsx +76 -0
- package/src/SharedElementTransition.tsx +186 -0
- package/src/Slider.tsx +310 -0
- package/src/Switch.tsx +146 -0
- package/src/Table.tsx +1597 -0
- package/src/TableLayout.ts +28 -0
- package/src/Tabs.tsx +495 -0
- package/src/TagGroup.tsx +310 -0
- package/src/Text.tsx +28 -0
- package/src/TextArea.tsx +65 -0
- package/src/TextField.tsx +148 -0
- package/src/Toast.tsx +248 -0
- package/src/ToggleButton.tsx +103 -0
- package/src/ToggleButtonGroup.tsx +90 -0
- package/src/Toolbar.tsx +69 -0
- package/src/Tooltip.tsx +187 -0
- package/src/Tree.tsx +1066 -0
- package/src/TreeDropTargetDelegate.ts +308 -0
- package/src/Virtualizer.tsx +174 -0
- package/src/index.ts +160 -0
- package/src/useDragAndDrop.tsx +150 -0
- package/src/utils.tsx +351 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import {dom, RenderProps, useRenderProps} from './utils';
|
|
14
|
+
import {flushSync} from 'react-dom';
|
|
15
|
+
import React, {createContext, ForwardedRef, forwardRef, HTMLAttributes, ReactNode, RefObject, useContext, useRef, useState} from 'react';
|
|
16
|
+
import {useLayoutEffect} from '@react-aria/utils';
|
|
17
|
+
import {useObjectRef} from 'react-aria';
|
|
18
|
+
|
|
19
|
+
interface Snapshot {
|
|
20
|
+
rect: DOMRect,
|
|
21
|
+
style: [string, string][]
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const SharedElementContext = createContext<RefObject<{[name: string]: Snapshot}> | null>(null);
|
|
25
|
+
|
|
26
|
+
export interface SharedElementTransitionProps {
|
|
27
|
+
children: ReactNode
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* A scope for SharedElements, which animate between parents.
|
|
32
|
+
*/
|
|
33
|
+
export function SharedElementTransition(props: SharedElementTransitionProps) {
|
|
34
|
+
let ref = useRef({});
|
|
35
|
+
return (
|
|
36
|
+
<SharedElementContext.Provider value={ref}>
|
|
37
|
+
{props.children}
|
|
38
|
+
</SharedElementContext.Provider>
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface SharedElementRenderProps {
|
|
43
|
+
/**
|
|
44
|
+
* Whether the element is currently entering.
|
|
45
|
+
* @selector [data-entering]
|
|
46
|
+
*/
|
|
47
|
+
isEntering: boolean,
|
|
48
|
+
/**
|
|
49
|
+
* Whether the element is currently exiting.
|
|
50
|
+
* @selector [data-exiting]
|
|
51
|
+
*/
|
|
52
|
+
isExiting: boolean
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export interface SharedElementPropsBase extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'className' | 'style'>, RenderProps<SharedElementRenderProps> {}
|
|
56
|
+
|
|
57
|
+
export interface SharedElementProps extends SharedElementPropsBase {
|
|
58
|
+
name: string,
|
|
59
|
+
isVisible?: boolean
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* An element that animates between its old and new position when moving between parents.
|
|
64
|
+
*/
|
|
65
|
+
export const SharedElement = forwardRef(function SharedElement(props: SharedElementProps, ref: ForwardedRef<HTMLDivElement>) {
|
|
66
|
+
let {name, isVisible = true, children, className, style, render, ...divProps} = props;
|
|
67
|
+
let [state, setState] = useState(isVisible ? 'visible' : 'hidden');
|
|
68
|
+
let scopeRef = useContext(SharedElementContext);
|
|
69
|
+
if (!scopeRef) {
|
|
70
|
+
throw new Error('<SharedElement> must be rendered inside a <SharedElementTransition>');
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (isVisible && state === 'hidden') {
|
|
74
|
+
setState('visible');
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
ref = useObjectRef(ref);
|
|
78
|
+
useLayoutEffect(() => {
|
|
79
|
+
let element = ref.current;
|
|
80
|
+
let scope = scopeRef.current;
|
|
81
|
+
let prevSnapshot = scope[name];
|
|
82
|
+
let frame: number | null = null;
|
|
83
|
+
|
|
84
|
+
if (element && isVisible && prevSnapshot) {
|
|
85
|
+
// Element is transitioning from a previous instance.
|
|
86
|
+
setState('visible');
|
|
87
|
+
let animations = element.getAnimations();
|
|
88
|
+
|
|
89
|
+
// Set properties to animate from.
|
|
90
|
+
let values = prevSnapshot.style.map(([property, prevValue]) => {
|
|
91
|
+
let value = element.style[property];
|
|
92
|
+
if (property === 'translate') {
|
|
93
|
+
let prevRect = prevSnapshot.rect;
|
|
94
|
+
let currentItem = element.getBoundingClientRect();
|
|
95
|
+
let deltaX = prevRect.left - currentItem?.left;
|
|
96
|
+
let deltaY = prevRect.top - currentItem?.top;
|
|
97
|
+
element.style.translate = `${deltaX}px ${deltaY}px`;
|
|
98
|
+
} else {
|
|
99
|
+
element.style[property] = prevValue;
|
|
100
|
+
}
|
|
101
|
+
return [property, value];
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
// Cancel any new animations triggered by these properties.
|
|
105
|
+
for (let a of element.getAnimations()) {
|
|
106
|
+
if (!animations.includes(a)) {
|
|
107
|
+
a.cancel();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Remove overrides after one frame to animate to the current values.
|
|
112
|
+
frame = requestAnimationFrame(() => {
|
|
113
|
+
frame = null;
|
|
114
|
+
for (let [property, value] of values) {
|
|
115
|
+
element.style[property] = value;
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
delete scope[name];
|
|
120
|
+
} else if (element && isVisible && !prevSnapshot) {
|
|
121
|
+
// No previous instance exists, apply the entering state.
|
|
122
|
+
queueMicrotask(() => flushSync(() => setState('entering')));
|
|
123
|
+
frame = requestAnimationFrame(() => {
|
|
124
|
+
frame = null;
|
|
125
|
+
setState('visible');
|
|
126
|
+
});
|
|
127
|
+
} else if (element && !isVisible) {
|
|
128
|
+
// Wait until layout effects finish, and check if a snapshot still exists.
|
|
129
|
+
// If so, no new SharedElement consumed it, so enter the exiting state.
|
|
130
|
+
queueMicrotask(() => {
|
|
131
|
+
if (scope[name]) {
|
|
132
|
+
delete scope[name];
|
|
133
|
+
flushSync(() => setState('exiting'));
|
|
134
|
+
Promise.all(element.getAnimations().map(a => a.finished))
|
|
135
|
+
.then(() => setState('hidden'))
|
|
136
|
+
.catch(() => {});
|
|
137
|
+
} else {
|
|
138
|
+
// Snapshot was consumed by another instance, unmount.
|
|
139
|
+
setState('hidden');
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return () => {
|
|
145
|
+
if (frame != null) {
|
|
146
|
+
cancelAnimationFrame(frame);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
if (element && element.isConnected && !element.hasAttribute('data-exiting')) {
|
|
150
|
+
// On unmount, store a snapshot of the rectangle and computed style for transitioning properties.
|
|
151
|
+
let style = window.getComputedStyle(element);
|
|
152
|
+
if (style.transitionProperty !== 'none') {
|
|
153
|
+
let transitionProperty = style.transitionProperty.split(/\s*,\s*/);
|
|
154
|
+
scope[name] = {
|
|
155
|
+
rect: element.getBoundingClientRect(),
|
|
156
|
+
style: transitionProperty.map(p => [p, style[p]])
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
}, [ref, scopeRef, name, isVisible]);
|
|
162
|
+
|
|
163
|
+
let renderProps = useRenderProps({
|
|
164
|
+
children,
|
|
165
|
+
className,
|
|
166
|
+
style,
|
|
167
|
+
render,
|
|
168
|
+
values: {
|
|
169
|
+
isEntering: state === 'entering',
|
|
170
|
+
isExiting: state === 'exiting'
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
if (state === 'hidden') {
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
return (
|
|
179
|
+
<dom.div
|
|
180
|
+
{...divProps}
|
|
181
|
+
{...renderProps}
|
|
182
|
+
ref={ref}
|
|
183
|
+
data-entering={state === 'entering' || undefined}
|
|
184
|
+
data-exiting={state === 'exiting' || undefined} />
|
|
185
|
+
);
|
|
186
|
+
});
|
package/src/Slider.tsx
ADDED
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import {AriaSliderProps, AriaSliderThumbProps, HoverEvents, mergeProps, Orientation, useFocusRing, useHover, useNumberFormatter, useSlider, useSliderThumb, VisuallyHidden} from 'react-aria';
|
|
14
|
+
import {
|
|
15
|
+
ClassNameOrFunction,
|
|
16
|
+
ContextValue,
|
|
17
|
+
dom,
|
|
18
|
+
Provider,
|
|
19
|
+
RenderProps,
|
|
20
|
+
SlotProps,
|
|
21
|
+
useContextProps,
|
|
22
|
+
useRenderProps,
|
|
23
|
+
useSlot,
|
|
24
|
+
useSlottedContext
|
|
25
|
+
} from './utils';
|
|
26
|
+
import {filterDOMProps} from '@react-aria/utils';
|
|
27
|
+
import {forwardRefType, GlobalDOMAttributes, RefObject} from '@react-types/shared';
|
|
28
|
+
import {LabelContext} from './Label';
|
|
29
|
+
import React, {createContext, ForwardedRef, forwardRef, HTMLAttributes, OutputHTMLAttributes, useContext, useRef} from 'react';
|
|
30
|
+
import {SliderState, useSliderState} from 'react-stately';
|
|
31
|
+
|
|
32
|
+
export interface SliderProps<T = number | number[]> extends Omit<AriaSliderProps<T>, 'label'>, RenderProps<SliderRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {
|
|
33
|
+
/**
|
|
34
|
+
* The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. A function may be provided to compute the class based on component state.
|
|
35
|
+
* @default 'react-aria-Slider'
|
|
36
|
+
*/
|
|
37
|
+
className?: ClassNameOrFunction<SliderRenderProps>,
|
|
38
|
+
/**
|
|
39
|
+
* The display format of the value label.
|
|
40
|
+
*/
|
|
41
|
+
formatOptions?: Intl.NumberFormatOptions
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export const SliderContext = createContext<ContextValue<SliderProps, HTMLDivElement>>(null);
|
|
45
|
+
export const SliderStateContext = createContext<SliderState | null>(null);
|
|
46
|
+
export const SliderTrackContext = createContext<ContextValue<SliderTrackContextValue, HTMLDivElement>>(null);
|
|
47
|
+
export const SliderOutputContext = createContext<ContextValue<SliderOutputContextValue, HTMLOutputElement>>(null);
|
|
48
|
+
|
|
49
|
+
export interface SliderRenderProps {
|
|
50
|
+
/**
|
|
51
|
+
* The orientation of the slider.
|
|
52
|
+
* @selector [data-orientation="horizontal | vertical"]
|
|
53
|
+
*/
|
|
54
|
+
orientation: Orientation,
|
|
55
|
+
/**
|
|
56
|
+
* Whether the slider is disabled.
|
|
57
|
+
* @selector [data-disabled]
|
|
58
|
+
*/
|
|
59
|
+
isDisabled: boolean,
|
|
60
|
+
/**
|
|
61
|
+
* State of the slider.
|
|
62
|
+
*/
|
|
63
|
+
state: SliderState
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* A slider allows a user to select one or more values within a range.
|
|
68
|
+
*/
|
|
69
|
+
export const Slider = /*#__PURE__*/ (forwardRef as forwardRefType)(function Slider<T extends number | number[]>(props: SliderProps<T>, ref: ForwardedRef<HTMLDivElement>) {
|
|
70
|
+
[props, ref] = useContextProps(props, ref, SliderContext);
|
|
71
|
+
let trackRef = useRef<HTMLDivElement>(null);
|
|
72
|
+
let numberFormatter = useNumberFormatter(props.formatOptions);
|
|
73
|
+
let state = useSliderState({...props, numberFormatter});
|
|
74
|
+
let [labelRef, label] = useSlot(
|
|
75
|
+
!props['aria-label'] && !props['aria-labelledby']
|
|
76
|
+
);
|
|
77
|
+
let {
|
|
78
|
+
groupProps,
|
|
79
|
+
trackProps,
|
|
80
|
+
labelProps,
|
|
81
|
+
outputProps
|
|
82
|
+
} = useSlider({...props, label}, state, trackRef);
|
|
83
|
+
|
|
84
|
+
let renderProps = useRenderProps({
|
|
85
|
+
...props,
|
|
86
|
+
values: {
|
|
87
|
+
orientation: state.orientation,
|
|
88
|
+
isDisabled: state.isDisabled,
|
|
89
|
+
state
|
|
90
|
+
},
|
|
91
|
+
defaultClassName: 'react-aria-Slider'
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
let DOMProps = filterDOMProps(props, {global: true});
|
|
95
|
+
delete DOMProps.id;
|
|
96
|
+
|
|
97
|
+
return (
|
|
98
|
+
<Provider
|
|
99
|
+
values={[
|
|
100
|
+
[SliderStateContext, state],
|
|
101
|
+
[SliderTrackContext, {...trackProps, ref: trackRef}],
|
|
102
|
+
[SliderOutputContext, outputProps],
|
|
103
|
+
[LabelContext, {...labelProps, ref: labelRef}]
|
|
104
|
+
]}>
|
|
105
|
+
<dom.div
|
|
106
|
+
{...mergeProps(DOMProps, renderProps, groupProps)}
|
|
107
|
+
ref={ref}
|
|
108
|
+
slot={props.slot || undefined}
|
|
109
|
+
data-orientation={state.orientation}
|
|
110
|
+
data-disabled={state.isDisabled || undefined} />
|
|
111
|
+
</Provider>
|
|
112
|
+
);
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
export interface SliderOutputProps extends RenderProps<SliderRenderProps, 'output'>, GlobalDOMAttributes<HTMLOutputElement> {
|
|
116
|
+
/**
|
|
117
|
+
* The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. A function may be provided to compute the class based on component state.
|
|
118
|
+
* @default 'react-aria-SliderOutput'
|
|
119
|
+
*/
|
|
120
|
+
className?: ClassNameOrFunction<SliderRenderProps>
|
|
121
|
+
}
|
|
122
|
+
interface SliderOutputContextValue extends Omit<OutputHTMLAttributes<HTMLOutputElement>, 'children' | 'className' | 'style'>, SliderOutputProps {}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* A slider output displays the current value of a slider as text.
|
|
126
|
+
*/
|
|
127
|
+
export const SliderOutput = /*#__PURE__*/ (forwardRef as forwardRefType)(function SliderOutput(props: SliderOutputProps, ref: ForwardedRef<HTMLOutputElement>) {
|
|
128
|
+
[props, ref] = useContextProps(props, ref, SliderOutputContext);
|
|
129
|
+
let {children, style, className, render, ...otherProps} = props;
|
|
130
|
+
let state = useContext(SliderStateContext)!;
|
|
131
|
+
let renderProps = useRenderProps({
|
|
132
|
+
className,
|
|
133
|
+
style,
|
|
134
|
+
children,
|
|
135
|
+
render,
|
|
136
|
+
defaultChildren: state.getThumbValueLabel(0),
|
|
137
|
+
defaultClassName: 'react-aria-SliderOutput',
|
|
138
|
+
values: {
|
|
139
|
+
orientation: state.orientation,
|
|
140
|
+
isDisabled: state.isDisabled,
|
|
141
|
+
state
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
return (
|
|
146
|
+
<dom.output
|
|
147
|
+
{...otherProps}
|
|
148
|
+
{...renderProps}
|
|
149
|
+
ref={ref}
|
|
150
|
+
data-orientation={state.orientation || undefined}
|
|
151
|
+
data-disabled={state.isDisabled || undefined} />
|
|
152
|
+
);
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
export interface SliderTrackRenderProps extends SliderRenderProps {
|
|
156
|
+
/**
|
|
157
|
+
* Whether the slider track is currently hovered with a mouse.
|
|
158
|
+
* @selector [data-hovered]
|
|
159
|
+
*/
|
|
160
|
+
isHovered: boolean
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
export interface SliderTrackProps extends HoverEvents, RenderProps<SliderTrackRenderProps>, GlobalDOMAttributes<HTMLDivElement> {
|
|
164
|
+
/**
|
|
165
|
+
* The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. A function may be provided to compute the class based on component state.
|
|
166
|
+
* @default 'react-aria-SliderTrack'
|
|
167
|
+
*/
|
|
168
|
+
className?: ClassNameOrFunction<SliderTrackRenderProps>
|
|
169
|
+
}
|
|
170
|
+
interface SliderTrackContextValue extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'className' | 'style'>, SliderTrackProps {}
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* A slider track is a container for one or more slider thumbs.
|
|
174
|
+
*/
|
|
175
|
+
export const SliderTrack = /*#__PURE__*/ (forwardRef as forwardRefType)(function SliderTrack(props: SliderTrackProps, ref: ForwardedRef<HTMLDivElement>) {
|
|
176
|
+
[props, ref] = useContextProps(props, ref, SliderTrackContext);
|
|
177
|
+
let state = useContext(SliderStateContext)!;
|
|
178
|
+
let {onHoverStart, onHoverEnd, onHoverChange, ...otherProps} = props;
|
|
179
|
+
let {hoverProps, isHovered} = useHover({onHoverStart, onHoverEnd, onHoverChange});
|
|
180
|
+
let renderProps = useRenderProps({
|
|
181
|
+
...props,
|
|
182
|
+
defaultClassName: 'react-aria-SliderTrack',
|
|
183
|
+
values: {
|
|
184
|
+
orientation: state.orientation,
|
|
185
|
+
isDisabled: state.isDisabled,
|
|
186
|
+
isHovered,
|
|
187
|
+
state
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
|
|
191
|
+
return (
|
|
192
|
+
<dom.div
|
|
193
|
+
{...mergeProps(otherProps, hoverProps)}
|
|
194
|
+
{...renderProps}
|
|
195
|
+
ref={ref}
|
|
196
|
+
data-hovered={isHovered || undefined}
|
|
197
|
+
data-orientation={state.orientation || undefined}
|
|
198
|
+
data-disabled={state.isDisabled || undefined} />
|
|
199
|
+
);
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
export interface SliderThumbRenderProps {
|
|
203
|
+
/**
|
|
204
|
+
* State of the slider.
|
|
205
|
+
*/
|
|
206
|
+
state: SliderState,
|
|
207
|
+
/**
|
|
208
|
+
* Whether this thumb is currently being dragged.
|
|
209
|
+
* @selector [data-dragging]
|
|
210
|
+
*/
|
|
211
|
+
isDragging: boolean,
|
|
212
|
+
/**
|
|
213
|
+
* Whether the thumb is currently hovered with a mouse.
|
|
214
|
+
* @selector [data-hovered]
|
|
215
|
+
*/
|
|
216
|
+
isHovered: boolean,
|
|
217
|
+
/**
|
|
218
|
+
* Whether the thumb is currently focused.
|
|
219
|
+
* @selector [data-focused]
|
|
220
|
+
*/
|
|
221
|
+
isFocused: boolean,
|
|
222
|
+
/**
|
|
223
|
+
* Whether the thumb is keyboard focused.
|
|
224
|
+
* @selector [data-focus-visible]
|
|
225
|
+
*/
|
|
226
|
+
isFocusVisible: boolean,
|
|
227
|
+
/**
|
|
228
|
+
* Whether the thumb is disabled.
|
|
229
|
+
* @selector [data-disabled]
|
|
230
|
+
*/
|
|
231
|
+
isDisabled: boolean
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
export interface SliderThumbProps extends Omit<AriaSliderThumbProps, 'label' | 'validationState'>, HoverEvents, RenderProps<SliderThumbRenderProps>, GlobalDOMAttributes<HTMLDivElement> {
|
|
235
|
+
/**
|
|
236
|
+
* The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. A function may be provided to compute the class based on component state.
|
|
237
|
+
* @default 'react-aria-SliderThumb'
|
|
238
|
+
*/
|
|
239
|
+
className?: ClassNameOrFunction<SliderThumbRenderProps>,
|
|
240
|
+
/**
|
|
241
|
+
* A ref for the HTML input element.
|
|
242
|
+
*/
|
|
243
|
+
inputRef?: RefObject<HTMLInputElement | null>
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* A slider thumb represents an individual value that the user can adjust within a slider track.
|
|
248
|
+
*/
|
|
249
|
+
export const SliderThumb = /*#__PURE__*/ (forwardRef as forwardRefType)(function SliderThumb(props: SliderThumbProps, ref: ForwardedRef<HTMLDivElement>) {
|
|
250
|
+
let {
|
|
251
|
+
inputRef: userInputRef = null
|
|
252
|
+
} = props;
|
|
253
|
+
let state = useContext(SliderStateContext)!;
|
|
254
|
+
let {ref: trackRef} = useSlottedContext(SliderTrackContext)!;
|
|
255
|
+
let {index = 0} = props;
|
|
256
|
+
let defaultInputRef = useRef<HTMLInputElement>(null);
|
|
257
|
+
let inputRef = userInputRef || defaultInputRef;
|
|
258
|
+
let [labelRef, label] = useSlot(
|
|
259
|
+
!props['aria-label'] && !props['aria-labelledby']
|
|
260
|
+
);
|
|
261
|
+
let {thumbProps, inputProps, labelProps, isDragging, isFocused, isDisabled} = useSliderThumb({
|
|
262
|
+
...props,
|
|
263
|
+
index,
|
|
264
|
+
trackRef: trackRef as RefObject<HTMLDivElement | null>,
|
|
265
|
+
inputRef,
|
|
266
|
+
label
|
|
267
|
+
}, state);
|
|
268
|
+
|
|
269
|
+
let {focusProps, isFocusVisible} = useFocusRing();
|
|
270
|
+
let {hoverProps, isHovered} = useHover(props);
|
|
271
|
+
|
|
272
|
+
let renderProps = useRenderProps({
|
|
273
|
+
...props,
|
|
274
|
+
defaultClassName: 'react-aria-SliderThumb',
|
|
275
|
+
values: {
|
|
276
|
+
state,
|
|
277
|
+
isHovered,
|
|
278
|
+
isDragging,
|
|
279
|
+
isFocused,
|
|
280
|
+
isFocusVisible,
|
|
281
|
+
isDisabled
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
let DOMProps = filterDOMProps(props, {global: true});
|
|
286
|
+
delete DOMProps.id;
|
|
287
|
+
|
|
288
|
+
return (
|
|
289
|
+
<dom.div
|
|
290
|
+
{...mergeProps(DOMProps, thumbProps, hoverProps)}
|
|
291
|
+
{...renderProps}
|
|
292
|
+
ref={ref}
|
|
293
|
+
style={{...thumbProps.style, ...renderProps.style}}
|
|
294
|
+
data-hovered={isHovered || undefined}
|
|
295
|
+
data-dragging={isDragging || undefined}
|
|
296
|
+
data-focused={isFocused || undefined}
|
|
297
|
+
data-focus-visible={isFocusVisible || undefined}
|
|
298
|
+
data-disabled={isDisabled || undefined}>
|
|
299
|
+
<VisuallyHidden>
|
|
300
|
+
<input ref={inputRef} {...mergeProps(inputProps, focusProps)} />
|
|
301
|
+
</VisuallyHidden>
|
|
302
|
+
<Provider
|
|
303
|
+
values={[
|
|
304
|
+
[LabelContext, {...labelProps, ref: labelRef}]
|
|
305
|
+
]}>
|
|
306
|
+
{renderProps.children}
|
|
307
|
+
</Provider>
|
|
308
|
+
</dom.div>
|
|
309
|
+
);
|
|
310
|
+
});
|
package/src/Switch.tsx
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import {AriaSwitchProps, HoverEvents, mergeProps, useFocusRing, useHover, useSwitch, VisuallyHidden} from 'react-aria';
|
|
14
|
+
import {
|
|
15
|
+
ClassNameOrFunction,
|
|
16
|
+
ContextValue,
|
|
17
|
+
dom,
|
|
18
|
+
removeDataAttributes,
|
|
19
|
+
RenderProps,
|
|
20
|
+
SlotProps,
|
|
21
|
+
useContextProps,
|
|
22
|
+
useRenderProps
|
|
23
|
+
} from './utils';
|
|
24
|
+
import {filterDOMProps, mergeRefs, useObjectRef} from '@react-aria/utils';
|
|
25
|
+
import {forwardRefType, GlobalDOMAttributes, RefObject} from '@react-types/shared';
|
|
26
|
+
import React, {createContext, ForwardedRef, forwardRef} from 'react';
|
|
27
|
+
import {ToggleState, useToggleState} from 'react-stately';
|
|
28
|
+
|
|
29
|
+
export interface SwitchProps extends Omit<AriaSwitchProps, 'children'>, HoverEvents, RenderProps<SwitchRenderProps, 'label'>, SlotProps, Omit<GlobalDOMAttributes<HTMLLabelElement>, 'onClick'> {
|
|
30
|
+
/**
|
|
31
|
+
* The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. A function may be provided to compute the class based on component state.
|
|
32
|
+
* @default 'react-aria-Switch'
|
|
33
|
+
*/
|
|
34
|
+
className?: ClassNameOrFunction<SwitchRenderProps>,
|
|
35
|
+
/**
|
|
36
|
+
* A ref for the HTML input element.
|
|
37
|
+
*/
|
|
38
|
+
inputRef?: RefObject<HTMLInputElement | null>
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export interface SwitchRenderProps {
|
|
42
|
+
/**
|
|
43
|
+
* Whether the switch is selected.
|
|
44
|
+
* @selector [data-selected]
|
|
45
|
+
*/
|
|
46
|
+
isSelected: boolean,
|
|
47
|
+
/**
|
|
48
|
+
* Whether the switch is currently hovered with a mouse.
|
|
49
|
+
* @selector [data-hovered]
|
|
50
|
+
*/
|
|
51
|
+
isHovered: boolean,
|
|
52
|
+
/**
|
|
53
|
+
* Whether the switch is currently in a pressed state.
|
|
54
|
+
* @selector [data-pressed]
|
|
55
|
+
*/
|
|
56
|
+
isPressed: boolean,
|
|
57
|
+
/**
|
|
58
|
+
* Whether the switch is focused, either via a mouse or keyboard.
|
|
59
|
+
* @selector [data-focused]
|
|
60
|
+
*/
|
|
61
|
+
isFocused: boolean,
|
|
62
|
+
/**
|
|
63
|
+
* Whether the switch is keyboard focused.
|
|
64
|
+
* @selector [data-focus-visible]
|
|
65
|
+
*/
|
|
66
|
+
isFocusVisible: boolean,
|
|
67
|
+
/**
|
|
68
|
+
* Whether the switch is disabled.
|
|
69
|
+
* @selector [data-disabled]
|
|
70
|
+
*/
|
|
71
|
+
isDisabled: boolean,
|
|
72
|
+
/**
|
|
73
|
+
* Whether the switch is read only.
|
|
74
|
+
* @selector [data-readonly]
|
|
75
|
+
*/
|
|
76
|
+
isReadOnly: boolean,
|
|
77
|
+
/**
|
|
78
|
+
* State of the switch.
|
|
79
|
+
*/
|
|
80
|
+
state: ToggleState
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export const SwitchContext = createContext<ContextValue<SwitchProps, HTMLLabelElement>>(null);
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* A switch allows a user to turn a setting on or off.
|
|
87
|
+
*/
|
|
88
|
+
export const Switch = /*#__PURE__*/ (forwardRef as forwardRefType)(function Switch(props: SwitchProps, ref: ForwardedRef<HTMLLabelElement>) {
|
|
89
|
+
let {
|
|
90
|
+
inputRef: userProvidedInputRef = null,
|
|
91
|
+
...otherProps
|
|
92
|
+
} = props;
|
|
93
|
+
[props, ref] = useContextProps(otherProps, ref, SwitchContext);
|
|
94
|
+
let inputRef = useObjectRef(mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null));
|
|
95
|
+
let state = useToggleState(props);
|
|
96
|
+
let {labelProps, inputProps, isSelected, isDisabled, isReadOnly, isPressed} = useSwitch({
|
|
97
|
+
...removeDataAttributes(props),
|
|
98
|
+
// ReactNode type doesn't allow function children.
|
|
99
|
+
children: typeof props.children === 'function' ? true : props.children
|
|
100
|
+
}, state, inputRef);
|
|
101
|
+
let {isFocused, isFocusVisible, focusProps} = useFocusRing();
|
|
102
|
+
let isInteractionDisabled = props.isDisabled || props.isReadOnly;
|
|
103
|
+
|
|
104
|
+
let {hoverProps, isHovered} = useHover({
|
|
105
|
+
...props,
|
|
106
|
+
isDisabled: isInteractionDisabled
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
let renderProps = useRenderProps({
|
|
110
|
+
...props,
|
|
111
|
+
defaultClassName: 'react-aria-Switch',
|
|
112
|
+
values: {
|
|
113
|
+
isSelected,
|
|
114
|
+
isPressed,
|
|
115
|
+
isHovered,
|
|
116
|
+
isFocused,
|
|
117
|
+
isFocusVisible,
|
|
118
|
+
isDisabled,
|
|
119
|
+
isReadOnly,
|
|
120
|
+
state
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
let DOMProps = filterDOMProps(props, {global: true});
|
|
125
|
+
delete DOMProps.id;
|
|
126
|
+
delete DOMProps.onClick;
|
|
127
|
+
|
|
128
|
+
return (
|
|
129
|
+
<dom.label
|
|
130
|
+
{...mergeProps(DOMProps, labelProps, hoverProps, renderProps)}
|
|
131
|
+
ref={ref}
|
|
132
|
+
slot={props.slot || undefined}
|
|
133
|
+
data-selected={isSelected || undefined}
|
|
134
|
+
data-pressed={isPressed || undefined}
|
|
135
|
+
data-hovered={isHovered || undefined}
|
|
136
|
+
data-focused={isFocused || undefined}
|
|
137
|
+
data-focus-visible={isFocusVisible || undefined}
|
|
138
|
+
data-disabled={isDisabled || undefined}
|
|
139
|
+
data-readonly={isReadOnly || undefined}>
|
|
140
|
+
<VisuallyHidden elementType="span">
|
|
141
|
+
<input {...mergeProps(inputProps, focusProps)} ref={inputRef} />
|
|
142
|
+
</VisuallyHidden>
|
|
143
|
+
{renderProps.children}
|
|
144
|
+
</dom.label>
|
|
145
|
+
);
|
|
146
|
+
});
|