@proyecto-viviana/solidaria-components 0.2.5 → 0.3.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 +21 -0
- package/README.md +39 -272
- package/dist/ActionBar.d.ts +79 -0
- package/dist/ActionBar.d.ts.map +1 -0
- package/dist/ActionGroup.d.ts +74 -0
- package/dist/ActionGroup.d.ts.map +1 -0
- package/dist/Alert.d.ts +70 -0
- package/dist/Alert.d.ts.map +1 -0
- package/dist/Autocomplete.d.ts +5 -5
- package/dist/Autocomplete.d.ts.map +1 -1
- package/dist/Breadcrumbs.d.ts +27 -8
- package/dist/Breadcrumbs.d.ts.map +1 -1
- package/dist/Button.d.ts +28 -5
- package/dist/Button.d.ts.map +1 -1
- package/dist/Calendar.d.ts +51 -7
- package/dist/Calendar.d.ts.map +1 -1
- package/dist/Checkbox.d.ts +33 -8
- package/dist/Checkbox.d.ts.map +1 -1
- package/dist/Collection.d.ts +130 -0
- package/dist/Collection.d.ts.map +1 -0
- package/dist/Color.d.ts +210 -9
- package/dist/Color.d.ts.map +1 -1
- package/dist/ColorEditor.d.ts +42 -0
- package/dist/ColorEditor.d.ts.map +1 -0
- package/dist/ComboBox.d.ts +146 -16
- package/dist/ComboBox.d.ts.map +1 -1
- package/dist/ContextualHelpTrigger.d.ts +40 -0
- package/dist/ContextualHelpTrigger.d.ts.map +1 -0
- package/dist/DateField.d.ts +35 -8
- package/dist/DateField.d.ts.map +1 -1
- package/dist/DatePicker.d.ts +101 -5
- package/dist/DatePicker.d.ts.map +1 -1
- package/dist/DateRangePickerContext.d.ts +30 -0
- package/dist/DateRangePickerContext.d.ts.map +1 -0
- package/dist/Dialog.d.ts +5 -5
- package/dist/Dialog.d.ts.map +1 -1
- package/dist/Disclosure.d.ts +25 -5
- package/dist/Disclosure.d.ts.map +1 -1
- package/dist/DragAndDrop.d.ts +80 -0
- package/dist/DragAndDrop.d.ts.map +1 -0
- package/dist/DragPreview.d.ts +14 -0
- package/dist/DragPreview.d.ts.map +1 -0
- package/dist/DropZone.d.ts +27 -0
- package/dist/DropZone.d.ts.map +1 -0
- package/dist/FieldError.d.ts +27 -0
- package/dist/FieldError.d.ts.map +1 -0
- package/dist/FileTrigger.d.ts +26 -0
- package/dist/FileTrigger.d.ts.map +1 -0
- package/dist/Focusable.d.ts +27 -0
- package/dist/Focusable.d.ts.map +1 -0
- package/dist/Form.d.ts +41 -0
- package/dist/Form.d.ts.map +1 -0
- package/dist/GridList.d.ts +69 -10
- package/dist/GridList.d.ts.map +1 -1
- package/dist/HiddenDateInput.d.ts +26 -0
- package/dist/HiddenDateInput.d.ts.map +1 -0
- package/dist/HiddenTimeInput.d.ts +25 -0
- package/dist/HiddenTimeInput.d.ts.map +1 -0
- package/dist/Icon.d.ts +57 -0
- package/dist/Icon.d.ts.map +1 -0
- package/dist/Keyboard.d.ts +13 -0
- package/dist/Keyboard.d.ts.map +1 -0
- package/dist/Landmark.d.ts +3 -3
- package/dist/Landmark.d.ts.map +1 -1
- package/dist/Link.d.ts +10 -4
- package/dist/Link.d.ts.map +1 -1
- package/dist/ListBox.d.ts +73 -11
- package/dist/ListBox.d.ts.map +1 -1
- package/dist/ListDropTargetDelegate.d.ts +38 -0
- package/dist/ListDropTargetDelegate.d.ts.map +1 -0
- package/dist/Menu.d.ts +79 -10
- package/dist/Menu.d.ts.map +1 -1
- package/dist/Meter.d.ts +4 -4
- package/dist/Meter.d.ts.map +1 -1
- package/dist/Modal.d.ts +6 -4
- package/dist/Modal.d.ts.map +1 -1
- package/dist/NumberField.d.ts +10 -12
- package/dist/NumberField.d.ts.map +1 -1
- package/dist/Popover.d.ts +32 -7
- package/dist/Popover.d.ts.map +1 -1
- package/dist/Pressable.d.ts +27 -0
- package/dist/Pressable.d.ts.map +1 -0
- package/dist/ProgressBar.d.ts +6 -4
- package/dist/ProgressBar.d.ts.map +1 -1
- package/dist/RadioGroup.d.ts +43 -9
- package/dist/RadioGroup.d.ts.map +1 -1
- package/dist/RangeCalendar.d.ts +39 -7
- package/dist/RangeCalendar.d.ts.map +1 -1
- package/dist/RouterProvider.d.ts +75 -0
- package/dist/RouterProvider.d.ts.map +1 -0
- package/dist/SearchField.d.ts +23 -21
- package/dist/SearchField.d.ts.map +1 -1
- package/dist/Select.d.ts +48 -7
- package/dist/Select.d.ts.map +1 -1
- package/dist/SelectionIndicator.d.ts +30 -0
- package/dist/SelectionIndicator.d.ts.map +1 -0
- package/dist/Separator.d.ts +9 -3
- package/dist/Separator.d.ts.map +1 -1
- package/dist/SharedElementTransition.d.ts +41 -0
- package/dist/SharedElementTransition.d.ts.map +1 -0
- package/dist/Slider.d.ts +15 -8
- package/dist/Slider.d.ts.map +1 -1
- package/dist/StepList.d.ts +90 -0
- package/dist/StepList.d.ts.map +1 -0
- package/dist/Switch.d.ts +11 -5
- package/dist/Switch.d.ts.map +1 -1
- package/dist/Table.d.ts +222 -19
- package/dist/Table.d.ts.map +1 -1
- package/dist/Tabs.d.ts +47 -10
- package/dist/Tabs.d.ts.map +1 -1
- package/dist/TagGroup.d.ts +22 -10
- package/dist/TagGroup.d.ts.map +1 -1
- package/dist/Text.d.ts +10 -0
- package/dist/Text.d.ts.map +1 -0
- package/dist/TextField.d.ts +19 -11
- package/dist/TextField.d.ts.map +1 -1
- package/dist/TimeField.d.ts +32 -7
- package/dist/TimeField.d.ts.map +1 -1
- package/dist/Toast.d.ts +29 -14
- package/dist/Toast.d.ts.map +1 -1
- package/dist/ToggleButton.d.ts +36 -0
- package/dist/ToggleButton.d.ts.map +1 -0
- package/dist/ToggleButtonGroup.d.ts +33 -0
- package/dist/ToggleButtonGroup.d.ts.map +1 -0
- package/dist/Toolbar.d.ts +7 -3
- package/dist/Toolbar.d.ts.map +1 -1
- package/dist/Tooltip.d.ts +58 -7
- package/dist/Tooltip.d.ts.map +1 -1
- package/dist/Tree.d.ts +102 -11
- package/dist/Tree.d.ts.map +1 -1
- package/dist/Virtualizer.d.ts +61 -0
- package/dist/Virtualizer.d.ts.map +1 -0
- package/dist/VirtualizerLayouts.d.ts +82 -0
- package/dist/VirtualizerLayouts.d.ts.map +1 -0
- package/dist/VisuallyHidden.d.ts +4 -2
- package/dist/VisuallyHidden.d.ts.map +1 -1
- package/dist/contexts.d.ts +6 -1
- package/dist/contexts.d.ts.map +1 -1
- package/dist/index.d.ts +73 -39
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23342 -10644
- package/dist/index.js.map +1 -7
- package/dist/index.jsx +18110 -0
- package/dist/index.jsx.map +1 -0
- package/dist/useDragAndDrop.d.ts +93 -0
- package/dist/useDragAndDrop.d.ts.map +1 -0
- package/dist/utils.d.ts +8 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/virtualizer/Layout.d.ts +79 -0
- package/dist/virtualizer/Layout.d.ts.map +1 -0
- package/package.json +33 -32
- package/src/ActionBar.tsx +251 -0
- package/src/ActionGroup.tsx +277 -0
- package/src/Alert.tsx +152 -0
- package/src/Autocomplete.tsx +39 -44
- package/src/Breadcrumbs.tsx +227 -72
- package/src/Button.tsx +315 -74
- package/src/Calendar.tsx +347 -141
- package/src/Checkbox.tsx +414 -123
- package/src/Collection.tsx +350 -0
- package/src/Color.tsx +1325 -284
- package/src/ColorEditor.tsx +213 -0
- package/src/ComboBox.tsx +644 -245
- package/src/ContextualHelpTrigger.tsx +195 -0
- package/src/DateField.tsx +274 -106
- package/src/DatePicker.tsx +892 -111
- package/src/DateRangePickerContext.tsx +44 -0
- package/src/Dialog.tsx +173 -104
- package/src/Disclosure.tsx +158 -105
- package/src/DragAndDrop.tsx +340 -0
- package/src/DragPreview.tsx +47 -0
- package/src/DropZone.tsx +233 -0
- package/src/FieldError.tsx +89 -0
- package/src/FileTrigger.tsx +83 -0
- package/src/Focusable.tsx +103 -0
- package/src/Form.tsx +140 -0
- package/src/GridList.tsx +542 -128
- package/src/HiddenDateInput.tsx +153 -0
- package/src/HiddenTimeInput.tsx +133 -0
- package/src/Icon.tsx +133 -0
- package/src/Keyboard.tsx +26 -0
- package/src/Landmark.tsx +37 -63
- package/src/Link.tsx +132 -69
- package/src/ListBox.tsx +656 -106
- package/src/ListDropTargetDelegate.ts +283 -0
- package/src/Menu.tsx +1234 -132
- package/src/Meter.tsx +44 -58
- package/src/Modal.tsx +262 -166
- package/src/NumberField.tsx +267 -151
- package/src/Popover.tsx +452 -343
- package/src/Pressable.tsx +108 -0
- package/src/ProgressBar.tsx +54 -59
- package/src/RadioGroup.tsx +533 -121
- package/src/RangeCalendar.tsx +249 -150
- package/src/RouterProvider.tsx +223 -0
- package/src/SearchField.tsx +460 -133
- package/src/Select.tsx +804 -233
- package/src/SelectionIndicator.tsx +108 -0
- package/src/Separator.tsx +47 -49
- package/src/SharedElementTransition.tsx +264 -0
- package/src/Slider.tsx +148 -98
- package/src/StepList.tsx +272 -0
- package/src/Switch.tsx +93 -46
- package/src/Table.tsx +1551 -225
- package/src/Tabs.tsx +377 -123
- package/src/TagGroup.tsx +233 -135
- package/src/Text.tsx +18 -0
- package/src/TextField.tsx +413 -86
- package/src/TimeField.tsx +232 -222
- package/src/Toast.tsx +306 -160
- package/src/ToggleButton.tsx +169 -0
- package/src/ToggleButtonGroup.tsx +141 -0
- package/src/Toolbar.tsx +61 -70
- package/src/Tooltip.tsx +473 -116
- package/src/Tree.tsx +1514 -175
- package/src/Virtualizer.tsx +730 -0
- package/src/VirtualizerLayouts.ts +280 -0
- package/src/VisuallyHidden.tsx +32 -38
- package/src/contexts.ts +29 -36
- package/src/index.ts +972 -620
- package/src/useDragAndDrop.ts +367 -0
- package/src/utils.tsx +69 -50
- package/src/virtualizer/Layout.ts +192 -0
- package/dist/index.ssr.js +0 -9785
- package/dist/index.ssr.js.map +0 -7
package/src/Meter.tsx
CHANGED
|
@@ -8,17 +8,8 @@
|
|
|
8
8
|
* Unlike progress bars, meters represent a current value rather than progress toward a goal.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
type ParentProps,
|
|
14
|
-
createContext,
|
|
15
|
-
createMemo,
|
|
16
|
-
splitProps,
|
|
17
|
-
} from 'solid-js';
|
|
18
|
-
import {
|
|
19
|
-
createMeter,
|
|
20
|
-
type AriaMeterProps,
|
|
21
|
-
} from '@proyecto-viviana/solidaria';
|
|
11
|
+
import { type JSX, createContext, createMemo, splitProps } from "solid-js";
|
|
12
|
+
import { createMeter, type AriaMeterProps } from "@proyecto-viviana/solidaria";
|
|
22
13
|
import {
|
|
23
14
|
type RenderChildren,
|
|
24
15
|
type ClassNameOrFunction,
|
|
@@ -26,11 +17,7 @@ import {
|
|
|
26
17
|
type SlotProps,
|
|
27
18
|
useRenderProps,
|
|
28
19
|
filterDOMProps,
|
|
29
|
-
} from
|
|
30
|
-
|
|
31
|
-
// ============================================
|
|
32
|
-
// TYPES
|
|
33
|
-
// ============================================
|
|
20
|
+
} from "./utils";
|
|
34
21
|
|
|
35
22
|
export interface MeterRenderProps {
|
|
36
23
|
/** The value as a percentage between the minimum and maximum (0-100). */
|
|
@@ -39,9 +26,7 @@ export interface MeterRenderProps {
|
|
|
39
26
|
valueText: string | undefined;
|
|
40
27
|
}
|
|
41
28
|
|
|
42
|
-
export interface MeterProps
|
|
43
|
-
extends AriaMeterProps,
|
|
44
|
-
SlotProps {
|
|
29
|
+
export interface MeterProps extends AriaMeterProps, SlotProps {
|
|
45
30
|
/** The children of the component. A function may be provided to receive render props. */
|
|
46
31
|
children?: RenderChildren<MeterRenderProps>;
|
|
47
32
|
/** The CSS className for the element. */
|
|
@@ -50,23 +35,16 @@ export interface MeterProps
|
|
|
50
35
|
style?: StyleOrFunction<MeterRenderProps>;
|
|
51
36
|
}
|
|
52
37
|
|
|
53
|
-
// ============================================
|
|
54
|
-
// CONTEXT
|
|
55
|
-
// ============================================
|
|
56
|
-
|
|
57
38
|
export const MeterContext = createContext<MeterProps | null>(null);
|
|
58
39
|
|
|
59
|
-
// ============================================
|
|
60
|
-
// UTILITIES
|
|
61
|
-
// ============================================
|
|
62
|
-
|
|
63
40
|
function clamp(value: number, min: number, max: number): number {
|
|
64
41
|
return Math.min(Math.max(value, min), max);
|
|
65
42
|
}
|
|
66
43
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
44
|
+
function getSafeRange(min: number, max: number): number {
|
|
45
|
+
const range = max - min;
|
|
46
|
+
return Number.isFinite(range) && range > 0 ? range : 1;
|
|
47
|
+
}
|
|
70
48
|
|
|
71
49
|
/**
|
|
72
50
|
* A meter represents a quantity within a known range, or a fractional value.
|
|
@@ -85,62 +63,70 @@ function clamp(value: number, min: number, max: number): number {
|
|
|
85
63
|
* </Meter>
|
|
86
64
|
* ```
|
|
87
65
|
*/
|
|
88
|
-
export function Meter(props:
|
|
89
|
-
const [local, ariaProps] = splitProps(props, [
|
|
90
|
-
'children',
|
|
91
|
-
'class',
|
|
92
|
-
'style',
|
|
93
|
-
'slot',
|
|
94
|
-
]);
|
|
66
|
+
export function Meter(props: MeterProps): JSX.Element {
|
|
67
|
+
const [local, ariaProps] = splitProps(props, ["children", "class", "style", "slot"]);
|
|
95
68
|
|
|
96
|
-
// Get values for calculations
|
|
97
69
|
const value = () => ariaProps.value ?? 0;
|
|
98
70
|
const minValue = () => ariaProps.minValue ?? 0;
|
|
99
71
|
const maxValue = () => ariaProps.maxValue ?? 100;
|
|
100
72
|
|
|
101
|
-
// Create meter aria props
|
|
102
73
|
const meterAria = createMeter({
|
|
103
|
-
get value() {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
get
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
get
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
get
|
|
74
|
+
get value() {
|
|
75
|
+
return ariaProps.value;
|
|
76
|
+
},
|
|
77
|
+
get minValue() {
|
|
78
|
+
return ariaProps.minValue;
|
|
79
|
+
},
|
|
80
|
+
get maxValue() {
|
|
81
|
+
return ariaProps.maxValue;
|
|
82
|
+
},
|
|
83
|
+
get valueLabel() {
|
|
84
|
+
return ariaProps.valueLabel;
|
|
85
|
+
},
|
|
86
|
+
get formatOptions() {
|
|
87
|
+
return ariaProps.formatOptions;
|
|
88
|
+
},
|
|
89
|
+
get label() {
|
|
90
|
+
return ariaProps.label;
|
|
91
|
+
},
|
|
92
|
+
get "aria-label"() {
|
|
93
|
+
return ariaProps["aria-label"];
|
|
94
|
+
},
|
|
95
|
+
get "aria-labelledby"() {
|
|
96
|
+
return ariaProps["aria-labelledby"];
|
|
97
|
+
},
|
|
98
|
+
get "aria-describedby"() {
|
|
99
|
+
return ariaProps["aria-describedby"];
|
|
100
|
+
},
|
|
101
|
+
get "aria-details"() {
|
|
102
|
+
return ariaProps["aria-details"];
|
|
103
|
+
},
|
|
113
104
|
});
|
|
114
105
|
|
|
115
|
-
// Calculate percentage
|
|
116
106
|
const percentage = createMemo(() => {
|
|
117
107
|
const clampedValue = clamp(value(), minValue(), maxValue());
|
|
118
|
-
return ((clampedValue - minValue()) / (
|
|
108
|
+
return ((clampedValue - minValue()) / getSafeRange(minValue(), maxValue())) * 100;
|
|
119
109
|
});
|
|
120
110
|
|
|
121
|
-
// Get value text from aria props
|
|
122
111
|
const valueText = createMemo(() => {
|
|
123
|
-
return meterAria.meterProps[
|
|
112
|
+
return meterAria.meterProps["aria-valuetext"] as string | undefined;
|
|
124
113
|
});
|
|
125
114
|
|
|
126
|
-
// Render props values
|
|
127
115
|
const renderValues = createMemo<MeterRenderProps>(() => ({
|
|
128
116
|
percentage: percentage(),
|
|
129
117
|
valueText: valueText(),
|
|
130
118
|
}));
|
|
131
119
|
|
|
132
|
-
// Resolve render props
|
|
133
120
|
const renderProps = useRenderProps(
|
|
134
121
|
{
|
|
135
122
|
children: props.children,
|
|
136
123
|
class: local.class,
|
|
137
124
|
style: local.style,
|
|
138
|
-
defaultClassName:
|
|
125
|
+
defaultClassName: "solidaria-Meter",
|
|
139
126
|
},
|
|
140
|
-
renderValues
|
|
127
|
+
renderValues,
|
|
141
128
|
);
|
|
142
129
|
|
|
143
|
-
// Filter DOM props
|
|
144
130
|
const domProps = createMemo(() => filterDOMProps(ariaProps, { global: true }));
|
|
145
131
|
|
|
146
132
|
return (
|