@proyecto-viviana/solid-stately 0.2.4 → 0.2.7

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 (82) hide show
  1. package/LICENSE +21 -0
  2. package/dist/autocomplete/createAutocompleteState.d.ts +2 -1
  3. package/dist/checkbox/createCheckboxGroupState.d.ts +10 -1
  4. package/dist/collections/types.d.ts +11 -0
  5. package/dist/color/getColorChannels.d.ts +20 -0
  6. package/dist/data/createAsyncList.d.ts +111 -0
  7. package/dist/data/createListData.d.ts +65 -0
  8. package/dist/data/createTreeData.d.ts +61 -0
  9. package/dist/data/index.d.ts +3 -0
  10. package/dist/datepicker/index.d.ts +10 -0
  11. package/dist/grid/types.d.ts +5 -1
  12. package/dist/index.d.ts +6 -1
  13. package/dist/index.js +3737 -2697
  14. package/dist/index.js.map +1 -7
  15. package/dist/menu/index.d.ts +8 -0
  16. package/dist/radio/createRadioGroupState.d.ts +10 -1
  17. package/dist/select/createSelectState.d.ts +17 -0
  18. package/dist/selection/index.d.ts +11 -0
  19. package/dist/toast/createToastState.d.ts +7 -1
  20. package/dist/toggle/createToggleGroupState.d.ts +45 -0
  21. package/dist/toggle/index.d.ts +1 -0
  22. package/dist/tree/TreeCollection.d.ts +3 -2
  23. package/package.json +6 -5
  24. package/src/autocomplete/createAutocompleteState.ts +10 -11
  25. package/src/calendar/createDateFieldState.ts +24 -1
  26. package/src/checkbox/createCheckboxGroupState.ts +42 -6
  27. package/src/collections/ListCollection.ts +152 -146
  28. package/src/collections/createListState.ts +266 -264
  29. package/src/collections/createMenuState.ts +106 -106
  30. package/src/collections/createSelectionState.ts +336 -336
  31. package/src/collections/index.ts +46 -46
  32. package/src/collections/types.ts +181 -169
  33. package/src/color/Color.ts +951 -951
  34. package/src/color/createColorAreaState.ts +293 -293
  35. package/src/color/createColorFieldState.ts +292 -292
  36. package/src/color/createColorSliderState.ts +241 -241
  37. package/src/color/createColorWheelState.ts +211 -211
  38. package/src/color/getColorChannels.ts +34 -0
  39. package/src/color/index.ts +47 -47
  40. package/src/color/types.ts +127 -127
  41. package/src/combobox/createComboBoxState.ts +703 -703
  42. package/src/combobox/index.ts +13 -13
  43. package/src/data/createAsyncList.ts +377 -0
  44. package/src/data/createListData.ts +298 -0
  45. package/src/data/createTreeData.ts +433 -0
  46. package/src/data/index.ts +25 -0
  47. package/src/datepicker/index.ts +36 -0
  48. package/src/disclosure/createDisclosureState.ts +4 -4
  49. package/src/dnd/createDragState.ts +153 -153
  50. package/src/dnd/createDraggableCollectionState.ts +165 -165
  51. package/src/dnd/createDropState.ts +212 -212
  52. package/src/dnd/createDroppableCollectionState.ts +357 -357
  53. package/src/dnd/index.ts +76 -76
  54. package/src/dnd/types.ts +317 -317
  55. package/src/form/createFormValidationState.ts +389 -389
  56. package/src/form/index.ts +15 -15
  57. package/src/grid/types.ts +5 -0
  58. package/src/index.ts +49 -0
  59. package/src/menu/index.ts +19 -0
  60. package/src/numberfield/createNumberFieldState.ts +427 -383
  61. package/src/numberfield/index.ts +5 -5
  62. package/src/overlays/createOverlayTriggerState.ts +67 -67
  63. package/src/overlays/index.ts +5 -5
  64. package/src/radio/createRadioGroupState.ts +44 -6
  65. package/src/searchfield/createSearchFieldState.ts +62 -62
  66. package/src/searchfield/index.ts +5 -5
  67. package/src/select/createSelectState.ts +290 -181
  68. package/src/select/index.ts +5 -5
  69. package/src/selection/index.ts +28 -0
  70. package/src/slider/createSliderState.ts +211 -211
  71. package/src/slider/index.ts +6 -6
  72. package/src/tabs/createTabListState.ts +37 -11
  73. package/src/toast/createToastState.d.ts +6 -1
  74. package/src/toast/createToastState.ts +8 -1
  75. package/src/toggle/createToggleGroupState.ts +127 -0
  76. package/src/toggle/index.ts +6 -0
  77. package/src/tooltip/createTooltipTriggerState.ts +183 -183
  78. package/src/tooltip/index.ts +6 -6
  79. package/src/tree/TreeCollection.ts +208 -175
  80. package/src/tree/createTreeState.ts +392 -392
  81. package/src/tree/index.ts +13 -13
  82. package/src/tree/types.ts +174 -174
