@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/src/DateField.tsx
CHANGED
|
@@ -1,3 +1,30 @@
|
|
|
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
|
+
|
|
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
|
+
|
|
25
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/DateField.tsx
|
|
26
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/HiddenDateInput.tsx
|
|
27
|
+
|
|
1
28
|
/**
|
|
2
29
|
* DateField component for solidaria-components
|
|
3
30
|
*
|
|
@@ -6,18 +33,16 @@
|
|
|
6
33
|
*/
|
|
7
34
|
|
|
8
35
|
import {
|
|
9
|
-
type JSX,
|
|
10
|
-
type Context,
|
|
11
36
|
createContext,
|
|
12
|
-
createEffect,
|
|
13
37
|
createMemo,
|
|
14
38
|
createSignal,
|
|
15
|
-
onCleanup,
|
|
16
|
-
splitProps,
|
|
17
39
|
useContext,
|
|
18
|
-
|
|
40
|
+
For,
|
|
19
41
|
Show,
|
|
42
|
+
createTrackedEffect,
|
|
20
43
|
} from "solid-js";
|
|
44
|
+
import type { Context } from "solid-js";
|
|
45
|
+
import type { JSX } from "@solidjs/web";
|
|
21
46
|
import {
|
|
22
47
|
createDateField,
|
|
23
48
|
createDateSegment,
|
|
@@ -50,11 +75,15 @@ import {
|
|
|
50
75
|
type SlotProps,
|
|
51
76
|
useRenderProps,
|
|
52
77
|
dataAttr,
|
|
53
|
-
useIsHydrated,
|
|
54
78
|
Provider,
|
|
79
|
+
callEventHandler,
|
|
80
|
+
useSlot,
|
|
55
81
|
} from "./utils";
|
|
82
|
+
import { LabelContext, type LabelProps } from "./Label";
|
|
56
83
|
import { TextContext } from "./Text";
|
|
57
|
-
import {
|
|
84
|
+
import { FieldErrorContext, type FieldErrorContextValue } from "./FieldError";
|
|
85
|
+
import { FormContext, resolveValidationBehavior, type FormProps } from "./Form";
|
|
86
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
58
87
|
import {
|
|
59
88
|
DateRangePickerContext,
|
|
60
89
|
type DateRangePickerFieldContextValue,
|
|
@@ -73,8 +102,11 @@ export interface DateFieldRenderProps {
|
|
|
73
102
|
|
|
74
103
|
export interface DateFieldProps<T extends DateValue = DateValue>
|
|
75
104
|
extends
|
|
76
|
-
Omit<
|
|
77
|
-
|
|
105
|
+
Omit<
|
|
106
|
+
AriaDateFieldProps,
|
|
107
|
+
"id" | "isDisabled" | "isReadOnly" | "isRequired" | "description" | "errorMessage"
|
|
108
|
+
>,
|
|
109
|
+
Omit<DateFieldStateProps<T>, "locale" | "description" | "errorMessage">,
|
|
78
110
|
SlotProps {
|
|
79
111
|
/** The children of the component. */
|
|
80
112
|
children?: JSX.Element | ((segment: DateSegmentType) => JSX.Element);
|
|
@@ -87,9 +119,20 @@ export interface DateFieldProps<T extends DateValue = DateValue>
|
|
|
87
119
|
}
|
|
88
120
|
|
|
89
121
|
export interface DateInputRenderProps {
|
|
122
|
+
/** Whether the input is hovered with a pointer. */
|
|
123
|
+
isHovered: boolean;
|
|
124
|
+
/** Whether an element within the input is focused. */
|
|
125
|
+
isFocusWithin: boolean;
|
|
126
|
+
/** Whether an element within the input is keyboard focused. */
|
|
127
|
+
isFocusVisible: boolean;
|
|
90
128
|
/** Whether the input is disabled. */
|
|
91
129
|
isDisabled: boolean;
|
|
92
|
-
/** Whether the input is
|
|
130
|
+
/** Whether the input is invalid. */
|
|
131
|
+
isInvalid: boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Whether an element within the input is focused.
|
|
134
|
+
* Same signal as `isFocusWithin`. The group stamps `data-focus-within`.
|
|
135
|
+
*/
|
|
93
136
|
isFocused: boolean;
|
|
94
137
|
}
|
|
95
138
|
|
|
@@ -153,53 +196,6 @@ export interface DateFieldContextValue {
|
|
|
153
196
|
export const DateFieldContext = createContext<DateFieldContextValue | null>(null);
|
|
154
197
|
export const DateFieldStateContext = createContext<DateFieldState<DateValue> | null>(null);
|
|
155
198
|
|
|
156
|
-
function withFormValidationBehavior<P extends object>(props: P, formContext: FormProps | null): P {
|
|
157
|
-
if (!formContext?.validationBehavior) {
|
|
158
|
-
return props;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
return new Proxy(props, {
|
|
162
|
-
get(target, property, receiver) {
|
|
163
|
-
const localValue = Reflect.get(target, property, receiver);
|
|
164
|
-
if (property === "validationBehavior" && localValue === undefined) {
|
|
165
|
-
return formContext.validationBehavior;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
return localValue;
|
|
169
|
-
},
|
|
170
|
-
has(target, property) {
|
|
171
|
-
return (
|
|
172
|
-
Reflect.has(target, property) ||
|
|
173
|
-
(property === "validationBehavior" && formContext.validationBehavior !== undefined)
|
|
174
|
-
);
|
|
175
|
-
},
|
|
176
|
-
ownKeys(target) {
|
|
177
|
-
const keys = new Set(Reflect.ownKeys(target));
|
|
178
|
-
if (formContext.validationBehavior !== undefined) {
|
|
179
|
-
keys.add("validationBehavior");
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
return Array.from(keys);
|
|
183
|
-
},
|
|
184
|
-
getOwnPropertyDescriptor(target, property) {
|
|
185
|
-
const descriptor = Reflect.getOwnPropertyDescriptor(target, property);
|
|
186
|
-
if (descriptor) {
|
|
187
|
-
return descriptor;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
if (property === "validationBehavior" && formContext.validationBehavior !== undefined) {
|
|
191
|
-
return {
|
|
192
|
-
enumerable: true,
|
|
193
|
-
configurable: true,
|
|
194
|
-
get: () => formContext.validationBehavior,
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
return undefined;
|
|
199
|
-
},
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
|
|
203
199
|
export function useDateFieldContext(): DateFieldContextValue {
|
|
204
200
|
const context = useContext(DateFieldContext);
|
|
205
201
|
if (!context) {
|
|
@@ -209,7 +205,7 @@ export function useDateFieldContext(): DateFieldContextValue {
|
|
|
209
205
|
}
|
|
210
206
|
|
|
211
207
|
function useDateInputContext(
|
|
212
|
-
slot?: string,
|
|
208
|
+
slot?: string | JSX.RemoveAttribute,
|
|
213
209
|
): DateFieldContextValue | DateRangePickerFieldContextValue {
|
|
214
210
|
const dateFieldContext = useContext(DateFieldContext);
|
|
215
211
|
if (dateFieldContext) {
|
|
@@ -243,20 +239,7 @@ function useDateInputContext(
|
|
|
243
239
|
export function DateField<T extends DateValue = CalendarDate>(
|
|
244
240
|
props: DateFieldProps<T>,
|
|
245
241
|
): JSX.Element {
|
|
246
|
-
|
|
247
|
-
const isHydrated = useIsHydrated();
|
|
248
|
-
const formContext = useContext(FormContext);
|
|
249
|
-
|
|
250
|
-
return (
|
|
251
|
-
<Show
|
|
252
|
-
when={isHydrated()}
|
|
253
|
-
fallback={
|
|
254
|
-
<div class="solidaria-DateField solidaria-DateField--placeholder" aria-hidden="true" />
|
|
255
|
-
}
|
|
256
|
-
>
|
|
257
|
-
<DateFieldInner {...props} __formContext={formContext} />
|
|
258
|
-
</Show>
|
|
259
|
-
);
|
|
242
|
+
return <DateFieldInner {...props} />;
|
|
260
243
|
}
|
|
261
244
|
|
|
262
245
|
type DateFieldInnerProps<T extends DateValue = DateValue> = DateFieldProps<T> & {
|
|
@@ -270,9 +253,8 @@ function DateFieldInner<T extends DateValue = CalendarDate>(
|
|
|
270
253
|
props: DateFieldInnerProps<T>,
|
|
271
254
|
): JSX.Element {
|
|
272
255
|
const formContext = props.__formContext ?? useContext(FormContext);
|
|
273
|
-
const mergedProps = withFormValidationBehavior(props, formContext);
|
|
274
256
|
const [local, stateProps, rest] = splitProps(
|
|
275
|
-
|
|
257
|
+
props,
|
|
276
258
|
["children", "class", "style", "slot", "__formContext"],
|
|
277
259
|
[
|
|
278
260
|
"value",
|
|
@@ -293,8 +275,6 @@ function DateFieldInner<T extends DateValue = CalendarDate>(
|
|
|
293
275
|
"validationState",
|
|
294
276
|
"validationBehavior",
|
|
295
277
|
"validate",
|
|
296
|
-
"description",
|
|
297
|
-
"errorMessage",
|
|
298
278
|
"isDateUnavailable",
|
|
299
279
|
],
|
|
300
280
|
);
|
|
@@ -309,9 +289,25 @@ function DateFieldInner<T extends DateValue = CalendarDate>(
|
|
|
309
289
|
|
|
310
290
|
const state = createDateFieldState(stateProps);
|
|
311
291
|
|
|
292
|
+
const hasExplicitName = () =>
|
|
293
|
+
Boolean(
|
|
294
|
+
(rest as Record<string, unknown>)["aria-label"] ||
|
|
295
|
+
(rest as Record<string, unknown>)["aria-labelledby"],
|
|
296
|
+
);
|
|
297
|
+
const stringLabel = (): string | undefined => {
|
|
298
|
+
const label = (rest as Record<string, unknown>).label;
|
|
299
|
+
return typeof label === "string" && label !== "" ? label : undefined;
|
|
300
|
+
};
|
|
301
|
+
// A string label names the field through DateFieldLabel. Slot detection
|
|
302
|
+
// starts only when that string and an explicit aria name are both absent.
|
|
303
|
+
const [labelRef, hasLabel] = useSlot(!hasExplicitName() && stringLabel() === undefined);
|
|
304
|
+
|
|
312
305
|
const fieldAria = createDateField(
|
|
313
306
|
() => ({
|
|
314
307
|
...(rest as Record<string, unknown>),
|
|
308
|
+
// Keep a string label for DateFieldLabel. An explicit aria name wins over
|
|
309
|
+
// a child Label. Otherwise the slot flag tells createLabel a label exists.
|
|
310
|
+
label: stringLabel() ?? (hasExplicitName() ? undefined : hasLabel()),
|
|
315
311
|
// RAC threads the same props into both useDateFieldState and useDateField;
|
|
316
312
|
// these live in `stateProps` here, so forward them so the field hook can
|
|
317
313
|
// build aria-disabled and the native validation <input> (type/required).
|
|
@@ -320,12 +316,8 @@ function DateFieldInner<T extends DateValue = CalendarDate>(
|
|
|
320
316
|
isReadOnly: access(stateProps.isReadOnly),
|
|
321
317
|
isRequired: access(stateProps.isRequired),
|
|
322
318
|
// Mirror RAC DateField: validationBehavior ?? formValidationBehavior ??
|
|
323
|
-
// 'native'.
|
|
324
|
-
|
|
325
|
-
// default that flips the hidden input to type="text".
|
|
326
|
-
validationBehavior: stateProps.validationBehavior ?? "native",
|
|
327
|
-
description: stateProps.description,
|
|
328
|
-
errorMessage: stateProps.errorMessage,
|
|
319
|
+
// 'native'.
|
|
320
|
+
validationBehavior: resolveValidationBehavior(stateProps.validationBehavior, formContext),
|
|
329
321
|
// Form-reset + native constraint validation are wired onto this input by
|
|
330
322
|
// createDateField (see its createFormReset/createFormValidation calls),
|
|
331
323
|
// exactly as RAC's useDateField wires them onto props.inputRef.
|
|
@@ -362,9 +354,34 @@ function DateFieldInner<T extends DateValue = CalendarDate>(
|
|
|
362
354
|
},
|
|
363
355
|
};
|
|
364
356
|
|
|
357
|
+
const fieldValidation = createMemo(() => ({
|
|
358
|
+
isInvalid: fieldAria.isInvalid,
|
|
359
|
+
validationErrors: fieldAria.validationErrors,
|
|
360
|
+
validationDetails: fieldAria.validationDetails,
|
|
361
|
+
}));
|
|
362
|
+
const fieldErrorContext: FieldErrorContextValue = {
|
|
363
|
+
get validation() {
|
|
364
|
+
return fieldValidation();
|
|
365
|
+
},
|
|
366
|
+
get errorMessageProps() {
|
|
367
|
+
return fieldAria.errorMessageProps;
|
|
368
|
+
},
|
|
369
|
+
};
|
|
370
|
+
|
|
371
|
+
const labelContextValue: LabelProps = {
|
|
372
|
+
get id() {
|
|
373
|
+
if (hasExplicitName() || stringLabel() !== undefined || !hasLabel()) {
|
|
374
|
+
return undefined;
|
|
375
|
+
}
|
|
376
|
+
return fieldAria.labelProps.id as string | undefined;
|
|
377
|
+
},
|
|
378
|
+
ref: labelRef,
|
|
379
|
+
elementType: "span",
|
|
380
|
+
};
|
|
381
|
+
|
|
365
382
|
return (
|
|
366
|
-
<DateFieldStateContext
|
|
367
|
-
<DateFieldContext
|
|
383
|
+
<DateFieldStateContext value={state as unknown as DateFieldState<DateValue>}>
|
|
384
|
+
<DateFieldContext
|
|
368
385
|
value={{
|
|
369
386
|
state: state as unknown as DateFieldState<DateValue>,
|
|
370
387
|
// Read through getters so consumers see the LIVE memo values, not a
|
|
@@ -409,14 +426,22 @@ function DateFieldInner<T extends DateValue = CalendarDate>(
|
|
|
409
426
|
data-required={dataAttr(state.isRequired())}
|
|
410
427
|
data-invalid={dataAttr(state.isInvalid())}
|
|
411
428
|
>
|
|
412
|
-
<Provider
|
|
429
|
+
<Provider
|
|
430
|
+
values={
|
|
431
|
+
[
|
|
432
|
+
[TextContext, textSlots],
|
|
433
|
+
[FieldErrorContext, fieldErrorContext],
|
|
434
|
+
[LabelContext, labelContextValue],
|
|
435
|
+
] as Array<[Context<unknown>, unknown]>
|
|
436
|
+
}
|
|
437
|
+
>
|
|
413
438
|
{local.children as JSX.Element}
|
|
414
439
|
</Provider>
|
|
415
440
|
</div>
|
|
416
441
|
{/*
|
|
417
442
|
RAC renders <HiddenDateInput> UNCONDITIONALLY at the DateField root
|
|
418
443
|
(react-aria-components DateField.mjs). It is NOT a validation input — it
|
|
419
|
-
is a clipped, aria-hidden,
|
|
444
|
+
is a clipped, aria-hidden, tabindex={-1} native date input that mirrors
|
|
420
445
|
the value for browser autofill. Its `form=""` detaches it from form
|
|
421
446
|
submission (the DateInput's <Input> above is what submits), so it never
|
|
422
447
|
double-counts in FormData. It renders regardless of `name` — hence no
|
|
@@ -429,8 +454,8 @@ function DateFieldInner<T extends DateValue = CalendarDate>(
|
|
|
429
454
|
isDisabled={state.isDisabled()}
|
|
430
455
|
state={state as unknown as DateFieldState<DateValue>}
|
|
431
456
|
/>
|
|
432
|
-
</DateFieldContext
|
|
433
|
-
</DateFieldStateContext
|
|
457
|
+
</DateFieldContext>
|
|
458
|
+
</DateFieldStateContext>
|
|
434
459
|
);
|
|
435
460
|
}
|
|
436
461
|
|
|
@@ -447,12 +472,14 @@ interface RootHiddenDateInputProps {
|
|
|
447
472
|
|
|
448
473
|
/**
|
|
449
474
|
* The always-rendered hidden date input at the DateField root — a faithful port
|
|
450
|
-
* of react-aria-components
|
|
451
|
-
*
|
|
475
|
+
* of react-aria-components/src/HiddenDateInput.tsx. It is NOT a validation
|
|
476
|
+
* input: it is a clipped, aria-hidden, tabindex={-1} native
|
|
452
477
|
* date input that mirrors the current value for browser autofill. `form=""`
|
|
453
478
|
* detaches it from form submission (the DateInput's <Input> submits), so it
|
|
454
479
|
* never double-counts in FormData. RAC renders it unconditionally, which is why
|
|
455
480
|
* it appears as the trailing tabindex="-1" element in the focus trail.
|
|
481
|
+
* `data-react-aria-prevent-focus` keeps FocusScope off the wrapper, and
|
|
482
|
+
* `data-a11y-ignore="aria-hidden-focus"` skips the aria-hidden focusable warning.
|
|
456
483
|
*/
|
|
457
484
|
function RootHiddenDateInput(props: RootHiddenDateInputProps): JSX.Element {
|
|
458
485
|
// RAC uses useVisuallyHidden with position:fixed/top:0/left:0 to keep the
|
|
@@ -510,10 +537,12 @@ function RootHiddenDateInput(props: RootHiddenDateInputProps): JSX.Element {
|
|
|
510
537
|
<div
|
|
511
538
|
{...(visuallyHiddenProps() as unknown as Record<string, unknown>)}
|
|
512
539
|
aria-hidden="true"
|
|
540
|
+
data-a11y-ignore="aria-hidden-focus"
|
|
541
|
+
data-react-aria-prevent-focus="true"
|
|
513
542
|
data-testid="hidden-dateinput-container"
|
|
514
543
|
>
|
|
515
544
|
<input
|
|
516
|
-
|
|
545
|
+
tabindex={-1}
|
|
517
546
|
autocomplete={props.autoComplete}
|
|
518
547
|
disabled={props.isDisabled}
|
|
519
548
|
type={inputType()}
|
|
@@ -533,11 +562,23 @@ function RootHiddenDateInput(props: RootHiddenDateInputProps): JSX.Element {
|
|
|
533
562
|
export function DateInput(props: DateInputProps): JSX.Element {
|
|
534
563
|
const context = useDateInputContext(props.slot);
|
|
535
564
|
const { state, aria } = context;
|
|
536
|
-
const [isFocused, setIsFocused] = createSignal(false);
|
|
537
565
|
const [inputRef, setInputRef] = createSignal<HTMLDivElement | null>(null);
|
|
566
|
+
// Pin DateInput renders Group, which tracks hover and focus within.
|
|
567
|
+
// createFocusRing already exposes the within handlers as onFocusIn/onFocusOut.
|
|
568
|
+
// Read them as plain functions so mergeProps chains them onto the field's
|
|
569
|
+
// own focus-within (value snapshot and validation commit). A later getter
|
|
570
|
+
// would replace that handler.
|
|
571
|
+
const { isFocused, isFocusVisible, focusProps } = createFocusRing({ within: true });
|
|
572
|
+
const { isHovered, hoverProps } = createHover(() => ({
|
|
573
|
+
isDisabled: state.isDisabled(),
|
|
574
|
+
}));
|
|
538
575
|
|
|
539
576
|
const renderValues = createMemo<DateInputRenderProps>(() => ({
|
|
577
|
+
isHovered: isHovered(),
|
|
578
|
+
isFocusWithin: isFocused(),
|
|
579
|
+
isFocusVisible: isFocusVisible(),
|
|
540
580
|
isDisabled: state.isDisabled(),
|
|
581
|
+
isInvalid: state.isInvalid(),
|
|
541
582
|
isFocused: isFocused(),
|
|
542
583
|
}));
|
|
543
584
|
|
|
@@ -550,47 +591,54 @@ export function DateInput(props: DateInputProps): JSX.Element {
|
|
|
550
591
|
renderValues,
|
|
551
592
|
);
|
|
552
593
|
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
onFocusIn: () => setIsFocused(true),
|
|
562
|
-
onFocusOut: () => setIsFocused(false),
|
|
594
|
+
const inputDivProps = createMemo(() => {
|
|
595
|
+
const ring = focusProps as {
|
|
596
|
+
onFocusIn?: (event: FocusEvent) => void;
|
|
597
|
+
onFocusOut?: (event: FocusEvent) => void;
|
|
598
|
+
};
|
|
599
|
+
return mergeProps(aria.inputProps, hoverProps, {
|
|
600
|
+
onFocusIn: ring.onFocusIn,
|
|
601
|
+
onFocusOut: ring.onFocusOut,
|
|
563
602
|
style: renderProps.style(),
|
|
564
|
-
})
|
|
565
|
-
);
|
|
603
|
+
});
|
|
604
|
+
});
|
|
605
|
+
|
|
606
|
+
createTrackedEffect(() => {
|
|
607
|
+
const _s2Cleanups: Array<() => void> = [];
|
|
566
608
|
|
|
567
|
-
createEffect(() => {
|
|
568
609
|
const element = inputRef();
|
|
569
610
|
const handler = props.onPointerDownCapture;
|
|
570
611
|
if (!element || !handler) return;
|
|
571
612
|
|
|
572
|
-
const listener = (event: PointerEvent) =>
|
|
573
|
-
(handler as unknown as (event: PointerEvent) => void)(event);
|
|
613
|
+
const listener = (event: PointerEvent) => callEventHandler(handler, event);
|
|
574
614
|
element.addEventListener("pointerdown", listener, { capture: true });
|
|
575
|
-
|
|
615
|
+
_s2Cleanups.push(() => element.removeEventListener("pointerdown", listener, { capture: true }));
|
|
616
|
+
|
|
617
|
+
return () => {
|
|
618
|
+
for (const c of _s2Cleanups) c();
|
|
619
|
+
};
|
|
576
620
|
});
|
|
577
621
|
|
|
578
622
|
return (
|
|
579
|
-
<DateFieldContext
|
|
623
|
+
<DateFieldContext value={context as DateFieldContextValue}>
|
|
580
624
|
<div
|
|
581
625
|
ref={setInputRef}
|
|
582
626
|
{...inputDivProps()}
|
|
583
627
|
class={renderProps.class()}
|
|
584
628
|
data-disabled={dataAttr(state.isDisabled())}
|
|
585
|
-
data-
|
|
629
|
+
data-invalid={dataAttr(state.isInvalid())}
|
|
630
|
+
data-readonly={dataAttr(state.isReadOnly())}
|
|
631
|
+
data-hovered={dataAttr(isHovered())}
|
|
632
|
+
data-focus-within={dataAttr(isFocused())}
|
|
633
|
+
data-focus-visible={dataAttr(isFocusVisible())}
|
|
586
634
|
>
|
|
587
635
|
{/*
|
|
588
|
-
<
|
|
589
|
-
stays alive across keystrokes (state.segments() re-mints
|
|
590
|
-
objects every edit). A stable Proxy forwards property reads to
|
|
591
|
-
live per-index accessor so the child stays reactive.
|
|
636
|
+
<For keyed={false}> keys by position, not identity, so each DateSegment
|
|
637
|
+
instance stays alive across keystrokes (state.segments() re-mints
|
|
638
|
+
segment objects every edit). A stable Proxy forwards property reads to
|
|
639
|
+
the live per-index accessor so the child stays reactive.
|
|
592
640
|
*/}
|
|
593
|
-
<
|
|
641
|
+
<For each={state.segments()} keyed={false}>
|
|
594
642
|
{(segment) => {
|
|
595
643
|
const liveSegment = new Proxy({} as DateSegmentType, {
|
|
596
644
|
get: (_t, key) => (segment() as unknown as Record<PropertyKey, unknown>)[key],
|
|
@@ -598,7 +646,7 @@ export function DateInput(props: DateInputProps): JSX.Element {
|
|
|
598
646
|
});
|
|
599
647
|
return props.children?.(liveSegment);
|
|
600
648
|
}}
|
|
601
|
-
</
|
|
649
|
+
</For>
|
|
602
650
|
</div>
|
|
603
651
|
{/*
|
|
604
652
|
The hidden validation input, sibling of the group — mirrors RAC's
|
|
@@ -614,7 +662,7 @@ export function DateInput(props: DateInputProps): JSX.Element {
|
|
|
614
662
|
<input {...(hiddenInputProps() as JSX.InputHTMLAttributes<HTMLInputElement>)} />
|
|
615
663
|
)}
|
|
616
664
|
</Show>
|
|
617
|
-
</DateFieldContext
|
|
665
|
+
</DateFieldContext>
|
|
618
666
|
);
|
|
619
667
|
}
|
|
620
668
|
|
|
@@ -668,12 +716,7 @@ export function DateSegment(props: DateSegmentProps): JSX.Element {
|
|
|
668
716
|
);
|
|
669
717
|
|
|
670
718
|
// Determine children content - avoid Show for SSR hydration compatibility
|
|
671
|
-
const getChildren = () =>
|
|
672
|
-
if (typeof props.children === "function") {
|
|
673
|
-
return renderProps.renderChildren();
|
|
674
|
-
}
|
|
675
|
-
return props.segment.text;
|
|
676
|
-
};
|
|
719
|
+
const getChildren = () => renderProps.renderChildren() ?? props.segment.text;
|
|
677
720
|
|
|
678
721
|
// Mirror upstream's `mergeProps(filterDOMProps(otherProps), segmentProps,
|
|
679
722
|
// focusProps, hoverProps)`: the segment's behavior/style props (caretColor +
|
|
@@ -695,14 +738,14 @@ export function DateSegment(props: DateSegmentProps): JSX.Element {
|
|
|
695
738
|
ref={setSegmentRef}
|
|
696
739
|
{...segmentElementProps()}
|
|
697
740
|
class={renderProps.class()}
|
|
698
|
-
data-placeholder={props.segment.isPlaceholder
|
|
699
|
-
data-invalid={state.isInvalid()
|
|
700
|
-
data-readonly={state.isReadOnly()
|
|
701
|
-
data-disabled={state.isDisabled()
|
|
741
|
+
data-placeholder={dataAttr(props.segment.isPlaceholder)}
|
|
742
|
+
data-invalid={dataAttr(state.isInvalid())}
|
|
743
|
+
data-readonly={dataAttr(state.isReadOnly())}
|
|
744
|
+
data-disabled={dataAttr(state.isDisabled())}
|
|
702
745
|
data-type={props.segment.type}
|
|
703
|
-
data-hovered={isHovered()
|
|
704
|
-
data-focused={isFocused()
|
|
705
|
-
data-focus-visible={isFocusVisible()
|
|
746
|
+
data-hovered={dataAttr(isHovered())}
|
|
747
|
+
data-focused={dataAttr(isFocused())}
|
|
748
|
+
data-focus-visible={dataAttr(isFocusVisible())}
|
|
706
749
|
>
|
|
707
750
|
{getChildren()}
|
|
708
751
|
</span>
|