@proyecto-viviana/solidaria-components 0.5.0 → 0.7.0-rc.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-APACHE-2.0 +201 -0
- package/NOTICE +91 -0
- package/README.md +4 -7
- package/dist/ActionBar.d.ts +2 -10
- package/dist/ActionBar.d.ts.map +1 -1
- package/dist/ActionBar.js +95 -59
- package/dist/ActionBar.js.map +1 -1
- package/dist/ActionBar.jsx +42 -15
- package/dist/ActionBar.jsx.map +1 -1
- package/dist/ActionGroup.d.ts +1 -12
- package/dist/ActionGroup.d.ts.map +1 -1
- package/dist/ActionGroup.js +66 -44
- package/dist/ActionGroup.js.map +1 -1
- package/dist/ActionGroup.jsx +25 -10
- package/dist/ActionGroup.jsx.map +1 -1
- package/dist/Alert.d.ts +4 -1
- package/dist/Alert.d.ts.map +1 -1
- package/dist/Alert.js +25 -17
- package/dist/Alert.js.map +1 -1
- package/dist/Alert.jsx +9 -5
- package/dist/Alert.jsx.map +1 -1
- package/dist/Autocomplete.d.ts +2 -9
- package/dist/Autocomplete.d.ts.map +1 -1
- package/dist/Autocomplete.js +18 -5
- package/dist/Autocomplete.js.map +1 -1
- package/dist/Autocomplete.jsx +20 -7
- package/dist/Autocomplete.jsx.map +1 -1
- package/dist/Breadcrumbs.d.ts +2 -7
- package/dist/Breadcrumbs.d.ts.map +1 -1
- package/dist/Breadcrumbs.js +71 -51
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/Breadcrumbs.jsx +25 -12
- package/dist/Breadcrumbs.jsx.map +1 -1
- package/dist/Button.d.ts +1 -7
- package/dist/Button.d.ts.map +1 -1
- package/dist/Button.js +125 -72
- package/dist/Button.js.map +1 -1
- package/dist/Button.jsx +105 -43
- package/dist/Button.jsx.map +1 -1
- package/dist/Calendar.d.ts +1 -7
- package/dist/Calendar.d.ts.map +1 -1
- package/dist/Calendar.js +297 -221
- package/dist/Calendar.js.map +1 -1
- package/dist/Calendar.jsx +52 -32
- package/dist/Calendar.jsx.map +1 -1
- package/dist/CalendarPicker.d.ts +1 -10
- package/dist/CalendarPicker.d.ts.map +1 -1
- package/dist/CalendarPicker.js +12 -0
- package/dist/CalendarPicker.js.map +1 -1
- package/dist/CalendarPicker.jsx +12 -0
- package/dist/CalendarPicker.jsx.map +1 -1
- package/dist/Checkbox.d.ts +2 -7
- package/dist/Checkbox.d.ts.map +1 -1
- package/dist/Checkbox.js +332 -270
- package/dist/Checkbox.js.map +1 -1
- package/dist/Checkbox.jsx +70 -77
- package/dist/Checkbox.jsx.map +1 -1
- package/dist/Collection.d.ts +33 -7
- package/dist/Collection.d.ts.map +1 -1
- package/dist/Collection.js +128 -74
- package/dist/Collection.js.map +1 -1
- package/dist/Collection.jsx +46 -7
- package/dist/Collection.jsx.map +1 -1
- package/dist/Color.d.ts +15 -20
- package/dist/Color.d.ts.map +1 -1
- package/dist/Color.js +572 -334
- package/dist/Color.js.map +1 -1
- package/dist/Color.jsx +205 -85
- package/dist/Color.jsx.map +1 -1
- package/dist/ColorEditor.d.ts +3 -1
- package/dist/ColorEditor.d.ts.map +1 -1
- package/dist/ColorEditor.js +147 -124
- package/dist/ColorEditor.js.map +1 -1
- package/dist/ColorEditor.jsx +4 -1
- package/dist/ColorEditor.jsx.map +1 -1
- package/dist/ComboBox.d.ts +31 -10
- package/dist/ComboBox.d.ts.map +1 -1
- package/dist/ComboBox.js +539 -274
- package/dist/ComboBox.js.map +1 -1
- package/dist/ComboBox.jsx +213 -70
- package/dist/ComboBox.jsx.map +1 -1
- package/dist/ContextualHelpTrigger.d.ts +1 -7
- package/dist/ContextualHelpTrigger.d.ts.map +1 -1
- package/dist/ContextualHelpTrigger.js +102 -72
- package/dist/ContextualHelpTrigger.js.map +1 -1
- package/dist/ContextualHelpTrigger.jsx +36 -16
- package/dist/ContextualHelpTrigger.jsx.map +1 -1
- package/dist/DateField.d.ts +2 -7
- package/dist/DateField.d.ts.map +1 -1
- package/dist/DateField.js +0 -2
- package/dist/DateField.jsx +0 -2
- package/dist/DateField2.js +194 -179
- package/dist/DateField2.js.map +1 -1
- package/dist/DateField2.jsx +58 -55
- package/dist/DateField2.jsx.map +1 -1
- package/dist/DatePicker.d.ts +7 -7
- package/dist/DatePicker.d.ts.map +1 -1
- package/dist/DatePicker.js +2 -2
- package/dist/DatePicker.jsx +2 -2
- package/dist/DatePicker2.js +357 -435
- package/dist/DatePicker2.js.map +1 -1
- package/dist/DatePicker2.jsx +109 -178
- package/dist/DatePicker2.jsx.map +1 -1
- package/dist/DateRangePickerContext.d.ts +7 -0
- package/dist/DateRangePickerContext.d.ts.map +1 -1
- package/dist/Dialog.d.ts +4 -9
- package/dist/Dialog.d.ts.map +1 -1
- package/dist/Dialog.js +168 -101
- package/dist/Dialog.js.map +1 -1
- package/dist/Dialog.jsx +75 -27
- package/dist/Dialog.jsx.map +1 -1
- package/dist/Disclosure.d.ts +1 -9
- package/dist/Disclosure.d.ts.map +1 -1
- package/dist/Disclosure.js +121 -79
- package/dist/Disclosure.js.map +1 -1
- package/dist/Disclosure.jsx +32 -19
- package/dist/Disclosure.jsx.map +1 -1
- package/dist/DragAndDrop.d.ts +9 -6
- package/dist/DragAndDrop.d.ts.map +1 -1
- package/dist/DragAndDrop.js +37 -22
- package/dist/DragAndDrop.js.map +1 -1
- package/dist/DragAndDrop.jsx +20 -4
- package/dist/DragAndDrop.jsx.map +1 -1
- package/dist/DragPreview.d.ts +1 -1
- package/dist/DragPreview.d.ts.map +1 -1
- package/dist/DropZone.d.ts +1 -7
- package/dist/DropZone.d.ts.map +1 -1
- package/dist/DropZone.js +74 -40
- package/dist/DropZone.js.map +1 -1
- package/dist/DropZone.jsx +24 -8
- package/dist/DropZone.jsx.map +1 -1
- package/dist/ElementTag.d.ts +9 -20
- package/dist/ElementTag.d.ts.map +1 -1
- package/dist/ElementTag.js +8 -210
- package/dist/ElementTag.js.map +1 -1
- package/dist/ElementTag.jsx +8 -57
- package/dist/ElementTag.jsx.map +1 -1
- package/dist/FieldError.d.ts +8 -7
- package/dist/FieldError.d.ts.map +1 -1
- package/dist/FieldError.js +33 -13
- package/dist/FieldError.js.map +1 -1
- package/dist/FieldError.jsx +20 -5
- package/dist/FieldError.jsx.map +1 -1
- package/dist/FileTrigger.d.ts +1 -7
- package/dist/FileTrigger.d.ts.map +1 -1
- package/dist/FileTrigger.js +30 -12
- package/dist/FileTrigger.js.map +1 -1
- package/dist/FileTrigger.jsx +15 -2
- package/dist/FileTrigger.jsx.map +1 -1
- package/dist/Focusable.d.ts +2 -8
- package/dist/Focusable.d.ts.map +1 -1
- package/dist/Focusable.js +23 -6
- package/dist/Focusable.js.map +1 -1
- package/dist/Focusable.jsx +22 -5
- package/dist/Focusable.jsx.map +1 -1
- package/dist/Form.d.ts +9 -8
- package/dist/Form.d.ts.map +1 -1
- package/dist/Form.js +66 -43
- package/dist/Form.js.map +1 -1
- package/dist/Form.jsx +36 -16
- package/dist/Form.jsx.map +1 -1
- package/dist/GridList.d.ts +5 -10
- package/dist/GridList.d.ts.map +1 -1
- package/dist/GridList.js +372 -243
- package/dist/GridList.js.map +1 -1
- package/dist/GridList.jsx +177 -99
- package/dist/GridList.jsx.map +1 -1
- package/dist/HiddenDateInput.d.ts +1 -7
- package/dist/HiddenDateInput.d.ts.map +1 -1
- package/dist/Icon.d.ts +4 -1
- package/dist/Icon.d.ts.map +1 -1
- package/dist/Icon.js +41 -37
- package/dist/Icon.js.map +1 -1
- package/dist/Icon.jsx +7 -3
- package/dist/Icon.jsx.map +1 -1
- package/dist/Keyboard.d.ts +1 -7
- package/dist/Keyboard.d.ts.map +1 -1
- package/dist/Keyboard.js +24 -11
- package/dist/Keyboard.js.map +1 -1
- package/dist/Keyboard.jsx +15 -2
- package/dist/Keyboard.jsx.map +1 -1
- package/dist/Label.d.ts +20 -0
- package/dist/Label.d.ts.map +1 -0
- package/dist/Label.js +60 -0
- package/dist/Label.js.map +1 -0
- package/dist/Label.jsx +47 -0
- package/dist/Label.jsx.map +1 -0
- package/dist/Landmark.d.ts +4 -1
- package/dist/Landmark.d.ts.map +1 -1
- package/dist/Landmark.js +10 -4
- package/dist/Landmark.js.map +1 -1
- package/dist/Landmark.jsx +5 -1
- package/dist/Landmark.jsx.map +1 -1
- package/dist/Link.d.ts +2 -7
- package/dist/Link.d.ts.map +1 -1
- package/dist/Link.js +56 -36
- package/dist/Link.js.map +1 -1
- package/dist/Link.jsx +52 -10
- package/dist/Link.jsx.map +1 -1
- package/dist/ListBox.d.ts +17 -13
- package/dist/ListBox.d.ts.map +1 -1
- package/dist/ListBox.js +647 -348
- package/dist/ListBox.js.map +1 -1
- package/dist/ListBox.jsx +339 -236
- package/dist/ListBox.jsx.map +1 -1
- package/dist/ListDropTargetDelegate.d.ts +3 -0
- package/dist/ListDropTargetDelegate.d.ts.map +1 -1
- package/dist/Menu.d.ts +39 -30
- package/dist/Menu.d.ts.map +1 -1
- package/dist/Menu.js +547 -368
- package/dist/Menu.js.map +1 -1
- package/dist/Menu.jsx +328 -230
- package/dist/Menu.jsx.map +1 -1
- package/dist/Meter.d.ts +6 -13
- package/dist/Meter.d.ts.map +1 -1
- package/dist/Meter.js +55 -18
- package/dist/Meter.js.map +1 -1
- package/dist/Meter.jsx +33 -8
- package/dist/Meter.jsx.map +1 -1
- package/dist/Modal.d.ts +1 -7
- package/dist/Modal.d.ts.map +1 -1
- package/dist/Modal.js +104 -56
- package/dist/Modal.js.map +1 -1
- package/dist/Modal.jsx +68 -38
- package/dist/Modal.jsx.map +1 -1
- package/dist/NumberField.d.ts +4 -7
- package/dist/NumberField.d.ts.map +1 -1
- package/dist/NumberField.js +243 -124
- package/dist/NumberField.js.map +1 -1
- package/dist/NumberField.jsx +115 -26
- package/dist/NumberField.jsx.map +1 -1
- package/dist/Popover.d.ts +15 -7
- package/dist/Popover.d.ts.map +1 -1
- package/dist/Popover.js +370 -181
- package/dist/Popover.js.map +1 -1
- package/dist/Popover.jsx +215 -82
- package/dist/Popover.jsx.map +1 -1
- package/dist/Pressable.d.ts +2 -8
- package/dist/Pressable.d.ts.map +1 -1
- package/dist/Pressable.js +23 -6
- package/dist/Pressable.js.map +1 -1
- package/dist/Pressable.jsx +22 -5
- package/dist/Pressable.jsx.map +1 -1
- package/dist/PreviewTrigger.d.ts +24 -0
- package/dist/PreviewTrigger.d.ts.map +1 -0
- package/dist/PreviewTrigger.js +128 -0
- package/dist/PreviewTrigger.js.map +1 -0
- package/dist/PreviewTrigger.jsx +117 -0
- package/dist/PreviewTrigger.jsx.map +1 -0
- package/dist/ProgressBar.d.ts +1 -7
- package/dist/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar.js +34 -14
- package/dist/ProgressBar.js.map +1 -1
- package/dist/ProgressBar.jsx +17 -3
- package/dist/ProgressBar.jsx.map +1 -1
- package/dist/RadioGroup.d.ts +2 -7
- package/dist/RadioGroup.d.ts.map +1 -1
- package/dist/RadioGroup.js +388 -269
- package/dist/RadioGroup.js.map +1 -1
- package/dist/RadioGroup.jsx +110 -99
- package/dist/RadioGroup.jsx.map +1 -1
- package/dist/RangeCalendar.d.ts +3 -7
- package/dist/RangeCalendar.d.ts.map +1 -1
- package/dist/RangeCalendar.js +271 -202
- package/dist/RangeCalendar.js.map +1 -1
- package/dist/RangeCalendar.jsx +56 -37
- package/dist/RangeCalendar.jsx.map +1 -1
- package/dist/RouterProvider.d.ts +3 -9
- package/dist/RouterProvider.d.ts.map +1 -1
- package/dist/RouterProvider.js +15 -14
- package/dist/RouterProvider.js.map +1 -1
- package/dist/RouterProvider.jsx +14 -13
- package/dist/RouterProvider.jsx.map +1 -1
- package/dist/SearchField.d.ts +4 -7
- package/dist/SearchField.d.ts.map +1 -1
- package/dist/SearchField.js +191 -164
- package/dist/SearchField.js.map +1 -1
- package/dist/SearchField.jsx +69 -62
- package/dist/SearchField.jsx.map +1 -1
- package/dist/Select.d.ts +5 -10
- package/dist/Select.d.ts.map +1 -1
- package/dist/Select.js +565 -359
- package/dist/Select.js.map +1 -1
- package/dist/Select.jsx +281 -161
- package/dist/Select.jsx.map +1 -1
- package/dist/SelectionIndicator.d.ts +1 -4
- package/dist/SelectionIndicator.d.ts.map +1 -1
- package/dist/SelectionIndicator.js +29 -13
- package/dist/SelectionIndicator.js.map +1 -1
- package/dist/SelectionIndicator.jsx +18 -4
- package/dist/SelectionIndicator.jsx.map +1 -1
- package/dist/Separator.d.ts +1 -7
- package/dist/Separator.d.ts.map +1 -1
- package/dist/Separator.js +22 -6
- package/dist/Separator.js.map +1 -1
- package/dist/Separator.jsx +16 -3
- package/dist/Separator.jsx.map +1 -1
- package/dist/SharedElementTransition.d.ts +1 -10
- package/dist/SharedElementTransition.d.ts.map +1 -1
- package/dist/SharedElementTransition.js +68 -40
- package/dist/SharedElementTransition.js.map +1 -1
- package/dist/SharedElementTransition.jsx +49 -25
- package/dist/SharedElementTransition.jsx.map +1 -1
- package/dist/Slider.d.ts +2 -8
- package/dist/Slider.d.ts.map +1 -1
- package/dist/Slider.js +155 -97
- package/dist/Slider.js.map +1 -1
- package/dist/Slider.jsx +25 -12
- package/dist/Slider.jsx.map +1 -1
- package/dist/StepList.d.ts +1 -7
- package/dist/StepList.d.ts.map +1 -1
- package/dist/StepList.js +112 -68
- package/dist/StepList.js.map +1 -1
- package/dist/StepList.jsx +58 -20
- package/dist/StepList.jsx.map +1 -1
- package/dist/Switch.d.ts +2 -9
- package/dist/Switch.d.ts.map +1 -1
- package/dist/Switch.js +164 -114
- package/dist/Switch.js.map +1 -1
- package/dist/Switch.jsx +26 -13
- package/dist/Switch.jsx.map +1 -1
- package/dist/Table.d.ts +2 -1
- package/dist/Table.d.ts.map +1 -1
- package/dist/Table.js +689 -592
- package/dist/Table.js.map +1 -1
- package/dist/Table.jsx +317 -237
- package/dist/Table.jsx.map +1 -1
- package/dist/Tabs.d.ts +2 -7
- package/dist/Tabs.d.ts.map +1 -1
- package/dist/Tabs.js +278 -293
- package/dist/Tabs.js.map +1 -1
- package/dist/Tabs.jsx +68 -66
- package/dist/Tabs.jsx.map +1 -1
- package/dist/TagGroup.d.ts +4 -11
- package/dist/TagGroup.d.ts.map +1 -1
- package/dist/TagGroup.js +153 -115
- package/dist/TagGroup.js.map +1 -1
- package/dist/TagGroup.jsx +37 -24
- package/dist/TagGroup.jsx.map +1 -1
- package/dist/Text.d.ts +3 -3
- package/dist/Text.d.ts.map +1 -1
- package/dist/Text.js +24 -7
- package/dist/Text.js.map +1 -1
- package/dist/Text.jsx +17 -5
- package/dist/Text.jsx.map +1 -1
- package/dist/TextField.d.ts +3 -16
- package/dist/TextField.d.ts.map +1 -1
- package/dist/TextField.js +104 -129
- package/dist/TextField.js.map +1 -1
- package/dist/TextField.jsx +76 -102
- package/dist/TextField.jsx.map +1 -1
- package/dist/TimeField.d.ts +2 -15
- package/dist/TimeField.d.ts.map +1 -1
- package/dist/TimeField.js +86 -102
- package/dist/TimeField.js.map +1 -1
- package/dist/TimeField.jsx +32 -49
- package/dist/TimeField.jsx.map +1 -1
- package/dist/Toast.d.ts +10 -13
- package/dist/Toast.d.ts.map +1 -1
- package/dist/Toast.js +209 -108
- package/dist/Toast.js.map +1 -1
- package/dist/Toast.jsx +127 -22
- package/dist/Toast.jsx.map +1 -1
- package/dist/ToggleButton.d.ts +1 -7
- package/dist/ToggleButton.d.ts.map +1 -1
- package/dist/ToggleButton.js +57 -35
- package/dist/ToggleButton.js.map +1 -1
- package/dist/ToggleButton.jsx +26 -12
- package/dist/ToggleButton.jsx.map +1 -1
- package/dist/ToggleButtonGroup.d.ts +1 -7
- package/dist/ToggleButtonGroup.d.ts.map +1 -1
- package/dist/ToggleButtonGroup.js +59 -44
- package/dist/ToggleButtonGroup.js.map +1 -1
- package/dist/ToggleButtonGroup.jsx +25 -12
- package/dist/ToggleButtonGroup.jsx.map +1 -1
- package/dist/TokenField.d.ts +52 -0
- package/dist/TokenField.d.ts.map +1 -0
- package/dist/TokenField.js +301 -0
- package/dist/TokenField.js.map +1 -0
- package/dist/TokenField.jsx +197 -0
- package/dist/TokenField.jsx.map +1 -0
- package/dist/Toolbar.d.ts +2 -7
- package/dist/Toolbar.d.ts.map +1 -1
- package/dist/Toolbar.js +35 -16
- package/dist/Toolbar.js.map +1 -1
- package/dist/Toolbar.jsx +15 -2
- package/dist/Toolbar.jsx.map +1 -1
- package/dist/Tooltip.d.ts +2 -7
- package/dist/Tooltip.d.ts.map +1 -1
- package/dist/Tooltip.js +105 -68
- package/dist/Tooltip.js.map +1 -1
- package/dist/Tooltip.jsx +60 -36
- package/dist/Tooltip.jsx.map +1 -1
- package/dist/Tree.d.ts +8 -11
- package/dist/Tree.d.ts.map +1 -1
- package/dist/Tree.js +486 -339
- package/dist/Tree.js.map +1 -1
- package/dist/Tree.jsx +155 -107
- package/dist/Tree.jsx.map +1 -1
- package/dist/Virtualizer.d.ts +39 -9
- package/dist/Virtualizer.d.ts.map +1 -1
- package/dist/Virtualizer.js +2 -2
- package/dist/Virtualizer.jsx +2 -2
- package/dist/Virtualizer2.js +491 -136
- package/dist/Virtualizer2.js.map +1 -1
- package/dist/Virtualizer2.jsx +455 -122
- package/dist/Virtualizer2.jsx.map +1 -1
- package/dist/VirtualizerLayouts.d.ts +55 -2
- package/dist/VirtualizerLayouts.d.ts.map +1 -1
- package/dist/VisuallyHidden.d.ts +4 -3
- package/dist/VisuallyHidden.d.ts.map +1 -1
- package/dist/VisuallyHidden.js +18 -11
- package/dist/VisuallyHidden.js.map +1 -1
- package/dist/VisuallyHidden.jsx +15 -9
- package/dist/VisuallyHidden.jsx.map +1 -1
- package/dist/contexts.d.ts +25 -0
- package/dist/contexts.d.ts.map +1 -1
- package/dist/contexts.js +3 -0
- package/dist/contexts.js.map +1 -1
- package/dist/contexts.jsx +3 -0
- package/dist/contexts.jsx.map +1 -1
- package/dist/index.d.ts +11 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -11
- package/dist/index.jsx +14 -11
- package/dist/intl/index.d.ts +16 -0
- package/dist/intl/index.d.ts.map +1 -0
- package/dist/intl.js +212 -0
- package/dist/intl.js.map +1 -0
- package/dist/intl.jsx +212 -0
- package/dist/intl.jsx.map +1 -0
- package/dist/useDragAndDrop.d.ts +4 -2
- package/dist/useDragAndDrop.d.ts.map +1 -1
- package/dist/useDragAndDrop2.js +39 -21
- package/dist/useDragAndDrop2.js.map +1 -1
- package/dist/useDragAndDrop2.jsx +39 -21
- package/dist/useDragAndDrop2.jsx.map +1 -1
- package/dist/utils.d.ts +28 -9
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +96 -24
- package/dist/utils.js.map +1 -1
- package/dist/utils.jsx +81 -24
- package/dist/utils.jsx.map +1 -1
- package/dist/virtualizer/Layout.d.ts +9 -0
- package/dist/virtualizer/Layout.d.ts.map +1 -1
- package/dist/virtualizer/Layout.js +23 -2
- package/dist/virtualizer/Layout.js.map +1 -1
- package/dist/virtualizer/Layout.jsx +23 -2
- package/dist/virtualizer/Layout.jsx.map +1 -1
- package/package.json +29 -10
- package/src/ActionBar.tsx +50 -24
- package/src/ActionGroup.tsx +31 -19
- package/src/Alert.tsx +10 -4
- package/src/Autocomplete.tsx +24 -15
- package/src/Breadcrumbs.tsx +32 -16
- package/src/Button.tsx +182 -67
- package/src/Calendar.tsx +65 -47
- package/src/CalendarPicker.tsx +16 -1
- package/src/Checkbox.tsx +84 -116
- package/src/Collection.tsx +84 -3
- package/src/Color.tsx +282 -104
- package/src/ColorEditor.tsx +5 -1
- package/src/ComboBox.tsx +384 -109
- package/src/ContextualHelpTrigger.tsx +47 -41
- package/src/DateField.tsx +74 -106
- package/src/DatePicker.tsx +156 -352
- package/src/DateRangePickerContext.tsx +8 -0
- package/src/Dialog.tsx +105 -38
- package/src/Disclosure.tsx +29 -19
- package/src/DragAndDrop.tsx +43 -8
- package/src/DragPreview.tsx +20 -1
- package/src/DropZone.tsx +32 -18
- package/src/ElementTag.tsx +14 -104
- package/src/FieldError.tsx +39 -7
- package/src/FileTrigger.tsx +18 -3
- package/src/Focusable.tsx +27 -6
- package/src/Form.tsx +57 -11
- package/src/GridList.tsx +233 -141
- package/src/HiddenDateInput.tsx +19 -3
- package/src/Icon.tsx +8 -2
- package/src/Keyboard.tsx +18 -2
- package/src/Label.tsx +77 -0
- package/src/Landmark.tsx +6 -1
- package/src/Link.tsx +65 -19
- package/src/ListBox.tsx +645 -468
- package/src/ListDropTargetDelegate.ts +4 -0
- package/src/Menu.tsx +512 -349
- package/src/Meter.tsx +42 -8
- package/src/Modal.tsx +85 -42
- package/src/NumberField.tsx +161 -48
- package/src/Popover.tsx +424 -148
- package/src/Pressable.tsx +27 -6
- package/src/PreviewTrigger.tsx +171 -0
- package/src/ProgressBar.tsx +25 -3
- package/src/RadioGroup.tsx +230 -161
- package/src/RangeCalendar.tsx +75 -63
- package/src/RouterProvider.tsx +24 -14
- package/src/SearchField.tsx +118 -121
- package/src/Select.tsx +454 -274
- package/src/SelectionIndicator.tsx +21 -3
- package/src/Separator.tsx +17 -1
- package/src/SharedElementTransition.tsx +115 -97
- package/src/Slider.tsx +35 -17
- package/src/StepList.tsx +71 -32
- package/src/Switch.tsx +45 -29
- package/src/Table.tsx +446 -380
- package/src/Tabs.tsx +132 -155
- package/src/TagGroup.tsx +53 -40
- package/src/Text.tsx +23 -6
- package/src/TextField.tsx +118 -159
- package/src/TimeField.tsx +34 -95
- package/src/Toast.tsx +141 -67
- package/src/ToggleButton.tsx +33 -15
- package/src/ToggleButtonGroup.tsx +27 -9
- package/src/TokenField.tsx +379 -0
- package/src/Toolbar.tsx +19 -9
- package/src/Tooltip.tsx +126 -84
- package/src/Tree.tsx +233 -173
- package/src/Virtualizer.tsx +400 -138
- package/src/VirtualizerLayouts.ts +211 -26
- package/src/VisuallyHidden.tsx +22 -8
- package/src/contexts.ts +13 -0
- package/src/index.ts +32 -11
- package/src/intl/ar-AE.json +6 -0
- package/src/intl/bg-BG.json +6 -0
- package/src/intl/cs-CZ.json +6 -0
- package/src/intl/da-DK.json +6 -0
- package/src/intl/de-DE.json +6 -0
- package/src/intl/el-GR.json +6 -0
- package/src/intl/en-US.json +6 -0
- package/src/intl/es-ES.json +6 -0
- package/src/intl/et-EE.json +6 -0
- package/src/intl/fi-FI.json +6 -0
- package/src/intl/fr-FR.json +6 -0
- package/src/intl/he-IL.json +6 -0
- package/src/intl/hr-HR.json +6 -0
- package/src/intl/hu-HU.json +6 -0
- package/src/intl/index.ts +125 -0
- package/src/intl/it-IT.json +6 -0
- package/src/intl/ja-JP.json +6 -0
- package/src/intl/ko-KR.json +6 -0
- package/src/intl/lt-LT.json +6 -0
- package/src/intl/lv-LV.json +6 -0
- package/src/intl/nb-NO.json +6 -0
- package/src/intl/nl-NL.json +6 -0
- package/src/intl/pl-PL.json +6 -0
- package/src/intl/pt-BR.json +6 -0
- package/src/intl/pt-PT.json +6 -0
- package/src/intl/ro-RO.json +6 -0
- package/src/intl/ru-RU.json +6 -0
- package/src/intl/sk-SK.json +6 -0
- package/src/intl/sl-SI.json +6 -0
- package/src/intl/sr-SP.json +6 -0
- package/src/intl/sv-SE.json +6 -0
- package/src/intl/tr-TR.json +6 -0
- package/src/intl/uk-UA.json +6 -0
- package/src/intl/zh-CN.json +6 -0
- package/src/intl/zh-TW.json +6 -0
- package/src/useDragAndDrop.ts +30 -32
- package/src/utils.tsx +124 -68
- package/src/virtualizer/Layout.ts +29 -0
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local Solid context shared by the date-range picker fields.
|
|
3
|
+
* The owning DatePicker module records the upstream component source.
|
|
4
|
+
*/
|
|
5
|
+
|
|
1
6
|
import { createContext, useContext } from "solid-js";
|
|
2
7
|
import { type createDateRangePicker } from "@proyecto-viviana/solidaria";
|
|
3
8
|
import {
|
|
@@ -32,6 +37,9 @@ export interface DateRangePickerContextValue {
|
|
|
32
37
|
};
|
|
33
38
|
triggerRef: () => HTMLElement | null;
|
|
34
39
|
setTriggerRef: (element: HTMLElement | null) => void;
|
|
40
|
+
/** RAC Popover `triggerRef: groupRef` — the FieldGroup, not the calendar button. */
|
|
41
|
+
groupRef: () => HTMLElement | null;
|
|
42
|
+
setGroupRef: (element: HTMLElement | null) => void;
|
|
35
43
|
pickerAria: ReturnType<typeof createDateRangePicker>;
|
|
36
44
|
}
|
|
37
45
|
|
package/src/Dialog.tsx
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
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
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/Dialog.tsx
|
|
14
|
+
|
|
1
15
|
/**
|
|
2
16
|
* Dialog component for solidaria-components
|
|
3
17
|
*
|
|
@@ -6,20 +20,23 @@
|
|
|
6
20
|
*/
|
|
7
21
|
|
|
8
22
|
import {
|
|
9
|
-
type JSX,
|
|
10
23
|
createContext,
|
|
11
24
|
createEffect,
|
|
12
25
|
createMemo,
|
|
26
|
+
createSignal,
|
|
13
27
|
createUniqueId,
|
|
14
|
-
splitProps,
|
|
15
28
|
useContext,
|
|
16
29
|
Switch,
|
|
17
30
|
Match,
|
|
31
|
+
createTrackedEffect,
|
|
18
32
|
} from "solid-js";
|
|
33
|
+
import type { Context } from "solid-js";
|
|
34
|
+
import type { JSX } from "@solidjs/web";
|
|
19
35
|
import {
|
|
20
36
|
createDialog,
|
|
21
37
|
createOverlayTrigger,
|
|
22
38
|
focusSafely,
|
|
39
|
+
useIsHidden,
|
|
23
40
|
type AriaDialogProps,
|
|
24
41
|
} from "@proyecto-viviana/solidaria";
|
|
25
42
|
import {
|
|
@@ -27,9 +44,13 @@ import {
|
|
|
27
44
|
type OverlayTriggerState,
|
|
28
45
|
} from "@proyecto-viviana/solid-stately";
|
|
29
46
|
import { DialogTriggerContext, useOverlayTriggerState } from "./contexts";
|
|
47
|
+
import { OverlayContext } from "./Popover";
|
|
30
48
|
import { ButtonContext } from "./Button";
|
|
49
|
+
import { TextContext } from "./Text";
|
|
50
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
31
51
|
import {
|
|
32
52
|
DEFAULT_SLOT,
|
|
53
|
+
Provider,
|
|
33
54
|
type RenderChildren,
|
|
34
55
|
type ClassNameOrFunction,
|
|
35
56
|
type StyleOrFunction,
|
|
@@ -78,7 +99,7 @@ export { DialogTriggerContext, useDialogTrigger } from "./contexts";
|
|
|
78
99
|
* A DialogTrigger opens a dialog when a trigger element is pressed.
|
|
79
100
|
* Children should include a trigger element (e.g. Button) and the dialog content.
|
|
80
101
|
*/
|
|
81
|
-
export function DialogTrigger(props: DialogTriggerProps): JSX.Element {
|
|
102
|
+
export function DialogTrigger(props: DialogTriggerProps): JSX.Element | null {
|
|
82
103
|
const [local] = splitProps(props, ["isOpen", "defaultOpen", "onOpenChange"]);
|
|
83
104
|
|
|
84
105
|
const state = createOverlayTriggerState({
|
|
@@ -91,15 +112,17 @@ export function DialogTrigger(props: DialogTriggerProps): JSX.Element {
|
|
|
91
112
|
onOpenChange: local.onOpenChange,
|
|
92
113
|
});
|
|
93
114
|
|
|
94
|
-
|
|
115
|
+
// A signal, so a consumer reading `triggerRef()` (e.g. the dialog's
|
|
116
|
+
// trigger-label fallback) re-reads once the trigger mounts.
|
|
117
|
+
const [triggerRef, setTriggerElement] = createSignal<HTMLElement | null>(null);
|
|
95
118
|
const triggerId = createUniqueId();
|
|
96
119
|
|
|
97
120
|
// Create overlay trigger props so registered trigger components can expose
|
|
98
121
|
// the same expanded/controls relationship as React Aria DialogTrigger.
|
|
99
|
-
const triggerAria = createOverlayTrigger({ type: "dialog" }, state,
|
|
122
|
+
const triggerAria = createOverlayTrigger({ type: "dialog" }, state, triggerRef);
|
|
100
123
|
|
|
101
124
|
const restoreFocusToTrigger = () => {
|
|
102
|
-
const trigger = triggerRef;
|
|
125
|
+
const trigger = triggerRef();
|
|
103
126
|
if (!trigger?.isConnected) return;
|
|
104
127
|
|
|
105
128
|
const win = trigger.ownerDocument.defaultView ?? window;
|
|
@@ -132,31 +155,40 @@ export function DialogTrigger(props: DialogTriggerProps): JSX.Element {
|
|
|
132
155
|
restoreFocusToTrigger();
|
|
133
156
|
}
|
|
134
157
|
},
|
|
158
|
+
point: state.point,
|
|
159
|
+
setPoint: state.setPoint,
|
|
135
160
|
};
|
|
136
161
|
|
|
137
162
|
const setTriggerRef = (el: HTMLElement | null) => {
|
|
138
163
|
if (!el) return;
|
|
139
|
-
|
|
140
|
-
|
|
164
|
+
// First registrant wins. Replacing a not-yet-connected trigger lets a later
|
|
165
|
+
// CloseButton steal ownership during defaultOpen (both refs fire before
|
|
166
|
+
// either node is in the document), then close+toggle reopens the dialog.
|
|
167
|
+
if (!triggerRef()) {
|
|
168
|
+
setTriggerElement(el);
|
|
141
169
|
}
|
|
142
170
|
};
|
|
143
171
|
|
|
144
172
|
// Context value - memoized to avoid unnecessary re-renders
|
|
145
173
|
const contextValue = createMemo(() => ({
|
|
146
174
|
state: stateWithFocusRestore,
|
|
147
|
-
triggerRef
|
|
175
|
+
triggerRef,
|
|
148
176
|
setTriggerRef,
|
|
149
177
|
triggerId,
|
|
150
178
|
triggerProps: triggerAria.triggerProps,
|
|
151
179
|
overlayProps: triggerAria.overlayProps,
|
|
152
180
|
}));
|
|
153
181
|
|
|
182
|
+
// If within a collection (e.g. Tabs), render nothing. Matches RAC DialogTrigger
|
|
183
|
+
// (`useIsHidden()` early return) so a hidden collection pass does not leak a
|
|
184
|
+
// duplicate trigger. Not using createHideableComponent: that also wraps a ref.
|
|
185
|
+
const isHidden = useIsHidden();
|
|
186
|
+
if (isHidden()) {
|
|
187
|
+
return null;
|
|
188
|
+
}
|
|
189
|
+
|
|
154
190
|
// In SolidJS, we simply render children directly within the provider
|
|
155
|
-
return (
|
|
156
|
-
<DialogTriggerContext.Provider value={contextValue()}>
|
|
157
|
-
{props.children}
|
|
158
|
-
</DialogTriggerContext.Provider>
|
|
159
|
-
);
|
|
191
|
+
return <DialogTriggerContext value={contextValue()}>{props.children}</DialogTriggerContext>;
|
|
160
192
|
}
|
|
161
193
|
|
|
162
194
|
/**
|
|
@@ -169,13 +201,17 @@ export function Dialog(props: DialogProps): JSX.Element {
|
|
|
169
201
|
["role", "aria-label", "aria-labelledby", "aria-describedby"],
|
|
170
202
|
);
|
|
171
203
|
|
|
172
|
-
let dialogRef
|
|
204
|
+
let dialogRef: HTMLElement | undefined;
|
|
205
|
+
const setDialogRef = (element: HTMLElement) => {
|
|
206
|
+
dialogRef = element;
|
|
207
|
+
};
|
|
173
208
|
|
|
174
209
|
// Get trigger context for aria-labelledby fallback
|
|
175
210
|
const triggerContext = useContext(DialogTriggerContext);
|
|
176
211
|
|
|
177
|
-
// createDialog returns
|
|
178
|
-
|
|
212
|
+
// createDialog returns the props that wire the dialog to its title and, for
|
|
213
|
+
// alertdialogs, its description content.
|
|
214
|
+
const { dialogProps, titleProps, contentProps } = createDialog(
|
|
179
215
|
{
|
|
180
216
|
get role() {
|
|
181
217
|
return ariaProps.role;
|
|
@@ -198,6 +234,7 @@ export function Dialog(props: DialogProps): JSX.Element {
|
|
|
198
234
|
|
|
199
235
|
// Get close function from OverlayTriggerState context or onClose prop
|
|
200
236
|
const overlayState = useOverlayTriggerState();
|
|
237
|
+
const overlayFocus = useContext(OverlayContext);
|
|
201
238
|
|
|
202
239
|
const close = () => {
|
|
203
240
|
local.onClose?.();
|
|
@@ -208,15 +245,25 @@ export function Dialog(props: DialogProps): JSX.Element {
|
|
|
208
245
|
triggerContext?.state.close();
|
|
209
246
|
};
|
|
210
247
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
const
|
|
217
|
-
if (
|
|
218
|
-
|
|
248
|
+
// Label the dialog by its trigger when no title slot resolved. Mirrors RAC
|
|
249
|
+
// `Dialog`: the trigger id arrives by context, so it is a fallback only and a
|
|
250
|
+
// rendered title still wins. `createDialog`'s slot id clears itself when no
|
|
251
|
+
// element takes it, which is what makes the fallback reachable.
|
|
252
|
+
const ariaLabelledBy = () => {
|
|
253
|
+
const p = dialogProps();
|
|
254
|
+
if (p["aria-labelledby"]) {
|
|
255
|
+
return p["aria-labelledby"] as string;
|
|
256
|
+
}
|
|
257
|
+
if (p["aria-label"]) {
|
|
258
|
+
return undefined;
|
|
219
259
|
}
|
|
260
|
+
return triggerContext?.triggerRef()?.id ?? triggerContext?.triggerId;
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
// RAC useDialog → useOverlayFocusContain: a nested Dialog still contains
|
|
264
|
+
// focus when the parent Popover is not itself the dialog.
|
|
265
|
+
createTrackedEffect(() => {
|
|
266
|
+
overlayFocus?.setContain(true);
|
|
220
267
|
});
|
|
221
268
|
|
|
222
269
|
const renderValues = createMemo<DialogRenderProps>(() => ({
|
|
@@ -240,22 +287,39 @@ export function Dialog(props: DialogProps): JSX.Element {
|
|
|
240
287
|
);
|
|
241
288
|
|
|
242
289
|
return (
|
|
243
|
-
<DialogContext
|
|
290
|
+
<DialogContext value={{ close, titleId: titleId() }}>
|
|
244
291
|
<section
|
|
292
|
+
{...triggerContext?.overlayProps}
|
|
245
293
|
{...dialogProps()}
|
|
246
294
|
{...domProps()}
|
|
247
|
-
|
|
295
|
+
aria-labelledby={ariaLabelledBy()}
|
|
296
|
+
ref={setDialogRef}
|
|
248
297
|
class={renderProps.class()}
|
|
249
298
|
style={renderProps.style()}
|
|
250
299
|
slot={local.slot}
|
|
251
300
|
>
|
|
252
|
-
<
|
|
253
|
-
|
|
301
|
+
<Provider
|
|
302
|
+
values={
|
|
303
|
+
[
|
|
304
|
+
[
|
|
305
|
+
TextContext,
|
|
306
|
+
{
|
|
307
|
+
slots: {
|
|
308
|
+
[DEFAULT_SLOT]: {},
|
|
309
|
+
get description() {
|
|
310
|
+
return contentProps();
|
|
311
|
+
},
|
|
312
|
+
},
|
|
313
|
+
},
|
|
314
|
+
],
|
|
315
|
+
[ButtonContext, { slots: { [DEFAULT_SLOT]: {}, close: { onPress: () => close() } } }],
|
|
316
|
+
] as Array<[Context<unknown>, unknown]>
|
|
317
|
+
}
|
|
254
318
|
>
|
|
255
319
|
{renderProps.renderChildren()}
|
|
256
|
-
</
|
|
320
|
+
</Provider>
|
|
257
321
|
</section>
|
|
258
|
-
</DialogContext
|
|
322
|
+
</DialogContext>
|
|
259
323
|
);
|
|
260
324
|
}
|
|
261
325
|
|
|
@@ -279,8 +343,11 @@ export function Heading(props: HeadingProps): JSX.Element {
|
|
|
279
343
|
const level = () => props.level ?? 2;
|
|
280
344
|
const id = () => dialogContext?.titleId;
|
|
281
345
|
let headingRef: HTMLHeadingElement | undefined;
|
|
346
|
+
const setHeadingRef = (element: HTMLHeadingElement) => {
|
|
347
|
+
headingRef = element;
|
|
348
|
+
};
|
|
282
349
|
|
|
283
|
-
|
|
350
|
+
createTrackedEffect(() => {
|
|
284
351
|
const el = headingRef;
|
|
285
352
|
if (!el) return;
|
|
286
353
|
|
|
@@ -302,32 +369,32 @@ export function Heading(props: HeadingProps): JSX.Element {
|
|
|
302
369
|
return (
|
|
303
370
|
<Switch>
|
|
304
371
|
<Match when={level() === 1}>
|
|
305
|
-
<h1 ref={
|
|
372
|
+
<h1 ref={setHeadingRef} id={id()} class={props.class}>
|
|
306
373
|
{props.children}
|
|
307
374
|
</h1>
|
|
308
375
|
</Match>
|
|
309
376
|
<Match when={level() === 2}>
|
|
310
|
-
<h2 ref={
|
|
377
|
+
<h2 ref={setHeadingRef} id={id()} class={props.class}>
|
|
311
378
|
{props.children}
|
|
312
379
|
</h2>
|
|
313
380
|
</Match>
|
|
314
381
|
<Match when={level() === 3}>
|
|
315
|
-
<h3 ref={
|
|
382
|
+
<h3 ref={setHeadingRef} id={id()} class={props.class}>
|
|
316
383
|
{props.children}
|
|
317
384
|
</h3>
|
|
318
385
|
</Match>
|
|
319
386
|
<Match when={level() === 4}>
|
|
320
|
-
<h4 ref={
|
|
387
|
+
<h4 ref={setHeadingRef} id={id()} class={props.class}>
|
|
321
388
|
{props.children}
|
|
322
389
|
</h4>
|
|
323
390
|
</Match>
|
|
324
391
|
<Match when={level() === 5}>
|
|
325
|
-
<h5 ref={
|
|
392
|
+
<h5 ref={setHeadingRef} id={id()} class={props.class}>
|
|
326
393
|
{props.children}
|
|
327
394
|
</h5>
|
|
328
395
|
</Match>
|
|
329
396
|
<Match when={level() === 6}>
|
|
330
|
-
<h6 ref={
|
|
397
|
+
<h6 ref={setHeadingRef} id={id()} class={props.class}>
|
|
331
398
|
{props.children}
|
|
332
399
|
</h6>
|
|
333
400
|
</Match>
|
package/src/Disclosure.tsx
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 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
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/Disclosure.tsx
|
|
14
|
+
|
|
1
15
|
/**
|
|
2
16
|
* Disclosure and Accordion components for solidaria-components
|
|
3
17
|
*
|
|
@@ -7,14 +21,8 @@
|
|
|
7
21
|
* Port of react-aria-components Disclosure.
|
|
8
22
|
*/
|
|
9
23
|
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
createContext,
|
|
13
|
-
createMemo,
|
|
14
|
-
createSignal,
|
|
15
|
-
splitProps,
|
|
16
|
-
useContext,
|
|
17
|
-
} from "solid-js";
|
|
24
|
+
import { createContext, createMemo, createSignal, useContext } from "solid-js";
|
|
25
|
+
import type { JSX } from "@solidjs/web";
|
|
18
26
|
import {
|
|
19
27
|
createDisclosureState,
|
|
20
28
|
createDisclosureGroupState,
|
|
@@ -29,6 +37,7 @@ import {
|
|
|
29
37
|
createFocusRing,
|
|
30
38
|
mergeProps,
|
|
31
39
|
} from "@proyecto-viviana/solidaria";
|
|
40
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
32
41
|
import {
|
|
33
42
|
type RenderChildren,
|
|
34
43
|
type ClassNameOrFunction,
|
|
@@ -36,6 +45,7 @@ import {
|
|
|
36
45
|
useRenderProps,
|
|
37
46
|
filterDOMProps,
|
|
38
47
|
dataAttr,
|
|
48
|
+
coerceDomRecord,
|
|
39
49
|
} from "./utils";
|
|
40
50
|
|
|
41
51
|
type RefLike<T> = T | ((el: T) => void) | { current?: T | null } | undefined;
|
|
@@ -223,8 +233,8 @@ export function DisclosureGroup(props: DisclosureGroupProps): JSX.Element {
|
|
|
223
233
|
const { ref: _ref, ...cleanGroupProps } = groupProps as Record<string, unknown>;
|
|
224
234
|
|
|
225
235
|
return (
|
|
226
|
-
<DisclosureGroupStateContext
|
|
227
|
-
<DisclosureGroupContext
|
|
236
|
+
<DisclosureGroupStateContext value={state}>
|
|
237
|
+
<DisclosureGroupContext value={contextValue}>
|
|
228
238
|
<div
|
|
229
239
|
ref={(el) => assignRef(local.ref, el)}
|
|
230
240
|
{...domProps()}
|
|
@@ -235,8 +245,8 @@ export function DisclosureGroup(props: DisclosureGroupProps): JSX.Element {
|
|
|
235
245
|
>
|
|
236
246
|
{props.children}
|
|
237
247
|
</div>
|
|
238
|
-
</DisclosureGroupContext
|
|
239
|
-
</DisclosureGroupStateContext
|
|
248
|
+
</DisclosureGroupContext>
|
|
249
|
+
</DisclosureGroupStateContext>
|
|
240
250
|
);
|
|
241
251
|
}
|
|
242
252
|
|
|
@@ -343,9 +353,9 @@ export function Disclosure(props: DisclosureProps): JSX.Element {
|
|
|
343
353
|
};
|
|
344
354
|
|
|
345
355
|
return (
|
|
346
|
-
<DisclosureStateContext
|
|
347
|
-
<DisclosureContext
|
|
348
|
-
<DisclosurePanelRefContext
|
|
356
|
+
<DisclosureStateContext value={state}>
|
|
357
|
+
<DisclosureContext value={contextValue}>
|
|
358
|
+
<DisclosurePanelRefContext value={setPanelRef}>
|
|
349
359
|
<div
|
|
350
360
|
ref={(el) => assignRef(local.ref, el)}
|
|
351
361
|
{...mergeProps(
|
|
@@ -360,9 +370,9 @@ export function Disclosure(props: DisclosureProps): JSX.Element {
|
|
|
360
370
|
>
|
|
361
371
|
{props.children}
|
|
362
372
|
</div>
|
|
363
|
-
</DisclosurePanelRefContext
|
|
364
|
-
</DisclosureContext
|
|
365
|
-
</DisclosureStateContext
|
|
373
|
+
</DisclosurePanelRefContext>
|
|
374
|
+
</DisclosureContext>
|
|
375
|
+
</DisclosureStateContext>
|
|
366
376
|
);
|
|
367
377
|
}
|
|
368
378
|
|
|
@@ -479,7 +489,7 @@ export function DisclosurePanel(props: DisclosurePanelProps): JSX.Element {
|
|
|
479
489
|
domProps() as Record<string, unknown>,
|
|
480
490
|
focusWithinProps as Record<string, unknown>,
|
|
481
491
|
)}
|
|
482
|
-
{...getPanelProps()}
|
|
492
|
+
{...coerceDomRecord(getPanelProps() as Record<string, unknown>)}
|
|
483
493
|
ref={(el) => {
|
|
484
494
|
panelRefSetter?.(el);
|
|
485
495
|
assignRef(local.ref, el);
|
package/src/DragAndDrop.tsx
CHANGED
|
@@ -1,10 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 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
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/DragAndDrop.tsx
|
|
14
|
+
|
|
1
15
|
/**
|
|
2
16
|
* Drag and drop composition helpers for solidaria-components.
|
|
3
17
|
*
|
|
4
|
-
*
|
|
18
|
+
* Based on packages/react-aria-components/src/DragAndDrop.tsx.
|
|
5
19
|
*/
|
|
6
20
|
|
|
7
|
-
import {
|
|
21
|
+
import { createContext, createMemo, useContext } from "solid-js";
|
|
22
|
+
import type { Accessor } from "solid-js";
|
|
23
|
+
import type { JSX } from "@solidjs/web";
|
|
8
24
|
import type {
|
|
9
25
|
DragTypes,
|
|
10
26
|
DropOperation,
|
|
@@ -73,7 +89,7 @@ function DefaultDropIndicator(props: DropIndicatorProps): JSX.Element {
|
|
|
73
89
|
return (
|
|
74
90
|
<div
|
|
75
91
|
role="option"
|
|
76
|
-
aria-disabled=
|
|
92
|
+
aria-disabled="true"
|
|
77
93
|
class={renderProps.class()}
|
|
78
94
|
style={renderProps.style()}
|
|
79
95
|
data-drop-target={dataAttr(isDropTarget())}
|
|
@@ -98,10 +114,12 @@ export function useRenderDropIndicator(
|
|
|
98
114
|
| {
|
|
99
115
|
target?: DropTarget | null;
|
|
100
116
|
isDropTarget?: ((target: DropTarget) => boolean) | boolean;
|
|
117
|
+
isDropTargetFor?: (target: DropTarget | null) => boolean;
|
|
101
118
|
},
|
|
102
119
|
maybeDropState?: {
|
|
103
120
|
target?: DropTarget | null;
|
|
104
121
|
isDropTarget?: ((target: DropTarget) => boolean) | boolean;
|
|
122
|
+
isDropTargetFor?: (target: DropTarget | null) => boolean;
|
|
105
123
|
},
|
|
106
124
|
): ((target: ItemDropTarget) => JSX.Element | undefined) | undefined {
|
|
107
125
|
const looksLikeDropState = (
|
|
@@ -109,6 +127,7 @@ export function useRenderDropIndicator(
|
|
|
109
127
|
): value is {
|
|
110
128
|
target?: DropTarget | null;
|
|
111
129
|
isDropTarget?: ((target: DropTarget) => boolean) | boolean;
|
|
130
|
+
isDropTargetFor?: (target: DropTarget | null) => boolean;
|
|
112
131
|
} => {
|
|
113
132
|
return Boolean(
|
|
114
133
|
value &&
|
|
@@ -135,12 +154,20 @@ export function useRenderDropIndicator(
|
|
|
135
154
|
|
|
136
155
|
return (target: ItemDropTarget) => {
|
|
137
156
|
const stateIsDropTarget = dropState?.isDropTarget;
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
157
|
+
// RAC `useDroppableCollectionState.ts:207` `isDropTarget(target)` is a
|
|
158
|
+
// per-target predicate. The port exposes `isDropTarget` as a collection-
|
|
159
|
+
// level boolean (`createDroppableCollectionState.ts:458`) that keyboard
|
|
160
|
+
// `setTarget` (`createDroppableCollection.ts` `onDropEnter`, RAC `:561`)
|
|
161
|
+
// never flips. Match `state.target` so the active indicator still mounts
|
|
162
|
+
// — otherwise Enter pickup leaves DOM focus on the collection
|
|
163
|
+
// (`listbox:Permissions`) instead of `option:Insert between Read and Write`.
|
|
164
|
+
const isTargetFromFn =
|
|
165
|
+
typeof dropState?.isDropTargetFor === "function"
|
|
166
|
+
? dropState.isDropTargetFor(target)
|
|
167
|
+
: typeof stateIsDropTarget === "function"
|
|
168
|
+
? Boolean(stateIsDropTarget(target))
|
|
143
169
|
: false;
|
|
170
|
+
const isTarget = isTargetFromFn || targetsEqual(dropState?.target, target);
|
|
144
171
|
const isVirtualDragging = dragAndDropHooks?.isVirtualDragging?.() ?? false;
|
|
145
172
|
if (!isTarget && !isVirtualDragging) return undefined;
|
|
146
173
|
return dragAndDropHooks?.renderDropIndicator ? (
|
|
@@ -328,6 +355,14 @@ export function mergePersistedKeysIntoVirtualRange(
|
|
|
328
355
|
};
|
|
329
356
|
}
|
|
330
357
|
|
|
358
|
+
/** Indexes that must stay mounted off-screen without expanding the in-flow window. */
|
|
359
|
+
export function indexesOutsideRange(
|
|
360
|
+
range: { start: number; end: number },
|
|
361
|
+
indexes: number[],
|
|
362
|
+
): number[] {
|
|
363
|
+
return indexes.filter((index) => index < range.start || index >= range.end);
|
|
364
|
+
}
|
|
365
|
+
|
|
331
366
|
export type DropTargetDelegate = {
|
|
332
367
|
getDropTargetFromPoint: (
|
|
333
368
|
x: number,
|
package/src/DragPreview.tsx
CHANGED
|
@@ -1,4 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2020 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
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/dnd/DragPreview.tsx
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Based on packages/react-aria/src/dnd/DragPreview.tsx.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
import { onCleanup } from "solid-js";
|
|
20
|
+
import type { JSX } from "@solidjs/web";
|
|
2
21
|
import type { DragItem, DragPreviewRenderer } from "@proyecto-viviana/solid-stately";
|
|
3
22
|
|
|
4
23
|
export interface DragPreviewProps {
|
package/src/DropZone.tsx
CHANGED
|
@@ -1,19 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 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
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/DropZone.tsx
|
|
14
|
+
|
|
1
15
|
/**
|
|
2
16
|
* DropZone primitive for solidaria-components.
|
|
3
17
|
*
|
|
4
18
|
* A drop target area for drag and drop operations.
|
|
5
|
-
*
|
|
19
|
+
* Based on packages/react-aria-components/src/DropZone.tsx.
|
|
6
20
|
*/
|
|
7
21
|
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
createContext,
|
|
11
|
-
createMemo,
|
|
12
|
-
createSignal,
|
|
13
|
-
mergeProps,
|
|
14
|
-
splitProps,
|
|
15
|
-
useContext,
|
|
16
|
-
} from "solid-js";
|
|
22
|
+
import { createContext, createMemo, createSignal, useContext } from "solid-js";
|
|
23
|
+
import type { JSX } from "@solidjs/web";
|
|
17
24
|
import {
|
|
18
25
|
createDrop,
|
|
19
26
|
createFocusRing,
|
|
@@ -21,6 +28,8 @@ import {
|
|
|
21
28
|
readFromDataTransfer,
|
|
22
29
|
type HoverEvents,
|
|
23
30
|
type AriaDropOptions,
|
|
31
|
+
createStringFormatter,
|
|
32
|
+
mergeProps,
|
|
24
33
|
} from "@proyecto-viviana/solidaria";
|
|
25
34
|
import {
|
|
26
35
|
type ClassNameOrFunction,
|
|
@@ -29,8 +38,11 @@ import {
|
|
|
29
38
|
type SlotProps,
|
|
30
39
|
useRenderProps,
|
|
31
40
|
filterDOMProps,
|
|
41
|
+
dataAttr,
|
|
32
42
|
} from "./utils";
|
|
33
43
|
import { VisuallyHidden } from "./VisuallyHidden";
|
|
44
|
+
import { racIntlStrings } from "./intl";
|
|
45
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
34
46
|
|
|
35
47
|
export interface DropZoneRenderProps {
|
|
36
48
|
isHovered: boolean;
|
|
@@ -52,7 +64,6 @@ export interface DropZoneProps
|
|
|
52
64
|
}
|
|
53
65
|
|
|
54
66
|
export const DropZoneContext = createContext<DropZoneProps | null>(null);
|
|
55
|
-
const DEFAULT_DROPZONE_LABEL = "Drop files";
|
|
56
67
|
const FOCUSABLE_SELECTOR = [
|
|
57
68
|
"a[href]",
|
|
58
69
|
"button:not([disabled])",
|
|
@@ -72,7 +83,7 @@ function isFocusableElement(target: Element): boolean {
|
|
|
72
83
|
*/
|
|
73
84
|
export function DropZone(props: DropZoneProps): JSX.Element {
|
|
74
85
|
const contextProps = useContext(DropZoneContext);
|
|
75
|
-
const mergedProps = mergeProps(contextProps ?? {}, props);
|
|
86
|
+
const mergedProps = mergeProps<DropZoneProps>(contextProps ?? {}, props);
|
|
76
87
|
const [local, dropProps, hoverEventProps, domProps] = splitProps(
|
|
77
88
|
mergedProps,
|
|
78
89
|
["children", "class", "style", "slot", "aria-label", "aria-labelledby"],
|
|
@@ -89,6 +100,7 @@ export function DropZone(props: DropZoneProps): JSX.Element {
|
|
|
89
100
|
["onHoverStart", "onHoverEnd", "onHoverChange"],
|
|
90
101
|
);
|
|
91
102
|
|
|
103
|
+
const stringFormatter = createStringFormatter(racIntlStrings, "react-aria-components");
|
|
92
104
|
const [dropZoneRef, setDropZoneRef] = createSignal<HTMLDivElement | null>(null);
|
|
93
105
|
const [dropButtonRef, setDropButtonRef] = createSignal<HTMLButtonElement | null>(null);
|
|
94
106
|
|
|
@@ -200,7 +212,9 @@ export function DropZone(props: DropZoneProps): JSX.Element {
|
|
|
200
212
|
};
|
|
201
213
|
|
|
202
214
|
const dropButtonAriaLabel = createMemo(
|
|
203
|
-
() =>
|
|
215
|
+
() =>
|
|
216
|
+
local["aria-label"] ??
|
|
217
|
+
(!local["aria-labelledby"] ? stringFormatter().format("dropzoneLabel") : undefined),
|
|
204
218
|
);
|
|
205
219
|
|
|
206
220
|
return (
|
|
@@ -213,11 +227,11 @@ export function DropZone(props: DropZoneProps): JSX.Element {
|
|
|
213
227
|
class={renderProps.class()}
|
|
214
228
|
style={renderProps.style()}
|
|
215
229
|
slot={local.slot}
|
|
216
|
-
data-hovered={isHovered()
|
|
217
|
-
data-focused={isFocused()
|
|
218
|
-
data-focus-visible={isFocusVisible()
|
|
219
|
-
data-drop-target={dropAria.isDropTarget
|
|
220
|
-
data-disabled={dropProps.isDisabled
|
|
230
|
+
data-hovered={dataAttr(isHovered())}
|
|
231
|
+
data-focused={dataAttr(isFocused())}
|
|
232
|
+
data-focus-visible={dataAttr(isFocusVisible())}
|
|
233
|
+
data-drop-target={dataAttr(dropAria.isDropTarget)}
|
|
234
|
+
data-disabled={dataAttr(dropProps.isDisabled)}
|
|
221
235
|
>
|
|
222
236
|
<VisuallyHidden>
|
|
223
237
|
<button
|