@proyecto-viviana/solid-stately 0.6.0-rc.0 → 0.6.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -29
- package/dist/calendar/createCalendarState.d.ts +3 -1
- package/dist/calendar/createCalendarState.d.ts.map +1 -1
- package/dist/calendar/createDatePickerState.d.ts +2 -0
- package/dist/calendar/createDatePickerState.d.ts.map +1 -1
- package/dist/calendar/createRangeCalendarState.d.ts +2 -0
- package/dist/calendar/createRangeCalendarState.d.ts.map +1 -1
- package/dist/calendar/createTimeFieldState.d.ts +1 -1
- package/dist/calendar/createTimeFieldState.d.ts.map +1 -1
- package/dist/checkbox/createCheckboxGroupState.d.ts +2 -0
- package/dist/checkbox/createCheckboxGroupState.d.ts.map +1 -1
- package/dist/collections/createListState.d.ts.map +1 -1
- package/dist/collections/createMenuState.d.ts +46 -2
- package/dist/collections/createMenuState.d.ts.map +1 -1
- package/dist/collections/createSelectionState.d.ts.map +1 -1
- package/dist/collections/index.d.ts +1 -1
- package/dist/collections/index.d.ts.map +1 -1
- package/dist/color/createColorAreaState.d.ts +4 -0
- package/dist/color/createColorAreaState.d.ts.map +1 -1
- package/dist/color/createColorFieldState.d.ts +2 -0
- package/dist/color/createColorFieldState.d.ts.map +1 -1
- package/dist/color/createColorSliderState.d.ts +2 -0
- package/dist/color/createColorSliderState.d.ts.map +1 -1
- package/dist/color/createColorWheelState.d.ts.map +1 -1
- package/dist/combobox/createComboBoxState.d.ts +90 -23
- package/dist/combobox/createComboBoxState.d.ts.map +1 -1
- package/dist/combobox/index.d.ts +1 -1
- package/dist/combobox/index.d.ts.map +1 -1
- package/dist/data/createAsyncList.d.ts.map +1 -1
- package/dist/data/createListData.d.ts.map +1 -1
- package/dist/data/createTreeData.d.ts.map +1 -1
- package/dist/dnd/createDraggableCollectionState.d.ts +5 -1
- package/dist/dnd/createDraggableCollectionState.d.ts.map +1 -1
- package/dist/dnd/createDroppableCollectionState.d.ts +6 -0
- package/dist/dnd/createDroppableCollectionState.d.ts.map +1 -1
- package/dist/form/createFormValidationState.d.ts.map +1 -1
- package/dist/grid/createGridState.d.ts +2 -2
- package/dist/grid/createGridState.d.ts.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1012 -471
- package/dist/index.js.map +1 -1
- package/dist/menu/index.d.ts +2 -1
- package/dist/menu/index.d.ts.map +1 -1
- package/dist/numberfield/createNumberFieldState.d.ts +6 -3
- package/dist/numberfield/createNumberFieldState.d.ts.map +1 -1
- package/dist/private/flags/flags.d.ts.map +1 -0
- package/dist/private/flags/flags.js +1 -1
- package/dist/private/flags/flags.js.map +1 -1
- package/dist/radio/createRadioGroupState.d.ts.map +1 -1
- package/dist/select/createSelectState.d.ts +85 -29
- package/dist/select/createSelectState.d.ts.map +1 -1
- package/dist/select/index.d.ts +1 -1
- package/dist/select/index.d.ts.map +1 -1
- package/dist/selection/SelectionManager.d.ts.map +1 -1
- package/dist/selection/createMultipleSelectionState.d.ts.map +1 -1
- package/dist/slider/createSliderState.d.ts +35 -9
- package/dist/slider/createSliderState.d.ts.map +1 -1
- package/dist/ssr/index.d.ts +0 -6
- package/dist/ssr/index.d.ts.map +1 -1
- package/dist/steplist/createStepListState.d.ts +8 -13
- package/dist/steplist/createStepListState.d.ts.map +1 -1
- package/dist/table/createTableColumnResizeState.d.ts.map +1 -1
- package/dist/table/createTableState.d.ts +2 -2
- package/dist/table/createTableState.d.ts.map +1 -1
- package/dist/table/createTreeGridState.d.ts +2 -2
- package/dist/table/createTreeGridState.d.ts.map +1 -1
- package/dist/table/types.d.ts +2 -2
- package/dist/table/types.d.ts.map +1 -1
- package/dist/tabs/createTabListState.d.ts.map +1 -1
- package/dist/tokenfield/TokenFieldValue.d.ts +28 -4
- package/dist/tokenfield/TokenFieldValue.d.ts.map +1 -1
- package/dist/tokenfield/index.d.ts +1 -1
- package/dist/tokenfield/index.d.ts.map +1 -1
- package/dist/tree/createTreeState.d.ts +2 -2
- package/dist/tree/createTreeState.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/reactivity.d.ts +5 -0
- package/dist/utils/reactivity.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/calendar/createCalendarState.ts +139 -58
- package/src/calendar/createDatePickerState.ts +14 -11
- package/src/calendar/createRangeCalendarState.ts +43 -17
- package/src/calendar/createTimeFieldState.ts +1 -1
- package/src/checkbox/createCheckboxGroupState.ts +16 -0
- package/src/collections/createListState.ts +4 -4
- package/src/collections/createMenuState.ts +134 -4
- package/src/collections/createSelectionState.ts +2 -2
- package/src/collections/index.ts +4 -0
- package/src/color/createColorAreaState.ts +19 -0
- package/src/color/createColorFieldState.ts +76 -26
- package/src/color/createColorSliderState.ts +25 -2
- package/src/color/createColorWheelState.ts +9 -5
- package/src/combobox/createComboBoxState.ts +371 -121
- package/src/combobox/index.ts +4 -0
- package/src/data/createAsyncList.ts +19 -4
- package/src/data/createListData.ts +8 -2
- package/src/data/createTreeData.ts +11 -3
- package/src/dnd/createDraggableCollectionState.ts +8 -1
- package/src/dnd/createDroppableCollectionState.ts +10 -0
- package/src/form/createFormValidationState.ts +17 -3
- package/src/grid/createGridState.ts +15 -8
- package/src/index.ts +18 -2
- package/src/menu/index.ts +5 -0
- package/src/numberfield/createNumberFieldState.ts +97 -35
- package/src/radio/createRadioGroupState.ts +4 -1
- package/src/select/createSelectState.ts +253 -131
- package/src/select/index.ts +8 -1
- package/src/selection/SelectionManager.ts +3 -1
- package/src/selection/createMultipleSelectionState.ts +2 -2
- package/src/slider/createSliderState.ts +227 -103
- package/src/ssr/index.ts +11 -4
- package/src/steplist/createStepListState.ts +156 -123
- package/src/table/createTableColumnResizeState.ts +51 -11
- package/src/table/createTableState.ts +5 -4
- package/src/table/createTreeGridState.ts +3 -4
- package/src/table/types.ts +2 -2
- package/src/tabs/createTabListState.ts +8 -31
- package/src/tokenfield/TokenFieldValue.ts +75 -16
- package/src/tokenfield/index.ts +1 -0
- package/src/tree/createTreeState.ts +15 -8
- package/src/utils/index.ts +1 -0
- package/src/utils/reactivity.ts +8 -0
- package/dist/flags/flags.d.ts.map +0 -1
- /package/dist/{flags → private/flags}/flags.d.ts +0 -0
- /package/src/{flags → private/flags}/flags.ts +0 -0
|
@@ -65,6 +65,8 @@ export interface ColorSliderState {
|
|
|
65
65
|
readonly maxValue: number;
|
|
66
66
|
/** Whether the slider is disabled. */
|
|
67
67
|
readonly isDisabled: boolean;
|
|
68
|
+
/** The channel number a native form reset restores. */
|
|
69
|
+
readonly defaultThumbValue: number;
|
|
68
70
|
|
|
69
71
|
/** Get the current channel value. */
|
|
70
72
|
getThumbValue(): number;
|
|
@@ -125,6 +127,22 @@ export function createColorSliderState(
|
|
|
125
127
|
}
|
|
126
128
|
}
|
|
127
129
|
|
|
130
|
+
// Form reset restores the first defaultValue's channel, or the first
|
|
131
|
+
// controlled color's channel when that default was omitted. An explicit
|
|
132
|
+
// null default falls through.
|
|
133
|
+
const initialOptions = getOptions();
|
|
134
|
+
const resetColor = (color: Color | string) => {
|
|
135
|
+
const normalized = normalizeColor(color);
|
|
136
|
+
return initialOptions.colorSpace ? normalized.toFormat(initialOptions.colorSpace) : normalized;
|
|
137
|
+
};
|
|
138
|
+
const initialDefault = initialOptions.defaultValue
|
|
139
|
+
? resetColor(initialOptions.defaultValue)
|
|
140
|
+
: undefined;
|
|
141
|
+
const firstColor =
|
|
142
|
+
initialOptions.value !== undefined ? resetColor(initialOptions.value) : undefined;
|
|
143
|
+
const defaultColor = initialDefault ?? firstColor ?? resetColor("#ff0000");
|
|
144
|
+
const defaultThumbValue = defaultColor.getChannelValue(initialOptions.channel);
|
|
145
|
+
|
|
128
146
|
// Controlled vs uncontrolled value
|
|
129
147
|
const value = createMemo(() => {
|
|
130
148
|
const opts = getOptions();
|
|
@@ -241,12 +259,16 @@ export function createColorSliderState(
|
|
|
241
259
|
}
|
|
242
260
|
};
|
|
243
261
|
|
|
244
|
-
//
|
|
262
|
+
// Hue paints a pure color. Alpha keeps its alpha. Other channels paint opaque.
|
|
245
263
|
const getDisplayColor = () => {
|
|
246
264
|
const v = value();
|
|
247
|
-
|
|
265
|
+
const current = channel();
|
|
266
|
+
if (current === "hue") {
|
|
248
267
|
return normalizeColor(`hsl(${v.getChannelValue("hue")}, 100%, 50%)`);
|
|
249
268
|
}
|
|
269
|
+
if (current === "alpha") {
|
|
270
|
+
return v;
|
|
271
|
+
}
|
|
250
272
|
return v.withChannelValue("alpha", 1);
|
|
251
273
|
};
|
|
252
274
|
|
|
@@ -286,6 +308,7 @@ export function createColorSliderState(
|
|
|
286
308
|
get isDisabled() {
|
|
287
309
|
return isDisabled();
|
|
288
310
|
},
|
|
311
|
+
defaultThumbValue,
|
|
289
312
|
getThumbValue,
|
|
290
313
|
getThumbMinValue,
|
|
291
314
|
getThumbMaxValue,
|
|
@@ -86,7 +86,13 @@ export function createColorWheelState(options: Accessor<ColorWheelStateOptions>)
|
|
|
86
86
|
return value.toFormat(value.getColorSpace() === "hsb" ? "hsb" : "hsl");
|
|
87
87
|
};
|
|
88
88
|
|
|
89
|
-
|
|
89
|
+
// Pin useColorWheelState returns the first controlled color as defaultValue
|
|
90
|
+
// so a native form reset restores that hue. The built-in red is only used
|
|
91
|
+
// when the wheel is uncontrolled and no defaultValue was passed.
|
|
92
|
+
const firstOptions = getOptions();
|
|
93
|
+
const controlledInitial =
|
|
94
|
+
firstOptions.value !== undefined ? normalizeWheelValue(firstOptions.value) : undefined;
|
|
95
|
+
const initialValue = normalizeWheelValue(firstOptions.defaultValue ?? defaultColor);
|
|
90
96
|
const [internalValue, setInternalValue] = createInternalSignal<Color>(initialValue);
|
|
91
97
|
const [isDragging, setIsDragging] = createInternalSignal(false);
|
|
92
98
|
let valueRef = initialValue;
|
|
@@ -147,9 +153,7 @@ export function createColorWheelState(options: Accessor<ColorWheelStateOptions>)
|
|
|
147
153
|
const degToRad = (deg: number) => (deg * Math.PI) / 180;
|
|
148
154
|
|
|
149
155
|
const cartesianToAngle = (x: number, y: number, radius: number) => {
|
|
150
|
-
|
|
151
|
-
const clampedY = Math.max(-radius, Math.min(radius, y));
|
|
152
|
-
return mod(radToDeg(Math.atan2(clampedY, clampedX)), 360);
|
|
156
|
+
return mod(radToDeg(Math.atan2(y / radius, x / radius)), 360);
|
|
153
157
|
};
|
|
154
158
|
|
|
155
159
|
const angleToCartesian = (angle: number, radius: number) => ({
|
|
@@ -235,7 +239,7 @@ export function createColorWheelState(options: Accessor<ColorWheelStateOptions>)
|
|
|
235
239
|
return value();
|
|
236
240
|
},
|
|
237
241
|
get defaultValue() {
|
|
238
|
-
return initialValue;
|
|
242
|
+
return controlledInitial ?? initialValue;
|
|
239
243
|
},
|
|
240
244
|
get isDragging() {
|
|
241
245
|
return isDragging();
|