@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.
Files changed (127) hide show
  1. package/README.md +59 -29
  2. package/dist/calendar/createCalendarState.d.ts +3 -1
  3. package/dist/calendar/createCalendarState.d.ts.map +1 -1
  4. package/dist/calendar/createDatePickerState.d.ts +2 -0
  5. package/dist/calendar/createDatePickerState.d.ts.map +1 -1
  6. package/dist/calendar/createRangeCalendarState.d.ts +2 -0
  7. package/dist/calendar/createRangeCalendarState.d.ts.map +1 -1
  8. package/dist/calendar/createTimeFieldState.d.ts +1 -1
  9. package/dist/calendar/createTimeFieldState.d.ts.map +1 -1
  10. package/dist/checkbox/createCheckboxGroupState.d.ts +2 -0
  11. package/dist/checkbox/createCheckboxGroupState.d.ts.map +1 -1
  12. package/dist/collections/createListState.d.ts.map +1 -1
  13. package/dist/collections/createMenuState.d.ts +46 -2
  14. package/dist/collections/createMenuState.d.ts.map +1 -1
  15. package/dist/collections/createSelectionState.d.ts.map +1 -1
  16. package/dist/collections/index.d.ts +1 -1
  17. package/dist/collections/index.d.ts.map +1 -1
  18. package/dist/color/createColorAreaState.d.ts +4 -0
  19. package/dist/color/createColorAreaState.d.ts.map +1 -1
  20. package/dist/color/createColorFieldState.d.ts +2 -0
  21. package/dist/color/createColorFieldState.d.ts.map +1 -1
  22. package/dist/color/createColorSliderState.d.ts +2 -0
  23. package/dist/color/createColorSliderState.d.ts.map +1 -1
  24. package/dist/color/createColorWheelState.d.ts.map +1 -1
  25. package/dist/combobox/createComboBoxState.d.ts +90 -23
  26. package/dist/combobox/createComboBoxState.d.ts.map +1 -1
  27. package/dist/combobox/index.d.ts +1 -1
  28. package/dist/combobox/index.d.ts.map +1 -1
  29. package/dist/data/createAsyncList.d.ts.map +1 -1
  30. package/dist/data/createListData.d.ts.map +1 -1
  31. package/dist/data/createTreeData.d.ts.map +1 -1
  32. package/dist/dnd/createDraggableCollectionState.d.ts +5 -1
  33. package/dist/dnd/createDraggableCollectionState.d.ts.map +1 -1
  34. package/dist/dnd/createDroppableCollectionState.d.ts +6 -0
  35. package/dist/dnd/createDroppableCollectionState.d.ts.map +1 -1
  36. package/dist/form/createFormValidationState.d.ts.map +1 -1
  37. package/dist/grid/createGridState.d.ts +2 -2
  38. package/dist/grid/createGridState.d.ts.map +1 -1
  39. package/dist/index.d.ts +5 -5
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +1012 -471
  42. package/dist/index.js.map +1 -1
  43. package/dist/menu/index.d.ts +2 -1
  44. package/dist/menu/index.d.ts.map +1 -1
  45. package/dist/numberfield/createNumberFieldState.d.ts +6 -3
  46. package/dist/numberfield/createNumberFieldState.d.ts.map +1 -1
  47. package/dist/private/flags/flags.d.ts.map +1 -0
  48. package/dist/private/flags/flags.js +1 -1
  49. package/dist/private/flags/flags.js.map +1 -1
  50. package/dist/radio/createRadioGroupState.d.ts.map +1 -1
  51. package/dist/select/createSelectState.d.ts +85 -29
  52. package/dist/select/createSelectState.d.ts.map +1 -1
  53. package/dist/select/index.d.ts +1 -1
  54. package/dist/select/index.d.ts.map +1 -1
  55. package/dist/selection/SelectionManager.d.ts.map +1 -1
  56. package/dist/selection/createMultipleSelectionState.d.ts.map +1 -1
  57. package/dist/slider/createSliderState.d.ts +35 -9
  58. package/dist/slider/createSliderState.d.ts.map +1 -1
  59. package/dist/ssr/index.d.ts +0 -6
  60. package/dist/ssr/index.d.ts.map +1 -1
  61. package/dist/steplist/createStepListState.d.ts +8 -13
  62. package/dist/steplist/createStepListState.d.ts.map +1 -1
  63. package/dist/table/createTableColumnResizeState.d.ts.map +1 -1
  64. package/dist/table/createTableState.d.ts +2 -2
  65. package/dist/table/createTableState.d.ts.map +1 -1
  66. package/dist/table/createTreeGridState.d.ts +2 -2
  67. package/dist/table/createTreeGridState.d.ts.map +1 -1
  68. package/dist/table/types.d.ts +2 -2
  69. package/dist/table/types.d.ts.map +1 -1
  70. package/dist/tabs/createTabListState.d.ts.map +1 -1
  71. package/dist/tokenfield/TokenFieldValue.d.ts +28 -4
  72. package/dist/tokenfield/TokenFieldValue.d.ts.map +1 -1
  73. package/dist/tokenfield/index.d.ts +1 -1
  74. package/dist/tokenfield/index.d.ts.map +1 -1
  75. package/dist/tree/createTreeState.d.ts +2 -2
  76. package/dist/tree/createTreeState.d.ts.map +1 -1
  77. package/dist/utils/index.d.ts +1 -1
  78. package/dist/utils/index.d.ts.map +1 -1
  79. package/dist/utils/reactivity.d.ts +5 -0
  80. package/dist/utils/reactivity.d.ts.map +1 -1
  81. package/package.json +2 -2
  82. package/src/calendar/createCalendarState.ts +139 -58
  83. package/src/calendar/createDatePickerState.ts +14 -11
  84. package/src/calendar/createRangeCalendarState.ts +43 -17
  85. package/src/calendar/createTimeFieldState.ts +1 -1
  86. package/src/checkbox/createCheckboxGroupState.ts +16 -0
  87. package/src/collections/createListState.ts +4 -4
  88. package/src/collections/createMenuState.ts +134 -4
  89. package/src/collections/createSelectionState.ts +2 -2
  90. package/src/collections/index.ts +4 -0
  91. package/src/color/createColorAreaState.ts +19 -0
  92. package/src/color/createColorFieldState.ts +76 -26
  93. package/src/color/createColorSliderState.ts +25 -2
  94. package/src/color/createColorWheelState.ts +9 -5
  95. package/src/combobox/createComboBoxState.ts +371 -121
  96. package/src/combobox/index.ts +4 -0
  97. package/src/data/createAsyncList.ts +19 -4
  98. package/src/data/createListData.ts +8 -2
  99. package/src/data/createTreeData.ts +11 -3
  100. package/src/dnd/createDraggableCollectionState.ts +8 -1
  101. package/src/dnd/createDroppableCollectionState.ts +10 -0
  102. package/src/form/createFormValidationState.ts +17 -3
  103. package/src/grid/createGridState.ts +15 -8
  104. package/src/index.ts +18 -2
  105. package/src/menu/index.ts +5 -0
  106. package/src/numberfield/createNumberFieldState.ts +97 -35
  107. package/src/radio/createRadioGroupState.ts +4 -1
  108. package/src/select/createSelectState.ts +253 -131
  109. package/src/select/index.ts +8 -1
  110. package/src/selection/SelectionManager.ts +3 -1
  111. package/src/selection/createMultipleSelectionState.ts +2 -2
  112. package/src/slider/createSliderState.ts +227 -103
  113. package/src/ssr/index.ts +11 -4
  114. package/src/steplist/createStepListState.ts +156 -123
  115. package/src/table/createTableColumnResizeState.ts +51 -11
  116. package/src/table/createTableState.ts +5 -4
  117. package/src/table/createTreeGridState.ts +3 -4
  118. package/src/table/types.ts +2 -2
  119. package/src/tabs/createTabListState.ts +8 -31
  120. package/src/tokenfield/TokenFieldValue.ts +75 -16
  121. package/src/tokenfield/index.ts +1 -0
  122. package/src/tree/createTreeState.ts +15 -8
  123. package/src/utils/index.ts +1 -0
  124. package/src/utils/reactivity.ts +8 -0
  125. package/dist/flags/flags.d.ts.map +0 -1
  126. /package/dist/{flags → private/flags}/flags.d.ts +0 -0
  127. /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
- // Get display color (alpha = 1)
262
+ // Hue paints a pure color. Alpha keeps its alpha. Other channels paint opaque.
245
263
  const getDisplayColor = () => {
246
264
  const v = value();
247
- if (channel() === "hue") {
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
- const initialValue = normalizeWheelValue(getOptions().defaultValue ?? defaultColor);
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
- const clampedX = Math.max(-radius, Math.min(radius, x));
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();