@proyecto-viviana/solidaria-components 0.5.0 → 0.7.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE-APACHE-2.0 +201 -0
- package/NOTICE +91 -0
- package/README.md +4 -7
- package/dist/ActionBar.d.ts +2 -10
- package/dist/ActionBar.d.ts.map +1 -1
- package/dist/ActionBar.js +95 -59
- package/dist/ActionBar.js.map +1 -1
- package/dist/ActionBar.jsx +42 -15
- package/dist/ActionBar.jsx.map +1 -1
- package/dist/ActionGroup.d.ts +1 -12
- package/dist/ActionGroup.d.ts.map +1 -1
- package/dist/ActionGroup.js +66 -44
- package/dist/ActionGroup.js.map +1 -1
- package/dist/ActionGroup.jsx +25 -10
- package/dist/ActionGroup.jsx.map +1 -1
- package/dist/Alert.d.ts +4 -1
- package/dist/Alert.d.ts.map +1 -1
- package/dist/Alert.js +25 -17
- package/dist/Alert.js.map +1 -1
- package/dist/Alert.jsx +9 -5
- package/dist/Alert.jsx.map +1 -1
- package/dist/Autocomplete.d.ts +2 -9
- package/dist/Autocomplete.d.ts.map +1 -1
- package/dist/Autocomplete.js +18 -5
- package/dist/Autocomplete.js.map +1 -1
- package/dist/Autocomplete.jsx +20 -7
- package/dist/Autocomplete.jsx.map +1 -1
- package/dist/Breadcrumbs.d.ts +2 -7
- package/dist/Breadcrumbs.d.ts.map +1 -1
- package/dist/Breadcrumbs.js +71 -51
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/Breadcrumbs.jsx +25 -12
- package/dist/Breadcrumbs.jsx.map +1 -1
- package/dist/Button.d.ts +1 -7
- package/dist/Button.d.ts.map +1 -1
- package/dist/Button.js +125 -72
- package/dist/Button.js.map +1 -1
- package/dist/Button.jsx +105 -43
- package/dist/Button.jsx.map +1 -1
- package/dist/Calendar.d.ts +1 -7
- package/dist/Calendar.d.ts.map +1 -1
- package/dist/Calendar.js +297 -221
- package/dist/Calendar.js.map +1 -1
- package/dist/Calendar.jsx +52 -32
- package/dist/Calendar.jsx.map +1 -1
- package/dist/CalendarPicker.d.ts +1 -10
- package/dist/CalendarPicker.d.ts.map +1 -1
- package/dist/CalendarPicker.js +12 -0
- package/dist/CalendarPicker.js.map +1 -1
- package/dist/CalendarPicker.jsx +12 -0
- package/dist/CalendarPicker.jsx.map +1 -1
- package/dist/Checkbox.d.ts +2 -7
- package/dist/Checkbox.d.ts.map +1 -1
- package/dist/Checkbox.js +332 -270
- package/dist/Checkbox.js.map +1 -1
- package/dist/Checkbox.jsx +70 -77
- package/dist/Checkbox.jsx.map +1 -1
- package/dist/Collection.d.ts +33 -7
- package/dist/Collection.d.ts.map +1 -1
- package/dist/Collection.js +128 -74
- package/dist/Collection.js.map +1 -1
- package/dist/Collection.jsx +46 -7
- package/dist/Collection.jsx.map +1 -1
- package/dist/Color.d.ts +15 -20
- package/dist/Color.d.ts.map +1 -1
- package/dist/Color.js +572 -334
- package/dist/Color.js.map +1 -1
- package/dist/Color.jsx +205 -85
- package/dist/Color.jsx.map +1 -1
- package/dist/ColorEditor.d.ts +3 -1
- package/dist/ColorEditor.d.ts.map +1 -1
- package/dist/ColorEditor.js +147 -124
- package/dist/ColorEditor.js.map +1 -1
- package/dist/ColorEditor.jsx +4 -1
- package/dist/ColorEditor.jsx.map +1 -1
- package/dist/ComboBox.d.ts +31 -10
- package/dist/ComboBox.d.ts.map +1 -1
- package/dist/ComboBox.js +539 -274
- package/dist/ComboBox.js.map +1 -1
- package/dist/ComboBox.jsx +213 -70
- package/dist/ComboBox.jsx.map +1 -1
- package/dist/ContextualHelpTrigger.d.ts +1 -7
- package/dist/ContextualHelpTrigger.d.ts.map +1 -1
- package/dist/ContextualHelpTrigger.js +102 -72
- package/dist/ContextualHelpTrigger.js.map +1 -1
- package/dist/ContextualHelpTrigger.jsx +36 -16
- package/dist/ContextualHelpTrigger.jsx.map +1 -1
- package/dist/DateField.d.ts +2 -7
- package/dist/DateField.d.ts.map +1 -1
- package/dist/DateField.js +0 -2
- package/dist/DateField.jsx +0 -2
- package/dist/DateField2.js +194 -179
- package/dist/DateField2.js.map +1 -1
- package/dist/DateField2.jsx +58 -55
- package/dist/DateField2.jsx.map +1 -1
- package/dist/DatePicker.d.ts +7 -7
- package/dist/DatePicker.d.ts.map +1 -1
- package/dist/DatePicker.js +2 -2
- package/dist/DatePicker.jsx +2 -2
- package/dist/DatePicker2.js +357 -435
- package/dist/DatePicker2.js.map +1 -1
- package/dist/DatePicker2.jsx +109 -178
- package/dist/DatePicker2.jsx.map +1 -1
- package/dist/DateRangePickerContext.d.ts +7 -0
- package/dist/DateRangePickerContext.d.ts.map +1 -1
- package/dist/Dialog.d.ts +4 -9
- package/dist/Dialog.d.ts.map +1 -1
- package/dist/Dialog.js +168 -101
- package/dist/Dialog.js.map +1 -1
- package/dist/Dialog.jsx +75 -27
- package/dist/Dialog.jsx.map +1 -1
- package/dist/Disclosure.d.ts +1 -9
- package/dist/Disclosure.d.ts.map +1 -1
- package/dist/Disclosure.js +121 -79
- package/dist/Disclosure.js.map +1 -1
- package/dist/Disclosure.jsx +32 -19
- package/dist/Disclosure.jsx.map +1 -1
- package/dist/DragAndDrop.d.ts +9 -6
- package/dist/DragAndDrop.d.ts.map +1 -1
- package/dist/DragAndDrop.js +37 -22
- package/dist/DragAndDrop.js.map +1 -1
- package/dist/DragAndDrop.jsx +20 -4
- package/dist/DragAndDrop.jsx.map +1 -1
- package/dist/DragPreview.d.ts +1 -1
- package/dist/DragPreview.d.ts.map +1 -1
- package/dist/DropZone.d.ts +1 -7
- package/dist/DropZone.d.ts.map +1 -1
- package/dist/DropZone.js +74 -40
- package/dist/DropZone.js.map +1 -1
- package/dist/DropZone.jsx +24 -8
- package/dist/DropZone.jsx.map +1 -1
- package/dist/ElementTag.d.ts +9 -20
- package/dist/ElementTag.d.ts.map +1 -1
- package/dist/ElementTag.js +8 -210
- package/dist/ElementTag.js.map +1 -1
- package/dist/ElementTag.jsx +8 -57
- package/dist/ElementTag.jsx.map +1 -1
- package/dist/FieldError.d.ts +8 -7
- package/dist/FieldError.d.ts.map +1 -1
- package/dist/FieldError.js +33 -13
- package/dist/FieldError.js.map +1 -1
- package/dist/FieldError.jsx +20 -5
- package/dist/FieldError.jsx.map +1 -1
- package/dist/FileTrigger.d.ts +1 -7
- package/dist/FileTrigger.d.ts.map +1 -1
- package/dist/FileTrigger.js +30 -12
- package/dist/FileTrigger.js.map +1 -1
- package/dist/FileTrigger.jsx +15 -2
- package/dist/FileTrigger.jsx.map +1 -1
- package/dist/Focusable.d.ts +2 -8
- package/dist/Focusable.d.ts.map +1 -1
- package/dist/Focusable.js +23 -6
- package/dist/Focusable.js.map +1 -1
- package/dist/Focusable.jsx +22 -5
- package/dist/Focusable.jsx.map +1 -1
- package/dist/Form.d.ts +9 -8
- package/dist/Form.d.ts.map +1 -1
- package/dist/Form.js +66 -43
- package/dist/Form.js.map +1 -1
- package/dist/Form.jsx +36 -16
- package/dist/Form.jsx.map +1 -1
- package/dist/GridList.d.ts +5 -10
- package/dist/GridList.d.ts.map +1 -1
- package/dist/GridList.js +372 -243
- package/dist/GridList.js.map +1 -1
- package/dist/GridList.jsx +177 -99
- package/dist/GridList.jsx.map +1 -1
- package/dist/HiddenDateInput.d.ts +1 -7
- package/dist/HiddenDateInput.d.ts.map +1 -1
- package/dist/Icon.d.ts +4 -1
- package/dist/Icon.d.ts.map +1 -1
- package/dist/Icon.js +41 -37
- package/dist/Icon.js.map +1 -1
- package/dist/Icon.jsx +7 -3
- package/dist/Icon.jsx.map +1 -1
- package/dist/Keyboard.d.ts +1 -7
- package/dist/Keyboard.d.ts.map +1 -1
- package/dist/Keyboard.js +24 -11
- package/dist/Keyboard.js.map +1 -1
- package/dist/Keyboard.jsx +15 -2
- package/dist/Keyboard.jsx.map +1 -1
- package/dist/Label.d.ts +20 -0
- package/dist/Label.d.ts.map +1 -0
- package/dist/Label.js +60 -0
- package/dist/Label.js.map +1 -0
- package/dist/Label.jsx +47 -0
- package/dist/Label.jsx.map +1 -0
- package/dist/Landmark.d.ts +4 -1
- package/dist/Landmark.d.ts.map +1 -1
- package/dist/Landmark.js +10 -4
- package/dist/Landmark.js.map +1 -1
- package/dist/Landmark.jsx +5 -1
- package/dist/Landmark.jsx.map +1 -1
- package/dist/Link.d.ts +2 -7
- package/dist/Link.d.ts.map +1 -1
- package/dist/Link.js +56 -36
- package/dist/Link.js.map +1 -1
- package/dist/Link.jsx +52 -10
- package/dist/Link.jsx.map +1 -1
- package/dist/ListBox.d.ts +17 -13
- package/dist/ListBox.d.ts.map +1 -1
- package/dist/ListBox.js +647 -348
- package/dist/ListBox.js.map +1 -1
- package/dist/ListBox.jsx +339 -236
- package/dist/ListBox.jsx.map +1 -1
- package/dist/ListDropTargetDelegate.d.ts +3 -0
- package/dist/ListDropTargetDelegate.d.ts.map +1 -1
- package/dist/Menu.d.ts +39 -30
- package/dist/Menu.d.ts.map +1 -1
- package/dist/Menu.js +547 -368
- package/dist/Menu.js.map +1 -1
- package/dist/Menu.jsx +328 -230
- package/dist/Menu.jsx.map +1 -1
- package/dist/Meter.d.ts +6 -13
- package/dist/Meter.d.ts.map +1 -1
- package/dist/Meter.js +55 -18
- package/dist/Meter.js.map +1 -1
- package/dist/Meter.jsx +33 -8
- package/dist/Meter.jsx.map +1 -1
- package/dist/Modal.d.ts +1 -7
- package/dist/Modal.d.ts.map +1 -1
- package/dist/Modal.js +104 -56
- package/dist/Modal.js.map +1 -1
- package/dist/Modal.jsx +68 -38
- package/dist/Modal.jsx.map +1 -1
- package/dist/NumberField.d.ts +4 -7
- package/dist/NumberField.d.ts.map +1 -1
- package/dist/NumberField.js +243 -124
- package/dist/NumberField.js.map +1 -1
- package/dist/NumberField.jsx +115 -26
- package/dist/NumberField.jsx.map +1 -1
- package/dist/Popover.d.ts +15 -7
- package/dist/Popover.d.ts.map +1 -1
- package/dist/Popover.js +370 -181
- package/dist/Popover.js.map +1 -1
- package/dist/Popover.jsx +215 -82
- package/dist/Popover.jsx.map +1 -1
- package/dist/Pressable.d.ts +2 -8
- package/dist/Pressable.d.ts.map +1 -1
- package/dist/Pressable.js +23 -6
- package/dist/Pressable.js.map +1 -1
- package/dist/Pressable.jsx +22 -5
- package/dist/Pressable.jsx.map +1 -1
- package/dist/PreviewTrigger.d.ts +24 -0
- package/dist/PreviewTrigger.d.ts.map +1 -0
- package/dist/PreviewTrigger.js +128 -0
- package/dist/PreviewTrigger.js.map +1 -0
- package/dist/PreviewTrigger.jsx +117 -0
- package/dist/PreviewTrigger.jsx.map +1 -0
- package/dist/ProgressBar.d.ts +1 -7
- package/dist/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar.js +34 -14
- package/dist/ProgressBar.js.map +1 -1
- package/dist/ProgressBar.jsx +17 -3
- package/dist/ProgressBar.jsx.map +1 -1
- package/dist/RadioGroup.d.ts +2 -7
- package/dist/RadioGroup.d.ts.map +1 -1
- package/dist/RadioGroup.js +388 -269
- package/dist/RadioGroup.js.map +1 -1
- package/dist/RadioGroup.jsx +110 -99
- package/dist/RadioGroup.jsx.map +1 -1
- package/dist/RangeCalendar.d.ts +3 -7
- package/dist/RangeCalendar.d.ts.map +1 -1
- package/dist/RangeCalendar.js +271 -202
- package/dist/RangeCalendar.js.map +1 -1
- package/dist/RangeCalendar.jsx +56 -37
- package/dist/RangeCalendar.jsx.map +1 -1
- package/dist/RouterProvider.d.ts +3 -9
- package/dist/RouterProvider.d.ts.map +1 -1
- package/dist/RouterProvider.js +15 -14
- package/dist/RouterProvider.js.map +1 -1
- package/dist/RouterProvider.jsx +14 -13
- package/dist/RouterProvider.jsx.map +1 -1
- package/dist/SearchField.d.ts +4 -7
- package/dist/SearchField.d.ts.map +1 -1
- package/dist/SearchField.js +191 -164
- package/dist/SearchField.js.map +1 -1
- package/dist/SearchField.jsx +69 -62
- package/dist/SearchField.jsx.map +1 -1
- package/dist/Select.d.ts +5 -10
- package/dist/Select.d.ts.map +1 -1
- package/dist/Select.js +565 -359
- package/dist/Select.js.map +1 -1
- package/dist/Select.jsx +281 -161
- package/dist/Select.jsx.map +1 -1
- package/dist/SelectionIndicator.d.ts +1 -4
- package/dist/SelectionIndicator.d.ts.map +1 -1
- package/dist/SelectionIndicator.js +29 -13
- package/dist/SelectionIndicator.js.map +1 -1
- package/dist/SelectionIndicator.jsx +18 -4
- package/dist/SelectionIndicator.jsx.map +1 -1
- package/dist/Separator.d.ts +1 -7
- package/dist/Separator.d.ts.map +1 -1
- package/dist/Separator.js +22 -6
- package/dist/Separator.js.map +1 -1
- package/dist/Separator.jsx +16 -3
- package/dist/Separator.jsx.map +1 -1
- package/dist/SharedElementTransition.d.ts +1 -10
- package/dist/SharedElementTransition.d.ts.map +1 -1
- package/dist/SharedElementTransition.js +68 -40
- package/dist/SharedElementTransition.js.map +1 -1
- package/dist/SharedElementTransition.jsx +49 -25
- package/dist/SharedElementTransition.jsx.map +1 -1
- package/dist/Slider.d.ts +2 -8
- package/dist/Slider.d.ts.map +1 -1
- package/dist/Slider.js +155 -97
- package/dist/Slider.js.map +1 -1
- package/dist/Slider.jsx +25 -12
- package/dist/Slider.jsx.map +1 -1
- package/dist/StepList.d.ts +1 -7
- package/dist/StepList.d.ts.map +1 -1
- package/dist/StepList.js +112 -68
- package/dist/StepList.js.map +1 -1
- package/dist/StepList.jsx +58 -20
- package/dist/StepList.jsx.map +1 -1
- package/dist/Switch.d.ts +2 -9
- package/dist/Switch.d.ts.map +1 -1
- package/dist/Switch.js +164 -114
- package/dist/Switch.js.map +1 -1
- package/dist/Switch.jsx +26 -13
- package/dist/Switch.jsx.map +1 -1
- package/dist/Table.d.ts +2 -1
- package/dist/Table.d.ts.map +1 -1
- package/dist/Table.js +689 -592
- package/dist/Table.js.map +1 -1
- package/dist/Table.jsx +317 -237
- package/dist/Table.jsx.map +1 -1
- package/dist/Tabs.d.ts +2 -7
- package/dist/Tabs.d.ts.map +1 -1
- package/dist/Tabs.js +278 -293
- package/dist/Tabs.js.map +1 -1
- package/dist/Tabs.jsx +68 -66
- package/dist/Tabs.jsx.map +1 -1
- package/dist/TagGroup.d.ts +4 -11
- package/dist/TagGroup.d.ts.map +1 -1
- package/dist/TagGroup.js +153 -115
- package/dist/TagGroup.js.map +1 -1
- package/dist/TagGroup.jsx +37 -24
- package/dist/TagGroup.jsx.map +1 -1
- package/dist/Text.d.ts +3 -3
- package/dist/Text.d.ts.map +1 -1
- package/dist/Text.js +24 -7
- package/dist/Text.js.map +1 -1
- package/dist/Text.jsx +17 -5
- package/dist/Text.jsx.map +1 -1
- package/dist/TextField.d.ts +3 -16
- package/dist/TextField.d.ts.map +1 -1
- package/dist/TextField.js +104 -129
- package/dist/TextField.js.map +1 -1
- package/dist/TextField.jsx +76 -102
- package/dist/TextField.jsx.map +1 -1
- package/dist/TimeField.d.ts +2 -15
- package/dist/TimeField.d.ts.map +1 -1
- package/dist/TimeField.js +86 -102
- package/dist/TimeField.js.map +1 -1
- package/dist/TimeField.jsx +32 -49
- package/dist/TimeField.jsx.map +1 -1
- package/dist/Toast.d.ts +10 -13
- package/dist/Toast.d.ts.map +1 -1
- package/dist/Toast.js +209 -108
- package/dist/Toast.js.map +1 -1
- package/dist/Toast.jsx +127 -22
- package/dist/Toast.jsx.map +1 -1
- package/dist/ToggleButton.d.ts +1 -7
- package/dist/ToggleButton.d.ts.map +1 -1
- package/dist/ToggleButton.js +57 -35
- package/dist/ToggleButton.js.map +1 -1
- package/dist/ToggleButton.jsx +26 -12
- package/dist/ToggleButton.jsx.map +1 -1
- package/dist/ToggleButtonGroup.d.ts +1 -7
- package/dist/ToggleButtonGroup.d.ts.map +1 -1
- package/dist/ToggleButtonGroup.js +59 -44
- package/dist/ToggleButtonGroup.js.map +1 -1
- package/dist/ToggleButtonGroup.jsx +25 -12
- package/dist/ToggleButtonGroup.jsx.map +1 -1
- package/dist/TokenField.d.ts +52 -0
- package/dist/TokenField.d.ts.map +1 -0
- package/dist/TokenField.js +301 -0
- package/dist/TokenField.js.map +1 -0
- package/dist/TokenField.jsx +197 -0
- package/dist/TokenField.jsx.map +1 -0
- package/dist/Toolbar.d.ts +2 -7
- package/dist/Toolbar.d.ts.map +1 -1
- package/dist/Toolbar.js +35 -16
- package/dist/Toolbar.js.map +1 -1
- package/dist/Toolbar.jsx +15 -2
- package/dist/Toolbar.jsx.map +1 -1
- package/dist/Tooltip.d.ts +2 -7
- package/dist/Tooltip.d.ts.map +1 -1
- package/dist/Tooltip.js +105 -68
- package/dist/Tooltip.js.map +1 -1
- package/dist/Tooltip.jsx +60 -36
- package/dist/Tooltip.jsx.map +1 -1
- package/dist/Tree.d.ts +8 -11
- package/dist/Tree.d.ts.map +1 -1
- package/dist/Tree.js +486 -339
- package/dist/Tree.js.map +1 -1
- package/dist/Tree.jsx +155 -107
- package/dist/Tree.jsx.map +1 -1
- package/dist/Virtualizer.d.ts +39 -9
- package/dist/Virtualizer.d.ts.map +1 -1
- package/dist/Virtualizer.js +2 -2
- package/dist/Virtualizer.jsx +2 -2
- package/dist/Virtualizer2.js +491 -136
- package/dist/Virtualizer2.js.map +1 -1
- package/dist/Virtualizer2.jsx +455 -122
- package/dist/Virtualizer2.jsx.map +1 -1
- package/dist/VirtualizerLayouts.d.ts +55 -2
- package/dist/VirtualizerLayouts.d.ts.map +1 -1
- package/dist/VisuallyHidden.d.ts +4 -3
- package/dist/VisuallyHidden.d.ts.map +1 -1
- package/dist/VisuallyHidden.js +18 -11
- package/dist/VisuallyHidden.js.map +1 -1
- package/dist/VisuallyHidden.jsx +15 -9
- package/dist/VisuallyHidden.jsx.map +1 -1
- package/dist/contexts.d.ts +25 -0
- package/dist/contexts.d.ts.map +1 -1
- package/dist/contexts.js +3 -0
- package/dist/contexts.js.map +1 -1
- package/dist/contexts.jsx +3 -0
- package/dist/contexts.jsx.map +1 -1
- package/dist/index.d.ts +11 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -11
- package/dist/index.jsx +14 -11
- package/dist/intl/index.d.ts +16 -0
- package/dist/intl/index.d.ts.map +1 -0
- package/dist/intl.js +212 -0
- package/dist/intl.js.map +1 -0
- package/dist/intl.jsx +212 -0
- package/dist/intl.jsx.map +1 -0
- package/dist/useDragAndDrop.d.ts +4 -2
- package/dist/useDragAndDrop.d.ts.map +1 -1
- package/dist/useDragAndDrop2.js +39 -21
- package/dist/useDragAndDrop2.js.map +1 -1
- package/dist/useDragAndDrop2.jsx +39 -21
- package/dist/useDragAndDrop2.jsx.map +1 -1
- package/dist/utils.d.ts +28 -9
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +96 -24
- package/dist/utils.js.map +1 -1
- package/dist/utils.jsx +81 -24
- package/dist/utils.jsx.map +1 -1
- package/dist/virtualizer/Layout.d.ts +9 -0
- package/dist/virtualizer/Layout.d.ts.map +1 -1
- package/dist/virtualizer/Layout.js +23 -2
- package/dist/virtualizer/Layout.js.map +1 -1
- package/dist/virtualizer/Layout.jsx +23 -2
- package/dist/virtualizer/Layout.jsx.map +1 -1
- package/package.json +29 -10
- package/src/ActionBar.tsx +50 -24
- package/src/ActionGroup.tsx +31 -19
- package/src/Alert.tsx +10 -4
- package/src/Autocomplete.tsx +24 -15
- package/src/Breadcrumbs.tsx +32 -16
- package/src/Button.tsx +182 -67
- package/src/Calendar.tsx +65 -47
- package/src/CalendarPicker.tsx +16 -1
- package/src/Checkbox.tsx +84 -116
- package/src/Collection.tsx +84 -3
- package/src/Color.tsx +282 -104
- package/src/ColorEditor.tsx +5 -1
- package/src/ComboBox.tsx +384 -109
- package/src/ContextualHelpTrigger.tsx +47 -41
- package/src/DateField.tsx +74 -106
- package/src/DatePicker.tsx +156 -352
- package/src/DateRangePickerContext.tsx +8 -0
- package/src/Dialog.tsx +105 -38
- package/src/Disclosure.tsx +29 -19
- package/src/DragAndDrop.tsx +43 -8
- package/src/DragPreview.tsx +20 -1
- package/src/DropZone.tsx +32 -18
- package/src/ElementTag.tsx +14 -104
- package/src/FieldError.tsx +39 -7
- package/src/FileTrigger.tsx +18 -3
- package/src/Focusable.tsx +27 -6
- package/src/Form.tsx +57 -11
- package/src/GridList.tsx +233 -141
- package/src/HiddenDateInput.tsx +19 -3
- package/src/Icon.tsx +8 -2
- package/src/Keyboard.tsx +18 -2
- package/src/Label.tsx +77 -0
- package/src/Landmark.tsx +6 -1
- package/src/Link.tsx +65 -19
- package/src/ListBox.tsx +645 -468
- package/src/ListDropTargetDelegate.ts +4 -0
- package/src/Menu.tsx +512 -349
- package/src/Meter.tsx +42 -8
- package/src/Modal.tsx +85 -42
- package/src/NumberField.tsx +161 -48
- package/src/Popover.tsx +424 -148
- package/src/Pressable.tsx +27 -6
- package/src/PreviewTrigger.tsx +171 -0
- package/src/ProgressBar.tsx +25 -3
- package/src/RadioGroup.tsx +230 -161
- package/src/RangeCalendar.tsx +75 -63
- package/src/RouterProvider.tsx +24 -14
- package/src/SearchField.tsx +118 -121
- package/src/Select.tsx +454 -274
- package/src/SelectionIndicator.tsx +21 -3
- package/src/Separator.tsx +17 -1
- package/src/SharedElementTransition.tsx +115 -97
- package/src/Slider.tsx +35 -17
- package/src/StepList.tsx +71 -32
- package/src/Switch.tsx +45 -29
- package/src/Table.tsx +446 -380
- package/src/Tabs.tsx +132 -155
- package/src/TagGroup.tsx +53 -40
- package/src/Text.tsx +23 -6
- package/src/TextField.tsx +118 -159
- package/src/TimeField.tsx +34 -95
- package/src/Toast.tsx +141 -67
- package/src/ToggleButton.tsx +33 -15
- package/src/ToggleButtonGroup.tsx +27 -9
- package/src/TokenField.tsx +379 -0
- package/src/Toolbar.tsx +19 -9
- package/src/Tooltip.tsx +126 -84
- package/src/Tree.tsx +233 -173
- package/src/Virtualizer.tsx +400 -138
- package/src/VirtualizerLayouts.ts +211 -26
- package/src/VisuallyHidden.tsx +22 -8
- package/src/contexts.ts +13 -0
- package/src/index.ts +32 -11
- package/src/intl/ar-AE.json +6 -0
- package/src/intl/bg-BG.json +6 -0
- package/src/intl/cs-CZ.json +6 -0
- package/src/intl/da-DK.json +6 -0
- package/src/intl/de-DE.json +6 -0
- package/src/intl/el-GR.json +6 -0
- package/src/intl/en-US.json +6 -0
- package/src/intl/es-ES.json +6 -0
- package/src/intl/et-EE.json +6 -0
- package/src/intl/fi-FI.json +6 -0
- package/src/intl/fr-FR.json +6 -0
- package/src/intl/he-IL.json +6 -0
- package/src/intl/hr-HR.json +6 -0
- package/src/intl/hu-HU.json +6 -0
- package/src/intl/index.ts +125 -0
- package/src/intl/it-IT.json +6 -0
- package/src/intl/ja-JP.json +6 -0
- package/src/intl/ko-KR.json +6 -0
- package/src/intl/lt-LT.json +6 -0
- package/src/intl/lv-LV.json +6 -0
- package/src/intl/nb-NO.json +6 -0
- package/src/intl/nl-NL.json +6 -0
- package/src/intl/pl-PL.json +6 -0
- package/src/intl/pt-BR.json +6 -0
- package/src/intl/pt-PT.json +6 -0
- package/src/intl/ro-RO.json +6 -0
- package/src/intl/ru-RU.json +6 -0
- package/src/intl/sk-SK.json +6 -0
- package/src/intl/sl-SI.json +6 -0
- package/src/intl/sr-SP.json +6 -0
- package/src/intl/sv-SE.json +6 -0
- package/src/intl/tr-TR.json +6 -0
- package/src/intl/uk-UA.json +6 -0
- package/src/intl/zh-CN.json +6 -0
- package/src/intl/zh-TW.json +6 -0
- package/src/useDragAndDrop.ts +30 -32
- package/src/utils.tsx +124 -68
- package/src/virtualizer/Layout.ts +29 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleButton.d.ts","sourceRoot":"","sources":["../src/ToggleButton.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ToggleButton.d.ts","sourceRoot":"","sources":["../src/ToggleButton.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAOL,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EAIf,MAAM,SAAS,CAAC;AAIjB,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;CAAE,GAAG,SAAS,CAAC;AAWzE,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,qBAAqB,EAAE,UAAU,CAAC,EAAE,SAAS;IAC3F,8DAA8D;IAC9D,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,+DAA+D;IAC/D,EAAE,CAAC,EAAE,GAAG,CAAC;IACT,QAAQ,CAAC,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAC;IACnD,KAAK,CAAC,EAAE,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;IACrD,KAAK,CAAC,EAAE,eAAe,CAAC,uBAAuB,CAAC,CAAC;IACjD,6CAA6C;IAC7C,GAAG,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAClC;AAED,eAAO,MAAM,mBAAmB,sDAAgD,CAAC;AASjF,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,CAsGlE"}
|
package/dist/ToggleButton.js
CHANGED
|
@@ -1,17 +1,30 @@
|
|
|
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/ToggleButton.tsx
|
|
13
|
+
import { dataAttr, filterDOMProps, useRenderProps } from "./utils.js";
|
|
2
14
|
import { useToggleButtonGroupStateContext } from "./ToggleButtonGroup.js";
|
|
3
|
-
import { getNextElement, insert,
|
|
4
|
-
import { createContext, createMemo,
|
|
5
|
-
import { createFocusRing, createHover, createToggleButton, createToggleButtonGroupItem, mergeProps as mergeProps$
|
|
15
|
+
import { getNextElement, insert, ref, runHydrationEvents, scope, spread, template } from "@solidjs/web";
|
|
16
|
+
import { createContext, createMemo, useContext } from "solid-js";
|
|
17
|
+
import { createFocusRing, createHover, createToggleButton, createToggleButtonGroupItem, mergeProps as mergeProps$1 } from "@proyecto-viviana/solidaria";
|
|
18
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
6
19
|
//#region src/ToggleButton.tsx
|
|
7
20
|
/**
|
|
8
21
|
* ToggleButton component for solidaria-components
|
|
9
22
|
*
|
|
10
23
|
* A pre-wired headless toggle button that combines pressed + selected state.
|
|
11
|
-
*
|
|
24
|
+
* Based on packages/react-aria-components/src/ToggleButton.tsx.
|
|
12
25
|
*/
|
|
13
|
-
var _tmpl$ =
|
|
14
|
-
function assignRef(ref, el) {
|
|
26
|
+
var _tmpl$ = /* @__PURE__ */ template(`<button>`);
|
|
27
|
+
function assignRef$1(ref, el) {
|
|
15
28
|
if (!ref) return;
|
|
16
29
|
if (typeof ref === "function") ref(el);
|
|
17
30
|
else ref.current = el;
|
|
@@ -23,7 +36,8 @@ function resolveDisabledValue(isDisabled) {
|
|
|
23
36
|
}
|
|
24
37
|
function ToggleButton(props) {
|
|
25
38
|
const contextProps = useContext(ToggleButtonContext);
|
|
26
|
-
const
|
|
39
|
+
const mergedProps = contextProps ? mergeProps$1(contextProps, props) : props;
|
|
40
|
+
const [local, ariaProps] = splitProps(mergedProps, [
|
|
27
41
|
"children",
|
|
28
42
|
"class",
|
|
29
43
|
"style",
|
|
@@ -34,13 +48,13 @@ function ToggleButton(props) {
|
|
|
34
48
|
]);
|
|
35
49
|
const groupState = useToggleButtonGroupStateContext();
|
|
36
50
|
const groupKey = local.id ?? local.toggleKey;
|
|
37
|
-
const standaloneAriaProps = mergeProps$
|
|
51
|
+
const standaloneAriaProps = mergeProps$1(ariaProps, { get id() {
|
|
38
52
|
return local.id;
|
|
39
53
|
} });
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
54
|
+
const groupedAriaProps = mergeProps$1(ariaProps, { get id() {
|
|
55
|
+
return local.id ?? local.toggleKey;
|
|
56
|
+
} });
|
|
57
|
+
const toggleAria = groupState && groupKey != null ? createToggleButtonGroupItem(groupedAriaProps, groupState) : createToggleButton(standaloneAriaProps);
|
|
44
58
|
const isDisabled = () => resolveDisabledValue(ariaProps.isDisabled) || !!groupState?.isDisabled;
|
|
45
59
|
const { isFocused, isFocusVisible, focusProps } = createFocusRing();
|
|
46
60
|
const { isHovered, hoverProps } = createHover({ get isDisabled() {
|
|
@@ -80,11 +94,17 @@ function ToggleButton(props) {
|
|
|
80
94
|
const { ref: _ref3, ...rest } = hoverProps;
|
|
81
95
|
return rest;
|
|
82
96
|
};
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
97
|
+
var _el$ = getNextElement(_tmpl$);
|
|
98
|
+
ref(() => {
|
|
99
|
+
return (el) => assignRef$1(local.ref, el);
|
|
100
|
+
}, _el$);
|
|
101
|
+
spread(_el$, [
|
|
102
|
+
domProps,
|
|
103
|
+
cleanButtonProps,
|
|
104
|
+
cleanFocusProps,
|
|
105
|
+
cleanHoverProps,
|
|
106
|
+
{
|
|
107
|
+
get "class"() {
|
|
88
108
|
return renderProps.class();
|
|
89
109
|
},
|
|
90
110
|
get style() {
|
|
@@ -93,29 +113,31 @@ function ToggleButton(props) {
|
|
|
93
113
|
get slot() {
|
|
94
114
|
return local.slot;
|
|
95
115
|
},
|
|
96
|
-
get
|
|
97
|
-
return toggleAria.isPressed()
|
|
116
|
+
get "data-pressed"() {
|
|
117
|
+
return dataAttr(toggleAria.isPressed());
|
|
98
118
|
},
|
|
99
|
-
get
|
|
100
|
-
return isHovered()
|
|
119
|
+
get "data-hovered"() {
|
|
120
|
+
return dataAttr(isHovered());
|
|
101
121
|
},
|
|
102
|
-
get
|
|
103
|
-
return isFocused()
|
|
122
|
+
get "data-focused"() {
|
|
123
|
+
return dataAttr(isFocused());
|
|
104
124
|
},
|
|
105
|
-
get
|
|
106
|
-
return isFocusVisible()
|
|
125
|
+
get "data-focus-visible"() {
|
|
126
|
+
return dataAttr(isFocusVisible());
|
|
107
127
|
},
|
|
108
|
-
get
|
|
109
|
-
return isDisabled()
|
|
128
|
+
get "data-disabled"() {
|
|
129
|
+
return dataAttr(isDisabled());
|
|
110
130
|
},
|
|
111
|
-
get
|
|
112
|
-
return toggleAria.isSelected()
|
|
131
|
+
get "data-selected"() {
|
|
132
|
+
return dataAttr(toggleAria.isSelected());
|
|
113
133
|
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
return
|
|
118
|
-
})
|
|
134
|
+
}
|
|
135
|
+
], true);
|
|
136
|
+
insert(_el$, scope(() => {
|
|
137
|
+
return renderProps.renderChildren();
|
|
138
|
+
}));
|
|
139
|
+
runHydrationEvents();
|
|
140
|
+
return _el$;
|
|
119
141
|
}
|
|
120
142
|
//#endregion
|
|
121
143
|
export { ToggleButton, ToggleButtonContext };
|
package/dist/ToggleButton.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleButton.js","names":["
|
|
1
|
+
{"version":3,"file":"ToggleButton.js","names":["ref={(el) => assignRef(local.ref, el)}","{renderProps.renderChildren()}","<button\n {...domProps()}\n {...cleanButtonProps()}\n {...cleanFocusProps()}\n {...cleanHoverProps()}\n class={renderProps.class()}\n style={renderProps.style()}\n ref={(el) => assignRef(local.ref, el)}\n slot={local.slot}\n data-pressed={dataAttr(toggleAria.isPressed())}\n data-hovered={dataAttr(isHovered())}\n data-focused={dataAttr(isFocused())}\n data-focus-visible={dataAttr(isFocusVisible())}\n data-disabled={dataAttr(isDisabled())}\n data-selected={dataAttr(toggleAria.isSelected())}\n >\n {renderProps.renderChildren()}\n </button>"],"sources":["../src/ToggleButton.tsx"],"sourcesContent":["/*\n * Copyright 2022 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/ToggleButton.tsx\n\n/**\n * ToggleButton component for solidaria-components\n *\n * A pre-wired headless toggle button that combines pressed + selected state.\n * Based on packages/react-aria-components/src/ToggleButton.tsx.\n */\n\nimport { createContext, createMemo, useContext } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport {\n createToggleButton,\n createToggleButtonGroupItem,\n createFocusRing,\n createHover,\n mergeProps,\n type AriaToggleButtonGroupItemProps,\n type AriaToggleButtonProps,\n} from \"@proyecto-viviana/solidaria\";\nimport type { Key } from \"@proyecto-viviana/solid-stately\";\nimport {\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n dataAttr,\n} from \"./utils\";\nimport { useToggleButtonGroupStateContext } from \"./ToggleButtonGroup\";\nimport { splitProps } from \"@proyecto-viviana/solidaria/utils\";\n\ntype RefLike<T> = ((el: T) => void) | { current?: T | null } | undefined;\n\nfunction assignRef<T>(ref: RefLike<T>, el: T): void {\n if (!ref) return;\n if (typeof ref === \"function\") {\n ref(el);\n } else {\n ref.current = el;\n }\n}\n\nexport interface ToggleButtonRenderProps {\n isHovered: boolean;\n isPressed: boolean;\n isFocused: boolean;\n isFocusVisible: boolean;\n isDisabled: boolean;\n isSelected: boolean;\n}\n\nexport interface ToggleButtonProps extends Omit<AriaToggleButtonProps, \"children\">, SlotProps {\n /** Key used when inside ToggleButtonGroup selection state. */\n toggleKey?: Key;\n /** Preferred group key prop, parity with RAC item id usage. */\n id?: Key;\n children?: RenderChildren<ToggleButtonRenderProps>;\n class?: ClassNameOrFunction<ToggleButtonRenderProps>;\n style?: StyleOrFunction<ToggleButtonRenderProps>;\n /** Ref for the underlying button element. */\n ref?: RefLike<HTMLButtonElement>;\n}\n\nexport const ToggleButtonContext = createContext<ToggleButtonProps | null>(null);\n\nfunction resolveDisabledValue(isDisabled: AriaToggleButtonProps[\"isDisabled\"]): boolean {\n if (typeof isDisabled === \"function\") {\n return isDisabled();\n }\n return !!isDisabled;\n}\n\nexport function ToggleButton(props: ToggleButtonProps): JSX.Element {\n const contextProps = useContext(ToggleButtonContext);\n const mergedProps = (contextProps ? mergeProps(contextProps, props) : props) as ToggleButtonProps;\n\n const [local, ariaProps] = splitProps(mergedProps, [\n \"children\",\n \"class\",\n \"style\",\n \"ref\",\n \"slot\",\n \"toggleKey\",\n \"id\",\n ]);\n const groupState = useToggleButtonGroupStateContext();\n const groupKey = local.id ?? local.toggleKey;\n const standaloneAriaProps = mergeProps<AriaToggleButtonProps>(ariaProps, {\n get id() {\n return local.id;\n },\n });\n\n const groupedAriaProps = mergeProps<AriaToggleButtonGroupItemProps>(ariaProps, {\n get id(): Key {\n return (local.id ?? local.toggleKey) as Key;\n },\n });\n\n const toggleAria =\n groupState && groupKey != null\n ? createToggleButtonGroupItem(groupedAriaProps, groupState)\n : createToggleButton(standaloneAriaProps);\n\n const isDisabled = () => resolveDisabledValue(ariaProps.isDisabled) || !!groupState?.isDisabled;\n\n const { isFocused, isFocusVisible, focusProps } = createFocusRing();\n const { isHovered, hoverProps } = createHover({\n get isDisabled() {\n return isDisabled();\n },\n });\n\n const renderValues = createMemo<ToggleButtonRenderProps>(() => ({\n isHovered: isHovered(),\n isPressed: toggleAria.isPressed(),\n isFocused: isFocused(),\n isFocusVisible: isFocusVisible(),\n isDisabled: isDisabled(),\n isSelected: toggleAria.isSelected(),\n }));\n\n const renderProps = useRenderProps(\n {\n get children() {\n return local.children;\n },\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-ToggleButton\",\n },\n renderValues,\n );\n\n const domProps = createMemo(() => {\n const filtered = filterDOMProps(ariaProps, { global: true });\n delete (filtered as Record<string, unknown>).onClick;\n delete (filtered as Record<string, unknown>).id;\n return filtered;\n });\n\n const cleanButtonProps = () => {\n const { ref: _ref1, ...rest } = toggleAria.buttonProps as Record<string, unknown>;\n return rest;\n };\n const cleanFocusProps = () => {\n const { ref: _ref2, ...rest } = focusProps as Record<string, unknown>;\n return rest;\n };\n const cleanHoverProps = () => {\n const { ref: _ref3, ...rest } = hoverProps as Record<string, unknown>;\n return rest;\n };\n\n return (\n <button\n {...domProps()}\n {...cleanButtonProps()}\n {...cleanFocusProps()}\n {...cleanHoverProps()}\n class={renderProps.class()}\n style={renderProps.style()}\n ref={(el) => assignRef(local.ref, el)}\n slot={local.slot}\n data-pressed={dataAttr(toggleAria.isPressed())}\n data-hovered={dataAttr(isHovered())}\n data-focused={dataAttr(isFocused())}\n data-focus-visible={dataAttr(isFocusVisible())}\n data-disabled={dataAttr(isDisabled())}\n data-selected={dataAttr(toggleAria.isSelected())}\n >\n {renderProps.renderChildren()}\n </button>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,SAAS,YAAa,KAAiB,IAAa;CAClD,IAAI,CAAC,KAAK;CACV,IAAI,OAAO,QAAQ,YACjB,IAAI,EAAE;MAEN,IAAI,UAAU;AAElB;AAuBA,MAAa,sBAAsB,cAAwC,IAAI;AAE/E,SAAS,qBAAqB,YAA0D;CACtF,IAAI,OAAO,eAAe,YACxB,OAAO,WAAW;CAEpB,OAAO,CAAC,CAAC;AACX;AAEA,SAAgB,aAAa,OAAuC;CAClE,MAAM,eAAe,WAAW,mBAAmB;CACnD,MAAM,cAAe,eAAe,aAAW,cAAc,KAAK,IAAI;CAEtE,MAAM,CAAC,OAAO,aAAa,WAAW,aAAa;EACjD;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CACD,MAAM,aAAa,iCAAiC;CACpD,MAAM,WAAW,MAAM,MAAM,MAAM;CACnC,MAAM,sBAAsB,aAAkC,WAAW,EACvE,IAAI,KAAK;EACP,OAAO,MAAM;CACf,EACF,CAAC;CAED,MAAM,mBAAmB,aAA2C,WAAW,EAC7E,IAAI,KAAU;EACZ,OAAQ,MAAM,MAAM,MAAM;CAC5B,EACF,CAAC;CAED,MAAM,aACJ,cAAc,YAAY,OACtB,4BAA4B,kBAAkB,UAAU,IACxD,mBAAmB,mBAAmB;CAE5C,MAAM,mBAAmB,qBAAqB,UAAU,UAAU,KAAK,CAAC,CAAC,YAAY;CAErF,MAAM,EAAE,WAAW,gBAAgB,eAAe,gBAAgB;CAClE,MAAM,EAAE,WAAW,eAAe,YAAY,EAC5C,IAAI,aAAa;EACf,OAAO,WAAW;CACpB,EACF,CAAC;CAED,MAAM,eAAe,kBAA2C;EAC9D,WAAW,UAAU;EACrB,WAAW,WAAW,UAAU;EAChC,WAAW,UAAU;EACrB,gBAAgB,eAAe;EAC/B,YAAY,WAAW;EACvB,YAAY,WAAW,WAAW;CACpC,EAAE;CAEF,MAAM,cAAc,eAClB;EACE,IAAI,WAAW;GACb,OAAO,MAAM;EACf;EACA,OAAO,MAAM;EACb,OAAO,MAAM;EACb,kBAAkB;CACpB,GACA,YACF;CAEA,MAAM,WAAW,iBAAiB;EAChC,MAAM,WAAW,eAAe,WAAW,EAAE,QAAQ,KAAK,CAAC;EAC3D,OAAQ,SAAqC;EAC7C,OAAQ,SAAqC;EAC7C,OAAO;CACT,CAAC;CAED,MAAM,yBAAyB;EAC7B,MAAM,EAAE,KAAK,OAAO,GAAG,SAAS,WAAW;EAC3C,OAAO;CACT;CACA,MAAM,wBAAwB;EAC5B,MAAM,EAAE,KAAK,OAAO,GAAG,SAAS;EAChC,OAAO;CACT;CACA,MAAM,wBAAwB;EAC5B,MAAM,EAAE,KAAK,OAAO,GAAG,SAAS;EAChC,OAAO;CACT;CAGE,IAAA,OAAA,eAAA,MAiBQ;CAVN,UAAA;EAAM,QAAA,OAAO,YAAU,MAAM,KAAK,EAAE;CAAC,GAArCA,IAAqC;;EANjC;EACA;EACA;EACA;;GACJ,IAAA,UAAA;IAAO,OAAA,YAAY,MAAM;GAAC;GAC1B,IAAA,QAAA;IAAO,OAAA,YAAY,MAAM;GAAC;GAE1B,IAAA,OAAA;IAAM,OAAA,MAAM;GAAI;GAChB,IAAA,iBAAA;IAAc,OAAA,SAAS,WAAW,UAAU,CAAC;GAAC;GAC9C,IAAA,iBAAA;IAAc,OAAA,SAAS,UAAU,CAAC;GAAC;GACnC,IAAA,iBAAA;IAAc,OAAA,SAAS,UAAU,CAAC;GAAC;GACnC,IAAA,uBAAA;IAAoB,OAAA,SAAS,eAAe,CAAC;GAAC;GAC9C,IAAA,kBAAA;IAAe,OAAA,SAAS,WAAW,CAAC;GAAC;GACrC,IAAA,kBAAA;IAAe,OAAA,SAAS,WAAW,WAAW,CAAC;GAAC;;;CAdlD,OAAA,MAgBEC,YAAAA;EAAC,OAAA,YAAY,eAAe;CAAC,CAAA,CACvB;CAjBR,mBAiBQ;CAlBV,OACEC;AAmBJ"}
|
package/dist/ToggleButton.jsx
CHANGED
|
@@ -1,15 +1,28 @@
|
|
|
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/ToggleButton.tsx
|
|
13
|
+
import { dataAttr, filterDOMProps, useRenderProps } from "./utils.jsx";
|
|
2
14
|
import { useToggleButtonGroupStateContext } from "./ToggleButtonGroup.jsx";
|
|
3
|
-
import { createContext, createMemo,
|
|
4
|
-
import { createFocusRing, createHover, createToggleButton, createToggleButtonGroupItem, mergeProps
|
|
15
|
+
import { createContext, createMemo, useContext } from "solid-js";
|
|
16
|
+
import { createFocusRing, createHover, createToggleButton, createToggleButtonGroupItem, mergeProps } from "@proyecto-viviana/solidaria";
|
|
17
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
5
18
|
//#region src/ToggleButton.tsx
|
|
6
19
|
/**
|
|
7
20
|
* ToggleButton component for solidaria-components
|
|
8
21
|
*
|
|
9
22
|
* A pre-wired headless toggle button that combines pressed + selected state.
|
|
10
|
-
*
|
|
23
|
+
* Based on packages/react-aria-components/src/ToggleButton.tsx.
|
|
11
24
|
*/
|
|
12
|
-
function assignRef(ref, el) {
|
|
25
|
+
function assignRef$1(ref, el) {
|
|
13
26
|
if (!ref) return;
|
|
14
27
|
if (typeof ref === "function") ref(el);
|
|
15
28
|
else ref.current = el;
|
|
@@ -21,7 +34,8 @@ function resolveDisabledValue(isDisabled) {
|
|
|
21
34
|
}
|
|
22
35
|
function ToggleButton(props) {
|
|
23
36
|
const contextProps = useContext(ToggleButtonContext);
|
|
24
|
-
const
|
|
37
|
+
const mergedProps = contextProps ? mergeProps(contextProps, props) : props;
|
|
38
|
+
const [local, ariaProps] = splitProps(mergedProps, [
|
|
25
39
|
"children",
|
|
26
40
|
"class",
|
|
27
41
|
"style",
|
|
@@ -32,13 +46,13 @@ function ToggleButton(props) {
|
|
|
32
46
|
]);
|
|
33
47
|
const groupState = useToggleButtonGroupStateContext();
|
|
34
48
|
const groupKey = local.id ?? local.toggleKey;
|
|
35
|
-
const standaloneAriaProps = mergeProps
|
|
49
|
+
const standaloneAriaProps = mergeProps(ariaProps, { get id() {
|
|
36
50
|
return local.id;
|
|
37
51
|
} });
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
52
|
+
const groupedAriaProps = mergeProps(ariaProps, { get id() {
|
|
53
|
+
return local.id ?? local.toggleKey;
|
|
54
|
+
} });
|
|
55
|
+
const toggleAria = groupState && groupKey != null ? createToggleButtonGroupItem(groupedAriaProps, groupState) : createToggleButton(standaloneAriaProps);
|
|
42
56
|
const isDisabled = () => resolveDisabledValue(ariaProps.isDisabled) || !!groupState?.isDisabled;
|
|
43
57
|
const { isFocused, isFocusVisible, focusProps } = createFocusRing();
|
|
44
58
|
const { isHovered, hoverProps } = createHover({ get isDisabled() {
|
|
@@ -78,7 +92,7 @@ function ToggleButton(props) {
|
|
|
78
92
|
const { ref: _ref3, ...rest } = hoverProps;
|
|
79
93
|
return rest;
|
|
80
94
|
};
|
|
81
|
-
return <button {...domProps()} {...cleanButtonProps()} {...cleanFocusProps()} {...cleanHoverProps()} class={renderProps.class()} style={renderProps.style()} ref={(el) => assignRef(local.ref, el)} slot={local.slot} data-pressed={toggleAria.isPressed()
|
|
95
|
+
return <button {...domProps()} {...cleanButtonProps()} {...cleanFocusProps()} {...cleanHoverProps()} class={renderProps.class()} style={renderProps.style()} ref={(el) => assignRef$1(local.ref, el)} slot={local.slot} data-pressed={dataAttr(toggleAria.isPressed())} data-hovered={dataAttr(isHovered())} data-focused={dataAttr(isFocused())} data-focus-visible={dataAttr(isFocusVisible())} data-disabled={dataAttr(isDisabled())} data-selected={dataAttr(toggleAria.isSelected())}>
|
|
82
96
|
{renderProps.renderChildren()}
|
|
83
97
|
</button>;
|
|
84
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleButton.jsx","names":["
|
|
1
|
+
{"version":3,"file":"ToggleButton.jsx","names":["assignRef"],"sources":["../src/ToggleButton.tsx"],"sourcesContent":["/*\n * Copyright 2022 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/ToggleButton.tsx\n\n/**\n * ToggleButton component for solidaria-components\n *\n * A pre-wired headless toggle button that combines pressed + selected state.\n * Based on packages/react-aria-components/src/ToggleButton.tsx.\n */\n\nimport { createContext, createMemo, useContext } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport {\n createToggleButton,\n createToggleButtonGroupItem,\n createFocusRing,\n createHover,\n mergeProps,\n type AriaToggleButtonGroupItemProps,\n type AriaToggleButtonProps,\n} from \"@proyecto-viviana/solidaria\";\nimport type { Key } from \"@proyecto-viviana/solid-stately\";\nimport {\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n dataAttr,\n} from \"./utils\";\nimport { useToggleButtonGroupStateContext } from \"./ToggleButtonGroup\";\nimport { splitProps } from \"@proyecto-viviana/solidaria/utils\";\n\ntype RefLike<T> = ((el: T) => void) | { current?: T | null } | undefined;\n\nfunction assignRef<T>(ref: RefLike<T>, el: T): void {\n if (!ref) return;\n if (typeof ref === \"function\") {\n ref(el);\n } else {\n ref.current = el;\n }\n}\n\nexport interface ToggleButtonRenderProps {\n isHovered: boolean;\n isPressed: boolean;\n isFocused: boolean;\n isFocusVisible: boolean;\n isDisabled: boolean;\n isSelected: boolean;\n}\n\nexport interface ToggleButtonProps extends Omit<AriaToggleButtonProps, \"children\">, SlotProps {\n /** Key used when inside ToggleButtonGroup selection state. */\n toggleKey?: Key;\n /** Preferred group key prop, parity with RAC item id usage. */\n id?: Key;\n children?: RenderChildren<ToggleButtonRenderProps>;\n class?: ClassNameOrFunction<ToggleButtonRenderProps>;\n style?: StyleOrFunction<ToggleButtonRenderProps>;\n /** Ref for the underlying button element. */\n ref?: RefLike<HTMLButtonElement>;\n}\n\nexport const ToggleButtonContext = createContext<ToggleButtonProps | null>(null);\n\nfunction resolveDisabledValue(isDisabled: AriaToggleButtonProps[\"isDisabled\"]): boolean {\n if (typeof isDisabled === \"function\") {\n return isDisabled();\n }\n return !!isDisabled;\n}\n\nexport function ToggleButton(props: ToggleButtonProps): JSX.Element {\n const contextProps = useContext(ToggleButtonContext);\n const mergedProps = (contextProps ? mergeProps(contextProps, props) : props) as ToggleButtonProps;\n\n const [local, ariaProps] = splitProps(mergedProps, [\n \"children\",\n \"class\",\n \"style\",\n \"ref\",\n \"slot\",\n \"toggleKey\",\n \"id\",\n ]);\n const groupState = useToggleButtonGroupStateContext();\n const groupKey = local.id ?? local.toggleKey;\n const standaloneAriaProps = mergeProps<AriaToggleButtonProps>(ariaProps, {\n get id() {\n return local.id;\n },\n });\n\n const groupedAriaProps = mergeProps<AriaToggleButtonGroupItemProps>(ariaProps, {\n get id(): Key {\n return (local.id ?? local.toggleKey) as Key;\n },\n });\n\n const toggleAria =\n groupState && groupKey != null\n ? createToggleButtonGroupItem(groupedAriaProps, groupState)\n : createToggleButton(standaloneAriaProps);\n\n const isDisabled = () => resolveDisabledValue(ariaProps.isDisabled) || !!groupState?.isDisabled;\n\n const { isFocused, isFocusVisible, focusProps } = createFocusRing();\n const { isHovered, hoverProps } = createHover({\n get isDisabled() {\n return isDisabled();\n },\n });\n\n const renderValues = createMemo<ToggleButtonRenderProps>(() => ({\n isHovered: isHovered(),\n isPressed: toggleAria.isPressed(),\n isFocused: isFocused(),\n isFocusVisible: isFocusVisible(),\n isDisabled: isDisabled(),\n isSelected: toggleAria.isSelected(),\n }));\n\n const renderProps = useRenderProps(\n {\n get children() {\n return local.children;\n },\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-ToggleButton\",\n },\n renderValues,\n );\n\n const domProps = createMemo(() => {\n const filtered = filterDOMProps(ariaProps, { global: true });\n delete (filtered as Record<string, unknown>).onClick;\n delete (filtered as Record<string, unknown>).id;\n return filtered;\n });\n\n const cleanButtonProps = () => {\n const { ref: _ref1, ...rest } = toggleAria.buttonProps as Record<string, unknown>;\n return rest;\n };\n const cleanFocusProps = () => {\n const { ref: _ref2, ...rest } = focusProps as Record<string, unknown>;\n return rest;\n };\n const cleanHoverProps = () => {\n const { ref: _ref3, ...rest } = hoverProps as Record<string, unknown>;\n return rest;\n };\n\n return (\n <button\n {...domProps()}\n {...cleanButtonProps()}\n {...cleanFocusProps()}\n {...cleanHoverProps()}\n class={renderProps.class()}\n style={renderProps.style()}\n ref={(el) => assignRef(local.ref, el)}\n slot={local.slot}\n data-pressed={dataAttr(toggleAria.isPressed())}\n data-hovered={dataAttr(isHovered())}\n data-focused={dataAttr(isFocused())}\n data-focus-visible={dataAttr(isFocusVisible())}\n data-disabled={dataAttr(isDisabled())}\n data-selected={dataAttr(toggleAria.isSelected())}\n >\n {renderProps.renderChildren()}\n </button>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA+CA,SAASA,YAAa,KAAiB,IAAa;CAClD,IAAI,CAAC,KAAK;CACV,IAAI,OAAO,QAAQ,YACjB,IAAI,EAAE;MAEN,IAAI,UAAU;AAElB;AAuBA,MAAa,sBAAsB,cAAwC,IAAI;AAE/E,SAAS,qBAAqB,YAA0D;CACtF,IAAI,OAAO,eAAe,YACxB,OAAO,WAAW;CAEpB,OAAO,CAAC,CAAC;AACX;AAEA,SAAgB,aAAa,OAAuC;CAClE,MAAM,eAAe,WAAW,mBAAmB;CACnD,MAAM,cAAe,eAAe,WAAW,cAAc,KAAK,IAAI;CAEtE,MAAM,CAAC,OAAO,aAAa,WAAW,aAAa;EACjD;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CACD,MAAM,aAAa,iCAAiC;CACpD,MAAM,WAAW,MAAM,MAAM,MAAM;CACnC,MAAM,sBAAsB,WAAkC,WAAW,EACvE,IAAI,KAAK;EACP,OAAO,MAAM;CACf,EACF,CAAC;CAED,MAAM,mBAAmB,WAA2C,WAAW,EAC7E,IAAI,KAAU;EACZ,OAAQ,MAAM,MAAM,MAAM;CAC5B,EACF,CAAC;CAED,MAAM,aACJ,cAAc,YAAY,OACtB,4BAA4B,kBAAkB,UAAU,IACxD,mBAAmB,mBAAmB;CAE5C,MAAM,mBAAmB,qBAAqB,UAAU,UAAU,KAAK,CAAC,CAAC,YAAY;CAErF,MAAM,EAAE,WAAW,gBAAgB,eAAe,gBAAgB;CAClE,MAAM,EAAE,WAAW,eAAe,YAAY,EAC5C,IAAI,aAAa;EACf,OAAO,WAAW;CACpB,EACF,CAAC;CAED,MAAM,eAAe,kBAA2C;EAC9D,WAAW,UAAU;EACrB,WAAW,WAAW,UAAU;EAChC,WAAW,UAAU;EACrB,gBAAgB,eAAe;EAC/B,YAAY,WAAW;EACvB,YAAY,WAAW,WAAW;CACpC,EAAE;CAEF,MAAM,cAAc,eAClB;EACE,IAAI,WAAW;GACb,OAAO,MAAM;EACf;EACA,OAAO,MAAM;EACb,OAAO,MAAM;EACb,kBAAkB;CACpB,GACA,YACF;CAEA,MAAM,WAAW,iBAAiB;EAChC,MAAM,WAAW,eAAe,WAAW,EAAE,QAAQ,KAAK,CAAC;EAC3D,OAAQ,SAAqC;EAC7C,OAAQ,SAAqC;EAC7C,OAAO;CACT,CAAC;CAED,MAAM,yBAAyB;EAC7B,MAAM,EAAE,KAAK,OAAO,GAAG,SAAS,WAAW;EAC3C,OAAO;CACT;CACA,MAAM,wBAAwB;EAC5B,MAAM,EAAE,KAAK,OAAO,GAAG,SAAS;EAChC,OAAO;CACT;CACA,MAAM,wBAAwB;EAC5B,MAAM,EAAE,KAAK,OAAO,GAAG,SAAS;EAChC,OAAO;CACT;CAEA,OACE,CAAC,WACK,SAAS,OACT,iBAAiB,OACjB,gBAAgB,OAChB,gBAAgB,GACpB,OAAO,YAAY,MAAM,GACzB,OAAO,YAAY,MAAM,GACzB,MAAM,OAAOA,YAAU,MAAM,KAAK,EAAE,GACpC,MAAM,MAAM,MACZ,cAAc,SAAS,WAAW,UAAU,CAAC,GAC7C,cAAc,SAAS,UAAU,CAAC,GAClC,cAAc,SAAS,UAAU,CAAC,GAClC,oBAAoB,SAAS,eAAe,CAAC,GAC7C,eAAe,SAAS,WAAW,CAAC,GACpC,eAAe,SAAS,WAAW,WAAW,CAAC,GAChD;OACE,YAAY,eAAe,EAAE;IAChC,EAAE;AAEN"}
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* ToggleButtonGroup component for solidaria-components.
|
|
3
|
-
*
|
|
4
|
-
* Groups toggle buttons with single/multiple selection state.
|
|
5
|
-
* Parity target: react-aria-components/src/ToggleButtonGroup.tsx
|
|
6
|
-
*/
|
|
7
|
-
import { type JSX } from "solid-js";
|
|
1
|
+
import type { JSX } from "@solidjs/web";
|
|
8
2
|
import { type Key, type ToggleGroupState } from "@proyecto-viviana/solid-stately";
|
|
9
3
|
import { type ClassNameOrFunction, type StyleOrFunction, type RenderChildren, type SlotProps } from "./utils";
|
|
10
4
|
export interface ToggleButtonGroupRenderProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleButtonGroup.d.ts","sourceRoot":"","sources":["../src/ToggleButtonGroup.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ToggleButtonGroup.d.ts","sourceRoot":"","sources":["../src/ToggleButtonGroup.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,SAAS,EAKf,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,YAAY,GAAG,UAAU,CAAC;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED,MAAM,WAAW,sBACf,SACE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,mBAAmB,CAAC,EAC9F,SAAS;IACX,aAAa,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IACtC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,YAAY,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7B,mBAAmB,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACpC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAC7C,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,cAAc,CAAC,4BAA4B,CAAC,CAAC;IACxD,KAAK,CAAC,EAAE,mBAAmB,CAAC,4BAA4B,CAAC,CAAC;IAC1D,KAAK,CAAC,EAAE,eAAe,CAAC,4BAA4B,CAAC,CAAC;CACvD;AAED,eAAO,MAAM,wBAAwB,2DAAqD,CAAC;AAC3F,eAAO,MAAM,6BAA6B,qDAA+C,CAAC;AAC1F,eAAO,MAAM,uBAAuB,qDAAgC,CAAC;AACrE,MAAM,MAAM,kCAAkC,GAAG,gBAAgB,CAAC;AAElE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,GAAG,CAAC,OAAO,CAwF5E;AAED,wBAAgB,gCAAgC,IAAI,gBAAgB,GAAG,IAAI,CAE1E"}
|
|
@@ -1,16 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/ToggleButtonGroup.tsx
|
|
13
|
+
import { attrString as attrString$1, dataAttr, filterDOMProps, useRenderProps } from "./utils.js";
|
|
14
|
+
import { createComponent, getNextElement, insert, ref, runHydrationEvents, spread, template } from "@solidjs/web";
|
|
15
|
+
import { createContext, createMemo, useContext } from "solid-js";
|
|
16
|
+
import { createToggleButtonGroup, mergeProps as mergeProps$1 } from "@proyecto-viviana/solidaria";
|
|
17
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
5
18
|
import { createToggleGroupState } from "@proyecto-viviana/solid-stately";
|
|
6
19
|
//#region src/ToggleButtonGroup.tsx
|
|
7
20
|
/**
|
|
8
21
|
* ToggleButtonGroup component for solidaria-components.
|
|
9
22
|
*
|
|
10
23
|
* Groups toggle buttons with single/multiple selection state.
|
|
11
|
-
*
|
|
24
|
+
* Based on packages/react-aria-components/src/ToggleButtonGroup.tsx.
|
|
12
25
|
*/
|
|
13
|
-
var _tmpl$ =
|
|
26
|
+
var _tmpl$ = /* @__PURE__ */ template(`<div>`);
|
|
14
27
|
const ToggleButtonGroupContext = createContext(null);
|
|
15
28
|
const ToggleButtonGroupStateContext = createContext(null);
|
|
16
29
|
const ToggleGroupStateContext = ToggleButtonGroupStateContext;
|
|
@@ -47,10 +60,10 @@ function ToggleButtonGroup(props) {
|
|
|
47
60
|
return !!local.isDisabled;
|
|
48
61
|
},
|
|
49
62
|
get "aria-label"() {
|
|
50
|
-
return local["aria-label"];
|
|
63
|
+
return attrString$1(local["aria-label"]);
|
|
51
64
|
},
|
|
52
65
|
get "aria-labelledby"() {
|
|
53
|
-
return local["aria-labelledby"];
|
|
66
|
+
return attrString$1(local["aria-labelledby"]);
|
|
54
67
|
}
|
|
55
68
|
}, state);
|
|
56
69
|
const renderProps = useRenderProps({
|
|
@@ -66,44 +79,46 @@ function ToggleButtonGroup(props) {
|
|
|
66
79
|
state
|
|
67
80
|
}));
|
|
68
81
|
const filteredDomProps = createMemo(() => filterDOMProps(domProps, { global: true }));
|
|
69
|
-
const mergedGroupProps = createMemo(() => mergeProps$
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
82
|
+
const mergedGroupProps = createMemo(() => mergeProps$1(filteredDomProps(), groupProps));
|
|
83
|
+
var _el$ = getNextElement(_tmpl$);
|
|
84
|
+
ref(() => {
|
|
85
|
+
return (el) => {
|
|
73
86
|
if (!local.ref) return;
|
|
74
87
|
if (typeof local.ref === "function") local.ref(el);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
})
|
|
88
|
+
};
|
|
89
|
+
}, _el$);
|
|
90
|
+
spread(_el$, [() => {
|
|
91
|
+
return mergedGroupProps();
|
|
92
|
+
}, {
|
|
93
|
+
get "class"() {
|
|
94
|
+
return renderProps.class();
|
|
95
|
+
},
|
|
96
|
+
get style() {
|
|
97
|
+
return renderProps.style();
|
|
98
|
+
},
|
|
99
|
+
get slot() {
|
|
100
|
+
return local.slot;
|
|
101
|
+
},
|
|
102
|
+
get "data-orientation"() {
|
|
103
|
+
return local.orientation ?? "horizontal";
|
|
104
|
+
},
|
|
105
|
+
get "data-disabled"() {
|
|
106
|
+
return dataAttr(local.isDisabled);
|
|
107
|
+
}
|
|
108
|
+
}], true);
|
|
109
|
+
insert(_el$, createComponent(ToggleButtonGroupContext, {
|
|
110
|
+
value: props,
|
|
111
|
+
get children() {
|
|
112
|
+
return createComponent(ToggleButtonGroupStateContext, {
|
|
113
|
+
value: state,
|
|
114
|
+
get children() {
|
|
115
|
+
return renderProps.renderChildren();
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}));
|
|
120
|
+
runHydrationEvents();
|
|
121
|
+
return _el$;
|
|
107
122
|
}
|
|
108
123
|
function useToggleButtonGroupStateContext() {
|
|
109
124
|
return useContext(ToggleButtonGroupStateContext);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleButtonGroup.js","names":["
|
|
1
|
+
{"version":3,"file":"ToggleButtonGroup.js","names":["ref={(el) => {\n if (!local.ref) return;\n if (typeof local.ref === \"function\") {\n local.ref(el);\n }\n }}","<ToggleButtonGroupContext value={props}>\n <ToggleButtonGroupStateContext value={state}>\n {renderProps.renderChildren()}\n </ToggleButtonGroupStateContext>\n </ToggleButtonGroupContext>","value={props}","<ToggleButtonGroupStateContext value={state}>\n {renderProps.renderChildren()}\n </ToggleButtonGroupStateContext>","value={state}","<div\n {...(mergedGroupProps() as JSX.HTMLAttributes<HTMLDivElement>)}\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n data-orientation={local.orientation ?? \"horizontal\"}\n data-disabled={dataAttr(local.isDisabled)}\n ref={(el) => {\n if (!local.ref) return;\n if (typeof local.ref === \"function\") {\n local.ref(el);\n }\n }}\n >\n <ToggleButtonGroupContext value={props}>\n <ToggleButtonGroupStateContext value={state}>\n {renderProps.renderChildren()}\n </ToggleButtonGroupStateContext>\n </ToggleButtonGroupContext>\n </div>"],"sources":["../src/ToggleButtonGroup.tsx"],"sourcesContent":["/*\n * Copyright 2024 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/ToggleButtonGroup.tsx\n\n/**\n * ToggleButtonGroup component for solidaria-components.\n *\n * Groups toggle buttons with single/multiple selection state.\n * Based on packages/react-aria-components/src/ToggleButtonGroup.tsx.\n */\n\nimport { createContext, createMemo, useContext } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport { createToggleButtonGroup, mergeProps } from \"@proyecto-viviana/solidaria\";\nimport {\n createToggleGroupState,\n type Key,\n type ToggleGroupState,\n} from \"@proyecto-viviana/solid-stately\";\nimport { splitProps } from \"@proyecto-viviana/solidaria/utils\";\nimport {\n type ClassNameOrFunction,\n type StyleOrFunction,\n type RenderChildren,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n dataAttr,\n attrString,\n} from \"./utils\";\n\nexport interface ToggleButtonGroupRenderProps {\n orientation: \"horizontal\" | \"vertical\";\n isDisabled: boolean;\n state: ToggleGroupState;\n}\n\nexport interface ToggleButtonGroupProps\n extends\n Omit<JSX.HTMLAttributes<HTMLDivElement>, \"children\" | \"class\" | \"style\" | \"onSelectionChange\">,\n SlotProps {\n selectionMode?: \"single\" | \"multiple\";\n disallowEmptySelection?: boolean;\n selectedKeys?: Iterable<Key>;\n defaultSelectedKeys?: Iterable<Key>;\n onSelectionChange?: (keys: Set<Key>) => void;\n orientation?: \"horizontal\" | \"vertical\";\n isDisabled?: boolean;\n children?: RenderChildren<ToggleButtonGroupRenderProps>;\n class?: ClassNameOrFunction<ToggleButtonGroupRenderProps>;\n style?: StyleOrFunction<ToggleButtonGroupRenderProps>;\n}\n\nexport const ToggleButtonGroupContext = createContext<ToggleButtonGroupProps | null>(null);\nexport const ToggleButtonGroupStateContext = createContext<ToggleGroupState | null>(null);\nexport const ToggleGroupStateContext = ToggleButtonGroupStateContext;\nexport type ToggleButtonGroupStateContextValue = ToggleGroupState;\n\nexport function ToggleButtonGroup(props: ToggleButtonGroupProps): JSX.Element {\n const [local, domProps] = splitProps(props, [\n \"selectionMode\",\n \"disallowEmptySelection\",\n \"selectedKeys\",\n \"defaultSelectedKeys\",\n \"onSelectionChange\",\n \"orientation\",\n \"isDisabled\",\n \"children\",\n \"class\",\n \"style\",\n \"ref\",\n \"slot\",\n \"aria-label\",\n \"aria-labelledby\",\n ]);\n\n const state = createToggleGroupState(() => ({\n selectionMode: local.selectionMode,\n disallowEmptySelection: local.disallowEmptySelection,\n selectedKeys: local.selectedKeys,\n defaultSelectedKeys: local.defaultSelectedKeys,\n onSelectionChange: local.onSelectionChange,\n isDisabled: !!local.isDisabled,\n }));\n\n const { groupProps } = createToggleButtonGroup(\n {\n get orientation() {\n return local.orientation;\n },\n get isDisabled() {\n return !!local.isDisabled;\n },\n get \"aria-label\"() {\n return attrString(local[\"aria-label\"]);\n },\n get \"aria-labelledby\"() {\n return attrString(local[\"aria-labelledby\"]);\n },\n },\n state,\n );\n\n const renderProps = useRenderProps(\n {\n get children() {\n return local.children;\n },\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-ToggleButtonGroup\",\n },\n () => ({\n orientation: local.orientation ?? \"horizontal\",\n isDisabled: !!local.isDisabled,\n state,\n }),\n );\n\n const filteredDomProps = createMemo(() => filterDOMProps(domProps, { global: true }));\n const mergedGroupProps = createMemo(() =>\n mergeProps(filteredDomProps(), groupProps as Record<string, unknown>),\n );\n\n return (\n <div\n {...(mergedGroupProps() as JSX.HTMLAttributes<HTMLDivElement>)}\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n data-orientation={local.orientation ?? \"horizontal\"}\n data-disabled={dataAttr(local.isDisabled)}\n ref={(el) => {\n if (!local.ref) return;\n if (typeof local.ref === \"function\") {\n local.ref(el);\n }\n }}\n >\n <ToggleButtonGroupContext value={props}>\n <ToggleButtonGroupStateContext value={state}>\n {renderProps.renderChildren()}\n </ToggleButtonGroupStateContext>\n </ToggleButtonGroupContext>\n </div>\n );\n}\n\nexport function useToggleButtonGroupStateContext(): ToggleGroupState | null {\n return useContext(ToggleButtonGroupStateContext);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA+DA,MAAa,2BAA2B,cAA6C,IAAI;AACzF,MAAa,gCAAgC,cAAuC,IAAI;AACxF,MAAa,0BAA0B;AAGvC,SAAgB,kBAAkB,OAA4C;CAC5E,MAAM,CAAC,OAAO,YAAY,WAAW,OAAO;EAC1C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,QAAQ,8BAA8B;EAC1C,eAAe,MAAM;EACrB,wBAAwB,MAAM;EAC9B,cAAc,MAAM;EACpB,qBAAqB,MAAM;EAC3B,mBAAmB,MAAM;EACzB,YAAY,CAAC,CAAC,MAAM;CACtB,EAAE;CAEF,MAAM,EAAE,eAAe,wBACrB;EACE,IAAI,cAAc;GAChB,OAAO,MAAM;EACf;EACA,IAAI,aAAa;GACf,OAAO,CAAC,CAAC,MAAM;EACjB;EACA,IAAI,eAAe;GACjB,OAAO,aAAW,MAAM,aAAa;EACvC;EACA,IAAI,oBAAoB;GACtB,OAAO,aAAW,MAAM,kBAAkB;EAC5C;CACF,GACA,KACF;CAEA,MAAM,cAAc,eAClB;EACE,IAAI,WAAW;GACb,OAAO,MAAM;EACf;EACA,OAAO,MAAM;EACb,OAAO,MAAM;EACb,kBAAkB;CACpB,UACO;EACL,aAAa,MAAM,eAAe;EAClC,YAAY,CAAC,CAAC,MAAM;EACpB;CACF,EACF;CAEA,MAAM,mBAAmB,iBAAiB,eAAe,UAAU,EAAE,QAAQ,KAAK,CAAC,CAAC;CACpF,MAAM,mBAAmB,iBACvB,aAAW,iBAAiB,GAAG,UAAqC,CACtE;CAGE,IAAA,OAAA,eAAA,MAmBK;CAZH,UAAA;EAAM,QAAA,OAAO;GACX,IAAI,CAAC,MAAM,KAAK;GAChB,IAAI,OAAO,MAAM,QAAQ,YACvB,MAAM,IAAI,EAAE;EAEhB;CAAC,GALDA,IAKC;CAXD,OAAA,MAAA,OAAA;EAAK,OAAA,iBAAiB;CAAwC,GAAA;EAC9D,IAAA,UAAA;GAAO,OAAA,YAAY,MAAM;EAAC;EAC1B,IAAA,QAAA;GAAO,OAAA,YAAY,MAAM;EAAC;EAC1B,IAAA,OAAA;GAAM,OAAA,MAAM;EAAI;EAChB,IAAA,qBAAA;GAAkB,OAAA,MAAM,eAAe;EAAY;EACnD,IAAA,kBAAA;GAAe,OAAA,SAAS,MAAM,UAAU;EAAC;;CAN3C,OAAA,MAcEC,gBAAAA,0BAAAA;EAA0BC,OAAO;EAAjC,IAAA,WAAA;GACEC,OAAAA,gBAAAA,+BAAAA;IAA+BC,OAAO;IAAtC,IAAA,WAAA;KACG,OAAA,YAAY,eAAe;IACC;;EACP;CACvB,CAAA,CAAA;CAnBL,mBAmBK;CApBP,OACEC;AAqBJ;AAEA,SAAgB,mCAA4D;CAC1E,OAAO,WAAW,6BAA6B;AACjD"}
|
|
@@ -1,13 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/ToggleButtonGroup.tsx
|
|
13
|
+
import { attrString as attrString$1, dataAttr, filterDOMProps, useRenderProps } from "./utils.jsx";
|
|
14
|
+
import { createContext, createMemo, useContext } from "solid-js";
|
|
15
|
+
import { createToggleButtonGroup, mergeProps } from "@proyecto-viviana/solidaria";
|
|
16
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
4
17
|
import { createToggleGroupState } from "@proyecto-viviana/solid-stately";
|
|
5
18
|
//#region src/ToggleButtonGroup.tsx
|
|
6
19
|
/**
|
|
7
20
|
* ToggleButtonGroup component for solidaria-components.
|
|
8
21
|
*
|
|
9
22
|
* Groups toggle buttons with single/multiple selection state.
|
|
10
|
-
*
|
|
23
|
+
* Based on packages/react-aria-components/src/ToggleButtonGroup.tsx.
|
|
11
24
|
*/
|
|
12
25
|
const ToggleButtonGroupContext = createContext(null);
|
|
13
26
|
const ToggleButtonGroupStateContext = createContext(null);
|
|
@@ -45,10 +58,10 @@ function ToggleButtonGroup(props) {
|
|
|
45
58
|
return !!local.isDisabled;
|
|
46
59
|
},
|
|
47
60
|
get "aria-label"() {
|
|
48
|
-
return local["aria-label"];
|
|
61
|
+
return attrString$1(local["aria-label"]);
|
|
49
62
|
},
|
|
50
63
|
get "aria-labelledby"() {
|
|
51
|
-
return local["aria-labelledby"];
|
|
64
|
+
return attrString$1(local["aria-labelledby"]);
|
|
52
65
|
}
|
|
53
66
|
}, state);
|
|
54
67
|
const renderProps = useRenderProps({
|
|
@@ -64,16 +77,16 @@ function ToggleButtonGroup(props) {
|
|
|
64
77
|
state
|
|
65
78
|
}));
|
|
66
79
|
const filteredDomProps = createMemo(() => filterDOMProps(domProps, { global: true }));
|
|
67
|
-
const mergedGroupProps = createMemo(() => mergeProps
|
|
68
|
-
return <div {...mergedGroupProps()} class={renderProps.class()} style={renderProps.style()} slot={local.slot} data-orientation={local.orientation ?? "horizontal"} data-disabled={local.isDisabled
|
|
80
|
+
const mergedGroupProps = createMemo(() => mergeProps(filteredDomProps(), groupProps));
|
|
81
|
+
return <div {...mergedGroupProps()} class={renderProps.class()} style={renderProps.style()} slot={local.slot} data-orientation={local.orientation ?? "horizontal"} data-disabled={dataAttr(local.isDisabled)} ref={(el) => {
|
|
69
82
|
if (!local.ref) return;
|
|
70
83
|
if (typeof local.ref === "function") local.ref(el);
|
|
71
84
|
}}>
|
|
72
|
-
<ToggleButtonGroupContext
|
|
73
|
-
<ToggleButtonGroupStateContext
|
|
85
|
+
<ToggleButtonGroupContext value={props}>
|
|
86
|
+
<ToggleButtonGroupStateContext value={state}>
|
|
74
87
|
{renderProps.renderChildren()}
|
|
75
|
-
</ToggleButtonGroupStateContext
|
|
76
|
-
</ToggleButtonGroupContext
|
|
88
|
+
</ToggleButtonGroupStateContext>
|
|
89
|
+
</ToggleButtonGroupContext>
|
|
77
90
|
</div>;
|
|
78
91
|
}
|
|
79
92
|
function useToggleButtonGroupStateContext() {
|