@proyecto-viviana/solidaria-components 0.3.1 → 0.4.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/dist/ActionBar.js +184 -0
- package/dist/ActionBar.js.map +1 -0
- package/dist/ActionBar.jsx +128 -0
- package/dist/ActionBar.jsx.map +1 -0
- package/dist/ActionGroup.js +179 -0
- package/dist/ActionGroup.js.map +1 -0
- package/dist/ActionGroup.jsx +129 -0
- package/dist/ActionGroup.jsx.map +1 -0
- package/dist/Alert.js +111 -0
- package/dist/Alert.js.map +1 -0
- package/dist/Alert.jsx +82 -0
- package/dist/Alert.jsx.map +1 -0
- package/dist/Autocomplete.js +130 -0
- package/dist/Autocomplete.js.map +1 -0
- package/dist/Autocomplete.jsx +116 -0
- package/dist/Autocomplete.jsx.map +1 -0
- package/dist/Breadcrumbs.d.ts.map +1 -1
- package/dist/Breadcrumbs.js +334 -0
- package/dist/Breadcrumbs.js.map +1 -0
- package/dist/Breadcrumbs.jsx +266 -0
- package/dist/Breadcrumbs.jsx.map +1 -0
- package/dist/Button.d.ts.map +1 -1
- package/dist/Button.js +348 -0
- package/dist/Button.js.map +1 -0
- package/dist/Button.jsx +314 -0
- package/dist/Button.jsx.map +1 -0
- package/dist/Calendar.d.ts +4 -4
- package/dist/Calendar.d.ts.map +1 -1
- package/dist/Calendar.js +538 -0
- package/dist/Calendar.js.map +1 -0
- package/dist/Calendar.jsx +333 -0
- package/dist/Calendar.jsx.map +1 -0
- package/dist/CalendarPicker.d.ts +33 -0
- package/dist/CalendarPicker.d.ts.map +1 -0
- package/dist/CalendarPicker.js +44 -0
- package/dist/CalendarPicker.js.map +1 -0
- package/dist/CalendarPicker.jsx +44 -0
- package/dist/CalendarPicker.jsx.map +1 -0
- package/dist/Checkbox.d.ts +83 -4
- package/dist/Checkbox.d.ts.map +1 -1
- package/dist/Checkbox.js +923 -0
- package/dist/Checkbox.js.map +1 -0
- package/dist/Checkbox.jsx +707 -0
- package/dist/Checkbox.jsx.map +1 -0
- package/dist/Collection.d.ts.map +1 -1
- package/dist/Collection.js +202 -0
- package/dist/Collection.js.map +1 -0
- package/dist/Collection.jsx +152 -0
- package/dist/Collection.jsx.map +1 -0
- package/dist/Color.d.ts.map +1 -1
- package/dist/Color.js +1720 -0
- package/dist/Color.js.map +1 -0
- package/dist/Color.jsx +1344 -0
- package/dist/Color.jsx.map +1 -0
- package/dist/ColorEditor.js +208 -0
- package/dist/ColorEditor.js.map +1 -0
- package/dist/ColorEditor.jsx +120 -0
- package/dist/ColorEditor.jsx.map +1 -0
- package/dist/ComboBox.d.ts +8 -5
- package/dist/ComboBox.d.ts.map +1 -1
- package/dist/ComboBox.js +992 -0
- package/dist/ComboBox.js.map +1 -0
- package/dist/ComboBox.jsx +714 -0
- package/dist/ComboBox.jsx.map +1 -0
- package/dist/ContextualHelpTrigger.js +146 -0
- package/dist/ContextualHelpTrigger.js.map +1 -0
- package/dist/ContextualHelpTrigger.jsx +109 -0
- package/dist/ContextualHelpTrigger.jsx.map +1 -0
- package/dist/DateField.d.ts +3 -3
- package/dist/DateField.d.ts.map +1 -1
- package/dist/DateField.js +4 -0
- package/dist/DateField.jsx +4 -0
- package/dist/DateField2.js +499 -0
- package/dist/DateField2.js.map +1 -0
- package/dist/DateField2.jsx +317 -0
- package/dist/DateField2.jsx.map +1 -0
- package/dist/DatePicker.d.ts +4 -4
- package/dist/DatePicker.d.ts.map +1 -1
- package/dist/DatePicker.js +991 -0
- package/dist/DatePicker.js.map +1 -0
- package/dist/DatePicker.jsx +682 -0
- package/dist/DatePicker.jsx.map +1 -0
- package/dist/Dialog.d.ts.map +1 -1
- package/dist/Dialog.js +337 -0
- package/dist/Dialog.js.map +1 -0
- package/dist/Dialog.jsx +192 -0
- package/dist/Dialog.jsx.map +1 -0
- package/dist/Disclosure.d.ts.map +1 -1
- package/dist/Disclosure.js +328 -0
- package/dist/Disclosure.js.map +1 -0
- package/dist/Disclosure.jsx +230 -0
- package/dist/Disclosure.jsx.map +1 -0
- package/dist/DragAndDrop.d.ts.map +1 -1
- package/dist/DragAndDrop.js +176 -0
- package/dist/DragAndDrop.js.map +1 -0
- package/dist/DragAndDrop.jsx +160 -0
- package/dist/DragAndDrop.jsx.map +1 -0
- package/dist/DropZone.d.ts.map +1 -1
- package/dist/DropZone.js +189 -0
- package/dist/DropZone.js.map +1 -0
- package/dist/DropZone.jsx +144 -0
- package/dist/DropZone.jsx.map +1 -0
- package/dist/FieldError.js +66 -0
- package/dist/FieldError.js.map +1 -0
- package/dist/FieldError.jsx +47 -0
- package/dist/FieldError.jsx.map +1 -0
- package/dist/FileTrigger.js +79 -0
- package/dist/FileTrigger.js.map +1 -0
- package/dist/FileTrigger.jsx +49 -0
- package/dist/FileTrigger.jsx.map +1 -0
- package/dist/Focusable.js +70 -0
- package/dist/Focusable.js.map +1 -0
- package/dist/Focusable.jsx +69 -0
- package/dist/Focusable.jsx.map +1 -0
- package/dist/Form.js +99 -0
- package/dist/Form.js.map +1 -0
- package/dist/Form.jsx +73 -0
- package/dist/Form.jsx.map +1 -0
- package/dist/GridList.d.ts +34 -2
- package/dist/GridList.d.ts.map +1 -1
- package/dist/GridList.js +723 -0
- package/dist/GridList.js.map +1 -0
- package/dist/GridList.jsx +552 -0
- package/dist/GridList.jsx.map +1 -0
- package/dist/HiddenTimeInput.js +104 -0
- package/dist/HiddenTimeInput.js.map +1 -0
- package/dist/HiddenTimeInput.jsx +69 -0
- package/dist/HiddenTimeInput.jsx.map +1 -0
- package/dist/Icon.d.ts.map +1 -1
- package/dist/Icon.js +127 -0
- package/dist/Icon.js.map +1 -0
- package/dist/Icon.jsx +72 -0
- package/dist/Icon.jsx.map +1 -0
- package/dist/Keyboard.js +30 -0
- package/dist/Keyboard.js.map +1 -0
- package/dist/Keyboard.jsx +24 -0
- package/dist/Keyboard.jsx.map +1 -0
- package/dist/Landmark.js +134 -0
- package/dist/Landmark.js.map +1 -0
- package/dist/Landmark.jsx +118 -0
- package/dist/Landmark.jsx.map +1 -0
- package/dist/Link.d.ts.map +1 -1
- package/dist/Link.js +219 -0
- package/dist/Link.js.map +1 -0
- package/dist/Link.jsx +189 -0
- package/dist/Link.jsx.map +1 -0
- package/dist/ListBox.d.ts.map +1 -1
- package/dist/ListBox.js +670 -0
- package/dist/ListBox.js.map +1 -0
- package/dist/ListBox.jsx +508 -0
- package/dist/ListBox.jsx.map +1 -0
- package/dist/Menu.d.ts +27 -9
- package/dist/Menu.d.ts.map +1 -1
- package/dist/Menu.js +1254 -0
- package/dist/Menu.js.map +1 -0
- package/dist/Menu.jsx +1042 -0
- package/dist/Menu.jsx.map +1 -0
- package/dist/Meter.d.ts.map +1 -1
- package/dist/Meter.js +123 -0
- package/dist/Meter.js.map +1 -0
- package/dist/Meter.jsx +107 -0
- package/dist/Meter.jsx.map +1 -0
- package/dist/Modal.d.ts.map +1 -1
- package/dist/Modal.js +380 -0
- package/dist/Modal.js.map +1 -0
- package/dist/Modal.jsx +314 -0
- package/dist/Modal.jsx.map +1 -0
- package/dist/NumberField.d.ts +3 -3
- package/dist/NumberField.d.ts.map +1 -1
- package/dist/NumberField.js +573 -0
- package/dist/NumberField.js.map +1 -0
- package/dist/NumberField.jsx +443 -0
- package/dist/NumberField.jsx.map +1 -0
- package/dist/Popover.d.ts +10 -2
- package/dist/Popover.d.ts.map +1 -1
- package/dist/Popover.js +464 -0
- package/dist/Popover.js.map +1 -0
- package/dist/Popover.jsx +333 -0
- package/dist/Popover.jsx.map +1 -0
- package/dist/Pressable.js +69 -0
- package/dist/Pressable.js.map +1 -0
- package/dist/Pressable.jsx +68 -0
- package/dist/Pressable.jsx.map +1 -0
- package/dist/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar.js +130 -0
- package/dist/ProgressBar.js.map +1 -0
- package/dist/ProgressBar.jsx +114 -0
- package/dist/ProgressBar.jsx.map +1 -0
- package/dist/RadioGroup.d.ts +82 -4
- package/dist/RadioGroup.d.ts.map +1 -1
- package/dist/RadioGroup.js +931 -0
- package/dist/RadioGroup.js.map +1 -0
- package/dist/RadioGroup.jsx +681 -0
- package/dist/RadioGroup.jsx.map +1 -0
- package/dist/RangeCalendar.d.ts.map +1 -1
- package/dist/RangeCalendar.js +410 -0
- package/dist/RangeCalendar.js.map +1 -0
- package/dist/RangeCalendar.jsx +253 -0
- package/dist/RangeCalendar.jsx.map +1 -0
- package/dist/RouterProvider.js +118 -0
- package/dist/RouterProvider.js.map +1 -0
- package/dist/RouterProvider.jsx +112 -0
- package/dist/RouterProvider.jsx.map +1 -0
- package/dist/SearchField.d.ts +2 -2
- package/dist/SearchField.d.ts.map +1 -1
- package/dist/SearchField.js +643 -0
- package/dist/SearchField.js.map +1 -0
- package/dist/SearchField.jsx +526 -0
- package/dist/SearchField.jsx.map +1 -0
- package/dist/Select.d.ts.map +1 -1
- package/dist/Select.js +1031 -0
- package/dist/Select.js.map +1 -0
- package/dist/Select.jsx +744 -0
- package/dist/Select.jsx.map +1 -0
- package/dist/SelectionIndicator.d.ts.map +1 -1
- package/dist/SelectionIndicator.js +86 -0
- package/dist/SelectionIndicator.js.map +1 -0
- package/dist/SelectionIndicator.jsx +50 -0
- package/dist/SelectionIndicator.jsx.map +1 -0
- package/dist/Separator.js +97 -0
- package/dist/Separator.js.map +1 -0
- package/dist/Separator.jsx +85 -0
- package/dist/Separator.jsx.map +1 -0
- package/dist/SharedElementTransition.d.ts.map +1 -1
- package/dist/SharedElementTransition.js +165 -0
- package/dist/SharedElementTransition.js.map +1 -0
- package/dist/SharedElementTransition.jsx +138 -0
- package/dist/SharedElementTransition.jsx.map +1 -0
- package/dist/Slider.d.ts +33 -1
- package/dist/Slider.d.ts.map +1 -1
- package/dist/Slider.js +515 -0
- package/dist/Slider.js.map +1 -0
- package/dist/Slider.jsx +403 -0
- package/dist/Slider.jsx.map +1 -0
- package/dist/StepList.js +198 -0
- package/dist/StepList.js.map +1 -0
- package/dist/StepList.jsx +141 -0
- package/dist/StepList.jsx.map +1 -0
- package/dist/Switch.d.ts +65 -2
- package/dist/Switch.d.ts.map +1 -1
- package/dist/Switch.js +534 -0
- package/dist/Switch.js.map +1 -0
- package/dist/Switch.jsx +393 -0
- package/dist/Switch.jsx.map +1 -0
- package/dist/Table.d.ts +48 -0
- package/dist/Table.d.ts.map +1 -1
- package/dist/Table.js +1759 -0
- package/dist/Table.js.map +1 -0
- package/dist/Table.jsx +1348 -0
- package/dist/Table.jsx.map +1 -0
- package/dist/Tabs.d.ts +0 -4
- package/dist/Tabs.d.ts.map +1 -1
- package/dist/Tabs.js +595 -0
- package/dist/Tabs.js.map +1 -0
- package/dist/Tabs.jsx +367 -0
- package/dist/Tabs.jsx.map +1 -0
- package/dist/TagGroup.d.ts.map +1 -1
- package/dist/TagGroup.js +378 -0
- package/dist/TagGroup.js.map +1 -0
- package/dist/TagGroup.jsx +270 -0
- package/dist/TagGroup.jsx.map +1 -0
- package/dist/Text.d.ts +18 -6
- package/dist/Text.d.ts.map +1 -1
- package/dist/Text.js +42 -0
- package/dist/Text.js.map +1 -0
- package/dist/Text.jsx +35 -0
- package/dist/Text.jsx.map +1 -0
- package/dist/TextField.d.ts +7 -6
- package/dist/TextField.d.ts.map +1 -1
- package/dist/TextField.js +436 -0
- package/dist/TextField.js.map +1 -0
- package/dist/TextField.jsx +403 -0
- package/dist/TextField.jsx.map +1 -0
- package/dist/TimeField.d.ts +3 -3
- package/dist/TimeField.d.ts.map +1 -1
- package/dist/TimeField.js +372 -0
- package/dist/TimeField.js.map +1 -0
- package/dist/TimeField.jsx +224 -0
- package/dist/TimeField.jsx.map +1 -0
- package/dist/Toast.d.ts +14 -0
- package/dist/Toast.d.ts.map +1 -1
- package/dist/Toast.js +551 -0
- package/dist/Toast.js.map +1 -0
- package/dist/Toast.jsx +361 -0
- package/dist/Toast.jsx.map +1 -0
- package/dist/ToggleButton.d.ts.map +1 -1
- package/dist/ToggleButton.js +123 -0
- package/dist/ToggleButton.js.map +1 -0
- package/dist/ToggleButton.jsx +88 -0
- package/dist/ToggleButton.jsx.map +1 -0
- package/dist/ToggleButtonGroup.d.ts.map +1 -1
- package/dist/ToggleButtonGroup.js +114 -0
- package/dist/ToggleButtonGroup.js.map +1 -0
- package/dist/ToggleButtonGroup.jsx +85 -0
- package/dist/ToggleButtonGroup.jsx.map +1 -0
- package/dist/Toolbar.js +112 -0
- package/dist/Toolbar.js.map +1 -0
- package/dist/Toolbar.jsx +92 -0
- package/dist/Toolbar.jsx.map +1 -0
- package/dist/Tooltip.d.ts.map +1 -1
- package/dist/Tooltip.js +539 -0
- package/dist/Tooltip.js.map +1 -0
- package/dist/Tooltip.jsx +465 -0
- package/dist/Tooltip.jsx.map +1 -0
- package/dist/Tree.d.ts +14 -2
- package/dist/Tree.d.ts.map +1 -1
- package/dist/Tree.js +1424 -0
- package/dist/Tree.js.map +1 -0
- package/dist/Tree.jsx +1172 -0
- package/dist/Tree.jsx.map +1 -0
- package/dist/Virtualizer.d.ts +16 -2
- package/dist/Virtualizer.d.ts.map +1 -1
- package/dist/Virtualizer.js +2 -0
- package/dist/Virtualizer.jsx +2 -0
- package/dist/Virtualizer2.js +751 -0
- package/dist/Virtualizer2.js.map +1 -0
- package/dist/Virtualizer2.jsx +730 -0
- package/dist/Virtualizer2.jsx.map +1 -0
- package/dist/VirtualizerLayouts.d.ts +18 -0
- package/dist/VirtualizerLayouts.d.ts.map +1 -1
- package/dist/VisuallyHidden.js +42 -0
- package/dist/VisuallyHidden.js.map +1 -0
- package/dist/VisuallyHidden.jsx +35 -0
- package/dist/VisuallyHidden.jsx.map +1 -0
- package/dist/contexts.js +33 -0
- package/dist/contexts.js.map +1 -0
- package/dist/contexts.jsx +33 -0
- package/dist/contexts.jsx.map +1 -0
- package/dist/index.d.ts +7 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +70 -23711
- package/dist/index.jsx +70 -18116
- package/dist/useDragAndDrop.js +2 -0
- package/dist/useDragAndDrop.jsx +2 -0
- package/dist/useDragAndDrop2.js +395 -0
- package/dist/useDragAndDrop2.js.map +1 -0
- package/dist/useDragAndDrop2.jsx +395 -0
- package/dist/useDragAndDrop2.jsx.map +1 -0
- package/dist/utils.d.ts +83 -11
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +285 -0
- package/dist/utils.js.map +1 -0
- package/dist/utils.jsx +277 -0
- package/dist/utils.jsx.map +1 -0
- package/dist/virtualizer/Layout.js +144 -0
- package/dist/virtualizer/Layout.js.map +1 -0
- package/dist/virtualizer/Layout.jsx +144 -0
- package/dist/virtualizer/Layout.jsx.map +1 -0
- package/package.json +401 -4
- package/src/Breadcrumbs.tsx +3 -1
- package/src/Button.tsx +90 -23
- package/src/Calendar.tsx +27 -10
- package/src/CalendarPicker.tsx +73 -0
- package/src/Checkbox.tsx +539 -3
- package/src/Collection.tsx +9 -3
- package/src/Color.tsx +42 -14
- package/src/ComboBox.tsx +126 -14
- package/src/DateField.tsx +20 -2
- package/src/DatePicker.tsx +117 -10
- package/src/Dialog.tsx +13 -5
- package/src/Disclosure.tsx +3 -1
- package/src/DragAndDrop.tsx +3 -1
- package/src/DropZone.tsx +3 -1
- package/src/GridList.tsx +125 -24
- package/src/Icon.tsx +3 -1
- package/src/Link.tsx +3 -1
- package/src/ListBox.tsx +31 -4
- package/src/Menu.tsx +298 -131
- package/src/Meter.tsx +3 -1
- package/src/Modal.tsx +100 -52
- package/src/NumberField.tsx +73 -10
- package/src/Popover.tsx +49 -11
- package/src/ProgressBar.tsx +3 -1
- package/src/RadioGroup.tsx +468 -4
- package/src/RangeCalendar.tsx +3 -1
- package/src/SearchField.tsx +27 -3
- package/src/Select.tsx +22 -7
- package/src/SelectionIndicator.tsx +3 -1
- package/src/SharedElementTransition.tsx +3 -1
- package/src/Slider.tsx +159 -13
- package/src/Switch.tsx +395 -2
- package/src/Table.tsx +409 -95
- package/src/Tabs.tsx +16 -45
- package/src/TagGroup.tsx +4 -1
- package/src/Text.tsx +31 -10
- package/src/TextField.tsx +73 -10
- package/src/TimeField.tsx +20 -2
- package/src/Toast.tsx +79 -14
- package/src/ToggleButton.tsx +3 -1
- package/src/ToggleButtonGroup.tsx +3 -1
- package/src/Tooltip.tsx +55 -8
- package/src/Tree.tsx +77 -9
- package/src/Virtualizer.tsx +180 -31
- package/src/VirtualizerLayouts.ts +45 -10
- package/src/index.ts +50 -0
- package/src/utils.tsx +243 -27
- package/dist/index.js.map +0 -1
- package/dist/index.jsx.map +0 -1
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { filterDOMProps, useRenderProps } from "./utils.js";
|
|
2
|
+
import { getNextElement, insert, mergeProps, runHydrationEvents, spread, template } from "solid-js/web";
|
|
3
|
+
import { createContext, createMemo, mergeProps as mergeProps$1, splitProps, useContext } from "solid-js";
|
|
4
|
+
import { createProgressBar } from "@proyecto-viviana/solidaria";
|
|
5
|
+
//#region src/ProgressBar.tsx
|
|
6
|
+
/**
|
|
7
|
+
* ProgressBar component for solidaria-components
|
|
8
|
+
*
|
|
9
|
+
* Pre-wired headless progress bar component that combines aria hooks.
|
|
10
|
+
* Port of react-aria-components/src/ProgressBar.tsx
|
|
11
|
+
*/
|
|
12
|
+
var _tmpl$ = /*#__PURE__*/ template(`<div>`);
|
|
13
|
+
const ProgressBarContext = createContext(null);
|
|
14
|
+
function clamp(value, min, max) {
|
|
15
|
+
return Math.min(Math.max(value, min), max);
|
|
16
|
+
}
|
|
17
|
+
function getSafeRange(min, max) {
|
|
18
|
+
const range = max - min;
|
|
19
|
+
return Number.isFinite(range) && range > 0 ? range : 1;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Progress bars show either determinate or indeterminate progress of an operation
|
|
23
|
+
* over time.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```tsx
|
|
27
|
+
* <ProgressBar value={50}>
|
|
28
|
+
* {({ percentage, valueText }) => (
|
|
29
|
+
* <>
|
|
30
|
+
* <Label>Loading...</Label>
|
|
31
|
+
* <span>{valueText}</span>
|
|
32
|
+
* <div class="bar" style={{ width: `${percentage}%` }} />
|
|
33
|
+
* </>
|
|
34
|
+
* )}
|
|
35
|
+
* </ProgressBar>
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
function ProgressBar(props) {
|
|
39
|
+
const contextProps = useContext(ProgressBarContext);
|
|
40
|
+
const [local, ariaProps] = splitProps(contextProps ? mergeProps$1(contextProps, props) : props, [
|
|
41
|
+
"children",
|
|
42
|
+
"class",
|
|
43
|
+
"style",
|
|
44
|
+
"slot"
|
|
45
|
+
]);
|
|
46
|
+
const value = () => ariaProps.value ?? 0;
|
|
47
|
+
const minValue = () => ariaProps.minValue ?? 0;
|
|
48
|
+
const maxValue = () => ariaProps.maxValue ?? 100;
|
|
49
|
+
const isIndeterminate = () => ariaProps.isIndeterminate ?? false;
|
|
50
|
+
const progressAria = createProgressBar({
|
|
51
|
+
get id() {
|
|
52
|
+
return ariaProps.id;
|
|
53
|
+
},
|
|
54
|
+
get value() {
|
|
55
|
+
return ariaProps.value;
|
|
56
|
+
},
|
|
57
|
+
get minValue() {
|
|
58
|
+
return ariaProps.minValue;
|
|
59
|
+
},
|
|
60
|
+
get maxValue() {
|
|
61
|
+
return ariaProps.maxValue;
|
|
62
|
+
},
|
|
63
|
+
get valueLabel() {
|
|
64
|
+
return ariaProps.valueLabel;
|
|
65
|
+
},
|
|
66
|
+
get isIndeterminate() {
|
|
67
|
+
return ariaProps.isIndeterminate;
|
|
68
|
+
},
|
|
69
|
+
get formatOptions() {
|
|
70
|
+
return ariaProps.formatOptions;
|
|
71
|
+
},
|
|
72
|
+
get label() {
|
|
73
|
+
return ariaProps.label;
|
|
74
|
+
},
|
|
75
|
+
get "aria-label"() {
|
|
76
|
+
return ariaProps["aria-label"];
|
|
77
|
+
},
|
|
78
|
+
get "aria-labelledby"() {
|
|
79
|
+
return ariaProps["aria-labelledby"];
|
|
80
|
+
},
|
|
81
|
+
get "aria-describedby"() {
|
|
82
|
+
return ariaProps["aria-describedby"];
|
|
83
|
+
},
|
|
84
|
+
get "aria-details"() {
|
|
85
|
+
return ariaProps["aria-details"];
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
const percentage = createMemo(() => {
|
|
89
|
+
if (isIndeterminate()) return;
|
|
90
|
+
return (clamp(value(), minValue(), maxValue()) - minValue()) / getSafeRange(minValue(), maxValue()) * 100;
|
|
91
|
+
});
|
|
92
|
+
const valueText = createMemo(() => {
|
|
93
|
+
return progressAria.progressBarProps["aria-valuetext"];
|
|
94
|
+
});
|
|
95
|
+
const renderValues = createMemo(() => ({
|
|
96
|
+
percentage: percentage(),
|
|
97
|
+
valueText: valueText(),
|
|
98
|
+
isIndeterminate: isIndeterminate()
|
|
99
|
+
}));
|
|
100
|
+
const renderProps = useRenderProps({
|
|
101
|
+
get children() {
|
|
102
|
+
return props.children;
|
|
103
|
+
},
|
|
104
|
+
class: local.class,
|
|
105
|
+
style: local.style,
|
|
106
|
+
defaultClassName: "solidaria-ProgressBar"
|
|
107
|
+
}, renderValues);
|
|
108
|
+
const domProps = createMemo(() => filterDOMProps(ariaProps, { global: true }));
|
|
109
|
+
return (() => {
|
|
110
|
+
var _el$ = getNextElement(_tmpl$);
|
|
111
|
+
spread(_el$, mergeProps(domProps, () => progressAria.progressBarProps, {
|
|
112
|
+
get ["class"]() {
|
|
113
|
+
return renderProps.class();
|
|
114
|
+
},
|
|
115
|
+
get style() {
|
|
116
|
+
return renderProps.style();
|
|
117
|
+
},
|
|
118
|
+
get slot() {
|
|
119
|
+
return local.slot;
|
|
120
|
+
}
|
|
121
|
+
}), false, true);
|
|
122
|
+
insert(_el$, () => renderProps.renderChildren());
|
|
123
|
+
runHydrationEvents();
|
|
124
|
+
return _el$;
|
|
125
|
+
})();
|
|
126
|
+
}
|
|
127
|
+
//#endregion
|
|
128
|
+
export { ProgressBar, ProgressBarContext };
|
|
129
|
+
|
|
130
|
+
//# sourceMappingURL=ProgressBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressBar.js","names":["JSX","createContext","createMemo","mergeProps","splitProps","useContext","createProgressBar","AriaProgressBarProps","RenderChildren","ClassNameOrFunction","StyleOrFunction","SlotProps","useRenderProps","filterDOMProps","ProgressBarRenderProps","percentage","valueText","isIndeterminate","ProgressBarProps","id","children","class","style","ProgressBarContext","clamp","value","min","max","Math","getSafeRange","range","Number","isFinite","ProgressBar","props","Element","contextProps","mergedProps","local","ariaProps","minValue","maxValue","progressAria","valueLabel","formatOptions","label","aria-label","aria-labelledby","aria-describedby","aria-details","undefined","clampedValue","progressBarProps","renderValues","renderProps","defaultClassName","domProps","global","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","slot","_$insert","renderChildren","_$runHydrationEvents"],"sources":["../src/ProgressBar.tsx"],"sourcesContent":["/**\n * ProgressBar component for solidaria-components\n *\n * Pre-wired headless progress bar component that combines aria hooks.\n * Port of react-aria-components/src/ProgressBar.tsx\n */\n\nimport { type JSX, createContext, createMemo, mergeProps, splitProps, useContext } from \"solid-js\";\nimport { createProgressBar, type AriaProgressBarProps } from \"@proyecto-viviana/solidaria\";\nimport {\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n} from \"./utils\";\n\nexport interface ProgressBarRenderProps {\n /** The value as a percentage between the minimum and maximum (0-100). */\n percentage: number | undefined;\n /** A formatted version of the value. */\n valueText: string | undefined;\n /** Whether the progress bar is indeterminate. */\n isIndeterminate: boolean;\n}\n\nexport interface ProgressBarProps extends AriaProgressBarProps, SlotProps {\n /** The element id. */\n id?: string;\n /** The children of the component. A function may be provided to receive render props. */\n children?: RenderChildren<ProgressBarRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<ProgressBarRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<ProgressBarRenderProps>;\n}\n\nexport const ProgressBarContext = createContext<ProgressBarProps | null>(null);\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.min(Math.max(value, min), max);\n}\n\nfunction getSafeRange(min: number, max: number): number {\n const range = max - min;\n return Number.isFinite(range) && range > 0 ? range : 1;\n}\n\n/**\n * Progress bars show either determinate or indeterminate progress of an operation\n * over time.\n *\n * @example\n * ```tsx\n * <ProgressBar value={50}>\n * {({ percentage, valueText }) => (\n * <>\n * <Label>Loading...</Label>\n * <span>{valueText}</span>\n * <div class=\"bar\" style={{ width: `${percentage}%` }} />\n * </>\n * )}\n * </ProgressBar>\n * ```\n */\nexport function ProgressBar(props: ProgressBarProps): JSX.Element {\n const contextProps = useContext(ProgressBarContext);\n const mergedProps = contextProps ? mergeProps(contextProps, props) : props;\n const [local, ariaProps] = splitProps(mergedProps, [\"children\", \"class\", \"style\", \"slot\"]);\n\n const value = () => ariaProps.value ?? 0;\n const minValue = () => ariaProps.minValue ?? 0;\n const maxValue = () => ariaProps.maxValue ?? 100;\n const isIndeterminate = () => ariaProps.isIndeterminate ?? false;\n\n const progressAria = createProgressBar({\n get id() {\n return ariaProps.id;\n },\n get value() {\n return ariaProps.value;\n },\n get minValue() {\n return ariaProps.minValue;\n },\n get maxValue() {\n return ariaProps.maxValue;\n },\n get valueLabel() {\n return ariaProps.valueLabel;\n },\n get isIndeterminate() {\n return ariaProps.isIndeterminate;\n },\n get formatOptions() {\n return ariaProps.formatOptions;\n },\n get label() {\n return ariaProps.label;\n },\n get \"aria-label\"() {\n return ariaProps[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return ariaProps[\"aria-labelledby\"];\n },\n get \"aria-describedby\"() {\n return ariaProps[\"aria-describedby\"];\n },\n get \"aria-details\"() {\n return ariaProps[\"aria-details\"];\n },\n });\n\n const percentage = createMemo(() => {\n if (isIndeterminate()) {\n return undefined;\n }\n const clampedValue = clamp(value(), minValue(), maxValue());\n return ((clampedValue - minValue()) / getSafeRange(minValue(), maxValue())) * 100;\n });\n\n const valueText = createMemo(() => {\n return progressAria.progressBarProps[\"aria-valuetext\"] as string | undefined;\n });\n\n const renderValues = createMemo<ProgressBarRenderProps>(() => ({\n percentage: percentage(),\n valueText: valueText(),\n isIndeterminate: isIndeterminate(),\n }));\n\n const renderProps = useRenderProps(\n {\n get children() {\n return props.children;\n },\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-ProgressBar\",\n },\n renderValues,\n );\n\n const domProps = createMemo(() => filterDOMProps(ariaProps, { global: true }));\n\n return (\n <div\n {...domProps()}\n {...progressAria.progressBarProps}\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n >\n {renderProps.renderChildren()}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;AAsCA,MAAauB,qBAAqBtB,cAAuC,IAAI;AAE7E,SAASuB,MAAMC,OAAeC,KAAaC,KAAqB;CAC9D,OAAOC,KAAKF,IAAIE,KAAKD,IAAIF,OAAOC,GAAG,GAAGC,GAAG;AAC3C;AAEA,SAASE,aAAaH,KAAaC,KAAqB;CACtD,MAAMG,QAAQH,MAAMD;CACpB,OAAOK,OAAOC,SAASF,KAAK,KAAKA,QAAQ,IAAIA,QAAQ;AACvD;;;;;;;;;;;;;;;;;;AAmBA,SAAgBG,YAAYC,OAAsC;CAChE,MAAME,eAAe/B,WAAWkB,kBAAkB;CAElD,MAAM,CAACe,OAAOC,aAAanC,WADPgC,eAAejC,aAAWiC,cAAcF,KAAK,IAAIA,OAClB;EAAC;EAAY;EAAS;EAAS;CAAM,CAAC;CAEzF,MAAMT,cAAcc,UAAUd,SAAS;CACvC,MAAMe,iBAAiBD,UAAUC,YAAY;CAC7C,MAAMC,iBAAiBF,UAAUE,YAAY;CAC7C,MAAMxB,wBAAwBsB,UAAUtB,mBAAmB;CAE3D,MAAMyB,eAAepC,kBAAkB;EACrC,IAAIa,KAAK;GACP,OAAOoB,UAAUpB;EACnB;EACA,IAAIM,QAAQ;GACV,OAAOc,UAAUd;EACnB;EACA,IAAIe,WAAW;GACb,OAAOD,UAAUC;EACnB;EACA,IAAIC,WAAW;GACb,OAAOF,UAAUE;EACnB;EACA,IAAIE,aAAa;GACf,OAAOJ,UAAUI;EACnB;EACA,IAAI1B,kBAAkB;GACpB,OAAOsB,UAAUtB;EACnB;EACA,IAAI2B,gBAAgB;GAClB,OAAOL,UAAUK;EACnB;EACA,IAAIC,QAAQ;GACV,OAAON,UAAUM;EACnB;EACA,IAAI,eAAe;GACjB,OAAON,UAAU;EACnB;EACA,IAAI,oBAAoB;GACtB,OAAOA,UAAU;EACnB;EACA,IAAI,qBAAqB;GACvB,OAAOA,UAAU;EACnB;EACA,IAAI,iBAAiB;GACnB,OAAOA,UAAU;EACnB;CACF,CAAC;CAED,MAAMxB,aAAab,iBAAiB;EAClC,IAAIe,gBAAgB,GAClB;EAGF,QADqBO,MAAMC,MAAM,GAAGe,SAAS,GAAGC,SAAS,CAChDU,IAAeX,SAAS,KAAKX,aAAaW,SAAS,GAAGC,SAAS,CAAC,IAAK;CAChF,CAAC;CAED,MAAMzB,YAAYd,iBAAiB;EACjC,OAAOwC,aAAaU,iBAAiB;CACvC,CAAC;CAED,MAAMC,eAAenD,kBAA0C;EAC7Da,YAAYA,WAAW;EACvBC,WAAWA,UAAU;EACrBC,iBAAiBA,gBAAgB;CACnC,EAAE;CAEF,MAAMqC,cAAc1C,eAClB;EACE,IAAIQ,WAAW;GACb,OAAOc,MAAMd;EACf;EACAC,OAAOiB,MAAMjB;EACbC,OAAOgB,MAAMhB;EACbiC,kBAAkB;CACpB,GACAF,YACF;CAEA,MAAMG,WAAWtD,iBAAiBW,eAAe0B,WAAW,EAAEkB,QAAQ,KAAK,CAAC,CAAC;CAE7E,cAAA;EAAA,IAAAC,OAAAC,eAAAC,MAAA;EAAAC,OAAAH,MAAAI,WAEQN,gBACAd,aAAaU,kBAAgB;GAAA,KAAA,WAAA;IAAA,OAC1BE,YAAYjC,MAAM;GAAC;GAAA,IAC1BC,QAAK;IAAA,OAAEgC,YAAYhC,MAAM;GAAC;GAAA,IAC1ByC,OAAI;IAAA,OAAEzB,MAAMyB;GAAI;EAAA,CAAA,GAAA,OAAA,IAAA;EAAAC,OAAAN,YAEfJ,YAAYW,eAAe,CAAC;EAAAC,mBAAA;EAAA,OAAAR;CAAA,EAAA,CAAA;AAGnC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { filterDOMProps, useRenderProps } from "./utils.jsx";
|
|
2
|
+
import { createContext, createMemo, mergeProps, splitProps, useContext } from "solid-js";
|
|
3
|
+
import { createProgressBar } from "@proyecto-viviana/solidaria";
|
|
4
|
+
//#region src/ProgressBar.tsx
|
|
5
|
+
/**
|
|
6
|
+
* ProgressBar component for solidaria-components
|
|
7
|
+
*
|
|
8
|
+
* Pre-wired headless progress bar component that combines aria hooks.
|
|
9
|
+
* Port of react-aria-components/src/ProgressBar.tsx
|
|
10
|
+
*/
|
|
11
|
+
const ProgressBarContext = createContext(null);
|
|
12
|
+
function clamp(value, min, max) {
|
|
13
|
+
return Math.min(Math.max(value, min), max);
|
|
14
|
+
}
|
|
15
|
+
function getSafeRange(min, max) {
|
|
16
|
+
const range = max - min;
|
|
17
|
+
return Number.isFinite(range) && range > 0 ? range : 1;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Progress bars show either determinate or indeterminate progress of an operation
|
|
21
|
+
* over time.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* <ProgressBar value={50}>
|
|
26
|
+
* {({ percentage, valueText }) => (
|
|
27
|
+
* <>
|
|
28
|
+
* <Label>Loading...</Label>
|
|
29
|
+
* <span>{valueText}</span>
|
|
30
|
+
* <div class="bar" style={{ width: `${percentage}%` }} />
|
|
31
|
+
* </>
|
|
32
|
+
* )}
|
|
33
|
+
* </ProgressBar>
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
function ProgressBar(props) {
|
|
37
|
+
const contextProps = useContext(ProgressBarContext);
|
|
38
|
+
const [local, ariaProps] = splitProps(contextProps ? mergeProps(contextProps, props) : props, [
|
|
39
|
+
"children",
|
|
40
|
+
"class",
|
|
41
|
+
"style",
|
|
42
|
+
"slot"
|
|
43
|
+
]);
|
|
44
|
+
const value = () => ariaProps.value ?? 0;
|
|
45
|
+
const minValue = () => ariaProps.minValue ?? 0;
|
|
46
|
+
const maxValue = () => ariaProps.maxValue ?? 100;
|
|
47
|
+
const isIndeterminate = () => ariaProps.isIndeterminate ?? false;
|
|
48
|
+
const progressAria = createProgressBar({
|
|
49
|
+
get id() {
|
|
50
|
+
return ariaProps.id;
|
|
51
|
+
},
|
|
52
|
+
get value() {
|
|
53
|
+
return ariaProps.value;
|
|
54
|
+
},
|
|
55
|
+
get minValue() {
|
|
56
|
+
return ariaProps.minValue;
|
|
57
|
+
},
|
|
58
|
+
get maxValue() {
|
|
59
|
+
return ariaProps.maxValue;
|
|
60
|
+
},
|
|
61
|
+
get valueLabel() {
|
|
62
|
+
return ariaProps.valueLabel;
|
|
63
|
+
},
|
|
64
|
+
get isIndeterminate() {
|
|
65
|
+
return ariaProps.isIndeterminate;
|
|
66
|
+
},
|
|
67
|
+
get formatOptions() {
|
|
68
|
+
return ariaProps.formatOptions;
|
|
69
|
+
},
|
|
70
|
+
get label() {
|
|
71
|
+
return ariaProps.label;
|
|
72
|
+
},
|
|
73
|
+
get "aria-label"() {
|
|
74
|
+
return ariaProps["aria-label"];
|
|
75
|
+
},
|
|
76
|
+
get "aria-labelledby"() {
|
|
77
|
+
return ariaProps["aria-labelledby"];
|
|
78
|
+
},
|
|
79
|
+
get "aria-describedby"() {
|
|
80
|
+
return ariaProps["aria-describedby"];
|
|
81
|
+
},
|
|
82
|
+
get "aria-details"() {
|
|
83
|
+
return ariaProps["aria-details"];
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
const percentage = createMemo(() => {
|
|
87
|
+
if (isIndeterminate()) return;
|
|
88
|
+
return (clamp(value(), minValue(), maxValue()) - minValue()) / getSafeRange(minValue(), maxValue()) * 100;
|
|
89
|
+
});
|
|
90
|
+
const valueText = createMemo(() => {
|
|
91
|
+
return progressAria.progressBarProps["aria-valuetext"];
|
|
92
|
+
});
|
|
93
|
+
const renderValues = createMemo(() => ({
|
|
94
|
+
percentage: percentage(),
|
|
95
|
+
valueText: valueText(),
|
|
96
|
+
isIndeterminate: isIndeterminate()
|
|
97
|
+
}));
|
|
98
|
+
const renderProps = useRenderProps({
|
|
99
|
+
get children() {
|
|
100
|
+
return props.children;
|
|
101
|
+
},
|
|
102
|
+
class: local.class,
|
|
103
|
+
style: local.style,
|
|
104
|
+
defaultClassName: "solidaria-ProgressBar"
|
|
105
|
+
}, renderValues);
|
|
106
|
+
const domProps = createMemo(() => filterDOMProps(ariaProps, { global: true }));
|
|
107
|
+
return <div {...domProps()} {...progressAria.progressBarProps} class={renderProps.class()} style={renderProps.style()} slot={local.slot}>
|
|
108
|
+
{renderProps.renderChildren()}
|
|
109
|
+
</div>;
|
|
110
|
+
}
|
|
111
|
+
//#endregion
|
|
112
|
+
export { ProgressBar, ProgressBarContext };
|
|
113
|
+
|
|
114
|
+
//# sourceMappingURL=ProgressBar.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressBar.jsx","names":[],"sources":["../src/ProgressBar.tsx"],"sourcesContent":["/**\n * ProgressBar component for solidaria-components\n *\n * Pre-wired headless progress bar component that combines aria hooks.\n * Port of react-aria-components/src/ProgressBar.tsx\n */\n\nimport { type JSX, createContext, createMemo, mergeProps, splitProps, useContext } from \"solid-js\";\nimport { createProgressBar, type AriaProgressBarProps } from \"@proyecto-viviana/solidaria\";\nimport {\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n} from \"./utils\";\n\nexport interface ProgressBarRenderProps {\n /** The value as a percentage between the minimum and maximum (0-100). */\n percentage: number | undefined;\n /** A formatted version of the value. */\n valueText: string | undefined;\n /** Whether the progress bar is indeterminate. */\n isIndeterminate: boolean;\n}\n\nexport interface ProgressBarProps extends AriaProgressBarProps, SlotProps {\n /** The element id. */\n id?: string;\n /** The children of the component. A function may be provided to receive render props. */\n children?: RenderChildren<ProgressBarRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<ProgressBarRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<ProgressBarRenderProps>;\n}\n\nexport const ProgressBarContext = createContext<ProgressBarProps | null>(null);\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.min(Math.max(value, min), max);\n}\n\nfunction getSafeRange(min: number, max: number): number {\n const range = max - min;\n return Number.isFinite(range) && range > 0 ? range : 1;\n}\n\n/**\n * Progress bars show either determinate or indeterminate progress of an operation\n * over time.\n *\n * @example\n * ```tsx\n * <ProgressBar value={50}>\n * {({ percentage, valueText }) => (\n * <>\n * <Label>Loading...</Label>\n * <span>{valueText}</span>\n * <div class=\"bar\" style={{ width: `${percentage}%` }} />\n * </>\n * )}\n * </ProgressBar>\n * ```\n */\nexport function ProgressBar(props: ProgressBarProps): JSX.Element {\n const contextProps = useContext(ProgressBarContext);\n const mergedProps = contextProps ? mergeProps(contextProps, props) : props;\n const [local, ariaProps] = splitProps(mergedProps, [\"children\", \"class\", \"style\", \"slot\"]);\n\n const value = () => ariaProps.value ?? 0;\n const minValue = () => ariaProps.minValue ?? 0;\n const maxValue = () => ariaProps.maxValue ?? 100;\n const isIndeterminate = () => ariaProps.isIndeterminate ?? false;\n\n const progressAria = createProgressBar({\n get id() {\n return ariaProps.id;\n },\n get value() {\n return ariaProps.value;\n },\n get minValue() {\n return ariaProps.minValue;\n },\n get maxValue() {\n return ariaProps.maxValue;\n },\n get valueLabel() {\n return ariaProps.valueLabel;\n },\n get isIndeterminate() {\n return ariaProps.isIndeterminate;\n },\n get formatOptions() {\n return ariaProps.formatOptions;\n },\n get label() {\n return ariaProps.label;\n },\n get \"aria-label\"() {\n return ariaProps[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return ariaProps[\"aria-labelledby\"];\n },\n get \"aria-describedby\"() {\n return ariaProps[\"aria-describedby\"];\n },\n get \"aria-details\"() {\n return ariaProps[\"aria-details\"];\n },\n });\n\n const percentage = createMemo(() => {\n if (isIndeterminate()) {\n return undefined;\n }\n const clampedValue = clamp(value(), minValue(), maxValue());\n return ((clampedValue - minValue()) / getSafeRange(minValue(), maxValue())) * 100;\n });\n\n const valueText = createMemo(() => {\n return progressAria.progressBarProps[\"aria-valuetext\"] as string | undefined;\n });\n\n const renderValues = createMemo<ProgressBarRenderProps>(() => ({\n percentage: percentage(),\n valueText: valueText(),\n isIndeterminate: isIndeterminate(),\n }));\n\n const renderProps = useRenderProps(\n {\n get children() {\n return props.children;\n },\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-ProgressBar\",\n },\n renderValues,\n );\n\n const domProps = createMemo(() => filterDOMProps(ariaProps, { global: true }));\n\n return (\n <div\n {...domProps()}\n {...progressAria.progressBarProps}\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n >\n {renderProps.renderChildren()}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;AAsCA,MAAa,qBAAqB,cAAuC,IAAI;AAE7E,SAAS,MAAM,OAAe,KAAa,KAAqB;CAC9D,OAAO,KAAK,IAAI,KAAK,IAAI,OAAO,GAAG,GAAG,GAAG;AAC3C;AAEA,SAAS,aAAa,KAAa,KAAqB;CACtD,MAAM,QAAQ,MAAM;CACpB,OAAO,OAAO,SAAS,KAAK,KAAK,QAAQ,IAAI,QAAQ;AACvD;;;;;;;;;;;;;;;;;;AAmBA,SAAgB,YAAY,OAAsC;CAChE,MAAM,eAAe,WAAW,kBAAkB;CAElD,MAAM,CAAC,OAAO,aAAa,WADP,eAAe,WAAW,cAAc,KAAK,IAAI,OAClB;EAAC;EAAY;EAAS;EAAS;CAAM,CAAC;CAEzF,MAAM,cAAc,UAAU,SAAS;CACvC,MAAM,iBAAiB,UAAU,YAAY;CAC7C,MAAM,iBAAiB,UAAU,YAAY;CAC7C,MAAM,wBAAwB,UAAU,mBAAmB;CAE3D,MAAM,eAAe,kBAAkB;EACrC,IAAI,KAAK;GACP,OAAO,UAAU;EACnB;EACA,IAAI,QAAQ;GACV,OAAO,UAAU;EACnB;EACA,IAAI,WAAW;GACb,OAAO,UAAU;EACnB;EACA,IAAI,WAAW;GACb,OAAO,UAAU;EACnB;EACA,IAAI,aAAa;GACf,OAAO,UAAU;EACnB;EACA,IAAI,kBAAkB;GACpB,OAAO,UAAU;EACnB;EACA,IAAI,gBAAgB;GAClB,OAAO,UAAU;EACnB;EACA,IAAI,QAAQ;GACV,OAAO,UAAU;EACnB;EACA,IAAI,eAAe;GACjB,OAAO,UAAU;EACnB;EACA,IAAI,oBAAoB;GACtB,OAAO,UAAU;EACnB;EACA,IAAI,qBAAqB;GACvB,OAAO,UAAU;EACnB;EACA,IAAI,iBAAiB;GACnB,OAAO,UAAU;EACnB;CACF,CAAC;CAED,MAAM,aAAa,iBAAiB;EAClC,IAAI,gBAAgB,GAClB;EAGF,QADqB,MAAM,MAAM,GAAG,SAAS,GAAG,SAAS,CACrC,IAAI,SAAS,KAAK,aAAa,SAAS,GAAG,SAAS,CAAC,IAAK;CAChF,CAAC;CAED,MAAM,YAAY,iBAAiB;EACjC,OAAO,aAAa,iBAAiB;CACvC,CAAC;CAED,MAAM,eAAe,kBAA0C;EAC7D,YAAY,WAAW;EACvB,WAAW,UAAU;EACrB,iBAAiB,gBAAgB;CACnC,EAAE;CAEF,MAAM,cAAc,eAClB;EACE,IAAI,WAAW;GACb,OAAO,MAAM;EACf;EACA,OAAO,MAAM;EACb,OAAO,MAAM;EACb,kBAAkB;CACpB,GACA,YACF;CAEA,MAAM,WAAW,iBAAiB,eAAe,WAAW,EAAE,QAAQ,KAAK,CAAC,CAAC;CAE7E,OACE,CAAC,QACK,SAAS,OACT,aAAa,kBACjB,OAAO,YAAY,MAAM,GACzB,OAAO,YAAY,MAAM,GACzB,MAAM,MAAM,MACb;OACE,YAAY,eAAe,EAAE;IAChC,EAAE;AAEN"}
|
package/dist/RadioGroup.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Pre-wired headless radio components that combine state + aria hooks.
|
|
5
5
|
* Port of react-aria-components/src/RadioGroup.tsx
|
|
6
6
|
*/
|
|
7
|
-
import { type JSX, type ParentProps } from "solid-js";
|
|
7
|
+
import { type JSX, type ParentProps, type Context } from "solid-js";
|
|
8
8
|
import { type AriaRadioProps, type AriaRadioGroupProps } from "@proyecto-viviana/solidaria";
|
|
9
9
|
import { type RadioGroupState, type RadioGroupProps as RadioGroupStateProps } from "@proyecto-viviana/solid-stately";
|
|
10
10
|
import { type RenderChildren, type ClassNameOrFunction, type StyleOrFunction, type SlotProps } from "./utils";
|
|
@@ -61,6 +61,15 @@ export interface RadioGroupProps extends Omit<AriaRadioGroupProps, "children" |
|
|
|
61
61
|
description?: JSX.Element;
|
|
62
62
|
/** An error message for the radio group. */
|
|
63
63
|
errorMessage?: JSX.Element;
|
|
64
|
+
/**
|
|
65
|
+
* Whether this component renders the visible description/error help-text nodes.
|
|
66
|
+
* Defaults to `true`. A styled layer (e.g. solid-spectrum) passes `false` to keep
|
|
67
|
+
* the id-minting and `aria-describedby` wiring here (so child radios inherit the
|
|
68
|
+
* group's shared description via `radioGroupData`) while owning the visible node
|
|
69
|
+
* itself — mirroring RAC, where the group exposes a `TextContext`/`FieldError`
|
|
70
|
+
* slot rather than rendering its own help text.
|
|
71
|
+
*/
|
|
72
|
+
renderHelpText?: boolean;
|
|
64
73
|
}
|
|
65
74
|
export interface RadioProps extends Omit<AriaRadioProps, "children">, SlotProps {
|
|
66
75
|
/** The children of the component. A function may be provided to receive render props. */
|
|
@@ -89,12 +98,12 @@ export interface RadioProps extends Omit<AriaRadioProps, "children">, SlotProps
|
|
|
89
98
|
export interface RadioGroupContextValue extends RadioGroupProps {
|
|
90
99
|
slots?: Record<string, RadioGroupProps>;
|
|
91
100
|
}
|
|
92
|
-
export declare const RadioGroupContext:
|
|
93
|
-
export declare const RadioGroupStateContext:
|
|
101
|
+
export declare const RadioGroupContext: Context<RadioGroupContextValue | null>;
|
|
102
|
+
export declare const RadioGroupStateContext: Context<RadioGroupState | null>;
|
|
94
103
|
export interface RadioContextValue extends RadioProps {
|
|
95
104
|
slots?: Record<string, RadioProps>;
|
|
96
105
|
}
|
|
97
|
-
export declare const RadioContext:
|
|
106
|
+
export declare const RadioContext: Context<RadioContextValue | null>;
|
|
98
107
|
/**
|
|
99
108
|
* A radio group allows a user to select a single item from a list of mutually exclusive options.
|
|
100
109
|
*
|
|
@@ -125,5 +134,74 @@ export declare function RadioGroup(props: ParentProps<RadioGroupProps>): JSX.Ele
|
|
|
125
134
|
* ```
|
|
126
135
|
*/
|
|
127
136
|
export declare function Radio(props: RadioProps): JSX.Element;
|
|
137
|
+
export interface RadioFieldRenderProps {
|
|
138
|
+
/** Whether the radio is selected. */
|
|
139
|
+
isSelected: boolean;
|
|
140
|
+
/** Whether the radio is disabled. */
|
|
141
|
+
isDisabled: boolean;
|
|
142
|
+
/** Whether the radio is read only. */
|
|
143
|
+
isReadOnly: boolean;
|
|
144
|
+
/** Whether the radio is invalid. */
|
|
145
|
+
isInvalid: boolean;
|
|
146
|
+
/** Whether the radio is required. */
|
|
147
|
+
isRequired: boolean;
|
|
148
|
+
}
|
|
149
|
+
export interface RadioButtonRenderProps extends RadioRenderProps {
|
|
150
|
+
}
|
|
151
|
+
export interface RadioFieldProps extends Omit<AriaRadioProps, "children">, SlotProps {
|
|
152
|
+
/** The children of the component (typically a `RadioButton`). A function may receive render props. */
|
|
153
|
+
children?: RenderChildren<RadioFieldRenderProps>;
|
|
154
|
+
/** The CSS className for the element. */
|
|
155
|
+
class?: ClassNameOrFunction<RadioFieldRenderProps>;
|
|
156
|
+
/** The inline style for the element. */
|
|
157
|
+
style?: StyleOrFunction<RadioFieldRenderProps>;
|
|
158
|
+
/** Ref for the radio field root element. */
|
|
159
|
+
ref?: RefLike<HTMLDivElement>;
|
|
160
|
+
/** Ref for the underlying input element. */
|
|
161
|
+
inputRef?: RefLike<HTMLInputElement>;
|
|
162
|
+
}
|
|
163
|
+
export interface RadioButtonProps extends SlotProps {
|
|
164
|
+
/** The children of the component. A function may receive render props. */
|
|
165
|
+
children?: RenderChildren<RadioButtonRenderProps>;
|
|
166
|
+
/** The CSS className for the element. */
|
|
167
|
+
class?: ClassNameOrFunction<RadioButtonRenderProps>;
|
|
168
|
+
/** The inline style for the element. */
|
|
169
|
+
style?: StyleOrFunction<RadioButtonRenderProps>;
|
|
170
|
+
/** Ref for the outer label element. */
|
|
171
|
+
ref?: RefLike<HTMLLabelElement>;
|
|
172
|
+
/** Handler called when hover starts. */
|
|
173
|
+
onHoverStart?: () => void;
|
|
174
|
+
/** Handler called when hover ends. */
|
|
175
|
+
onHoverEnd?: () => void;
|
|
176
|
+
/** Handler called when hover state changes. */
|
|
177
|
+
onHoverChange?: (isHovered: boolean) => void;
|
|
178
|
+
}
|
|
179
|
+
export interface RadioFieldContextValue extends Partial<RadioFieldProps> {
|
|
180
|
+
slots?: Record<string, Partial<RadioFieldProps>>;
|
|
181
|
+
}
|
|
182
|
+
export declare const RadioFieldContext: Context<RadioFieldContextValue | null>;
|
|
183
|
+
/**
|
|
184
|
+
* A RadioField represents an individual option within a radio group, containing a
|
|
185
|
+
* `RadioButton` and optional description. Must be rendered inside a `RadioGroup`.
|
|
186
|
+
* Per-option help text is wired through a TextContext description slot — render it
|
|
187
|
+
* with `<Text slot="description">`. (Radios have no per-option error slot; errors
|
|
188
|
+
* are reported at the group level.)
|
|
189
|
+
*
|
|
190
|
+
* @example
|
|
191
|
+
* ```tsx
|
|
192
|
+
* <RadioGroup>
|
|
193
|
+
* <RadioField value="a">
|
|
194
|
+
* <RadioButton>Option A</RadioButton>
|
|
195
|
+
* <Text slot="description">The first option</Text>
|
|
196
|
+
* </RadioField>
|
|
197
|
+
* </RadioGroup>
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
export declare function RadioField(props: RadioFieldProps): JSX.Element;
|
|
201
|
+
/**
|
|
202
|
+
* A RadioButton is the clickable area of a radio, including the indicator and label.
|
|
203
|
+
* Must be rendered inside a `RadioField` (or the legacy `Radio`).
|
|
204
|
+
*/
|
|
205
|
+
export declare function RadioButton(props: RadioButtonProps): JSX.Element;
|
|
128
206
|
export {};
|
|
129
207
|
//# sourceMappingURL=RadioGroup.d.ts.map
|
package/dist/RadioGroup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioGroup.d.ts","sourceRoot":"","sources":["../src/RadioGroup.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,KAAK,GAAG,EACR,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"RadioGroup.d.ts","sourceRoot":"","sources":["../src/RadioGroup.tsx"],"names":[],"mappings":"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"}
|