@proyecto-viviana/solidaria-components 0.5.1 → 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 -39
- package/dist/Form.js.map +1 -1
- package/dist/Form.jsx +36 -14
- 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 +312 -209
- 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 +27 -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 +69 -99
- package/src/DatePicker.tsx +146 -342
- 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 +41 -12
- 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 +587 -409
- 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 -119
- package/src/Select.tsx +454 -274
- package/src/SelectionIndicator.tsx +21 -3
- package/src/Separator.tsx +17 -1
- package/src/SharedElementTransition.tsx +67 -46
- 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 +32 -86
- 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.js
CHANGED
|
@@ -1,9 +1,24 @@
|
|
|
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.js";
|
|
2
14
|
import { a as useOverlayTriggerState, i as useDialogTrigger, t as DialogTriggerContext } from "./contexts.js";
|
|
3
15
|
import { ButtonContext } from "./Button.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
16
|
+
import { TextContext } from "./Text.js";
|
|
17
|
+
import { OverlayContext } from "./Popover.js";
|
|
18
|
+
import { className, createComponent, effect, getNextElement, insert, readShallow, ref, runHydrationEvents, scope, setAttribute, spread, template } from "@solidjs/web";
|
|
19
|
+
import { Match, Switch, createContext, createMemo, createSignal, createTrackedEffect, createUniqueId, useContext } from "solid-js";
|
|
20
|
+
import { createDialog, createOverlayTrigger, focusSafely, useIsHidden } from "@proyecto-viviana/solidaria";
|
|
21
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
7
22
|
import { createOverlayTriggerState } from "@proyecto-viviana/solid-stately";
|
|
8
23
|
//#region src/Dialog.tsx
|
|
9
24
|
/**
|
|
@@ -12,7 +27,13 @@ import { createOverlayTriggerState } from "@proyecto-viviana/solid-stately";
|
|
|
12
27
|
* A headless dialog component that combines ARIA hooks.
|
|
13
28
|
* Port of react-aria-components Dialog.
|
|
14
29
|
*/
|
|
15
|
-
var _tmpl$ =
|
|
30
|
+
var _tmpl$ = /* @__PURE__ */ template(`<section>`);
|
|
31
|
+
var _tmpl$2 = /* @__PURE__ */ template(`<h1>`);
|
|
32
|
+
var _tmpl$3 = /* @__PURE__ */ template(`<h2>`);
|
|
33
|
+
var _tmpl$4 = /* @__PURE__ */ template(`<h3>`);
|
|
34
|
+
var _tmpl$5 = /* @__PURE__ */ template(`<h4>`);
|
|
35
|
+
var _tmpl$6 = /* @__PURE__ */ template(`<h5>`);
|
|
36
|
+
var _tmpl$7 = /* @__PURE__ */ template(`<h6>`);
|
|
16
37
|
const DialogContext = createContext(null);
|
|
17
38
|
/**
|
|
18
39
|
* A DialogTrigger opens a dialog when a trigger element is pressed.
|
|
@@ -33,11 +54,11 @@ function DialogTrigger(props) {
|
|
|
33
54
|
},
|
|
34
55
|
onOpenChange: local.onOpenChange
|
|
35
56
|
});
|
|
36
|
-
|
|
57
|
+
const [triggerRef, setTriggerElement] = createSignal(null);
|
|
37
58
|
const triggerId = createUniqueId();
|
|
38
|
-
const triggerAria = createOverlayTrigger({ type: "dialog" }, state,
|
|
59
|
+
const triggerAria = createOverlayTrigger({ type: "dialog" }, state, triggerRef);
|
|
39
60
|
const restoreFocusToTrigger = () => {
|
|
40
|
-
const trigger = triggerRef;
|
|
61
|
+
const trigger = triggerRef();
|
|
41
62
|
if (!trigger?.isConnected) return;
|
|
42
63
|
const win = trigger.ownerDocument.defaultView ?? window;
|
|
43
64
|
win.requestAnimationFrame(() => {
|
|
@@ -61,21 +82,24 @@ function DialogTrigger(props) {
|
|
|
61
82
|
const wasOpen = state.isOpen();
|
|
62
83
|
state.toggle();
|
|
63
84
|
if (wasOpen) restoreFocusToTrigger();
|
|
64
|
-
}
|
|
85
|
+
},
|
|
86
|
+
point: state.point,
|
|
87
|
+
setPoint: state.setPoint
|
|
65
88
|
};
|
|
66
89
|
const setTriggerRef = (el) => {
|
|
67
90
|
if (!el) return;
|
|
68
|
-
if (!triggerRef
|
|
91
|
+
if (!triggerRef()) setTriggerElement(el);
|
|
69
92
|
};
|
|
70
93
|
const contextValue = createMemo(() => ({
|
|
71
94
|
state: stateWithFocusRestore,
|
|
72
|
-
triggerRef
|
|
95
|
+
triggerRef,
|
|
73
96
|
setTriggerRef,
|
|
74
97
|
triggerId,
|
|
75
98
|
triggerProps: triggerAria.triggerProps,
|
|
76
99
|
overlayProps: triggerAria.overlayProps
|
|
77
100
|
}));
|
|
78
|
-
|
|
101
|
+
if (useIsHidden()()) return null;
|
|
102
|
+
return createComponent(DialogTriggerContext, {
|
|
79
103
|
get value() {
|
|
80
104
|
return contextValue();
|
|
81
105
|
},
|
|
@@ -100,8 +124,11 @@ function Dialog(props) {
|
|
|
100
124
|
"aria-describedby"
|
|
101
125
|
]);
|
|
102
126
|
let dialogRef;
|
|
127
|
+
const setDialogRef = (element) => {
|
|
128
|
+
dialogRef = element;
|
|
129
|
+
};
|
|
103
130
|
const triggerContext = useContext(DialogTriggerContext);
|
|
104
|
-
const { dialogProps, titleProps } = createDialog({
|
|
131
|
+
const { dialogProps, titleProps, contentProps } = createDialog({
|
|
105
132
|
get role() {
|
|
106
133
|
return ariaProps.role;
|
|
107
134
|
},
|
|
@@ -117,6 +144,7 @@ function Dialog(props) {
|
|
|
117
144
|
}, () => dialogRef);
|
|
118
145
|
const titleId = () => titleProps()?.id;
|
|
119
146
|
const overlayState = useOverlayTriggerState();
|
|
147
|
+
const overlayFocus = useContext(OverlayContext);
|
|
120
148
|
const close = () => {
|
|
121
149
|
local.onClose?.();
|
|
122
150
|
if (overlayState) {
|
|
@@ -125,12 +153,14 @@ function Dialog(props) {
|
|
|
125
153
|
}
|
|
126
154
|
triggerContext?.state.close();
|
|
127
155
|
};
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
if (
|
|
132
|
-
|
|
133
|
-
|
|
156
|
+
const ariaLabelledBy = () => {
|
|
157
|
+
const p = dialogProps();
|
|
158
|
+
if (p["aria-labelledby"]) return p["aria-labelledby"];
|
|
159
|
+
if (p["aria-label"]) return;
|
|
160
|
+
return triggerContext?.triggerRef()?.id ?? triggerContext?.triggerId;
|
|
161
|
+
};
|
|
162
|
+
createTrackedEffect(() => {
|
|
163
|
+
overlayFocus?.setContain(true);
|
|
134
164
|
});
|
|
135
165
|
const renderValues = createMemo(() => ({ close }));
|
|
136
166
|
const renderProps = useRenderProps({
|
|
@@ -142,7 +172,7 @@ function Dialog(props) {
|
|
|
142
172
|
defaultClassName: "solidaria-Dialog"
|
|
143
173
|
}, renderValues);
|
|
144
174
|
const domProps = createMemo(() => filterDOMProps(rest, { global: true }));
|
|
145
|
-
return createComponent(DialogContext
|
|
175
|
+
return createComponent(DialogContext, {
|
|
146
176
|
get value() {
|
|
147
177
|
return {
|
|
148
178
|
close,
|
|
@@ -151,24 +181,40 @@ function Dialog(props) {
|
|
|
151
181
|
},
|
|
152
182
|
get children() {
|
|
153
183
|
var _el$ = getNextElement(_tmpl$);
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
get style() {
|
|
161
|
-
return renderProps.style();
|
|
184
|
+
ref(() => {
|
|
185
|
+
return setDialogRef;
|
|
186
|
+
}, _el$);
|
|
187
|
+
spread(_el$, [
|
|
188
|
+
() => {
|
|
189
|
+
return triggerContext?.overlayProps;
|
|
162
190
|
},
|
|
163
|
-
|
|
164
|
-
|
|
191
|
+
dialogProps,
|
|
192
|
+
domProps,
|
|
193
|
+
{
|
|
194
|
+
get "aria-labelledby"() {
|
|
195
|
+
return ariaLabelledBy();
|
|
196
|
+
},
|
|
197
|
+
get "class"() {
|
|
198
|
+
return renderProps.class();
|
|
199
|
+
},
|
|
200
|
+
get style() {
|
|
201
|
+
return renderProps.style();
|
|
202
|
+
},
|
|
203
|
+
get slot() {
|
|
204
|
+
return local.slot;
|
|
205
|
+
}
|
|
165
206
|
}
|
|
166
|
-
|
|
167
|
-
insert(_el$, createComponent(
|
|
168
|
-
|
|
207
|
+
], true);
|
|
208
|
+
insert(_el$, createComponent(Provider, {
|
|
209
|
+
values: [[TextContext, { slots: {
|
|
210
|
+
[DEFAULT_SLOT]: {},
|
|
211
|
+
get description() {
|
|
212
|
+
return contentProps();
|
|
213
|
+
}
|
|
214
|
+
} }], [ButtonContext, { slots: {
|
|
169
215
|
[DEFAULT_SLOT]: {},
|
|
170
216
|
close: { onPress: () => close() }
|
|
171
|
-
} },
|
|
217
|
+
} }]],
|
|
172
218
|
get children() {
|
|
173
219
|
return renderProps.renderChildren();
|
|
174
220
|
}
|
|
@@ -187,7 +233,10 @@ function Heading(props) {
|
|
|
187
233
|
const level = () => props.level ?? 2;
|
|
188
234
|
const id = () => dialogContext?.titleId;
|
|
189
235
|
let headingRef;
|
|
190
|
-
|
|
236
|
+
const setHeadingRef = (element) => {
|
|
237
|
+
headingRef = element;
|
|
238
|
+
};
|
|
239
|
+
createTrackedEffect(() => {
|
|
191
240
|
const el = headingRef;
|
|
192
241
|
if (!el) return;
|
|
193
242
|
const contextId = id();
|
|
@@ -208,17 +257,20 @@ function Heading(props) {
|
|
|
208
257
|
},
|
|
209
258
|
get children() {
|
|
210
259
|
var _el$2 = getNextElement(_tmpl$2);
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
return
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
260
|
+
ref(() => {
|
|
261
|
+
return setHeadingRef;
|
|
262
|
+
}, _el$2);
|
|
263
|
+
insert(_el$2, scope(() => {
|
|
264
|
+
return props.children;
|
|
265
|
+
}));
|
|
266
|
+
effect(() => {
|
|
267
|
+
return {
|
|
268
|
+
e: id(),
|
|
269
|
+
t: readShallow(props.class)
|
|
270
|
+
};
|
|
271
|
+
}, ({ e, t }, _p$) => {
|
|
272
|
+
e !== _p$?.e && setAttribute(_el$2, "id", e);
|
|
273
|
+
className(_el$2, t, _p$?.t);
|
|
222
274
|
});
|
|
223
275
|
return _el$2;
|
|
224
276
|
}
|
|
@@ -229,17 +281,20 @@ function Heading(props) {
|
|
|
229
281
|
},
|
|
230
282
|
get children() {
|
|
231
283
|
var _el$3 = getNextElement(_tmpl$3);
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
return
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
284
|
+
ref(() => {
|
|
285
|
+
return setHeadingRef;
|
|
286
|
+
}, _el$3);
|
|
287
|
+
insert(_el$3, scope(() => {
|
|
288
|
+
return props.children;
|
|
289
|
+
}));
|
|
290
|
+
effect(() => {
|
|
291
|
+
return {
|
|
292
|
+
e: id(),
|
|
293
|
+
t: readShallow(props.class)
|
|
294
|
+
};
|
|
295
|
+
}, ({ e, t }, _p$) => {
|
|
296
|
+
e !== _p$?.e && setAttribute(_el$3, "id", e);
|
|
297
|
+
className(_el$3, t, _p$?.t);
|
|
243
298
|
});
|
|
244
299
|
return _el$3;
|
|
245
300
|
}
|
|
@@ -250,17 +305,20 @@ function Heading(props) {
|
|
|
250
305
|
},
|
|
251
306
|
get children() {
|
|
252
307
|
var _el$4 = getNextElement(_tmpl$4);
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
return
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
308
|
+
ref(() => {
|
|
309
|
+
return setHeadingRef;
|
|
310
|
+
}, _el$4);
|
|
311
|
+
insert(_el$4, scope(() => {
|
|
312
|
+
return props.children;
|
|
313
|
+
}));
|
|
314
|
+
effect(() => {
|
|
315
|
+
return {
|
|
316
|
+
e: id(),
|
|
317
|
+
t: readShallow(props.class)
|
|
318
|
+
};
|
|
319
|
+
}, ({ e, t }, _p$) => {
|
|
320
|
+
e !== _p$?.e && setAttribute(_el$4, "id", e);
|
|
321
|
+
className(_el$4, t, _p$?.t);
|
|
264
322
|
});
|
|
265
323
|
return _el$4;
|
|
266
324
|
}
|
|
@@ -271,17 +329,20 @@ function Heading(props) {
|
|
|
271
329
|
},
|
|
272
330
|
get children() {
|
|
273
331
|
var _el$5 = getNextElement(_tmpl$5);
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
return
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
332
|
+
ref(() => {
|
|
333
|
+
return setHeadingRef;
|
|
334
|
+
}, _el$5);
|
|
335
|
+
insert(_el$5, scope(() => {
|
|
336
|
+
return props.children;
|
|
337
|
+
}));
|
|
338
|
+
effect(() => {
|
|
339
|
+
return {
|
|
340
|
+
e: id(),
|
|
341
|
+
t: readShallow(props.class)
|
|
342
|
+
};
|
|
343
|
+
}, ({ e, t }, _p$) => {
|
|
344
|
+
e !== _p$?.e && setAttribute(_el$5, "id", e);
|
|
345
|
+
className(_el$5, t, _p$?.t);
|
|
285
346
|
});
|
|
286
347
|
return _el$5;
|
|
287
348
|
}
|
|
@@ -292,17 +353,20 @@ function Heading(props) {
|
|
|
292
353
|
},
|
|
293
354
|
get children() {
|
|
294
355
|
var _el$6 = getNextElement(_tmpl$6);
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
return
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
356
|
+
ref(() => {
|
|
357
|
+
return setHeadingRef;
|
|
358
|
+
}, _el$6);
|
|
359
|
+
insert(_el$6, scope(() => {
|
|
360
|
+
return props.children;
|
|
361
|
+
}));
|
|
362
|
+
effect(() => {
|
|
363
|
+
return {
|
|
364
|
+
e: id(),
|
|
365
|
+
t: readShallow(props.class)
|
|
366
|
+
};
|
|
367
|
+
}, ({ e, t }, _p$) => {
|
|
368
|
+
e !== _p$?.e && setAttribute(_el$6, "id", e);
|
|
369
|
+
className(_el$6, t, _p$?.t);
|
|
306
370
|
});
|
|
307
371
|
return _el$6;
|
|
308
372
|
}
|
|
@@ -313,17 +377,20 @@ function Heading(props) {
|
|
|
313
377
|
},
|
|
314
378
|
get children() {
|
|
315
379
|
var _el$7 = getNextElement(_tmpl$7);
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
return
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
380
|
+
ref(() => {
|
|
381
|
+
return setHeadingRef;
|
|
382
|
+
}, _el$7);
|
|
383
|
+
insert(_el$7, scope(() => {
|
|
384
|
+
return props.children;
|
|
385
|
+
}));
|
|
386
|
+
effect(() => {
|
|
387
|
+
return {
|
|
388
|
+
e: id(),
|
|
389
|
+
t: readShallow(props.class)
|
|
390
|
+
};
|
|
391
|
+
}, ({ e, t }, _p$) => {
|
|
392
|
+
e !== _p$?.e && setAttribute(_el$7, "id", e);
|
|
393
|
+
className(_el$7, t, _p$?.t);
|
|
327
394
|
});
|
|
328
395
|
return _el$7;
|
|
329
396
|
}
|
package/dist/Dialog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.js","names":["JSX","createContext","createEffect","createMemo","createUniqueId","splitProps","useContext","Switch","Match","createDialog","createOverlayTrigger","focusSafely","AriaDialogProps","createOverlayTriggerState","OverlayTriggerState","DialogTriggerContext","useOverlayTriggerState","ButtonContext","DEFAULT_SLOT","RenderChildren","ClassNameOrFunction","StyleOrFunction","SlotProps","useRenderProps","filterDOMProps","DialogRenderProps","close","DialogProps","Omit","children","class","style","onClose","DialogTriggerProps","Element","isOpen","defaultOpen","onOpenChange","DialogContextValue","titleId","DialogContext","useDialogTrigger","DialogTrigger","props","local","state","triggerRef","HTMLElement","triggerId","triggerAria","type","restoreFocusToTrigger","trigger","isConnected","win","ownerDocument","defaultView","window","requestAnimationFrame","stateWithFocusRestore","setOpen","open","toggle","wasOpen","setTriggerRef","el","contextValue","triggerProps","overlayProps","_$createComponent","Provider","value","Dialog","ariaProps","rest","dialogRef","triggerContext","dialogProps","titleProps","role","aria-label","aria-labelledby","aria-describedby","id","overlayState","labelledBy","getAttribute","getElementById","setAttribute","renderValues","renderProps","defaultClassName","domProps","Record","global","_el$","_$getNextElement","_tmpl$","_ref$","_$use","_$spread","_$mergeProps","slot","_$insert","slots","onPress","renderChildren","_$runHydrationEvents","HeadingProps","level","Heading","dialogContext","headingRef","HTMLHeadingElement","contextId","dialog","closest","when","_el$2","_tmpl$2","_ref$2","_$effect","_p$","_v$","_v$2","e","_$setAttribute","t","_$className","undefined","_el$3","_tmpl$3","_ref$3","_v$3","_v$4","_el$4","_tmpl$4","_ref$4","_v$5","_v$6","_el$5","_tmpl$5","_ref$5","_v$7","_v$8","_el$6","_tmpl$6","_ref$6","_v$9","_v$0","_el$7","_tmpl$7","_ref$7","_v$1","_v$10","DialogHeading"],"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.js","names":["<DialogTriggerContext value={contextValue()}>{props.children}</DialogTriggerContext>","<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>","ref={setDialogRef}","<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>","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 }","<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>","<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>","<Match when={level() === 1}>\n <h1 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h1>\n </Match>","ref={setHeadingRef}","{props.children}","class={props.class}","<h1 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h1>","<Match when={level() === 2}>\n <h2 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h2>\n </Match>","<h2 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h2>","<Match when={level() === 3}>\n <h3 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h3>\n </Match>","<h3 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h3>","<Match when={level() === 4}>\n <h4 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h4>\n </Match>","<h4 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h4>","<Match when={level() === 5}>\n <h5 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h5>\n </Match>","<h5 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h5>","<Match when={level() === 6}>\n <h6 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h6>\n </Match>","<h6 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h6>"],"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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"}
|