@proyecto-viviana/solidaria-components 0.5.0 → 0.7.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE-APACHE-2.0 +201 -0
- package/NOTICE +91 -0
- package/README.md +4 -7
- package/dist/ActionBar.d.ts +2 -10
- package/dist/ActionBar.d.ts.map +1 -1
- package/dist/ActionBar.js +95 -59
- package/dist/ActionBar.js.map +1 -1
- package/dist/ActionBar.jsx +42 -15
- package/dist/ActionBar.jsx.map +1 -1
- package/dist/ActionGroup.d.ts +1 -12
- package/dist/ActionGroup.d.ts.map +1 -1
- package/dist/ActionGroup.js +66 -44
- package/dist/ActionGroup.js.map +1 -1
- package/dist/ActionGroup.jsx +25 -10
- package/dist/ActionGroup.jsx.map +1 -1
- package/dist/Alert.d.ts +4 -1
- package/dist/Alert.d.ts.map +1 -1
- package/dist/Alert.js +25 -17
- package/dist/Alert.js.map +1 -1
- package/dist/Alert.jsx +9 -5
- package/dist/Alert.jsx.map +1 -1
- package/dist/Autocomplete.d.ts +2 -9
- package/dist/Autocomplete.d.ts.map +1 -1
- package/dist/Autocomplete.js +18 -5
- package/dist/Autocomplete.js.map +1 -1
- package/dist/Autocomplete.jsx +20 -7
- package/dist/Autocomplete.jsx.map +1 -1
- package/dist/Breadcrumbs.d.ts +2 -7
- package/dist/Breadcrumbs.d.ts.map +1 -1
- package/dist/Breadcrumbs.js +71 -51
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/Breadcrumbs.jsx +25 -12
- package/dist/Breadcrumbs.jsx.map +1 -1
- package/dist/Button.d.ts +1 -7
- package/dist/Button.d.ts.map +1 -1
- package/dist/Button.js +125 -72
- package/dist/Button.js.map +1 -1
- package/dist/Button.jsx +105 -43
- package/dist/Button.jsx.map +1 -1
- package/dist/Calendar.d.ts +1 -7
- package/dist/Calendar.d.ts.map +1 -1
- package/dist/Calendar.js +297 -221
- package/dist/Calendar.js.map +1 -1
- package/dist/Calendar.jsx +52 -32
- package/dist/Calendar.jsx.map +1 -1
- package/dist/CalendarPicker.d.ts +1 -10
- package/dist/CalendarPicker.d.ts.map +1 -1
- package/dist/CalendarPicker.js +12 -0
- package/dist/CalendarPicker.js.map +1 -1
- package/dist/CalendarPicker.jsx +12 -0
- package/dist/CalendarPicker.jsx.map +1 -1
- package/dist/Checkbox.d.ts +2 -7
- package/dist/Checkbox.d.ts.map +1 -1
- package/dist/Checkbox.js +332 -270
- package/dist/Checkbox.js.map +1 -1
- package/dist/Checkbox.jsx +70 -77
- package/dist/Checkbox.jsx.map +1 -1
- package/dist/Collection.d.ts +33 -7
- package/dist/Collection.d.ts.map +1 -1
- package/dist/Collection.js +128 -74
- package/dist/Collection.js.map +1 -1
- package/dist/Collection.jsx +46 -7
- package/dist/Collection.jsx.map +1 -1
- package/dist/Color.d.ts +15 -20
- package/dist/Color.d.ts.map +1 -1
- package/dist/Color.js +572 -334
- package/dist/Color.js.map +1 -1
- package/dist/Color.jsx +205 -85
- package/dist/Color.jsx.map +1 -1
- package/dist/ColorEditor.d.ts +3 -1
- package/dist/ColorEditor.d.ts.map +1 -1
- package/dist/ColorEditor.js +147 -124
- package/dist/ColorEditor.js.map +1 -1
- package/dist/ColorEditor.jsx +4 -1
- package/dist/ColorEditor.jsx.map +1 -1
- package/dist/ComboBox.d.ts +31 -10
- package/dist/ComboBox.d.ts.map +1 -1
- package/dist/ComboBox.js +539 -274
- package/dist/ComboBox.js.map +1 -1
- package/dist/ComboBox.jsx +213 -70
- package/dist/ComboBox.jsx.map +1 -1
- package/dist/ContextualHelpTrigger.d.ts +1 -7
- package/dist/ContextualHelpTrigger.d.ts.map +1 -1
- package/dist/ContextualHelpTrigger.js +102 -72
- package/dist/ContextualHelpTrigger.js.map +1 -1
- package/dist/ContextualHelpTrigger.jsx +36 -16
- package/dist/ContextualHelpTrigger.jsx.map +1 -1
- package/dist/DateField.d.ts +2 -7
- package/dist/DateField.d.ts.map +1 -1
- package/dist/DateField.js +0 -2
- package/dist/DateField.jsx +0 -2
- package/dist/DateField2.js +194 -179
- package/dist/DateField2.js.map +1 -1
- package/dist/DateField2.jsx +58 -55
- package/dist/DateField2.jsx.map +1 -1
- package/dist/DatePicker.d.ts +7 -7
- package/dist/DatePicker.d.ts.map +1 -1
- package/dist/DatePicker.js +2 -2
- package/dist/DatePicker.jsx +2 -2
- package/dist/DatePicker2.js +357 -435
- package/dist/DatePicker2.js.map +1 -1
- package/dist/DatePicker2.jsx +109 -178
- package/dist/DatePicker2.jsx.map +1 -1
- package/dist/DateRangePickerContext.d.ts +7 -0
- package/dist/DateRangePickerContext.d.ts.map +1 -1
- package/dist/Dialog.d.ts +4 -9
- package/dist/Dialog.d.ts.map +1 -1
- package/dist/Dialog.js +168 -101
- package/dist/Dialog.js.map +1 -1
- package/dist/Dialog.jsx +75 -27
- package/dist/Dialog.jsx.map +1 -1
- package/dist/Disclosure.d.ts +1 -9
- package/dist/Disclosure.d.ts.map +1 -1
- package/dist/Disclosure.js +121 -79
- package/dist/Disclosure.js.map +1 -1
- package/dist/Disclosure.jsx +32 -19
- package/dist/Disclosure.jsx.map +1 -1
- package/dist/DragAndDrop.d.ts +9 -6
- package/dist/DragAndDrop.d.ts.map +1 -1
- package/dist/DragAndDrop.js +37 -22
- package/dist/DragAndDrop.js.map +1 -1
- package/dist/DragAndDrop.jsx +20 -4
- package/dist/DragAndDrop.jsx.map +1 -1
- package/dist/DragPreview.d.ts +1 -1
- package/dist/DragPreview.d.ts.map +1 -1
- package/dist/DropZone.d.ts +1 -7
- package/dist/DropZone.d.ts.map +1 -1
- package/dist/DropZone.js +74 -40
- package/dist/DropZone.js.map +1 -1
- package/dist/DropZone.jsx +24 -8
- package/dist/DropZone.jsx.map +1 -1
- package/dist/ElementTag.d.ts +9 -20
- package/dist/ElementTag.d.ts.map +1 -1
- package/dist/ElementTag.js +8 -210
- package/dist/ElementTag.js.map +1 -1
- package/dist/ElementTag.jsx +8 -57
- package/dist/ElementTag.jsx.map +1 -1
- package/dist/FieldError.d.ts +8 -7
- package/dist/FieldError.d.ts.map +1 -1
- package/dist/FieldError.js +33 -13
- package/dist/FieldError.js.map +1 -1
- package/dist/FieldError.jsx +20 -5
- package/dist/FieldError.jsx.map +1 -1
- package/dist/FileTrigger.d.ts +1 -7
- package/dist/FileTrigger.d.ts.map +1 -1
- package/dist/FileTrigger.js +30 -12
- package/dist/FileTrigger.js.map +1 -1
- package/dist/FileTrigger.jsx +15 -2
- package/dist/FileTrigger.jsx.map +1 -1
- package/dist/Focusable.d.ts +2 -8
- package/dist/Focusable.d.ts.map +1 -1
- package/dist/Focusable.js +23 -6
- package/dist/Focusable.js.map +1 -1
- package/dist/Focusable.jsx +22 -5
- package/dist/Focusable.jsx.map +1 -1
- package/dist/Form.d.ts +9 -8
- package/dist/Form.d.ts.map +1 -1
- package/dist/Form.js +66 -43
- package/dist/Form.js.map +1 -1
- package/dist/Form.jsx +36 -16
- package/dist/Form.jsx.map +1 -1
- package/dist/GridList.d.ts +5 -10
- package/dist/GridList.d.ts.map +1 -1
- package/dist/GridList.js +372 -243
- package/dist/GridList.js.map +1 -1
- package/dist/GridList.jsx +177 -99
- package/dist/GridList.jsx.map +1 -1
- package/dist/HiddenDateInput.d.ts +1 -7
- package/dist/HiddenDateInput.d.ts.map +1 -1
- package/dist/Icon.d.ts +4 -1
- package/dist/Icon.d.ts.map +1 -1
- package/dist/Icon.js +41 -37
- package/dist/Icon.js.map +1 -1
- package/dist/Icon.jsx +7 -3
- package/dist/Icon.jsx.map +1 -1
- package/dist/Keyboard.d.ts +1 -7
- package/dist/Keyboard.d.ts.map +1 -1
- package/dist/Keyboard.js +24 -11
- package/dist/Keyboard.js.map +1 -1
- package/dist/Keyboard.jsx +15 -2
- package/dist/Keyboard.jsx.map +1 -1
- package/dist/Label.d.ts +20 -0
- package/dist/Label.d.ts.map +1 -0
- package/dist/Label.js +60 -0
- package/dist/Label.js.map +1 -0
- package/dist/Label.jsx +47 -0
- package/dist/Label.jsx.map +1 -0
- package/dist/Landmark.d.ts +4 -1
- package/dist/Landmark.d.ts.map +1 -1
- package/dist/Landmark.js +10 -4
- package/dist/Landmark.js.map +1 -1
- package/dist/Landmark.jsx +5 -1
- package/dist/Landmark.jsx.map +1 -1
- package/dist/Link.d.ts +2 -7
- package/dist/Link.d.ts.map +1 -1
- package/dist/Link.js +56 -36
- package/dist/Link.js.map +1 -1
- package/dist/Link.jsx +52 -10
- package/dist/Link.jsx.map +1 -1
- package/dist/ListBox.d.ts +17 -13
- package/dist/ListBox.d.ts.map +1 -1
- package/dist/ListBox.js +647 -348
- package/dist/ListBox.js.map +1 -1
- package/dist/ListBox.jsx +339 -236
- package/dist/ListBox.jsx.map +1 -1
- package/dist/ListDropTargetDelegate.d.ts +3 -0
- package/dist/ListDropTargetDelegate.d.ts.map +1 -1
- package/dist/Menu.d.ts +39 -30
- package/dist/Menu.d.ts.map +1 -1
- package/dist/Menu.js +547 -368
- package/dist/Menu.js.map +1 -1
- package/dist/Menu.jsx +328 -230
- package/dist/Menu.jsx.map +1 -1
- package/dist/Meter.d.ts +6 -13
- package/dist/Meter.d.ts.map +1 -1
- package/dist/Meter.js +55 -18
- package/dist/Meter.js.map +1 -1
- package/dist/Meter.jsx +33 -8
- package/dist/Meter.jsx.map +1 -1
- package/dist/Modal.d.ts +1 -7
- package/dist/Modal.d.ts.map +1 -1
- package/dist/Modal.js +104 -56
- package/dist/Modal.js.map +1 -1
- package/dist/Modal.jsx +68 -38
- package/dist/Modal.jsx.map +1 -1
- package/dist/NumberField.d.ts +4 -7
- package/dist/NumberField.d.ts.map +1 -1
- package/dist/NumberField.js +243 -124
- package/dist/NumberField.js.map +1 -1
- package/dist/NumberField.jsx +115 -26
- package/dist/NumberField.jsx.map +1 -1
- package/dist/Popover.d.ts +15 -7
- package/dist/Popover.d.ts.map +1 -1
- package/dist/Popover.js +370 -181
- package/dist/Popover.js.map +1 -1
- package/dist/Popover.jsx +215 -82
- package/dist/Popover.jsx.map +1 -1
- package/dist/Pressable.d.ts +2 -8
- package/dist/Pressable.d.ts.map +1 -1
- package/dist/Pressable.js +23 -6
- package/dist/Pressable.js.map +1 -1
- package/dist/Pressable.jsx +22 -5
- package/dist/Pressable.jsx.map +1 -1
- package/dist/PreviewTrigger.d.ts +24 -0
- package/dist/PreviewTrigger.d.ts.map +1 -0
- package/dist/PreviewTrigger.js +128 -0
- package/dist/PreviewTrigger.js.map +1 -0
- package/dist/PreviewTrigger.jsx +117 -0
- package/dist/PreviewTrigger.jsx.map +1 -0
- package/dist/ProgressBar.d.ts +1 -7
- package/dist/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar.js +34 -14
- package/dist/ProgressBar.js.map +1 -1
- package/dist/ProgressBar.jsx +17 -3
- package/dist/ProgressBar.jsx.map +1 -1
- package/dist/RadioGroup.d.ts +2 -7
- package/dist/RadioGroup.d.ts.map +1 -1
- package/dist/RadioGroup.js +388 -269
- package/dist/RadioGroup.js.map +1 -1
- package/dist/RadioGroup.jsx +110 -99
- package/dist/RadioGroup.jsx.map +1 -1
- package/dist/RangeCalendar.d.ts +3 -7
- package/dist/RangeCalendar.d.ts.map +1 -1
- package/dist/RangeCalendar.js +271 -202
- package/dist/RangeCalendar.js.map +1 -1
- package/dist/RangeCalendar.jsx +56 -37
- package/dist/RangeCalendar.jsx.map +1 -1
- package/dist/RouterProvider.d.ts +3 -9
- package/dist/RouterProvider.d.ts.map +1 -1
- package/dist/RouterProvider.js +15 -14
- package/dist/RouterProvider.js.map +1 -1
- package/dist/RouterProvider.jsx +14 -13
- package/dist/RouterProvider.jsx.map +1 -1
- package/dist/SearchField.d.ts +4 -7
- package/dist/SearchField.d.ts.map +1 -1
- package/dist/SearchField.js +191 -164
- package/dist/SearchField.js.map +1 -1
- package/dist/SearchField.jsx +69 -62
- package/dist/SearchField.jsx.map +1 -1
- package/dist/Select.d.ts +5 -10
- package/dist/Select.d.ts.map +1 -1
- package/dist/Select.js +565 -359
- package/dist/Select.js.map +1 -1
- package/dist/Select.jsx +281 -161
- package/dist/Select.jsx.map +1 -1
- package/dist/SelectionIndicator.d.ts +1 -4
- package/dist/SelectionIndicator.d.ts.map +1 -1
- package/dist/SelectionIndicator.js +29 -13
- package/dist/SelectionIndicator.js.map +1 -1
- package/dist/SelectionIndicator.jsx +18 -4
- package/dist/SelectionIndicator.jsx.map +1 -1
- package/dist/Separator.d.ts +1 -7
- package/dist/Separator.d.ts.map +1 -1
- package/dist/Separator.js +22 -6
- package/dist/Separator.js.map +1 -1
- package/dist/Separator.jsx +16 -3
- package/dist/Separator.jsx.map +1 -1
- package/dist/SharedElementTransition.d.ts +1 -10
- package/dist/SharedElementTransition.d.ts.map +1 -1
- package/dist/SharedElementTransition.js +68 -40
- package/dist/SharedElementTransition.js.map +1 -1
- package/dist/SharedElementTransition.jsx +49 -25
- package/dist/SharedElementTransition.jsx.map +1 -1
- package/dist/Slider.d.ts +2 -8
- package/dist/Slider.d.ts.map +1 -1
- package/dist/Slider.js +155 -97
- package/dist/Slider.js.map +1 -1
- package/dist/Slider.jsx +25 -12
- package/dist/Slider.jsx.map +1 -1
- package/dist/StepList.d.ts +1 -7
- package/dist/StepList.d.ts.map +1 -1
- package/dist/StepList.js +112 -68
- package/dist/StepList.js.map +1 -1
- package/dist/StepList.jsx +58 -20
- package/dist/StepList.jsx.map +1 -1
- package/dist/Switch.d.ts +2 -9
- package/dist/Switch.d.ts.map +1 -1
- package/dist/Switch.js +164 -114
- package/dist/Switch.js.map +1 -1
- package/dist/Switch.jsx +26 -13
- package/dist/Switch.jsx.map +1 -1
- package/dist/Table.d.ts +2 -1
- package/dist/Table.d.ts.map +1 -1
- package/dist/Table.js +689 -592
- package/dist/Table.js.map +1 -1
- package/dist/Table.jsx +317 -237
- package/dist/Table.jsx.map +1 -1
- package/dist/Tabs.d.ts +2 -7
- package/dist/Tabs.d.ts.map +1 -1
- package/dist/Tabs.js +278 -293
- package/dist/Tabs.js.map +1 -1
- package/dist/Tabs.jsx +68 -66
- package/dist/Tabs.jsx.map +1 -1
- package/dist/TagGroup.d.ts +4 -11
- package/dist/TagGroup.d.ts.map +1 -1
- package/dist/TagGroup.js +153 -115
- package/dist/TagGroup.js.map +1 -1
- package/dist/TagGroup.jsx +37 -24
- package/dist/TagGroup.jsx.map +1 -1
- package/dist/Text.d.ts +3 -3
- package/dist/Text.d.ts.map +1 -1
- package/dist/Text.js +24 -7
- package/dist/Text.js.map +1 -1
- package/dist/Text.jsx +17 -5
- package/dist/Text.jsx.map +1 -1
- package/dist/TextField.d.ts +3 -16
- package/dist/TextField.d.ts.map +1 -1
- package/dist/TextField.js +104 -129
- package/dist/TextField.js.map +1 -1
- package/dist/TextField.jsx +76 -102
- package/dist/TextField.jsx.map +1 -1
- package/dist/TimeField.d.ts +2 -15
- package/dist/TimeField.d.ts.map +1 -1
- package/dist/TimeField.js +86 -102
- package/dist/TimeField.js.map +1 -1
- package/dist/TimeField.jsx +32 -49
- package/dist/TimeField.jsx.map +1 -1
- package/dist/Toast.d.ts +10 -13
- package/dist/Toast.d.ts.map +1 -1
- package/dist/Toast.js +209 -108
- package/dist/Toast.js.map +1 -1
- package/dist/Toast.jsx +127 -22
- package/dist/Toast.jsx.map +1 -1
- package/dist/ToggleButton.d.ts +1 -7
- package/dist/ToggleButton.d.ts.map +1 -1
- package/dist/ToggleButton.js +57 -35
- package/dist/ToggleButton.js.map +1 -1
- package/dist/ToggleButton.jsx +26 -12
- package/dist/ToggleButton.jsx.map +1 -1
- package/dist/ToggleButtonGroup.d.ts +1 -7
- package/dist/ToggleButtonGroup.d.ts.map +1 -1
- package/dist/ToggleButtonGroup.js +59 -44
- package/dist/ToggleButtonGroup.js.map +1 -1
- package/dist/ToggleButtonGroup.jsx +25 -12
- package/dist/ToggleButtonGroup.jsx.map +1 -1
- package/dist/TokenField.d.ts +52 -0
- package/dist/TokenField.d.ts.map +1 -0
- package/dist/TokenField.js +301 -0
- package/dist/TokenField.js.map +1 -0
- package/dist/TokenField.jsx +197 -0
- package/dist/TokenField.jsx.map +1 -0
- package/dist/Toolbar.d.ts +2 -7
- package/dist/Toolbar.d.ts.map +1 -1
- package/dist/Toolbar.js +35 -16
- package/dist/Toolbar.js.map +1 -1
- package/dist/Toolbar.jsx +15 -2
- package/dist/Toolbar.jsx.map +1 -1
- package/dist/Tooltip.d.ts +2 -7
- package/dist/Tooltip.d.ts.map +1 -1
- package/dist/Tooltip.js +105 -68
- package/dist/Tooltip.js.map +1 -1
- package/dist/Tooltip.jsx +60 -36
- package/dist/Tooltip.jsx.map +1 -1
- package/dist/Tree.d.ts +8 -11
- package/dist/Tree.d.ts.map +1 -1
- package/dist/Tree.js +486 -339
- package/dist/Tree.js.map +1 -1
- package/dist/Tree.jsx +155 -107
- package/dist/Tree.jsx.map +1 -1
- package/dist/Virtualizer.d.ts +39 -9
- package/dist/Virtualizer.d.ts.map +1 -1
- package/dist/Virtualizer.js +2 -2
- package/dist/Virtualizer.jsx +2 -2
- package/dist/Virtualizer2.js +491 -136
- package/dist/Virtualizer2.js.map +1 -1
- package/dist/Virtualizer2.jsx +455 -122
- package/dist/Virtualizer2.jsx.map +1 -1
- package/dist/VirtualizerLayouts.d.ts +55 -2
- package/dist/VirtualizerLayouts.d.ts.map +1 -1
- package/dist/VisuallyHidden.d.ts +4 -3
- package/dist/VisuallyHidden.d.ts.map +1 -1
- package/dist/VisuallyHidden.js +18 -11
- package/dist/VisuallyHidden.js.map +1 -1
- package/dist/VisuallyHidden.jsx +15 -9
- package/dist/VisuallyHidden.jsx.map +1 -1
- package/dist/contexts.d.ts +25 -0
- package/dist/contexts.d.ts.map +1 -1
- package/dist/contexts.js +3 -0
- package/dist/contexts.js.map +1 -1
- package/dist/contexts.jsx +3 -0
- package/dist/contexts.jsx.map +1 -1
- package/dist/index.d.ts +11 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -11
- package/dist/index.jsx +14 -11
- package/dist/intl/index.d.ts +16 -0
- package/dist/intl/index.d.ts.map +1 -0
- package/dist/intl.js +212 -0
- package/dist/intl.js.map +1 -0
- package/dist/intl.jsx +212 -0
- package/dist/intl.jsx.map +1 -0
- package/dist/useDragAndDrop.d.ts +4 -2
- package/dist/useDragAndDrop.d.ts.map +1 -1
- package/dist/useDragAndDrop2.js +39 -21
- package/dist/useDragAndDrop2.js.map +1 -1
- package/dist/useDragAndDrop2.jsx +39 -21
- package/dist/useDragAndDrop2.jsx.map +1 -1
- package/dist/utils.d.ts +28 -9
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +96 -24
- package/dist/utils.js.map +1 -1
- package/dist/utils.jsx +81 -24
- package/dist/utils.jsx.map +1 -1
- package/dist/virtualizer/Layout.d.ts +9 -0
- package/dist/virtualizer/Layout.d.ts.map +1 -1
- package/dist/virtualizer/Layout.js +23 -2
- package/dist/virtualizer/Layout.js.map +1 -1
- package/dist/virtualizer/Layout.jsx +23 -2
- package/dist/virtualizer/Layout.jsx.map +1 -1
- package/package.json +29 -10
- package/src/ActionBar.tsx +50 -24
- package/src/ActionGroup.tsx +31 -19
- package/src/Alert.tsx +10 -4
- package/src/Autocomplete.tsx +24 -15
- package/src/Breadcrumbs.tsx +32 -16
- package/src/Button.tsx +182 -67
- package/src/Calendar.tsx +65 -47
- package/src/CalendarPicker.tsx +16 -1
- package/src/Checkbox.tsx +84 -116
- package/src/Collection.tsx +84 -3
- package/src/Color.tsx +282 -104
- package/src/ColorEditor.tsx +5 -1
- package/src/ComboBox.tsx +384 -109
- package/src/ContextualHelpTrigger.tsx +47 -41
- package/src/DateField.tsx +74 -106
- package/src/DatePicker.tsx +156 -352
- package/src/DateRangePickerContext.tsx +8 -0
- package/src/Dialog.tsx +105 -38
- package/src/Disclosure.tsx +29 -19
- package/src/DragAndDrop.tsx +43 -8
- package/src/DragPreview.tsx +20 -1
- package/src/DropZone.tsx +32 -18
- package/src/ElementTag.tsx +14 -104
- package/src/FieldError.tsx +39 -7
- package/src/FileTrigger.tsx +18 -3
- package/src/Focusable.tsx +27 -6
- package/src/Form.tsx +57 -11
- package/src/GridList.tsx +233 -141
- package/src/HiddenDateInput.tsx +19 -3
- package/src/Icon.tsx +8 -2
- package/src/Keyboard.tsx +18 -2
- package/src/Label.tsx +77 -0
- package/src/Landmark.tsx +6 -1
- package/src/Link.tsx +65 -19
- package/src/ListBox.tsx +645 -468
- package/src/ListDropTargetDelegate.ts +4 -0
- package/src/Menu.tsx +512 -349
- package/src/Meter.tsx +42 -8
- package/src/Modal.tsx +85 -42
- package/src/NumberField.tsx +161 -48
- package/src/Popover.tsx +424 -148
- package/src/Pressable.tsx +27 -6
- package/src/PreviewTrigger.tsx +171 -0
- package/src/ProgressBar.tsx +25 -3
- package/src/RadioGroup.tsx +230 -161
- package/src/RangeCalendar.tsx +75 -63
- package/src/RouterProvider.tsx +24 -14
- package/src/SearchField.tsx +118 -121
- package/src/Select.tsx +454 -274
- package/src/SelectionIndicator.tsx +21 -3
- package/src/Separator.tsx +17 -1
- package/src/SharedElementTransition.tsx +115 -97
- package/src/Slider.tsx +35 -17
- package/src/StepList.tsx +71 -32
- package/src/Switch.tsx +45 -29
- package/src/Table.tsx +446 -380
- package/src/Tabs.tsx +132 -155
- package/src/TagGroup.tsx +53 -40
- package/src/Text.tsx +23 -6
- package/src/TextField.tsx +118 -159
- package/src/TimeField.tsx +34 -95
- package/src/Toast.tsx +141 -67
- package/src/ToggleButton.tsx +33 -15
- package/src/ToggleButtonGroup.tsx +27 -9
- package/src/TokenField.tsx +379 -0
- package/src/Toolbar.tsx +19 -9
- package/src/Tooltip.tsx +126 -84
- package/src/Tree.tsx +233 -173
- package/src/Virtualizer.tsx +400 -138
- package/src/VirtualizerLayouts.ts +211 -26
- package/src/VisuallyHidden.tsx +22 -8
- package/src/contexts.ts +13 -0
- package/src/index.ts +32 -11
- package/src/intl/ar-AE.json +6 -0
- package/src/intl/bg-BG.json +6 -0
- package/src/intl/cs-CZ.json +6 -0
- package/src/intl/da-DK.json +6 -0
- package/src/intl/de-DE.json +6 -0
- package/src/intl/el-GR.json +6 -0
- package/src/intl/en-US.json +6 -0
- package/src/intl/es-ES.json +6 -0
- package/src/intl/et-EE.json +6 -0
- package/src/intl/fi-FI.json +6 -0
- package/src/intl/fr-FR.json +6 -0
- package/src/intl/he-IL.json +6 -0
- package/src/intl/hr-HR.json +6 -0
- package/src/intl/hu-HU.json +6 -0
- package/src/intl/index.ts +125 -0
- package/src/intl/it-IT.json +6 -0
- package/src/intl/ja-JP.json +6 -0
- package/src/intl/ko-KR.json +6 -0
- package/src/intl/lt-LT.json +6 -0
- package/src/intl/lv-LV.json +6 -0
- package/src/intl/nb-NO.json +6 -0
- package/src/intl/nl-NL.json +6 -0
- package/src/intl/pl-PL.json +6 -0
- package/src/intl/pt-BR.json +6 -0
- package/src/intl/pt-PT.json +6 -0
- package/src/intl/ro-RO.json +6 -0
- package/src/intl/ru-RU.json +6 -0
- package/src/intl/sk-SK.json +6 -0
- package/src/intl/sl-SI.json +6 -0
- package/src/intl/sr-SP.json +6 -0
- package/src/intl/sv-SE.json +6 -0
- package/src/intl/tr-TR.json +6 -0
- package/src/intl/uk-UA.json +6 -0
- package/src/intl/zh-CN.json +6 -0
- package/src/intl/zh-TW.json +6 -0
- package/src/useDragAndDrop.ts +30 -32
- package/src/utils.tsx +124 -68
- package/src/virtualizer/Layout.ts +29 -0
package/dist/TextField.js
CHANGED
|
@@ -1,11 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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/TextField.tsx
|
|
13
|
+
import { Provider, dataAttr, filterDOMProps, useRenderProps, useSlot } from "./utils.js";
|
|
3
14
|
import { TextContext } from "./Text.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
15
|
+
import { FieldErrorContext } from "./FieldError.js";
|
|
16
|
+
import { FormContext, resolveValidationBehavior } from "./Form.js";
|
|
17
|
+
import { n as LabelContext, t as Label } from "./Label.js";
|
|
18
|
+
import { createComponent, getNextElement, insert, memo, ref, runHydrationEvents, spread, template } from "@solidjs/web";
|
|
19
|
+
import { createContext, createEffect, createMemo, createSignal, onCleanup, onSettled, untrack, useContext } from "solid-js";
|
|
20
|
+
import { createFocusRing, createHover, createTextField, mergeProps as mergeProps$1 } from "@proyecto-viviana/solidaria";
|
|
21
|
+
import { assignRef, attrString, splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
22
|
+
import { createTextFieldState } from "@proyecto-viviana/solid-stately";
|
|
9
23
|
//#region src/TextField.tsx
|
|
10
24
|
/**
|
|
11
25
|
* TextField component for solidaria-components
|
|
@@ -13,76 +27,13 @@ import { VALID_VALIDITY_STATE, createTextFieldState } from "@proyecto-viviana/so
|
|
|
13
27
|
* A pre-wired headless text field that combines state + aria hooks.
|
|
14
28
|
* Port of react-aria-components/src/TextField.tsx
|
|
15
29
|
*/
|
|
16
|
-
var _tmpl$ =
|
|
30
|
+
var _tmpl$ = /* @__PURE__ */ template(`<input>`);
|
|
31
|
+
var _tmpl$2 = /* @__PURE__ */ template(`<textarea>`);
|
|
32
|
+
var _tmpl$3 = /* @__PURE__ */ template(`<div>`);
|
|
17
33
|
const TextFieldContext = createContext(null);
|
|
18
|
-
const LabelContext = TextFieldContext;
|
|
19
34
|
const InputContext = TextFieldContext;
|
|
20
35
|
const TextAreaContext = TextFieldContext;
|
|
21
36
|
const FieldInputContext = TextFieldContext;
|
|
22
|
-
function withFormValidationBehavior(props, formContext) {
|
|
23
|
-
if (!formContext?.validationBehavior) return props;
|
|
24
|
-
return new Proxy(props, {
|
|
25
|
-
get(target, property, receiver) {
|
|
26
|
-
const localValue = Reflect.get(target, property, receiver);
|
|
27
|
-
if (property === "validationBehavior" && localValue === void 0) return formContext.validationBehavior;
|
|
28
|
-
return localValue;
|
|
29
|
-
},
|
|
30
|
-
has(target, property) {
|
|
31
|
-
return Reflect.has(target, property) || property === "validationBehavior" && formContext.validationBehavior !== void 0;
|
|
32
|
-
},
|
|
33
|
-
ownKeys(target) {
|
|
34
|
-
const keys = new Set(Reflect.ownKeys(target));
|
|
35
|
-
if (formContext.validationBehavior !== void 0) keys.add("validationBehavior");
|
|
36
|
-
return Array.from(keys);
|
|
37
|
-
},
|
|
38
|
-
getOwnPropertyDescriptor(target, property) {
|
|
39
|
-
const descriptor = Reflect.getOwnPropertyDescriptor(target, property);
|
|
40
|
-
if (descriptor) return descriptor;
|
|
41
|
-
if (property === "validationBehavior" && formContext.validationBehavior !== void 0) return {
|
|
42
|
-
enumerable: true,
|
|
43
|
-
configurable: true,
|
|
44
|
-
get: () => formContext.validationBehavior
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* A label element that automatically wires up to the parent TextField context.
|
|
51
|
-
* This enables the proper htmlFor/id relationship between label and input.
|
|
52
|
-
*/
|
|
53
|
-
function Label(props) {
|
|
54
|
-
const context = useContext(TextFieldContext);
|
|
55
|
-
const localDOMProps = () => {
|
|
56
|
-
const result = {};
|
|
57
|
-
const propsRecord = props;
|
|
58
|
-
for (const key in propsRecord) if (key !== "children") result[key] = propsRecord[key];
|
|
59
|
-
return result;
|
|
60
|
-
};
|
|
61
|
-
const mergedProps = () => {
|
|
62
|
-
const localProps = localDOMProps();
|
|
63
|
-
if (context) {
|
|
64
|
-
const { ref: _ref, ...contextLabelProps } = context.labelProps ?? {};
|
|
65
|
-
const merged = {
|
|
66
|
-
...contextLabelProps,
|
|
67
|
-
...context.inputId ? { for: context.inputId } : {},
|
|
68
|
-
...localProps
|
|
69
|
-
};
|
|
70
|
-
if (merged.class == null) merged.class = "solidaria-Label";
|
|
71
|
-
return merged;
|
|
72
|
-
}
|
|
73
|
-
return localProps.class == null ? {
|
|
74
|
-
...localProps,
|
|
75
|
-
class: "solidaria-Label"
|
|
76
|
-
} : localProps;
|
|
77
|
-
};
|
|
78
|
-
return (() => {
|
|
79
|
-
var _el$ = getNextElement(_tmpl$);
|
|
80
|
-
spread(_el$, mergeProps(mergedProps), false, true);
|
|
81
|
-
insert(_el$, () => props.children);
|
|
82
|
-
runHydrationEvents();
|
|
83
|
-
return _el$;
|
|
84
|
-
})();
|
|
85
|
-
}
|
|
86
37
|
function eventWithCurrentTarget(event, element) {
|
|
87
38
|
return new Proxy(event, { get(target, property, receiver) {
|
|
88
39
|
if (property === "target" || property === "currentTarget") return element;
|
|
@@ -103,8 +54,9 @@ function clearDelegatedTextEntryHandlers(element) {
|
|
|
103
54
|
function Input(props) {
|
|
104
55
|
const context = useContext(TextFieldContext);
|
|
105
56
|
let inputElement;
|
|
106
|
-
|
|
107
|
-
|
|
57
|
+
const contextInputRef = context?.inputProps?.ref;
|
|
58
|
+
createEffect(() => attrString(props.id), (id) => {
|
|
59
|
+
context?.setInputId?.(id);
|
|
108
60
|
});
|
|
109
61
|
onCleanup(() => {
|
|
110
62
|
context?.setInputId?.(void 0);
|
|
@@ -124,7 +76,7 @@ function Input(props) {
|
|
|
124
76
|
class: "solidaria-Input"
|
|
125
77
|
} : props;
|
|
126
78
|
};
|
|
127
|
-
|
|
79
|
+
onSettled(() => {
|
|
128
80
|
const element = inputElement;
|
|
129
81
|
if (!element) return;
|
|
130
82
|
const inputHandler = (event) => {
|
|
@@ -142,22 +94,22 @@ function Input(props) {
|
|
|
142
94
|
element.addEventListener("input", inputHandler);
|
|
143
95
|
element.addEventListener("change", changeHandler);
|
|
144
96
|
clearDelegatedTextEntryHandlers(element);
|
|
145
|
-
|
|
97
|
+
return () => {
|
|
146
98
|
element.removeEventListener("input", inputHandler);
|
|
147
99
|
element.removeEventListener("change", changeHandler);
|
|
148
|
-
}
|
|
100
|
+
};
|
|
149
101
|
});
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
102
|
+
var _el$ = getNextElement(_tmpl$);
|
|
103
|
+
ref(() => {
|
|
104
|
+
return (element) => {
|
|
153
105
|
inputElement = element;
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
106
|
+
assignRef(contextInputRef, element);
|
|
107
|
+
assignRef(props.ref, element);
|
|
108
|
+
};
|
|
109
|
+
}, _el$);
|
|
110
|
+
spread(_el$, mergedProps, false);
|
|
111
|
+
runHydrationEvents();
|
|
112
|
+
return _el$;
|
|
161
113
|
}
|
|
162
114
|
/**
|
|
163
115
|
* A textarea element that automatically wires up to the parent TextField context.
|
|
@@ -167,8 +119,9 @@ function Input(props) {
|
|
|
167
119
|
function TextArea(props) {
|
|
168
120
|
const context = useContext(TextFieldContext);
|
|
169
121
|
let textAreaElement;
|
|
170
|
-
|
|
171
|
-
|
|
122
|
+
const contextInputRef = context?.inputProps?.ref;
|
|
123
|
+
createEffect(() => attrString(props.id), (id) => {
|
|
124
|
+
context?.setInputId?.(id);
|
|
172
125
|
});
|
|
173
126
|
onCleanup(() => {
|
|
174
127
|
context?.setInputId?.(void 0);
|
|
@@ -188,7 +141,7 @@ function TextArea(props) {
|
|
|
188
141
|
class: "solidaria-TextArea"
|
|
189
142
|
} : props;
|
|
190
143
|
};
|
|
191
|
-
|
|
144
|
+
onSettled(() => {
|
|
192
145
|
const element = textAreaElement;
|
|
193
146
|
if (!element) return;
|
|
194
147
|
const inputHandler = (event) => {
|
|
@@ -206,22 +159,22 @@ function TextArea(props) {
|
|
|
206
159
|
element.addEventListener("input", inputHandler);
|
|
207
160
|
element.addEventListener("change", changeHandler);
|
|
208
161
|
clearDelegatedTextEntryHandlers(element);
|
|
209
|
-
|
|
162
|
+
return () => {
|
|
210
163
|
element.removeEventListener("input", inputHandler);
|
|
211
164
|
element.removeEventListener("change", changeHandler);
|
|
212
|
-
}
|
|
165
|
+
};
|
|
213
166
|
});
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
167
|
+
var _el$2 = getNextElement(_tmpl$2);
|
|
168
|
+
ref(() => {
|
|
169
|
+
return (element) => {
|
|
217
170
|
textAreaElement = element;
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
171
|
+
assignRef(contextInputRef, element);
|
|
172
|
+
assignRef(props.ref, element);
|
|
173
|
+
};
|
|
174
|
+
}, _el$2);
|
|
175
|
+
spread(_el$2, mergedProps, false);
|
|
176
|
+
runHydrationEvents();
|
|
177
|
+
return _el$2;
|
|
225
178
|
}
|
|
226
179
|
/**
|
|
227
180
|
* A text field allows a user to enter a plain text value with a keyboard.
|
|
@@ -244,13 +197,14 @@ function TextArea(props) {
|
|
|
244
197
|
function TextField(props) {
|
|
245
198
|
const formContext = useContext(FormContext);
|
|
246
199
|
const contextProps = useContext(TextFieldContext);
|
|
247
|
-
const contextSlotProps = contextProps?.slots?.[props.slot
|
|
200
|
+
const contextSlotProps = contextProps?.slots?.[typeof props.slot === "string" ? props.slot : "default"];
|
|
248
201
|
const contextBaseProps = createMemo(() => {
|
|
249
202
|
if (!contextProps) return {};
|
|
250
203
|
const { labelProps: _labelProps, inputProps: _inputProps, descriptionProps: _descriptionProps, errorMessageProps: _errorMessageProps, isInvalid: _isInvalid, slots: _slots, setInputId: _setInputId, ...rest } = contextProps;
|
|
251
204
|
return rest;
|
|
252
205
|
});
|
|
253
|
-
const
|
|
206
|
+
const baseProps = contextProps ? mergeProps$1(contextBaseProps(), contextSlotProps ?? {}, props) : props;
|
|
207
|
+
const [local, ariaProps] = splitProps(baseProps, [
|
|
254
208
|
"children",
|
|
255
209
|
"class",
|
|
256
210
|
"style",
|
|
@@ -273,8 +227,11 @@ function TextField(props) {
|
|
|
273
227
|
for (const key in ariaProps) if (!key.startsWith("data-")) clean[key] = ariaProps[key];
|
|
274
228
|
return clean;
|
|
275
229
|
});
|
|
230
|
+
const [labelRef, hasLabel] = useSlot(!ariaProps["aria-label"] && !ariaProps["aria-labelledby"]);
|
|
276
231
|
const textFieldAria = createTextField(() => ({
|
|
277
232
|
...inputAriaProps(),
|
|
233
|
+
validationBehavior: resolveValidationBehavior(ariaProps.validationBehavior, formContext),
|
|
234
|
+
label: hasLabel(),
|
|
278
235
|
value: state.value(),
|
|
279
236
|
onChange: state.setValue
|
|
280
237
|
}));
|
|
@@ -337,15 +294,12 @@ function TextField(props) {
|
|
|
337
294
|
};
|
|
338
295
|
const fieldValidation = createMemo(() => {
|
|
339
296
|
const isInvalid = textFieldAria.isInvalid;
|
|
297
|
+
const validationErrors = textFieldAria.validationErrors;
|
|
340
298
|
const errorMessage = ariaProps.errorMessage;
|
|
341
299
|
return {
|
|
342
300
|
isInvalid,
|
|
343
|
-
validationErrors: isInvalid && typeof errorMessage === "string" ? [errorMessage] :
|
|
344
|
-
validationDetails:
|
|
345
|
-
...VALID_VALIDITY_STATE,
|
|
346
|
-
customError: true,
|
|
347
|
-
valid: false
|
|
348
|
-
} : VALID_VALIDITY_STATE
|
|
301
|
+
validationErrors: isInvalid && validationErrors.length === 0 && typeof errorMessage === "string" ? [errorMessage] : validationErrors,
|
|
302
|
+
validationDetails: textFieldAria.validationDetails
|
|
349
303
|
};
|
|
350
304
|
});
|
|
351
305
|
const fieldErrorContext = {
|
|
@@ -361,7 +315,7 @@ function TextField(props) {
|
|
|
361
315
|
return textFieldAria.labelProps;
|
|
362
316
|
},
|
|
363
317
|
get inputProps() {
|
|
364
|
-
return mergeProps$
|
|
318
|
+
return mergeProps$1(textFieldAria.inputProps, focusProps);
|
|
365
319
|
},
|
|
366
320
|
get descriptionProps() {
|
|
367
321
|
return textFieldAria.descriptionProps;
|
|
@@ -379,6 +333,20 @@ function TextField(props) {
|
|
|
379
333
|
setInputIdOverride(id);
|
|
380
334
|
}
|
|
381
335
|
};
|
|
336
|
+
const labelContextValue = {
|
|
337
|
+
ref: labelRef,
|
|
338
|
+
get id() {
|
|
339
|
+
return textFieldAria.labelProps.id;
|
|
340
|
+
},
|
|
341
|
+
get htmlFor() {
|
|
342
|
+
const labelProps = textFieldAria.labelProps;
|
|
343
|
+
return inputIdOverride() ?? labelProps.htmlFor ?? labelProps.for;
|
|
344
|
+
},
|
|
345
|
+
get for() {
|
|
346
|
+
const labelProps = textFieldAria.labelProps;
|
|
347
|
+
return inputIdOverride() ?? labelProps.htmlFor ?? labelProps.for;
|
|
348
|
+
}
|
|
349
|
+
};
|
|
382
350
|
const FieldChildren = () => untrack(() => {
|
|
383
351
|
const children = local.children;
|
|
384
352
|
return typeof children === "function" ? children(childRenderValues) : children;
|
|
@@ -403,31 +371,38 @@ function TextField(props) {
|
|
|
403
371
|
class: renderProps.class(),
|
|
404
372
|
style: renderProps.style(),
|
|
405
373
|
slot: local.slot,
|
|
406
|
-
"data-disabled": ariaProps.isDisabled
|
|
407
|
-
"data-invalid": textFieldAria.isInvalid
|
|
408
|
-
"data-readonly": ariaProps.isReadOnly
|
|
409
|
-
"data-required": ariaProps.isRequired
|
|
410
|
-
"data-hovered": isHovered()
|
|
411
|
-
"data-focused": isFocused()
|
|
412
|
-
"data-focus-visible": isFocusVisible()
|
|
374
|
+
"data-disabled": dataAttr(!!ariaProps.isDisabled),
|
|
375
|
+
"data-invalid": dataAttr(!!textFieldAria.isInvalid),
|
|
376
|
+
"data-readonly": dataAttr(!!ariaProps.isReadOnly),
|
|
377
|
+
"data-required": dataAttr(!!ariaProps.isRequired),
|
|
378
|
+
"data-hovered": dataAttr(isHovered()),
|
|
379
|
+
"data-focused": dataAttr(isFocused()),
|
|
380
|
+
"data-focus-visible": dataAttr(isFocusVisible())
|
|
413
381
|
});
|
|
414
382
|
const customRootProps = () => ({
|
|
415
383
|
...rootProps(),
|
|
416
384
|
children: createComponent(FieldChildrenSlotted, {})
|
|
417
385
|
});
|
|
418
|
-
return createComponent(FieldErrorContext
|
|
386
|
+
return createComponent(FieldErrorContext, {
|
|
419
387
|
value: fieldErrorContext,
|
|
420
388
|
get children() {
|
|
421
|
-
return createComponent(
|
|
422
|
-
value:
|
|
389
|
+
return createComponent(LabelContext, {
|
|
390
|
+
value: labelContextValue,
|
|
423
391
|
get children() {
|
|
424
|
-
return
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
392
|
+
return createComponent(TextFieldContext, {
|
|
393
|
+
value: contextValue,
|
|
394
|
+
get children() {
|
|
395
|
+
return memo(() => {
|
|
396
|
+
return !!local.render;
|
|
397
|
+
})() ? local.render(customRootProps(), renderValues()) : (() => {
|
|
398
|
+
var _el$3 = getNextElement(_tmpl$3);
|
|
399
|
+
spread(_el$3, rootProps, true);
|
|
400
|
+
insert(_el$3, createComponent(FieldChildrenSlotted, {}));
|
|
401
|
+
runHydrationEvents();
|
|
402
|
+
return _el$3;
|
|
403
|
+
})();
|
|
404
|
+
}
|
|
405
|
+
});
|
|
431
406
|
}
|
|
432
407
|
});
|
|
433
408
|
}
|
package/dist/TextField.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.js","names":["JSX","Context","createContext","useContext","createMemo","createSignal","createEffect","onCleanup","onMount","splitProps","untrack","createTextField","createFocusRing","createHover","mergeProps","AriaTextFieldProps","createTextFieldState","VALID_VALIDITY_STATE","ValidationResult","FormContext","FormProps","FieldErrorContext","FieldErrorContextValue","RenderChildren","ClassNameOrFunction","StyleOrFunction","SlotProps","useRenderProps","filterDOMProps","Provider","TextContext","TextFieldRenderProps","isDisabled","isInvalid","isReadOnly","isRequired","isHovered","isFocused","isFocusVisible","TextFieldProps","Omit","children","class","style","render","props","HTMLAttributes","HTMLDivElement","renderProps","Element","TextFieldContextValue","labelProps","LabelHTMLAttributes","HTMLLabelElement","inputProps","InputHTMLAttributes","HTMLInputElement","descriptionProps","HTMLElement","errorMessageProps","slots","Record","inputId","setInputId","id","TextFieldContext","LabelContext","InputContext","TextAreaContext","FieldInputContext","withFormValidationBehavior","formContext","validationBehavior","Proxy","get","target","property","receiver","localValue","Reflect","undefined","has","ownKeys","keys","Set","add","Array","from","getOwnPropertyDescriptor","descriptor","enumerable","configurable","LabelProps","Label","context","localDOMProps","result","propsRecord","key","mergedProps","localProps","ref","_ref","contextLabelProps","merged","for","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","_$insert","_$runHydrationEvents","InputProps","eventWithCurrentTarget","event","Event","element","T","value","bind","clearDelegatedTextEntryHandlers","delegatedElement","$$input","$$change","Input","inputElement","contextInputProps","inputHandler","handler","onInput","EventHandler","InputEvent","currentTarget","stopPropagation","changeHandler","onChange","addEventListener","removeEventListener","_el$2","_tmpl$2","_$use","TextAreaProps","TextareaHTMLAttributes","HTMLTextAreaElement","TextArea","textAreaElement","type","_type","_el$3","_tmpl$3","TextField","contextProps","contextSlotProps","slot","contextBaseProps","_labelProps","_inputProps","_descriptionProps","_errorMessageProps","_isInvalid","_slots","_setInputId","rest","baseProps","local","ariaProps","state","defaultValue","inputAriaProps","clean","startsWith","textFieldAria","setValue","focusProps","hoverProps","inputIdOverride","setInputIdOverride","renderValues","defaultClassName","childRenderValues","domProps","filtered","global","events","cleanHoverProps","fieldValidation","errorMessage","validationErrors","validationDetails","customError","valid","fieldErrorContext","validation","contextValue","FieldChildren","textSlots","description","FieldChildrenSlotted","_$createComponent","values","rootProps","customRootProps","_$memo","_el$4","_tmpl$4"],"sources":["../src/TextField.tsx"],"sourcesContent":["/**\n * TextField component for solidaria-components\n *\n * A pre-wired headless text field that combines state + aria hooks.\n * Port of react-aria-components/src/TextField.tsx\n */\n\nimport {\n type JSX,\n type Context,\n createContext,\n useContext,\n createMemo,\n createSignal,\n createEffect,\n onCleanup,\n onMount,\n splitProps,\n untrack,\n} from \"solid-js\";\nimport {\n createTextField,\n createFocusRing,\n createHover,\n mergeProps,\n type AriaTextFieldProps,\n} from \"@proyecto-viviana/solidaria\";\nimport {\n createTextFieldState,\n VALID_VALIDITY_STATE,\n type ValidationResult,\n} from \"@proyecto-viviana/solid-stately\";\nimport { FormContext, type FormProps } from \"./Form\";\nimport { FieldErrorContext, type FieldErrorContextValue } from \"./FieldError\";\nimport {\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n Provider,\n} from \"./utils\";\nimport { TextContext } from \"./Text\";\n\nexport interface TextFieldRenderProps {\n /** Whether the text field is disabled. */\n isDisabled: boolean;\n /** Whether the value is invalid. */\n isInvalid: boolean;\n /** Whether the text field is read only. */\n isReadOnly: boolean;\n /** Whether the text field is required. */\n isRequired: boolean;\n /** Whether the text field is currently hovered with a mouse. */\n isHovered: boolean;\n /** Whether the text field is focused, either via a mouse or keyboard. */\n isFocused: boolean;\n /** Whether the text field is keyboard focused. */\n isFocusVisible: boolean;\n}\n\nexport interface TextFieldProps extends Omit<AriaTextFieldProps, \"children\">, SlotProps {\n /** The children of the component. A function may be provided to receive render props. */\n children?: RenderChildren<TextFieldRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<TextFieldRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<TextFieldRenderProps>;\n /** Custom renderer for the outer text field element. */\n render?: (\n props: JSX.HTMLAttributes<HTMLDivElement>,\n renderProps: TextFieldRenderProps,\n ) => JSX.Element;\n}\n\nexport interface TextFieldContextValue {\n labelProps?: JSX.LabelHTMLAttributes<HTMLLabelElement>;\n inputProps?: JSX.InputHTMLAttributes<HTMLInputElement>;\n descriptionProps?: JSX.HTMLAttributes<HTMLElement>;\n errorMessageProps?: JSX.HTMLAttributes<HTMLElement>;\n isInvalid?: boolean;\n slots?: Record<string, TextFieldProps>;\n inputId?: string;\n setInputId?: (id: string | undefined) => void;\n}\n\nexport const TextFieldContext = createContext<TextFieldContextValue | null>(null);\nexport const LabelContext = TextFieldContext;\nexport const InputContext = TextFieldContext;\nexport const TextAreaContext = TextFieldContext;\nexport const FieldInputContext = TextFieldContext;\n\nfunction withFormValidationBehavior(\n props: TextFieldProps,\n formContext: FormProps | null,\n): TextFieldProps {\n if (!formContext?.validationBehavior) {\n return props;\n }\n\n return new Proxy(props, {\n get(target, property, receiver) {\n const localValue = Reflect.get(target, property, receiver);\n if (property === \"validationBehavior\" && localValue === undefined) {\n return formContext.validationBehavior;\n }\n\n return localValue;\n },\n has(target, property) {\n return (\n Reflect.has(target, property) ||\n (property === \"validationBehavior\" && formContext.validationBehavior !== undefined)\n );\n },\n ownKeys(target) {\n const keys = new Set(Reflect.ownKeys(target));\n if (formContext.validationBehavior !== undefined) {\n keys.add(\"validationBehavior\");\n }\n\n return Array.from(keys);\n },\n getOwnPropertyDescriptor(target, property) {\n const descriptor = Reflect.getOwnPropertyDescriptor(target, property);\n if (descriptor) {\n return descriptor;\n }\n\n if (property === \"validationBehavior\" && formContext.validationBehavior !== undefined) {\n return {\n enumerable: true,\n configurable: true,\n get: () => formContext.validationBehavior,\n };\n }\n\n return undefined;\n },\n });\n}\n\nexport interface LabelProps extends JSX.LabelHTMLAttributes<HTMLLabelElement> {\n children?: JSX.Element;\n}\n\n/**\n * A label element that automatically wires up to the parent TextField context.\n * This enables the proper htmlFor/id relationship between label and input.\n */\nexport function Label(props: LabelProps): JSX.Element {\n const context = useContext(TextFieldContext);\n\n const localDOMProps = () => {\n const result: Record<string, unknown> = {};\n const propsRecord = props as Record<string, unknown>;\n\n for (const key in propsRecord) {\n if (key !== \"children\") {\n result[key] = propsRecord[key];\n }\n }\n return result;\n };\n\n // Merge context labelProps with local props (local props take precedence)\n const mergedProps = () => {\n const localProps = localDOMProps();\n if (context) {\n const { ref: _ref, ...contextLabelProps } = (context.labelProps ?? {}) as Record<\n string,\n unknown\n >;\n const merged = {\n ...contextLabelProps,\n ...(context.inputId ? { for: context.inputId } : {}),\n ...localProps,\n } as Record<string, unknown>;\n if (merged.class == null) {\n merged.class = \"solidaria-Label\";\n }\n return merged;\n }\n return localProps.class == null ? { ...localProps, class: \"solidaria-Label\" } : localProps;\n };\n\n return <label {...mergedProps()}>{props.children}</label>;\n}\n\nexport interface InputProps extends Omit<JSX.InputHTMLAttributes<HTMLInputElement>, \"children\"> {}\n\nfunction eventWithCurrentTarget<T extends HTMLElement>(event: Event, element: T): Event {\n return new Proxy(event, {\n get(target, property, receiver) {\n if (property === \"target\" || property === \"currentTarget\") {\n return element;\n }\n\n const value = Reflect.get(target, property, receiver);\n return typeof value === \"function\" ? value.bind(target) : value;\n },\n });\n}\n\nfunction clearDelegatedTextEntryHandlers(element: HTMLElement) {\n const delegatedElement = element as HTMLElement & {\n $$input?: unknown;\n $$change?: unknown;\n };\n delete delegatedElement.$$input;\n delete delegatedElement.$$change;\n}\n\n/**\n * An input element that automatically wires up to the parent TextField context.\n * This enables focus tracking, validation, and accessibility props to flow from\n * the TextField to the actual input element.\n */\nexport function Input(props: InputProps): JSX.Element {\n const context = useContext(TextFieldContext);\n let inputElement: HTMLInputElement | undefined;\n\n createEffect(() => {\n context?.setInputId?.(props.id);\n });\n\n onCleanup(() => {\n context?.setInputId?.(undefined);\n });\n\n // Merge context inputProps with local props (local props take precedence)\n const mergedProps = () => {\n if (context) {\n // Remove ref from context props to avoid conflicts\n const { ref: _ref, ...contextInputProps } = (context.inputProps ?? {}) as Record<\n string,\n unknown\n >;\n const merged = { ...contextInputProps, ...props } as Record<string, unknown>;\n if (merged.class == null) {\n merged.class = \"solidaria-Input\";\n }\n return merged;\n }\n return props.class == null ? { ...props, class: \"solidaria-Input\" } : props;\n };\n\n onMount(() => {\n const element = inputElement;\n if (!element) {\n return;\n }\n\n const inputHandler = (event: Event) => {\n const handler = mergedProps().onInput as\n | JSX.EventHandler<HTMLInputElement, InputEvent>\n | undefined;\n handler?.(\n eventWithCurrentTarget(event, element) as InputEvent & {\n currentTarget: HTMLInputElement;\n target: Element;\n },\n );\n clearDelegatedTextEntryHandlers(element);\n event.stopPropagation();\n };\n const changeHandler = (event: Event) => {\n const handler = mergedProps().onChange as\n | JSX.EventHandler<HTMLInputElement, Event>\n | undefined;\n handler?.(\n eventWithCurrentTarget(event, element) as Event & {\n currentTarget: HTMLInputElement;\n target: Element;\n },\n );\n clearDelegatedTextEntryHandlers(element);\n event.stopPropagation();\n };\n\n element.addEventListener(\"input\", inputHandler);\n element.addEventListener(\"change\", changeHandler);\n clearDelegatedTextEntryHandlers(element);\n onCleanup(() => {\n element.removeEventListener(\"input\", inputHandler);\n element.removeEventListener(\"change\", changeHandler);\n });\n });\n\n return (\n <input\n {...mergedProps()}\n ref={(element) => {\n inputElement = element;\n const ref = props.ref;\n if (typeof ref === \"function\") {\n ref(element);\n }\n }}\n />\n );\n}\n\nexport interface TextAreaProps extends Omit<\n JSX.TextareaHTMLAttributes<HTMLTextAreaElement>,\n \"children\"\n> {}\n\n/**\n * A textarea element that automatically wires up to the parent TextField context.\n * This enables focus tracking, validation, and accessibility props to flow from\n * the TextField to the actual textarea element.\n */\nexport function TextArea(props: TextAreaProps): JSX.Element {\n const context = useContext(TextFieldContext);\n let textAreaElement: HTMLTextAreaElement | undefined;\n\n createEffect(() => {\n context?.setInputId?.(props.id);\n });\n\n onCleanup(() => {\n context?.setInputId?.(undefined);\n });\n\n // Merge context inputProps with local props (local props take precedence)\n // Note: TextArea uses inputProps from context since it's an input variant\n const mergedProps = () => {\n if (context) {\n const {\n ref: _ref,\n type: _type,\n ...contextInputProps\n } = (context.inputProps ?? {}) as Record<string, unknown>;\n const merged = { ...contextInputProps, ...props } as Record<string, unknown>;\n if (merged.class == null) {\n merged.class = \"solidaria-TextArea\";\n }\n return merged;\n }\n return props.class == null ? { ...props, class: \"solidaria-TextArea\" } : props;\n };\n\n onMount(() => {\n const element = textAreaElement;\n if (!element) {\n return;\n }\n\n const inputHandler = (event: Event) => {\n const handler = mergedProps().onInput as\n | JSX.EventHandler<HTMLTextAreaElement, InputEvent>\n | undefined;\n handler?.(\n eventWithCurrentTarget(event, element) as InputEvent & {\n currentTarget: HTMLTextAreaElement;\n target: Element;\n },\n );\n clearDelegatedTextEntryHandlers(element);\n event.stopPropagation();\n };\n const changeHandler = (event: Event) => {\n const handler = mergedProps().onChange as\n | JSX.EventHandler<HTMLTextAreaElement, Event>\n | undefined;\n handler?.(\n eventWithCurrentTarget(event, element) as Event & {\n currentTarget: HTMLTextAreaElement;\n target: Element;\n },\n );\n clearDelegatedTextEntryHandlers(element);\n event.stopPropagation();\n };\n\n element.addEventListener(\"input\", inputHandler);\n element.addEventListener(\"change\", changeHandler);\n clearDelegatedTextEntryHandlers(element);\n onCleanup(() => {\n element.removeEventListener(\"input\", inputHandler);\n element.removeEventListener(\"change\", changeHandler);\n });\n });\n\n return (\n <textarea\n {...mergedProps()}\n ref={(element) => {\n textAreaElement = element;\n const ref = props.ref;\n if (typeof ref === \"function\") {\n ref(element);\n }\n }}\n />\n );\n}\n\n/**\n * A text field allows a user to enter a plain text value with a keyboard.\n *\n * This is a headless component that provides accessibility and state management.\n * Style it using the render props pattern or data attributes.\n *\n * @example\n * ```tsx\n * <TextField>\n * {({ isInvalid }) => (\n * <>\n * <Label>Email</Label>\n * <Input class={isInvalid ? 'border-red-500' : 'border-gray-300'} />\n * </>\n * )}\n * </TextField>\n * ```\n */\nexport function TextField(props: TextFieldProps): JSX.Element {\n const formContext = useContext(FormContext);\n const contextProps = useContext(TextFieldContext);\n const contextSlotProps = contextProps?.slots?.[props.slot ?? \"default\"];\n const contextBaseProps = createMemo<TextFieldProps>(() => {\n if (!contextProps) return {};\n const {\n labelProps: _labelProps,\n inputProps: _inputProps,\n descriptionProps: _descriptionProps,\n errorMessageProps: _errorMessageProps,\n isInvalid: _isInvalid,\n slots: _slots,\n setInputId: _setInputId,\n ...rest\n } = contextProps;\n return rest as TextFieldProps;\n });\n const baseProps = (\n contextProps ? mergeProps(contextBaseProps(), contextSlotProps ?? {}, props) : props\n ) as TextFieldProps;\n const mergedProps = withFormValidationBehavior(baseProps, formContext);\n\n const [local, ariaProps] = splitProps(mergedProps, [\n \"children\",\n \"class\",\n \"style\",\n \"render\",\n \"slot\",\n ]);\n\n // Use getters to ensure props are read lazily inside reactive contexts\n const state = createTextFieldState({\n get value() {\n return ariaProps.value;\n },\n get defaultValue() {\n return ariaProps.defaultValue;\n },\n get onChange() {\n return ariaProps.onChange;\n },\n });\n\n const inputAriaProps = createMemo(() => {\n const clean: Record<string, unknown> = {};\n for (const key in ariaProps as Record<string, unknown>) {\n if (!key.startsWith(\"data-\")) {\n clean[key] = (ariaProps as Record<string, unknown>)[key];\n }\n }\n return clean as typeof ariaProps;\n });\n\n const textFieldAria = createTextField(() => ({\n ...inputAriaProps(),\n value: state.value(),\n onChange: state.setValue,\n }));\n\n const { isFocused, isFocusVisible, focusProps } = createFocusRing();\n\n const { isHovered, hoverProps } = createHover({\n get isDisabled() {\n return ariaProps.isDisabled;\n },\n });\n const [inputIdOverride, setInputIdOverride] = createSignal<string | undefined>();\n\n const renderValues = createMemo<TextFieldRenderProps>(() => ({\n isDisabled: ariaProps.isDisabled || false,\n isInvalid: textFieldAria.isInvalid,\n isReadOnly: ariaProps.isReadOnly || false,\n isRequired: ariaProps.isRequired || false,\n isHovered: isHovered(),\n isFocused: isFocused(),\n isFocusVisible: isFocusVisible(),\n }));\n\n const renderProps = useRenderProps(\n {\n get children() {\n return local.children;\n },\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-TextField\",\n },\n renderValues,\n );\n const childRenderValues: TextFieldRenderProps = {\n get isDisabled() {\n return ariaProps.isDisabled || false;\n },\n get isInvalid() {\n return textFieldAria.isInvalid;\n },\n get isReadOnly() {\n return ariaProps.isReadOnly || false;\n },\n get isRequired() {\n return ariaProps.isRequired || false;\n },\n get isHovered() {\n return isHovered();\n },\n get isFocused() {\n return isFocused();\n },\n get isFocusVisible() {\n return isFocusVisible();\n },\n };\n\n const domProps = createMemo(() => {\n const filtered = filterDOMProps(ariaProps, { global: true, events: false });\n delete (filtered as Record<string, unknown>).id;\n return filtered;\n });\n\n const cleanHoverProps = () => {\n const { ref: _ref, ...rest } = hoverProps as Record<string, unknown>;\n return rest;\n };\n\n // Context value for sub-components.\n // Use property getters so sub-components always read the latest aria/focus state.\n const fieldValidation = createMemo<ValidationResult>(() => {\n const isInvalid = textFieldAria.isInvalid;\n const errorMessage = ariaProps.errorMessage;\n const validationErrors = isInvalid && typeof errorMessage === \"string\" ? [errorMessage] : [];\n\n return {\n isInvalid,\n validationErrors,\n validationDetails: isInvalid\n ? { ...VALID_VALIDITY_STATE, customError: true, valid: false }\n : VALID_VALIDITY_STATE,\n };\n });\n const fieldErrorContext: FieldErrorContextValue = {\n get validation() {\n return fieldValidation();\n },\n get errorMessageProps() {\n return textFieldAria.errorMessageProps as JSX.HTMLAttributes<HTMLElement>;\n },\n };\n const contextValue: TextFieldContextValue = {\n get labelProps() {\n return textFieldAria.labelProps as JSX.LabelHTMLAttributes<HTMLLabelElement>;\n },\n get inputProps() {\n return mergeProps(\n textFieldAria.inputProps as Record<string, unknown>,\n focusProps as Record<string, unknown>,\n ) as JSX.InputHTMLAttributes<HTMLInputElement>;\n },\n get descriptionProps() {\n return textFieldAria.descriptionProps as JSX.HTMLAttributes<HTMLElement>;\n },\n get errorMessageProps() {\n return textFieldAria.errorMessageProps as JSX.HTMLAttributes<HTMLElement>;\n },\n get isInvalid() {\n return textFieldAria.isInvalid;\n },\n // Deterministic at render (createTextField generates it via createUniqueId),\n // so the Label's `for` is stable across SSR + hydration. A signal set from an\n // onMount effect would flip undefined->id post-mount and re-execute the Label\n // template — crashing hydration if the re-run lands mid-hydration (dev).\n get inputId() {\n return inputIdOverride() ?? (textFieldAria.inputProps as { id?: string }).id;\n },\n setInputId(id: string | undefined) {\n setInputIdOverride(id);\n },\n };\n // Resolve the render-prop children ONCE (untracked). Re-invoking it on a\n // reactive update re-clones its templates; if that lands mid-hydration it\n // throws a Hydration Mismatch (worst in dev, where slow unbundled modules widen\n // the hydration window). The children carry their own fine-grained reactivity\n // (render-value getters + <Show>s), so they update without being re-created.\n const FieldChildren = () =>\n untrack(() => {\n const children = local.children;\n return typeof children === \"function\" ? children(childRenderValues) : children;\n });\n // Provide the description / errorMessage props as `TextContext` slots (mirrors\n // react-aria-components' TextField), so a `<Text slot=\"description\">` /\n // `<Text slot=\"errorMessage\">` child picks up the `id` its `aria-describedby`\n // references. Additive: existing consumers reading these off `TextFieldContext`\n // are unaffected.\n const textSlots = {\n slots: {\n get description() {\n return textFieldAria.descriptionProps as JSX.HTMLAttributes<HTMLElement>;\n },\n get errorMessage() {\n return textFieldAria.errorMessageProps as JSX.HTMLAttributes<HTMLElement>;\n },\n },\n };\n const FieldChildrenSlotted = () => (\n <Provider values={[[TextContext, textSlots]] as Array<[Context<unknown>, unknown]>}>\n <FieldChildren />\n </Provider>\n );\n const rootProps = () =>\n ({\n ...domProps(),\n ...cleanHoverProps(),\n class: renderProps.class(),\n style: renderProps.style(),\n slot: local.slot,\n \"data-disabled\": ariaProps.isDisabled || undefined,\n \"data-invalid\": textFieldAria.isInvalid || undefined,\n \"data-readonly\": ariaProps.isReadOnly || undefined,\n \"data-required\": ariaProps.isRequired || undefined,\n \"data-hovered\": isHovered() || undefined,\n \"data-focused\": isFocused() || undefined,\n \"data-focus-visible\": isFocusVisible() || undefined,\n }) as JSX.HTMLAttributes<HTMLDivElement>;\n const customRootProps = () =>\n ({\n ...rootProps(),\n children: <FieldChildrenSlotted />,\n }) as JSX.HTMLAttributes<HTMLDivElement>;\n\n return (\n <FieldErrorContext.Provider value={fieldErrorContext}>\n <TextFieldContext.Provider value={contextValue}>\n {local.render ? (\n local.render(customRootProps(), renderValues())\n ) : (\n <div {...rootProps()}>\n <FieldChildrenSlotted />\n </div>\n )}\n </TextFieldContext.Provider>\n </FieldErrorContext.Provider>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAuFA,MAAaiE,mBAAmB/D,cAA4C,IAAI;AAChF,MAAagE,eAAeD;AAC5B,MAAaE,eAAeF;AAC5B,MAAaG,kBAAkBH;AAC/B,MAAaI,oBAAoBJ;AAEjC,SAASK,2BACPzB,OACA0B,aACgB;CAChB,IAAI,CAACA,aAAaC,oBAChB,OAAO3B;CAGT,OAAO,IAAI4B,MAAM5B,OAAO;EACtB6B,IAAIC,QAAQC,UAAUC,UAAU;GAC9B,MAAMC,aAAaC,QAAQL,IAAIC,QAAQC,UAAUC,QAAQ;GACzD,IAAID,aAAa,wBAAwBE,eAAeE,KAAAA,GACtD,OAAOT,YAAYC;GAGrB,OAAOM;EACT;EACAG,IAAIN,QAAQC,UAAU;GACpB,OACEG,QAAQE,IAAIN,QAAQC,QAAQ,KAC3BA,aAAa,wBAAwBL,YAAYC,uBAAuBQ,KAAAA;EAE7E;EACAE,QAAQP,QAAQ;GACd,MAAMQ,OAAO,IAAIC,IAAIL,QAAQG,QAAQP,MAAM,CAAC;GAC5C,IAAIJ,YAAYC,uBAAuBQ,KAAAA,GACrCG,KAAKE,IAAI,oBAAoB;GAG/B,OAAOC,MAAMC,KAAKJ,IAAI;EACxB;EACAK,yBAAyBb,QAAQC,UAAU;GACzC,MAAMa,aAAaV,QAAQS,yBAAyBb,QAAQC,QAAQ;GACpE,IAAIa,YACF,OAAOA;GAGT,IAAIb,aAAa,wBAAwBL,YAAYC,uBAAuBQ,KAAAA,GAC1E,OAAO;IACLU,YAAY;IACZC,cAAc;IACdjB,WAAWH,YAAYC;GACzB;EAIJ;CACF,CAAC;AACH;;;;;AAUA,SAAgBqB,MAAMhD,OAAgC;CACpD,MAAMiD,UAAU3F,WAAW8D,gBAAgB;CAE3C,MAAM8B,sBAAsB;EAC1B,MAAMC,SAAkC,CAAC;EACzC,MAAMC,cAAcpD;EAEpB,KAAK,MAAMqD,OAAOD,aAChB,IAAIC,QAAQ,YACVF,OAAOE,OAAOD,YAAYC;EAG9B,OAAOF;CACT;CAGA,MAAMG,oBAAoB;EACxB,MAAMC,aAAaL,cAAc;EACjC,IAAID,SAAS;GACX,MAAM,EAAEO,KAAKC,MAAM,GAAGC,sBAAuBT,QAAQ3C,cAAc,CAAC;GAIpE,MAAMqD,SAAS;IACb,GAAGD;IACH,GAAIT,QAAQhC,UAAU,EAAE2C,KAAKX,QAAQhC,QAAQ,IAAI,CAAC;IAClD,GAAGsC;GACL;GACA,IAAII,OAAO9D,SAAS,MAClB8D,OAAO9D,QAAQ;GAEjB,OAAO8D;EACT;EACA,OAAOJ,WAAW1D,SAAS,OAAO;GAAE,GAAG0D;GAAY1D,OAAO;EAAkB,IAAI0D;CAClF;CAEA,cAAA;EAAA,IAAAM,OAAAC,eAAAC,MAAA;EAAAC,OAAAH,MAAAI,WAAkBX,WAAW,GAAA,OAAA,IAAA;EAAAY,OAAAL,YAAK7D,MAAMJ,QAAQ;EAAAuE,mBAAA;EAAA,OAAAN;CAAA,EAAA,CAAA;AAClD;AAIA,SAASQ,uBAA8CC,OAAcE,SAAmB;CACtF,OAAO,IAAI5C,MAAM0C,OAAO,EACtBzC,IAAIC,QAAQC,UAAUC,UAAU;EAC9B,IAAID,aAAa,YAAYA,aAAa,iBACxC,OAAOyC;EAGT,MAAME,QAAQxC,QAAQL,IAAIC,QAAQC,UAAUC,QAAQ;EACpD,OAAO,OAAO0C,UAAU,aAAaA,MAAMC,KAAK7C,MAAM,IAAI4C;CAC5D,EACF,CAAC;AACH;AAEA,SAASE,gCAAgCJ,SAAsB;CAC7D,MAAMK,mBAAmBL;CAIzB,OAAOK,iBAAiBC;CACxB,OAAOD,iBAAiBE;AAC1B;;;;;;AAOA,SAAgBC,MAAMhF,OAAgC;CACpD,MAAMiD,UAAU3F,WAAW8D,gBAAgB;CAC3C,IAAI6D;CAEJxH,mBAAmB;EACjBwF,SAAS/B,aAAalB,MAAMmB,EAAE;CAChC,CAAC;CAEDzD,gBAAgB;EACduF,SAAS/B,aAAaiB,KAAAA,CAAS;CACjC,CAAC;CAGD,MAAMmB,oBAAoB;EACxB,IAAIL,SAAS;GAEX,MAAM,EAAEO,KAAKC,MAAM,GAAGyB,sBAAuBjC,QAAQxC,cAAc,CAAC;GAIpE,MAAMkD,SAAS;IAAE,GAAGuB;IAAmB,GAAGlF;GAAM;GAChD,IAAI2D,OAAO9D,SAAS,MAClB8D,OAAO9D,QAAQ;GAEjB,OAAO8D;EACT;EACA,OAAO3D,MAAMH,SAAS,OAAO;GAAE,GAAGG;GAAOH,OAAO;EAAkB,IAAIG;CACxE;CAEArC,cAAc;EACZ,MAAM6G,UAAUS;EAChB,IAAI,CAACT,SACH;EAGF,MAAMW,gBAAgBb,UAAiB;GACrC,MAAMc,UAAU9B,YAAY,CAAC,CAAC+B;GAG9BD,UACEf,uBAAuBC,OAAOE,OAAO,CAIvC;GACAI,gCAAgCJ,OAAO;GACvCF,MAAMmB,gBAAgB;EACxB;EACA,MAAMC,iBAAiBpB,UAAiB;GACtC,MAAMc,UAAU9B,YAAY,CAAC,CAACqC;GAG9BP,UACEf,uBAAuBC,OAAOE,OAAO,CAIvC;GACAI,gCAAgCJ,OAAO;GACvCF,MAAMmB,gBAAgB;EACxB;EAEAjB,QAAQoB,iBAAiB,SAAST,YAAY;EAC9CX,QAAQoB,iBAAiB,UAAUF,aAAa;EAChDd,gCAAgCJ,OAAO;EACvC9G,gBAAgB;GACd8G,QAAQqB,oBAAoB,SAASV,YAAY;GACjDX,QAAQqB,oBAAoB,UAAUH,aAAa;EACrD,CAAC;CACH,CAAC;CAED,cAAA;EAAA,IAAAI,QAAAhC,eAAAiC,OAAA;EAAAC,KAGUxB,YAAY;GAChBS,eAAeT;GACf,MAAMhB,MAAMxD,MAAMwD;GAClB,IAAI,OAAOA,QAAQ,YACjBA,IAAIgB,OAAO;EAEf,GAACsB,KAAA;EAAA9B,OAAA8B,OAAA7B,WAPGX,WAAW,GAAA,OAAA,KAAA;EAAAa,mBAAA;EAAA,OAAA2B;CAAA,EAAA,CAAA;AAUrB;;;;;;AAYA,SAAgBM,SAASpG,OAAmC;CAC1D,MAAMiD,UAAU3F,WAAW8D,gBAAgB;CAC3C,IAAIiF;CAEJ5I,mBAAmB;EACjBwF,SAAS/B,aAAalB,MAAMmB,EAAE;CAChC,CAAC;CAEDzD,gBAAgB;EACduF,SAAS/B,aAAaiB,KAAAA,CAAS;CACjC,CAAC;CAID,MAAMmB,oBAAoB;EACxB,IAAIL,SAAS;GACX,MAAM,EACJO,KAAKC,MACL6C,MAAMC,OACN,GAAGrB,sBACAjC,QAAQxC,cAAc,CAAC;GAC5B,MAAMkD,SAAS;IAAE,GAAGuB;IAAmB,GAAGlF;GAAM;GAChD,IAAI2D,OAAO9D,SAAS,MAClB8D,OAAO9D,QAAQ;GAEjB,OAAO8D;EACT;EACA,OAAO3D,MAAMH,SAAS,OAAO;GAAE,GAAGG;GAAOH,OAAO;EAAqB,IAAIG;CAC3E;CAEArC,cAAc;EACZ,MAAM6G,UAAU6B;EAChB,IAAI,CAAC7B,SACH;EAGF,MAAMW,gBAAgBb,UAAiB;GACrC,MAAMc,UAAU9B,YAAY,CAAC,CAAC+B;GAG9BD,UACEf,uBAAuBC,OAAOE,OAAO,CAIvC;GACAI,gCAAgCJ,OAAO;GACvCF,MAAMmB,gBAAgB;EACxB;EACA,MAAMC,iBAAiBpB,UAAiB;GACtC,MAAMc,UAAU9B,YAAY,CAAC,CAACqC;GAG9BP,UACEf,uBAAuBC,OAAOE,OAAO,CAIvC;GACAI,gCAAgCJ,OAAO;GACvCF,MAAMmB,gBAAgB;EACxB;EAEAjB,QAAQoB,iBAAiB,SAAST,YAAY;EAC9CX,QAAQoB,iBAAiB,UAAUF,aAAa;EAChDd,gCAAgCJ,OAAO;EACvC9G,gBAAgB;GACd8G,QAAQqB,oBAAoB,SAASV,YAAY;GACjDX,QAAQqB,oBAAoB,UAAUH,aAAa;EACrD,CAAC;CACH,CAAC;CAED,cAAA;EAAA,IAAAc,QAAA1C,eAAA2C,OAAA;EAAAT,KAGUxB,YAAY;GAChB6B,kBAAkB7B;GAClB,MAAMhB,MAAMxD,MAAMwD;GAClB,IAAI,OAAOA,QAAQ,YACjBA,IAAIgB,OAAO;EAEf,GAACgC,KAAA;EAAAxC,OAAAwC,OAAAvC,WAPGX,WAAW,GAAA,OAAA,KAAA;EAAAa,mBAAA;EAAA,OAAAqC;CAAA,EAAA,CAAA;AAUrB;;;;;;;;;;;;;;;;;;;AAoBA,SAAgBE,UAAU1G,OAAoC;CAC5D,MAAM0B,cAAcpE,WAAWgB,WAAW;CAC1C,MAAMqI,eAAerJ,WAAW8D,gBAAgB;CAChD,MAAMwF,mBAAmBD,cAAc5F,QAAQf,MAAM6G,QAAQ;CAC7D,MAAMC,mBAAmBvJ,iBAAiC;EACxD,IAAI,CAACoJ,cAAc,OAAO,CAAC;EAC3B,MAAM,EACJrG,YAAYyG,aACZtG,YAAYuG,aACZpG,kBAAkBqG,mBAClBnG,mBAAmBoG,oBACnB9H,WAAW+H,YACXpG,OAAOqG,QACPlG,YAAYmG,aACZ,GAAGC,SACDX;EACJ,OAAOW;CACT,CAAC;CAMD,MAAM,CAACE,OAAOC,aAAa7J,WAFP6D,2BAFlBkF,eAAe1I,aAAW6I,iBAAiB,GAAGF,oBAAoB,CAAC,GAAG5G,KAAK,IAAIA,OAEvB0B,WAEpB4B,GAAa;EACjD;EACA;EACA;EACA;EACA;CAAM,CACP;CAGD,MAAMoE,QAAQvJ,qBAAqB;EACjC,IAAIuG,QAAQ;GACV,OAAO+C,UAAU/C;EACnB;EACA,IAAIiD,eAAe;GACjB,OAAOF,UAAUE;EACnB;EACA,IAAIhC,WAAW;GACb,OAAO8B,UAAU9B;EACnB;CACF,CAAC;CAED,MAAMiC,iBAAiBrK,iBAAiB;EACtC,MAAMsK,QAAiC,CAAC;EACxC,KAAK,MAAMxE,OAAOoE,WAChB,IAAI,CAACpE,IAAIyE,WAAW,OAAO,GACzBD,MAAMxE,OAAQoE,UAAsCpE;EAGxD,OAAOwE;CACT,CAAC;CAED,MAAME,gBAAgBjK,uBAAuB;EAC3C,GAAG8J,eAAe;EAClBlD,OAAOgD,MAAMhD,MAAM;EACnBiB,UAAU+B,MAAMM;CAClB,EAAE;CAEF,MAAM,EAAExI,WAAWC,gBAAgBwI,eAAelK,gBAAgB;CAElE,MAAM,EAAEwB,WAAW2I,eAAelK,YAAY,EAC5C,IAAImB,aAAa;EACf,OAAOsI,UAAUtI;CACnB,EACF,CAAC;CACD,MAAM,CAACgJ,iBAAiBC,sBAAsB5K,aAAiC;CAE/E,MAAM6K,eAAe9K,kBAAwC;EAC3D4B,YAAYsI,UAAUtI,cAAc;EACpCC,WAAW2I,cAAc3I;EACzBC,YAAYoI,UAAUpI,cAAc;EACpCC,YAAYmI,UAAUnI,cAAc;EACpCC,WAAWA,UAAU;EACrBC,WAAWA,UAAU;EACrBC,gBAAgBA,eAAe;CACjC,EAAE;CAEF,MAAMU,cAAcrB,eAClB;EACE,IAAIc,WAAW;GACb,OAAO4H,MAAM5H;EACf;EACAC,OAAO2H,MAAM3H;EACbC,OAAO0H,MAAM1H;EACbwI,kBAAkB;CACpB,GACAD,YACF;CACA,MAAME,oBAA0C;EAC9C,IAAIpJ,aAAa;GACf,OAAOsI,UAAUtI,cAAc;EACjC;EACA,IAAIC,YAAY;GACd,OAAO2I,cAAc3I;EACvB;EACA,IAAIC,aAAa;GACf,OAAOoI,UAAUpI,cAAc;EACjC;EACA,IAAIC,aAAa;GACf,OAAOmI,UAAUnI,cAAc;EACjC;EACA,IAAIC,YAAY;GACd,OAAOA,UAAU;EACnB;EACA,IAAIC,YAAY;GACd,OAAOA,UAAU;EACnB;EACA,IAAIC,iBAAiB;GACnB,OAAOA,eAAe;EACxB;CACF;CAEA,MAAM+I,WAAWjL,iBAAiB;EAChC,MAAMkL,WAAW1J,eAAe0I,WAAW;GAAEiB,QAAQ;GAAMC,QAAQ;EAAM,CAAC;EAC1E,OAAQF,SAAqCtH;EAC7C,OAAOsH;CACT,CAAC;CAED,MAAMG,wBAAwB;EAC5B,MAAM,EAAEpF,KAAKC,MAAM,GAAG6D,SAASY;EAC/B,OAAOZ;CACT;CAIA,MAAMuB,kBAAkBtL,iBAAmC;EACzD,MAAM6B,YAAY2I,cAAc3I;EAChC,MAAM0J,eAAerB,UAAUqB;EAG/B,OAAO;GACL1J;GACA2J,kBAJuB3J,aAAa,OAAO0J,iBAAiB,WAAW,CAACA,YAAY,IAAI,CAAA;GAKxFE,mBAAmB5J,YACf;IAAE,GAAGhB;IAAsB6K,aAAa;IAAMC,OAAO;GAAM,IAC3D9K;EACN;CACF,CAAC;CACD,MAAM+K,oBAA4C;EAChD,IAAIC,aAAa;GACf,OAAOP,gBAAgB;EACzB;EACA,IAAI/H,oBAAoB;GACtB,OAAOiH,cAAcjH;EACvB;CACF;CACA,MAAMuI,eAAsC;EAC1C,IAAI/I,aAAa;GACf,OAAOyH,cAAczH;EACvB;EACA,IAAIG,aAAa;GACf,OAAOxC,aACL8J,cAActH,YACdwH,UACF;EACF;EACA,IAAIrH,mBAAmB;GACrB,OAAOmH,cAAcnH;EACvB;EACA,IAAIE,oBAAoB;GACtB,OAAOiH,cAAcjH;EACvB;EACA,IAAI1B,YAAY;GACd,OAAO2I,cAAc3I;EACvB;EAKA,IAAI6B,UAAU;GACZ,OAAOkH,gBAAgB,KAAMJ,cAActH,WAA+BU;EAC5E;EACAD,WAAWC,IAAwB;GACjCiH,mBAAmBjH,EAAE;EACvB;CACF;CAMA,MAAMmI,sBACJzL,cAAc;EACZ,MAAM+B,WAAW4H,MAAM5H;EACvB,OAAO,OAAOA,aAAa,aAAaA,SAAS2I,iBAAiB,IAAI3I;CACxE,CAAC;CAMH,MAAM2J,YAAY,EAChBxI,OAAO;EACL,IAAIyI,cAAc;GAChB,OAAOzB,cAAcnH;EACvB;EACA,IAAIkI,eAAe;GACjB,OAAOf,cAAcjH;EACvB;CACF,EACF;CACA,MAAM2I,6BAAuBC,gBAC1B1K,UAAQ;EAAC2K,QAAQ,CAAC,CAAC1K,aAAasK,SAAS,CAAC;EAAuC,IAAA3J,WAAA;GAAA,OAAA8J,gBAC/EJ,eAAa,CAAA,CAAA;EAAA;CAAA,CAAA;CAGlB,MAAMM,mBACH;EACC,GAAGpB,SAAS;EACZ,GAAGI,gBAAgB;EACnB/I,OAAOM,YAAYN,MAAM;EACzBC,OAAOK,YAAYL,MAAM;EACzB+G,MAAMW,MAAMX;EACZ,iBAAiBY,UAAUtI,cAAcgD,KAAAA;EACzC,gBAAgB4F,cAAc3I,aAAa+C,KAAAA;EAC3C,iBAAiBsF,UAAUpI,cAAc8C,KAAAA;EACzC,iBAAiBsF,UAAUnI,cAAc6C,KAAAA;EACzC,gBAAgB5C,UAAU,KAAK4C,KAAAA;EAC/B,gBAAgB3C,UAAU,KAAK2C,KAAAA;EAC/B,sBAAsB1C,eAAe,KAAK0C,KAAAA;CAC5C;CACF,MAAM0H,yBACH;EACC,GAAGD,UAAU;EACbhK,UAAQ8J,gBAAGD,sBAAoB,CAAA,CAAA;CACjC;CAEF,OAAAC,gBACGlL,kBAAkBQ,UAAQ;EAAC0F,OAAOyE;EAAiB,IAAAvJ,WAAA;GAAA,OAAA8J,gBACjDtI,iBAAiBpC,UAAQ;IAAC0F,OAAO2E;IAAY,IAAAzJ,WAAA;KAAA,OAC3CkK,WAAA,CAAA,CAAAtC,MAAMzH,MAAM,CAAA,CAAA,IACXyH,MAAMzH,OAAO8J,gBAAgB,GAAGxB,aAAa,CAAC,WAAC;MAAA,IAAA0B,QAAAjG,eAAAkG,OAAA;MAAAhG,OAAA+F,OAAA9F,WAEtC2F,SAAS,GAAA,OAAA,IAAA;MAAA1F,OAAA6F,OAAAL,gBACfD,sBAAoB,CAAA,CAAA,CAAA;MAAAtF,mBAAA;MAAA,OAAA4F;KAAA,EAAA,CAAA;IAExB;GAAA,CAAA;EAAA;CAAA,CAAA;AAIT"}
|
|
1
|
+
{"version":3,"file":"TextField.js","names":["ref={(element) => {\n inputElement = element;\n assignRef(contextInputRef, element);\n assignRef(props.ref, element);\n }}","<input\n {...mergedProps()}\n ref={(element) => {\n inputElement = element;\n assignRef(contextInputRef, element);\n assignRef(props.ref, element);\n }}\n />","ref={(element) => {\n textAreaElement = element;\n assignRef(contextInputRef, element);\n assignRef(props.ref, element);\n }}","<textarea\n {...mergedProps()}\n ref={(element) => {\n textAreaElement = element;\n assignRef(contextInputRef, element);\n assignRef(props.ref, element);\n }}\n />","<Provider values={[[TextContext, textSlots]] as Array<[Context<unknown>, unknown]>}>\n <FieldChildren />\n </Provider>","values={[[TextContext, textSlots]] as Array<[Context<unknown>, unknown]>}","<FieldChildren />","<FieldChildrenSlotted />","<FieldErrorContext value={fieldErrorContext}>\n <LabelContext value={labelContextValue}>\n <TextFieldContext value={contextValue}>\n {local.render ? (\n local.render(customRootProps(), renderValues())\n ) : (\n <div {...rootProps()}>\n <FieldChildrenSlotted />\n </div>\n )}\n </TextFieldContext>\n </LabelContext>\n </FieldErrorContext>","value={fieldErrorContext}","<LabelContext value={labelContextValue}>\n <TextFieldContext value={contextValue}>\n {local.render ? (\n local.render(customRootProps(), renderValues())\n ) : (\n <div {...rootProps()}>\n <FieldChildrenSlotted />\n </div>\n )}\n </TextFieldContext>\n </LabelContext>","value={labelContextValue}","<TextFieldContext value={contextValue}>\n {local.render ? (\n local.render(customRootProps(), renderValues())\n ) : (\n <div {...rootProps()}>\n <FieldChildrenSlotted />\n </div>\n )}\n </TextFieldContext>","value={contextValue}","{local.render ? (\n local.render(customRootProps(), renderValues())\n ) : (\n <div {...rootProps()}>\n <FieldChildrenSlotted />\n </div>\n )}"],"sources":["../src/TextField.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/TextField.tsx\n\n/**\n * TextField component for solidaria-components\n *\n * A pre-wired headless text field that combines state + aria hooks.\n * Port of react-aria-components/src/TextField.tsx\n */\n\nimport {\n createContext,\n useContext,\n createMemo,\n createSignal,\n createEffect,\n onCleanup,\n onSettled,\n untrack,\n} from \"solid-js\";\nimport type { Context } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport {\n createTextField,\n createFocusRing,\n createHover,\n mergeProps,\n type AriaTextFieldProps,\n} from \"@proyecto-viviana/solidaria\";\nimport { createTextFieldState, type ValidationResult } from \"@proyecto-viviana/solid-stately\";\nimport { FormContext, resolveValidationBehavior } from \"./Form\";\nimport { FieldErrorContext, type FieldErrorContextValue } from \"./FieldError\";\nimport {\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n Provider,\n useSlot,\n dataAttr,\n} from \"./utils\";\nimport { TextContext } from \"./Text\";\nimport { LabelContext, type LabelProps } from \"./Label\";\nimport { assignRef, attrString, splitProps, type RefLike } from \"@proyecto-viviana/solidaria/utils\";\n\nexport interface TextFieldRenderProps {\n /** Whether the text field is disabled. */\n isDisabled: boolean;\n /** Whether the value is invalid. */\n isInvalid: boolean;\n /** Whether the text field is read only. */\n isReadOnly: boolean;\n /** Whether the text field is required. */\n isRequired: boolean;\n /** Whether the text field is currently hovered with a mouse. */\n isHovered: boolean;\n /** Whether the text field is focused, either via a mouse or keyboard. */\n isFocused: boolean;\n /** Whether the text field is keyboard focused. */\n isFocusVisible: boolean;\n}\n\nexport interface TextFieldProps extends Omit<AriaTextFieldProps, \"children\">, SlotProps {\n /** The children of the component. A function may be provided to receive render props. */\n children?: RenderChildren<TextFieldRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<TextFieldRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<TextFieldRenderProps>;\n /** Custom renderer for the outer text field element. */\n render?: (\n props: JSX.HTMLAttributes<HTMLDivElement>,\n renderProps: TextFieldRenderProps,\n ) => JSX.Element;\n}\n\nexport interface TextFieldContextValue {\n labelProps?: JSX.LabelHTMLAttributes<HTMLLabelElement>;\n inputProps?: JSX.InputHTMLAttributes<HTMLInputElement>;\n descriptionProps?: JSX.HTMLAttributes<HTMLElement>;\n errorMessageProps?: JSX.HTMLAttributes<HTMLElement>;\n isInvalid?: boolean;\n slots?: Record<string, TextFieldProps>;\n inputId?: string;\n setInputId?: (id: string | undefined) => void;\n}\n\nexport const TextFieldContext = createContext<TextFieldContextValue | null>(null);\nexport const InputContext = TextFieldContext;\nexport const TextAreaContext = TextFieldContext;\nexport const FieldInputContext = TextFieldContext;\n\nexport interface InputProps extends Omit<JSX.InputHTMLAttributes<HTMLInputElement>, \"children\"> {}\n\nfunction eventWithCurrentTarget<T extends HTMLElement>(event: Event, element: T): Event {\n return new Proxy(event, {\n get(target, property, receiver) {\n if (property === \"target\" || property === \"currentTarget\") {\n return element;\n }\n\n const value = Reflect.get(target, property, receiver);\n return typeof value === \"function\" ? value.bind(target) : value;\n },\n });\n}\n\nfunction clearDelegatedTextEntryHandlers(element: HTMLElement) {\n const delegatedElement = element as HTMLElement & {\n $$input?: unknown;\n $$change?: unknown;\n };\n delete delegatedElement.$$input;\n delete delegatedElement.$$change;\n}\n\n/**\n * An input element that automatically wires up to the parent TextField context.\n * This enables focus tracking, validation, and accessibility props to flow from\n * the TextField to the actual input element.\n */\nexport function Input(props: InputProps): JSX.Element {\n const context = useContext(TextFieldContext);\n let inputElement: HTMLInputElement | undefined;\n // Resolved here, in the component body, not in the ref callback below: Solid 2\n // applies element refs through `runWithOwner(null, …)`, so a `context.inputProps`\n // read from inside the callback runs with no owner. A styled register may put a\n // proxy on that context whose `inputProps` getter re-runs caller thunks (#545),\n // and anything ownerless those thunks reach throws.\n const contextInputRef = context?.inputProps?.ref as RefLike<HTMLInputElement>;\n\n createEffect(\n () => attrString(props.id),\n (id) => {\n context?.setInputId?.(id);\n },\n );\n\n onCleanup(() => {\n context?.setInputId?.(undefined);\n });\n\n // Merge context inputProps with local props (local props take precedence)\n const mergedProps = () => {\n if (context) {\n // Remove ref from context props to avoid conflicts\n const { ref: _ref, ...contextInputProps } = (context.inputProps ?? {}) as Record<\n string,\n unknown\n >;\n const merged = { ...contextInputProps, ...props } as Record<string, unknown>;\n if (merged.class == null) {\n merged.class = \"solidaria-Input\";\n }\n return merged;\n }\n return props.class == null ? { ...props, class: \"solidaria-Input\" } : props;\n };\n\n onSettled(() => {\n const element = inputElement;\n if (!element) {\n return;\n }\n\n const inputHandler = (event: Event) => {\n const handler = mergedProps().onInput as\n | JSX.EventHandler<HTMLInputElement, InputEvent>\n | undefined;\n handler?.(\n eventWithCurrentTarget(event, element) as InputEvent & {\n currentTarget: HTMLInputElement;\n target: Element;\n },\n );\n clearDelegatedTextEntryHandlers(element);\n event.stopPropagation();\n };\n const changeHandler = (event: Event) => {\n const handler = mergedProps().onChange as\n | JSX.EventHandler<HTMLInputElement, Event>\n | undefined;\n handler?.(\n eventWithCurrentTarget(event, element) as Event & {\n currentTarget: HTMLInputElement;\n target: Element;\n },\n );\n clearDelegatedTextEntryHandlers(element);\n event.stopPropagation();\n };\n\n element.addEventListener(\"input\", inputHandler);\n element.addEventListener(\"change\", changeHandler);\n clearDelegatedTextEntryHandlers(element);\n return () => {\n element.removeEventListener(\"input\", inputHandler);\n element.removeEventListener(\"change\", changeHandler);\n };\n });\n\n return (\n <input\n {...mergedProps()}\n ref={(element) => {\n inputElement = element;\n assignRef(contextInputRef, element);\n assignRef(props.ref, element);\n }}\n />\n );\n}\n\nexport interface TextAreaProps extends Omit<\n JSX.TextareaHTMLAttributes<HTMLTextAreaElement>,\n \"children\"\n> {}\n\n/**\n * A textarea element that automatically wires up to the parent TextField context.\n * This enables focus tracking, validation, and accessibility props to flow from\n * the TextField to the actual textarea element.\n */\nexport function TextArea(props: TextAreaProps): JSX.Element {\n const context = useContext(TextFieldContext);\n let textAreaElement: HTMLTextAreaElement | undefined;\n // Resolved in the component body, not in the ref callback: see `Input` above.\n const contextInputRef = context?.inputProps?.ref as RefLike<HTMLTextAreaElement>;\n\n createEffect(\n () => attrString(props.id),\n (id) => {\n context?.setInputId?.(id);\n },\n );\n\n onCleanup(() => {\n context?.setInputId?.(undefined);\n });\n\n // Merge context inputProps with local props (local props take precedence)\n // Note: TextArea uses inputProps from context since it's an input variant\n const mergedProps = () => {\n if (context) {\n const {\n ref: _ref,\n type: _type,\n ...contextInputProps\n } = (context.inputProps ?? {}) as Record<string, unknown>;\n const merged = { ...contextInputProps, ...props } as Record<string, unknown>;\n if (merged.class == null) {\n merged.class = \"solidaria-TextArea\";\n }\n return merged;\n }\n return props.class == null ? { ...props, class: \"solidaria-TextArea\" } : props;\n };\n\n onSettled(() => {\n const element = textAreaElement;\n if (!element) {\n return;\n }\n\n const inputHandler = (event: Event) => {\n const handler = mergedProps().onInput as\n | JSX.EventHandler<HTMLTextAreaElement, InputEvent>\n | undefined;\n handler?.(\n eventWithCurrentTarget(event, element) as InputEvent & {\n currentTarget: HTMLTextAreaElement;\n target: Element;\n },\n );\n clearDelegatedTextEntryHandlers(element);\n event.stopPropagation();\n };\n const changeHandler = (event: Event) => {\n const handler = mergedProps().onChange as\n | JSX.EventHandler<HTMLTextAreaElement, Event>\n | undefined;\n handler?.(\n eventWithCurrentTarget(event, element) as Event & {\n currentTarget: HTMLTextAreaElement;\n target: Element;\n },\n );\n clearDelegatedTextEntryHandlers(element);\n event.stopPropagation();\n };\n\n element.addEventListener(\"input\", inputHandler);\n element.addEventListener(\"change\", changeHandler);\n clearDelegatedTextEntryHandlers(element);\n return () => {\n element.removeEventListener(\"input\", inputHandler);\n element.removeEventListener(\"change\", changeHandler);\n };\n });\n\n return (\n <textarea\n {...mergedProps()}\n ref={(element) => {\n textAreaElement = element;\n assignRef(contextInputRef, element);\n assignRef(props.ref, element);\n }}\n />\n );\n}\n\n/**\n * A text field allows a user to enter a plain text value with a keyboard.\n *\n * This is a headless component that provides accessibility and state management.\n * Style it using the render props pattern or data attributes.\n *\n * @example\n * ```tsx\n * <TextField>\n * {({ isInvalid }) => (\n * <>\n * <Label>Email</Label>\n * <Input class={isInvalid ? 'border-red-500' : 'border-gray-300'} />\n * </>\n * )}\n * </TextField>\n * ```\n */\nexport function TextField(props: TextFieldProps): JSX.Element {\n const formContext = useContext(FormContext);\n const contextProps = useContext(TextFieldContext);\n const contextSlotProps =\n contextProps?.slots?.[typeof props.slot === \"string\" ? props.slot : \"default\"];\n const contextBaseProps = createMemo<TextFieldProps>(() => {\n if (!contextProps) return {};\n const {\n labelProps: _labelProps,\n inputProps: _inputProps,\n descriptionProps: _descriptionProps,\n errorMessageProps: _errorMessageProps,\n isInvalid: _isInvalid,\n slots: _slots,\n setInputId: _setInputId,\n ...rest\n } = contextProps;\n return rest as TextFieldProps;\n });\n const baseProps = (\n contextProps ? mergeProps(contextBaseProps(), contextSlotProps ?? {}, props) : props\n ) as TextFieldProps;\n const [local, ariaProps] = splitProps(baseProps, [\n \"children\",\n \"class\",\n \"style\",\n \"render\",\n \"slot\",\n ]);\n\n // Use getters to ensure props are read lazily inside reactive contexts\n const state = createTextFieldState({\n get value() {\n return ariaProps.value;\n },\n get defaultValue() {\n return ariaProps.defaultValue;\n },\n get onChange() {\n return ariaProps.onChange;\n },\n });\n\n const inputAriaProps = createMemo(() => {\n const clean: Record<string, unknown> = {};\n for (const key in ariaProps as Record<string, unknown>) {\n if (!key.startsWith(\"data-\")) {\n clean[key] = (ariaProps as Record<string, unknown>)[key];\n }\n }\n return clean as typeof ariaProps;\n });\n\n // RAC `TextField` reports whether a slotted `<Label>` actually mounted, and\n // `useLabel` only mints `labelProps`/`aria-labelledby` when it did\n // (`useLabel.ts:52`). Without this the canonical\n // `<TextField><Label/><Input/></TextField>` renders an input with no\n // accessible name.\n const [labelRef, hasLabel] = useSlot(!ariaProps[\"aria-label\"] && !ariaProps[\"aria-labelledby\"]);\n\n const textFieldAria = createTextField(() => ({\n ...inputAriaProps(),\n validationBehavior: resolveValidationBehavior(ariaProps.validationBehavior, formContext),\n label: hasLabel(),\n value: state.value(),\n onChange: state.setValue,\n }));\n\n const { isFocused, isFocusVisible, focusProps } = createFocusRing();\n\n const { isHovered, hoverProps } = createHover({\n get isDisabled() {\n return ariaProps.isDisabled;\n },\n });\n const [inputIdOverride, setInputIdOverride] = createSignal<string | undefined>();\n\n const renderValues = createMemo<TextFieldRenderProps>(() => ({\n isDisabled: ariaProps.isDisabled || false,\n isInvalid: textFieldAria.isInvalid,\n isReadOnly: ariaProps.isReadOnly || false,\n isRequired: ariaProps.isRequired || false,\n isHovered: isHovered(),\n isFocused: isFocused(),\n isFocusVisible: isFocusVisible(),\n }));\n\n const renderProps = useRenderProps(\n {\n get children() {\n return local.children;\n },\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-TextField\",\n },\n renderValues,\n );\n const childRenderValues: TextFieldRenderProps = {\n get isDisabled() {\n return ariaProps.isDisabled || false;\n },\n get isInvalid() {\n return textFieldAria.isInvalid;\n },\n get isReadOnly() {\n return ariaProps.isReadOnly || false;\n },\n get isRequired() {\n return ariaProps.isRequired || false;\n },\n get isHovered() {\n return isHovered();\n },\n get isFocused() {\n return isFocused();\n },\n get isFocusVisible() {\n return isFocusVisible();\n },\n };\n\n const domProps = createMemo(() => {\n const filtered = filterDOMProps(ariaProps, { global: true, events: false });\n delete (filtered as Record<string, unknown>).id;\n return filtered;\n });\n\n const cleanHoverProps = () => {\n const { ref: _ref, ...rest } = hoverProps as Record<string, unknown>;\n return rest;\n };\n\n // RAC TextField passes useTextField's `{isInvalid, validationErrors,\n // validationDetails}` into FieldErrorContext (`TextField.tsx:181`). The\n // `errorMessage` prop is omitted at that layer; keep it as a fallback so a\n // string errorMessage still fills FieldError's default children.\n const fieldValidation = createMemo<ValidationResult>(() => {\n const isInvalid = textFieldAria.isInvalid;\n const validationErrors = textFieldAria.validationErrors;\n const errorMessage = ariaProps.errorMessage;\n return {\n isInvalid,\n validationErrors:\n isInvalid && validationErrors.length === 0 && typeof errorMessage === \"string\"\n ? [errorMessage]\n : validationErrors,\n validationDetails: textFieldAria.validationDetails,\n };\n });\n const fieldErrorContext: FieldErrorContextValue = {\n get validation() {\n return fieldValidation();\n },\n get errorMessageProps() {\n return textFieldAria.errorMessageProps as JSX.HTMLAttributes<HTMLElement>;\n },\n };\n const contextValue: TextFieldContextValue = {\n get labelProps() {\n return textFieldAria.labelProps as JSX.LabelHTMLAttributes<HTMLLabelElement>;\n },\n get inputProps() {\n return mergeProps(\n textFieldAria.inputProps as Record<string, unknown>,\n focusProps as Record<string, unknown>,\n ) as JSX.InputHTMLAttributes<HTMLInputElement>;\n },\n get descriptionProps() {\n return textFieldAria.descriptionProps as JSX.HTMLAttributes<HTMLElement>;\n },\n get errorMessageProps() {\n return textFieldAria.errorMessageProps as JSX.HTMLAttributes<HTMLElement>;\n },\n get isInvalid() {\n return textFieldAria.isInvalid;\n },\n // Deterministic at render (createTextField generates it via createUniqueId),\n // so the Label's `for` is stable across SSR + hydration. A signal set from an\n // onMount effect would flip undefined->id post-mount and re-execute the Label\n // template — crashing hydration if the re-run lands mid-hydration (dev).\n get inputId() {\n return inputIdOverride() ?? (textFieldAria.inputProps as { id?: string }).id;\n },\n setInputId(id: string | undefined) {\n setInputIdOverride(id);\n },\n };\n const labelContextValue: LabelProps = {\n ref: labelRef,\n get id() {\n return (textFieldAria.labelProps as JSX.LabelHTMLAttributes<HTMLLabelElement>).id;\n },\n get htmlFor() {\n const labelProps = textFieldAria.labelProps as JSX.LabelHTMLAttributes<HTMLLabelElement> & {\n htmlFor?: string;\n for?: string;\n };\n return inputIdOverride() ?? labelProps.htmlFor ?? labelProps.for;\n },\n get for() {\n const labelProps = textFieldAria.labelProps as JSX.LabelHTMLAttributes<HTMLLabelElement> & {\n htmlFor?: string;\n for?: string;\n };\n return inputIdOverride() ?? labelProps.htmlFor ?? labelProps.for;\n },\n };\n // Resolve the render-prop children ONCE (untracked). Re-invoking it on a\n // reactive update re-clones its templates; if that lands mid-hydration it\n // throws a Hydration Mismatch (worst in dev, where slow unbundled modules widen\n // the hydration window). The children carry their own fine-grained reactivity\n // (render-value getters + <Show>s), so they update without being re-created.\n const FieldChildren = () =>\n untrack(() => {\n const children = local.children;\n return typeof children === \"function\" ? children(childRenderValues) : children;\n });\n // Provide the description / errorMessage props as `TextContext` slots (mirrors\n // react-aria-components' TextField), so a `<Text slot=\"description\">` /\n // `<Text slot=\"errorMessage\">` child picks up the `id` its `aria-describedby`\n // references. Additive: existing consumers reading these off `TextFieldContext`\n // are unaffected.\n const textSlots = {\n slots: {\n get description() {\n return textFieldAria.descriptionProps as JSX.HTMLAttributes<HTMLElement>;\n },\n get errorMessage() {\n return textFieldAria.errorMessageProps as JSX.HTMLAttributes<HTMLElement>;\n },\n },\n };\n const FieldChildrenSlotted = () => (\n <Provider values={[[TextContext, textSlots]] as Array<[Context<unknown>, unknown]>}>\n <FieldChildren />\n </Provider>\n );\n const rootProps = () =>\n ({\n ...domProps(),\n ...cleanHoverProps(),\n class: renderProps.class(),\n style: renderProps.style(),\n slot: local.slot,\n \"data-disabled\": dataAttr(!!ariaProps.isDisabled),\n \"data-invalid\": dataAttr(!!textFieldAria.isInvalid),\n \"data-readonly\": dataAttr(!!ariaProps.isReadOnly),\n \"data-required\": dataAttr(!!ariaProps.isRequired),\n \"data-hovered\": dataAttr(isHovered()),\n \"data-focused\": dataAttr(isFocused()),\n \"data-focus-visible\": dataAttr(isFocusVisible()),\n }) as JSX.HTMLAttributes<HTMLDivElement>;\n const customRootProps = () =>\n ({\n ...rootProps(),\n children: <FieldChildrenSlotted />,\n }) as JSX.HTMLAttributes<HTMLDivElement>;\n\n return (\n <FieldErrorContext value={fieldErrorContext}>\n <LabelContext value={labelContextValue}>\n <TextFieldContext value={contextValue}>\n {local.render ? (\n local.render(customRootProps(), renderValues())\n ) : (\n <div {...rootProps()}>\n <FieldChildrenSlotted />\n </div>\n )}\n </TextFieldContext>\n </LabelContext>\n </FieldErrorContext>\n );\n}\n\nexport { Label, LabelContext, type LabelProps } from \"./Label\";\n"],"mappings":"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"}
|