@proyecto-viviana/solidaria-components 0.5.1 → 0.7.0-rc.1
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 +57 -34
- 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 +20 -17
- package/dist/Alert.js.map +1 -1
- package/dist/Alert.jsx +10 -6
- 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 +19 -6
- package/dist/Autocomplete.js.map +1 -1
- package/dist/Autocomplete.jsx +21 -8
- package/dist/Autocomplete.jsx.map +1 -1
- package/dist/Breadcrumbs.d.ts +2 -1
- package/dist/Breadcrumbs.d.ts.map +1 -1
- package/dist/Breadcrumbs.js +152 -59
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/Breadcrumbs.jsx +99 -19
- 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 +144 -79
- package/dist/Button.js.map +1 -1
- package/dist/Button.jsx +124 -50
- package/dist/Button.jsx.map +1 -1
- package/dist/Calendar.d.ts +9 -7
- package/dist/Calendar.d.ts.map +1 -1
- package/dist/Calendar.js +321 -228
- package/dist/Calendar.js.map +1 -1
- package/dist/Calendar.jsx +74 -41
- 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 +3 -19
- package/dist/Checkbox.d.ts.map +1 -1
- package/dist/Checkbox.js +422 -317
- package/dist/Checkbox.js.map +1 -1
- package/dist/Checkbox.jsx +150 -131
- package/dist/Checkbox.jsx.map +1 -1
- package/dist/Collection.d.ts +152 -6
- package/dist/Collection.d.ts.map +1 -1
- package/dist/Collection.js +245 -78
- package/dist/Collection.js.map +1 -1
- package/dist/Collection.jsx +150 -12
- package/dist/Collection.jsx.map +1 -1
- package/dist/Color.d.ts +8 -572
- package/dist/Color.d.ts.map +1 -1
- package/dist/Color.js +8 -1717
- package/dist/Color.jsx +8 -1340
- package/dist/ColorArea.d.ts +104 -0
- package/dist/ColorArea.d.ts.map +1 -0
- package/dist/ColorArea.js +382 -0
- package/dist/ColorArea.js.map +1 -0
- package/dist/ColorArea.jsx +286 -0
- package/dist/ColorArea.jsx.map +1 -0
- package/dist/ColorEditor.d.ts +3 -1
- package/dist/ColorEditor.d.ts.map +1 -1
- package/dist/ColorEditor.js +147 -125
- package/dist/ColorEditor.js.map +1 -1
- package/dist/ColorEditor.jsx +12 -6
- package/dist/ColorEditor.jsx.map +1 -1
- package/dist/ColorField.d.ts +89 -0
- package/dist/ColorField.d.ts.map +1 -0
- package/dist/ColorField.js +395 -0
- package/dist/ColorField.js.map +1 -0
- package/dist/ColorField.jsx +280 -0
- package/dist/ColorField.jsx.map +1 -0
- package/dist/ColorPicker.d.ts +33 -0
- package/dist/ColorPicker.d.ts.map +1 -0
- package/dist/ColorPicker.js +86 -0
- package/dist/ColorPicker.js.map +1 -0
- package/dist/ColorPicker.jsx +67 -0
- package/dist/ColorPicker.jsx.map +1 -0
- package/dist/ColorSlider.d.ts +145 -0
- package/dist/ColorSlider.d.ts.map +1 -0
- package/dist/ColorSlider.js +444 -0
- package/dist/ColorSlider.js.map +1 -0
- package/dist/ColorSlider.jsx +319 -0
- package/dist/ColorSlider.jsx.map +1 -0
- package/dist/ColorSwatch.d.ts +37 -0
- package/dist/ColorSwatch.d.ts.map +1 -0
- package/dist/ColorSwatch.js +101 -0
- package/dist/ColorSwatch.js.map +1 -0
- package/dist/ColorSwatch.jsx +84 -0
- package/dist/ColorSwatch.jsx.map +1 -0
- package/dist/ColorSwatchPicker.d.ts +82 -0
- package/dist/ColorSwatchPicker.d.ts.map +1 -0
- package/dist/ColorSwatchPicker.js +364 -0
- package/dist/ColorSwatchPicker.js.map +1 -0
- package/dist/ColorSwatchPicker.jsx +314 -0
- package/dist/ColorSwatchPicker.jsx.map +1 -0
- package/dist/ColorThumb.d.ts +16 -0
- package/dist/ColorThumb.d.ts.map +1 -0
- package/dist/ColorThumb.js +14 -0
- package/dist/ColorThumb.jsx +14 -0
- package/dist/ColorWheel.d.ts +103 -0
- package/dist/ColorWheel.d.ts.map +1 -0
- package/dist/ColorWheel.js +312 -0
- package/dist/ColorWheel.js.map +1 -0
- package/dist/ColorWheel.jsx +224 -0
- package/dist/ColorWheel.jsx.map +1 -0
- package/dist/ComboBox.d.ts +68 -32
- package/dist/ComboBox.d.ts.map +1 -1
- package/dist/ComboBox.js +564 -292
- package/dist/ComboBox.js.map +1 -1
- package/dist/ComboBox.jsx +235 -89
- 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 +104 -86
- package/dist/ContextualHelpTrigger.js.map +1 -1
- package/dist/ContextualHelpTrigger.jsx +38 -30
- package/dist/ContextualHelpTrigger.jsx.map +1 -1
- package/dist/DateField.d.ts +15 -9
- package/dist/DateField.d.ts.map +1 -1
- package/dist/DateField.js +0 -2
- package/dist/DateField.jsx +0 -2
- package/dist/DateField2.js +262 -196
- package/dist/DateField2.js.map +1 -1
- package/dist/DateField2.jsx +114 -74
- package/dist/DateField2.jsx.map +1 -1
- package/dist/DatePicker.d.ts +13 -34
- package/dist/DatePicker.d.ts.map +1 -1
- package/dist/DatePicker.js +3 -2
- package/dist/DatePicker.jsx +3 -2
- package/dist/DatePicker2.js +671 -512
- package/dist/DatePicker2.js.map +1 -1
- package/dist/DatePicker2.jsx +342 -222
- 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 +6 -25
- package/dist/Dialog.d.ts.map +1 -1
- package/dist/Dialog.js +181 -232
- package/dist/Dialog.js.map +1 -1
- package/dist/Dialog.jsx +138 -98
- 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 +167 -92
- package/dist/Disclosure.js.map +1 -1
- package/dist/Disclosure.jsx +62 -22
- 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 +40 -23
- package/dist/DragAndDrop.js.map +1 -1
- package/dist/DragAndDrop.jsx +23 -5
- 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 +4 -3
- package/dist/DropZone.d.ts.map +1 -1
- package/dist/DropZone.js +107 -57
- package/dist/DropZone.js.map +1 -1
- package/dist/DropZone.jsx +49 -13
- 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 +69 -17
- package/dist/FileTrigger.js.map +1 -1
- package/dist/FileTrigger.jsx +49 -3
- 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 +82 -42
- package/dist/Form.js.map +1 -1
- package/dist/Form.jsx +52 -17
- package/dist/Form.jsx.map +1 -1
- package/dist/GridList.d.ts +65 -37
- package/dist/GridList.d.ts.map +1 -1
- package/dist/GridList.js +512 -277
- package/dist/GridList.js.map +1 -1
- package/dist/GridList.jsx +307 -134
- package/dist/GridList.jsx.map +1 -1
- package/dist/Heading.d.ts +15 -0
- package/dist/Heading.d.ts.map +1 -0
- package/dist/Heading.js +55 -0
- package/dist/Heading.js.map +1 -0
- package/dist/Heading.jsx +40 -0
- package/dist/Heading.jsx.map +1 -0
- 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 +55 -38
- package/dist/Icon.js.map +1 -1
- package/dist/Icon.jsx +12 -4
- 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 +4 -7
- package/dist/Link.d.ts.map +1 -1
- package/dist/Link.js +80 -47
- package/dist/Link.js.map +1 -1
- package/dist/Link.jsx +76 -21
- package/dist/Link.jsx.map +1 -1
- package/dist/ListBox.d.ts +62 -33
- package/dist/ListBox.d.ts.map +1 -1
- package/dist/ListBox.js +858 -411
- package/dist/ListBox.js.map +1 -1
- package/dist/ListBox.jsx +478 -268
- 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 +51 -34
- package/dist/Menu.d.ts.map +1 -1
- package/dist/Menu.js +808 -427
- package/dist/Menu.js.map +1 -1
- package/dist/Menu.jsx +570 -296
- 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 +106 -74
- package/dist/Modal.js.map +1 -1
- package/dist/Modal.jsx +68 -57
- package/dist/Modal.jsx.map +1 -1
- package/dist/NumberField.d.ts +6 -9
- package/dist/NumberField.d.ts.map +1 -1
- package/dist/NumberField.js +344 -136
- package/dist/NumberField.js.map +1 -1
- package/dist/NumberField.jsx +194 -38
- package/dist/NumberField.jsx.map +1 -1
- package/dist/Popover.d.ts +21 -7
- package/dist/Popover.d.ts.map +1 -1
- package/dist/Popover.js +392 -192
- package/dist/Popover.js.map +1 -1
- package/dist/Popover.jsx +237 -93
- 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 +49 -16
- package/dist/ProgressBar.js.map +1 -1
- package/dist/ProgressBar.jsx +30 -6
- package/dist/ProgressBar.jsx.map +1 -1
- package/dist/RadioGroup.d.ts +4 -20
- package/dist/RadioGroup.d.ts.map +1 -1
- package/dist/RadioGroup.js +459 -338
- package/dist/RadioGroup.js.map +1 -1
- package/dist/RadioGroup.jsx +186 -153
- package/dist/RadioGroup.jsx.map +1 -1
- package/dist/RangeCalendar.d.ts +11 -7
- package/dist/RangeCalendar.d.ts.map +1 -1
- package/dist/RangeCalendar.js +299 -208
- package/dist/RangeCalendar.js.map +1 -1
- package/dist/RangeCalendar.jsx +79 -47
- package/dist/RangeCalendar.jsx.map +1 -1
- package/dist/RouterProvider.d.ts +17 -69
- package/dist/RouterProvider.d.ts.map +1 -1
- package/dist/RouterProvider.js +12 -116
- package/dist/RouterProvider.jsx +12 -110
- package/dist/SearchField.d.ts +5 -8
- package/dist/SearchField.d.ts.map +1 -1
- package/dist/SearchField.js +212 -181
- package/dist/SearchField.js.map +1 -1
- package/dist/SearchField.jsx +94 -78
- package/dist/SearchField.jsx.map +1 -1
- package/dist/Select.d.ts +73 -36
- package/dist/Select.d.ts.map +1 -1
- package/dist/Select.js +700 -453
- package/dist/Select.js.map +1 -1
- package/dist/Select.jsx +356 -237
- 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 +3 -9
- package/dist/Separator.d.ts.map +1 -1
- package/dist/Separator.js +24 -12
- package/dist/Separator.js.map +1 -1
- package/dist/Separator.jsx +18 -9
- 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 +25 -26
- package/dist/Slider.d.ts.map +1 -1
- package/dist/Slider.js +324 -167
- package/dist/Slider.js.map +1 -1
- package/dist/Slider.jsx +195 -93
- package/dist/Slider.jsx.map +1 -1
- package/dist/StepList.d.ts +2 -8
- package/dist/StepList.d.ts.map +1 -1
- package/dist/StepList.js +121 -75
- package/dist/StepList.js.map +1 -1
- package/dist/StepList.jsx +67 -27
- package/dist/StepList.jsx.map +1 -1
- package/dist/Switch.d.ts +17 -11
- package/dist/Switch.d.ts.map +1 -1
- package/dist/Switch.js +213 -128
- package/dist/Switch.js.map +1 -1
- package/dist/Switch.jsx +68 -31
- package/dist/Switch.jsx.map +1 -1
- package/dist/Table.d.ts +21 -2
- package/dist/Table.d.ts.map +1 -1
- package/dist/Table.js +938 -638
- package/dist/Table.js.map +1 -1
- package/dist/Table.jsx +537 -259
- 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 +322 -300
- package/dist/Tabs.js.map +1 -1
- package/dist/Tabs.jsx +106 -67
- package/dist/Tabs.jsx.map +1 -1
- package/dist/TagGroup.d.ts +32 -22
- package/dist/TagGroup.d.ts.map +1 -1
- package/dist/TagGroup.js +377 -136
- package/dist/TagGroup.js.map +1 -1
- package/dist/TagGroup.jsx +220 -53
- 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 +38 -8
- package/dist/Text.js.map +1 -1
- package/dist/Text.jsx +27 -5
- package/dist/Text.jsx.map +1 -1
- package/dist/TextField.d.ts +4 -17
- package/dist/TextField.d.ts.map +1 -1
- package/dist/TextField.js +116 -142
- package/dist/TextField.js.map +1 -1
- package/dist/TextField.jsx +88 -115
- package/dist/TextField.jsx.map +1 -1
- package/dist/TimeField.d.ts +3 -16
- package/dist/TimeField.d.ts.map +1 -1
- package/dist/TimeField.js +121 -107
- package/dist/TimeField.js.map +1 -1
- package/dist/TimeField.jsx +67 -54
- package/dist/TimeField.jsx.map +1 -1
- package/dist/Toast.d.ts +27 -14
- package/dist/Toast.d.ts.map +1 -1
- package/dist/Toast.js +273 -113
- package/dist/Toast.js.map +1 -1
- package/dist/Toast.jsx +182 -32
- 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 +75 -35
- package/dist/ToggleButton.js.map +1 -1
- package/dist/ToggleButton.jsx +39 -13
- 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 +54 -0
- package/dist/TokenField.d.ts.map +1 -0
- package/dist/TokenField.js +374 -0
- package/dist/TokenField.js.map +1 -0
- package/dist/TokenField.jsx +272 -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 +37 -22
- package/dist/Toolbar.js.map +1 -1
- package/dist/Toolbar.jsx +17 -8
- 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 +128 -78
- package/dist/Tooltip.js.map +1 -1
- package/dist/Tooltip.jsx +83 -46
- package/dist/Tooltip.jsx.map +1 -1
- package/dist/Tree.d.ts +85 -39
- package/dist/Tree.d.ts.map +1 -1
- package/dist/Tree.js +926 -414
- package/dist/Tree.js.map +1 -1
- package/dist/Tree.jsx +450 -195
- package/dist/Tree.jsx.map +1 -1
- package/dist/Virtualizer.d.ts +41 -10
- package/dist/Virtualizer.d.ts.map +1 -1
- package/dist/Virtualizer.js +2 -2
- package/dist/Virtualizer.jsx +2 -2
- package/dist/Virtualizer2.js +554 -144
- package/dist/Virtualizer2.js.map +1 -1
- package/dist/Virtualizer2.jsx +516 -124
- 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/calendarHeadingTitle.d.ts +14 -0
- package/dist/calendarHeadingTitle.d.ts.map +1 -0
- package/dist/calendarHeadingTitle.js +23 -0
- package/dist/calendarHeadingTitle.js.map +1 -0
- package/dist/calendarHeadingTitle.jsx +23 -0
- package/dist/calendarHeadingTitle.jsx.map +1 -0
- package/dist/contexts.d.ts +31 -1
- package/dist/contexts.d.ts.map +1 -1
- package/dist/contexts.js +9 -1
- package/dist/contexts.js.map +1 -1
- package/dist/contexts.jsx +9 -1
- package/dist/contexts.jsx.map +1 -1
- package/dist/fileTriggerContext.d.ts +5 -0
- package/dist/fileTriggerContext.d.ts.map +1 -0
- package/dist/fileTriggerContext.js +7 -0
- package/dist/fileTriggerContext.js.map +1 -0
- package/dist/fileTriggerContext.jsx +7 -0
- package/dist/fileTriggerContext.jsx.map +1 -0
- package/dist/index.d.ts +27 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -18
- package/dist/index.jsx +30 -18
- 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/loadMoreSentinel.d.ts +7 -0
- package/dist/loadMoreSentinel.d.ts.map +1 -0
- package/dist/loadMoreSentinel.js +30 -0
- package/dist/loadMoreSentinel.js.map +1 -0
- package/dist/loadMoreSentinel.jsx +30 -0
- package/dist/loadMoreSentinel.jsx.map +1 -0
- package/dist/slots.d.ts +35 -0
- package/dist/slots.d.ts.map +1 -0
- package/dist/slots.js +66 -0
- package/dist/slots.js.map +1 -0
- package/dist/slots.jsx +66 -0
- package/dist/slots.jsx.map +1 -0
- package/dist/staticSelectCollection.d.ts +2 -0
- package/dist/staticSelectCollection.d.ts.map +1 -0
- package/dist/staticSelectCollection.js +2 -0
- package/dist/staticSelectCollection.jsx +2 -0
- package/dist/useDragAndDrop.d.ts +6 -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 +49 -9
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +119 -24
- package/dist/utils.js.map +1 -1
- package/dist/utils.jsx +110 -24
- package/dist/utils.jsx.map +1 -1
- package/dist/virtualizer/Layout.d.ts +12 -2
- 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 +87 -10
- package/src/ActionBar.tsx +50 -24
- package/src/ActionGroup.tsx +30 -19
- package/src/Alert.tsx +12 -7
- package/src/Autocomplete.tsx +25 -16
- package/src/Breadcrumbs.tsx +139 -24
- package/src/Button.tsx +214 -76
- package/src/Calendar.tsx +120 -61
- package/src/CalendarPicker.tsx +16 -1
- package/src/Checkbox.tsx +205 -227
- package/src/Collection.tsx +334 -12
- package/src/Color.tsx +8 -2454
- package/src/ColorArea.tsx +479 -0
- package/src/ColorEditor.tsx +9 -9
- package/src/ColorField.tsx +471 -0
- package/src/ColorPicker.tsx +126 -0
- package/src/ColorSlider.tsx +562 -0
- package/src/ColorSwatch.tsx +129 -0
- package/src/ColorSwatchPicker.tsx +623 -0
- package/src/ColorThumb.tsx +19 -0
- package/src/ColorWheel.tsx +398 -0
- package/src/ComboBox.tsx +471 -173
- package/src/ContextualHelpTrigger.tsx +49 -65
- package/src/DateField.tsx +174 -131
- package/src/DatePicker.tsx +501 -376
- package/src/DateRangePickerContext.tsx +8 -0
- package/src/Dialog.tsx +224 -162
- package/src/Disclosure.tsx +85 -34
- package/src/DragAndDrop.tsx +51 -9
- package/src/DragPreview.tsx +20 -1
- package/src/DropZone.tsx +77 -42
- package/src/ElementTag.tsx +14 -104
- package/src/FieldError.tsx +39 -7
- package/src/FileTrigger.tsx +71 -4
- package/src/Focusable.tsx +27 -11
- package/src/Form.tsx +64 -15
- package/src/GridList.tsx +478 -214
- package/src/Heading.tsx +59 -0
- package/src/HiddenDateInput.tsx +19 -3
- package/src/Icon.tsx +19 -4
- package/src/Keyboard.tsx +18 -2
- package/src/Label.tsx +77 -0
- package/src/Landmark.tsx +6 -1
- package/src/Link.tsx +103 -30
- package/src/ListBox.tsx +924 -530
- package/src/ListDropTargetDelegate.ts +4 -0
- package/src/Menu.tsx +883 -465
- package/src/Meter.tsx +42 -8
- package/src/Modal.tsx +89 -80
- package/src/NumberField.tsx +267 -66
- package/src/Popover.tsx +454 -156
- package/src/Pressable.tsx +27 -11
- package/src/PreviewTrigger.tsx +171 -0
- package/src/ProgressBar.tsx +41 -5
- package/src/RadioGroup.tsx +358 -278
- package/src/RangeCalendar.tsx +130 -77
- package/src/RouterProvider.tsx +33 -215
- package/src/SearchField.tsx +157 -136
- package/src/Select.tsx +689 -453
- package/src/SelectionIndicator.tsx +21 -3
- package/src/Separator.tsx +22 -14
- package/src/SharedElementTransition.tsx +67 -46
- package/src/Slider.tsx +296 -120
- package/src/StepList.tsx +88 -38
- package/src/Switch.tsx +127 -51
- package/src/Table.tsx +842 -479
- package/src/Tabs.tsx +186 -156
- package/src/TagGroup.tsx +377 -90
- package/src/Text.tsx +39 -7
- package/src/TextField.tsx +136 -173
- package/src/TimeField.tsx +90 -93
- package/src/Toast.tsx +238 -82
- package/src/ToggleButton.tsx +60 -17
- package/src/ToggleButtonGroup.tsx +27 -9
- package/src/TokenField.tsx +502 -0
- package/src/Toolbar.tsx +21 -17
- package/src/Tooltip.tsx +157 -99
- package/src/Tree.tsx +888 -360
- package/src/Virtualizer.tsx +501 -148
- package/src/VirtualizerLayouts.ts +211 -26
- package/src/VisuallyHidden.tsx +22 -8
- package/src/calendarHeadingTitle.ts +37 -0
- package/src/contexts.ts +23 -1
- package/src/fileTriggerContext.ts +8 -0
- package/src/index.ts +98 -22
- 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/loadMoreSentinel.ts +31 -0
- package/src/slots.tsx +103 -0
- package/src/staticSelectCollection.tsx +25 -0
- package/src/useDragAndDrop.ts +35 -33
- package/src/utils.tsx +178 -67
- package/src/virtualizer/Layout.ts +32 -2
- package/dist/Color.js.map +0 -1
- package/dist/Color.jsx.map +0 -1
- package/dist/RouterProvider.js.map +0 -1
- package/dist/RouterProvider.jsx.map +0 -1
package/dist/DatePicker2.js
CHANGED
|
@@ -1,21 +1,52 @@
|
|
|
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/DatePicker.tsx
|
|
13
|
+
/*
|
|
14
|
+
* Copyright 2025 Adobe. All rights reserved.
|
|
15
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
16
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
17
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
+
*
|
|
19
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
20
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
21
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
22
|
+
* governing permissions and limitations under the License.
|
|
23
|
+
*/
|
|
24
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/HiddenDateInput.tsx
|
|
25
|
+
import { Provider, dataAttr, useRenderProps, useSlot } from "./utils.js";
|
|
26
|
+
import { n as LabelContext } from "./Label.js";
|
|
27
|
+
import { ButtonContext } from "./Button.js";
|
|
2
28
|
import { TextContext } from "./Text.js";
|
|
3
|
-
import {
|
|
29
|
+
import { FieldErrorContext } from "./FieldError.js";
|
|
30
|
+
import { FormContext, resolveValidationBehavior } from "./Form.js";
|
|
31
|
+
import { Popover } from "./Popover.js";
|
|
32
|
+
import { Dialog } from "./Dialog.js";
|
|
4
33
|
import { CalendarContext } from "./Calendar.js";
|
|
5
34
|
import { RangeCalendarContext } from "./RangeCalendar.js";
|
|
6
35
|
import { d as useDateRangePickerContext, n as DateFieldContext, u as DateRangePickerContext } from "./DateField2.js";
|
|
7
|
-
import {
|
|
8
|
-
import { Show, createContext,
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
36
|
+
import { addEvent, createComponent, effect, getNextElement, insert, mergeProps, readShallow, ref, runHydrationEvents, scope, setAttribute, setProperty, spread, style, template } from "@solidjs/web";
|
|
37
|
+
import { Show, createContext, createMemo, createSignal, createTrackedEffect, useContext } from "solid-js";
|
|
38
|
+
import { createDateField, createDatePicker, createDateRangePicker, createFocusRing, createFormReset, createFormValidation, createHover, mergeProps as mergeProps$1 } from "@proyecto-viviana/solidaria";
|
|
39
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
40
|
+
import { TimeClass, access, createCalendarState, createDateFieldState, createDatePickerState, createRangeCalendarState, toCalendarDateTime, toZoned } from "@proyecto-viviana/solid-stately";
|
|
11
41
|
//#region src/HiddenDateInput.tsx
|
|
12
42
|
/**
|
|
13
43
|
* HiddenDateInput component for solidaria-components
|
|
14
44
|
*
|
|
15
45
|
* A hidden native date/datetime-local input for form submission.
|
|
16
46
|
* Renders server-side with the initial value for SSR safety.
|
|
47
|
+
* Based on packages/react-aria-components/src/HiddenDateInput.tsx.
|
|
17
48
|
*/
|
|
18
|
-
var _tmpl$$1 =
|
|
49
|
+
var _tmpl$$1 = /* @__PURE__ */ template(`<input tabindex=-1 aria-hidden=true>`);
|
|
19
50
|
function accessValue(value) {
|
|
20
51
|
return typeof value === "function" ? value() : value;
|
|
21
52
|
}
|
|
@@ -56,19 +87,31 @@ function HiddenDateInput(props) {
|
|
|
56
87
|
return props.focus;
|
|
57
88
|
}
|
|
58
89
|
}, props.validationState, inputRef);
|
|
59
|
-
|
|
90
|
+
createTrackedEffect(() => {
|
|
60
91
|
const val = formattedValue();
|
|
61
92
|
const input = inputRef();
|
|
62
93
|
if (input && input.value !== val) input.value = val;
|
|
63
94
|
});
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
95
|
+
var _el$ = getNextElement(_tmpl$$1);
|
|
96
|
+
addEvent(_el$, "change", usesNativeValidation() ? () => {} : void 0);
|
|
97
|
+
ref(() => {
|
|
98
|
+
return (el) => {
|
|
68
99
|
setInputRef(el);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
|
|
100
|
+
};
|
|
101
|
+
}, _el$);
|
|
102
|
+
effect(() => {
|
|
103
|
+
return {
|
|
104
|
+
e: inputType(),
|
|
105
|
+
t: props.name,
|
|
106
|
+
a: props.form,
|
|
107
|
+
o: formattedValue(),
|
|
108
|
+
i: props.autoComplete,
|
|
109
|
+
n: props.isDisabled,
|
|
110
|
+
s: usesNativeValidation() && props.isRequired ? true : void 0,
|
|
111
|
+
h: usesNativeValidation() || void 0,
|
|
112
|
+
r: hasValidationBehavior() ? void 0 : formattedMin() || void 0,
|
|
113
|
+
d: hasValidationBehavior() ? void 0 : formattedMax() || void 0,
|
|
114
|
+
l: readShallow({
|
|
72
115
|
position: "absolute",
|
|
73
116
|
width: "1px",
|
|
74
117
|
height: "1px",
|
|
@@ -78,33 +121,22 @@ function HiddenDateInput(props) {
|
|
|
78
121
|
clip: "rect(0, 0, 0, 0)",
|
|
79
122
|
"white-space": "nowrap",
|
|
80
123
|
"border-width": "0"
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
o: void 0,
|
|
98
|
-
i: void 0,
|
|
99
|
-
n: void 0,
|
|
100
|
-
s: void 0,
|
|
101
|
-
h: void 0,
|
|
102
|
-
r: void 0,
|
|
103
|
-
d: void 0
|
|
104
|
-
});
|
|
105
|
-
effect(() => setProperty(_el$, "value", formattedValue()));
|
|
106
|
-
return _el$;
|
|
107
|
-
})();
|
|
124
|
+
})
|
|
125
|
+
};
|
|
126
|
+
}, ({ e, t, a, o, i, n, s, h, r, d, l }, _p$) => {
|
|
127
|
+
e !== _p$?.e && setAttribute(_el$, "type", e);
|
|
128
|
+
t !== _p$?.t && setAttribute(_el$, "name", t);
|
|
129
|
+
a !== _p$?.a && setAttribute(_el$, "form", a);
|
|
130
|
+
setProperty(_el$, "value", o);
|
|
131
|
+
i !== _p$?.i && setAttribute(_el$, "autocomplete", i);
|
|
132
|
+
n !== _p$?.n && setAttribute(_el$, "disabled", n);
|
|
133
|
+
s !== _p$?.s && setAttribute(_el$, "required", s);
|
|
134
|
+
h !== _p$?.h && setAttribute(_el$, "hidden", h);
|
|
135
|
+
r !== _p$?.r && setAttribute(_el$, "min", r);
|
|
136
|
+
d !== _p$?.d && setAttribute(_el$, "max", d);
|
|
137
|
+
style(_el$, l, _p$?.l);
|
|
138
|
+
});
|
|
139
|
+
return _el$;
|
|
108
140
|
}
|
|
109
141
|
//#endregion
|
|
110
142
|
//#region src/DatePicker.tsx
|
|
@@ -114,37 +146,13 @@ function HiddenDateInput(props) {
|
|
|
114
146
|
* Pre-wired headless date picker component that combines a date field with a calendar popup.
|
|
115
147
|
* Port of react-aria-components/src/DatePicker.tsx
|
|
116
148
|
*/
|
|
117
|
-
var _tmpl$ =
|
|
149
|
+
var _tmpl$ = /* @__PURE__ */ template(`<div>`);
|
|
150
|
+
var _tmpl$2 = /* @__PURE__ */ template(`<input type=hidden tabindex=-1 aria-hidden=true>`);
|
|
151
|
+
var _tmpl$3 = /* @__PURE__ */ template(`<button>`);
|
|
152
|
+
var _tmpl$4 = /* @__PURE__ */ template(`<span>`);
|
|
118
153
|
const DatePickerContext = createContext(null);
|
|
119
154
|
const DatePickerStateContext = createContext(null);
|
|
120
155
|
const DateRangePickerStateContext = createContext(null);
|
|
121
|
-
function withFormValidationBehavior(props, formContext) {
|
|
122
|
-
if (!formContext?.validationBehavior) return props;
|
|
123
|
-
return new Proxy(props, {
|
|
124
|
-
get(target, property, receiver) {
|
|
125
|
-
const localValue = Reflect.get(target, property, receiver);
|
|
126
|
-
if (property === "validationBehavior" && localValue === void 0) return formContext.validationBehavior;
|
|
127
|
-
return localValue;
|
|
128
|
-
},
|
|
129
|
-
has(target, property) {
|
|
130
|
-
return Reflect.has(target, property) || property === "validationBehavior" && formContext.validationBehavior !== void 0;
|
|
131
|
-
},
|
|
132
|
-
ownKeys(target) {
|
|
133
|
-
const keys = new Set(Reflect.ownKeys(target));
|
|
134
|
-
if (formContext.validationBehavior !== void 0) keys.add("validationBehavior");
|
|
135
|
-
return Array.from(keys);
|
|
136
|
-
},
|
|
137
|
-
getOwnPropertyDescriptor(target, property) {
|
|
138
|
-
const descriptor = Reflect.getOwnPropertyDescriptor(target, property);
|
|
139
|
-
if (descriptor) return descriptor;
|
|
140
|
-
if (property === "validationBehavior" && formContext.validationBehavior !== void 0) return {
|
|
141
|
-
enumerable: true,
|
|
142
|
-
configurable: true,
|
|
143
|
-
get: () => formContext.validationBehavior
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
156
|
function useDatePickerContext() {
|
|
149
157
|
const context = useContext(DatePickerContext);
|
|
150
158
|
if (!context) throw new Error("DatePicker components must be used within a DatePicker");
|
|
@@ -175,27 +183,23 @@ function useDatePickerContext() {
|
|
|
175
183
|
* </DatePicker>
|
|
176
184
|
* ```
|
|
177
185
|
*/
|
|
186
|
+
function focusWithinDomProps(focusProps) {
|
|
187
|
+
const { ref: _ref, onFocus, onBlur, ...rest } = focusProps;
|
|
188
|
+
return {
|
|
189
|
+
...rest,
|
|
190
|
+
onFocusIn: onFocus,
|
|
191
|
+
onFocusOut: onBlur
|
|
192
|
+
};
|
|
193
|
+
}
|
|
178
194
|
function DatePicker(props) {
|
|
179
|
-
|
|
180
|
-
const formContext = useContext(FormContext);
|
|
181
|
-
return createComponent(Show, {
|
|
182
|
-
get when() {
|
|
183
|
-
return isHydrated();
|
|
184
|
-
},
|
|
185
|
-
get fallback() {
|
|
186
|
-
return getNextElement(_tmpl$);
|
|
187
|
-
},
|
|
188
|
-
get children() {
|
|
189
|
-
return createComponent(DatePickerInner, mergeProps(props, { __formContext: formContext }));
|
|
190
|
-
}
|
|
191
|
-
});
|
|
195
|
+
return createComponent(DatePickerInner, props);
|
|
192
196
|
}
|
|
193
197
|
/**
|
|
194
198
|
* Internal DatePicker component that renders after client mount.
|
|
195
199
|
*/
|
|
196
200
|
function DatePickerInner(props) {
|
|
197
201
|
const formContext = props.__formContext ?? useContext(FormContext);
|
|
198
|
-
const [local, stateProps, rest] = splitProps(
|
|
202
|
+
const [local, stateProps, rest] = splitProps(props, [
|
|
199
203
|
"children",
|
|
200
204
|
"class",
|
|
201
205
|
"style",
|
|
@@ -225,8 +229,6 @@ function DatePickerInner(props) {
|
|
|
225
229
|
"validationState",
|
|
226
230
|
"validationBehavior",
|
|
227
231
|
"validate",
|
|
228
|
-
"description",
|
|
229
|
-
"errorMessage",
|
|
230
232
|
"isDateUnavailable",
|
|
231
233
|
"firstDayOfWeek",
|
|
232
234
|
"visibleMonths",
|
|
@@ -235,6 +237,7 @@ function DatePickerInner(props) {
|
|
|
235
237
|
"isDateDisabled"
|
|
236
238
|
]);
|
|
237
239
|
const [triggerRef, setTriggerRef] = createSignal(null);
|
|
240
|
+
const [groupRef, setGroupRefState] = createSignal(null);
|
|
238
241
|
const [fieldRef, setFieldRef] = createSignal(null);
|
|
239
242
|
const datePickerState = createDatePickerState({
|
|
240
243
|
get value() {
|
|
@@ -302,13 +305,16 @@ function DatePickerInner(props) {
|
|
|
302
305
|
};
|
|
303
306
|
const fieldState = createDateFieldState({
|
|
304
307
|
...stateProps,
|
|
308
|
+
get locale() {
|
|
309
|
+
return access(stateProps.locale);
|
|
310
|
+
},
|
|
305
311
|
value: () => datePickerState.value(),
|
|
306
312
|
onChange: (value) => {
|
|
307
313
|
datePickerState.setValue(value);
|
|
308
314
|
}
|
|
309
315
|
});
|
|
310
316
|
const calendarState = createCalendarState({
|
|
311
|
-
value: () => datePickerState.
|
|
317
|
+
value: () => datePickerState.dateValue(),
|
|
312
318
|
onChange: (value) => {
|
|
313
319
|
if (!value) return;
|
|
314
320
|
datePickerState.setDateValue(value);
|
|
@@ -317,7 +323,9 @@ function DatePickerInner(props) {
|
|
|
317
323
|
maxValue: stateProps.maxValue,
|
|
318
324
|
isDisabled: stateProps.isDisabled,
|
|
319
325
|
isReadOnly: stateProps.isReadOnly,
|
|
320
|
-
locale
|
|
326
|
+
get locale() {
|
|
327
|
+
return access(stateProps.locale);
|
|
328
|
+
},
|
|
321
329
|
createCalendar: stateProps.createCalendar,
|
|
322
330
|
isDateUnavailable: stateProps.isDateUnavailable,
|
|
323
331
|
firstDayOfWeek: stateProps.firstDayOfWeek,
|
|
@@ -327,17 +335,26 @@ function DatePickerInner(props) {
|
|
|
327
335
|
isDateDisabled: stateProps.isDateDisabled
|
|
328
336
|
});
|
|
329
337
|
let wasOpen = false;
|
|
330
|
-
|
|
338
|
+
createTrackedEffect(() => {
|
|
331
339
|
const open = datePickerState.isOpen();
|
|
332
340
|
if (open && !wasOpen) calendarState.setFocused(true);
|
|
333
341
|
wasOpen = open;
|
|
334
342
|
});
|
|
343
|
+
const hasExplicitName = () => Boolean(rest["aria-label"] || rest["aria-labelledby"]);
|
|
344
|
+
const stringLabel = () => {
|
|
345
|
+
const label = rest.label;
|
|
346
|
+
return typeof label === "string" && label !== "" ? label : void 0;
|
|
347
|
+
};
|
|
348
|
+
const [labelRef, hasLabel] = useSlot(!hasExplicitName() && stringLabel() === void 0);
|
|
335
349
|
const pickerAria = createDatePicker(() => ({
|
|
336
350
|
...rest,
|
|
337
|
-
|
|
338
|
-
errorMessage: stateProps.errorMessage
|
|
351
|
+
label: stringLabel() ?? (hasExplicitName() ? void 0 : hasLabel())
|
|
339
352
|
}), fieldState, overlayState, calendarState, () => fieldRef());
|
|
340
353
|
const fieldAria = createDateField(() => pickerAria.fieldProps, fieldState, () => fieldRef());
|
|
354
|
+
const [resetInput, setResetInput] = createSignal();
|
|
355
|
+
createFormReset(resetInput, fieldState.defaultValue, () => {
|
|
356
|
+
fieldState.setValue(fieldState.defaultValue ?? null);
|
|
357
|
+
});
|
|
341
358
|
const contextValue = {
|
|
342
359
|
fieldState,
|
|
343
360
|
datePickerState,
|
|
@@ -349,10 +366,18 @@ function DatePickerInner(props) {
|
|
|
349
366
|
const current = triggerRef();
|
|
350
367
|
if (!current || !current.isConnected) setTriggerRef(() => element);
|
|
351
368
|
},
|
|
369
|
+
groupRef,
|
|
370
|
+
setGroupRef: (element) => {
|
|
371
|
+
if (!element) return;
|
|
372
|
+
setGroupRefState(() => element);
|
|
373
|
+
},
|
|
352
374
|
pickerAria
|
|
353
375
|
};
|
|
354
376
|
const isInvalid = createMemo(() => fieldState.isInvalid() || datePickerState.builtinValidation().isInvalid || Boolean(stateProps.isInvalid));
|
|
377
|
+
const { isFocused, isFocusVisible, focusProps } = createFocusRing({ within: true });
|
|
355
378
|
const renderValues = createMemo(() => ({
|
|
379
|
+
isFocusWithin: isFocused(),
|
|
380
|
+
isFocusVisible: isFocusVisible(),
|
|
356
381
|
isDisabled: fieldState.isDisabled(),
|
|
357
382
|
isReadOnly: fieldState.isReadOnly(),
|
|
358
383
|
isRequired: fieldState.isRequired(),
|
|
@@ -364,14 +389,62 @@ function DatePickerInner(props) {
|
|
|
364
389
|
style: local.style,
|
|
365
390
|
defaultClassName: "solidaria-DatePicker"
|
|
366
391
|
}, renderValues);
|
|
367
|
-
const validationBehavior = () => stateProps.validationBehavior
|
|
368
|
-
|
|
392
|
+
const validationBehavior = () => resolveValidationBehavior(stateProps.validationBehavior, formContext);
|
|
393
|
+
const buttonContextValue = { slots: { default: {
|
|
394
|
+
get id() {
|
|
395
|
+
return pickerAria.buttonProps.id;
|
|
396
|
+
},
|
|
397
|
+
type: "button",
|
|
398
|
+
get "aria-label"() {
|
|
399
|
+
return pickerAria.buttonProps["aria-label"];
|
|
400
|
+
},
|
|
401
|
+
get "aria-labelledby"() {
|
|
402
|
+
return pickerAria.buttonProps["aria-labelledby"];
|
|
403
|
+
},
|
|
404
|
+
get "aria-describedby"() {
|
|
405
|
+
return pickerAria.buttonProps["aria-describedby"];
|
|
406
|
+
},
|
|
407
|
+
get "aria-haspopup"() {
|
|
408
|
+
return pickerAria.buttonProps["aria-haspopup"];
|
|
409
|
+
},
|
|
410
|
+
get "aria-expanded"() {
|
|
411
|
+
return pickerAria.buttonProps["aria-expanded"];
|
|
412
|
+
},
|
|
413
|
+
get isDisabled() {
|
|
414
|
+
return pickerAria.isButtonDisabled();
|
|
415
|
+
},
|
|
416
|
+
onPress() {
|
|
417
|
+
overlayState.open();
|
|
418
|
+
}
|
|
419
|
+
} } };
|
|
420
|
+
const labelContextValue = {
|
|
421
|
+
get id() {
|
|
422
|
+
if (hasExplicitName() || stringLabel() !== void 0 || !hasLabel()) return;
|
|
423
|
+
return pickerAria.labelProps.id;
|
|
424
|
+
},
|
|
425
|
+
ref: labelRef,
|
|
426
|
+
elementType: "span"
|
|
427
|
+
};
|
|
428
|
+
const fieldValidation = createMemo(() => ({
|
|
429
|
+
isInvalid: isInvalid(),
|
|
430
|
+
validationErrors: pickerAria.validationErrors,
|
|
431
|
+
validationDetails: pickerAria.validationDetails
|
|
432
|
+
}));
|
|
433
|
+
const fieldErrorContext = {
|
|
434
|
+
get validation() {
|
|
435
|
+
return fieldValidation();
|
|
436
|
+
},
|
|
437
|
+
get errorMessageProps() {
|
|
438
|
+
return pickerAria.errorMessageProps;
|
|
439
|
+
}
|
|
440
|
+
};
|
|
441
|
+
return createComponent(DatePickerStateContext, {
|
|
369
442
|
value: fieldState,
|
|
370
443
|
get children() {
|
|
371
|
-
return createComponent(DatePickerContext
|
|
444
|
+
return createComponent(DatePickerContext, {
|
|
372
445
|
value: contextValue,
|
|
373
446
|
get children() {
|
|
374
|
-
return createComponent(DateFieldContext
|
|
447
|
+
return createComponent(DateFieldContext, {
|
|
375
448
|
value: {
|
|
376
449
|
state: fieldState,
|
|
377
450
|
aria: {
|
|
@@ -390,82 +463,112 @@ function DatePickerInner(props) {
|
|
|
390
463
|
}
|
|
391
464
|
},
|
|
392
465
|
get children() {
|
|
393
|
-
return createComponent(CalendarContext
|
|
466
|
+
return createComponent(CalendarContext, {
|
|
394
467
|
value: calendarState,
|
|
395
468
|
get children() {
|
|
396
|
-
return [
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
469
|
+
return [
|
|
470
|
+
(() => {
|
|
471
|
+
var _el$ = getNextElement(_tmpl$);
|
|
472
|
+
ref(() => {
|
|
473
|
+
return setFieldRef;
|
|
474
|
+
}, _el$);
|
|
475
|
+
spread(_el$, [() => {
|
|
476
|
+
return focusWithinDomProps(focusProps);
|
|
477
|
+
}, {
|
|
478
|
+
get "class"() {
|
|
479
|
+
return renderProps.class();
|
|
403
480
|
},
|
|
404
|
-
get
|
|
405
|
-
return
|
|
406
|
-
}
|
|
407
|
-
} }]],
|
|
408
|
-
get children() {
|
|
409
|
-
return props.children;
|
|
410
|
-
}
|
|
411
|
-
}));
|
|
412
|
-
effect((_p$) => {
|
|
413
|
-
var _v$ = renderProps.class(), _v$2 = renderProps.style(), _v$3 = dataAttr(fieldState.isDisabled()), _v$4 = dataAttr(fieldState.isReadOnly()), _v$5 = dataAttr(fieldState.isRequired()), _v$6 = dataAttr(isInvalid()), _v$7 = dataAttr(overlayState.isOpen);
|
|
414
|
-
_v$ !== _p$.e && className(_el$2, _p$.e = _v$);
|
|
415
|
-
_p$.t = style(_el$2, _v$2, _p$.t);
|
|
416
|
-
_v$3 !== _p$.a && setAttribute(_el$2, "data-disabled", _p$.a = _v$3);
|
|
417
|
-
_v$4 !== _p$.o && setAttribute(_el$2, "data-readonly", _p$.o = _v$4);
|
|
418
|
-
_v$5 !== _p$.i && setAttribute(_el$2, "data-required", _p$.i = _v$5);
|
|
419
|
-
_v$6 !== _p$.n && setAttribute(_el$2, "data-invalid", _p$.n = _v$6);
|
|
420
|
-
_v$7 !== _p$.s && setAttribute(_el$2, "data-open", _p$.s = _v$7);
|
|
421
|
-
return _p$;
|
|
422
|
-
}, {
|
|
423
|
-
e: void 0,
|
|
424
|
-
t: void 0,
|
|
425
|
-
a: void 0,
|
|
426
|
-
o: void 0,
|
|
427
|
-
i: void 0,
|
|
428
|
-
n: void 0,
|
|
429
|
-
s: void 0
|
|
430
|
-
});
|
|
431
|
-
return _el$2;
|
|
432
|
-
})(), createComponent(Show, {
|
|
433
|
-
get when() {
|
|
434
|
-
return rest.name;
|
|
435
|
-
},
|
|
436
|
-
get children() {
|
|
437
|
-
return createComponent(HiddenDateInput, {
|
|
438
|
-
get name() {
|
|
439
|
-
return rest.name;
|
|
481
|
+
get style() {
|
|
482
|
+
return renderProps.style();
|
|
440
483
|
},
|
|
441
|
-
get
|
|
442
|
-
return
|
|
484
|
+
get "data-focus-within"() {
|
|
485
|
+
return dataAttr(isFocused());
|
|
443
486
|
},
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
return rest.autoComplete;
|
|
487
|
+
get "data-focus-visible"() {
|
|
488
|
+
return dataAttr(isFocusVisible());
|
|
447
489
|
},
|
|
448
|
-
get
|
|
449
|
-
return fieldState.isDisabled();
|
|
490
|
+
get "data-disabled"() {
|
|
491
|
+
return dataAttr(fieldState.isDisabled());
|
|
450
492
|
},
|
|
451
|
-
get
|
|
452
|
-
return fieldState.
|
|
493
|
+
get "data-readonly"() {
|
|
494
|
+
return dataAttr(fieldState.isReadOnly());
|
|
453
495
|
},
|
|
454
|
-
get
|
|
455
|
-
return
|
|
496
|
+
get "data-required"() {
|
|
497
|
+
return dataAttr(fieldState.isRequired());
|
|
456
498
|
},
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
fieldRef()?.querySelector("[role=\"spinbutton\"]")?.focus();
|
|
499
|
+
get "data-invalid"() {
|
|
500
|
+
return dataAttr(isInvalid());
|
|
460
501
|
},
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
get granularity() {
|
|
464
|
-
return datePickerState.granularity;
|
|
502
|
+
get "data-open"() {
|
|
503
|
+
return dataAttr(overlayState.isOpen);
|
|
465
504
|
}
|
|
466
|
-
});
|
|
467
|
-
|
|
468
|
-
|
|
505
|
+
}], true);
|
|
506
|
+
insert(_el$, createComponent(Provider, {
|
|
507
|
+
values: [
|
|
508
|
+
[TextContext, { slots: {
|
|
509
|
+
get description() {
|
|
510
|
+
return pickerAria.descriptionProps;
|
|
511
|
+
},
|
|
512
|
+
get errorMessage() {
|
|
513
|
+
return pickerAria.errorMessageProps;
|
|
514
|
+
}
|
|
515
|
+
} }],
|
|
516
|
+
[ButtonContext, buttonContextValue],
|
|
517
|
+
[FieldErrorContext, fieldErrorContext],
|
|
518
|
+
[LabelContext, labelContextValue]
|
|
519
|
+
],
|
|
520
|
+
get children() {
|
|
521
|
+
return props.children;
|
|
522
|
+
}
|
|
523
|
+
}));
|
|
524
|
+
runHydrationEvents();
|
|
525
|
+
return _el$;
|
|
526
|
+
})(),
|
|
527
|
+
(() => {
|
|
528
|
+
var _el$2 = getNextElement(_tmpl$2);
|
|
529
|
+
ref(() => {
|
|
530
|
+
return setResetInput;
|
|
531
|
+
}, _el$2);
|
|
532
|
+
return _el$2;
|
|
533
|
+
})(),
|
|
534
|
+
createComponent(Show, {
|
|
535
|
+
get when() {
|
|
536
|
+
return rest.name;
|
|
537
|
+
},
|
|
538
|
+
get children() {
|
|
539
|
+
return createComponent(HiddenDateInput, {
|
|
540
|
+
get name() {
|
|
541
|
+
return rest.name;
|
|
542
|
+
},
|
|
543
|
+
get form() {
|
|
544
|
+
return rest.form;
|
|
545
|
+
},
|
|
546
|
+
value: () => datePickerState.value(),
|
|
547
|
+
get autoComplete() {
|
|
548
|
+
return rest.autoComplete;
|
|
549
|
+
},
|
|
550
|
+
get isDisabled() {
|
|
551
|
+
return fieldState.isDisabled();
|
|
552
|
+
},
|
|
553
|
+
get isRequired() {
|
|
554
|
+
return fieldState.isRequired();
|
|
555
|
+
},
|
|
556
|
+
get validationBehavior() {
|
|
557
|
+
return validationBehavior();
|
|
558
|
+
},
|
|
559
|
+
validationState: fieldState,
|
|
560
|
+
focus: () => {
|
|
561
|
+
fieldRef()?.querySelector("[role=\"spinbutton\"]")?.focus();
|
|
562
|
+
},
|
|
563
|
+
minValue: () => access(stateProps.minValue),
|
|
564
|
+
maxValue: () => access(stateProps.maxValue),
|
|
565
|
+
get granularity() {
|
|
566
|
+
return datePickerState.granularity;
|
|
567
|
+
}
|
|
568
|
+
});
|
|
569
|
+
}
|
|
570
|
+
})
|
|
571
|
+
];
|
|
469
572
|
}
|
|
470
573
|
});
|
|
471
574
|
}
|
|
@@ -475,19 +578,25 @@ function DatePickerInner(props) {
|
|
|
475
578
|
}
|
|
476
579
|
});
|
|
477
580
|
}
|
|
581
|
+
function rangePlaceholderTime(placeholder) {
|
|
582
|
+
if (placeholder && "hour" in placeholder) return placeholder;
|
|
583
|
+
return new TimeClass();
|
|
584
|
+
}
|
|
585
|
+
function applyRangeEndpointTime(date, existing, placeholder) {
|
|
586
|
+
if ("hour" in date) return date;
|
|
587
|
+
const time = existing && "hour" in existing ? existing : rangePlaceholderTime(placeholder);
|
|
588
|
+
const combined = toCalendarDateTime(date, time);
|
|
589
|
+
if ("timeZone" in time) return toZoned(combined, time.timeZone);
|
|
590
|
+
return combined;
|
|
591
|
+
}
|
|
592
|
+
function applyRangeTime(range, committed, placeholder) {
|
|
593
|
+
return {
|
|
594
|
+
start: applyRangeEndpointTime(range.start, committed?.start, placeholder),
|
|
595
|
+
end: applyRangeEndpointTime(range.end, committed?.end, placeholder)
|
|
596
|
+
};
|
|
597
|
+
}
|
|
478
598
|
function DateRangePicker(props) {
|
|
479
|
-
|
|
480
|
-
return createComponent(Show, {
|
|
481
|
-
get when() {
|
|
482
|
-
return isHydrated();
|
|
483
|
-
},
|
|
484
|
-
get fallback() {
|
|
485
|
-
return getNextElement(_tmpl$3);
|
|
486
|
-
},
|
|
487
|
-
get children() {
|
|
488
|
-
return createComponent(DateRangePickerInner, props);
|
|
489
|
-
}
|
|
490
|
-
});
|
|
599
|
+
return createComponent(DateRangePickerInner, props);
|
|
491
600
|
}
|
|
492
601
|
function DateRangePickerInner(props) {
|
|
493
602
|
const [local, overlayProps, stateProps, rest] = splitProps(props, [
|
|
@@ -510,7 +619,6 @@ function DateRangePickerInner(props) {
|
|
|
510
619
|
"isReadOnly",
|
|
511
620
|
"focusedValue",
|
|
512
621
|
"defaultFocusedValue",
|
|
513
|
-
"onFocusChange",
|
|
514
622
|
"locale",
|
|
515
623
|
"granularity",
|
|
516
624
|
"hourCycle",
|
|
@@ -528,11 +636,14 @@ function DateRangePickerInner(props) {
|
|
|
528
636
|
]);
|
|
529
637
|
const [internalOpen, setInternalOpen] = createSignal(overlayProps.defaultOpen ?? false);
|
|
530
638
|
const isOpen = () => access(overlayProps.isOpen) ?? internalOpen();
|
|
639
|
+
let commitPendingRange = () => {};
|
|
531
640
|
const setOpen = (open) => {
|
|
641
|
+
if (!open) commitPendingRange();
|
|
532
642
|
if (access(overlayProps.isOpen) === void 0) setInternalOpen(open);
|
|
533
643
|
overlayProps.onOpenChange?.(open);
|
|
534
644
|
};
|
|
535
645
|
let triggerRef = null;
|
|
646
|
+
let groupRef = null;
|
|
536
647
|
const [fieldRef, setFieldRef] = createSignal(null);
|
|
537
648
|
const overlayState = {
|
|
538
649
|
get isOpen() {
|
|
@@ -547,20 +658,55 @@ function DateRangePickerInner(props) {
|
|
|
547
658
|
const controlled = access(stateProps.value);
|
|
548
659
|
return controlled !== void 0 ? controlled : internalRangeValue();
|
|
549
660
|
});
|
|
661
|
+
const [pendingDateRange, setPendingDateRange] = createSignal(null);
|
|
550
662
|
const setCommittedRangeValue = (value) => {
|
|
663
|
+
setPendingDateRange(null);
|
|
551
664
|
if (access(stateProps.value) === void 0) setInternalRangeValue(() => value);
|
|
552
665
|
stateProps.onChange?.(value);
|
|
553
666
|
};
|
|
667
|
+
const rangeGranularity = createMemo(() => {
|
|
668
|
+
if (stateProps.granularity) return stateProps.granularity;
|
|
669
|
+
const value = currentRangeValue()?.start ?? currentRangeValue()?.end;
|
|
670
|
+
if (value && "hour" in value) return "second" in value ? "second" : "minute";
|
|
671
|
+
const placeholder = stateProps.placeholderValue;
|
|
672
|
+
if (!value && placeholder && "minute" in placeholder) return "minute";
|
|
673
|
+
return "day";
|
|
674
|
+
});
|
|
675
|
+
const hasRangeTime = () => {
|
|
676
|
+
const granularity = rangeGranularity();
|
|
677
|
+
return granularity === "hour" || granularity === "minute" || granularity === "second";
|
|
678
|
+
};
|
|
679
|
+
const committedEndsHaveTime = () => {
|
|
680
|
+
const committed = currentRangeValue();
|
|
681
|
+
return Boolean(committed?.start && committed.end && "hour" in committed.start && "hour" in committed.end);
|
|
682
|
+
};
|
|
554
683
|
const calendarState = createRangeCalendarState({
|
|
555
684
|
...stateProps,
|
|
556
|
-
|
|
685
|
+
get locale() {
|
|
686
|
+
return access(stateProps.locale);
|
|
687
|
+
},
|
|
688
|
+
value: () => {
|
|
689
|
+
const pending = pendingDateRange();
|
|
690
|
+
if (pending?.start && pending.end) return pending;
|
|
691
|
+
return currentRangeValue();
|
|
692
|
+
},
|
|
557
693
|
onChange: (value) => {
|
|
558
|
-
|
|
559
|
-
if (
|
|
694
|
+
const shouldClose = local.shouldCloseOnSelect !== false;
|
|
695
|
+
if (!value?.start || !value.end || !hasRangeTime()) {
|
|
696
|
+
setCommittedRangeValue(value);
|
|
697
|
+
if (value?.start && value.end && shouldClose) setOpen(false);
|
|
698
|
+
return;
|
|
699
|
+
}
|
|
700
|
+
if (shouldClose || committedEndsHaveTime()) {
|
|
701
|
+
setCommittedRangeValue(applyRangeTime(value, currentRangeValue(), stateProps.placeholderValue));
|
|
702
|
+
if (shouldClose) setOpen(false);
|
|
703
|
+
return;
|
|
704
|
+
}
|
|
705
|
+
setPendingDateRange(value);
|
|
560
706
|
}
|
|
561
707
|
});
|
|
562
708
|
let wasRangeOpen = false;
|
|
563
|
-
|
|
709
|
+
createTrackedEffect(() => {
|
|
564
710
|
const open = overlayState.isOpen;
|
|
565
711
|
if (open && !wasRangeOpen) calendarState.setFocused(true);
|
|
566
712
|
wasRangeOpen = open;
|
|
@@ -569,13 +715,14 @@ function DateRangePickerInner(props) {
|
|
|
569
715
|
const isRequired = createMemo(() => Boolean(rest.isRequired));
|
|
570
716
|
const [startFieldValue, setStartFieldValue] = createSignal(currentRangeValue()?.start ?? null);
|
|
571
717
|
const [endFieldValue, setEndFieldValue] = createSignal(currentRangeValue()?.end ?? null);
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
return
|
|
577
|
-
|
|
578
|
-
|
|
718
|
+
commitPendingRange = () => {
|
|
719
|
+
const pending = pendingDateRange();
|
|
720
|
+
if (!pending?.start || !pending.end || !hasRangeTime()) return;
|
|
721
|
+
const committed = currentRangeValue();
|
|
722
|
+
if (committed?.start && committed.end) return;
|
|
723
|
+
setCommittedRangeValue(applyRangeTime(pending, committed, stateProps.placeholderValue));
|
|
724
|
+
};
|
|
725
|
+
createTrackedEffect(() => {
|
|
579
726
|
const value = currentRangeValue();
|
|
580
727
|
setStartFieldValue(() => value?.start ?? null);
|
|
581
728
|
setEndFieldValue(() => value?.end ?? null);
|
|
@@ -596,7 +743,9 @@ function DateRangePickerInner(props) {
|
|
|
596
743
|
isDisabled: stateProps.isDisabled,
|
|
597
744
|
isReadOnly: stateProps.isReadOnly,
|
|
598
745
|
isRequired,
|
|
599
|
-
locale
|
|
746
|
+
get locale() {
|
|
747
|
+
return access(stateProps.locale);
|
|
748
|
+
},
|
|
600
749
|
granularity: rangeGranularity(),
|
|
601
750
|
hourCycle: stateProps.hourCycle,
|
|
602
751
|
hideTimeZone: stateProps.hideTimeZone,
|
|
@@ -606,18 +755,49 @@ function DateRangePickerInner(props) {
|
|
|
606
755
|
};
|
|
607
756
|
const startFieldState = createDateFieldState({
|
|
608
757
|
...rangeFieldStateProps,
|
|
758
|
+
get locale() {
|
|
759
|
+
return access(stateProps.locale);
|
|
760
|
+
},
|
|
609
761
|
value: startFieldValue,
|
|
610
|
-
onChange: (value) => setRangeFieldValue("start", value)
|
|
762
|
+
onChange: (value) => setRangeFieldValue("start", value),
|
|
763
|
+
defaultValue: stateProps.defaultValue?.start
|
|
611
764
|
});
|
|
612
765
|
const endFieldState = createDateFieldState({
|
|
613
766
|
...rangeFieldStateProps,
|
|
767
|
+
get locale() {
|
|
768
|
+
return access(stateProps.locale);
|
|
769
|
+
},
|
|
614
770
|
value: endFieldValue,
|
|
615
|
-
onChange: (value) => setRangeFieldValue("end", value)
|
|
771
|
+
onChange: (value) => setRangeFieldValue("end", value),
|
|
772
|
+
defaultValue: stateProps.defaultValue?.end
|
|
616
773
|
});
|
|
774
|
+
const [startResetInput, setStartResetInput] = createSignal();
|
|
775
|
+
const [endResetInput, setEndResetInput] = createSignal();
|
|
776
|
+
const resetRangeToDefault = () => {
|
|
777
|
+
const start = startFieldState.defaultValue ?? null;
|
|
778
|
+
const end = endFieldState.defaultValue ?? null;
|
|
779
|
+
setStartFieldValue(() => start);
|
|
780
|
+
setEndFieldValue(() => end);
|
|
781
|
+
startFieldState.setValue(start);
|
|
782
|
+
endFieldState.setValue(end);
|
|
783
|
+
setCommittedRangeValue(start && end ? {
|
|
784
|
+
start,
|
|
785
|
+
end
|
|
786
|
+
} : null);
|
|
787
|
+
};
|
|
788
|
+
createFormReset(startResetInput, startFieldState.defaultValue, resetRangeToDefault);
|
|
789
|
+
createFormReset(endResetInput, endFieldState.defaultValue, resetRangeToDefault);
|
|
790
|
+
const hasExplicitName = () => Boolean(rest["aria-label"] || rest["aria-labelledby"]);
|
|
791
|
+
const stringLabel = () => {
|
|
792
|
+
const label = rest.label;
|
|
793
|
+
return typeof label === "string" && label !== "" ? label : void 0;
|
|
794
|
+
};
|
|
795
|
+
const [labelRef, hasLabel] = useSlot(!hasExplicitName() && stringLabel() === void 0);
|
|
617
796
|
const pickerAria = createDateRangePicker(() => ({
|
|
618
797
|
...rest,
|
|
619
798
|
description: props.description,
|
|
620
|
-
errorMessage: props.errorMessage
|
|
799
|
+
errorMessage: props.errorMessage,
|
|
800
|
+
label: stringLabel() ?? (hasExplicitName() ? void 0 : hasLabel())
|
|
621
801
|
}), calendarState, overlayState, () => fieldRef());
|
|
622
802
|
const startFieldAria = createDateField(() => pickerAria.startFieldProps, startFieldState, () => fieldRef());
|
|
623
803
|
const endFieldAria = createDateField(() => pickerAria.endFieldProps, endFieldState, () => fieldRef());
|
|
@@ -661,9 +841,17 @@ function DateRangePickerInner(props) {
|
|
|
661
841
|
if (!element) return;
|
|
662
842
|
if (!triggerRef || !triggerRef.isConnected) triggerRef = element;
|
|
663
843
|
},
|
|
844
|
+
groupRef: () => groupRef,
|
|
845
|
+
setGroupRef: (element) => {
|
|
846
|
+
if (!element) return;
|
|
847
|
+
groupRef = element;
|
|
848
|
+
},
|
|
664
849
|
pickerAria
|
|
665
850
|
};
|
|
851
|
+
const { isFocused, isFocusVisible, focusProps } = createFocusRing({ within: true });
|
|
666
852
|
const renderValues = createMemo(() => ({
|
|
853
|
+
isFocusWithin: isFocused(),
|
|
854
|
+
isFocusVisible: isFocusVisible(),
|
|
667
855
|
isDisabled: calendarState.isDisabled(),
|
|
668
856
|
isReadOnly: calendarState.isReadOnly(),
|
|
669
857
|
isRequired: isRequired(),
|
|
@@ -675,53 +863,121 @@ function DateRangePickerInner(props) {
|
|
|
675
863
|
style: local.style,
|
|
676
864
|
defaultClassName: "solidaria-DateRangePicker"
|
|
677
865
|
}, renderValues);
|
|
678
|
-
|
|
866
|
+
const buttonContextValue = { slots: { default: {
|
|
867
|
+
get id() {
|
|
868
|
+
return pickerAria.buttonProps.id;
|
|
869
|
+
},
|
|
870
|
+
type: "button",
|
|
871
|
+
get "aria-label"() {
|
|
872
|
+
return pickerAria.buttonProps["aria-label"];
|
|
873
|
+
},
|
|
874
|
+
get "aria-labelledby"() {
|
|
875
|
+
return pickerAria.buttonProps["aria-labelledby"];
|
|
876
|
+
},
|
|
877
|
+
get "aria-describedby"() {
|
|
878
|
+
return pickerAria.buttonProps["aria-describedby"];
|
|
879
|
+
},
|
|
880
|
+
get "aria-haspopup"() {
|
|
881
|
+
return pickerAria.buttonProps["aria-haspopup"];
|
|
882
|
+
},
|
|
883
|
+
get "aria-expanded"() {
|
|
884
|
+
return pickerAria.buttonProps["aria-expanded"];
|
|
885
|
+
},
|
|
886
|
+
get isDisabled() {
|
|
887
|
+
return pickerAria.isButtonDisabled();
|
|
888
|
+
},
|
|
889
|
+
onPress() {
|
|
890
|
+
overlayState.open();
|
|
891
|
+
}
|
|
892
|
+
} } };
|
|
893
|
+
const labelContextValue = {
|
|
894
|
+
get id() {
|
|
895
|
+
if (hasExplicitName() || stringLabel() !== void 0 || !hasLabel()) return;
|
|
896
|
+
return pickerAria.labelProps.id;
|
|
897
|
+
},
|
|
898
|
+
ref: labelRef,
|
|
899
|
+
elementType: "span"
|
|
900
|
+
};
|
|
901
|
+
return createComponent(DateRangePickerStateContext, {
|
|
679
902
|
value: calendarState,
|
|
680
903
|
get children() {
|
|
681
|
-
return createComponent(DateRangePickerContext
|
|
904
|
+
return createComponent(DateRangePickerContext, {
|
|
682
905
|
value: contextValue,
|
|
683
906
|
get children() {
|
|
684
|
-
return createComponent(RangeCalendarContext
|
|
907
|
+
return createComponent(RangeCalendarContext, {
|
|
685
908
|
value: calendarState,
|
|
686
909
|
get children() {
|
|
687
910
|
return [
|
|
688
911
|
(() => {
|
|
689
|
-
var _el$
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
912
|
+
var _el$3 = getNextElement(_tmpl$);
|
|
913
|
+
ref(() => {
|
|
914
|
+
return setFieldRef;
|
|
915
|
+
}, _el$3);
|
|
916
|
+
spread(_el$3, [() => {
|
|
917
|
+
return focusWithinDomProps(focusProps);
|
|
918
|
+
}, {
|
|
919
|
+
get "class"() {
|
|
920
|
+
return renderProps.class();
|
|
921
|
+
},
|
|
922
|
+
get style() {
|
|
923
|
+
return renderProps.style();
|
|
924
|
+
},
|
|
925
|
+
get "data-focus-within"() {
|
|
926
|
+
return dataAttr(isFocused());
|
|
927
|
+
},
|
|
928
|
+
get "data-focus-visible"() {
|
|
929
|
+
return dataAttr(isFocusVisible());
|
|
930
|
+
},
|
|
931
|
+
get "data-disabled"() {
|
|
932
|
+
return dataAttr(calendarState.isDisabled());
|
|
933
|
+
},
|
|
934
|
+
get "data-readonly"() {
|
|
935
|
+
return dataAttr(calendarState.isReadOnly());
|
|
936
|
+
},
|
|
937
|
+
get "data-required"() {
|
|
938
|
+
return dataAttr(isRequired());
|
|
939
|
+
},
|
|
940
|
+
get "data-invalid"() {
|
|
941
|
+
return dataAttr(isInvalid());
|
|
942
|
+
},
|
|
943
|
+
get "data-open"() {
|
|
944
|
+
return dataAttr(overlayState.isOpen);
|
|
945
|
+
}
|
|
946
|
+
}], true);
|
|
947
|
+
insert(_el$3, createComponent(Provider, {
|
|
948
|
+
values: [
|
|
949
|
+
[TextContext, { slots: {
|
|
950
|
+
get description() {
|
|
951
|
+
return pickerAria.descriptionProps;
|
|
952
|
+
},
|
|
953
|
+
get errorMessage() {
|
|
954
|
+
return pickerAria.errorMessageProps;
|
|
955
|
+
}
|
|
956
|
+
} }],
|
|
957
|
+
[ButtonContext, buttonContextValue],
|
|
958
|
+
[LabelContext, labelContextValue]
|
|
959
|
+
],
|
|
700
960
|
get children() {
|
|
701
961
|
return props.children;
|
|
702
962
|
}
|
|
703
963
|
}));
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
_v$12 !== _p$.s && setAttribute(_el$4, "data-open", _p$.s = _v$12);
|
|
713
|
-
return _p$;
|
|
714
|
-
}, {
|
|
715
|
-
e: void 0,
|
|
716
|
-
t: void 0,
|
|
717
|
-
a: void 0,
|
|
718
|
-
o: void 0,
|
|
719
|
-
i: void 0,
|
|
720
|
-
n: void 0,
|
|
721
|
-
s: void 0
|
|
722
|
-
});
|
|
964
|
+
runHydrationEvents();
|
|
965
|
+
return _el$3;
|
|
966
|
+
})(),
|
|
967
|
+
(() => {
|
|
968
|
+
var _el$4 = getNextElement(_tmpl$2);
|
|
969
|
+
ref(() => {
|
|
970
|
+
return setStartResetInput;
|
|
971
|
+
}, _el$4);
|
|
723
972
|
return _el$4;
|
|
724
973
|
})(),
|
|
974
|
+
(() => {
|
|
975
|
+
var _el$5 = getNextElement(_tmpl$2);
|
|
976
|
+
ref(() => {
|
|
977
|
+
return setEndResetInput;
|
|
978
|
+
}, _el$5);
|
|
979
|
+
return _el$5;
|
|
980
|
+
})(),
|
|
725
981
|
createComponent(Show, {
|
|
726
982
|
get when() {
|
|
727
983
|
return rest.startName;
|
|
@@ -803,51 +1059,49 @@ function DatePickerButton(props) {
|
|
|
803
1059
|
style: props.style,
|
|
804
1060
|
defaultClassName: "solidaria-DatePickerButton"
|
|
805
1061
|
}, renderValues);
|
|
806
|
-
const getChildren = () =>
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
return (() => {
|
|
812
|
-
var _el$5 = getNextElement(_tmpl$4);
|
|
813
|
-
use((el) => {
|
|
1062
|
+
const getChildren = () => renderProps.renderChildren() ?? "📅";
|
|
1063
|
+
const buttonProps = createMemo(() => mergeProps$1(context.pickerAria.buttonProps, focusProps, hoverProps));
|
|
1064
|
+
var _el$6 = getNextElement(_tmpl$3);
|
|
1065
|
+
ref(() => {
|
|
1066
|
+
return (el) => {
|
|
814
1067
|
context.setTriggerRef(el);
|
|
815
1068
|
props.ref?.(el);
|
|
816
|
-
}
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
}
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
return
|
|
842
|
-
},
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
1069
|
+
};
|
|
1070
|
+
}, _el$6);
|
|
1071
|
+
spread(_el$6, [buttonProps, {
|
|
1072
|
+
get "class"() {
|
|
1073
|
+
return renderProps.class();
|
|
1074
|
+
},
|
|
1075
|
+
get style() {
|
|
1076
|
+
return renderProps.style();
|
|
1077
|
+
},
|
|
1078
|
+
get disabled() {
|
|
1079
|
+
return isDisabled();
|
|
1080
|
+
},
|
|
1081
|
+
get "data-disabled"() {
|
|
1082
|
+
return dataAttr(isDisabled());
|
|
1083
|
+
},
|
|
1084
|
+
get "data-open"() {
|
|
1085
|
+
return dataAttr(context.overlayState.isOpen);
|
|
1086
|
+
},
|
|
1087
|
+
get "data-hovered"() {
|
|
1088
|
+
return dataAttr(isHovered());
|
|
1089
|
+
},
|
|
1090
|
+
get "data-focused"() {
|
|
1091
|
+
return dataAttr(isFocused());
|
|
1092
|
+
},
|
|
1093
|
+
get "data-focus-visible"() {
|
|
1094
|
+
return dataAttr(isFocusVisible());
|
|
1095
|
+
},
|
|
1096
|
+
get "data-pressed"() {
|
|
1097
|
+
return dataAttr(context.pickerAria.isButtonPressed());
|
|
1098
|
+
}
|
|
1099
|
+
}], true);
|
|
1100
|
+
insert(_el$6, scope(() => {
|
|
1101
|
+
return getChildren();
|
|
1102
|
+
}));
|
|
1103
|
+
runHydrationEvents();
|
|
1104
|
+
return _el$6;
|
|
851
1105
|
}
|
|
852
1106
|
function DateRangePickerButton(props) {
|
|
853
1107
|
const context = useDateRangePickerContext();
|
|
@@ -871,297 +1125,202 @@ function DateRangePickerButton(props) {
|
|
|
871
1125
|
style: props.style,
|
|
872
1126
|
defaultClassName: "solidaria-DateRangePickerButton"
|
|
873
1127
|
}, renderValues);
|
|
874
|
-
const getChildren = () =>
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
return (() => {
|
|
880
|
-
var _el$6 = getNextElement(_tmpl$4);
|
|
881
|
-
use((el) => {
|
|
1128
|
+
const getChildren = () => renderProps.renderChildren() ?? "📅";
|
|
1129
|
+
const buttonProps = createMemo(() => mergeProps$1(context.pickerAria.buttonProps, focusProps, hoverProps));
|
|
1130
|
+
var _el$7 = getNextElement(_tmpl$3);
|
|
1131
|
+
ref(() => {
|
|
1132
|
+
return (el) => {
|
|
882
1133
|
context.setTriggerRef(el);
|
|
883
1134
|
props.ref?.(el);
|
|
884
|
-
}
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
}
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
return
|
|
910
|
-
},
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
1135
|
+
};
|
|
1136
|
+
}, _el$7);
|
|
1137
|
+
spread(_el$7, [buttonProps, {
|
|
1138
|
+
get "class"() {
|
|
1139
|
+
return renderProps.class();
|
|
1140
|
+
},
|
|
1141
|
+
get style() {
|
|
1142
|
+
return renderProps.style();
|
|
1143
|
+
},
|
|
1144
|
+
get disabled() {
|
|
1145
|
+
return isDisabled();
|
|
1146
|
+
},
|
|
1147
|
+
get "data-disabled"() {
|
|
1148
|
+
return dataAttr(isDisabled());
|
|
1149
|
+
},
|
|
1150
|
+
get "data-open"() {
|
|
1151
|
+
return dataAttr(context.overlayState.isOpen);
|
|
1152
|
+
},
|
|
1153
|
+
get "data-hovered"() {
|
|
1154
|
+
return dataAttr(isHovered());
|
|
1155
|
+
},
|
|
1156
|
+
get "data-focused"() {
|
|
1157
|
+
return dataAttr(isFocused());
|
|
1158
|
+
},
|
|
1159
|
+
get "data-focus-visible"() {
|
|
1160
|
+
return dataAttr(isFocusVisible());
|
|
1161
|
+
},
|
|
1162
|
+
get "data-pressed"() {
|
|
1163
|
+
return dataAttr(context.pickerAria.isButtonPressed());
|
|
1164
|
+
}
|
|
1165
|
+
}], true);
|
|
1166
|
+
insert(_el$7, scope(() => {
|
|
1167
|
+
return getChildren();
|
|
1168
|
+
}));
|
|
1169
|
+
runHydrationEvents();
|
|
1170
|
+
return _el$7;
|
|
919
1171
|
}
|
|
920
1172
|
function DatePickerLabel(props) {
|
|
921
1173
|
const context = useDatePickerContext();
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
return
|
|
930
|
-
})
|
|
1174
|
+
var _el$8 = getNextElement(_tmpl$4);
|
|
1175
|
+
spread(_el$8, [() => {
|
|
1176
|
+
return context.pickerAria.labelProps;
|
|
1177
|
+
}, { get "class"() {
|
|
1178
|
+
return props.class;
|
|
1179
|
+
} }], true);
|
|
1180
|
+
insert(_el$8, scope(() => {
|
|
1181
|
+
return props.children;
|
|
1182
|
+
}));
|
|
1183
|
+
runHydrationEvents();
|
|
1184
|
+
return _el$8;
|
|
931
1185
|
}
|
|
932
1186
|
function DatePickerDescription(props) {
|
|
933
1187
|
const context = useDatePickerContext();
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
return
|
|
942
|
-
})
|
|
1188
|
+
var _el$9 = getNextElement(_tmpl$4);
|
|
1189
|
+
spread(_el$9, [() => {
|
|
1190
|
+
return context.pickerAria.descriptionProps;
|
|
1191
|
+
}, { get "class"() {
|
|
1192
|
+
return props.class;
|
|
1193
|
+
} }], true);
|
|
1194
|
+
insert(_el$9, scope(() => {
|
|
1195
|
+
return props.children;
|
|
1196
|
+
}));
|
|
1197
|
+
runHydrationEvents();
|
|
1198
|
+
return _el$9;
|
|
943
1199
|
}
|
|
944
1200
|
function DatePickerErrorMessage(props) {
|
|
945
1201
|
const context = useDatePickerContext();
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
return
|
|
954
|
-
})
|
|
1202
|
+
var _el$10 = getNextElement(_tmpl$4);
|
|
1203
|
+
spread(_el$10, [() => {
|
|
1204
|
+
return context.pickerAria.errorMessageProps;
|
|
1205
|
+
}, { get "class"() {
|
|
1206
|
+
return props.class;
|
|
1207
|
+
} }], true);
|
|
1208
|
+
insert(_el$10, scope(() => {
|
|
1209
|
+
return props.children;
|
|
1210
|
+
}));
|
|
1211
|
+
runHydrationEvents();
|
|
1212
|
+
return _el$10;
|
|
955
1213
|
}
|
|
956
1214
|
function DateRangePickerLabel(props) {
|
|
957
1215
|
const context = useDateRangePickerContext();
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
return
|
|
966
|
-
})
|
|
1216
|
+
var _el$11 = getNextElement(_tmpl$4);
|
|
1217
|
+
spread(_el$11, [() => {
|
|
1218
|
+
return context.pickerAria.labelProps;
|
|
1219
|
+
}, { get "class"() {
|
|
1220
|
+
return props.class;
|
|
1221
|
+
} }], true);
|
|
1222
|
+
insert(_el$11, scope(() => {
|
|
1223
|
+
return props.children;
|
|
1224
|
+
}));
|
|
1225
|
+
runHydrationEvents();
|
|
1226
|
+
return _el$11;
|
|
967
1227
|
}
|
|
968
1228
|
function DateRangePickerDescription(props) {
|
|
969
1229
|
const context = useDateRangePickerContext();
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
return
|
|
978
|
-
})
|
|
1230
|
+
var _el$12 = getNextElement(_tmpl$4);
|
|
1231
|
+
spread(_el$12, [() => {
|
|
1232
|
+
return context.pickerAria.descriptionProps;
|
|
1233
|
+
}, { get "class"() {
|
|
1234
|
+
return props.class;
|
|
1235
|
+
} }], true);
|
|
1236
|
+
insert(_el$12, scope(() => {
|
|
1237
|
+
return props.children;
|
|
1238
|
+
}));
|
|
1239
|
+
runHydrationEvents();
|
|
1240
|
+
return _el$12;
|
|
979
1241
|
}
|
|
980
1242
|
function DateRangePickerErrorMessage(props) {
|
|
981
1243
|
const context = useDateRangePickerContext();
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
return
|
|
990
|
-
})
|
|
1244
|
+
var _el$13 = getNextElement(_tmpl$4);
|
|
1245
|
+
spread(_el$13, [() => {
|
|
1246
|
+
return context.pickerAria.errorMessageProps;
|
|
1247
|
+
}, { get "class"() {
|
|
1248
|
+
return props.class;
|
|
1249
|
+
} }], true);
|
|
1250
|
+
insert(_el$13, scope(() => {
|
|
1251
|
+
return props.children;
|
|
1252
|
+
}));
|
|
1253
|
+
runHydrationEvents();
|
|
1254
|
+
return _el$13;
|
|
991
1255
|
}
|
|
992
|
-
function
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
close();
|
|
998
|
-
};
|
|
999
|
-
document.addEventListener("keydown", onKeyDown);
|
|
1000
|
-
onCleanup(() => document.removeEventListener("keydown", onKeyDown));
|
|
1256
|
+
function datePickerContentClass(className, defaultClassName) {
|
|
1257
|
+
if (typeof className === "function") return (renderProps) => className({
|
|
1258
|
+
isEntering: renderProps.isEntering,
|
|
1259
|
+
isExiting: renderProps.isExiting,
|
|
1260
|
+
placement: renderProps.placement
|
|
1001
1261
|
});
|
|
1262
|
+
return className ?? defaultClassName;
|
|
1002
1263
|
}
|
|
1003
1264
|
/**
|
|
1004
1265
|
* The content area of the date picker (typically contains a Calendar).
|
|
1266
|
+
* Overlay enter/exit is owned by Popover, matching RAC DatePicker which renders
|
|
1267
|
+
* a Popover + Dialog and has no private animation machine.
|
|
1005
1268
|
*/
|
|
1006
1269
|
function DatePickerContent(props) {
|
|
1007
1270
|
const context = useDatePickerContext();
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
const popoverAria = createPopover({
|
|
1012
|
-
triggerRef: () => context.triggerRef()?.parentElement ?? context.triggerRef(),
|
|
1013
|
-
popoverRef: () => contentRef() ?? null,
|
|
1271
|
+
return createComponent(Popover, {
|
|
1272
|
+
trigger: "DatePicker",
|
|
1273
|
+
triggerRef: () => context.groupRef() ?? context.triggerRef(),
|
|
1014
1274
|
placement: "bottom start",
|
|
1015
1275
|
offset: 8,
|
|
1016
|
-
|
|
1017
|
-
isKeyboardDismissDisabled: false
|
|
1018
|
-
}, {
|
|
1019
|
-
isOpen: () => context.overlayState.isOpen,
|
|
1020
|
-
open: context.overlayState.open,
|
|
1021
|
-
close: context.overlayState.close,
|
|
1022
|
-
toggle: context.overlayState.toggle
|
|
1023
|
-
});
|
|
1024
|
-
createEscapeDismissFallback(() => context.overlayState.isOpen, context.overlayState.close);
|
|
1025
|
-
const isEntering = createEnterAnimation(contentRef, () => context.overlayState.isOpen);
|
|
1026
|
-
const renderProps = () => ({
|
|
1027
|
-
isEntering: isEntering(),
|
|
1028
|
-
isExiting: false,
|
|
1029
|
-
placement: popoverAria.placement() ?? "bottom"
|
|
1030
|
-
});
|
|
1031
|
-
const resolvedClass = () => {
|
|
1032
|
-
const c = props.class;
|
|
1033
|
-
if (typeof c === "function") return c(renderProps());
|
|
1034
|
-
return c ?? "solidaria-DatePickerContent";
|
|
1035
|
-
};
|
|
1036
|
-
const cleanPopoverProps = () => {
|
|
1037
|
-
const { style: _style, ref: _ref, ...rest } = popoverAria.popoverProps;
|
|
1038
|
-
return rest;
|
|
1039
|
-
};
|
|
1040
|
-
const mergedStyle = () => {
|
|
1041
|
-
return {
|
|
1042
|
-
...popoverAria.popoverProps.style,
|
|
1043
|
-
...props.style
|
|
1044
|
-
};
|
|
1045
|
-
};
|
|
1046
|
-
return createComponent(Show, {
|
|
1047
|
-
get when() {
|
|
1276
|
+
get isOpen() {
|
|
1048
1277
|
return context.overlayState.isOpen;
|
|
1049
1278
|
},
|
|
1279
|
+
onOpenChange: (open) => {
|
|
1280
|
+
if (open) context.overlayState.open();
|
|
1281
|
+
else context.overlayState.close();
|
|
1282
|
+
},
|
|
1283
|
+
get "class"() {
|
|
1284
|
+
return datePickerContentClass(props.class, "solidaria-DatePickerContent");
|
|
1285
|
+
},
|
|
1286
|
+
get style() {
|
|
1287
|
+
return props.style;
|
|
1288
|
+
},
|
|
1050
1289
|
get children() {
|
|
1051
|
-
return createComponent(
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
return createComponent(FocusScope, {
|
|
1057
|
-
contain: true,
|
|
1058
|
-
restoreFocus: true,
|
|
1059
|
-
get children() {
|
|
1060
|
-
var _el$11 = getNextElement(_tmpl$6), _el$12 = _el$11.firstChild;
|
|
1061
|
-
use(setContentRef, _el$11);
|
|
1062
|
-
spread(_el$11, mergeProps(cleanPopoverProps, {
|
|
1063
|
-
get ["class"]() {
|
|
1064
|
-
return resolvedClass();
|
|
1065
|
-
},
|
|
1066
|
-
get style() {
|
|
1067
|
-
return mergedStyle();
|
|
1068
|
-
},
|
|
1069
|
-
get ["data-placement"]() {
|
|
1070
|
-
return popoverAria.placement() ?? "bottom";
|
|
1071
|
-
},
|
|
1072
|
-
get ["data-entering"]() {
|
|
1073
|
-
return dataAttr(isEntering());
|
|
1074
|
-
}
|
|
1075
|
-
}), false, true);
|
|
1076
|
-
spread(_el$12, mergeProps(() => context.pickerAria.dialogProps, { "tabIndex": -1 }), false, true);
|
|
1077
|
-
insert(_el$12, () => props.children);
|
|
1078
|
-
runHydrationEvents();
|
|
1079
|
-
return _el$11;
|
|
1080
|
-
}
|
|
1081
|
-
});
|
|
1082
|
-
}
|
|
1083
|
-
});
|
|
1290
|
+
return createComponent(Dialog, mergeProps(() => {
|
|
1291
|
+
return context.pickerAria.dialogProps;
|
|
1292
|
+
}, { get children() {
|
|
1293
|
+
return props.children;
|
|
1294
|
+
} }));
|
|
1084
1295
|
}
|
|
1085
1296
|
});
|
|
1086
1297
|
}
|
|
1087
1298
|
function DateRangePickerContent(props) {
|
|
1088
1299
|
const context = useDateRangePickerContext();
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
const popoverAria = createPopover({
|
|
1093
|
-
triggerRef: () => context.triggerRef()?.parentElement ?? context.triggerRef(),
|
|
1094
|
-
popoverRef: () => contentRef() ?? null,
|
|
1300
|
+
return createComponent(Popover, {
|
|
1301
|
+
trigger: "DateRangePicker",
|
|
1302
|
+
triggerRef: () => context.groupRef() ?? context.triggerRef(),
|
|
1095
1303
|
placement: "bottom start",
|
|
1096
1304
|
offset: 8,
|
|
1097
|
-
|
|
1098
|
-
isKeyboardDismissDisabled: false
|
|
1099
|
-
}, {
|
|
1100
|
-
isOpen: () => context.overlayState.isOpen,
|
|
1101
|
-
open: context.overlayState.open,
|
|
1102
|
-
close: context.overlayState.close,
|
|
1103
|
-
toggle: context.overlayState.toggle
|
|
1104
|
-
});
|
|
1105
|
-
createEscapeDismissFallback(() => context.overlayState.isOpen, context.overlayState.close);
|
|
1106
|
-
const isEntering = createEnterAnimation(contentRef, () => context.overlayState.isOpen);
|
|
1107
|
-
const renderProps = () => ({
|
|
1108
|
-
isEntering: isEntering(),
|
|
1109
|
-
isExiting: false,
|
|
1110
|
-
placement: popoverAria.placement() ?? "bottom"
|
|
1111
|
-
});
|
|
1112
|
-
const resolvedClass = () => {
|
|
1113
|
-
const c = props.class;
|
|
1114
|
-
if (typeof c === "function") return c(renderProps());
|
|
1115
|
-
return c ?? "solidaria-DateRangePickerContent";
|
|
1116
|
-
};
|
|
1117
|
-
const cleanPopoverProps = () => {
|
|
1118
|
-
const { style: _style, ref: _ref, ...rest } = popoverAria.popoverProps;
|
|
1119
|
-
return rest;
|
|
1120
|
-
};
|
|
1121
|
-
const mergedStyle = () => {
|
|
1122
|
-
return {
|
|
1123
|
-
...popoverAria.popoverProps.style,
|
|
1124
|
-
...props.style
|
|
1125
|
-
};
|
|
1126
|
-
};
|
|
1127
|
-
return createComponent(Show, {
|
|
1128
|
-
get when() {
|
|
1305
|
+
get isOpen() {
|
|
1129
1306
|
return context.overlayState.isOpen;
|
|
1130
1307
|
},
|
|
1308
|
+
onOpenChange: (open) => {
|
|
1309
|
+
if (open) context.overlayState.open();
|
|
1310
|
+
else context.overlayState.close();
|
|
1311
|
+
},
|
|
1312
|
+
get "class"() {
|
|
1313
|
+
return datePickerContentClass(props.class, "solidaria-DateRangePickerContent");
|
|
1314
|
+
},
|
|
1315
|
+
get style() {
|
|
1316
|
+
return props.style;
|
|
1317
|
+
},
|
|
1131
1318
|
get children() {
|
|
1132
|
-
return createComponent(
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
return createComponent(FocusScope, {
|
|
1138
|
-
contain: true,
|
|
1139
|
-
restoreFocus: true,
|
|
1140
|
-
get children() {
|
|
1141
|
-
var _el$13 = getNextElement(_tmpl$6), _el$14 = _el$13.firstChild;
|
|
1142
|
-
use(setContentRef, _el$13);
|
|
1143
|
-
spread(_el$13, mergeProps(cleanPopoverProps, {
|
|
1144
|
-
get ["class"]() {
|
|
1145
|
-
return resolvedClass();
|
|
1146
|
-
},
|
|
1147
|
-
get style() {
|
|
1148
|
-
return mergedStyle();
|
|
1149
|
-
},
|
|
1150
|
-
get ["data-placement"]() {
|
|
1151
|
-
return popoverAria.placement() ?? "bottom";
|
|
1152
|
-
},
|
|
1153
|
-
get ["data-entering"]() {
|
|
1154
|
-
return dataAttr(isEntering());
|
|
1155
|
-
}
|
|
1156
|
-
}), false, true);
|
|
1157
|
-
spread(_el$14, mergeProps(() => context.pickerAria.dialogProps, { "tabIndex": -1 }), false, true);
|
|
1158
|
-
insert(_el$14, () => props.children);
|
|
1159
|
-
runHydrationEvents();
|
|
1160
|
-
return _el$13;
|
|
1161
|
-
}
|
|
1162
|
-
});
|
|
1163
|
-
}
|
|
1164
|
-
});
|
|
1319
|
+
return createComponent(Dialog, mergeProps(() => {
|
|
1320
|
+
return context.pickerAria.dialogProps;
|
|
1321
|
+
}, { get children() {
|
|
1322
|
+
return props.children;
|
|
1323
|
+
} }));
|
|
1165
1324
|
}
|
|
1166
1325
|
});
|
|
1167
1326
|
}
|