@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/dist/Select.js
CHANGED
|
@@ -1,10 +1,27 @@
|
|
|
1
|
-
|
|
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
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/Select.tsx
|
|
13
|
+
import { DEFAULT_SLOT, OptionContent, Provider, ariaTrueFalse, attrTrue, coerceDomRecord, dataAttr, filterDOMProps, useRenderProps } from "./utils.js";
|
|
14
|
+
import { TextContext } from "./Text.js";
|
|
2
15
|
import { FieldErrorContext } from "./FieldError.js";
|
|
3
16
|
import { SelectionIndicatorContext } from "./SelectionIndicator.js";
|
|
17
|
+
import { t as racIntlStrings } from "./intl.js";
|
|
18
|
+
import { useCollectionRenderer, useCollectionRoot } from "./Collection.js";
|
|
19
|
+
import { i as VirtualizerItem } from "./Virtualizer2.js";
|
|
4
20
|
import { ListBoxLoadMoreItem } from "./ListBox.js";
|
|
5
|
-
import { createComponent, effect, getNextElement, getNextMarker, insert, memo,
|
|
6
|
-
import { For, Show, createContext,
|
|
7
|
-
import { FocusScope, createHiddenSelect, createHover, createInteractOutside, createListBox, createOption, createSelect, focusSafely, mergeProps as mergeProps$
|
|
21
|
+
import { createComponent, effect, getNextElement, getNextMarker, insert, memo, ref, runHydrationEvents, scope, setProperty, spread, template } from "@solidjs/web";
|
|
22
|
+
import { For, Show, createContext, createMemo, createRenderEffect, createSignal, createTrackedEffect, untrack, useContext } from "solid-js";
|
|
23
|
+
import { FocusScope, createFocusRing, createHiddenSelect, createHover, createInteractOutside, createListBox, createListFormatter, createOption, createSelect, createStringFormatter, focusSafely, getInteractionModality, mergeProps as mergeProps$1 } from "@proyecto-viviana/solidaria";
|
|
24
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
8
25
|
import { DEFAULT_VALIDATION_RESULT, createSelectState } from "@proyecto-viviana/solid-stately";
|
|
9
26
|
//#region src/Select.tsx
|
|
10
27
|
/**
|
|
@@ -13,8 +30,15 @@ import { DEFAULT_VALIDATION_RESULT, createSelectState } from "@proyecto-viviana/
|
|
|
13
30
|
* A pre-wired headless select that combines state + aria hooks.
|
|
14
31
|
* Port of react-aria-components/src/Select.tsx
|
|
15
32
|
*/
|
|
16
|
-
var _tmpl$ =
|
|
17
|
-
|
|
33
|
+
var _tmpl$ = /* @__PURE__ */ template(`<span>`);
|
|
34
|
+
var _tmpl$2 = /* @__PURE__ */ template(`<div><label><!$><!/><select><option value label= > </option><!$><!/><!$><!/>`);
|
|
35
|
+
var _tmpl$3 = /* @__PURE__ */ template(`<input>`);
|
|
36
|
+
var _tmpl$4 = /* @__PURE__ */ template(`<option>`);
|
|
37
|
+
var _tmpl$5 = /* @__PURE__ */ template(`<div>`);
|
|
38
|
+
var _tmpl$6 = /* @__PURE__ */ template(`<button>`);
|
|
39
|
+
var _tmpl$7 = /* @__PURE__ */ template(`<div><!$><!/><!$><!/><!$><!/>`);
|
|
40
|
+
var _tmpl$8 = /* @__PURE__ */ template(`<div role=option data-empty-state style=display:contents>`);
|
|
41
|
+
function assignRef$1(ref, el) {
|
|
18
42
|
if (!ref) return;
|
|
19
43
|
if (typeof ref === "function") ref(el);
|
|
20
44
|
else ref.current = el;
|
|
@@ -41,7 +65,10 @@ function getNativeSelectValidation(select) {
|
|
|
41
65
|
const SelectContext = createContext(null);
|
|
42
66
|
const SelectStateContext = createContext(null);
|
|
43
67
|
const SelectValueContext = SelectContext;
|
|
44
|
-
|
|
68
|
+
/** True when this SelectListBox is the overlay list (Picker / Popover). */
|
|
69
|
+
const SelectListBoxInPopoverContext = createContext(false);
|
|
70
|
+
function noopOptionFocus() {}
|
|
71
|
+
const selectRootLabelProps = /* @__PURE__ */ new Set([
|
|
45
72
|
"aria-label",
|
|
46
73
|
"aria-labelledby",
|
|
47
74
|
"aria-describedby",
|
|
@@ -51,8 +78,9 @@ const selectRootLabelProps = new Set([
|
|
|
51
78
|
* A select displays a collapsible list of options and allows a user to select one of them.
|
|
52
79
|
*/
|
|
53
80
|
function Select(props) {
|
|
54
|
-
const contextSlotProps = useContext(SelectContext)?.slots?.[props.slot
|
|
55
|
-
const
|
|
81
|
+
const contextSlotProps = useContext(SelectContext)?.slots?.[typeof props.slot === "string" ? props.slot : "default"];
|
|
82
|
+
const mergedSelectProps = contextSlotProps ? mergeProps$1(contextSlotProps, props) : props;
|
|
83
|
+
const [local, stateProps, ariaProps] = splitProps(mergedSelectProps, [
|
|
56
84
|
"class",
|
|
57
85
|
"style",
|
|
58
86
|
"render",
|
|
@@ -79,7 +107,6 @@ function Select(props) {
|
|
|
79
107
|
]);
|
|
80
108
|
let rootRef;
|
|
81
109
|
const [selectValidation, setSelectValidation] = createSignal(DEFAULT_VALIDATION_RESULT);
|
|
82
|
-
const errorMessageId = createUniqueId();
|
|
83
110
|
const resolveDisabled = () => {
|
|
84
111
|
const disabled = ariaProps.isDisabled;
|
|
85
112
|
if (typeof disabled === "function") return disabled();
|
|
@@ -136,20 +163,47 @@ function Select(props) {
|
|
|
136
163
|
},
|
|
137
164
|
get isRequired() {
|
|
138
165
|
return ariaProps.isRequired;
|
|
166
|
+
},
|
|
167
|
+
get isInvalid() {
|
|
168
|
+
return ariaProps.isInvalid;
|
|
169
|
+
},
|
|
170
|
+
get validationState() {
|
|
171
|
+
return ariaProps.validationState;
|
|
172
|
+
},
|
|
173
|
+
get validate() {
|
|
174
|
+
return ariaProps.validate;
|
|
175
|
+
},
|
|
176
|
+
get name() {
|
|
177
|
+
return stateProps.name;
|
|
178
|
+
},
|
|
179
|
+
get validationBehavior() {
|
|
180
|
+
return ariaProps.validationBehavior;
|
|
139
181
|
}
|
|
140
182
|
});
|
|
141
|
-
const
|
|
183
|
+
const selectAriaProps = createMemo(() => {
|
|
142
184
|
const clean = {};
|
|
143
185
|
for (const key in ariaProps) if (!key.startsWith("data-")) clean[key] = ariaProps[key];
|
|
144
186
|
return clean;
|
|
187
|
+
});
|
|
188
|
+
const isInvalid = createMemo(() => state.displayValidation().isInvalid || selectValidation().isInvalid);
|
|
189
|
+
const composedValidation = createMemo(() => {
|
|
190
|
+
const fromState = state.displayValidation();
|
|
191
|
+
if (fromState.isInvalid) return fromState;
|
|
192
|
+
return selectValidation();
|
|
193
|
+
});
|
|
194
|
+
const selectHook = createSelect(() => ({
|
|
195
|
+
...selectAriaProps(),
|
|
196
|
+
isInvalid: isInvalid()
|
|
145
197
|
}), state);
|
|
198
|
+
const { isFocused, isFocusVisible, isOpen, isPressed } = selectHook;
|
|
146
199
|
const { isHovered, hoverProps } = createHover({ get isDisabled() {
|
|
147
200
|
return resolveDisabled();
|
|
148
201
|
} });
|
|
202
|
+
const { isFocusVisible: isFocusVisibleWithin, focusProps } = createFocusRing({ within: true });
|
|
149
203
|
const renderValues = createMemo(() => ({
|
|
150
204
|
isOpen: isOpen(),
|
|
151
205
|
isFocused: isFocused(),
|
|
152
|
-
isFocusVisible:
|
|
206
|
+
isFocusVisible: isFocusVisibleWithin(),
|
|
153
207
|
isDisabled: resolveDisabled(),
|
|
154
208
|
isRequired: !!ariaProps.isRequired,
|
|
155
209
|
isSelected: state.selectionMode() === "multiple" ? state.selectedKeys() === "all" || state.selectedKeys().size > 0 : state.selectedKey() != null
|
|
@@ -162,7 +216,7 @@ function Select(props) {
|
|
|
162
216
|
return isFocused();
|
|
163
217
|
},
|
|
164
218
|
get isFocusVisible() {
|
|
165
|
-
return
|
|
219
|
+
return isFocusVisibleWithin();
|
|
166
220
|
},
|
|
167
221
|
get isDisabled() {
|
|
168
222
|
return resolveDisabled();
|
|
@@ -188,37 +242,29 @@ function Select(props) {
|
|
|
188
242
|
const { ref: _ref, ...rest } = hoverProps;
|
|
189
243
|
return rest;
|
|
190
244
|
};
|
|
245
|
+
const cleanFocusProps = () => {
|
|
246
|
+
const { ref: _ref, onFocus, onBlur, ...rest } = focusProps;
|
|
247
|
+
return {
|
|
248
|
+
...rest,
|
|
249
|
+
onFocusIn: onFocus,
|
|
250
|
+
onFocusOut: onBlur
|
|
251
|
+
};
|
|
252
|
+
};
|
|
191
253
|
const cleanLabelProps = () => {
|
|
192
|
-
const { ref: _ref, ...rest } = labelProps;
|
|
254
|
+
const { ref: _ref, ...rest } = selectHook.labelProps;
|
|
193
255
|
return rest;
|
|
194
256
|
};
|
|
195
257
|
const setRootRef = (el) => {
|
|
196
258
|
rootRef = el;
|
|
197
|
-
assignRef(local.ref, el);
|
|
198
|
-
};
|
|
199
|
-
const validation = createMemo(() => {
|
|
200
|
-
const current = selectValidation();
|
|
201
|
-
if (current.isInvalid || !ariaProps.isInvalid) return current;
|
|
202
|
-
return {
|
|
203
|
-
...DEFAULT_VALIDATION_RESULT,
|
|
204
|
-
isInvalid: true
|
|
205
|
-
};
|
|
206
|
-
});
|
|
207
|
-
const isInvalid = createMemo(() => validation().isInvalid);
|
|
208
|
-
const triggerDescribedBy = () => {
|
|
209
|
-
const ids = [triggerProps["aria-describedby"], isInvalid() ? errorMessageId : void 0].filter(Boolean).join(" ").split(" ").filter(Boolean);
|
|
210
|
-
return ids.length ? Array.from(new Set(ids)).join(" ") : void 0;
|
|
259
|
+
assignRef$1(local.ref, el);
|
|
211
260
|
};
|
|
212
|
-
const triggerPropsWithValidation = () =>
|
|
213
|
-
...triggerProps,
|
|
214
|
-
"aria-describedby": triggerDescribedBy()
|
|
215
|
-
});
|
|
261
|
+
const triggerPropsWithValidation = () => selectHook.triggerProps;
|
|
216
262
|
const fieldErrorContext = {
|
|
217
263
|
get validation() {
|
|
218
|
-
return
|
|
264
|
+
return composedValidation();
|
|
219
265
|
},
|
|
220
266
|
get errorMessageProps() {
|
|
221
|
-
return
|
|
267
|
+
return selectHook.errorMessageProps;
|
|
222
268
|
}
|
|
223
269
|
};
|
|
224
270
|
const focusTrigger = () => {
|
|
@@ -246,12 +292,17 @@ function Select(props) {
|
|
|
246
292
|
};
|
|
247
293
|
return getNativeSelectValidation(select);
|
|
248
294
|
};
|
|
249
|
-
|
|
295
|
+
let triggerRef = null;
|
|
296
|
+
const setTriggerRef = (el) => {
|
|
297
|
+
triggerRef = el;
|
|
298
|
+
};
|
|
299
|
+
const { containerProps, selectProps: hiddenSelectProps, inputProps: hiddenInputProps } = createHiddenSelect({
|
|
250
300
|
state,
|
|
251
301
|
name: stateProps.name,
|
|
252
302
|
form: ariaProps.form,
|
|
253
303
|
isRequired: ariaProps.isRequired,
|
|
254
304
|
validationBehavior: ariaProps.validationBehavior ?? "native",
|
|
305
|
+
triggerRef: () => triggerRef,
|
|
255
306
|
get isDisabled() {
|
|
256
307
|
return resolveDisabled();
|
|
257
308
|
}
|
|
@@ -265,13 +316,29 @@ function Select(props) {
|
|
|
265
316
|
hiddenSelectProps.onChange?.(event);
|
|
266
317
|
setSelectValidation(hasSelection() && event.currentTarget.validity.valid ? DEFAULT_VALIDATION_RESULT : getSelectValidation(event.currentTarget));
|
|
267
318
|
};
|
|
268
|
-
|
|
319
|
+
const hiddenSelectItemNodes = () => Array.from(state.collection()).filter((item) => item.type === "item");
|
|
320
|
+
const nativeSelectValue = () => {
|
|
321
|
+
if (state.selectionMode() === "multiple") {
|
|
322
|
+
const selectedKeys = state.selectedKeys();
|
|
323
|
+
if (selectedKeys === "all") return hiddenSelectItemNodes().map((item) => String(item.key));
|
|
324
|
+
return Array.from(selectedKeys).map(String);
|
|
325
|
+
}
|
|
326
|
+
const key = state.selectedKey();
|
|
327
|
+
return key != null ? String(key) : "";
|
|
328
|
+
};
|
|
329
|
+
const hiddenSelectFallbackValues = () => {
|
|
330
|
+
if (state.selectionMode() === "multiple") {
|
|
331
|
+
const keys = state.selectedKeys();
|
|
332
|
+
if (keys === "all") return hiddenSelectItemNodes().map((item) => item.key);
|
|
333
|
+
const listed = Array.from(keys);
|
|
334
|
+
return listed.length === 0 ? [null] : listed;
|
|
335
|
+
}
|
|
336
|
+
return [state.selectedKey()];
|
|
337
|
+
};
|
|
338
|
+
createTrackedEffect(() => {
|
|
269
339
|
if (hasSelection() && selectValidation().isInvalid) setSelectValidation(DEFAULT_VALIDATION_RESULT);
|
|
340
|
+
if (hasSelection() && !ariaProps.isInvalid && state.displayValidation().isInvalid) state.resetValidation();
|
|
270
341
|
});
|
|
271
|
-
let triggerRef = null;
|
|
272
|
-
const setTriggerRef = (el) => {
|
|
273
|
-
triggerRef = el;
|
|
274
|
-
};
|
|
275
342
|
const RootChildren = () => {
|
|
276
343
|
const selectChildren = untrack(() => typeof local.children === "function" ? local.children(childRenderValues) : local.children);
|
|
277
344
|
return [
|
|
@@ -281,139 +348,169 @@ function Select(props) {
|
|
|
281
348
|
},
|
|
282
349
|
get children() {
|
|
283
350
|
var _el$ = getNextElement(_tmpl$);
|
|
284
|
-
spread(_el$,
|
|
285
|
-
insert(_el$, () =>
|
|
351
|
+
spread(_el$, cleanLabelProps, true);
|
|
352
|
+
insert(_el$, () => {
|
|
353
|
+
return ariaProps.label;
|
|
354
|
+
});
|
|
286
355
|
runHydrationEvents();
|
|
287
356
|
return _el$;
|
|
288
357
|
}
|
|
289
358
|
}),
|
|
290
359
|
selectChildren,
|
|
291
|
-
(
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
360
|
+
createComponent(Show, {
|
|
361
|
+
get when() {
|
|
362
|
+
return state.collection().size <= 300;
|
|
363
|
+
},
|
|
364
|
+
get fallback() {
|
|
365
|
+
return createComponent(Show, {
|
|
366
|
+
get when() {
|
|
367
|
+
return stateProps.name;
|
|
368
|
+
},
|
|
369
|
+
get children() {
|
|
370
|
+
return createComponent(For, {
|
|
371
|
+
get each() {
|
|
372
|
+
const keys = state.selectionMode() === "multiple" ? state.selectedKeys() === "all" ? Array.from(state.collection()).map((item) => item.key) : Array.from(state.selectedKeys()) : [state.selectedKey()];
|
|
373
|
+
return keys.length === 0 ? [null] : keys;
|
|
374
|
+
},
|
|
375
|
+
children: (key) => (() => {
|
|
376
|
+
var _el$15 = getNextElement(_tmpl$3);
|
|
377
|
+
spread(_el$15, [hiddenInputProps, {
|
|
378
|
+
get name() {
|
|
379
|
+
return stateProps.name;
|
|
380
|
+
},
|
|
381
|
+
get form() {
|
|
382
|
+
return ariaProps.form;
|
|
383
|
+
},
|
|
384
|
+
get value() {
|
|
385
|
+
return key != null ? String(key) : "";
|
|
386
|
+
},
|
|
387
|
+
get disabled() {
|
|
388
|
+
return resolveDisabled();
|
|
389
|
+
},
|
|
390
|
+
onInvalid: handleHiddenSelectInvalid
|
|
391
|
+
}], false);
|
|
392
|
+
runHydrationEvents();
|
|
393
|
+
return _el$15;
|
|
394
|
+
})()
|
|
395
|
+
});
|
|
396
|
+
}
|
|
397
|
+
});
|
|
398
|
+
},
|
|
399
|
+
get children() {
|
|
400
|
+
var _el$2 = getNextElement(_tmpl$2);
|
|
401
|
+
var _el$3 = _el$2.firstChild;
|
|
402
|
+
var _el$4 = _el$3.firstChild;
|
|
403
|
+
var [_el$5, _el$6] = getNextMarker(_el$4.nextSibling);
|
|
404
|
+
var _el$7 = _el$5.nextSibling;
|
|
405
|
+
var _el$9 = _el$7.firstChild.nextSibling;
|
|
406
|
+
var [_el$10, _el$11] = getNextMarker(_el$9.nextSibling);
|
|
407
|
+
var _el$12 = _el$10.nextSibling;
|
|
408
|
+
var [_el$13, _el$14] = getNextMarker(_el$12.nextSibling);
|
|
409
|
+
spread(_el$2, [() => {
|
|
410
|
+
return coerceDomRecord(containerProps);
|
|
411
|
+
}, { "data-testid": "hidden-select-container" }], true);
|
|
412
|
+
insert(_el$3, () => {
|
|
413
|
+
return ariaProps.label;
|
|
414
|
+
}, _el$5, _el$6);
|
|
415
|
+
spread(_el$7, [hiddenSelectProps, {
|
|
416
|
+
get name() {
|
|
417
|
+
return stateProps.name;
|
|
418
|
+
},
|
|
419
|
+
get required() {
|
|
420
|
+
return hasNativeValidation() && ariaProps.isRequired && !hasSelection() || void 0;
|
|
421
|
+
},
|
|
422
|
+
get value() {
|
|
423
|
+
return nativeSelectValue();
|
|
424
|
+
},
|
|
425
|
+
onInvalid: handleHiddenSelectInvalid,
|
|
426
|
+
onChange: handleHiddenSelectChange,
|
|
427
|
+
onInput: handleHiddenSelectChange
|
|
428
|
+
}], true);
|
|
429
|
+
insert(_el$7, createComponent(For, {
|
|
430
|
+
get each() {
|
|
431
|
+
return hiddenSelectItemNodes();
|
|
432
|
+
},
|
|
433
|
+
children: (item) => (() => {
|
|
434
|
+
var _el$16 = getNextElement(_tmpl$4);
|
|
435
|
+
insert(_el$16, () => {
|
|
436
|
+
return item.textValue;
|
|
437
|
+
});
|
|
438
|
+
effect(() => String(item.key), (_v$) => {
|
|
439
|
+
setProperty(_el$16, "value", _v$);
|
|
440
|
+
});
|
|
441
|
+
return _el$16;
|
|
442
|
+
})()
|
|
443
|
+
}), _el$10, _el$11);
|
|
444
|
+
insert(_el$7, createComponent(Show, {
|
|
445
|
+
get when() {
|
|
446
|
+
return memo(() => {
|
|
447
|
+
return state.collection().size === 0;
|
|
448
|
+
})() && stateProps.name;
|
|
449
|
+
},
|
|
450
|
+
get children() {
|
|
451
|
+
return createComponent(For, {
|
|
452
|
+
get each() {
|
|
453
|
+
return hiddenSelectFallbackValues();
|
|
454
|
+
},
|
|
455
|
+
children: (value) => (() => {
|
|
456
|
+
var _el$17 = getNextElement(_tmpl$4);
|
|
457
|
+
effect(() => value != null ? String(value) : "", (_v$) => {
|
|
458
|
+
setProperty(_el$17, "value", _v$);
|
|
459
|
+
});
|
|
460
|
+
return _el$17;
|
|
461
|
+
})()
|
|
462
|
+
});
|
|
463
|
+
}
|
|
464
|
+
}), _el$13, _el$14);
|
|
465
|
+
runHydrationEvents();
|
|
466
|
+
return _el$2;
|
|
467
|
+
}
|
|
468
|
+
})
|
|
387
469
|
];
|
|
388
470
|
};
|
|
389
471
|
const baseRootProps = () => ({
|
|
390
472
|
...domProps(),
|
|
391
473
|
...cleanHoverProps(),
|
|
474
|
+
...cleanFocusProps(),
|
|
392
475
|
ref: setRootRef,
|
|
393
476
|
class: renderProps.class(),
|
|
394
477
|
style: renderProps.style(),
|
|
395
478
|
slot: local.slot,
|
|
396
|
-
"data-
|
|
397
|
-
"data-
|
|
398
|
-
"data-
|
|
399
|
-
"data-
|
|
400
|
-
"data-
|
|
479
|
+
"data-focused": dataAttr(isFocused()),
|
|
480
|
+
"data-focus-visible": dataAttr(isFocusVisibleWithin()),
|
|
481
|
+
"data-open": dataAttr(isOpen()),
|
|
482
|
+
"data-disabled": dataAttr(resolveDisabled()),
|
|
483
|
+
"data-required": dataAttr(ariaProps.isRequired),
|
|
484
|
+
"data-invalid": dataAttr(isInvalid()),
|
|
485
|
+
"data-hovered": dataAttr(isHovered())
|
|
401
486
|
});
|
|
402
487
|
const RootContent = () => {
|
|
403
|
-
const renderedRootChildren = createComponent(
|
|
488
|
+
const renderedRootChildren = createComponent(Provider, {
|
|
489
|
+
values: [[TextContext, { slots: {
|
|
490
|
+
get description() {
|
|
491
|
+
return selectHook.descriptionProps;
|
|
492
|
+
},
|
|
493
|
+
get errorMessage() {
|
|
494
|
+
return selectHook.errorMessageProps;
|
|
495
|
+
}
|
|
496
|
+
} }]],
|
|
497
|
+
get children() {
|
|
498
|
+
return createComponent(RootChildren, {});
|
|
499
|
+
}
|
|
500
|
+
});
|
|
404
501
|
const rootProps = () => ({
|
|
405
502
|
...baseRootProps(),
|
|
406
503
|
children: renderedRootChildren
|
|
407
504
|
});
|
|
408
505
|
return local.render ? local.render(rootProps(), renderValues()) : (() => {
|
|
409
|
-
var _el$
|
|
410
|
-
spread(_el$
|
|
411
|
-
insert(_el$
|
|
506
|
+
var _el$18 = getNextElement(_tmpl$5);
|
|
507
|
+
spread(_el$18, baseRootProps, true);
|
|
508
|
+
insert(_el$18, renderedRootChildren);
|
|
412
509
|
runHydrationEvents();
|
|
413
|
-
return _el$
|
|
510
|
+
return _el$18;
|
|
414
511
|
})();
|
|
415
512
|
};
|
|
416
|
-
return createComponent(SelectContext
|
|
513
|
+
return createComponent(SelectContext, {
|
|
417
514
|
get value() {
|
|
418
515
|
return {
|
|
419
516
|
state,
|
|
@@ -423,14 +520,20 @@ function Select(props) {
|
|
|
423
520
|
get triggerProps() {
|
|
424
521
|
return triggerPropsWithValidation();
|
|
425
522
|
},
|
|
426
|
-
valueProps
|
|
427
|
-
|
|
428
|
-
|
|
523
|
+
get valueProps() {
|
|
524
|
+
return selectHook.valueProps;
|
|
525
|
+
},
|
|
526
|
+
get labelProps() {
|
|
527
|
+
return selectHook.labelProps;
|
|
528
|
+
},
|
|
529
|
+
get menuProps() {
|
|
530
|
+
return selectHook.menuProps;
|
|
531
|
+
},
|
|
429
532
|
get errorMessageProps() {
|
|
430
|
-
return
|
|
533
|
+
return selectHook.errorMessageProps;
|
|
431
534
|
},
|
|
432
535
|
get validation() {
|
|
433
|
-
return
|
|
536
|
+
return composedValidation();
|
|
434
537
|
},
|
|
435
538
|
isOpen,
|
|
436
539
|
isFocused,
|
|
@@ -443,10 +546,10 @@ function Select(props) {
|
|
|
443
546
|
};
|
|
444
547
|
},
|
|
445
548
|
get children() {
|
|
446
|
-
return createComponent(SelectStateContext
|
|
549
|
+
return createComponent(SelectStateContext, {
|
|
447
550
|
value: state,
|
|
448
551
|
get children() {
|
|
449
|
-
return createComponent(FieldErrorContext
|
|
552
|
+
return createComponent(FieldErrorContext, {
|
|
450
553
|
value: fieldErrorContext,
|
|
451
554
|
get children() {
|
|
452
555
|
return createComponent(RootContent, {});
|
|
@@ -470,14 +573,15 @@ function SelectTrigger(props) {
|
|
|
470
573
|
]);
|
|
471
574
|
const context = useContext(SelectContext);
|
|
472
575
|
if (!context) throw new Error("SelectTrigger must be used within a Select");
|
|
473
|
-
const { isOpen,
|
|
576
|
+
const { isOpen, isFocusVisible, isPressed, state } = context;
|
|
577
|
+
const { isFocused, focusProps: triggerFocusProps } = createFocusRing();
|
|
474
578
|
let triggerRef;
|
|
475
579
|
const setTriggerRef = (el) => {
|
|
476
580
|
triggerRef = el;
|
|
477
581
|
context.setTriggerRef(el);
|
|
478
|
-
assignRef(local.ref, el);
|
|
582
|
+
assignRef$1(local.ref, el);
|
|
479
583
|
};
|
|
480
|
-
|
|
584
|
+
createTrackedEffect(() => {
|
|
481
585
|
if (context.autoFocus) triggerRef?.focus();
|
|
482
586
|
});
|
|
483
587
|
const { isHovered, hoverProps } = createHover({ get isDisabled() {
|
|
@@ -500,8 +604,8 @@ function SelectTrigger(props) {
|
|
|
500
604
|
defaultClassName: "solidaria-Select-trigger"
|
|
501
605
|
}, renderValues);
|
|
502
606
|
const cleanTriggerProps = () => {
|
|
503
|
-
const { ref: _ref1, ...rest } = context.triggerProps;
|
|
504
|
-
return rest;
|
|
607
|
+
const { ref: _ref1, "aria-disabled": _ariaDisabled, "data-open": _dataOpen, ...rest } = context.triggerProps;
|
|
608
|
+
return mergeProps$1(rest, triggerFocusProps);
|
|
505
609
|
};
|
|
506
610
|
const cleanHoverProps = () => {
|
|
507
611
|
const { ref: _ref2, ...rest } = hoverProps;
|
|
@@ -509,65 +613,69 @@ function SelectTrigger(props) {
|
|
|
509
613
|
};
|
|
510
614
|
const triggerAriaProps = () => context.triggerProps;
|
|
511
615
|
const menuAriaProps = () => context.menuProps;
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
616
|
+
var _el$19 = getNextElement(_tmpl$6);
|
|
617
|
+
ref(() => {
|
|
618
|
+
return setTriggerRef;
|
|
619
|
+
}, _el$19);
|
|
620
|
+
spread(_el$19, [
|
|
621
|
+
domProps,
|
|
622
|
+
cleanTriggerProps,
|
|
623
|
+
cleanHoverProps,
|
|
624
|
+
{
|
|
625
|
+
type: "button",
|
|
517
626
|
get id() {
|
|
518
627
|
return triggerAriaProps().id;
|
|
519
628
|
},
|
|
520
|
-
get
|
|
629
|
+
get tabindex() {
|
|
521
630
|
return state.isDisabled ? void 0 : 0;
|
|
522
631
|
},
|
|
523
|
-
get
|
|
632
|
+
get disabled() {
|
|
633
|
+
return state.isDisabled || void 0;
|
|
634
|
+
},
|
|
635
|
+
get "aria-label"() {
|
|
524
636
|
return triggerAriaProps()["aria-label"];
|
|
525
637
|
},
|
|
526
|
-
get
|
|
638
|
+
get "aria-labelledby"() {
|
|
527
639
|
return triggerAriaProps()["aria-labelledby"];
|
|
528
640
|
},
|
|
529
641
|
"aria-haspopup": "listbox",
|
|
530
|
-
get
|
|
531
|
-
return isOpen();
|
|
642
|
+
get "aria-expanded"() {
|
|
643
|
+
return ariaTrueFalse(isOpen());
|
|
532
644
|
},
|
|
533
|
-
get
|
|
534
|
-
return
|
|
645
|
+
get "aria-controls"() {
|
|
646
|
+
return isOpen() ? menuAriaProps().id : void 0;
|
|
535
647
|
},
|
|
536
|
-
get
|
|
537
|
-
return
|
|
648
|
+
get "aria-required"() {
|
|
649
|
+
return attrTrue(Boolean(triggerAriaProps()["aria-required"]));
|
|
538
650
|
},
|
|
539
|
-
get
|
|
540
|
-
return triggerAriaProps()["aria-required"];
|
|
541
|
-
},
|
|
542
|
-
get ["aria-describedby"]() {
|
|
651
|
+
get "aria-describedby"() {
|
|
543
652
|
return triggerAriaProps()["aria-describedby"];
|
|
544
653
|
},
|
|
545
|
-
get
|
|
654
|
+
get "class"() {
|
|
546
655
|
return renderProps.class();
|
|
547
656
|
},
|
|
548
657
|
get style() {
|
|
549
658
|
return renderProps.style();
|
|
550
659
|
},
|
|
551
|
-
get
|
|
552
|
-
return
|
|
553
|
-
},
|
|
554
|
-
get ["data-focused"]() {
|
|
555
|
-
return isFocused() || void 0;
|
|
660
|
+
get "data-focused"() {
|
|
661
|
+
return dataAttr(isFocused());
|
|
556
662
|
},
|
|
557
|
-
get
|
|
558
|
-
return isFocusVisible()
|
|
663
|
+
get "data-focus-visible"() {
|
|
664
|
+
return dataAttr(isFocusVisible());
|
|
559
665
|
},
|
|
560
|
-
get
|
|
561
|
-
return isHovered()
|
|
666
|
+
get "data-hovered"() {
|
|
667
|
+
return dataAttr(isHovered());
|
|
562
668
|
},
|
|
563
|
-
get
|
|
564
|
-
return state.isDisabled
|
|
669
|
+
get "data-disabled"() {
|
|
670
|
+
return dataAttr(state.isDisabled);
|
|
565
671
|
}
|
|
566
|
-
}
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
return
|
|
570
|
-
})
|
|
672
|
+
}
|
|
673
|
+
], true);
|
|
674
|
+
insert(_el$19, scope(() => {
|
|
675
|
+
return renderProps.renderChildren();
|
|
676
|
+
}));
|
|
677
|
+
runHydrationEvents();
|
|
678
|
+
return _el$19;
|
|
571
679
|
}
|
|
572
680
|
function defaultSelectValueChildren(values) {
|
|
573
681
|
return values.selectedText ?? values.placeholder ?? "";
|
|
@@ -587,7 +695,12 @@ function SelectValue(props) {
|
|
|
587
695
|
if (!context) throw new Error("SelectValue must be used within a Select");
|
|
588
696
|
const { valueProps, placeholder: contextPlaceholder } = context;
|
|
589
697
|
const state = context.state;
|
|
590
|
-
const
|
|
698
|
+
const stringFormatter = createStringFormatter(racIntlStrings, "react-aria-components");
|
|
699
|
+
const listFormatter = createListFormatter({
|
|
700
|
+
style: "long",
|
|
701
|
+
type: "conjunction"
|
|
702
|
+
});
|
|
703
|
+
const placeholder = () => local.placeholder ?? contextPlaceholder ?? stringFormatter().format("selectPlaceholder");
|
|
591
704
|
const renderValues = createMemo(() => {
|
|
592
705
|
const collection = state.collection();
|
|
593
706
|
const selectedItem = state.selectedKey() == null ? null : collection.getItem(state.selectedKey());
|
|
@@ -596,10 +709,7 @@ function SelectValue(props) {
|
|
|
596
709
|
return {
|
|
597
710
|
selectedItem,
|
|
598
711
|
selectedItems,
|
|
599
|
-
selectedText: state.selectionMode() === "multiple" ? selectedItems.length > 0 ?
|
|
600
|
-
style: "long",
|
|
601
|
-
type: "conjunction"
|
|
602
|
-
}).format(selectedItems.map((item) => item.textValue)) : null : selectedItem?.textValue ?? null,
|
|
712
|
+
selectedText: state.selectionMode() === "multiple" ? selectedItems.length > 0 ? listFormatter().format(selectedItems.map((item) => item.textValue)) : null : selectedItem?.textValue ?? null,
|
|
603
713
|
isSelected: state.selectionMode() === "multiple" ? selectedItems.length > 0 : selectedItem != null,
|
|
604
714
|
placeholder: placeholder()
|
|
605
715
|
};
|
|
@@ -612,26 +722,32 @@ function SelectValue(props) {
|
|
|
612
722
|
style: local.style,
|
|
613
723
|
defaultClassName: "solidaria-Select-value"
|
|
614
724
|
}, renderValues);
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
725
|
+
var _el$20 = getNextElement(_tmpl$);
|
|
726
|
+
spread(_el$20, [
|
|
727
|
+
domProps,
|
|
728
|
+
valueProps,
|
|
729
|
+
{
|
|
730
|
+
get "class"() {
|
|
619
731
|
return renderProps.class();
|
|
620
732
|
},
|
|
621
733
|
get style() {
|
|
622
734
|
return renderProps.style();
|
|
623
735
|
},
|
|
624
|
-
get
|
|
625
|
-
return !renderValues().isSelected
|
|
736
|
+
get "data-placeholder"() {
|
|
737
|
+
return dataAttr(!renderValues().isSelected);
|
|
626
738
|
}
|
|
627
|
-
}
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
return
|
|
634
|
-
|
|
739
|
+
}
|
|
740
|
+
], true);
|
|
741
|
+
insert(_el$20, scope((() => {
|
|
742
|
+
var _c$ = memo(() => {
|
|
743
|
+
return props.children == null;
|
|
744
|
+
});
|
|
745
|
+
return () => {
|
|
746
|
+
return _c$() ? renderValues().selectedText ?? renderValues().placeholder ?? "" : renderProps.renderChildren();
|
|
747
|
+
};
|
|
748
|
+
})()));
|
|
749
|
+
runHydrationEvents();
|
|
750
|
+
return _el$20;
|
|
635
751
|
}
|
|
636
752
|
/**
|
|
637
753
|
* The listbox popup for a select.
|
|
@@ -653,7 +769,7 @@ function SelectListBox(props) {
|
|
|
653
769
|
if (!context) throw new Error("SelectListBox must be used within a Select");
|
|
654
770
|
const { menuProps, rootRef, state: selectState, isOpen } = context;
|
|
655
771
|
const state = selectState;
|
|
656
|
-
|
|
772
|
+
createTrackedEffect(() => {
|
|
657
773
|
if (!isOpen()) return;
|
|
658
774
|
state.selectionManager.setFocused(true);
|
|
659
775
|
if (state.focusedKey() != null) return;
|
|
@@ -661,6 +777,9 @@ function SelectListBox(props) {
|
|
|
661
777
|
if (selectedKey != null && !state.collection().getItem(selectedKey)?.isDisabled) state.setFocusedKey(selectedKey);
|
|
662
778
|
});
|
|
663
779
|
let listBoxRef;
|
|
780
|
+
const [listBoxEl, setListBoxEl] = createSignal(null, { ownedWrite: true });
|
|
781
|
+
const CollectionRoot = useCollectionRoot();
|
|
782
|
+
const isVirtualized = () => parentCollectionRenderer?.isVirtualized === true;
|
|
664
783
|
createInteractOutside({
|
|
665
784
|
ref: () => rootRef() ?? listBoxRef ?? null,
|
|
666
785
|
onInteractOutside: () => {
|
|
@@ -670,16 +789,22 @@ function SelectListBox(props) {
|
|
|
670
789
|
return !isOpen() || local.isInPopover === true;
|
|
671
790
|
}
|
|
672
791
|
});
|
|
792
|
+
const parentCollectionRenderer = useCollectionRenderer();
|
|
673
793
|
const listBoxHook = createListBox({
|
|
674
794
|
...menuProps,
|
|
675
795
|
shouldSelectOnPressUp: true,
|
|
676
796
|
shouldFocusOnHover: true,
|
|
797
|
+
disallowEmptySelection: true,
|
|
677
798
|
shouldSelectOnFocus: local.isInPopover === true ? false : void 0,
|
|
678
799
|
get isDisabled() {
|
|
679
800
|
return state.isDisabled;
|
|
801
|
+
},
|
|
802
|
+
get isVirtualized() {
|
|
803
|
+
return parentCollectionRenderer?.isVirtualized;
|
|
680
804
|
}
|
|
681
805
|
}, createSelectListStateAdapter(state));
|
|
682
|
-
const
|
|
806
|
+
const { isFocused: isListBoxFocused, isFocusVisible: isListBoxFocusVisible, focusProps: listBoxFocusProps } = createFocusRing();
|
|
807
|
+
const renderValues = createMemo(() => ({ isFocused: isListBoxFocused() }));
|
|
683
808
|
const renderProps = useRenderProps({
|
|
684
809
|
class: local.class,
|
|
685
810
|
style: local.style,
|
|
@@ -693,95 +818,158 @@ function SelectListBox(props) {
|
|
|
693
818
|
const { ref: _ref2, "aria-activedescendant": _activeDescendant, onFocus: _onFocus, ...rest } = listBoxHook.listBoxProps;
|
|
694
819
|
return {
|
|
695
820
|
...rest,
|
|
696
|
-
|
|
821
|
+
tabindex: state.isDisabled ? void 0 : state.focusedKey() != null ? -1 : 0
|
|
697
822
|
};
|
|
698
823
|
};
|
|
824
|
+
const cleanListBoxFocusProps = () => {
|
|
825
|
+
const { ref: _ref3, ...rest } = listBoxFocusProps;
|
|
826
|
+
return rest;
|
|
827
|
+
};
|
|
699
828
|
const items = () => Array.from(state.collection());
|
|
700
|
-
|
|
829
|
+
createTrackedEffect(() => {
|
|
701
830
|
if (!isOpen()) return;
|
|
702
831
|
const focusedKey = state.focusedKey();
|
|
703
832
|
if (focusedKey == null) return;
|
|
833
|
+
if (local.isInPopover === true && getInteractionModality() !== "keyboard") return;
|
|
704
834
|
queueMicrotask(() => {
|
|
705
835
|
const option = Array.from(listBoxRef?.querySelectorAll("[role='option']") ?? []).find((element) => element.id === String(focusedKey));
|
|
706
836
|
if (option && document.activeElement !== option) focusSafely(option);
|
|
707
837
|
});
|
|
708
838
|
});
|
|
709
|
-
const listBox = () => (
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
839
|
+
const listBox = () => createComponent(SelectListBoxInPopoverContext, {
|
|
840
|
+
get value() {
|
|
841
|
+
return local.isInPopover === true;
|
|
842
|
+
},
|
|
843
|
+
get children() {
|
|
844
|
+
var _el$21 = getNextElement(_tmpl$7);
|
|
845
|
+
var _el$22 = _el$21.firstChild;
|
|
846
|
+
var [_el$23, _el$24] = getNextMarker(_el$22.nextSibling);
|
|
847
|
+
var _el$25 = _el$23.nextSibling;
|
|
848
|
+
var [_el$26, _el$27] = getNextMarker(_el$25.nextSibling);
|
|
849
|
+
var _el$28 = _el$26.nextSibling;
|
|
850
|
+
var [_el$29, _el$30] = getNextMarker(_el$28.nextSibling);
|
|
851
|
+
ref(() => {
|
|
852
|
+
return (el) => {
|
|
853
|
+
listBoxRef = el;
|
|
854
|
+
setListBoxEl(el);
|
|
855
|
+
};
|
|
856
|
+
}, _el$21);
|
|
857
|
+
spread(_el$21, [
|
|
858
|
+
domProps,
|
|
859
|
+
cleanMenuProps,
|
|
860
|
+
cleanListBoxProps,
|
|
861
|
+
cleanListBoxFocusProps,
|
|
862
|
+
{
|
|
863
|
+
get "class"() {
|
|
864
|
+
return renderProps.class();
|
|
865
|
+
},
|
|
866
|
+
get style() {
|
|
867
|
+
return renderProps.style();
|
|
868
|
+
},
|
|
869
|
+
get "data-focused"() {
|
|
870
|
+
return dataAttr(isListBoxFocused());
|
|
871
|
+
},
|
|
872
|
+
get "data-focus-visible"() {
|
|
873
|
+
return dataAttr(isListBoxFocusVisible());
|
|
874
|
+
},
|
|
875
|
+
get "data-empty"() {
|
|
876
|
+
return dataAttr(state.collection().size === 0);
|
|
877
|
+
},
|
|
878
|
+
"data-layout": "stack",
|
|
879
|
+
"data-orientation": "vertical"
|
|
880
|
+
}
|
|
881
|
+
], true);
|
|
882
|
+
insert(_el$21, createComponent(CollectionRoot, {
|
|
883
|
+
get collection() {
|
|
884
|
+
return items();
|
|
735
885
|
},
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
886
|
+
scrollRef: () => listBoxEl(),
|
|
887
|
+
get children() {
|
|
888
|
+
return createComponent(Show, {
|
|
889
|
+
get when() {
|
|
890
|
+
return local.children;
|
|
740
891
|
},
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
892
|
+
get fallback() {
|
|
893
|
+
return createComponent(For, {
|
|
894
|
+
get each() {
|
|
895
|
+
return items();
|
|
896
|
+
},
|
|
897
|
+
children: (node, index) => {
|
|
898
|
+
const item = createComponent(SelectOption, {
|
|
899
|
+
get id() {
|
|
900
|
+
return node.key;
|
|
901
|
+
},
|
|
902
|
+
get children() {
|
|
903
|
+
return node.textValue;
|
|
904
|
+
}
|
|
905
|
+
});
|
|
906
|
+
return isVirtualized() ? createComponent(VirtualizerItem, {
|
|
907
|
+
get index() {
|
|
908
|
+
return index();
|
|
909
|
+
},
|
|
910
|
+
children: item
|
|
911
|
+
}) : item;
|
|
912
|
+
}
|
|
913
|
+
});
|
|
914
|
+
},
|
|
915
|
+
get children() {
|
|
916
|
+
return createComponent(For, {
|
|
917
|
+
get each() {
|
|
918
|
+
return items();
|
|
919
|
+
},
|
|
920
|
+
children: (node, index) => {
|
|
921
|
+
const child = node.value != null ? local.children(node.value) : null;
|
|
922
|
+
return isVirtualized() ? createComponent(VirtualizerItem, {
|
|
923
|
+
get index() {
|
|
924
|
+
return index();
|
|
925
|
+
},
|
|
926
|
+
children: child
|
|
927
|
+
}) : child;
|
|
928
|
+
}
|
|
929
|
+
});
|
|
930
|
+
}
|
|
749
931
|
});
|
|
932
|
+
}
|
|
933
|
+
}), _el$23, _el$24);
|
|
934
|
+
insert(_el$21, scope((() => {
|
|
935
|
+
var _c$2 = memo(() => {
|
|
936
|
+
return !!(state.collection().size === 0 && local.renderEmptyState);
|
|
937
|
+
});
|
|
938
|
+
return () => {
|
|
939
|
+
return _c$2() ? (() => {
|
|
940
|
+
var _el$31 = getNextElement(_tmpl$8);
|
|
941
|
+
insert(_el$31, scope(() => {
|
|
942
|
+
return local.renderEmptyState();
|
|
943
|
+
}));
|
|
944
|
+
return _el$31;
|
|
945
|
+
})() : null;
|
|
946
|
+
};
|
|
947
|
+
})()), _el$26, _el$27);
|
|
948
|
+
insert(_el$21, createComponent(Show, {
|
|
949
|
+
get when() {
|
|
950
|
+
return local.onLoadMore;
|
|
750
951
|
},
|
|
751
952
|
get children() {
|
|
752
|
-
return createComponent(
|
|
753
|
-
get
|
|
754
|
-
return
|
|
953
|
+
return createComponent(ListBoxLoadMoreItem, {
|
|
954
|
+
get onLoadMore() {
|
|
955
|
+
return local.onLoadMore;
|
|
755
956
|
},
|
|
756
|
-
|
|
957
|
+
get isLoading() {
|
|
958
|
+
return local.isLoading;
|
|
959
|
+
},
|
|
960
|
+
get "class"() {
|
|
961
|
+
return local.loadMoreClass;
|
|
962
|
+
},
|
|
963
|
+
get children() {
|
|
964
|
+
return local.renderLoadMore?.();
|
|
965
|
+
}
|
|
757
966
|
});
|
|
758
967
|
}
|
|
759
|
-
});
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
},
|
|
765
|
-
get children() {
|
|
766
|
-
return createComponent(ListBoxLoadMoreItem, {
|
|
767
|
-
get onLoadMore() {
|
|
768
|
-
return local.onLoadMore;
|
|
769
|
-
},
|
|
770
|
-
get isLoading() {
|
|
771
|
-
return local.isLoading;
|
|
772
|
-
},
|
|
773
|
-
get ["class"]() {
|
|
774
|
-
return local.loadMoreClass;
|
|
775
|
-
},
|
|
776
|
-
get children() {
|
|
777
|
-
return local.renderLoadMore?.();
|
|
778
|
-
}
|
|
779
|
-
});
|
|
780
|
-
}
|
|
781
|
-
}), _el$21, _co$6);
|
|
782
|
-
runHydrationEvents();
|
|
783
|
-
return _el$17;
|
|
784
|
-
})();
|
|
968
|
+
}), _el$29, _el$30);
|
|
969
|
+
runHydrationEvents();
|
|
970
|
+
return _el$21;
|
|
971
|
+
}
|
|
972
|
+
});
|
|
785
973
|
return createComponent(Show, {
|
|
786
974
|
get when() {
|
|
787
975
|
return isOpen();
|
|
@@ -824,18 +1012,26 @@ function SelectOption(props) {
|
|
|
824
1012
|
if (!context) throw new Error("SelectOption must be used within a Select");
|
|
825
1013
|
const state = context;
|
|
826
1014
|
const selectContext = useContext(SelectContext);
|
|
827
|
-
const [ref, setRefSignal] = createSignal(null);
|
|
1015
|
+
const [ref$1, setRefSignal] = createSignal(null);
|
|
828
1016
|
const setRef = (el) => {
|
|
829
1017
|
setRefSignal(el);
|
|
830
|
-
assignRef(local.ref, el);
|
|
1018
|
+
assignRef$1(local.ref, el);
|
|
831
1019
|
};
|
|
1020
|
+
const parentCollectionRenderer = useCollectionRenderer();
|
|
1021
|
+
const isInPopover = useContext(SelectListBoxInPopoverContext);
|
|
832
1022
|
const optionAria = createOption({
|
|
833
1023
|
key: local.id,
|
|
1024
|
+
get focus() {
|
|
1025
|
+
return ariaProps.focus ?? (isInPopover ? noopOptionFocus : void 0);
|
|
1026
|
+
},
|
|
1027
|
+
get isVirtualized() {
|
|
1028
|
+
return parentCollectionRenderer?.isVirtualized;
|
|
1029
|
+
},
|
|
834
1030
|
get isDisabled() {
|
|
835
1031
|
return Boolean(ariaProps.isDisabled || selectContext?.isDisabled());
|
|
836
1032
|
},
|
|
837
1033
|
get "aria-label"() {
|
|
838
|
-
return ariaProps["aria-label"]
|
|
1034
|
+
return ariaProps["aria-label"];
|
|
839
1035
|
},
|
|
840
1036
|
shouldSelectOnPressUp: true,
|
|
841
1037
|
shouldFocusOnHover: true,
|
|
@@ -854,7 +1050,7 @@ function SelectOption(props) {
|
|
|
854
1050
|
if (state.selectionMode() === "multiple") {
|
|
855
1051
|
const keys = state.selectedKeys();
|
|
856
1052
|
if (keys === "all") return;
|
|
857
|
-
state.setSelectedKeys(new Set([...keys, key]));
|
|
1053
|
+
state.setSelectedKeys(/* @__PURE__ */ new Set([...keys, key]));
|
|
858
1054
|
return;
|
|
859
1055
|
}
|
|
860
1056
|
state.setSelectedKey(key);
|
|
@@ -877,8 +1073,8 @@ function SelectOption(props) {
|
|
|
877
1073
|
state.setSelectedKey(key);
|
|
878
1074
|
if (state.selectionMode() !== "multiple") state.close();
|
|
879
1075
|
}
|
|
880
|
-
}, () => ref());
|
|
881
|
-
const isOptionFocusVisible = () => optionAria.
|
|
1076
|
+
}, () => ref$1());
|
|
1077
|
+
const isOptionFocusVisible = () => optionAria.isFocusVisible();
|
|
882
1078
|
const renderValues = createMemo(() => ({
|
|
883
1079
|
isSelected: optionAria.isSelected(),
|
|
884
1080
|
isFocused: optionAria.isFocused(),
|
|
@@ -895,13 +1091,9 @@ function SelectOption(props) {
|
|
|
895
1091
|
style: local.style,
|
|
896
1092
|
defaultClassName: "solidaria-Select-option"
|
|
897
1093
|
}, renderValues);
|
|
898
|
-
const hasPrimitiveLabel = () => {
|
|
899
|
-
return typeof props.children === "string" || typeof props.children === "number";
|
|
900
|
-
};
|
|
901
1094
|
const selectionIndicatorContext = createMemo(() => ({ isSelected: optionAria.isSelected }));
|
|
902
1095
|
const cleanOptionProps = () => {
|
|
903
|
-
const { ref: _ref1,
|
|
904
|
-
if (!hasPrimitiveLabel() && rest["aria-label"] == null) delete rest["aria-labelledby"];
|
|
1096
|
+
const { ref: _ref1, ...rest } = optionAria.optionProps;
|
|
905
1097
|
const onClick = rest.onClick;
|
|
906
1098
|
rest.onClick = ((event) => {
|
|
907
1099
|
const wasSelected = optionAria.isSelected();
|
|
@@ -913,6 +1105,32 @@ function SelectOption(props) {
|
|
|
913
1105
|
});
|
|
914
1106
|
return rest;
|
|
915
1107
|
};
|
|
1108
|
+
const optionTextSlots = { slots: {
|
|
1109
|
+
get [DEFAULT_SLOT]() {
|
|
1110
|
+
return optionAria.labelProps;
|
|
1111
|
+
},
|
|
1112
|
+
get label() {
|
|
1113
|
+
return optionAria.labelProps;
|
|
1114
|
+
},
|
|
1115
|
+
get description() {
|
|
1116
|
+
return optionAria.descriptionProps;
|
|
1117
|
+
}
|
|
1118
|
+
} };
|
|
1119
|
+
createRenderEffect(() => ({
|
|
1120
|
+
el: ref$1(),
|
|
1121
|
+
labelId: optionAria.labelProps.id,
|
|
1122
|
+
descriptionId: optionAria.descriptionProps.id
|
|
1123
|
+
}), ({ el, labelId, descriptionId }) => {
|
|
1124
|
+
if (!el) return;
|
|
1125
|
+
if (labelId) {
|
|
1126
|
+
const label = el.querySelector("[slot='label']");
|
|
1127
|
+
if (label && !label.id) label.id = labelId;
|
|
1128
|
+
}
|
|
1129
|
+
if (descriptionId) {
|
|
1130
|
+
const description = el.querySelector("[slot='description']");
|
|
1131
|
+
if (description && !description.id) description.id = descriptionId;
|
|
1132
|
+
}
|
|
1133
|
+
});
|
|
916
1134
|
const selectOption = () => {
|
|
917
1135
|
if (optionAria.isDisabled()) return;
|
|
918
1136
|
if (state.selectionMode() === "multiple") {
|
|
@@ -927,63 +1145,62 @@ function SelectOption(props) {
|
|
|
927
1145
|
state.setSelectedKey(local.id);
|
|
928
1146
|
state.close();
|
|
929
1147
|
};
|
|
930
|
-
return createComponent(SelectionIndicatorContext
|
|
1148
|
+
return createComponent(SelectionIndicatorContext, {
|
|
931
1149
|
get value() {
|
|
932
1150
|
return selectionIndicatorContext();
|
|
933
1151
|
},
|
|
934
1152
|
get children() {
|
|
935
|
-
var _el$
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
1153
|
+
var _el$32 = getNextElement(_tmpl$5);
|
|
1154
|
+
ref(() => {
|
|
1155
|
+
return setRef;
|
|
1156
|
+
}, _el$32);
|
|
1157
|
+
spread(_el$32, [cleanOptionProps, {
|
|
1158
|
+
get "class"() {
|
|
939
1159
|
return renderProps.class();
|
|
940
1160
|
},
|
|
941
1161
|
get style() {
|
|
942
1162
|
return renderProps.style();
|
|
943
1163
|
},
|
|
944
|
-
get
|
|
945
|
-
return optionAria.isSelected()
|
|
1164
|
+
get "data-selected"() {
|
|
1165
|
+
return dataAttr(optionAria.isSelected());
|
|
1166
|
+
},
|
|
1167
|
+
get "data-focused"() {
|
|
1168
|
+
return dataAttr(optionAria.isFocused());
|
|
946
1169
|
},
|
|
947
|
-
get
|
|
948
|
-
return
|
|
1170
|
+
get "data-focus-visible"() {
|
|
1171
|
+
return dataAttr(isOptionFocusVisible());
|
|
949
1172
|
},
|
|
950
|
-
get
|
|
951
|
-
return
|
|
1173
|
+
get "data-pressed"() {
|
|
1174
|
+
return dataAttr(optionAria.isPressed());
|
|
952
1175
|
},
|
|
953
|
-
get
|
|
954
|
-
return optionAria.
|
|
1176
|
+
get "data-hovered"() {
|
|
1177
|
+
return dataAttr(optionAria.isHovered());
|
|
955
1178
|
},
|
|
956
|
-
get
|
|
957
|
-
return optionAria.
|
|
1179
|
+
get "data-disabled"() {
|
|
1180
|
+
return dataAttr(optionAria.isDisabled());
|
|
958
1181
|
},
|
|
959
|
-
get
|
|
960
|
-
return
|
|
1182
|
+
get "data-selection-mode"() {
|
|
1183
|
+
return state.selectionMode();
|
|
961
1184
|
}
|
|
962
|
-
}
|
|
963
|
-
insert(_el$
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
1185
|
+
}], true);
|
|
1186
|
+
insert(_el$32, createComponent(Provider, {
|
|
1187
|
+
values: [[TextContext, optionTextSlots]],
|
|
1188
|
+
get children() {
|
|
1189
|
+
return createComponent(OptionContent, {
|
|
1190
|
+
get render() {
|
|
1191
|
+
return renderProps.renderChildrenStable;
|
|
1192
|
+
},
|
|
1193
|
+
get labelProps() {
|
|
1194
|
+
return optionAria.labelProps;
|
|
1195
|
+
}
|
|
1196
|
+
});
|
|
1197
|
+
}
|
|
1198
|
+
}));
|
|
973
1199
|
runHydrationEvents();
|
|
974
|
-
return _el$
|
|
1200
|
+
return _el$32;
|
|
975
1201
|
}
|
|
976
1202
|
});
|
|
977
1203
|
}
|
|
978
|
-
function isObjectRecord(value) {
|
|
979
|
-
return typeof value === "object" && value !== null;
|
|
980
|
-
}
|
|
981
|
-
function toKey(value) {
|
|
982
|
-
if (typeof value === "string" || typeof value === "number") return value;
|
|
983
|
-
}
|
|
984
|
-
function toTextValue(value) {
|
|
985
|
-
if (typeof value === "string" || typeof value === "number") return String(value);
|
|
986
|
-
}
|
|
987
1204
|
function createSelectListStateAdapter(state) {
|
|
988
1205
|
const selectedKeys = createMemo(() => {
|
|
989
1206
|
const keys = state.selectedKeys();
|
|
@@ -1002,9 +1219,9 @@ function createSelectListStateAdapter(state) {
|
|
|
1002
1219
|
focusedKey: state.focusedKey,
|
|
1003
1220
|
setFocusedKey: (key) => state.setFocusedKey(key ?? null),
|
|
1004
1221
|
childFocusStrategy: () => null,
|
|
1005
|
-
selectionMode: () => state.selectionMode
|
|
1006
|
-
selectionBehavior: () =>
|
|
1007
|
-
disallowEmptySelection: () =>
|
|
1222
|
+
selectionMode: () => state.selectionManager.selectionMode,
|
|
1223
|
+
selectionBehavior: () => state.selectionManager.selectionBehavior,
|
|
1224
|
+
disallowEmptySelection: () => state.selectionManager.disallowEmptySelection,
|
|
1008
1225
|
selectedKeys,
|
|
1009
1226
|
disabledKeys,
|
|
1010
1227
|
disabledBehavior: () => "all",
|
|
@@ -1012,26 +1229,15 @@ function createSelectListStateAdapter(state) {
|
|
|
1012
1229
|
isSelectAll: () => state.selectedKeys() === "all",
|
|
1013
1230
|
isSelected: (key) => selectedKeys().has(key),
|
|
1014
1231
|
isDisabled: state.isKeyDisabled,
|
|
1015
|
-
setSelectionBehavior: () =>
|
|
1016
|
-
toggleSelection: (key) =>
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
if (next.has(key)) next.delete(key);
|
|
1025
|
-
else next.add(key);
|
|
1026
|
-
state.setSelectedKeys(next);
|
|
1027
|
-
},
|
|
1028
|
-
replaceSelection: (key) => state.setSelectedKey(key),
|
|
1029
|
-
setSelectedKeys: (keys) => state.setSelectedKeys(keys),
|
|
1030
|
-
selectAll: () => {},
|
|
1031
|
-
clearSelection: () => state.selectionMode() === "multiple" ? state.setSelectedKeys([]) : state.setSelectedKey(null),
|
|
1032
|
-
toggleSelectAll: () => {},
|
|
1033
|
-
extendSelection: (toKey) => state.setSelectedKey(toKey),
|
|
1034
|
-
select: (key) => state.selectionMode() === "multiple" ? state.setSelectedKeys([...state.selectedKeys() === "all" ? [] : state.selectedKeys(), key]) : state.setSelectedKey(key)
|
|
1232
|
+
setSelectionBehavior: (behavior) => state.selectionManager.setSelectionBehavior(behavior),
|
|
1233
|
+
toggleSelection: (key) => state.selectionManager.toggleSelection(key),
|
|
1234
|
+
replaceSelection: (key) => state.selectionManager.replaceSelection(key),
|
|
1235
|
+
setSelectedKeys: (keys) => state.selectionManager.setSelectedKeys(keys),
|
|
1236
|
+
selectAll: () => state.selectionManager.selectAll(),
|
|
1237
|
+
clearSelection: () => state.selectionManager.clearSelection(),
|
|
1238
|
+
toggleSelectAll: () => state.selectionManager.toggleSelectAll(),
|
|
1239
|
+
extendSelection: (toKey) => state.selectionManager.extendSelection(toKey),
|
|
1240
|
+
select: (key, event) => state.selectionManager.select(key, event)
|
|
1035
1241
|
};
|
|
1036
1242
|
}
|
|
1037
1243
|
Select.Trigger = SelectTrigger;
|