@@ -1,293 +1,293 @@
1
- /**
2
- * ColorArea state management.
3
- * Based on @react-stately/color useColorAreaState.
4
- */
5
-
6
- import { createSignal, createMemo, type Accessor } from 'solid-js';
7
- import type { Color, ColorChannel, ColorAxes } from './types';
8
- import { normalizeColor } from './Color';
9
-
10
- export interface ColorAreaStateOptions {
11
- /** The current color value (controlled). */
12
- value?: Color | string;
13
- /** The default color value (uncontrolled). */
14
- defaultValue?: Color | string;
15
- /** Handler called when the color changes. */
16
- onChange?: (color: Color) => void;
17
- /** Handler called when dragging ends. */
18
- onChangeEnd?: (color: Color) => void;
19
- /** The color channel for the X axis. */
20
- xChannel?: ColorChannel;
21
- /** The color channel for the Y axis. */
22
- yChannel?: ColorChannel;
23
- /** Whether the area is disabled. */
24
- isDisabled?: boolean;
25
- }
26
-
27
- export interface ColorAreaState {
28
- /** The current color value. */
29
- readonly value: Color;
30
- /** The X axis channel. */
31
- readonly xChannel: ColorChannel;
32
- /** The Y axis channel. */
33
- readonly yChannel: ColorChannel;
34
- /** The Z axis channel (the third channel). */
35
- readonly zChannel: ColorChannel;
36
- /** Whether the area is being dragged. */
37
- readonly isDragging: boolean;
38
- /** Whether the area is disabled. */
39
- readonly isDisabled: boolean;
40
- /** Step for X channel. */
41
- readonly xChannelStep: number;
42
- /** Step for Y channel. */
43
- readonly yChannelStep: number;
44
- /** Page step for X channel. */
45
- readonly xChannelPageStep: number;
46
- /** Page step for Y channel. */
47
- readonly yChannelPageStep: number;
48
-
49
- /** Get the X channel value. */
50
- getXValue(): number;
51
- /** Get the Y channel value. */
52
- getYValue(): number;
53
- /** Set the X channel value. */
54
- setXValue(value: number): void;
55
- /** Set the Y channel value. */
56
- setYValue(value: number): void;
57
- /** Set color from a point (0-1, 0-1). */
58
- setColorFromPoint(x: number, y: number): void;
59
- /** Get the thumb position as percentages. */
60
- getThumbPosition(): { x: number; y: number };
61
- /** Increment X value. */
62
- incrementX(stepSize?: number): void;
63
- /** Decrement X value. */
64
- decrementX(stepSize?: number): void;
65
- /** Increment Y value. */
66
- incrementY(stepSize?: number): void;
67
- /** Decrement Y value. */
68
- decrementY(stepSize?: number): void;
69
- /** Set the dragging state. */
70
- setDragging(isDragging: boolean): void;
71
- /** Get the display color (with alpha = 1). */
72
- getDisplayColor(): Color;
73
- }
74
-
75
- /**
76
- * Creates state for a color area (2D color picker).
77
- */
78
- export function createColorAreaState(
79
- options: Accessor<ColorAreaStateOptions>
80
- ): ColorAreaState {
81
- const getOptions = () => options();
82
-
83
- // Internal value state
84
- const [internalValue, setInternalValue] = createSignal<Color | null>(null);
85
- const [isDragging, setIsDragging] = createSignal(false);
86
-
87
- // Initialize internal value
88
- const initValue = () => {
89
- const opts = getOptions();
90
- if (opts.defaultValue) {
91
- return normalizeColor(opts.defaultValue);
92
- }
93
- return null;
94
- };
95
-
96
- // Set initial value
97
- if (internalValue() === null) {
98
- const init = initValue();
99
- if (init) {
100
- setInternalValue(init);
101
- }
102
- }
103
-
104
- // Controlled vs uncontrolled value
105
- const value = createMemo(() => {
106
- const opts = getOptions();
107
- if (opts.value !== undefined) {
108
- return normalizeColor(opts.value);
109
- }
110
- return internalValue() ?? normalizeColor('#ff0000');
111
- });
112
-
113
- const isDisabled = createMemo(() => getOptions().isDisabled ?? false);
114
-
115
- // Get color axes
116
- const axes = createMemo<ColorAxes>(() => {
117
- const opts = getOptions();
118
- return value().getColorSpaceAxes({
119
- xChannel: opts.xChannel,
120
- yChannel: opts.yChannel,
121
- });
122
- });
123
-
124
- const xChannel = createMemo(() => axes().xChannel);
125
- const yChannel = createMemo(() => axes().yChannel);
126
- const zChannel = createMemo(() => axes().zChannel);
127
-
128
- // Get channel ranges
129
- const xRange = createMemo(() => value().getChannelRange(xChannel()));
130
- const yRange = createMemo(() => value().getChannelRange(yChannel()));
131
-
132
- const xChannelStep = createMemo(() => xRange().step);
133
- const yChannelStep = createMemo(() => yRange().step);
134
- const xChannelPageStep = createMemo(() => xRange().pageSize);
135
- const yChannelPageStep = createMemo(() => yRange().pageSize);
136
-
137
- // Update value
138
- const updateValue = (newColor: Color) => {
139
- const opts = getOptions();
140
-
141
- // Controlled mode
142
- if (opts.value !== undefined) {
143
- opts.onChange?.(newColor);
144
- return;
145
- }
146
-
147
- // Uncontrolled mode
148
- setInternalValue(newColor);
149
- opts.onChange?.(newColor);
150
- };
151
-
152
- // Get X value
153
- const getXValue = () => value().getChannelValue(xChannel());
154
-
155
- // Get Y value
156
- const getYValue = () => value().getChannelValue(yChannel());
157
-
158
- // Set X value
159
- const setXValue = (newValue: number) => {
160
- const range = xRange();
161
- const clamped = Math.max(range.minValue, Math.min(range.maxValue, newValue));
162
- const rounded = Math.round(clamped / range.step) * range.step;
163
- const newColor = value().withChannelValue(xChannel(), rounded);
164
- updateValue(newColor);
165
- };
166
-
167
- // Set Y value
168
- const setYValue = (newValue: number) => {
169
- const range = yRange();
170
- const clamped = Math.max(range.minValue, Math.min(range.maxValue, newValue));
171
- const rounded = Math.round(clamped / range.step) * range.step;
172
- const newColor = value().withChannelValue(yChannel(), rounded);
173
- updateValue(newColor);
174
- };
175
-
176
- // Set color from point (x: 0-1, y: 0-1)
177
- const setColorFromPoint = (x: number, y: number) => {
178
- const xR = xRange();
179
- const yR = yRange();
180
-
181
- const xVal = xR.minValue + (xR.maxValue - xR.minValue) * x;
182
- const yVal = yR.minValue + (yR.maxValue - yR.minValue) * (1 - y); // Y is inverted
183
-
184
- const xClamped = Math.max(xR.minValue, Math.min(xR.maxValue, xVal));
185
- const yClamped = Math.max(yR.minValue, Math.min(yR.maxValue, yVal));
186
-
187
- const xRounded = Math.round(xClamped / xR.step) * xR.step;
188
- const yRounded = Math.round(yClamped / yR.step) * yR.step;
189
-
190
- const newColor = value()
191
- .withChannelValue(xChannel(), xRounded)
192
- .withChannelValue(yChannel(), yRounded);
193
- updateValue(newColor);
194
- };
195
-
196
- // Get thumb position as percentages
197
- const getThumbPosition = () => {
198
- const xR = xRange();
199
- const yR = yRange();
200
- const xVal = getXValue();
201
- const yVal = getYValue();
202
-
203
- return {
204
- x: (xVal - xR.minValue) / (xR.maxValue - xR.minValue),
205
- y: 1 - (yVal - yR.minValue) / (yR.maxValue - yR.minValue), // Y is inverted
206
- };
207
- };
208
-
209
- // Increment X
210
- const incrementX = (stepSize?: number) => {
211
- const s = stepSize ?? xChannelStep();
212
- setXValue(getXValue() + s);
213
- };
214
-
215
- // Decrement X
216
- const decrementX = (stepSize?: number) => {
217
- const s = stepSize ?? xChannelStep();
218
- setXValue(getXValue() - s);
219
- };
220
-
221
- // Increment Y
222
- const incrementY = (stepSize?: number) => {
223
- const s = stepSize ?? yChannelStep();
224
- setYValue(getYValue() + s);
225
- };
226
-
227
- // Decrement Y
228
- const decrementY = (stepSize?: number) => {
229
- const s = stepSize ?? yChannelStep();
230
- setYValue(getYValue() - s);
231
- };
232
-
233
- // Set dragging
234
- const setDraggingState = (dragging: boolean) => {
235
- const wasDragging = isDragging();
236
- setIsDragging(dragging);
237
-
238
- // Call onChangeEnd when dragging ends
239
- if (wasDragging && !dragging) {
240
- getOptions().onChangeEnd?.(value());
241
- }
242
- };
243
-
244
- // Get display color (alpha = 1)
245
- const getDisplayColor = () => {
246
- return value().withChannelValue('alpha', 1);
247
- };
248
-
249
- return {
250
- get value() {
251
- return value();
252
- },
253
- get xChannel() {
254
- return xChannel();
255
- },
256
- get yChannel() {
257
- return yChannel();
258
- },
259
- get zChannel() {
260
- return zChannel();
261
- },
262
- get isDragging() {
263
- return isDragging();
264
- },
265
- get isDisabled() {
266
- return isDisabled();
267
- },
268
- get xChannelStep() {
269
- return xChannelStep();
270
- },
271
- get yChannelStep() {
272
- return yChannelStep();
273
- },
274
- get xChannelPageStep() {
275
- return xChannelPageStep();
276
- },
277
- get yChannelPageStep() {
278
- return yChannelPageStep();
279
- },
280
- getXValue,
281
- getYValue,
282
- setXValue,
283
- setYValue,
284
- setColorFromPoint,
285
- getThumbPosition,
286
- incrementX,
287
- decrementX,
288
- incrementY,
289
- decrementY,
290
- setDragging: setDraggingState,
291
- getDisplayColor,
292
- };
293
- }
1
+ /**
2
+ * ColorArea state management.
3
+ * Based on @react-stately/color useColorAreaState.
4
+ */
5
+
6
+ import { createSignal, createMemo, type Accessor } from 'solid-js';
7
+ import type { Color, ColorChannel, ColorAxes } from './types';
8
+ import { normalizeColor } from './Color';
9
+
10
+ export interface ColorAreaStateOptions {
11
+ /** The current color value (controlled). */
12
+ value?: Color | string;
13
+ /** The default color value (uncontrolled). */
14
+ defaultValue?: Color | string;
15
+ /** Handler called when the color changes. */
16
+ onChange?: (color: Color) => void;
17
+ /** Handler called when dragging ends. */
18
+ onChangeEnd?: (color: Color) => void;
19
+ /** The color channel for the X axis. */
20
+ xChannel?: ColorChannel;
21
+ /** The color channel for the Y axis. */
22
+ yChannel?: ColorChannel;
23
+ /** Whether the area is disabled. */
24
+ isDisabled?: boolean;
25
+ }
26
+
27
+ export interface ColorAreaState {
28
+ /** The current color value. */
29
+ readonly value: Color;
30
+ /** The X axis channel. */
31
+ readonly xChannel: ColorChannel;
32
+ /** The Y axis channel. */
33
+ readonly yChannel: ColorChannel;
34
+ /** The Z axis channel (the third channel). */
35
+ readonly zChannel: ColorChannel;
36
+ /** Whether the area is being dragged. */
37
+ readonly isDragging: boolean;
38
+ /** Whether the area is disabled. */
39
+ readonly isDisabled: boolean;
40
+ /** Step for X channel. */
41
+ readonly xChannelStep: number;
42
+ /** Step for Y channel. */
43
+ readonly yChannelStep: number;
44
+ /** Page step for X channel. */
45
+ readonly xChannelPageStep: number;
46
+ /** Page step for Y channel. */
47
+ readonly yChannelPageStep: number;
48
+
49
+ /** Get the X channel value. */
50
+ getXValue(): number;
51
+ /** Get the Y channel value. */
52
+ getYValue(): number;
53
+ /** Set the X channel value. */
54
+ setXValue(value: number): void;
55
+ /** Set the Y channel value. */
56
+ setYValue(value: number): void;
57
+ /** Set color from a point (0-1, 0-1). */
58
+ setColorFromPoint(x: number, y: number): void;
59
+ /** Get the thumb position as percentages. */
60
+ getThumbPosition(): { x: number; y: number };
61
+ /** Increment X value. */
62
+ incrementX(stepSize?: number): void;
63
+ /** Decrement X value. */
64
+ decrementX(stepSize?: number): void;
65
+ /** Increment Y value. */
66
+ incrementY(stepSize?: number): void;
67
+ /** Decrement Y value. */
68
+ decrementY(stepSize?: number): void;
69
+ /** Set the dragging state. */
70
+ setDragging(isDragging: boolean): void;
71
+ /** Get the display color (with alpha = 1). */
72
+ getDisplayColor(): Color;
73
+ }
74
+
75
+ /**
76
+ * Creates state for a color area (2D color picker).
77
+ */
78
+ export function createColorAreaState(
79
+ options: Accessor<ColorAreaStateOptions>
80
+ ): ColorAreaState {
81
+ const getOptions = () => options();
82
+
83
+ // Internal value state
84
+ const [internalValue, setInternalValue] = createSignal<Color | null>(null);
85
+ const [isDragging, setIsDragging] = createSignal(false);
86
+
87
+ // Initialize internal value
88
+ const initValue = () => {
89
+ const opts = getOptions();
90
+ if (opts.defaultValue) {
91
+ return normalizeColor(opts.defaultValue);
92
+ }
93
+ return null;
94
+ };
95
+
96
+ // Set initial value
97
+ if (internalValue() === null) {
98
+ const init = initValue();
99
+ if (init) {
100
+ setInternalValue(init);
101
+ }
102
+ }
103
+
104
+ // Controlled vs uncontrolled value
105
+ const value = createMemo(() => {
106
+ const opts = getOptions();
107
+ if (opts.value !== undefined) {
108
+ return normalizeColor(opts.value);
109
+ }
110
+ return internalValue() ?? normalizeColor('#ff0000');
111
+ });
112
+
113
+ const isDisabled = createMemo(() => getOptions().isDisabled ?? false);
114
+
115
+ // Get color axes
116
+ const axes = createMemo<ColorAxes>(() => {
117
+ const opts = getOptions();
118
+ return value().getColorSpaceAxes({
119
+ xChannel: opts.xChannel,
120
+ yChannel: opts.yChannel,
121
+ });
122
+ });
123
+
124
+ const xChannel = createMemo(() => axes().xChannel);
125
+ const yChannel = createMemo(() => axes().yChannel);
126
+ const zChannel = createMemo(() => axes().zChannel);
127
+
128
+ // Get channel ranges
129
+ const xRange = createMemo(() => value().getChannelRange(xChannel()));
130
+ const yRange = createMemo(() => value().getChannelRange(yChannel()));
131
+
132
+ const xChannelStep = createMemo(() => xRange().step);
133
+ const yChannelStep = createMemo(() => yRange().step);
134
+ const xChannelPageStep = createMemo(() => xRange().pageSize);
135
+ const yChannelPageStep = createMemo(() => yRange().pageSize);
136
+
137
+ // Update value
138
+ const updateValue = (newColor: Color) => {
139
+ const opts = getOptions();
140
+
141
+ // Controlled mode
142
+ if (opts.value !== undefined) {
143
+ opts.onChange?.(newColor);
144
+ return;
145
+ }
146
+
147
+ // Uncontrolled mode
148
+ setInternalValue(newColor);
149
+ opts.onChange?.(newColor);
150
+ };
151
+
152
+ // Get X value
153
+ const getXValue = () => value().getChannelValue(xChannel());
154
+
155
+ // Get Y value
156
+ const getYValue = () => value().getChannelValue(yChannel());
157
+
158
+ // Set X value
159
+ const setXValue = (newValue: number) => {
160
+ const range = xRange();
161
+ const clamped = Math.max(range.minValue, Math.min(range.maxValue, newValue));
162
+ const rounded = Math.round(clamped / range.step) * range.step;
163
+ const newColor = value().withChannelValue(xChannel(), rounded);
164
+ updateValue(newColor);
165
+ };
166
+
167
+ // Set Y value
168
+ const setYValue = (newValue: number) => {
169
+ const range = yRange();
170
+ const clamped = Math.max(range.minValue, Math.min(range.maxValue, newValue));
171
+ const rounded = Math.round(clamped / range.step) * range.step;
172
+ const newColor = value().withChannelValue(yChannel(), rounded);
173
+ updateValue(newColor);
174
+ };
175
+
176
+ // Set color from point (x: 0-1, y: 0-1)
177
+ const setColorFromPoint = (x: number, y: number) => {
178
+ const xR = xRange();
179
+ const yR = yRange();
180
+
181
+ const xVal = xR.minValue + (xR.maxValue - xR.minValue) * x;
182
+ const yVal = yR.minValue + (yR.maxValue - yR.minValue) * (1 - y); // Y is inverted
183
+
184
+ const xClamped = Math.max(xR.minValue, Math.min(xR.maxValue, xVal));
185
+ const yClamped = Math.max(yR.minValue, Math.min(yR.maxValue, yVal));
186
+
187
+ const xRounded = Math.round(xClamped / xR.step) * xR.step;
188
+ const yRounded = Math.round(yClamped / yR.step) * yR.step;
189
+
190
+ const newColor = value()
191
+ .withChannelValue(xChannel(), xRounded)
192
+ .withChannelValue(yChannel(), yRounded);
193
+ updateValue(newColor);
194
+ };
195
+
196
+ // Get thumb position as percentages
197
+ const getThumbPosition = () => {
198
+ const xR = xRange();
199
+ const yR = yRange();
200
+ const xVal = getXValue();
201
+ const yVal = getYValue();
202
+
203
+ return {
204
+ x: (xVal - xR.minValue) / (xR.maxValue - xR.minValue),
205
+ y: 1 - (yVal - yR.minValue) / (yR.maxValue - yR.minValue), // Y is inverted
206
+ };
207
+ };
208
+
209
+ // Increment X
210
+ const incrementX = (stepSize?: number) => {
211
+ const s = stepSize ?? xChannelStep();
212
+ setXValue(getXValue() + s);
213
+ };
214
+
215
+ // Decrement X
216
+ const decrementX = (stepSize?: number) => {
217
+ const s = stepSize ?? xChannelStep();
218
+ setXValue(getXValue() - s);
219
+ };
220
+
221
+ // Increment Y
222
+ const incrementY = (stepSize?: number) => {
223
+ const s = stepSize ?? yChannelStep();
224
+ setYValue(getYValue() + s);
225
+ };
226
+
227
+ // Decrement Y
228
+ const decrementY = (stepSize?: number) => {
229
+ const s = stepSize ?? yChannelStep();
230
+ setYValue(getYValue() - s);
231
+ };
232
+
233
+ // Set dragging
234
+ const setDraggingState = (dragging: boolean) => {
235
+ const wasDragging = isDragging();
236
+ setIsDragging(dragging);
237
+
238
+ // Call onChangeEnd when dragging ends
239
+ if (wasDragging && !dragging) {
240
+ getOptions().onChangeEnd?.(value());
241
+ }
242
+ };
243
+
244
+ // Get display color (alpha = 1)
245
+ const getDisplayColor = () => {
246
+ return value().withChannelValue('alpha', 1);
247
+ };
248
+
249
+ return {
250
+ get value() {
251
+ return value();
252
+ },
253
+ get xChannel() {
254
+ return xChannel();
255
+ },
256
+ get yChannel() {
257
+ return yChannel();
258
+ },
259
+ get zChannel() {
260
+ return zChannel();
261
+ },
262
+ get isDragging() {
263
+ return isDragging();
264
+ },
265
+ get isDisabled() {
266
+ return isDisabled();
267
+ },
268
+ get xChannelStep() {
269
+ return xChannelStep();
270
+ },
271
+ get yChannelStep() {
272
+ return yChannelStep();
273
+ },
274
+ get xChannelPageStep() {
275
+ return xChannelPageStep();
276
+ },
277
+ get yChannelPageStep() {
278
+ return yChannelPageStep();
279
+ },
280
+ getXValue,
281
+ getYValue,
282
+ setXValue,
283
+ setYValue,
284
+ setColorFromPoint,
285
+ getThumbPosition,
286
+ incrementX,
287
+ decrementX,
288
+ incrementY,
289
+ decrementY,
290
+ setDragging: setDraggingState,
291
+ getDisplayColor,
292
+ };
293
+ }