@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
package/src/Tabs.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/Tabs.tsx
|
|
14
|
+
|
|
1
15
|
/**
|
|
2
16
|
* Tabs component for solidaria-components
|
|
3
17
|
*
|
|
@@ -6,18 +20,19 @@
|
|
|
6
20
|
*/
|
|
7
21
|
|
|
8
22
|
import {
|
|
9
|
-
type Accessor,
|
|
10
|
-
type JSX,
|
|
11
23
|
createContext,
|
|
12
24
|
createEffect,
|
|
13
25
|
createMemo,
|
|
14
26
|
createSignal,
|
|
15
|
-
splitProps,
|
|
16
27
|
useContext,
|
|
17
28
|
For,
|
|
18
29
|
Show,
|
|
19
30
|
onCleanup,
|
|
31
|
+
sharedConfig,
|
|
32
|
+
createTrackedEffect,
|
|
20
33
|
} from "solid-js";
|
|
34
|
+
import type { Accessor } from "solid-js";
|
|
35
|
+
import type { JSX } from "@solidjs/web";
|
|
21
36
|
import {
|
|
22
37
|
createTabList,
|
|
23
38
|
createTab,
|
|
@@ -42,6 +57,9 @@ import {
|
|
|
42
57
|
type SlotProps,
|
|
43
58
|
useRenderProps,
|
|
44
59
|
filterDOMProps,
|
|
60
|
+
dataAttr,
|
|
61
|
+
ariaTrueFalse,
|
|
62
|
+
attrTrue,
|
|
45
63
|
} from "./utils";
|
|
46
64
|
import {
|
|
47
65
|
SelectionIndicator,
|
|
@@ -49,6 +67,7 @@ import {
|
|
|
49
67
|
type SelectionIndicatorContextValue,
|
|
50
68
|
} from "./SelectionIndicator";
|
|
51
69
|
import { SharedElementTransition } from "./SharedElementTransition";
|
|
70
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
52
71
|
|
|
53
72
|
export {
|
|
54
73
|
SelectionIndicator,
|
|
@@ -249,8 +268,12 @@ export function Tabs<T>(props: TabsProps<T>): JSX.Element {
|
|
|
249
268
|
],
|
|
250
269
|
);
|
|
251
270
|
|
|
252
|
-
const [tabListItems, setTabListItems] = createSignal<T[] | undefined>(undefined
|
|
253
|
-
|
|
271
|
+
const [tabListItems, setTabListItems] = createSignal<T[] | undefined>(undefined, {
|
|
272
|
+
ownedWrite: true,
|
|
273
|
+
});
|
|
274
|
+
const [registeredTabs, setRegisteredTabs] = createSignal<RegisteredTab[]>([], {
|
|
275
|
+
ownedWrite: true,
|
|
276
|
+
});
|
|
254
277
|
const effectiveItems = createMemo<T[]>(() => {
|
|
255
278
|
if (stateProps.items) return stateProps.items;
|
|
256
279
|
if (tabListItems()) return tabListItems() ?? [];
|
|
@@ -346,20 +369,20 @@ export function Tabs<T>(props: TabsProps<T>): JSX.Element {
|
|
|
346
369
|
};
|
|
347
370
|
|
|
348
371
|
return (
|
|
349
|
-
<TabsContext
|
|
350
|
-
<TabsStateContext
|
|
372
|
+
<TabsContext value={contextValue as TabsContextValue<unknown>}>
|
|
373
|
+
<TabsStateContext value={state}>
|
|
351
374
|
<div
|
|
352
375
|
{...domProps()}
|
|
353
376
|
ref={(element) => assignRef(local.ref, element)}
|
|
354
377
|
class={renderProps.class()}
|
|
355
378
|
style={renderProps.style()}
|
|
356
379
|
data-orientation={state.orientation()}
|
|
357
|
-
data-disabled={state.isDisabled()
|
|
380
|
+
data-disabled={dataAttr(state.isDisabled())}
|
|
358
381
|
>
|
|
359
382
|
{props.children as JSX.Element}
|
|
360
383
|
</div>
|
|
361
|
-
</TabsStateContext
|
|
362
|
-
</TabsContext
|
|
384
|
+
</TabsStateContext>
|
|
385
|
+
</TabsContext>
|
|
363
386
|
);
|
|
364
387
|
}
|
|
365
388
|
|
|
@@ -375,65 +398,26 @@ export function TabList<T>(props: TabListProps<T>): JSX.Element {
|
|
|
375
398
|
|
|
376
399
|
const context = useContext(TabsContext);
|
|
377
400
|
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
<TabListInner
|
|
382
|
-
context={ctx()}
|
|
383
|
-
local={local}
|
|
384
|
-
items={collectionProps.items}
|
|
385
|
-
ariaProps={ariaProps}
|
|
386
|
-
children={props.children}
|
|
387
|
-
/>
|
|
388
|
-
)}
|
|
389
|
-
</Show>
|
|
390
|
-
);
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
/** Inner TabList component that has access to context */
|
|
394
|
-
function TabListInner<T>(props: {
|
|
395
|
-
context: TabsContextValue<unknown>;
|
|
396
|
-
local: {
|
|
397
|
-
class?: ClassNameOrFunction<TabListRenderProps>;
|
|
398
|
-
style?: StyleOrFunction<TabListRenderProps>;
|
|
399
|
-
slot?: string;
|
|
400
|
-
};
|
|
401
|
-
ariaProps: Omit<TabListProps<T>, "children" | "class" | "style" | "slot" | "items">;
|
|
402
|
-
items?: T[];
|
|
403
|
-
children?: JSX.Element | ((item: T) => JSX.Element);
|
|
404
|
-
}): JSX.Element {
|
|
405
|
-
const state = props.context.state as TabListState<T>;
|
|
406
|
-
const items = props.context.items as Accessor<T[]>;
|
|
407
|
-
const renderItem = createMemo(() => {
|
|
408
|
-
if (typeof props.children !== "function") {
|
|
409
|
-
return undefined;
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
const child = props.children as (...args: unknown[]) => JSX.Element;
|
|
413
|
-
if (child.length === 0 && props.items === undefined) {
|
|
414
|
-
return undefined;
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
return props.children as (item: T) => JSX.Element;
|
|
418
|
-
});
|
|
419
|
-
const renderedChildren = createMemo(() => {
|
|
420
|
-
if (renderItem() || typeof props.children !== "function") {
|
|
421
|
-
return props.children as JSX.Element;
|
|
422
|
-
}
|
|
401
|
+
if (!context) {
|
|
402
|
+
return <div class="solidaria-TabList" role="tablist" />;
|
|
403
|
+
}
|
|
423
404
|
|
|
424
|
-
|
|
425
|
-
|
|
405
|
+
const state = context.state as TabListState<T>;
|
|
406
|
+
const items = context.items as Accessor<T[]>;
|
|
426
407
|
|
|
427
|
-
createEffect(
|
|
428
|
-
|
|
429
|
-
|
|
408
|
+
createEffect(
|
|
409
|
+
() => collectionProps.items as unknown[] | undefined,
|
|
410
|
+
(items) => {
|
|
411
|
+
context.setTabListItems(items);
|
|
412
|
+
},
|
|
413
|
+
);
|
|
430
414
|
|
|
431
415
|
onCleanup(() => {
|
|
432
|
-
|
|
416
|
+
context.setTabListItems(undefined);
|
|
433
417
|
});
|
|
434
418
|
|
|
435
419
|
// Create tab list aria props
|
|
436
|
-
const { tabListProps } = createTabList<T>(
|
|
420
|
+
const { tabListProps } = createTabList<T>(ariaProps as AriaTabListProps, state);
|
|
437
421
|
|
|
438
422
|
const renderValues = createMemo<TabListRenderProps>(() => ({
|
|
439
423
|
orientation: state.orientation(),
|
|
@@ -442,8 +426,8 @@ function TabListInner<T>(props: {
|
|
|
442
426
|
|
|
443
427
|
const renderProps = useRenderProps(
|
|
444
428
|
{
|
|
445
|
-
class:
|
|
446
|
-
style:
|
|
429
|
+
class: local.class,
|
|
430
|
+
style: local.style,
|
|
447
431
|
defaultClassName: "solidaria-TabList",
|
|
448
432
|
},
|
|
449
433
|
renderValues,
|
|
@@ -461,6 +445,24 @@ function TabListInner<T>(props: {
|
|
|
461
445
|
tabListProps.onFocusOut(e);
|
|
462
446
|
};
|
|
463
447
|
|
|
448
|
+
const renderChildren = () => {
|
|
449
|
+
const children = props.children;
|
|
450
|
+
const isItemRenderer =
|
|
451
|
+
typeof children === "function" && (children as (...args: unknown[]) => unknown).length > 0;
|
|
452
|
+
|
|
453
|
+
if (isItemRenderer) {
|
|
454
|
+
return (
|
|
455
|
+
<SharedElementTransition>
|
|
456
|
+
<For each={(collectionProps.items ?? items()) as T[]}>
|
|
457
|
+
{(item) => (children as (item: T) => JSX.Element)(item)}
|
|
458
|
+
</For>
|
|
459
|
+
</SharedElementTransition>
|
|
460
|
+
);
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
return children as JSX.Element;
|
|
464
|
+
};
|
|
465
|
+
|
|
464
466
|
return (
|
|
465
467
|
<div
|
|
466
468
|
role={tabListProps.role}
|
|
@@ -474,15 +476,9 @@ function TabListInner<T>(props: {
|
|
|
474
476
|
onFocusIn={handleFocus}
|
|
475
477
|
onFocusOut={handleBlur}
|
|
476
478
|
data-orientation={state.orientation()}
|
|
477
|
-
data-disabled={state.isDisabled()
|
|
479
|
+
data-disabled={dataAttr(state.isDisabled())}
|
|
478
480
|
>
|
|
479
|
-
{
|
|
480
|
-
<SharedElementTransition>
|
|
481
|
-
<For each={(props.items ?? items()) as T[]}>{(item) => renderItem()?.(item)}</For>
|
|
482
|
-
</SharedElementTransition>
|
|
483
|
-
) : (
|
|
484
|
-
renderedChildren()
|
|
485
|
-
)}
|
|
481
|
+
{renderChildren()}
|
|
486
482
|
</div>
|
|
487
483
|
);
|
|
488
484
|
}
|
|
@@ -496,68 +492,47 @@ export function Tab(props: TabProps): JSX.Element {
|
|
|
496
492
|
const context = useContext(TabsStateContext);
|
|
497
493
|
const tabsContext = useContext(TabsContext);
|
|
498
494
|
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
<TabInner
|
|
503
|
-
state={state()}
|
|
504
|
-
tabsContext={tabsContext}
|
|
505
|
-
local={local}
|
|
506
|
-
ariaProps={ariaProps}
|
|
507
|
-
children={props.children}
|
|
508
|
-
/>
|
|
509
|
-
)}
|
|
510
|
-
</Show>
|
|
511
|
-
);
|
|
512
|
-
}
|
|
495
|
+
if (!context) {
|
|
496
|
+
return <div class="solidaria-Tab" role="tab" />;
|
|
497
|
+
}
|
|
513
498
|
|
|
514
|
-
|
|
515
|
-
function TabInner(props: {
|
|
516
|
-
state: TabListState<unknown>;
|
|
517
|
-
tabsContext: TabsContextValue<unknown> | null;
|
|
518
|
-
local: {
|
|
519
|
-
class?: ClassNameOrFunction<TabRenderProps>;
|
|
520
|
-
style?: StyleOrFunction<TabRenderProps>;
|
|
521
|
-
slot?: string;
|
|
522
|
-
id: Key;
|
|
523
|
-
};
|
|
524
|
-
ariaProps: Omit<TabProps, "children" | "class" | "style" | "slot" | "id">;
|
|
525
|
-
children?: RenderChildren<TabRenderProps>;
|
|
526
|
-
}): JSX.Element {
|
|
527
|
-
let tabRef: HTMLDivElement | undefined;
|
|
499
|
+
const [tabRef, setTabRef] = createSignal<HTMLDivElement | null>(null);
|
|
528
500
|
const textValue = () => {
|
|
529
|
-
if (
|
|
501
|
+
if (ariaProps["aria-label"]) return ariaProps["aria-label"];
|
|
530
502
|
return typeof props.children === "string" ? props.children : undefined;
|
|
531
503
|
};
|
|
532
504
|
|
|
533
|
-
createEffect(
|
|
534
|
-
|
|
535
|
-
id:
|
|
505
|
+
createEffect(
|
|
506
|
+
() => ({
|
|
507
|
+
id: local.id,
|
|
536
508
|
textValue: textValue(),
|
|
537
|
-
isDisabled:
|
|
538
|
-
})
|
|
539
|
-
|
|
509
|
+
isDisabled: ariaProps.isDisabled,
|
|
510
|
+
}),
|
|
511
|
+
(tab) => {
|
|
512
|
+
tabsContext?.registerTab(tab);
|
|
513
|
+
},
|
|
514
|
+
);
|
|
540
515
|
|
|
541
516
|
onCleanup(() => {
|
|
542
|
-
|
|
517
|
+
tabsContext?.unregisterTab(local.id);
|
|
543
518
|
});
|
|
544
519
|
|
|
545
520
|
// Create tab aria props
|
|
546
521
|
const tabAria = createTab<unknown>(
|
|
547
522
|
{
|
|
548
|
-
key:
|
|
523
|
+
key: local.id,
|
|
549
524
|
get isDisabled() {
|
|
550
|
-
return
|
|
525
|
+
return ariaProps.isDisabled;
|
|
551
526
|
},
|
|
552
527
|
get "aria-label"() {
|
|
553
|
-
return
|
|
528
|
+
return ariaProps["aria-label"];
|
|
554
529
|
},
|
|
555
530
|
get "aria-labelledby"() {
|
|
556
|
-
return
|
|
531
|
+
return ariaProps["aria-labelledby"];
|
|
557
532
|
},
|
|
558
533
|
},
|
|
559
|
-
|
|
560
|
-
|
|
534
|
+
context,
|
|
535
|
+
tabRef,
|
|
561
536
|
);
|
|
562
537
|
|
|
563
538
|
const { isHovered, hoverProps } = createHover({
|
|
@@ -580,8 +555,8 @@ function TabInner(props: {
|
|
|
580
555
|
get children() {
|
|
581
556
|
return props.children;
|
|
582
557
|
},
|
|
583
|
-
class:
|
|
584
|
-
style:
|
|
558
|
+
class: local.class,
|
|
559
|
+
style: local.style,
|
|
585
560
|
defaultClassName: "solidaria-Tab",
|
|
586
561
|
},
|
|
587
562
|
renderValues,
|
|
@@ -592,37 +567,37 @@ function TabInner(props: {
|
|
|
592
567
|
}));
|
|
593
568
|
|
|
594
569
|
return (
|
|
595
|
-
<
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
>
|
|
570
|
+
<div
|
|
571
|
+
ref={setTabRef}
|
|
572
|
+
id={tabAria.tabProps.id}
|
|
573
|
+
role={tabAria.tabProps.role}
|
|
574
|
+
aria-selected={ariaTrueFalse(tabAria.isSelected())}
|
|
575
|
+
aria-disabled={attrTrue(tabAria.isDisabled())}
|
|
576
|
+
aria-controls={tabAria.isSelected() ? tabAria.tabProps["aria-controls"] : undefined}
|
|
577
|
+
aria-label={tabAria.tabProps["aria-label"]}
|
|
578
|
+
aria-labelledby={tabAria.tabProps["aria-labelledby"]}
|
|
579
|
+
tabindex={tabAria.tabProps.tabIndex}
|
|
580
|
+
class={renderProps.class()}
|
|
581
|
+
style={renderProps.style()}
|
|
582
|
+
onKeyDown={tabAria.tabProps.onKeyDown}
|
|
583
|
+
onMouseDown={tabAria.tabProps.onMouseDown}
|
|
584
|
+
onPointerDown={tabAria.tabProps.onPointerDown}
|
|
585
|
+
onClick={tabAria.tabProps.onClick}
|
|
586
|
+
onFocus={tabAria.tabProps.onFocus}
|
|
587
|
+
onFocusIn={tabAria.tabProps.onFocusIn}
|
|
588
|
+
onBlur={tabAria.tabProps.onBlur}
|
|
589
|
+
{...hoverProps}
|
|
590
|
+
data-selected={dataAttr(tabAria.isSelected())}
|
|
591
|
+
data-focused={dataAttr(tabAria.isFocused())}
|
|
592
|
+
data-focus-visible={dataAttr(tabAria.isFocusVisible())}
|
|
593
|
+
data-pressed={dataAttr(tabAria.isPressed())}
|
|
594
|
+
data-hovered={dataAttr(isHovered())}
|
|
595
|
+
data-disabled={dataAttr(tabAria.isDisabled())}
|
|
596
|
+
>
|
|
597
|
+
<SelectionIndicatorContext value={selectionIndicatorContext()}>
|
|
623
598
|
{renderProps.renderChildrenStable()}
|
|
624
|
-
</
|
|
625
|
-
</
|
|
599
|
+
</SelectionIndicatorContext>
|
|
600
|
+
</div>
|
|
626
601
|
);
|
|
627
602
|
}
|
|
628
603
|
|
|
@@ -639,7 +614,7 @@ export function TabPanels(props: TabPanelsProps): JSX.Element {
|
|
|
639
614
|
let previousSelectedKey: Key | null | undefined = undefined;
|
|
640
615
|
const [panelSize, setPanelSize] = createSignal<{ width?: string; height?: string }>({});
|
|
641
616
|
|
|
642
|
-
|
|
617
|
+
createTrackedEffect(() => {
|
|
643
618
|
const selectedKey = state?.selectedKey() ?? null;
|
|
644
619
|
if (!ref) {
|
|
645
620
|
previousSelectedKey = selectedKey;
|
|
@@ -694,12 +669,13 @@ export function TabPanels(props: TabPanelsProps): JSX.Element {
|
|
|
694
669
|
*/
|
|
695
670
|
export function TabPanel(props: TabPanelProps): JSX.Element {
|
|
696
671
|
const [local, ariaProps] = splitProps(props, ["class", "style", "slot", "shouldForceMount"]);
|
|
672
|
+
const [panelRef, setPanelRef] = createSignal<HTMLDivElement>();
|
|
697
673
|
|
|
698
674
|
// Get state from context (may be null for SSR scenarios)
|
|
699
675
|
const state = useContext(TabsStateContext);
|
|
700
676
|
|
|
701
677
|
// Create tab panel aria props
|
|
702
|
-
const { tabPanelProps, isSelected } = createTabPanel<unknown>(ariaProps, state);
|
|
678
|
+
const { tabPanelProps, isSelected } = createTabPanel<unknown>(ariaProps, state, panelRef);
|
|
703
679
|
|
|
704
680
|
// Create focus ring for the panel
|
|
705
681
|
const { isFocused, isFocusVisible, focusProps } = createFocusRing();
|
|
@@ -744,23 +720,24 @@ export function TabPanel(props: TabPanelProps): JSX.Element {
|
|
|
744
720
|
return (
|
|
745
721
|
<Show when={shouldRender()}>
|
|
746
722
|
<div
|
|
723
|
+
ref={setPanelRef}
|
|
747
724
|
id={tabPanelProps.id}
|
|
748
725
|
role={tabPanelProps.role}
|
|
749
726
|
aria-labelledby={tabPanelProps["aria-labelledby"]}
|
|
750
727
|
aria-label={tabPanelProps["aria-label"]}
|
|
751
728
|
aria-describedby={tabPanelProps["aria-describedby"]}
|
|
752
|
-
|
|
729
|
+
tabindex={tabPanelProps.tabIndex}
|
|
753
730
|
class={renderProps.class()}
|
|
754
731
|
style={renderProps.style()}
|
|
755
732
|
onFocus={focusProps.onFocus}
|
|
756
733
|
onBlur={focusProps.onBlur}
|
|
757
|
-
data-selected={isSelected()
|
|
758
|
-
data-focused={isFocused()
|
|
759
|
-
data-focus-visible={isFocusVisible()
|
|
734
|
+
data-selected={dataAttr(isSelected())}
|
|
735
|
+
data-focused={dataAttr(isFocused())}
|
|
736
|
+
data-focus-visible={dataAttr(isFocusVisible())}
|
|
760
737
|
inert={isInert() ? true : undefined}
|
|
761
|
-
data-inert={isInert()
|
|
762
|
-
data-entering={isEntering()
|
|
763
|
-
data-exiting={isExiting()
|
|
738
|
+
data-inert={dataAttr(isInert())}
|
|
739
|
+
data-entering={dataAttr(isEntering())}
|
|
740
|
+
data-exiting={dataAttr(isExiting())}
|
|
764
741
|
hidden={
|
|
765
742
|
ariaProps.id !== undefined && !isSelected() && !local.shouldForceMount ? true : undefined
|
|
766
743
|
}
|
package/src/TagGroup.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/TagGroup.tsx
|
|
14
|
+
|
|
1
15
|
/**
|
|
2
16
|
* TagGroup component for solidaria-components
|
|
3
17
|
*
|
|
@@ -8,16 +22,8 @@
|
|
|
8
22
|
* with support for keyboard navigation, selection, and removal.
|
|
9
23
|
*/
|
|
10
24
|
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
createContext,
|
|
14
|
-
createMemo,
|
|
15
|
-
createSignal,
|
|
16
|
-
splitProps,
|
|
17
|
-
useContext,
|
|
18
|
-
For,
|
|
19
|
-
Show,
|
|
20
|
-
} from "solid-js";
|
|
25
|
+
import { createContext, createMemo, createSignal, useContext, For, Show } from "solid-js";
|
|
26
|
+
import type { JSX } from "@solidjs/web";
|
|
21
27
|
import {
|
|
22
28
|
createTagGroup,
|
|
23
29
|
createTag,
|
|
@@ -43,6 +49,7 @@ import {
|
|
|
43
49
|
mergeRefs,
|
|
44
50
|
} from "./utils";
|
|
45
51
|
import { SharedElementTransition } from "./SharedElementTransition";
|
|
52
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
46
53
|
import {
|
|
47
54
|
SelectionIndicatorContext,
|
|
48
55
|
type SelectionIndicatorContextValue,
|
|
@@ -59,7 +66,10 @@ export interface TagGroupProps
|
|
|
59
66
|
extends
|
|
60
67
|
Omit<AriaTagGroupProps, "id">,
|
|
61
68
|
SlotProps,
|
|
62
|
-
Omit<
|
|
69
|
+
Omit<
|
|
70
|
+
JSX.HTMLAttributes<HTMLDivElement>,
|
|
71
|
+
"class" | "style" | "children" | "aria-label" | "aria-labelledby" | "aria-describedby"
|
|
72
|
+
> {
|
|
63
73
|
/** The children of the component. */
|
|
64
74
|
children?: JSX.Element;
|
|
65
75
|
/** The CSS className for the element. */
|
|
@@ -124,6 +134,8 @@ export interface TagRenderProps {
|
|
|
124
134
|
isDisabled: boolean;
|
|
125
135
|
/** Whether the tag is focused. */
|
|
126
136
|
isFocused: boolean;
|
|
137
|
+
/** Whether the tag is keyboard focused. */
|
|
138
|
+
isFocusVisible: boolean;
|
|
127
139
|
/** Whether the tag is pressed. */
|
|
128
140
|
isPressed: boolean;
|
|
129
141
|
/** Whether the tag allows removal. */
|
|
@@ -268,7 +280,11 @@ export function TagList<T extends { id?: Key; key?: Key }>(props: TagListProps<T
|
|
|
268
280
|
// ListBox, and useTagGroup passing `direction` to the ListKeyboardDelegate).
|
|
269
281
|
const locale = useLocale();
|
|
270
282
|
|
|
271
|
-
//
|
|
283
|
+
// Callback-valued props must not go through createMemo — a memo that
|
|
284
|
+
// stores a function is easy to unwrap/call, and the live getter
|
|
285
|
+
// `onRemove={handler()}` must re-read on each access.
|
|
286
|
+
const onRemove = () => local.onRemove;
|
|
287
|
+
|
|
272
288
|
const tagGroupAria = createTagGroup(
|
|
273
289
|
{
|
|
274
290
|
get "aria-label"() {
|
|
@@ -284,7 +300,7 @@ export function TagList<T extends { id?: Key; key?: Key }>(props: TagListProps<T
|
|
|
284
300
|
return local.isDisabled;
|
|
285
301
|
},
|
|
286
302
|
get onRemove() {
|
|
287
|
-
return
|
|
303
|
+
return onRemove();
|
|
288
304
|
},
|
|
289
305
|
get direction() {
|
|
290
306
|
return locale().direction;
|
|
@@ -313,7 +329,7 @@ export function TagList<T extends { id?: Key; key?: Key }>(props: TagListProps<T
|
|
|
313
329
|
const contextValue: TagGroupContextValue = {
|
|
314
330
|
state,
|
|
315
331
|
get onRemove() {
|
|
316
|
-
return
|
|
332
|
+
return onRemove();
|
|
317
333
|
},
|
|
318
334
|
get isDisabled() {
|
|
319
335
|
return local.isDisabled;
|
|
@@ -321,8 +337,8 @@ export function TagList<T extends { id?: Key; key?: Key }>(props: TagListProps<T
|
|
|
321
337
|
};
|
|
322
338
|
|
|
323
339
|
return (
|
|
324
|
-
<TagGroupContext
|
|
325
|
-
<TagListStateContext
|
|
340
|
+
<TagGroupContext value={contextValue}>
|
|
341
|
+
<TagListStateContext value={state}>
|
|
326
342
|
<div
|
|
327
343
|
ref={setGridRef}
|
|
328
344
|
{...domProps}
|
|
@@ -353,8 +369,8 @@ export function TagList<T extends { id?: Key; key?: Key }>(props: TagListProps<T
|
|
|
353
369
|
</Show>
|
|
354
370
|
</SharedElementTransition>
|
|
355
371
|
</div>
|
|
356
|
-
</TagListStateContext
|
|
357
|
-
</TagGroupContext
|
|
372
|
+
</TagListStateContext>
|
|
373
|
+
</TagGroupContext>
|
|
358
374
|
);
|
|
359
375
|
}
|
|
360
376
|
|
|
@@ -392,6 +408,9 @@ export function Tag(props: TagProps): JSX.Element {
|
|
|
392
408
|
get textValue() {
|
|
393
409
|
return local.textValue;
|
|
394
410
|
},
|
|
411
|
+
get onAction() {
|
|
412
|
+
return local.onAction ? () => local.onAction?.(local.id) : undefined;
|
|
413
|
+
},
|
|
395
414
|
},
|
|
396
415
|
state!,
|
|
397
416
|
tagRef,
|
|
@@ -403,21 +422,21 @@ export function Tag(props: TagProps): JSX.Element {
|
|
|
403
422
|
return {
|
|
404
423
|
...raw,
|
|
405
424
|
onPress: () => {
|
|
406
|
-
if (!tagAria.isDisabled && groupContext?.onRemove) {
|
|
407
|
-
groupContext.onRemove(new Set([local.id]));
|
|
408
|
-
return;
|
|
409
|
-
}
|
|
410
425
|
rawHandler?.();
|
|
411
426
|
},
|
|
412
427
|
};
|
|
413
428
|
});
|
|
414
429
|
|
|
430
|
+
const allowsRemoving = createMemo(
|
|
431
|
+
() => Boolean(tagAria.allowsRemoving) || Boolean(groupContext?.onRemove),
|
|
432
|
+
);
|
|
415
433
|
const renderValues = createMemo<TagRenderProps>(() => ({
|
|
416
434
|
isSelected: tagAria.isSelected,
|
|
417
435
|
isDisabled: tagAria.isDisabled,
|
|
418
436
|
isFocused: tagAria.isFocused,
|
|
437
|
+
isFocusVisible: tagAria.isFocusVisible,
|
|
419
438
|
isPressed: tagAria.isPressed,
|
|
420
|
-
allowsRemoving:
|
|
439
|
+
allowsRemoving: allowsRemoving(),
|
|
421
440
|
selectionMode: state?.selectionMode() ?? "none",
|
|
422
441
|
removeButtonProps: normalizedRemoveButtonProps(),
|
|
423
442
|
}));
|
|
@@ -441,14 +460,14 @@ export function Tag(props: TagProps): JSX.Element {
|
|
|
441
460
|
const domProps = createMemo(() => filterDOMProps(rest, { global: true }));
|
|
442
461
|
|
|
443
462
|
return (
|
|
444
|
-
<SelectionIndicatorContext
|
|
445
|
-
<TagContext
|
|
463
|
+
<SelectionIndicatorContext value={selectionIndicatorContext()}>
|
|
464
|
+
<TagContext
|
|
446
465
|
value={{
|
|
447
466
|
get removeButtonProps() {
|
|
448
467
|
return normalizedRemoveButtonProps();
|
|
449
468
|
},
|
|
450
469
|
get allowsRemoving() {
|
|
451
|
-
return
|
|
470
|
+
return allowsRemoving();
|
|
452
471
|
},
|
|
453
472
|
}}
|
|
454
473
|
>
|
|
@@ -458,28 +477,19 @@ export function Tag(props: TagProps): JSX.Element {
|
|
|
458
477
|
{...tagAria.rowProps}
|
|
459
478
|
class={renderProps.class()}
|
|
460
479
|
style={renderProps.style()}
|
|
461
|
-
onClick={(event) => {
|
|
462
|
-
const rowClick = tagAria.rowProps.onClick;
|
|
463
|
-
if (typeof rowClick === "function") {
|
|
464
|
-
(rowClick as JSX.EventHandler<HTMLDivElement, MouseEvent>)(event);
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
if (!tagAria.isDisabled && !(event.target as Element | null)?.closest("button")) {
|
|
468
|
-
local.onAction?.(local.id);
|
|
469
|
-
}
|
|
470
|
-
}}
|
|
471
480
|
data-selected={dataAttr(tagAria.isSelected)}
|
|
472
481
|
data-disabled={dataAttr(tagAria.isDisabled)}
|
|
473
482
|
data-focused={dataAttr(tagAria.isFocused)}
|
|
483
|
+
data-focus-visible={dataAttr(tagAria.isFocusVisible)}
|
|
474
484
|
data-pressed={dataAttr(tagAria.isPressed)}
|
|
475
|
-
data-allows-removing={dataAttr(
|
|
485
|
+
data-allows-removing={dataAttr(allowsRemoving())}
|
|
476
486
|
>
|
|
477
487
|
<div {...tagAria.gridCellProps} style={{ display: "contents" }}>
|
|
478
|
-
{renderProps.
|
|
488
|
+
{renderProps.renderChildrenStable()}
|
|
479
489
|
</div>
|
|
480
490
|
</div>
|
|
481
|
-
</TagContext
|
|
482
|
-
</SelectionIndicatorContext
|
|
491
|
+
</TagContext>
|
|
492
|
+
</SelectionIndicatorContext>
|
|
483
493
|
);
|
|
484
494
|
}
|
|
485
495
|
|
|
@@ -505,10 +515,12 @@ export function TagRemoveButton(props: TagRemoveButtonProps): JSX.Element {
|
|
|
505
515
|
const rawId = getRemoveButtonProps().id;
|
|
506
516
|
const rawAriaLabel = getRemoveButtonProps()["aria-label"];
|
|
507
517
|
const rawAriaLabelledBy = getRemoveButtonProps()["aria-labelledby"];
|
|
518
|
+
const rawTabIndex = getRemoveButtonProps().tabIndex;
|
|
508
519
|
const buttonId: string | undefined = typeof rawId === "string" ? rawId : undefined;
|
|
509
520
|
const ariaLabel: string = typeof rawAriaLabel === "string" ? rawAriaLabel : "Remove";
|
|
510
521
|
const ariaLabelledBy: string | undefined =
|
|
511
522
|
typeof rawAriaLabelledBy === "string" ? rawAriaLabelledBy : undefined;
|
|
523
|
+
const tabindex: number | undefined = typeof rawTabIndex === "number" ? rawTabIndex : undefined;
|
|
512
524
|
|
|
513
525
|
const handleClick: JSX.EventHandler<HTMLButtonElement, MouseEvent> = (event) => {
|
|
514
526
|
event.stopPropagation();
|
|
@@ -529,6 +541,7 @@ export function TagRemoveButton(props: TagRemoveButtonProps): JSX.Element {
|
|
|
529
541
|
id={buttonId}
|
|
530
542
|
aria-label={ariaLabel}
|
|
531
543
|
aria-labelledby={ariaLabelledBy}
|
|
544
|
+
tabindex={tabindex}
|
|
532
545
|
disabled={getIsDisabled()}
|
|
533
546
|
data-allows-removing={dataAttr(tagContext?.allowsRemoving ?? false)}
|
|
534
547
|
onPointerDown={stopRowPress}
|