@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/Pressable.d.ts
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Pressable component for solidaria-components
|
|
3
|
-
*
|
|
4
|
-
* A render-prop component that wraps createPress + createFocusable
|
|
5
|
-
* to make an element pressable. Port of React Aria's Pressable.
|
|
6
|
-
*/
|
|
7
|
-
import { type JSX } from "solid-js";
|
|
1
|
+
import type { JSX } from "@solidjs/web";
|
|
8
2
|
import { type CreatePressProps } from "@proyecto-viviana/solidaria";
|
|
9
3
|
export interface PressableProps extends CreatePressProps {
|
|
10
4
|
/** A single child element to make pressable. */
|
|
@@ -19,7 +13,7 @@ export interface PressableProps extends CreatePressProps {
|
|
|
19
13
|
* @example
|
|
20
14
|
* ```tsx
|
|
21
15
|
* <Pressable onPress={() => console.log('pressed')}>
|
|
22
|
-
* <div role="button"
|
|
16
|
+
* <div role="button" tabindex={0}>Click me</div>
|
|
23
17
|
* </Pressable>
|
|
24
18
|
* ```
|
|
25
19
|
*/
|
package/dist/Pressable.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pressable.d.ts","sourceRoot":"","sources":["../src/Pressable.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Pressable.d.ts","sourceRoot":"","sources":["../src/Pressable.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,6BAA6B,CAAC;AAErC,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD,gDAAgD;IAChD,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,oBAAoB;IACpB,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC,CAAC;CACjD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CA0E5D"}
|
package/dist/Pressable.js
CHANGED
|
@@ -1,12 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/interactions/Pressable.tsx
|
|
13
|
+
import { memo } from "@solidjs/web";
|
|
14
|
+
import { children, createTrackedEffect } from "solid-js";
|
|
3
15
|
import { createFocusable, createPress } from "@proyecto-viviana/solidaria";
|
|
16
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
4
17
|
//#region src/Pressable.tsx
|
|
5
18
|
/**
|
|
6
19
|
* Pressable component for solidaria-components
|
|
7
20
|
*
|
|
8
21
|
* A render-prop component that wraps createPress + createFocusable
|
|
9
|
-
* to make an element pressable.
|
|
22
|
+
* to make an element pressable.
|
|
10
23
|
*/
|
|
11
24
|
/**
|
|
12
25
|
* Makes its child element pressable and focusable.
|
|
@@ -15,7 +28,7 @@ import { createFocusable, createPress } from "@proyecto-viviana/solidaria";
|
|
|
15
28
|
* @example
|
|
16
29
|
* ```tsx
|
|
17
30
|
* <Pressable onPress={() => console.log('pressed')}>
|
|
18
|
-
* <div role="button"
|
|
31
|
+
* <div role="button" tabindex={0}>Click me</div>
|
|
19
32
|
* </Pressable>
|
|
20
33
|
* ```
|
|
21
34
|
*/
|
|
@@ -25,7 +38,8 @@ function Pressable(props) {
|
|
|
25
38
|
const { pressProps: domPressProps } = createPress(pressProps);
|
|
26
39
|
const { focusableProps: domFocusableProps } = createFocusable(pressProps, () => ref);
|
|
27
40
|
const resolved = children(() => local.children);
|
|
28
|
-
|
|
41
|
+
createTrackedEffect(() => {
|
|
42
|
+
const _s2Cleanups = [];
|
|
29
43
|
const child = resolved();
|
|
30
44
|
if (child instanceof HTMLElement) {
|
|
31
45
|
ref = child;
|
|
@@ -56,10 +70,13 @@ function Pressable(props) {
|
|
|
56
70
|
else child.setAttribute(key, String(value));
|
|
57
71
|
}
|
|
58
72
|
}
|
|
59
|
-
|
|
73
|
+
_s2Cleanups.push(() => {
|
|
60
74
|
for (const [eventName, listener] of listeners) child.removeEventListener(eventName, listener);
|
|
61
75
|
});
|
|
62
76
|
}
|
|
77
|
+
return () => {
|
|
78
|
+
for (const c of _s2Cleanups) c();
|
|
79
|
+
};
|
|
63
80
|
});
|
|
64
81
|
return memo(resolved);
|
|
65
82
|
}
|
package/dist/Pressable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pressable.js","names":["
|
|
1
|
+
{"version":3,"file":"Pressable.js","names":["{resolved()}"],"sources":["../src/Pressable.tsx"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/interactions/Pressable.tsx\n\n/**\n * Pressable component for solidaria-components\n *\n * A render-prop component that wraps createPress + createFocusable\n * to make an element pressable.\n */\n\nimport {\n children as resolveChildren,\n createEffect,\n onCleanup,\n createTrackedEffect,\n} from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport { splitProps } from \"@proyecto-viviana/solidaria/utils\";\nimport {\n createPress,\n createFocusable,\n type CreatePressProps,\n type CreateFocusableProps,\n} from \"@proyecto-viviana/solidaria\";\n\nexport interface PressableProps extends CreatePressProps {\n /** A single child element to make pressable. */\n children: JSX.Element;\n /** Ref callback. */\n ref?: HTMLElement | ((el: HTMLElement) => void);\n}\n\n/**\n * Makes its child element pressable and focusable.\n * Combines createPress and createFocusable for full interaction support.\n *\n * @example\n * ```tsx\n * <Pressable onPress={() => console.log('pressed')}>\n * <div role=\"button\" tabindex={0}>Click me</div>\n * </Pressable>\n * ```\n */\nexport function Pressable(props: PressableProps): JSX.Element {\n const [local, pressProps] = splitProps(props, [\"children\", \"ref\"]);\n\n let ref!: HTMLElement;\n const { pressProps: domPressProps } = createPress(pressProps);\n const { focusableProps: domFocusableProps } = createFocusable(\n pressProps as CreateFocusableProps,\n () => ref,\n );\n\n const resolved = resolveChildren(() => local.children);\n\n createTrackedEffect(() => {\n const _s2Cleanups: Array<() => void> = [];\n\n const child = resolved() as HTMLElement;\n if (child instanceof HTMLElement) {\n ref = child;\n if (typeof local.ref === \"function\") {\n local.ref(child);\n }\n\n // Apply press props\n const allProps = { ...domFocusableProps, ...domPressProps };\n const listeners: Array<[string, EventListener]> = [];\n for (const [key, handler] of Object.entries(allProps)) {\n if (key.startsWith(\"on\") && typeof handler === \"function\") {\n const eventName = key.slice(2).toLowerCase();\n const listener = handler as EventListener;\n child.addEventListener(eventName, listener);\n listeners.push([eventName, listener]);\n }\n }\n\n // Apply non-event press/focusable props (e.g. tabIndex/data attrs).\n // Keep explicit child tabIndex to mirror mergeProps(child.props precedence).\n for (const [key, value] of Object.entries(allProps)) {\n if (key === \"ref\" || (key.startsWith(\"on\") && typeof value === \"function\")) continue;\n\n if (key === \"tabIndex\") {\n if (child.hasAttribute(\"tabindex\")) continue;\n if (value == null || value === false) {\n child.removeAttribute(\"tabindex\");\n } else {\n child.tabIndex = Number(value);\n }\n continue;\n }\n\n if (key.startsWith(\"aria-\") || key.startsWith(\"data-\") || key === \"id\" || key === \"role\") {\n if (child.hasAttribute(key)) continue;\n if (value == null || value === false) {\n child.removeAttribute(key);\n } else if (value === true) {\n child.setAttribute(key, \"\");\n } else {\n child.setAttribute(key, String(value));\n }\n }\n }\n\n _s2Cleanups.push(() => {\n for (const [eventName, listener] of listeners) {\n child.removeEventListener(eventName, listener);\n }\n });\n }\n\n return () => {\n for (const c of _s2Cleanups) c();\n };\n });\n\n return <>{resolved()}</>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,SAAgB,UAAU,OAAoC;CAC5D,MAAM,CAAC,OAAO,cAAc,WAAW,OAAO,CAAC,YAAY,KAAK,CAAC;CAEjE,IAAI;CACJ,MAAM,EAAE,YAAY,kBAAkB,YAAY,UAAU;CAC5D,MAAM,EAAE,gBAAgB,sBAAsB,gBAC5C,kBACM,GACR;CAEA,MAAM,WAAW,eAAsB,MAAM,QAAQ;CAErD,0BAA0B;EACxB,MAAM,cAAiC,CAAC;EAExC,MAAM,QAAQ,SAAS;EACvB,IAAI,iBAAiB,aAAa;GAChC,MAAM;GACN,IAAI,OAAO,MAAM,QAAQ,YACvB,MAAM,IAAI,KAAK;GAIjB,MAAM,WAAW;IAAE,GAAG;IAAmB,GAAG;GAAc;GAC1D,MAAM,YAA4C,CAAC;GACnD,KAAK,MAAM,CAAC,KAAK,YAAY,OAAO,QAAQ,QAAQ,GAClD,IAAI,IAAI,WAAW,IAAI,KAAK,OAAO,YAAY,YAAY;IACzD,MAAM,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,YAAY;IAC3C,MAAM,WAAW;IACjB,MAAM,iBAAiB,WAAW,QAAQ;IAC1C,UAAU,KAAK,CAAC,WAAW,QAAQ,CAAC;GACtC;GAKF,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,QAAQ,GAAG;IACnD,IAAI,QAAQ,SAAU,IAAI,WAAW,IAAI,KAAK,OAAO,UAAU,YAAa;IAE5E,IAAI,QAAQ,YAAY;KACtB,IAAI,MAAM,aAAa,UAAU,GAAG;KACpC,IAAI,SAAS,QAAQ,UAAU,OAC7B,MAAM,gBAAgB,UAAU;UAEhC,MAAM,WAAW,OAAO,KAAK;KAE/B;IACF;IAEA,IAAI,IAAI,WAAW,OAAO,KAAK,IAAI,WAAW,OAAO,KAAK,QAAQ,QAAQ,QAAQ,QAAQ;KACxF,IAAI,MAAM,aAAa,GAAG,GAAG;KAC7B,IAAI,SAAS,QAAQ,UAAU,OAC7B,MAAM,gBAAgB,GAAG;UACpB,IAAI,UAAU,MACnB,MAAM,aAAa,KAAK,EAAE;UAE1B,MAAM,aAAa,KAAK,OAAO,KAAK,CAAC;IAEzC;GACF;GAEA,YAAY,WAAW;IACrB,KAAK,MAAM,CAAC,WAAW,aAAa,WAClC,MAAM,oBAAoB,WAAW,QAAQ;GAEjD,CAAC;EACH;EAEA,aAAa;GACX,KAAK,MAAM,KAAK,aAAa,EAAE;EACjC;CACF,CAAC;CAED,OAASA,KAAC,QAAU;AACtB"}
|
package/dist/Pressable.jsx
CHANGED
|
@@ -1,11 +1,24 @@
|
|
|
1
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/interactions/Pressable.tsx
|
|
13
|
+
import { children, createTrackedEffect } from "solid-js";
|
|
2
14
|
import { createFocusable, createPress } from "@proyecto-viviana/solidaria";
|
|
15
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
3
16
|
//#region src/Pressable.tsx
|
|
4
17
|
/**
|
|
5
18
|
* Pressable component for solidaria-components
|
|
6
19
|
*
|
|
7
20
|
* A render-prop component that wraps createPress + createFocusable
|
|
8
|
-
* to make an element pressable.
|
|
21
|
+
* to make an element pressable.
|
|
9
22
|
*/
|
|
10
23
|
/**
|
|
11
24
|
* Makes its child element pressable and focusable.
|
|
@@ -14,7 +27,7 @@ import { createFocusable, createPress } from "@proyecto-viviana/solidaria";
|
|
|
14
27
|
* @example
|
|
15
28
|
* ```tsx
|
|
16
29
|
* <Pressable onPress={() => console.log('pressed')}>
|
|
17
|
-
* <div role="button"
|
|
30
|
+
* <div role="button" tabindex={0}>Click me</div>
|
|
18
31
|
* </Pressable>
|
|
19
32
|
* ```
|
|
20
33
|
*/
|
|
@@ -24,7 +37,8 @@ function Pressable(props) {
|
|
|
24
37
|
const { pressProps: domPressProps } = createPress(pressProps);
|
|
25
38
|
const { focusableProps: domFocusableProps } = createFocusable(pressProps, () => ref);
|
|
26
39
|
const resolved = children(() => local.children);
|
|
27
|
-
|
|
40
|
+
createTrackedEffect(() => {
|
|
41
|
+
const _s2Cleanups = [];
|
|
28
42
|
const child = resolved();
|
|
29
43
|
if (child instanceof HTMLElement) {
|
|
30
44
|
ref = child;
|
|
@@ -55,10 +69,13 @@ function Pressable(props) {
|
|
|
55
69
|
else child.setAttribute(key, String(value));
|
|
56
70
|
}
|
|
57
71
|
}
|
|
58
|
-
|
|
72
|
+
_s2Cleanups.push(() => {
|
|
59
73
|
for (const [eventName, listener] of listeners) child.removeEventListener(eventName, listener);
|
|
60
74
|
});
|
|
61
75
|
}
|
|
76
|
+
return () => {
|
|
77
|
+
for (const c of _s2Cleanups) c();
|
|
78
|
+
};
|
|
62
79
|
});
|
|
63
80
|
return <>{resolved()}</>;
|
|
64
81
|
}
|
package/dist/Pressable.jsx.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pressable.jsx","names":["resolveChildren"],"sources":["../src/Pressable.tsx"],"sourcesContent":["/**\n * Pressable component for solidaria-components\n *\n * A render-prop component that wraps createPress + createFocusable\n * to make an element pressable
|
|
1
|
+
{"version":3,"file":"Pressable.jsx","names":["resolveChildren"],"sources":["../src/Pressable.tsx"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/interactions/Pressable.tsx\n\n/**\n * Pressable component for solidaria-components\n *\n * A render-prop component that wraps createPress + createFocusable\n * to make an element pressable.\n */\n\nimport {\n children as resolveChildren,\n createEffect,\n onCleanup,\n createTrackedEffect,\n} from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport { splitProps } from \"@proyecto-viviana/solidaria/utils\";\nimport {\n createPress,\n createFocusable,\n type CreatePressProps,\n type CreateFocusableProps,\n} from \"@proyecto-viviana/solidaria\";\n\nexport interface PressableProps extends CreatePressProps {\n /** A single child element to make pressable. */\n children: JSX.Element;\n /** Ref callback. */\n ref?: HTMLElement | ((el: HTMLElement) => void);\n}\n\n/**\n * Makes its child element pressable and focusable.\n * Combines createPress and createFocusable for full interaction support.\n *\n * @example\n * ```tsx\n * <Pressable onPress={() => console.log('pressed')}>\n * <div role=\"button\" tabindex={0}>Click me</div>\n * </Pressable>\n * ```\n */\nexport function Pressable(props: PressableProps): JSX.Element {\n const [local, pressProps] = splitProps(props, [\"children\", \"ref\"]);\n\n let ref!: HTMLElement;\n const { pressProps: domPressProps } = createPress(pressProps);\n const { focusableProps: domFocusableProps } = createFocusable(\n pressProps as CreateFocusableProps,\n () => ref,\n );\n\n const resolved = resolveChildren(() => local.children);\n\n createTrackedEffect(() => {\n const _s2Cleanups: Array<() => void> = [];\n\n const child = resolved() as HTMLElement;\n if (child instanceof HTMLElement) {\n ref = child;\n if (typeof local.ref === \"function\") {\n local.ref(child);\n }\n\n // Apply press props\n const allProps = { ...domFocusableProps, ...domPressProps };\n const listeners: Array<[string, EventListener]> = [];\n for (const [key, handler] of Object.entries(allProps)) {\n if (key.startsWith(\"on\") && typeof handler === \"function\") {\n const eventName = key.slice(2).toLowerCase();\n const listener = handler as EventListener;\n child.addEventListener(eventName, listener);\n listeners.push([eventName, listener]);\n }\n }\n\n // Apply non-event press/focusable props (e.g. tabIndex/data attrs).\n // Keep explicit child tabIndex to mirror mergeProps(child.props precedence).\n for (const [key, value] of Object.entries(allProps)) {\n if (key === \"ref\" || (key.startsWith(\"on\") && typeof value === \"function\")) continue;\n\n if (key === \"tabIndex\") {\n if (child.hasAttribute(\"tabindex\")) continue;\n if (value == null || value === false) {\n child.removeAttribute(\"tabindex\");\n } else {\n child.tabIndex = Number(value);\n }\n continue;\n }\n\n if (key.startsWith(\"aria-\") || key.startsWith(\"data-\") || key === \"id\" || key === \"role\") {\n if (child.hasAttribute(key)) continue;\n if (value == null || value === false) {\n child.removeAttribute(key);\n } else if (value === true) {\n child.setAttribute(key, \"\");\n } else {\n child.setAttribute(key, String(value));\n }\n }\n }\n\n _s2Cleanups.push(() => {\n for (const [eventName, listener] of listeners) {\n child.removeEventListener(eventName, listener);\n }\n });\n }\n\n return () => {\n for (const c of _s2Cleanups) c();\n };\n });\n\n return <>{resolved()}</>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,SAAgB,UAAU,OAAoC;CAC5D,MAAM,CAAC,OAAO,cAAc,WAAW,OAAO,CAAC,YAAY,KAAK,CAAC;CAEjE,IAAI;CACJ,MAAM,EAAE,YAAY,kBAAkB,YAAY,UAAU;CAC5D,MAAM,EAAE,gBAAgB,sBAAsB,gBAC5C,kBACM,GACR;CAEA,MAAM,WAAWA,eAAsB,MAAM,QAAQ;CAErD,0BAA0B;EACxB,MAAM,cAAiC,CAAC;EAExC,MAAM,QAAQ,SAAS;EACvB,IAAI,iBAAiB,aAAa;GAChC,MAAM;GACN,IAAI,OAAO,MAAM,QAAQ,YACvB,MAAM,IAAI,KAAK;GAIjB,MAAM,WAAW;IAAE,GAAG;IAAmB,GAAG;GAAc;GAC1D,MAAM,YAA4C,CAAC;GACnD,KAAK,MAAM,CAAC,KAAK,YAAY,OAAO,QAAQ,QAAQ,GAClD,IAAI,IAAI,WAAW,IAAI,KAAK,OAAO,YAAY,YAAY;IACzD,MAAM,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,YAAY;IAC3C,MAAM,WAAW;IACjB,MAAM,iBAAiB,WAAW,QAAQ;IAC1C,UAAU,KAAK,CAAC,WAAW,QAAQ,CAAC;GACtC;GAKF,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,QAAQ,GAAG;IACnD,IAAI,QAAQ,SAAU,IAAI,WAAW,IAAI,KAAK,OAAO,UAAU,YAAa;IAE5E,IAAI,QAAQ,YAAY;KACtB,IAAI,MAAM,aAAa,UAAU,GAAG;KACpC,IAAI,SAAS,QAAQ,UAAU,OAC7B,MAAM,gBAAgB,UAAU;UAEhC,MAAM,WAAW,OAAO,KAAK;KAE/B;IACF;IAEA,IAAI,IAAI,WAAW,OAAO,KAAK,IAAI,WAAW,OAAO,KAAK,QAAQ,QAAQ,QAAQ,QAAQ;KACxF,IAAI,MAAM,aAAa,GAAG,GAAG;KAC7B,IAAI,SAAS,QAAQ,UAAU,OAC7B,MAAM,gBAAgB,GAAG;UACpB,IAAI,UAAU,MACnB,MAAM,aAAa,KAAK,EAAE;UAE1B,MAAM,aAAa,KAAK,OAAO,KAAK,CAAC;IAEzC;GACF;GAEA,YAAY,WAAW;IACrB,KAAK,MAAM,CAAC,WAAW,aAAa,WAClC,MAAM,oBAAoB,WAAW,QAAQ;GAEjD,CAAC;EACH;EAEA,aAAa;GACX,KAAK,MAAM,KAAK,aAAa,EAAE;EACjC;CACF,CAAC;CAED,OAAO,GAAG,SAAS,EAAE;AACvB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { JSX } from "@solidjs/web";
|
|
2
|
+
import { type AriaPreviewTriggerProps } from "@proyecto-viviana/solidaria";
|
|
3
|
+
export interface PreviewTriggerProps extends AriaPreviewTriggerProps {
|
|
4
|
+
/** The trigger and Popover that make up the preview trigger. */
|
|
5
|
+
children: JSX.Element;
|
|
6
|
+
/**
|
|
7
|
+
* The delay time in milliseconds before the preview opens.
|
|
8
|
+
*
|
|
9
|
+
* @default 600
|
|
10
|
+
*/
|
|
11
|
+
delay?: number;
|
|
12
|
+
/**
|
|
13
|
+
* The delay time in milliseconds before the preview closes.
|
|
14
|
+
*
|
|
15
|
+
* @default 200
|
|
16
|
+
*/
|
|
17
|
+
closeDelay?: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A PreviewTrigger displays a non-modal popover on hover, focus, or long press. Unlike a tooltip,
|
|
21
|
+
* the popover may contain interactive content.
|
|
22
|
+
*/
|
|
23
|
+
export declare function PreviewTrigger(props: PreviewTriggerProps): JSX.Element;
|
|
24
|
+
//# sourceMappingURL=PreviewTrigger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PreviewTrigger.d.ts","sourceRoot":"","sources":["../src/PreviewTrigger.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,6BAA6B,CAAC;AAUrC,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAClE,gEAAgE;IAChE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAkHtE"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 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/PreviewTrigger.tsx
|
|
13
|
+
import { Provider } from "./utils.js";
|
|
14
|
+
import { n as OverlayTriggerStateContext, r as PopoverTriggerContext } from "./contexts.js";
|
|
15
|
+
import { createComponent, mergeProps } from "@solidjs/web";
|
|
16
|
+
import { createSignal, createUniqueId } from "solid-js";
|
|
17
|
+
import { FocusableProvider, createPreviewTrigger } from "@proyecto-viviana/solidaria";
|
|
18
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
19
|
+
import { createTooltipTriggerState } from "@proyecto-viviana/solid-stately";
|
|
20
|
+
//#region src/PreviewTrigger.tsx
|
|
21
|
+
/**
|
|
22
|
+
* PreviewTrigger displays a non-modal popover on hover, focus, or long press.
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* A PreviewTrigger displays a non-modal popover on hover, focus, or long press. Unlike a tooltip,
|
|
26
|
+
* the popover may contain interactive content.
|
|
27
|
+
*/
|
|
28
|
+
function PreviewTrigger(props) {
|
|
29
|
+
const [local, rest] = splitProps(props, [
|
|
30
|
+
"children",
|
|
31
|
+
"delay",
|
|
32
|
+
"closeDelay"
|
|
33
|
+
]);
|
|
34
|
+
const state = createTooltipTriggerState({
|
|
35
|
+
get isOpen() {
|
|
36
|
+
return rest.isOpen;
|
|
37
|
+
},
|
|
38
|
+
get defaultOpen() {
|
|
39
|
+
return rest.defaultOpen;
|
|
40
|
+
},
|
|
41
|
+
onOpenChange: rest.onOpenChange,
|
|
42
|
+
get delay() {
|
|
43
|
+
return local.delay ?? 600;
|
|
44
|
+
},
|
|
45
|
+
get closeDelay() {
|
|
46
|
+
return local.closeDelay ?? 200;
|
|
47
|
+
},
|
|
48
|
+
get isDisabled() {
|
|
49
|
+
return rest.isDisabled;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
const [triggerEl, setTriggerRef] = createSignal(null, { ownedWrite: true });
|
|
53
|
+
const [popoverEl, setPopoverRef] = createSignal(null, { ownedWrite: true });
|
|
54
|
+
const triggerId = createUniqueId();
|
|
55
|
+
const aria = createPreviewTrigger({
|
|
56
|
+
get isOpen() {
|
|
57
|
+
return rest.isOpen;
|
|
58
|
+
},
|
|
59
|
+
get defaultOpen() {
|
|
60
|
+
return rest.defaultOpen;
|
|
61
|
+
},
|
|
62
|
+
get isDisabled() {
|
|
63
|
+
return rest.isDisabled;
|
|
64
|
+
},
|
|
65
|
+
onOpenChange: rest.onOpenChange,
|
|
66
|
+
triggerRef: () => triggerEl(),
|
|
67
|
+
popoverRef: () => popoverEl()
|
|
68
|
+
}, state);
|
|
69
|
+
const overlayState = {
|
|
70
|
+
get isOpen() {
|
|
71
|
+
return state.isOpen();
|
|
72
|
+
},
|
|
73
|
+
open: () => state.open(),
|
|
74
|
+
close: () => state.close(true),
|
|
75
|
+
toggle: () => state.isOpen() ? state.close(true) : state.open(),
|
|
76
|
+
setOpen: (isOpen) => {
|
|
77
|
+
if (isOpen) state.open();
|
|
78
|
+
else state.close(true);
|
|
79
|
+
},
|
|
80
|
+
get point() {
|
|
81
|
+
return null;
|
|
82
|
+
},
|
|
83
|
+
setPoint: () => {}
|
|
84
|
+
};
|
|
85
|
+
return createComponent(Provider, {
|
|
86
|
+
get values() {
|
|
87
|
+
return [[OverlayTriggerStateContext, overlayState], [PopoverTriggerContext, {
|
|
88
|
+
state: {
|
|
89
|
+
isOpen: () => state.isOpen(),
|
|
90
|
+
open: () => state.open(),
|
|
91
|
+
close: () => state.close(true),
|
|
92
|
+
toggle: () => state.isOpen() ? state.close(true) : state.open(),
|
|
93
|
+
setOpen: overlayState.setOpen,
|
|
94
|
+
point: () => overlayState.point,
|
|
95
|
+
setPoint: overlayState.setPoint
|
|
96
|
+
},
|
|
97
|
+
triggerRef: () => triggerEl(),
|
|
98
|
+
setTriggerRef: (el) => {
|
|
99
|
+
if (!el) return;
|
|
100
|
+
setTriggerRef((current) => {
|
|
101
|
+
if (current && current.isConnected) return current;
|
|
102
|
+
return el;
|
|
103
|
+
});
|
|
104
|
+
},
|
|
105
|
+
triggerId,
|
|
106
|
+
triggerProps: aria.triggerProps,
|
|
107
|
+
overlayProps: aria.popoverProps,
|
|
108
|
+
trigger: "PreviewTrigger",
|
|
109
|
+
setOverlayRef: (el) => setPopoverRef(el),
|
|
110
|
+
shouldSkipAnimation: () => state.shouldSkipAnimation()
|
|
111
|
+
}]];
|
|
112
|
+
},
|
|
113
|
+
get children() {
|
|
114
|
+
return createComponent(FocusableProvider, mergeProps(() => {
|
|
115
|
+
return aria.triggerProps;
|
|
116
|
+
}, {
|
|
117
|
+
ref: setTriggerRef,
|
|
118
|
+
get children() {
|
|
119
|
+
return local.children;
|
|
120
|
+
}
|
|
121
|
+
}));
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
//#endregion
|
|
126
|
+
export { PreviewTrigger };
|
|
127
|
+
|
|
128
|
+
//# sourceMappingURL=PreviewTrigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PreviewTrigger.js","names":["<Provider\n values={\n [\n [OverlayTriggerStateContext, overlayState],\n [\n PopoverTriggerContext,\n {\n state: {\n isOpen: () => state.isOpen(),\n open: () => state.open(),\n close: () => state.close(true),\n toggle: () => (state.isOpen() ? state.close(true) : state.open()),\n setOpen: overlayState.setOpen,\n point: () => overlayState.point,\n setPoint: overlayState.setPoint,\n },\n triggerRef: () => triggerEl(),\n setTriggerRef: (el: HTMLElement | null) => {\n if (!el) return;\n // First connected owner wins. A Button inside the preview would\n // otherwise steal the trigger ref (and the hover safe-area).\n setTriggerRef((current) => {\n if (current && current.isConnected) return current;\n return el;\n });\n },\n triggerId,\n triggerProps: aria.triggerProps as unknown as Record<string, unknown>,\n overlayProps: aria.popoverProps as unknown as Record<string, unknown>,\n trigger: \"PreviewTrigger\",\n setOverlayRef: (el: HTMLElement | null) => setPopoverRef(el),\n shouldSkipAnimation: () => state.shouldSkipAnimation(),\n },\n ],\n ] as Array<[Context<unknown>, unknown]>\n }\n >\n <FocusableProvider {...aria.triggerProps} ref={setTriggerRef}>\n {local.children}\n </FocusableProvider>\n </Provider>","<FocusableProvider {...aria.triggerProps} ref={setTriggerRef}>\n {local.children}\n </FocusableProvider>","ref={setTriggerRef}"],"sources":["../src/PreviewTrigger.tsx"],"sourcesContent":["/*\n * Copyright 2026 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/PreviewTrigger.tsx\n\n/**\n * PreviewTrigger displays a non-modal popover on hover, focus, or long press.\n */\n\nimport { createSignal, createUniqueId } from \"solid-js\";\nimport type { Context } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport {\n FocusableProvider,\n createPreviewTrigger,\n type AriaPreviewTriggerProps,\n} from \"@proyecto-viviana/solidaria\";\nimport { createTooltipTriggerState } from \"@proyecto-viviana/solid-stately\";\nimport {\n OverlayTriggerStateContext,\n PopoverTriggerContext,\n type OverlayTriggerState,\n} from \"./contexts\";\nimport { Provider } from \"./utils\";\nimport { splitProps } from \"@proyecto-viviana/solidaria/utils\";\n\nexport interface PreviewTriggerProps extends AriaPreviewTriggerProps {\n /** The trigger and Popover that make up the preview trigger. */\n children: JSX.Element;\n /**\n * The delay time in milliseconds before the preview opens.\n *\n * @default 600\n */\n delay?: number;\n /**\n * The delay time in milliseconds before the preview closes.\n *\n * @default 200\n */\n closeDelay?: number;\n}\n\n/**\n * A PreviewTrigger displays a non-modal popover on hover, focus, or long press. Unlike a tooltip,\n * the popover may contain interactive content.\n */\nexport function PreviewTrigger(props: PreviewTriggerProps): JSX.Element {\n // Keep children out of the hook object. Spreading `props` instantiates\n // them in this component's hydration context on SSR only.\n const [local, rest] = splitProps(props, [\"children\", \"delay\", \"closeDelay\"]);\n\n const state = createTooltipTriggerState({\n get isOpen() {\n return rest.isOpen;\n },\n get defaultOpen() {\n return rest.defaultOpen;\n },\n onOpenChange: rest.onOpenChange,\n get delay() {\n return local.delay ?? 600;\n },\n get closeDelay() {\n return local.closeDelay ?? 200;\n },\n get isDisabled() {\n return rest.isDisabled;\n },\n });\n\n const [triggerEl, setTriggerRef] = createSignal<HTMLElement | null>(null, {\n ownedWrite: true,\n });\n const [popoverEl, setPopoverRef] = createSignal<HTMLElement | null>(null, {\n ownedWrite: true,\n });\n const triggerId = createUniqueId();\n\n const aria = createPreviewTrigger(\n {\n get isOpen() {\n return rest.isOpen;\n },\n get defaultOpen() {\n return rest.defaultOpen;\n },\n get isDisabled() {\n return rest.isDisabled;\n },\n onOpenChange: rest.onOpenChange,\n triggerRef: () => triggerEl(),\n popoverRef: () => popoverEl(),\n },\n state,\n );\n\n // RAC PreviewTrigger adapts TooltipTriggerState to OverlayTriggerState\n // (`PreviewTrigger.tsx:56-67`): setOpen, point, setPoint. Solid-local\n // PopoverTriggerContext is the trigger-wiring counterpart of RAC's\n // PopoverContext (our PopoverContext is placement/arrow, a different type).\n const overlayState: OverlayTriggerState = {\n get isOpen() {\n return state.isOpen();\n },\n open: () => state.open(),\n close: () => state.close(true),\n toggle: () => (state.isOpen() ? state.close(true) : state.open()),\n setOpen: (isOpen) => {\n if (isOpen) state.open();\n else state.close(true);\n },\n get point() {\n return null;\n },\n setPoint: () => {},\n };\n\n return (\n <Provider\n values={\n [\n [OverlayTriggerStateContext, overlayState],\n [\n PopoverTriggerContext,\n {\n state: {\n isOpen: () => state.isOpen(),\n open: () => state.open(),\n close: () => state.close(true),\n toggle: () => (state.isOpen() ? state.close(true) : state.open()),\n setOpen: overlayState.setOpen,\n point: () => overlayState.point,\n setPoint: overlayState.setPoint,\n },\n triggerRef: () => triggerEl(),\n setTriggerRef: (el: HTMLElement | null) => {\n if (!el) return;\n // First connected owner wins. A Button inside the preview would\n // otherwise steal the trigger ref (and the hover safe-area).\n setTriggerRef((current) => {\n if (current && current.isConnected) return current;\n return el;\n });\n },\n triggerId,\n triggerProps: aria.triggerProps as unknown as Record<string, unknown>,\n overlayProps: aria.popoverProps as unknown as Record<string, unknown>,\n trigger: \"PreviewTrigger\",\n setOverlayRef: (el: HTMLElement | null) => setPopoverRef(el),\n shouldSkipAnimation: () => state.shouldSkipAnimation(),\n },\n ],\n ] as Array<[Context<unknown>, unknown]>\n }\n >\n <FocusableProvider {...aria.triggerProps} ref={setTriggerRef}>\n {local.children}\n </FocusableProvider>\n </Provider>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,SAAgB,eAAe,OAAyC;CAGtE,MAAM,CAAC,OAAO,QAAQ,WAAW,OAAO;EAAC;EAAY;EAAS;CAAY,CAAC;CAE3E,MAAM,QAAQ,0BAA0B;EACtC,IAAI,SAAS;GACX,OAAO,KAAK;EACd;EACA,IAAI,cAAc;GAChB,OAAO,KAAK;EACd;EACA,cAAc,KAAK;EACnB,IAAI,QAAQ;GACV,OAAO,MAAM,SAAS;EACxB;EACA,IAAI,aAAa;GACf,OAAO,MAAM,cAAc;EAC7B;EACA,IAAI,aAAa;GACf,OAAO,KAAK;EACd;CACF,CAAC;CAED,MAAM,CAAC,WAAW,iBAAiB,aAAiC,MAAM,EACxE,YAAY,KACd,CAAC;CACD,MAAM,CAAC,WAAW,iBAAiB,aAAiC,MAAM,EACxE,YAAY,KACd,CAAC;CACD,MAAM,YAAY,eAAe;CAEjC,MAAM,OAAO,qBACX;EACE,IAAI,SAAS;GACX,OAAO,KAAK;EACd;EACA,IAAI,cAAc;GAChB,OAAO,KAAK;EACd;EACA,IAAI,aAAa;GACf,OAAO,KAAK;EACd;EACA,cAAc,KAAK;EACnB,kBAAkB,UAAU;EAC5B,kBAAkB,UAAU;CAC9B,GACA,KACF;CAMA,MAAM,eAAoC;EACxC,IAAI,SAAS;GACX,OAAO,MAAM,OAAO;EACtB;EACA,YAAY,MAAM,KAAK;EACvB,aAAa,MAAM,MAAM,IAAI;EAC7B,cAAe,MAAM,OAAO,IAAI,MAAM,MAAM,IAAI,IAAI,MAAM,KAAK;EAC/D,UAAU,WAAW;GACnB,IAAI,QAAQ,MAAM,KAAK;QAClB,MAAM,MAAM,IAAI;EACvB;EACA,IAAI,QAAQ;GACV,OAAO;EACT;EACA,gBAAgB,CAAC;CACnB;CAEA,OACEA,gBAAAA,UAAAA;EACE,IAAA,SAAA;GACE,OAAA,CACE,CAAC,4BAA4B,YAAY,GACzC,CACE,uBACA;IACE,OAAO;KACL,cAAc,MAAM,OAAO;KAC3B,YAAY,MAAM,KAAK;KACvB,aAAa,MAAM,MAAM,IAAI;KAC7B,cAAe,MAAM,OAAO,IAAI,MAAM,MAAM,IAAI,IAAI,MAAM,KAAK;KAC/D,SAAS,aAAa;KACtB,aAAa,aAAa;KAC1B,UAAU,aAAa;IACzB;IACA,kBAAkB,UAAU;IAC5B,gBAAgB,OAA2B;KACzC,IAAI,CAAC,IAAI;KAGT,eAAe,YAAY;MACzB,IAAI,WAAW,QAAQ,aAAa,OAAO;MAC3C,OAAO;KACT,CAAC;IACH;IACA;IACA,cAAc,KAAK;IACnB,cAAc,KAAK;IACnB,SAAS;IACT,gBAAgB,OAA2B,cAAc,EAAE;IAC3D,2BAA2B,MAAM,oBAAoB;GACvD,CACF,CACF;EACF;EAnCF,IAAA,WAAA;GAqCEC,OAAAA,gBAAAA,mBAAAA,iBAAmB;IAAI,OAAA,KAAK;GAAY,GAAxC;IAA0CC,KAAK;IAA/C,IAAA,WAAA;KACG,OAAA,MAAM;IACU;;EACX;;AAEd"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 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/PreviewTrigger.tsx
|
|
13
|
+
import { Provider } from "./utils.jsx";
|
|
14
|
+
import { n as OverlayTriggerStateContext, r as PopoverTriggerContext } from "./contexts.jsx";
|
|
15
|
+
import { createSignal, createUniqueId } from "solid-js";
|
|
16
|
+
import { FocusableProvider, createPreviewTrigger } from "@proyecto-viviana/solidaria";
|
|
17
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
18
|
+
import { createTooltipTriggerState } from "@proyecto-viviana/solid-stately";
|
|
19
|
+
//#region src/PreviewTrigger.tsx
|
|
20
|
+
/**
|
|
21
|
+
* PreviewTrigger displays a non-modal popover on hover, focus, or long press.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* A PreviewTrigger displays a non-modal popover on hover, focus, or long press. Unlike a tooltip,
|
|
25
|
+
* the popover may contain interactive content.
|
|
26
|
+
*/
|
|
27
|
+
function PreviewTrigger(props) {
|
|
28
|
+
const [local, rest] = splitProps(props, [
|
|
29
|
+
"children",
|
|
30
|
+
"delay",
|
|
31
|
+
"closeDelay"
|
|
32
|
+
]);
|
|
33
|
+
const state = createTooltipTriggerState({
|
|
34
|
+
get isOpen() {
|
|
35
|
+
return rest.isOpen;
|
|
36
|
+
},
|
|
37
|
+
get defaultOpen() {
|
|
38
|
+
return rest.defaultOpen;
|
|
39
|
+
},
|
|
40
|
+
onOpenChange: rest.onOpenChange,
|
|
41
|
+
get delay() {
|
|
42
|
+
return local.delay ?? 600;
|
|
43
|
+
},
|
|
44
|
+
get closeDelay() {
|
|
45
|
+
return local.closeDelay ?? 200;
|
|
46
|
+
},
|
|
47
|
+
get isDisabled() {
|
|
48
|
+
return rest.isDisabled;
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
const [triggerEl, setTriggerRef] = createSignal(null, { ownedWrite: true });
|
|
52
|
+
const [popoverEl, setPopoverRef] = createSignal(null, { ownedWrite: true });
|
|
53
|
+
const triggerId = createUniqueId();
|
|
54
|
+
const aria = createPreviewTrigger({
|
|
55
|
+
get isOpen() {
|
|
56
|
+
return rest.isOpen;
|
|
57
|
+
},
|
|
58
|
+
get defaultOpen() {
|
|
59
|
+
return rest.defaultOpen;
|
|
60
|
+
},
|
|
61
|
+
get isDisabled() {
|
|
62
|
+
return rest.isDisabled;
|
|
63
|
+
},
|
|
64
|
+
onOpenChange: rest.onOpenChange,
|
|
65
|
+
triggerRef: () => triggerEl(),
|
|
66
|
+
popoverRef: () => popoverEl()
|
|
67
|
+
}, state);
|
|
68
|
+
const overlayState = {
|
|
69
|
+
get isOpen() {
|
|
70
|
+
return state.isOpen();
|
|
71
|
+
},
|
|
72
|
+
open: () => state.open(),
|
|
73
|
+
close: () => state.close(true),
|
|
74
|
+
toggle: () => state.isOpen() ? state.close(true) : state.open(),
|
|
75
|
+
setOpen: (isOpen) => {
|
|
76
|
+
if (isOpen) state.open();
|
|
77
|
+
else state.close(true);
|
|
78
|
+
},
|
|
79
|
+
get point() {
|
|
80
|
+
return null;
|
|
81
|
+
},
|
|
82
|
+
setPoint: () => {}
|
|
83
|
+
};
|
|
84
|
+
return <Provider values={[[OverlayTriggerStateContext, overlayState], [PopoverTriggerContext, {
|
|
85
|
+
state: {
|
|
86
|
+
isOpen: () => state.isOpen(),
|
|
87
|
+
open: () => state.open(),
|
|
88
|
+
close: () => state.close(true),
|
|
89
|
+
toggle: () => state.isOpen() ? state.close(true) : state.open(),
|
|
90
|
+
setOpen: overlayState.setOpen,
|
|
91
|
+
point: () => overlayState.point,
|
|
92
|
+
setPoint: overlayState.setPoint
|
|
93
|
+
},
|
|
94
|
+
triggerRef: () => triggerEl(),
|
|
95
|
+
setTriggerRef: (el) => {
|
|
96
|
+
if (!el) return;
|
|
97
|
+
setTriggerRef((current) => {
|
|
98
|
+
if (current && current.isConnected) return current;
|
|
99
|
+
return el;
|
|
100
|
+
});
|
|
101
|
+
},
|
|
102
|
+
triggerId,
|
|
103
|
+
triggerProps: aria.triggerProps,
|
|
104
|
+
overlayProps: aria.popoverProps,
|
|
105
|
+
trigger: "PreviewTrigger",
|
|
106
|
+
setOverlayRef: (el) => setPopoverRef(el),
|
|
107
|
+
shouldSkipAnimation: () => state.shouldSkipAnimation()
|
|
108
|
+
}]]}>
|
|
109
|
+
<FocusableProvider {...aria.triggerProps} ref={setTriggerRef}>
|
|
110
|
+
{local.children}
|
|
111
|
+
</FocusableProvider>
|
|
112
|
+
</Provider>;
|
|
113
|
+
}
|
|
114
|
+
//#endregion
|
|
115
|
+
export { PreviewTrigger };
|
|
116
|
+
|
|
117
|
+
//# sourceMappingURL=PreviewTrigger.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PreviewTrigger.jsx","names":[],"sources":["../src/PreviewTrigger.tsx"],"sourcesContent":["/*\n * Copyright 2026 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/PreviewTrigger.tsx\n\n/**\n * PreviewTrigger displays a non-modal popover on hover, focus, or long press.\n */\n\nimport { createSignal, createUniqueId } from \"solid-js\";\nimport type { Context } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport {\n FocusableProvider,\n createPreviewTrigger,\n type AriaPreviewTriggerProps,\n} from \"@proyecto-viviana/solidaria\";\nimport { createTooltipTriggerState } from \"@proyecto-viviana/solid-stately\";\nimport {\n OverlayTriggerStateContext,\n PopoverTriggerContext,\n type OverlayTriggerState,\n} from \"./contexts\";\nimport { Provider } from \"./utils\";\nimport { splitProps } from \"@proyecto-viviana/solidaria/utils\";\n\nexport interface PreviewTriggerProps extends AriaPreviewTriggerProps {\n /** The trigger and Popover that make up the preview trigger. */\n children: JSX.Element;\n /**\n * The delay time in milliseconds before the preview opens.\n *\n * @default 600\n */\n delay?: number;\n /**\n * The delay time in milliseconds before the preview closes.\n *\n * @default 200\n */\n closeDelay?: number;\n}\n\n/**\n * A PreviewTrigger displays a non-modal popover on hover, focus, or long press. Unlike a tooltip,\n * the popover may contain interactive content.\n */\nexport function PreviewTrigger(props: PreviewTriggerProps): JSX.Element {\n // Keep children out of the hook object. Spreading `props` instantiates\n // them in this component's hydration context on SSR only.\n const [local, rest] = splitProps(props, [\"children\", \"delay\", \"closeDelay\"]);\n\n const state = createTooltipTriggerState({\n get isOpen() {\n return rest.isOpen;\n },\n get defaultOpen() {\n return rest.defaultOpen;\n },\n onOpenChange: rest.onOpenChange,\n get delay() {\n return local.delay ?? 600;\n },\n get closeDelay() {\n return local.closeDelay ?? 200;\n },\n get isDisabled() {\n return rest.isDisabled;\n },\n });\n\n const [triggerEl, setTriggerRef] = createSignal<HTMLElement | null>(null, {\n ownedWrite: true,\n });\n const [popoverEl, setPopoverRef] = createSignal<HTMLElement | null>(null, {\n ownedWrite: true,\n });\n const triggerId = createUniqueId();\n\n const aria = createPreviewTrigger(\n {\n get isOpen() {\n return rest.isOpen;\n },\n get defaultOpen() {\n return rest.defaultOpen;\n },\n get isDisabled() {\n return rest.isDisabled;\n },\n onOpenChange: rest.onOpenChange,\n triggerRef: () => triggerEl(),\n popoverRef: () => popoverEl(),\n },\n state,\n );\n\n // RAC PreviewTrigger adapts TooltipTriggerState to OverlayTriggerState\n // (`PreviewTrigger.tsx:56-67`): setOpen, point, setPoint. Solid-local\n // PopoverTriggerContext is the trigger-wiring counterpart of RAC's\n // PopoverContext (our PopoverContext is placement/arrow, a different type).\n const overlayState: OverlayTriggerState = {\n get isOpen() {\n return state.isOpen();\n },\n open: () => state.open(),\n close: () => state.close(true),\n toggle: () => (state.isOpen() ? state.close(true) : state.open()),\n setOpen: (isOpen) => {\n if (isOpen) state.open();\n else state.close(true);\n },\n get point() {\n return null;\n },\n setPoint: () => {},\n };\n\n return (\n <Provider\n values={\n [\n [OverlayTriggerStateContext, overlayState],\n [\n PopoverTriggerContext,\n {\n state: {\n isOpen: () => state.isOpen(),\n open: () => state.open(),\n close: () => state.close(true),\n toggle: () => (state.isOpen() ? state.close(true) : state.open()),\n setOpen: overlayState.setOpen,\n point: () => overlayState.point,\n setPoint: overlayState.setPoint,\n },\n triggerRef: () => triggerEl(),\n setTriggerRef: (el: HTMLElement | null) => {\n if (!el) return;\n // First connected owner wins. A Button inside the preview would\n // otherwise steal the trigger ref (and the hover safe-area).\n setTriggerRef((current) => {\n if (current && current.isConnected) return current;\n return el;\n });\n },\n triggerId,\n triggerProps: aria.triggerProps as unknown as Record<string, unknown>,\n overlayProps: aria.popoverProps as unknown as Record<string, unknown>,\n trigger: \"PreviewTrigger\",\n setOverlayRef: (el: HTMLElement | null) => setPopoverRef(el),\n shouldSkipAnimation: () => state.shouldSkipAnimation(),\n },\n ],\n ] as Array<[Context<unknown>, unknown]>\n }\n >\n <FocusableProvider {...aria.triggerProps} ref={setTriggerRef}>\n {local.children}\n </FocusableProvider>\n </Provider>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,SAAgB,eAAe,OAAyC;CAGtE,MAAM,CAAC,OAAO,QAAQ,WAAW,OAAO;EAAC;EAAY;EAAS;CAAY,CAAC;CAE3E,MAAM,QAAQ,0BAA0B;EACtC,IAAI,SAAS;GACX,OAAO,KAAK;EACd;EACA,IAAI,cAAc;GAChB,OAAO,KAAK;EACd;EACA,cAAc,KAAK;EACnB,IAAI,QAAQ;GACV,OAAO,MAAM,SAAS;EACxB;EACA,IAAI,aAAa;GACf,OAAO,MAAM,cAAc;EAC7B;EACA,IAAI,aAAa;GACf,OAAO,KAAK;EACd;CACF,CAAC;CAED,MAAM,CAAC,WAAW,iBAAiB,aAAiC,MAAM,EACxE,YAAY,KACd,CAAC;CACD,MAAM,CAAC,WAAW,iBAAiB,aAAiC,MAAM,EACxE,YAAY,KACd,CAAC;CACD,MAAM,YAAY,eAAe;CAEjC,MAAM,OAAO,qBACX;EACE,IAAI,SAAS;GACX,OAAO,KAAK;EACd;EACA,IAAI,cAAc;GAChB,OAAO,KAAK;EACd;EACA,IAAI,aAAa;GACf,OAAO,KAAK;EACd;EACA,cAAc,KAAK;EACnB,kBAAkB,UAAU;EAC5B,kBAAkB,UAAU;CAC9B,GACA,KACF;CAMA,MAAM,eAAoC;EACxC,IAAI,SAAS;GACX,OAAO,MAAM,OAAO;EACtB;EACA,YAAY,MAAM,KAAK;EACvB,aAAa,MAAM,MAAM,IAAI;EAC7B,cAAe,MAAM,OAAO,IAAI,MAAM,MAAM,IAAI,IAAI,MAAM,KAAK;EAC/D,UAAU,WAAW;GACnB,IAAI,QAAQ,MAAM,KAAK;QAClB,MAAM,MAAM,IAAI;EACvB;EACA,IAAI,QAAQ;GACV,OAAO;EACT;EACA,gBAAgB,CAAC;CACnB;CAEA,OACE,CAAC,SACC,QACE,CACE,CAAC,4BAA4B,YAAY,GACzC,CACE,uBACA;EACE,OAAO;GACL,cAAc,MAAM,OAAO;GAC3B,YAAY,MAAM,KAAK;GACvB,aAAa,MAAM,MAAM,IAAI;GAC7B,cAAe,MAAM,OAAO,IAAI,MAAM,MAAM,IAAI,IAAI,MAAM,KAAK;GAC/D,SAAS,aAAa;GACtB,aAAa,aAAa;GAC1B,UAAU,aAAa;EACzB;EACA,kBAAkB,UAAU;EAC5B,gBAAgB,OAA2B;GACzC,IAAI,CAAC,IAAI;GAGT,eAAe,YAAY;IACzB,IAAI,WAAW,QAAQ,aAAa,OAAO;IAC3C,OAAO;GACT,CAAC;EACH;EACA;EACA,cAAc,KAAK;EACnB,cAAc,KAAK;EACnB,SAAS;EACT,gBAAgB,OAA2B,cAAc,EAAE;EAC3D,2BAA2B,MAAM,oBAAoB;CACvD,CACF,CACF,GAEH;MACC,CAAC,sBAAsB,KAAK,cAAc,KAAK,eAAe;SAC3D,MAAM,SAAS;MAClB,EAAE,kBAAkB;IACtB,EAAE;AAEN"}
|
package/dist/ProgressBar.d.ts
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* ProgressBar component for solidaria-components
|
|
3
|
-
*
|
|
4
|
-
* Pre-wired headless progress bar component that combines aria hooks.
|
|
5
|
-
* Port of react-aria-components/src/ProgressBar.tsx
|
|
6
|
-
*/
|
|
7
|
-
import { type JSX } from "solid-js";
|
|
1
|
+
import type { JSX } from "@solidjs/web";
|
|
8
2
|
import { type AriaProgressBarProps } from "@proyecto-viviana/solidaria";
|
|
9
3
|
import { type RenderChildren, type ClassNameOrFunction, type StyleOrFunction, type SlotProps } from "./utils";
|
|
10
4
|
export interface ProgressBarRenderProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../src/ProgressBar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../src/ProgressBar.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EAGf,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,sBAAsB;IACrC,yEAAyE;IACzE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,wCAAwC;IACxC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,iDAAiD;IACjD,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAiB,SAAQ,oBAAoB,EAAE,SAAS;IACvE,sBAAsB;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,yFAAyF;IACzF,QAAQ,CAAC,EAAE,cAAc,CAAC,sBAAsB,CAAC,CAAC;IAClD,yCAAyC;IACzC,KAAK,CAAC,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;IACpD,wCAAwC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC,sBAAsB,CAAC,CAAC;CACjD;AAED,eAAO,MAAM,kBAAkB,qDAA+C,CAAC;AAW/E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CA8FhE"}
|
package/dist/ProgressBar.js
CHANGED
|
@@ -1,7 +1,20 @@
|
|
|
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/ProgressBar.tsx
|
|
1
13
|
import { filterDOMProps, useRenderProps } from "./utils.js";
|
|
2
|
-
import { getNextElement, insert,
|
|
3
|
-
import { createContext, createMemo,
|
|
4
|
-
import { createProgressBar } from "@proyecto-viviana/solidaria";
|
|
14
|
+
import { getNextElement, insert, runHydrationEvents, scope, spread, template } from "@solidjs/web";
|
|
15
|
+
import { createContext, createMemo, useContext } from "solid-js";
|
|
16
|
+
import { createProgressBar, mergeProps as mergeProps$1 } from "@proyecto-viviana/solidaria";
|
|
17
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
5
18
|
//#region src/ProgressBar.tsx
|
|
6
19
|
/**
|
|
7
20
|
* ProgressBar component for solidaria-components
|
|
@@ -9,7 +22,7 @@ import { createProgressBar } from "@proyecto-viviana/solidaria";
|
|
|
9
22
|
* Pre-wired headless progress bar component that combines aria hooks.
|
|
10
23
|
* Port of react-aria-components/src/ProgressBar.tsx
|
|
11
24
|
*/
|
|
12
|
-
var _tmpl$ =
|
|
25
|
+
var _tmpl$ = /* @__PURE__ */ template(`<div>`);
|
|
13
26
|
const ProgressBarContext = createContext(null);
|
|
14
27
|
function clamp(value, min, max) {
|
|
15
28
|
return Math.min(Math.max(value, min), max);
|
|
@@ -37,7 +50,8 @@ function getSafeRange(min, max) {
|
|
|
37
50
|
*/
|
|
38
51
|
function ProgressBar(props) {
|
|
39
52
|
const contextProps = useContext(ProgressBarContext);
|
|
40
|
-
const
|
|
53
|
+
const mergedProps = contextProps ? mergeProps$1(contextProps, props) : props;
|
|
54
|
+
const [local, ariaProps] = splitProps(mergedProps, [
|
|
41
55
|
"children",
|
|
42
56
|
"class",
|
|
43
57
|
"style",
|
|
@@ -106,10 +120,14 @@ function ProgressBar(props) {
|
|
|
106
120
|
defaultClassName: "solidaria-ProgressBar"
|
|
107
121
|
}, renderValues);
|
|
108
122
|
const domProps = createMemo(() => filterDOMProps(ariaProps, { global: true }));
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
123
|
+
var _el$ = getNextElement(_tmpl$);
|
|
124
|
+
spread(_el$, [
|
|
125
|
+
domProps,
|
|
126
|
+
() => {
|
|
127
|
+
return progressAria.progressBarProps;
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
get "class"() {
|
|
113
131
|
return renderProps.class();
|
|
114
132
|
},
|
|
115
133
|
get style() {
|
|
@@ -118,11 +136,13 @@ function ProgressBar(props) {
|
|
|
118
136
|
get slot() {
|
|
119
137
|
return local.slot;
|
|
120
138
|
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
return
|
|
125
|
-
})
|
|
139
|
+
}
|
|
140
|
+
], true);
|
|
141
|
+
insert(_el$, scope(() => {
|
|
142
|
+
return renderProps.renderChildren();
|
|
143
|
+
}));
|
|
144
|
+
runHydrationEvents();
|
|
145
|
+
return _el$;
|
|
126
146
|
}
|
|
127
147
|
//#endregion
|
|
128
148
|
export { ProgressBar, ProgressBarContext };
|