@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,17 +1,33 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/ToggleButtonGroup.tsx
|
|
14
|
+
|
|
1
15
|
/**
|
|
2
16
|
* ToggleButtonGroup component for solidaria-components.
|
|
3
17
|
*
|
|
4
18
|
* Groups toggle buttons with single/multiple selection state.
|
|
5
|
-
*
|
|
19
|
+
* Based on packages/react-aria-components/src/ToggleButtonGroup.tsx.
|
|
6
20
|
*/
|
|
7
21
|
|
|
8
|
-
import {
|
|
22
|
+
import { createContext, createMemo, useContext } from "solid-js";
|
|
23
|
+
import type { JSX } from "@solidjs/web";
|
|
9
24
|
import { createToggleButtonGroup, mergeProps } from "@proyecto-viviana/solidaria";
|
|
10
25
|
import {
|
|
11
26
|
createToggleGroupState,
|
|
12
27
|
type Key,
|
|
13
28
|
type ToggleGroupState,
|
|
14
29
|
} from "@proyecto-viviana/solid-stately";
|
|
30
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
15
31
|
import {
|
|
16
32
|
type ClassNameOrFunction,
|
|
17
33
|
type StyleOrFunction,
|
|
@@ -19,6 +35,8 @@ import {
|
|
|
19
35
|
type SlotProps,
|
|
20
36
|
useRenderProps,
|
|
21
37
|
filterDOMProps,
|
|
38
|
+
dataAttr,
|
|
39
|
+
attrString,
|
|
22
40
|
} from "./utils";
|
|
23
41
|
|
|
24
42
|
export interface ToggleButtonGroupRenderProps {
|
|
@@ -84,10 +102,10 @@ export function ToggleButtonGroup(props: ToggleButtonGroupProps): JSX.Element {
|
|
|
84
102
|
return !!local.isDisabled;
|
|
85
103
|
},
|
|
86
104
|
get "aria-label"() {
|
|
87
|
-
return local["aria-label"];
|
|
105
|
+
return attrString(local["aria-label"]);
|
|
88
106
|
},
|
|
89
107
|
get "aria-labelledby"() {
|
|
90
|
-
return local["aria-labelledby"];
|
|
108
|
+
return attrString(local["aria-labelledby"]);
|
|
91
109
|
},
|
|
92
110
|
},
|
|
93
111
|
state,
|
|
@@ -121,7 +139,7 @@ export function ToggleButtonGroup(props: ToggleButtonGroupProps): JSX.Element {
|
|
|
121
139
|
style={renderProps.style()}
|
|
122
140
|
slot={local.slot}
|
|
123
141
|
data-orientation={local.orientation ?? "horizontal"}
|
|
124
|
-
data-disabled={local.isDisabled
|
|
142
|
+
data-disabled={dataAttr(local.isDisabled)}
|
|
125
143
|
ref={(el) => {
|
|
126
144
|
if (!local.ref) return;
|
|
127
145
|
if (typeof local.ref === "function") {
|
|
@@ -129,11 +147,11 @@ export function ToggleButtonGroup(props: ToggleButtonGroupProps): JSX.Element {
|
|
|
129
147
|
}
|
|
130
148
|
}}
|
|
131
149
|
>
|
|
132
|
-
<ToggleButtonGroupContext
|
|
133
|
-
<ToggleButtonGroupStateContext
|
|
150
|
+
<ToggleButtonGroupContext value={props}>
|
|
151
|
+
<ToggleButtonGroupStateContext value={state}>
|
|
134
152
|
{renderProps.renderChildren()}
|
|
135
|
-
</ToggleButtonGroupStateContext
|
|
136
|
-
</ToggleButtonGroupContext
|
|
153
|
+
</ToggleButtonGroupStateContext>
|
|
154
|
+
</ToggleButtonGroupContext>
|
|
137
155
|
</div>
|
|
138
156
|
);
|
|
139
157
|
}
|
|
@@ -0,0 +1,379 @@
|
|
|
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
|
+
|
|
13
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/TokenField.tsx
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Token field components for solidaria-components.
|
|
17
|
+
*
|
|
18
|
+
* A token field allows users to enter text with inline tokens.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import { createContext, createMemo, createSignal, useContext } from "solid-js";
|
|
22
|
+
import type { Context } from "solid-js";
|
|
23
|
+
import type { JSX } from "@solidjs/web";
|
|
24
|
+
import {
|
|
25
|
+
createHideableComponent,
|
|
26
|
+
createHover,
|
|
27
|
+
createFocusRing,
|
|
28
|
+
createToken,
|
|
29
|
+
createTokenField,
|
|
30
|
+
mergeProps,
|
|
31
|
+
type AriaTokenFieldProps,
|
|
32
|
+
} from "@proyecto-viviana/solidaria";
|
|
33
|
+
import {
|
|
34
|
+
createTokenFieldState,
|
|
35
|
+
TokenFieldValue,
|
|
36
|
+
type TokenFieldState,
|
|
37
|
+
type TokenSegment,
|
|
38
|
+
} from "@proyecto-viviana/solid-stately";
|
|
39
|
+
import { LabelContext } from "./Label";
|
|
40
|
+
import { TextContext } from "./Text";
|
|
41
|
+
import { FieldInputContext, type TextFieldContextValue } from "./TextField";
|
|
42
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
43
|
+
import {
|
|
44
|
+
Provider,
|
|
45
|
+
type ClassNameOrFunction,
|
|
46
|
+
type ContextValue,
|
|
47
|
+
type RenderChildren,
|
|
48
|
+
type SlotProps,
|
|
49
|
+
type StyleOrFunction,
|
|
50
|
+
assignRef,
|
|
51
|
+
filterDOMProps,
|
|
52
|
+
type RefLike,
|
|
53
|
+
type SlottedContextValue,
|
|
54
|
+
useContextProps,
|
|
55
|
+
useRenderProps,
|
|
56
|
+
useSlot,
|
|
57
|
+
useSlottedContext,
|
|
58
|
+
dataAttr,
|
|
59
|
+
} from "./utils";
|
|
60
|
+
|
|
61
|
+
export interface TokenFieldRenderProps {
|
|
62
|
+
isDisabled: boolean;
|
|
63
|
+
isReadOnly: boolean;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export interface TokenFieldProps<T extends TokenFieldValue = TokenFieldValue>
|
|
67
|
+
extends Omit<AriaTokenFieldProps<T>, "class" | "style" | "children">, SlotProps {
|
|
68
|
+
children?: RenderChildren<TokenFieldRenderProps>;
|
|
69
|
+
class?: ClassNameOrFunction<TokenFieldRenderProps>;
|
|
70
|
+
style?: StyleOrFunction<TokenFieldRenderProps>;
|
|
71
|
+
ref?: RefLike<HTMLDivElement>;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export interface TokenInputRenderProps {
|
|
75
|
+
isHovered: boolean;
|
|
76
|
+
isFocused: boolean;
|
|
77
|
+
isFocusVisible: boolean;
|
|
78
|
+
isDisabled: boolean;
|
|
79
|
+
isReadOnly: boolean;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export interface TokenInputProps<T extends TokenFieldValue = TokenFieldValue> extends SlotProps {
|
|
83
|
+
children: (segment: TokenSegment<T extends TokenFieldValue<infer V> ? V : never>) => JSX.Element;
|
|
84
|
+
class?: ClassNameOrFunction<TokenInputRenderProps>;
|
|
85
|
+
style?: StyleOrFunction<TokenInputRenderProps>;
|
|
86
|
+
ref?: RefLike<HTMLDivElement>;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
interface TokenInputContextValue<T extends TokenFieldValue = TokenFieldValue> {
|
|
90
|
+
tokenFieldProps: JSX.HTMLAttributes<HTMLDivElement>;
|
|
91
|
+
state: TokenFieldState<T>;
|
|
92
|
+
isDisabled: boolean;
|
|
93
|
+
isReadOnly: boolean;
|
|
94
|
+
autocompleteProps?: JSX.HTMLAttributes<HTMLDivElement>;
|
|
95
|
+
setInputRef: (el: HTMLDivElement | null) => void;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export const TokenFieldContext = createContext<ContextValue<TokenFieldProps, HTMLDivElement>>(null);
|
|
99
|
+
const TokenInputContext = createContext<TokenInputContextValue | null>(null);
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* A token field allows users to enter text with inline tokens.
|
|
103
|
+
*/
|
|
104
|
+
export const TokenField = createHideableComponent(function TokenField<
|
|
105
|
+
T extends TokenFieldValue = TokenFieldValue,
|
|
106
|
+
>(props: TokenFieldProps<T>): JSX.Element {
|
|
107
|
+
const [merged, setOuterRef] = useContextProps(
|
|
108
|
+
props,
|
|
109
|
+
props.ref,
|
|
110
|
+
TokenFieldContext as Context<ContextValue<TokenFieldProps<T>, HTMLDivElement>>,
|
|
111
|
+
);
|
|
112
|
+
const [local, rest] = splitProps(merged, [
|
|
113
|
+
"children",
|
|
114
|
+
"class",
|
|
115
|
+
"style",
|
|
116
|
+
"slot",
|
|
117
|
+
"ref",
|
|
118
|
+
"isDisabled",
|
|
119
|
+
"isReadOnly",
|
|
120
|
+
"onChange",
|
|
121
|
+
"role",
|
|
122
|
+
]);
|
|
123
|
+
const [labelRef] = useSlot(!merged["aria-label"] && !merged["aria-labelledby"]);
|
|
124
|
+
|
|
125
|
+
const fieldCtx = useSlottedContext(
|
|
126
|
+
FieldInputContext as unknown as Context<SlottedContextValue<TextFieldContextValue>>,
|
|
127
|
+
merged.slot,
|
|
128
|
+
);
|
|
129
|
+
const [inputRef, setInputRef] = createSignal<HTMLDivElement | null>(null);
|
|
130
|
+
|
|
131
|
+
const isDisabled = () => local.isDisabled || false;
|
|
132
|
+
const isReadOnly = () => local.isReadOnly || false;
|
|
133
|
+
|
|
134
|
+
const state = createTokenFieldState<T>({
|
|
135
|
+
get value() {
|
|
136
|
+
return merged.value;
|
|
137
|
+
},
|
|
138
|
+
get defaultValue() {
|
|
139
|
+
return merged.defaultValue;
|
|
140
|
+
},
|
|
141
|
+
onChange: (value) => {
|
|
142
|
+
local.onChange?.(value);
|
|
143
|
+
const onAutocompleteChange = (fieldCtx as { onChange?: (value: string) => void } | null)
|
|
144
|
+
?.onChange;
|
|
145
|
+
onAutocompleteChange?.(value.toString());
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
const aria = createTokenField(
|
|
150
|
+
{
|
|
151
|
+
...merged,
|
|
152
|
+
get role() {
|
|
153
|
+
return (
|
|
154
|
+
local.role ||
|
|
155
|
+
((fieldCtx as { inputProps?: { role?: string } } | null)?.inputProps?.role as
|
|
156
|
+
| AriaTokenFieldProps["role"]
|
|
157
|
+
| undefined) ||
|
|
158
|
+
"textbox"
|
|
159
|
+
);
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
state,
|
|
163
|
+
() => inputRef(),
|
|
164
|
+
);
|
|
165
|
+
|
|
166
|
+
const renderValues = createMemo<TokenFieldRenderProps>(() => ({
|
|
167
|
+
isDisabled: isDisabled(),
|
|
168
|
+
isReadOnly: isReadOnly(),
|
|
169
|
+
}));
|
|
170
|
+
const renderProps = useRenderProps(
|
|
171
|
+
{
|
|
172
|
+
get children() {
|
|
173
|
+
return local.children;
|
|
174
|
+
},
|
|
175
|
+
class: local.class,
|
|
176
|
+
style: local.style,
|
|
177
|
+
defaultClassName: "solidaria-TokenField",
|
|
178
|
+
},
|
|
179
|
+
renderValues,
|
|
180
|
+
);
|
|
181
|
+
const domProps = createMemo(() =>
|
|
182
|
+
filterDOMProps(rest as Record<string, unknown>, { global: true }),
|
|
183
|
+
);
|
|
184
|
+
|
|
185
|
+
return (
|
|
186
|
+
<div
|
|
187
|
+
{...domProps()}
|
|
188
|
+
ref={(el) => {
|
|
189
|
+
setOuterRef(el);
|
|
190
|
+
assignRef(local.ref, el);
|
|
191
|
+
}}
|
|
192
|
+
slot={local.slot || undefined}
|
|
193
|
+
data-disabled={dataAttr(isDisabled())}
|
|
194
|
+
data-readonly={dataAttr(isReadOnly())}
|
|
195
|
+
class={renderProps.class()}
|
|
196
|
+
style={renderProps.style()}
|
|
197
|
+
>
|
|
198
|
+
<Provider
|
|
199
|
+
values={
|
|
200
|
+
[
|
|
201
|
+
[
|
|
202
|
+
LabelContext,
|
|
203
|
+
{
|
|
204
|
+
...aria.labelProps,
|
|
205
|
+
elementType: "span",
|
|
206
|
+
ref: labelRef,
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
[
|
|
210
|
+
TextContext,
|
|
211
|
+
{
|
|
212
|
+
slots: {
|
|
213
|
+
description: aria.descriptionProps,
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
],
|
|
217
|
+
[
|
|
218
|
+
TokenInputContext,
|
|
219
|
+
{
|
|
220
|
+
tokenFieldProps: aria.tokenFieldProps,
|
|
221
|
+
state,
|
|
222
|
+
isDisabled: isDisabled(),
|
|
223
|
+
isReadOnly: isReadOnly(),
|
|
224
|
+
autocompleteProps: fieldCtx as JSX.HTMLAttributes<HTMLDivElement> | undefined,
|
|
225
|
+
setInputRef,
|
|
226
|
+
},
|
|
227
|
+
],
|
|
228
|
+
] as Array<[Context<unknown>, unknown]>
|
|
229
|
+
}
|
|
230
|
+
>
|
|
231
|
+
{renderProps.renderChildren()}
|
|
232
|
+
</Provider>
|
|
233
|
+
</div>
|
|
234
|
+
);
|
|
235
|
+
}) as (props: TokenFieldProps) => JSX.Element;
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* A token input represents the editable area within a token field.
|
|
239
|
+
*/
|
|
240
|
+
export function TokenInput<T extends TokenFieldValue = TokenFieldValue>(
|
|
241
|
+
props: TokenInputProps<T>,
|
|
242
|
+
): JSX.Element {
|
|
243
|
+
const context = useContext(TokenInputContext);
|
|
244
|
+
if (!context) {
|
|
245
|
+
throw new Error("TokenInput must be used within a TokenField");
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
const [local, rest] = splitProps(props, ["children", "class", "style", "slot", "ref"]);
|
|
249
|
+
const { isHovered, hoverProps } = createHover({});
|
|
250
|
+
const { isFocused, isFocusVisible, focusProps } = createFocusRing();
|
|
251
|
+
|
|
252
|
+
const renderValues = createMemo<TokenInputRenderProps>(() => ({
|
|
253
|
+
isHovered: isHovered(),
|
|
254
|
+
isFocused: isFocused(),
|
|
255
|
+
isFocusVisible: isFocusVisible(),
|
|
256
|
+
isDisabled: context.isDisabled,
|
|
257
|
+
isReadOnly: context.isReadOnly,
|
|
258
|
+
}));
|
|
259
|
+
const renderProps = useRenderProps(
|
|
260
|
+
{
|
|
261
|
+
class: local.class,
|
|
262
|
+
style: local.style,
|
|
263
|
+
defaultClassName: "solidaria-TokenInput",
|
|
264
|
+
},
|
|
265
|
+
renderValues,
|
|
266
|
+
);
|
|
267
|
+
const domProps = createMemo(() =>
|
|
268
|
+
filterDOMProps(rest as Record<string, unknown>, { global: true }),
|
|
269
|
+
);
|
|
270
|
+
const cleanFocusProps = () => {
|
|
271
|
+
const { ref: _ref, ...restFocus } = focusProps as Record<string, unknown>;
|
|
272
|
+
return restFocus;
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
return (
|
|
276
|
+
<div
|
|
277
|
+
{...mergeProps(
|
|
278
|
+
domProps(),
|
|
279
|
+
cleanFocusProps(),
|
|
280
|
+
hoverProps as Record<string, unknown>,
|
|
281
|
+
context.tokenFieldProps as Record<string, unknown>,
|
|
282
|
+
(context.autocompleteProps as Record<string, unknown> | undefined) ?? {},
|
|
283
|
+
)}
|
|
284
|
+
ref={(el) => {
|
|
285
|
+
context.setInputRef(el);
|
|
286
|
+
assignRef(local.ref, el);
|
|
287
|
+
}}
|
|
288
|
+
slot={local.slot || undefined}
|
|
289
|
+
data-focused={dataAttr(isFocused())}
|
|
290
|
+
data-focus-visible={dataAttr(isFocusVisible())}
|
|
291
|
+
data-disabled={dataAttr(context.isDisabled)}
|
|
292
|
+
data-readonly={dataAttr(context.isReadOnly)}
|
|
293
|
+
class={renderProps.class()}
|
|
294
|
+
style={{
|
|
295
|
+
...(renderProps.style() as JSX.CSSProperties | undefined),
|
|
296
|
+
...((context.tokenFieldProps.style as JSX.CSSProperties | undefined) ?? {}),
|
|
297
|
+
}}
|
|
298
|
+
>
|
|
299
|
+
{context.state.value().segments.map((segment) => {
|
|
300
|
+
if (segment.type === "token") {
|
|
301
|
+
return (
|
|
302
|
+
<span>
|
|
303
|
+
{"\u200b"}
|
|
304
|
+
{local.children(segment as TokenSegment)}
|
|
305
|
+
{"\u200b"}
|
|
306
|
+
</span>
|
|
307
|
+
);
|
|
308
|
+
}
|
|
309
|
+
return segment.text;
|
|
310
|
+
})}
|
|
311
|
+
{context.state.value().segments.at(-1)?.text.endsWith("\n") ? <br /> : null}
|
|
312
|
+
</div>
|
|
313
|
+
);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
export interface TokenRenderProps {
|
|
317
|
+
isSelected: boolean;
|
|
318
|
+
isDisabled: boolean;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
export interface TokenProps extends SlotProps {
|
|
322
|
+
children?: RenderChildren<TokenRenderProps>;
|
|
323
|
+
class?: ClassNameOrFunction<TokenRenderProps>;
|
|
324
|
+
style?: StyleOrFunction<TokenRenderProps>;
|
|
325
|
+
ref?: RefLike<HTMLSpanElement>;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
/**
|
|
329
|
+
* A token represents an inline segment within a token field.
|
|
330
|
+
*/
|
|
331
|
+
export function Token(props: TokenProps): JSX.Element {
|
|
332
|
+
const context = useContext(TokenInputContext);
|
|
333
|
+
if (!context) {
|
|
334
|
+
throw new Error("Token must be used within a TokenField");
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
const [local, rest] = splitProps(props, ["children", "class", "style", "slot", "ref"]);
|
|
338
|
+
const [tokenRef, setTokenRef] = createSignal<HTMLSpanElement | null>(null);
|
|
339
|
+
const aria = createToken({}, context.state, () => tokenRef());
|
|
340
|
+
|
|
341
|
+
const renderValues = createMemo<TokenRenderProps>(() => ({
|
|
342
|
+
isSelected: aria.isSelected(),
|
|
343
|
+
isDisabled: context.isDisabled,
|
|
344
|
+
}));
|
|
345
|
+
const renderProps = useRenderProps(
|
|
346
|
+
{
|
|
347
|
+
get children() {
|
|
348
|
+
return local.children;
|
|
349
|
+
},
|
|
350
|
+
class: local.class,
|
|
351
|
+
style: local.style,
|
|
352
|
+
defaultClassName: "solidaria-Token",
|
|
353
|
+
},
|
|
354
|
+
renderValues,
|
|
355
|
+
);
|
|
356
|
+
const domProps = createMemo(() =>
|
|
357
|
+
filterDOMProps(rest as Record<string, unknown>, { global: true }),
|
|
358
|
+
);
|
|
359
|
+
|
|
360
|
+
return (
|
|
361
|
+
<span
|
|
362
|
+
{...mergeProps(domProps(), aria.tokenProps as Record<string, unknown>)}
|
|
363
|
+
ref={(el) => {
|
|
364
|
+
setTokenRef(el);
|
|
365
|
+
assignRef(local.ref, el);
|
|
366
|
+
}}
|
|
367
|
+
slot={local.slot || undefined}
|
|
368
|
+
data-selected={dataAttr(aria.isSelected())}
|
|
369
|
+
data-disabled={dataAttr(context.isDisabled)}
|
|
370
|
+
class={renderProps.class()}
|
|
371
|
+
style={{
|
|
372
|
+
...(renderProps.style() as JSX.CSSProperties | undefined),
|
|
373
|
+
...((aria.tokenProps.style as JSX.CSSProperties | undefined) ?? {}),
|
|
374
|
+
}}
|
|
375
|
+
>
|
|
376
|
+
{renderProps.renderChildren()}
|
|
377
|
+
</span>
|
|
378
|
+
);
|
|
379
|
+
}
|
package/src/Toolbar.tsx
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/Toolbar.tsx
|
|
14
|
+
|
|
1
15
|
/**
|
|
2
16
|
* Toolbar component for solidaria-components
|
|
3
17
|
*
|
|
@@ -5,20 +19,16 @@
|
|
|
5
19
|
* Port of react-aria-components/src/Toolbar.tsx
|
|
6
20
|
*/
|
|
7
21
|
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
createContext,
|
|
12
|
-
createMemo,
|
|
13
|
-
splitProps,
|
|
14
|
-
useContext,
|
|
15
|
-
} from "solid-js";
|
|
22
|
+
import { createContext, createMemo, useContext } from "solid-js";
|
|
23
|
+
import type { ParentProps } from "solid-js";
|
|
24
|
+
import type { JSX } from "@solidjs/web";
|
|
16
25
|
import {
|
|
17
26
|
createToolbar,
|
|
18
27
|
type AriaToolbarProps,
|
|
19
28
|
type Orientation,
|
|
20
29
|
} from "@proyecto-viviana/solidaria";
|
|
21
30
|
import { type SlotProps, filterDOMProps } from "./utils";
|
|
31
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
22
32
|
|
|
23
33
|
export interface ToolbarRenderProps {
|
|
24
34
|
/** The orientation of the toolbar. */
|
|
@@ -78,7 +88,7 @@ export function Toolbar(props: ToolbarProps): JSX.Element {
|
|
|
78
88
|
const ctx = useContext(ToolbarContext);
|
|
79
89
|
const slotProps = () => {
|
|
80
90
|
if (ctx?.slots && local.slot) {
|
|
81
|
-
return ctx.slots[local.slot] || {};
|
|
91
|
+
return ctx.slots[typeof local.slot === "string" ? local.slot : "default"] || {};
|
|
82
92
|
}
|
|
83
93
|
return {};
|
|
84
94
|
};
|