@proyecto-viviana/solidaria-components 0.5.0 → 0.7.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE-APACHE-2.0 +201 -0
- package/NOTICE +91 -0
- package/README.md +4 -7
- package/dist/ActionBar.d.ts +2 -10
- package/dist/ActionBar.d.ts.map +1 -1
- package/dist/ActionBar.js +95 -59
- package/dist/ActionBar.js.map +1 -1
- package/dist/ActionBar.jsx +42 -15
- package/dist/ActionBar.jsx.map +1 -1
- package/dist/ActionGroup.d.ts +1 -12
- package/dist/ActionGroup.d.ts.map +1 -1
- package/dist/ActionGroup.js +66 -44
- package/dist/ActionGroup.js.map +1 -1
- package/dist/ActionGroup.jsx +25 -10
- package/dist/ActionGroup.jsx.map +1 -1
- package/dist/Alert.d.ts +4 -1
- package/dist/Alert.d.ts.map +1 -1
- package/dist/Alert.js +25 -17
- package/dist/Alert.js.map +1 -1
- package/dist/Alert.jsx +9 -5
- package/dist/Alert.jsx.map +1 -1
- package/dist/Autocomplete.d.ts +2 -9
- package/dist/Autocomplete.d.ts.map +1 -1
- package/dist/Autocomplete.js +18 -5
- package/dist/Autocomplete.js.map +1 -1
- package/dist/Autocomplete.jsx +20 -7
- package/dist/Autocomplete.jsx.map +1 -1
- package/dist/Breadcrumbs.d.ts +2 -7
- package/dist/Breadcrumbs.d.ts.map +1 -1
- package/dist/Breadcrumbs.js +71 -51
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/Breadcrumbs.jsx +25 -12
- package/dist/Breadcrumbs.jsx.map +1 -1
- package/dist/Button.d.ts +1 -7
- package/dist/Button.d.ts.map +1 -1
- package/dist/Button.js +125 -72
- package/dist/Button.js.map +1 -1
- package/dist/Button.jsx +105 -43
- package/dist/Button.jsx.map +1 -1
- package/dist/Calendar.d.ts +1 -7
- package/dist/Calendar.d.ts.map +1 -1
- package/dist/Calendar.js +297 -221
- package/dist/Calendar.js.map +1 -1
- package/dist/Calendar.jsx +52 -32
- package/dist/Calendar.jsx.map +1 -1
- package/dist/CalendarPicker.d.ts +1 -10
- package/dist/CalendarPicker.d.ts.map +1 -1
- package/dist/CalendarPicker.js +12 -0
- package/dist/CalendarPicker.js.map +1 -1
- package/dist/CalendarPicker.jsx +12 -0
- package/dist/CalendarPicker.jsx.map +1 -1
- package/dist/Checkbox.d.ts +2 -7
- package/dist/Checkbox.d.ts.map +1 -1
- package/dist/Checkbox.js +332 -270
- package/dist/Checkbox.js.map +1 -1
- package/dist/Checkbox.jsx +70 -77
- package/dist/Checkbox.jsx.map +1 -1
- package/dist/Collection.d.ts +33 -7
- package/dist/Collection.d.ts.map +1 -1
- package/dist/Collection.js +128 -74
- package/dist/Collection.js.map +1 -1
- package/dist/Collection.jsx +46 -7
- package/dist/Collection.jsx.map +1 -1
- package/dist/Color.d.ts +15 -20
- package/dist/Color.d.ts.map +1 -1
- package/dist/Color.js +572 -334
- package/dist/Color.js.map +1 -1
- package/dist/Color.jsx +205 -85
- package/dist/Color.jsx.map +1 -1
- package/dist/ColorEditor.d.ts +3 -1
- package/dist/ColorEditor.d.ts.map +1 -1
- package/dist/ColorEditor.js +147 -124
- package/dist/ColorEditor.js.map +1 -1
- package/dist/ColorEditor.jsx +4 -1
- package/dist/ColorEditor.jsx.map +1 -1
- package/dist/ComboBox.d.ts +31 -10
- package/dist/ComboBox.d.ts.map +1 -1
- package/dist/ComboBox.js +539 -274
- package/dist/ComboBox.js.map +1 -1
- package/dist/ComboBox.jsx +213 -70
- package/dist/ComboBox.jsx.map +1 -1
- package/dist/ContextualHelpTrigger.d.ts +1 -7
- package/dist/ContextualHelpTrigger.d.ts.map +1 -1
- package/dist/ContextualHelpTrigger.js +102 -72
- package/dist/ContextualHelpTrigger.js.map +1 -1
- package/dist/ContextualHelpTrigger.jsx +36 -16
- package/dist/ContextualHelpTrigger.jsx.map +1 -1
- package/dist/DateField.d.ts +2 -7
- package/dist/DateField.d.ts.map +1 -1
- package/dist/DateField.js +0 -2
- package/dist/DateField.jsx +0 -2
- package/dist/DateField2.js +194 -179
- package/dist/DateField2.js.map +1 -1
- package/dist/DateField2.jsx +58 -55
- package/dist/DateField2.jsx.map +1 -1
- package/dist/DatePicker.d.ts +7 -7
- package/dist/DatePicker.d.ts.map +1 -1
- package/dist/DatePicker.js +2 -2
- package/dist/DatePicker.jsx +2 -2
- package/dist/DatePicker2.js +357 -435
- package/dist/DatePicker2.js.map +1 -1
- package/dist/DatePicker2.jsx +109 -178
- package/dist/DatePicker2.jsx.map +1 -1
- package/dist/DateRangePickerContext.d.ts +7 -0
- package/dist/DateRangePickerContext.d.ts.map +1 -1
- package/dist/Dialog.d.ts +4 -9
- package/dist/Dialog.d.ts.map +1 -1
- package/dist/Dialog.js +168 -101
- package/dist/Dialog.js.map +1 -1
- package/dist/Dialog.jsx +75 -27
- package/dist/Dialog.jsx.map +1 -1
- package/dist/Disclosure.d.ts +1 -9
- package/dist/Disclosure.d.ts.map +1 -1
- package/dist/Disclosure.js +121 -79
- package/dist/Disclosure.js.map +1 -1
- package/dist/Disclosure.jsx +32 -19
- package/dist/Disclosure.jsx.map +1 -1
- package/dist/DragAndDrop.d.ts +9 -6
- package/dist/DragAndDrop.d.ts.map +1 -1
- package/dist/DragAndDrop.js +37 -22
- package/dist/DragAndDrop.js.map +1 -1
- package/dist/DragAndDrop.jsx +20 -4
- package/dist/DragAndDrop.jsx.map +1 -1
- package/dist/DragPreview.d.ts +1 -1
- package/dist/DragPreview.d.ts.map +1 -1
- package/dist/DropZone.d.ts +1 -7
- package/dist/DropZone.d.ts.map +1 -1
- package/dist/DropZone.js +74 -40
- package/dist/DropZone.js.map +1 -1
- package/dist/DropZone.jsx +24 -8
- package/dist/DropZone.jsx.map +1 -1
- package/dist/ElementTag.d.ts +9 -20
- package/dist/ElementTag.d.ts.map +1 -1
- package/dist/ElementTag.js +8 -210
- package/dist/ElementTag.js.map +1 -1
- package/dist/ElementTag.jsx +8 -57
- package/dist/ElementTag.jsx.map +1 -1
- package/dist/FieldError.d.ts +8 -7
- package/dist/FieldError.d.ts.map +1 -1
- package/dist/FieldError.js +33 -13
- package/dist/FieldError.js.map +1 -1
- package/dist/FieldError.jsx +20 -5
- package/dist/FieldError.jsx.map +1 -1
- package/dist/FileTrigger.d.ts +1 -7
- package/dist/FileTrigger.d.ts.map +1 -1
- package/dist/FileTrigger.js +30 -12
- package/dist/FileTrigger.js.map +1 -1
- package/dist/FileTrigger.jsx +15 -2
- package/dist/FileTrigger.jsx.map +1 -1
- package/dist/Focusable.d.ts +2 -8
- package/dist/Focusable.d.ts.map +1 -1
- package/dist/Focusable.js +23 -6
- package/dist/Focusable.js.map +1 -1
- package/dist/Focusable.jsx +22 -5
- package/dist/Focusable.jsx.map +1 -1
- package/dist/Form.d.ts +9 -8
- package/dist/Form.d.ts.map +1 -1
- package/dist/Form.js +66 -43
- package/dist/Form.js.map +1 -1
- package/dist/Form.jsx +36 -16
- package/dist/Form.jsx.map +1 -1
- package/dist/GridList.d.ts +5 -10
- package/dist/GridList.d.ts.map +1 -1
- package/dist/GridList.js +372 -243
- package/dist/GridList.js.map +1 -1
- package/dist/GridList.jsx +177 -99
- package/dist/GridList.jsx.map +1 -1
- package/dist/HiddenDateInput.d.ts +1 -7
- package/dist/HiddenDateInput.d.ts.map +1 -1
- package/dist/Icon.d.ts +4 -1
- package/dist/Icon.d.ts.map +1 -1
- package/dist/Icon.js +41 -37
- package/dist/Icon.js.map +1 -1
- package/dist/Icon.jsx +7 -3
- package/dist/Icon.jsx.map +1 -1
- package/dist/Keyboard.d.ts +1 -7
- package/dist/Keyboard.d.ts.map +1 -1
- package/dist/Keyboard.js +24 -11
- package/dist/Keyboard.js.map +1 -1
- package/dist/Keyboard.jsx +15 -2
- package/dist/Keyboard.jsx.map +1 -1
- package/dist/Label.d.ts +20 -0
- package/dist/Label.d.ts.map +1 -0
- package/dist/Label.js +60 -0
- package/dist/Label.js.map +1 -0
- package/dist/Label.jsx +47 -0
- package/dist/Label.jsx.map +1 -0
- package/dist/Landmark.d.ts +4 -1
- package/dist/Landmark.d.ts.map +1 -1
- package/dist/Landmark.js +10 -4
- package/dist/Landmark.js.map +1 -1
- package/dist/Landmark.jsx +5 -1
- package/dist/Landmark.jsx.map +1 -1
- package/dist/Link.d.ts +2 -7
- package/dist/Link.d.ts.map +1 -1
- package/dist/Link.js +56 -36
- package/dist/Link.js.map +1 -1
- package/dist/Link.jsx +52 -10
- package/dist/Link.jsx.map +1 -1
- package/dist/ListBox.d.ts +17 -13
- package/dist/ListBox.d.ts.map +1 -1
- package/dist/ListBox.js +647 -348
- package/dist/ListBox.js.map +1 -1
- package/dist/ListBox.jsx +339 -236
- package/dist/ListBox.jsx.map +1 -1
- package/dist/ListDropTargetDelegate.d.ts +3 -0
- package/dist/ListDropTargetDelegate.d.ts.map +1 -1
- package/dist/Menu.d.ts +39 -30
- package/dist/Menu.d.ts.map +1 -1
- package/dist/Menu.js +547 -368
- package/dist/Menu.js.map +1 -1
- package/dist/Menu.jsx +328 -230
- package/dist/Menu.jsx.map +1 -1
- package/dist/Meter.d.ts +6 -13
- package/dist/Meter.d.ts.map +1 -1
- package/dist/Meter.js +55 -18
- package/dist/Meter.js.map +1 -1
- package/dist/Meter.jsx +33 -8
- package/dist/Meter.jsx.map +1 -1
- package/dist/Modal.d.ts +1 -7
- package/dist/Modal.d.ts.map +1 -1
- package/dist/Modal.js +104 -56
- package/dist/Modal.js.map +1 -1
- package/dist/Modal.jsx +68 -38
- package/dist/Modal.jsx.map +1 -1
- package/dist/NumberField.d.ts +4 -7
- package/dist/NumberField.d.ts.map +1 -1
- package/dist/NumberField.js +243 -124
- package/dist/NumberField.js.map +1 -1
- package/dist/NumberField.jsx +115 -26
- package/dist/NumberField.jsx.map +1 -1
- package/dist/Popover.d.ts +15 -7
- package/dist/Popover.d.ts.map +1 -1
- package/dist/Popover.js +370 -181
- package/dist/Popover.js.map +1 -1
- package/dist/Popover.jsx +215 -82
- package/dist/Popover.jsx.map +1 -1
- package/dist/Pressable.d.ts +2 -8
- package/dist/Pressable.d.ts.map +1 -1
- package/dist/Pressable.js +23 -6
- package/dist/Pressable.js.map +1 -1
- package/dist/Pressable.jsx +22 -5
- package/dist/Pressable.jsx.map +1 -1
- package/dist/PreviewTrigger.d.ts +24 -0
- package/dist/PreviewTrigger.d.ts.map +1 -0
- package/dist/PreviewTrigger.js +128 -0
- package/dist/PreviewTrigger.js.map +1 -0
- package/dist/PreviewTrigger.jsx +117 -0
- package/dist/PreviewTrigger.jsx.map +1 -0
- package/dist/ProgressBar.d.ts +1 -7
- package/dist/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar.js +34 -14
- package/dist/ProgressBar.js.map +1 -1
- package/dist/ProgressBar.jsx +17 -3
- package/dist/ProgressBar.jsx.map +1 -1
- package/dist/RadioGroup.d.ts +2 -7
- package/dist/RadioGroup.d.ts.map +1 -1
- package/dist/RadioGroup.js +388 -269
- package/dist/RadioGroup.js.map +1 -1
- package/dist/RadioGroup.jsx +110 -99
- package/dist/RadioGroup.jsx.map +1 -1
- package/dist/RangeCalendar.d.ts +3 -7
- package/dist/RangeCalendar.d.ts.map +1 -1
- package/dist/RangeCalendar.js +271 -202
- package/dist/RangeCalendar.js.map +1 -1
- package/dist/RangeCalendar.jsx +56 -37
- package/dist/RangeCalendar.jsx.map +1 -1
- package/dist/RouterProvider.d.ts +3 -9
- package/dist/RouterProvider.d.ts.map +1 -1
- package/dist/RouterProvider.js +15 -14
- package/dist/RouterProvider.js.map +1 -1
- package/dist/RouterProvider.jsx +14 -13
- package/dist/RouterProvider.jsx.map +1 -1
- package/dist/SearchField.d.ts +4 -7
- package/dist/SearchField.d.ts.map +1 -1
- package/dist/SearchField.js +191 -164
- package/dist/SearchField.js.map +1 -1
- package/dist/SearchField.jsx +69 -62
- package/dist/SearchField.jsx.map +1 -1
- package/dist/Select.d.ts +5 -10
- package/dist/Select.d.ts.map +1 -1
- package/dist/Select.js +565 -359
- package/dist/Select.js.map +1 -1
- package/dist/Select.jsx +281 -161
- package/dist/Select.jsx.map +1 -1
- package/dist/SelectionIndicator.d.ts +1 -4
- package/dist/SelectionIndicator.d.ts.map +1 -1
- package/dist/SelectionIndicator.js +29 -13
- package/dist/SelectionIndicator.js.map +1 -1
- package/dist/SelectionIndicator.jsx +18 -4
- package/dist/SelectionIndicator.jsx.map +1 -1
- package/dist/Separator.d.ts +1 -7
- package/dist/Separator.d.ts.map +1 -1
- package/dist/Separator.js +22 -6
- package/dist/Separator.js.map +1 -1
- package/dist/Separator.jsx +16 -3
- package/dist/Separator.jsx.map +1 -1
- package/dist/SharedElementTransition.d.ts +1 -10
- package/dist/SharedElementTransition.d.ts.map +1 -1
- package/dist/SharedElementTransition.js +68 -40
- package/dist/SharedElementTransition.js.map +1 -1
- package/dist/SharedElementTransition.jsx +49 -25
- package/dist/SharedElementTransition.jsx.map +1 -1
- package/dist/Slider.d.ts +2 -8
- package/dist/Slider.d.ts.map +1 -1
- package/dist/Slider.js +155 -97
- package/dist/Slider.js.map +1 -1
- package/dist/Slider.jsx +25 -12
- package/dist/Slider.jsx.map +1 -1
- package/dist/StepList.d.ts +1 -7
- package/dist/StepList.d.ts.map +1 -1
- package/dist/StepList.js +112 -68
- package/dist/StepList.js.map +1 -1
- package/dist/StepList.jsx +58 -20
- package/dist/StepList.jsx.map +1 -1
- package/dist/Switch.d.ts +2 -9
- package/dist/Switch.d.ts.map +1 -1
- package/dist/Switch.js +164 -114
- package/dist/Switch.js.map +1 -1
- package/dist/Switch.jsx +26 -13
- package/dist/Switch.jsx.map +1 -1
- package/dist/Table.d.ts +2 -1
- package/dist/Table.d.ts.map +1 -1
- package/dist/Table.js +689 -592
- package/dist/Table.js.map +1 -1
- package/dist/Table.jsx +317 -237
- package/dist/Table.jsx.map +1 -1
- package/dist/Tabs.d.ts +2 -7
- package/dist/Tabs.d.ts.map +1 -1
- package/dist/Tabs.js +278 -293
- package/dist/Tabs.js.map +1 -1
- package/dist/Tabs.jsx +68 -66
- package/dist/Tabs.jsx.map +1 -1
- package/dist/TagGroup.d.ts +4 -11
- package/dist/TagGroup.d.ts.map +1 -1
- package/dist/TagGroup.js +153 -115
- package/dist/TagGroup.js.map +1 -1
- package/dist/TagGroup.jsx +37 -24
- package/dist/TagGroup.jsx.map +1 -1
- package/dist/Text.d.ts +3 -3
- package/dist/Text.d.ts.map +1 -1
- package/dist/Text.js +24 -7
- package/dist/Text.js.map +1 -1
- package/dist/Text.jsx +17 -5
- package/dist/Text.jsx.map +1 -1
- package/dist/TextField.d.ts +3 -16
- package/dist/TextField.d.ts.map +1 -1
- package/dist/TextField.js +104 -129
- package/dist/TextField.js.map +1 -1
- package/dist/TextField.jsx +76 -102
- package/dist/TextField.jsx.map +1 -1
- package/dist/TimeField.d.ts +2 -15
- package/dist/TimeField.d.ts.map +1 -1
- package/dist/TimeField.js +86 -102
- package/dist/TimeField.js.map +1 -1
- package/dist/TimeField.jsx +32 -49
- package/dist/TimeField.jsx.map +1 -1
- package/dist/Toast.d.ts +10 -13
- package/dist/Toast.d.ts.map +1 -1
- package/dist/Toast.js +209 -108
- package/dist/Toast.js.map +1 -1
- package/dist/Toast.jsx +127 -22
- package/dist/Toast.jsx.map +1 -1
- package/dist/ToggleButton.d.ts +1 -7
- package/dist/ToggleButton.d.ts.map +1 -1
- package/dist/ToggleButton.js +57 -35
- package/dist/ToggleButton.js.map +1 -1
- package/dist/ToggleButton.jsx +26 -12
- package/dist/ToggleButton.jsx.map +1 -1
- package/dist/ToggleButtonGroup.d.ts +1 -7
- package/dist/ToggleButtonGroup.d.ts.map +1 -1
- package/dist/ToggleButtonGroup.js +59 -44
- package/dist/ToggleButtonGroup.js.map +1 -1
- package/dist/ToggleButtonGroup.jsx +25 -12
- package/dist/ToggleButtonGroup.jsx.map +1 -1
- package/dist/TokenField.d.ts +52 -0
- package/dist/TokenField.d.ts.map +1 -0
- package/dist/TokenField.js +301 -0
- package/dist/TokenField.js.map +1 -0
- package/dist/TokenField.jsx +197 -0
- package/dist/TokenField.jsx.map +1 -0
- package/dist/Toolbar.d.ts +2 -7
- package/dist/Toolbar.d.ts.map +1 -1
- package/dist/Toolbar.js +35 -16
- package/dist/Toolbar.js.map +1 -1
- package/dist/Toolbar.jsx +15 -2
- package/dist/Toolbar.jsx.map +1 -1
- package/dist/Tooltip.d.ts +2 -7
- package/dist/Tooltip.d.ts.map +1 -1
- package/dist/Tooltip.js +105 -68
- package/dist/Tooltip.js.map +1 -1
- package/dist/Tooltip.jsx +60 -36
- package/dist/Tooltip.jsx.map +1 -1
- package/dist/Tree.d.ts +8 -11
- package/dist/Tree.d.ts.map +1 -1
- package/dist/Tree.js +486 -339
- package/dist/Tree.js.map +1 -1
- package/dist/Tree.jsx +155 -107
- package/dist/Tree.jsx.map +1 -1
- package/dist/Virtualizer.d.ts +39 -9
- package/dist/Virtualizer.d.ts.map +1 -1
- package/dist/Virtualizer.js +2 -2
- package/dist/Virtualizer.jsx +2 -2
- package/dist/Virtualizer2.js +491 -136
- package/dist/Virtualizer2.js.map +1 -1
- package/dist/Virtualizer2.jsx +455 -122
- package/dist/Virtualizer2.jsx.map +1 -1
- package/dist/VirtualizerLayouts.d.ts +55 -2
- package/dist/VirtualizerLayouts.d.ts.map +1 -1
- package/dist/VisuallyHidden.d.ts +4 -3
- package/dist/VisuallyHidden.d.ts.map +1 -1
- package/dist/VisuallyHidden.js +18 -11
- package/dist/VisuallyHidden.js.map +1 -1
- package/dist/VisuallyHidden.jsx +15 -9
- package/dist/VisuallyHidden.jsx.map +1 -1
- package/dist/contexts.d.ts +25 -0
- package/dist/contexts.d.ts.map +1 -1
- package/dist/contexts.js +3 -0
- package/dist/contexts.js.map +1 -1
- package/dist/contexts.jsx +3 -0
- package/dist/contexts.jsx.map +1 -1
- package/dist/index.d.ts +11 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -11
- package/dist/index.jsx +14 -11
- package/dist/intl/index.d.ts +16 -0
- package/dist/intl/index.d.ts.map +1 -0
- package/dist/intl.js +212 -0
- package/dist/intl.js.map +1 -0
- package/dist/intl.jsx +212 -0
- package/dist/intl.jsx.map +1 -0
- package/dist/useDragAndDrop.d.ts +4 -2
- package/dist/useDragAndDrop.d.ts.map +1 -1
- package/dist/useDragAndDrop2.js +39 -21
- package/dist/useDragAndDrop2.js.map +1 -1
- package/dist/useDragAndDrop2.jsx +39 -21
- package/dist/useDragAndDrop2.jsx.map +1 -1
- package/dist/utils.d.ts +28 -9
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +96 -24
- package/dist/utils.js.map +1 -1
- package/dist/utils.jsx +81 -24
- package/dist/utils.jsx.map +1 -1
- package/dist/virtualizer/Layout.d.ts +9 -0
- package/dist/virtualizer/Layout.d.ts.map +1 -1
- package/dist/virtualizer/Layout.js +23 -2
- package/dist/virtualizer/Layout.js.map +1 -1
- package/dist/virtualizer/Layout.jsx +23 -2
- package/dist/virtualizer/Layout.jsx.map +1 -1
- package/package.json +29 -10
- package/src/ActionBar.tsx +50 -24
- package/src/ActionGroup.tsx +31 -19
- package/src/Alert.tsx +10 -4
- package/src/Autocomplete.tsx +24 -15
- package/src/Breadcrumbs.tsx +32 -16
- package/src/Button.tsx +182 -67
- package/src/Calendar.tsx +65 -47
- package/src/CalendarPicker.tsx +16 -1
- package/src/Checkbox.tsx +84 -116
- package/src/Collection.tsx +84 -3
- package/src/Color.tsx +282 -104
- package/src/ColorEditor.tsx +5 -1
- package/src/ComboBox.tsx +384 -109
- package/src/ContextualHelpTrigger.tsx +47 -41
- package/src/DateField.tsx +74 -106
- package/src/DatePicker.tsx +156 -352
- package/src/DateRangePickerContext.tsx +8 -0
- package/src/Dialog.tsx +105 -38
- package/src/Disclosure.tsx +29 -19
- package/src/DragAndDrop.tsx +43 -8
- package/src/DragPreview.tsx +20 -1
- package/src/DropZone.tsx +32 -18
- package/src/ElementTag.tsx +14 -104
- package/src/FieldError.tsx +39 -7
- package/src/FileTrigger.tsx +18 -3
- package/src/Focusable.tsx +27 -6
- package/src/Form.tsx +57 -11
- package/src/GridList.tsx +233 -141
- package/src/HiddenDateInput.tsx +19 -3
- package/src/Icon.tsx +8 -2
- package/src/Keyboard.tsx +18 -2
- package/src/Label.tsx +77 -0
- package/src/Landmark.tsx +6 -1
- package/src/Link.tsx +65 -19
- package/src/ListBox.tsx +645 -468
- package/src/ListDropTargetDelegate.ts +4 -0
- package/src/Menu.tsx +512 -349
- package/src/Meter.tsx +42 -8
- package/src/Modal.tsx +85 -42
- package/src/NumberField.tsx +161 -48
- package/src/Popover.tsx +424 -148
- package/src/Pressable.tsx +27 -6
- package/src/PreviewTrigger.tsx +171 -0
- package/src/ProgressBar.tsx +25 -3
- package/src/RadioGroup.tsx +230 -161
- package/src/RangeCalendar.tsx +75 -63
- package/src/RouterProvider.tsx +24 -14
- package/src/SearchField.tsx +118 -121
- package/src/Select.tsx +454 -274
- package/src/SelectionIndicator.tsx +21 -3
- package/src/Separator.tsx +17 -1
- package/src/SharedElementTransition.tsx +115 -97
- package/src/Slider.tsx +35 -17
- package/src/StepList.tsx +71 -32
- package/src/Switch.tsx +45 -29
- package/src/Table.tsx +446 -380
- package/src/Tabs.tsx +132 -155
- package/src/TagGroup.tsx +53 -40
- package/src/Text.tsx +23 -6
- package/src/TextField.tsx +118 -159
- package/src/TimeField.tsx +34 -95
- package/src/Toast.tsx +141 -67
- package/src/ToggleButton.tsx +33 -15
- package/src/ToggleButtonGroup.tsx +27 -9
- package/src/TokenField.tsx +379 -0
- package/src/Toolbar.tsx +19 -9
- package/src/Tooltip.tsx +126 -84
- package/src/Tree.tsx +233 -173
- package/src/Virtualizer.tsx +400 -138
- package/src/VirtualizerLayouts.ts +211 -26
- package/src/VisuallyHidden.tsx +22 -8
- package/src/contexts.ts +13 -0
- package/src/index.ts +32 -11
- package/src/intl/ar-AE.json +6 -0
- package/src/intl/bg-BG.json +6 -0
- package/src/intl/cs-CZ.json +6 -0
- package/src/intl/da-DK.json +6 -0
- package/src/intl/de-DE.json +6 -0
- package/src/intl/el-GR.json +6 -0
- package/src/intl/en-US.json +6 -0
- package/src/intl/es-ES.json +6 -0
- package/src/intl/et-EE.json +6 -0
- package/src/intl/fi-FI.json +6 -0
- package/src/intl/fr-FR.json +6 -0
- package/src/intl/he-IL.json +6 -0
- package/src/intl/hr-HR.json +6 -0
- package/src/intl/hu-HU.json +6 -0
- package/src/intl/index.ts +125 -0
- package/src/intl/it-IT.json +6 -0
- package/src/intl/ja-JP.json +6 -0
- package/src/intl/ko-KR.json +6 -0
- package/src/intl/lt-LT.json +6 -0
- package/src/intl/lv-LV.json +6 -0
- package/src/intl/nb-NO.json +6 -0
- package/src/intl/nl-NL.json +6 -0
- package/src/intl/pl-PL.json +6 -0
- package/src/intl/pt-BR.json +6 -0
- package/src/intl/pt-PT.json +6 -0
- package/src/intl/ro-RO.json +6 -0
- package/src/intl/ru-RU.json +6 -0
- package/src/intl/sk-SK.json +6 -0
- package/src/intl/sl-SI.json +6 -0
- package/src/intl/sr-SP.json +6 -0
- package/src/intl/sv-SE.json +6 -0
- package/src/intl/tr-TR.json +6 -0
- package/src/intl/uk-UA.json +6 -0
- package/src/intl/zh-CN.json +6 -0
- package/src/intl/zh-TW.json +6 -0
- package/src/useDragAndDrop.ts +30 -32
- package/src/utils.tsx +124 -68
- package/src/virtualizer/Layout.ts +29 -0
package/dist/Dialog.jsx
CHANGED
|
@@ -1,8 +1,23 @@
|
|
|
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/Dialog.tsx
|
|
13
|
+
import { DEFAULT_SLOT, Provider, filterDOMProps, useRenderProps } from "./utils.jsx";
|
|
2
14
|
import { a as useOverlayTriggerState, i as useDialogTrigger, t as DialogTriggerContext } from "./contexts.jsx";
|
|
3
15
|
import { ButtonContext } from "./Button.jsx";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
16
|
+
import { TextContext } from "./Text.jsx";
|
|
17
|
+
import { OverlayContext } from "./Popover.jsx";
|
|
18
|
+
import { Match, Switch, createContext, createMemo, createSignal, createTrackedEffect, createUniqueId, useContext } from "solid-js";
|
|
19
|
+
import { createDialog, createOverlayTrigger, focusSafely, useIsHidden } from "@proyecto-viviana/solidaria";
|
|
20
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
6
21
|
import { createOverlayTriggerState } from "@proyecto-viviana/solid-stately";
|
|
7
22
|
//#region src/Dialog.tsx
|
|
8
23
|
/**
|
|
@@ -31,11 +46,11 @@ function DialogTrigger(props) {
|
|
|
31
46
|
},
|
|
32
47
|
onOpenChange: local.onOpenChange
|
|
33
48
|
});
|
|
34
|
-
|
|
49
|
+
const [triggerRef, setTriggerElement] = createSignal(null);
|
|
35
50
|
const triggerId = createUniqueId();
|
|
36
|
-
const triggerAria = createOverlayTrigger({ type: "dialog" }, state,
|
|
51
|
+
const triggerAria = createOverlayTrigger({ type: "dialog" }, state, triggerRef);
|
|
37
52
|
const restoreFocusToTrigger = () => {
|
|
38
|
-
const trigger = triggerRef;
|
|
53
|
+
const trigger = triggerRef();
|
|
39
54
|
if (!trigger?.isConnected) return;
|
|
40
55
|
const win = trigger.ownerDocument.defaultView ?? window;
|
|
41
56
|
win.requestAnimationFrame(() => {
|
|
@@ -59,23 +74,24 @@ function DialogTrigger(props) {
|
|
|
59
74
|
const wasOpen = state.isOpen();
|
|
60
75
|
state.toggle();
|
|
61
76
|
if (wasOpen) restoreFocusToTrigger();
|
|
62
|
-
}
|
|
77
|
+
},
|
|
78
|
+
point: state.point,
|
|
79
|
+
setPoint: state.setPoint
|
|
63
80
|
};
|
|
64
81
|
const setTriggerRef = (el) => {
|
|
65
82
|
if (!el) return;
|
|
66
|
-
if (!triggerRef
|
|
83
|
+
if (!triggerRef()) setTriggerElement(el);
|
|
67
84
|
};
|
|
68
85
|
const contextValue = createMemo(() => ({
|
|
69
86
|
state: stateWithFocusRestore,
|
|
70
|
-
triggerRef
|
|
87
|
+
triggerRef,
|
|
71
88
|
setTriggerRef,
|
|
72
89
|
triggerId,
|
|
73
90
|
triggerProps: triggerAria.triggerProps,
|
|
74
91
|
overlayProps: triggerAria.overlayProps
|
|
75
92
|
}));
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
</DialogTriggerContext.Provider>;
|
|
93
|
+
if (useIsHidden()()) return null;
|
|
94
|
+
return <DialogTriggerContext value={contextValue()}>{props.children}</DialogTriggerContext>;
|
|
79
95
|
}
|
|
80
96
|
/**
|
|
81
97
|
* A dialog is an overlay shown above other content in an application.
|
|
@@ -93,8 +109,11 @@ function Dialog(props) {
|
|
|
93
109
|
"aria-describedby"
|
|
94
110
|
]);
|
|
95
111
|
let dialogRef;
|
|
112
|
+
const setDialogRef = (element) => {
|
|
113
|
+
dialogRef = element;
|
|
114
|
+
};
|
|
96
115
|
const triggerContext = useContext(DialogTriggerContext);
|
|
97
|
-
const { dialogProps, titleProps } = createDialog({
|
|
116
|
+
const { dialogProps, titleProps, contentProps } = createDialog({
|
|
98
117
|
get role() {
|
|
99
118
|
return ariaProps.role;
|
|
100
119
|
},
|
|
@@ -110,6 +129,7 @@ function Dialog(props) {
|
|
|
110
129
|
}, () => dialogRef);
|
|
111
130
|
const titleId = () => titleProps()?.id;
|
|
112
131
|
const overlayState = useOverlayTriggerState();
|
|
132
|
+
const overlayFocus = useContext(OverlayContext);
|
|
113
133
|
const close = () => {
|
|
114
134
|
local.onClose?.();
|
|
115
135
|
if (overlayState) {
|
|
@@ -118,7 +138,15 @@ function Dialog(props) {
|
|
|
118
138
|
}
|
|
119
139
|
triggerContext?.state.close();
|
|
120
140
|
};
|
|
121
|
-
|
|
141
|
+
const ariaLabelledBy = () => {
|
|
142
|
+
const p = dialogProps();
|
|
143
|
+
if (p["aria-labelledby"]) return p["aria-labelledby"];
|
|
144
|
+
if (p["aria-label"]) return;
|
|
145
|
+
return triggerContext?.triggerRef()?.id ?? triggerContext?.triggerId;
|
|
146
|
+
};
|
|
147
|
+
createTrackedEffect(() => {
|
|
148
|
+
overlayFocus?.setContain(true);
|
|
149
|
+
});
|
|
122
150
|
const renderValues = createMemo(() => ({ close }));
|
|
123
151
|
const renderProps = useRenderProps({
|
|
124
152
|
get children() {
|
|
@@ -129,19 +157,24 @@ function Dialog(props) {
|
|
|
129
157
|
defaultClassName: "solidaria-Dialog"
|
|
130
158
|
}, renderValues);
|
|
131
159
|
const domProps = createMemo(() => filterDOMProps(rest, { global: true }));
|
|
132
|
-
return <DialogContext
|
|
160
|
+
return <DialogContext value={{
|
|
133
161
|
close,
|
|
134
162
|
titleId: titleId()
|
|
135
163
|
}}>
|
|
136
|
-
<section {...dialogProps()} {...domProps()} ref={
|
|
137
|
-
<
|
|
164
|
+
<section {...triggerContext?.overlayProps} {...dialogProps()} {...domProps()} aria-labelledby={ariaLabelledBy()} ref={setDialogRef} class={renderProps.class()} style={renderProps.style()} slot={local.slot}>
|
|
165
|
+
<Provider values={[[TextContext, { slots: {
|
|
166
|
+
[DEFAULT_SLOT]: {},
|
|
167
|
+
get description() {
|
|
168
|
+
return contentProps();
|
|
169
|
+
}
|
|
170
|
+
} }], [ButtonContext, { slots: {
|
|
138
171
|
[DEFAULT_SLOT]: {},
|
|
139
172
|
close: { onPress: () => close() }
|
|
140
|
-
} }}>
|
|
173
|
+
} }]]}>
|
|
141
174
|
{renderProps.renderChildren()}
|
|
142
|
-
</
|
|
175
|
+
</Provider>
|
|
143
176
|
</section>
|
|
144
|
-
</DialogContext
|
|
177
|
+
</DialogContext>;
|
|
145
178
|
}
|
|
146
179
|
/**
|
|
147
180
|
* Heading element for dialog title.
|
|
@@ -152,35 +185,50 @@ function Heading(props) {
|
|
|
152
185
|
const level = () => props.level ?? 2;
|
|
153
186
|
const id = () => dialogContext?.titleId;
|
|
154
187
|
let headingRef;
|
|
155
|
-
|
|
188
|
+
const setHeadingRef = (element) => {
|
|
189
|
+
headingRef = element;
|
|
190
|
+
};
|
|
191
|
+
createTrackedEffect(() => {
|
|
192
|
+
const el = headingRef;
|
|
193
|
+
if (!el) return;
|
|
194
|
+
const contextId = id();
|
|
195
|
+
if (contextId) {
|
|
196
|
+
el.id = contextId;
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
if (!el.id) {
|
|
200
|
+
const labelledBy = el.closest("[role=\"dialog\"],[role=\"alertdialog\"]")?.getAttribute("aria-labelledby");
|
|
201
|
+
if (labelledBy && !el.ownerDocument.getElementById(labelledBy)) el.id = labelledBy;
|
|
202
|
+
}
|
|
203
|
+
});
|
|
156
204
|
return <Switch>
|
|
157
205
|
<Match when={level() === 1}>
|
|
158
|
-
<h1 ref={
|
|
206
|
+
<h1 ref={setHeadingRef} id={id()} class={props.class}>
|
|
159
207
|
{props.children}
|
|
160
208
|
</h1>
|
|
161
209
|
</Match>
|
|
162
210
|
<Match when={level() === 2}>
|
|
163
|
-
<h2 ref={
|
|
211
|
+
<h2 ref={setHeadingRef} id={id()} class={props.class}>
|
|
164
212
|
{props.children}
|
|
165
213
|
</h2>
|
|
166
214
|
</Match>
|
|
167
215
|
<Match when={level() === 3}>
|
|
168
|
-
<h3 ref={
|
|
216
|
+
<h3 ref={setHeadingRef} id={id()} class={props.class}>
|
|
169
217
|
{props.children}
|
|
170
218
|
</h3>
|
|
171
219
|
</Match>
|
|
172
220
|
<Match when={level() === 4}>
|
|
173
|
-
<h4 ref={
|
|
221
|
+
<h4 ref={setHeadingRef} id={id()} class={props.class}>
|
|
174
222
|
{props.children}
|
|
175
223
|
</h4>
|
|
176
224
|
</Match>
|
|
177
225
|
<Match when={level() === 5}>
|
|
178
|
-
<h5 ref={
|
|
226
|
+
<h5 ref={setHeadingRef} id={id()} class={props.class}>
|
|
179
227
|
{props.children}
|
|
180
228
|
</h5>
|
|
181
229
|
</Match>
|
|
182
230
|
<Match when={level() === 6}>
|
|
183
|
-
<h6 ref={
|
|
231
|
+
<h6 ref={setHeadingRef} id={id()} class={props.class}>
|
|
184
232
|
{props.children}
|
|
185
233
|
</h6>
|
|
186
234
|
</Match>
|
package/dist/Dialog.jsx.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.jsx","names":[],"sources":["../src/Dialog.tsx"],"sourcesContent":["/**\n * Dialog component for solidaria-components\n *\n * A headless dialog component that combines ARIA hooks.\n * Port of react-aria-components Dialog.\n */\n\nimport {\n type JSX,\n createContext,\n createEffect,\n createMemo,\n createUniqueId,\n splitProps,\n useContext,\n Switch,\n Match,\n} from \"solid-js\";\nimport {\n createDialog,\n createOverlayTrigger,\n focusSafely,\n type AriaDialogProps,\n} from \"@proyecto-viviana/solidaria\";\nimport {\n createOverlayTriggerState,\n type OverlayTriggerState,\n} from \"@proyecto-viviana/solid-stately\";\nimport { DialogTriggerContext, useOverlayTriggerState } from \"./contexts\";\nimport { ButtonContext } from \"./Button\";\nimport {\n DEFAULT_SLOT,\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n} from \"./utils\";\n\nexport interface DialogRenderProps {\n /** Function to close the dialog */\n close: () => void;\n}\n\nexport interface DialogProps extends Omit<AriaDialogProps, \"class\" | \"style\">, SlotProps {\n /** The children of the component - can be JSX or render function. */\n children?: RenderChildren<DialogRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<DialogRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<DialogRenderProps>;\n /** Callback when dialog should close */\n onClose?: () => void;\n}\n\nexport interface DialogTriggerProps {\n /** The children - should include a trigger and modal/popover content. */\n children: JSX.Element;\n /** Whether the dialog is open (controlled). */\n isOpen?: boolean;\n /** Whether the dialog is open by default (uncontrolled). */\n defaultOpen?: boolean;\n /** Callback when open state changes. */\n onOpenChange?: (isOpen: boolean) => void;\n}\n\ninterface DialogContextValue {\n close: () => void;\n titleId?: string;\n}\n\nexport const DialogContext = createContext<DialogContextValue | null>(null);\n\nexport { DialogTriggerContext, useDialogTrigger } from \"./contexts\";\n\n/**\n * A DialogTrigger opens a dialog when a trigger element is pressed.\n * Children should include a trigger element (e.g. Button) and the dialog content.\n */\nexport function DialogTrigger(props: DialogTriggerProps): JSX.Element {\n const [local] = splitProps(props, [\"isOpen\", \"defaultOpen\", \"onOpenChange\"]);\n\n const state = createOverlayTriggerState({\n get isOpen() {\n return local.isOpen;\n },\n get defaultOpen() {\n return local.defaultOpen;\n },\n onOpenChange: local.onOpenChange,\n });\n\n let triggerRef: HTMLElement | null = null;\n const triggerId = createUniqueId();\n\n // Create overlay trigger props so registered trigger components can expose\n // the same expanded/controls relationship as React Aria DialogTrigger.\n const triggerAria = createOverlayTrigger({ type: \"dialog\" }, state, () => triggerRef);\n\n const restoreFocusToTrigger = () => {\n const trigger = triggerRef;\n if (!trigger?.isConnected) return;\n\n const win = trigger.ownerDocument.defaultView ?? window;\n win.requestAnimationFrame(() => {\n win.requestAnimationFrame(() => {\n if (trigger.isConnected && !state.isOpen()) {\n focusSafely(trigger);\n }\n });\n });\n };\n\n const stateWithFocusRestore: OverlayTriggerState = {\n isOpen: state.isOpen,\n setOpen: (isOpen) => {\n state.setOpen(isOpen);\n if (!isOpen) {\n restoreFocusToTrigger();\n }\n },\n open: state.open,\n close: () => {\n state.close();\n restoreFocusToTrigger();\n },\n toggle: () => {\n const wasOpen = state.isOpen();\n state.toggle();\n if (wasOpen) {\n restoreFocusToTrigger();\n }\n },\n };\n\n const setTriggerRef = (el: HTMLElement | null) => {\n if (!el) return;\n if (!triggerRef || !triggerRef.isConnected) {\n triggerRef = el;\n }\n };\n\n // Context value - memoized to avoid unnecessary re-renders\n const contextValue = createMemo(() => ({\n state: stateWithFocusRestore,\n triggerRef: () => triggerRef,\n setTriggerRef,\n triggerId,\n triggerProps: triggerAria.triggerProps,\n overlayProps: triggerAria.overlayProps,\n }));\n\n // In SolidJS, we simply render children directly within the provider\n return (\n <DialogTriggerContext.Provider value={contextValue()}>\n {props.children}\n </DialogTriggerContext.Provider>\n );\n}\n\n/**\n * A dialog is an overlay shown above other content in an application.\n */\nexport function Dialog(props: DialogProps): JSX.Element {\n const [local, ariaProps, rest] = splitProps(\n props,\n [\"class\", \"style\", \"slot\", \"onClose\"],\n [\"role\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\"],\n );\n\n let dialogRef!: HTMLElement;\n\n // Get trigger context for aria-labelledby fallback\n const triggerContext = useContext(DialogTriggerContext);\n\n // createDialog returns dialogProps AND titleProps (with the id for the Heading)\n const { dialogProps, titleProps } = createDialog(\n {\n get role() {\n return ariaProps.role;\n },\n get \"aria-label\"() {\n return ariaProps[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return ariaProps[\"aria-labelledby\"];\n },\n get \"aria-describedby\"() {\n return ariaProps[\"aria-describedby\"];\n },\n },\n () => dialogRef,\n );\n\n // Get titleId from titleProps - this links Dialog's aria-labelledby to Heading's id\n const titleId = () => titleProps()?.id as string | undefined;\n\n // Get close function from OverlayTriggerState context or onClose prop\n const overlayState = useOverlayTriggerState();\n\n const close = () => {\n local.onClose?.();\n if (overlayState) {\n overlayState.close();\n return;\n }\n triggerContext?.state.close();\n };\n\n createEffect(() => {\n if (!dialogRef || ariaProps[\"aria-label\"] || ariaProps[\"aria-labelledby\"]) return;\n const labelledBy = dialogRef.getAttribute(\"aria-labelledby\");\n if (labelledBy && dialogRef.ownerDocument.getElementById(labelledBy)) return;\n\n const trigger = triggerContext?.triggerRef();\n if (trigger?.id) {\n dialogRef.setAttribute(\"aria-labelledby\", trigger.id);\n }\n });\n\n const renderValues = createMemo<DialogRenderProps>(() => ({\n close,\n }));\n\n const renderProps = useRenderProps(\n {\n get children() {\n return props.children;\n },\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-Dialog\",\n },\n renderValues,\n );\n\n const domProps = createMemo(() =>\n filterDOMProps(rest as Record<string, unknown>, { global: true }),\n );\n\n return (\n <DialogContext.Provider value={{ close, titleId: titleId() }}>\n <section\n {...dialogProps()}\n {...domProps()}\n ref={dialogRef}\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n >\n <ButtonContext.Provider\n value={{ slots: { [DEFAULT_SLOT]: {}, close: { onPress: () => close() } } }}\n >\n {renderProps.renderChildren()}\n </ButtonContext.Provider>\n </section>\n </DialogContext.Provider>\n );\n}\n\nexport interface HeadingProps {\n /** The children of the heading. */\n children: JSX.Element;\n /** The CSS className. */\n class?: string;\n /** The heading level (1-6). Defaults to 2. */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n /** The slot to render into. */\n slot?: string;\n}\n\n/**\n * Heading element for dialog title.\n * When rendered inside a Dialog, automatically gets the titleProps.\n */\nexport function Heading(props: HeadingProps): JSX.Element {\n const dialogContext = useContext(DialogContext);\n const level = () => props.level ?? 2;\n const id = () => dialogContext?.titleId;\n let headingRef: HTMLHeadingElement | undefined;\n\n createEffect(() => {\n const el = headingRef;\n if (!el) return;\n\n const contextId = id();\n if (contextId) {\n el.id = contextId;\n return;\n }\n\n if (!el.id) {\n const dialog = el.closest('[role=\"dialog\"],[role=\"alertdialog\"]');\n const labelledBy = dialog?.getAttribute(\"aria-labelledby\");\n if (labelledBy && !el.ownerDocument.getElementById(labelledBy)) {\n el.id = labelledBy;\n }\n }\n });\n\n return (\n <Switch>\n <Match when={level() === 1}>\n <h1 ref={headingRef} id={id()} class={props.class}>\n {props.children}\n </h1>\n </Match>\n <Match when={level() === 2}>\n <h2 ref={headingRef} id={id()} class={props.class}>\n {props.children}\n </h2>\n </Match>\n <Match when={level() === 3}>\n <h3 ref={headingRef} id={id()} class={props.class}>\n {props.children}\n </h3>\n </Match>\n <Match when={level() === 4}>\n <h4 ref={headingRef} id={id()} class={props.class}>\n {props.children}\n </h4>\n </Match>\n <Match when={level() === 5}>\n <h5 ref={headingRef} id={id()} class={props.class}>\n {props.children}\n </h5>\n </Match>\n <Match when={level() === 6}>\n <h6 ref={headingRef} id={id()} class={props.class}>\n {props.children}\n </h6>\n </Match>\n </Switch>\n );\n}\n\n// Keep backward compatibility\nexport { Heading as DialogHeading };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Dialog.jsx","names":[],"sources":["../src/Dialog.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/Dialog.tsx\n\n/**\n * Dialog component for solidaria-components\n *\n * A headless dialog component that combines ARIA hooks.\n * Port of react-aria-components Dialog.\n */\n\nimport {\n createContext,\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n useContext,\n Switch,\n Match,\n createTrackedEffect,\n} from \"solid-js\";\nimport type { Context } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport {\n createDialog,\n createOverlayTrigger,\n focusSafely,\n useIsHidden,\n type AriaDialogProps,\n} from \"@proyecto-viviana/solidaria\";\nimport {\n createOverlayTriggerState,\n type OverlayTriggerState,\n} from \"@proyecto-viviana/solid-stately\";\nimport { DialogTriggerContext, useOverlayTriggerState } from \"./contexts\";\nimport { OverlayContext } from \"./Popover\";\nimport { ButtonContext } from \"./Button\";\nimport { TextContext } from \"./Text\";\nimport { splitProps } from \"@proyecto-viviana/solidaria/utils\";\nimport {\n DEFAULT_SLOT,\n Provider,\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n} from \"./utils\";\n\nexport interface DialogRenderProps {\n /** Function to close the dialog */\n close: () => void;\n}\n\nexport interface DialogProps extends Omit<AriaDialogProps, \"class\" | \"style\">, SlotProps {\n /** The children of the component - can be JSX or render function. */\n children?: RenderChildren<DialogRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<DialogRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<DialogRenderProps>;\n /** Callback when dialog should close */\n onClose?: () => void;\n}\n\nexport interface DialogTriggerProps {\n /** The children - should include a trigger and modal/popover content. */\n children: JSX.Element;\n /** Whether the dialog is open (controlled). */\n isOpen?: boolean;\n /** Whether the dialog is open by default (uncontrolled). */\n defaultOpen?: boolean;\n /** Callback when open state changes. */\n onOpenChange?: (isOpen: boolean) => void;\n}\n\ninterface DialogContextValue {\n close: () => void;\n titleId?: string;\n}\n\nexport const DialogContext = createContext<DialogContextValue | null>(null);\n\nexport { DialogTriggerContext, useDialogTrigger } from \"./contexts\";\n\n/**\n * A DialogTrigger opens a dialog when a trigger element is pressed.\n * Children should include a trigger element (e.g. Button) and the dialog content.\n */\nexport function DialogTrigger(props: DialogTriggerProps): JSX.Element | null {\n const [local] = splitProps(props, [\"isOpen\", \"defaultOpen\", \"onOpenChange\"]);\n\n const state = createOverlayTriggerState({\n get isOpen() {\n return local.isOpen;\n },\n get defaultOpen() {\n return local.defaultOpen;\n },\n onOpenChange: local.onOpenChange,\n });\n\n // A signal, so a consumer reading `triggerRef()` (e.g. the dialog's\n // trigger-label fallback) re-reads once the trigger mounts.\n const [triggerRef, setTriggerElement] = createSignal<HTMLElement | null>(null);\n const triggerId = createUniqueId();\n\n // Create overlay trigger props so registered trigger components can expose\n // the same expanded/controls relationship as React Aria DialogTrigger.\n const triggerAria = createOverlayTrigger({ type: \"dialog\" }, state, triggerRef);\n\n const restoreFocusToTrigger = () => {\n const trigger = triggerRef();\n if (!trigger?.isConnected) return;\n\n const win = trigger.ownerDocument.defaultView ?? window;\n win.requestAnimationFrame(() => {\n win.requestAnimationFrame(() => {\n if (trigger.isConnected && !state.isOpen()) {\n focusSafely(trigger);\n }\n });\n });\n };\n\n const stateWithFocusRestore: OverlayTriggerState = {\n isOpen: state.isOpen,\n setOpen: (isOpen) => {\n state.setOpen(isOpen);\n if (!isOpen) {\n restoreFocusToTrigger();\n }\n },\n open: state.open,\n close: () => {\n state.close();\n restoreFocusToTrigger();\n },\n toggle: () => {\n const wasOpen = state.isOpen();\n state.toggle();\n if (wasOpen) {\n restoreFocusToTrigger();\n }\n },\n point: state.point,\n setPoint: state.setPoint,\n };\n\n const setTriggerRef = (el: HTMLElement | null) => {\n if (!el) return;\n // First registrant wins. Replacing a not-yet-connected trigger lets a later\n // CloseButton steal ownership during defaultOpen (both refs fire before\n // either node is in the document), then close+toggle reopens the dialog.\n if (!triggerRef()) {\n setTriggerElement(el);\n }\n };\n\n // Context value - memoized to avoid unnecessary re-renders\n const contextValue = createMemo(() => ({\n state: stateWithFocusRestore,\n triggerRef,\n setTriggerRef,\n triggerId,\n triggerProps: triggerAria.triggerProps,\n overlayProps: triggerAria.overlayProps,\n }));\n\n // If within a collection (e.g. Tabs), render nothing. Matches RAC DialogTrigger\n // (`useIsHidden()` early return) so a hidden collection pass does not leak a\n // duplicate trigger. Not using createHideableComponent: that also wraps a ref.\n const isHidden = useIsHidden();\n if (isHidden()) {\n return null;\n }\n\n // In SolidJS, we simply render children directly within the provider\n return <DialogTriggerContext value={contextValue()}>{props.children}</DialogTriggerContext>;\n}\n\n/**\n * A dialog is an overlay shown above other content in an application.\n */\nexport function Dialog(props: DialogProps): JSX.Element {\n const [local, ariaProps, rest] = splitProps(\n props,\n [\"class\", \"style\", \"slot\", \"onClose\"],\n [\"role\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\"],\n );\n\n let dialogRef: HTMLElement | undefined;\n const setDialogRef = (element: HTMLElement) => {\n dialogRef = element;\n };\n\n // Get trigger context for aria-labelledby fallback\n const triggerContext = useContext(DialogTriggerContext);\n\n // createDialog returns the props that wire the dialog to its title and, for\n // alertdialogs, its description content.\n const { dialogProps, titleProps, contentProps } = createDialog(\n {\n get role() {\n return ariaProps.role;\n },\n get \"aria-label\"() {\n return ariaProps[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return ariaProps[\"aria-labelledby\"];\n },\n get \"aria-describedby\"() {\n return ariaProps[\"aria-describedby\"];\n },\n },\n () => dialogRef,\n );\n\n // Get titleId from titleProps - this links Dialog's aria-labelledby to Heading's id\n const titleId = () => titleProps()?.id as string | undefined;\n\n // Get close function from OverlayTriggerState context or onClose prop\n const overlayState = useOverlayTriggerState();\n const overlayFocus = useContext(OverlayContext);\n\n const close = () => {\n local.onClose?.();\n if (overlayState) {\n overlayState.close();\n return;\n }\n triggerContext?.state.close();\n };\n\n // Label the dialog by its trigger when no title slot resolved. Mirrors RAC\n // `Dialog`: the trigger id arrives by context, so it is a fallback only and a\n // rendered title still wins. `createDialog`'s slot id clears itself when no\n // element takes it, which is what makes the fallback reachable.\n const ariaLabelledBy = () => {\n const p = dialogProps();\n if (p[\"aria-labelledby\"]) {\n return p[\"aria-labelledby\"] as string;\n }\n if (p[\"aria-label\"]) {\n return undefined;\n }\n return triggerContext?.triggerRef()?.id ?? triggerContext?.triggerId;\n };\n\n // RAC useDialog → useOverlayFocusContain: a nested Dialog still contains\n // focus when the parent Popover is not itself the dialog.\n createTrackedEffect(() => {\n overlayFocus?.setContain(true);\n });\n\n const renderValues = createMemo<DialogRenderProps>(() => ({\n close,\n }));\n\n const renderProps = useRenderProps(\n {\n get children() {\n return props.children;\n },\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-Dialog\",\n },\n renderValues,\n );\n\n const domProps = createMemo(() =>\n filterDOMProps(rest as Record<string, unknown>, { global: true }),\n );\n\n return (\n <DialogContext value={{ close, titleId: titleId() }}>\n <section\n {...triggerContext?.overlayProps}\n {...dialogProps()}\n {...domProps()}\n aria-labelledby={ariaLabelledBy()}\n ref={setDialogRef}\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n >\n <Provider\n values={\n [\n [\n TextContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n get description() {\n return contentProps();\n },\n },\n },\n ],\n [ButtonContext, { slots: { [DEFAULT_SLOT]: {}, close: { onPress: () => close() } } }],\n ] as Array<[Context<unknown>, unknown]>\n }\n >\n {renderProps.renderChildren()}\n </Provider>\n </section>\n </DialogContext>\n );\n}\n\nexport interface HeadingProps {\n /** The children of the heading. */\n children: JSX.Element;\n /** The CSS className. */\n class?: string;\n /** The heading level (1-6). Defaults to 2. */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n /** The slot to render into. */\n slot?: string;\n}\n\n/**\n * Heading element for dialog title.\n * When rendered inside a Dialog, automatically gets the titleProps.\n */\nexport function Heading(props: HeadingProps): JSX.Element {\n const dialogContext = useContext(DialogContext);\n const level = () => props.level ?? 2;\n const id = () => dialogContext?.titleId;\n let headingRef: HTMLHeadingElement | undefined;\n const setHeadingRef = (element: HTMLHeadingElement) => {\n headingRef = element;\n };\n\n createTrackedEffect(() => {\n const el = headingRef;\n if (!el) return;\n\n const contextId = id();\n if (contextId) {\n el.id = contextId;\n return;\n }\n\n if (!el.id) {\n const dialog = el.closest('[role=\"dialog\"],[role=\"alertdialog\"]');\n const labelledBy = dialog?.getAttribute(\"aria-labelledby\");\n if (labelledBy && !el.ownerDocument.getElementById(labelledBy)) {\n el.id = labelledBy;\n }\n }\n });\n\n return (\n <Switch>\n <Match when={level() === 1}>\n <h1 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h1>\n </Match>\n <Match when={level() === 2}>\n <h2 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h2>\n </Match>\n <Match when={level() === 3}>\n <h3 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h3>\n </Match>\n <Match when={level() === 4}>\n <h4 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h4>\n </Match>\n <Match when={level() === 5}>\n <h5 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h5>\n </Match>\n <Match when={level() === 6}>\n <h6 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h6>\n </Match>\n </Switch>\n );\n}\n\n// Keep backward compatibility\nexport { Heading as DialogHeading };\n"],"mappings":"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"}
|
package/dist/Disclosure.d.ts
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Disclosure and Accordion components for solidaria-components
|
|
3
|
-
*
|
|
4
|
-
* Disclosure is a widget that can be toggled to show or hide content.
|
|
5
|
-
* Accordion (DisclosureGroup) manages multiple disclosures with optional single-expand.
|
|
6
|
-
*
|
|
7
|
-
* Port of react-aria-components Disclosure.
|
|
8
|
-
*/
|
|
9
|
-
import { type JSX } from "solid-js";
|
|
1
|
+
import type { JSX } from "@solidjs/web";
|
|
10
2
|
import { type DisclosureState, type DisclosureGroupState, type DisclosureStateProps, type DisclosureGroupStateProps } from "@proyecto-viviana/solid-stately";
|
|
11
3
|
import { type RenderChildren, type ClassNameOrFunction, type StyleOrFunction } from "./utils";
|
|
12
4
|
type RefLike<T> = T | ((el: T) => void) | {
|
package/dist/Disclosure.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Disclosure.d.ts","sourceRoot":"","sources":["../src/Disclosure.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Disclosure.d.ts","sourceRoot":"","sources":["../src/Disclosure.tsx"],"names":[],"mappings":"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"}
|
package/dist/Disclosure.js
CHANGED
|
@@ -1,7 +1,20 @@
|
|
|
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/Disclosure.tsx
|
|
13
|
+
import { coerceDomRecord, dataAttr, filterDOMProps, useRenderProps } from "./utils.js";
|
|
14
|
+
import { createComponent, getNextElement, insert, ref, runHydrationEvents, scope, spread, template } from "@solidjs/web";
|
|
15
|
+
import { createContext, createMemo, createSignal, useContext } from "solid-js";
|
|
16
|
+
import { createDisclosure, createDisclosureGroup, createFocusRing, mergeProps as mergeProps$1 } from "@proyecto-viviana/solidaria";
|
|
17
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
5
18
|
import { createDisclosureGroupState, createDisclosureState } from "@proyecto-viviana/solid-stately";
|
|
6
19
|
//#region src/Disclosure.tsx
|
|
7
20
|
/**
|
|
@@ -12,8 +25,9 @@ import { createDisclosureGroupState, createDisclosureState } from "@proyecto-viv
|
|
|
12
25
|
*
|
|
13
26
|
* Port of react-aria-components Disclosure.
|
|
14
27
|
*/
|
|
15
|
-
var _tmpl$ =
|
|
16
|
-
|
|
28
|
+
var _tmpl$ = /* @__PURE__ */ template(`<div>`);
|
|
29
|
+
var _tmpl$2 = /* @__PURE__ */ template(`<button>`);
|
|
30
|
+
function assignRef$1(ref, el) {
|
|
17
31
|
if (!ref) return;
|
|
18
32
|
if (typeof ref === "function") ref(el);
|
|
19
33
|
else if (typeof ref === "object" && "current" in ref) ref.current = el;
|
|
@@ -74,26 +88,34 @@ function DisclosureGroup(props) {
|
|
|
74
88
|
const domProps = createMemo(() => filterDOMProps(rest, { global: true }));
|
|
75
89
|
const contextValue = { state };
|
|
76
90
|
const { ref: _ref, ...cleanGroupProps } = groupProps;
|
|
77
|
-
return createComponent(DisclosureGroupStateContext
|
|
91
|
+
return createComponent(DisclosureGroupStateContext, {
|
|
78
92
|
value: state,
|
|
79
93
|
get children() {
|
|
80
|
-
return createComponent(DisclosureGroupContext
|
|
94
|
+
return createComponent(DisclosureGroupContext, {
|
|
81
95
|
value: contextValue,
|
|
82
96
|
get children() {
|
|
83
97
|
var _el$ = getNextElement(_tmpl$);
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
98
|
+
ref(() => {
|
|
99
|
+
return (el) => assignRef$1(local.ref, el);
|
|
100
|
+
}, _el$);
|
|
101
|
+
spread(_el$, [
|
|
102
|
+
domProps,
|
|
103
|
+
cleanGroupProps,
|
|
104
|
+
{
|
|
105
|
+
get "class"() {
|
|
106
|
+
return renderProps.class();
|
|
107
|
+
},
|
|
108
|
+
get style() {
|
|
109
|
+
return renderProps.style();
|
|
110
|
+
},
|
|
111
|
+
get "data-disabled"() {
|
|
112
|
+
return dataAttr(state.isDisabled);
|
|
113
|
+
}
|
|
94
114
|
}
|
|
95
|
-
|
|
96
|
-
insert(_el$, () =>
|
|
115
|
+
], true);
|
|
116
|
+
insert(_el$, scope(() => {
|
|
117
|
+
return props.children;
|
|
118
|
+
}));
|
|
97
119
|
runHydrationEvents();
|
|
98
120
|
return _el$;
|
|
99
121
|
}
|
|
@@ -163,35 +185,41 @@ function Disclosure(props) {
|
|
|
163
185
|
const setPanelRef = (el) => {
|
|
164
186
|
setPanelRefSignal(el);
|
|
165
187
|
};
|
|
166
|
-
return createComponent(DisclosureStateContext
|
|
188
|
+
return createComponent(DisclosureStateContext, {
|
|
167
189
|
value: state,
|
|
168
190
|
get children() {
|
|
169
|
-
return createComponent(DisclosureContext
|
|
191
|
+
return createComponent(DisclosureContext, {
|
|
170
192
|
value: contextValue,
|
|
171
193
|
get children() {
|
|
172
|
-
return createComponent(DisclosurePanelRefContext
|
|
194
|
+
return createComponent(DisclosurePanelRefContext, {
|
|
173
195
|
value: setPanelRef,
|
|
174
196
|
get children() {
|
|
175
197
|
var _el$2 = getNextElement(_tmpl$);
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
198
|
+
ref(() => {
|
|
199
|
+
return (el) => assignRef$1(local.ref, el);
|
|
200
|
+
}, _el$2);
|
|
201
|
+
spread(_el$2, [() => {
|
|
202
|
+
return mergeProps$1(domProps(), focusWithinProps);
|
|
203
|
+
}, {
|
|
204
|
+
get "class"() {
|
|
179
205
|
return renderProps.class();
|
|
180
206
|
},
|
|
181
207
|
get style() {
|
|
182
208
|
return renderProps.style();
|
|
183
209
|
},
|
|
184
|
-
get
|
|
210
|
+
get "data-expanded"() {
|
|
185
211
|
return dataAttr(state.isExpanded());
|
|
186
212
|
},
|
|
187
|
-
get
|
|
213
|
+
get "data-disabled"() {
|
|
188
214
|
return dataAttr(isDisabled());
|
|
189
215
|
},
|
|
190
|
-
get
|
|
216
|
+
get "data-focus-visible-within"() {
|
|
191
217
|
return dataAttr(isFocusVisibleWithin());
|
|
192
218
|
}
|
|
193
|
-
}
|
|
194
|
-
insert(_el$2, () =>
|
|
219
|
+
}], true);
|
|
220
|
+
insert(_el$2, scope(() => {
|
|
221
|
+
return props.children;
|
|
222
|
+
}));
|
|
195
223
|
runHydrationEvents();
|
|
196
224
|
return _el$2;
|
|
197
225
|
}
|
|
@@ -227,40 +255,44 @@ function DisclosureTrigger(props) {
|
|
|
227
255
|
const { ref: _ref, ...rest } = focusProps;
|
|
228
256
|
return rest;
|
|
229
257
|
};
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
258
|
+
var _el$3 = getNextElement(_tmpl$2);
|
|
259
|
+
ref(() => {
|
|
260
|
+
return (el) => assignRef$1(local.ref, el);
|
|
261
|
+
}, _el$3);
|
|
262
|
+
spread(_el$3, [() => {
|
|
263
|
+
return mergeProps$1(domProps(), getButtonProps(), cleanFocusProps());
|
|
264
|
+
}, {
|
|
265
|
+
type: "button",
|
|
266
|
+
get tabindex() {
|
|
267
|
+
return isDisabled() ? void 0 : 0;
|
|
268
|
+
},
|
|
269
|
+
get "class"() {
|
|
270
|
+
return local.class;
|
|
271
|
+
},
|
|
272
|
+
get style() {
|
|
273
|
+
return local.style;
|
|
274
|
+
},
|
|
275
|
+
get "data-expanded"() {
|
|
276
|
+
return dataAttr(isExpanded());
|
|
277
|
+
},
|
|
278
|
+
get "data-disabled"() {
|
|
279
|
+
return dataAttr(isDisabled());
|
|
280
|
+
},
|
|
281
|
+
get "data-pressed"() {
|
|
282
|
+
return dataAttr(disclosureAria.isPressed());
|
|
283
|
+
},
|
|
284
|
+
get "data-focused"() {
|
|
285
|
+
return dataAttr(isFocused());
|
|
286
|
+
},
|
|
287
|
+
get "data-focus-visible"() {
|
|
288
|
+
return dataAttr(isFocusVisible());
|
|
289
|
+
}
|
|
290
|
+
}], true);
|
|
291
|
+
insert(_el$3, scope(() => {
|
|
292
|
+
return local.children;
|
|
293
|
+
}));
|
|
294
|
+
runHydrationEvents();
|
|
295
|
+
return _el$3;
|
|
264
296
|
}
|
|
265
297
|
/**
|
|
266
298
|
* DisclosurePanel contains the content that is shown/hidden.
|
|
@@ -297,33 +329,43 @@ function DisclosurePanel(props) {
|
|
|
297
329
|
const { ref: _ref, ...rest } = context.disclosureAria.panelProps;
|
|
298
330
|
return rest;
|
|
299
331
|
};
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
332
|
+
var _el$4 = getNextElement(_tmpl$);
|
|
333
|
+
ref(() => {
|
|
334
|
+
return (el) => {
|
|
303
335
|
panelRefSetter?.(el);
|
|
304
|
-
assignRef(local.ref, el);
|
|
305
|
-
}
|
|
306
|
-
|
|
336
|
+
assignRef$1(local.ref, el);
|
|
337
|
+
};
|
|
338
|
+
}, _el$4);
|
|
339
|
+
spread(_el$4, [
|
|
340
|
+
() => {
|
|
341
|
+
return mergeProps$1(domProps(), focusWithinProps);
|
|
342
|
+
},
|
|
343
|
+
() => {
|
|
344
|
+
return coerceDomRecord(getPanelProps());
|
|
345
|
+
},
|
|
346
|
+
{
|
|
307
347
|
get role() {
|
|
308
348
|
return local.role ?? "group";
|
|
309
349
|
},
|
|
310
|
-
get
|
|
350
|
+
get "class"() {
|
|
311
351
|
return renderProps.class();
|
|
312
352
|
},
|
|
313
353
|
get style() {
|
|
314
354
|
return renderProps.style();
|
|
315
355
|
},
|
|
316
|
-
get
|
|
356
|
+
get "data-expanded"() {
|
|
317
357
|
return dataAttr(isExpanded());
|
|
318
358
|
},
|
|
319
|
-
get
|
|
359
|
+
get "data-focus-visible-within"() {
|
|
320
360
|
return dataAttr(isFocusVisibleWithin());
|
|
321
361
|
}
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
return
|
|
326
|
-
})
|
|
362
|
+
}
|
|
363
|
+
], true);
|
|
364
|
+
insert(_el$4, scope(() => {
|
|
365
|
+
return renderProps.renderChildren();
|
|
366
|
+
}));
|
|
367
|
+
runHydrationEvents();
|
|
368
|
+
return _el$4;
|
|
327
369
|
}
|
|
328
370
|
//#endregion
|
|
329
371
|
export { Disclosure, DisclosureContext, DisclosureGroup, DisclosureGroupContext, DisclosureGroupStateContext, DisclosurePanel, DisclosureStateContext, DisclosureTrigger, useDisclosureContext, useDisclosureGroupContext };
|