@sit-onyx/headless 0.4.0-dev-20251112133447 → 0.4.0-dev-20251118074438

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.
@@ -0,0 +1,9 @@
1
+ type __VLS_PublicProps = {
2
+ modelValue: number | [number, number];
3
+ };
4
+ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
5
+ "update:modelValue": (value: number | [number, number]) => any;
6
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
7
+ "onUpdate:modelValue"?: ((value: number | [number, number]) => any) | undefined;
8
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
9
+ export default _default;
@@ -1,15 +1,13 @@
1
1
  import { MaybeRef, Ref } from 'vue';
2
- import { Nullable } from '../../utils/types.js';
3
2
  export type SliderMark = {
4
3
  value: number;
5
4
  label?: string;
6
- } | number;
7
- export type CreateSliderOptions<TValue extends number | number[] = number> = {
5
+ };
6
+ type SliderValue = number | [number, number];
7
+ export type NormalizedSliderValue = [number] | [number, number];
8
+ export type CreateSliderOptions<TValue extends SliderValue = SliderValue> = {
8
9
  /**
9
10
  * Current value(s) of the slider.
10
- * Each value should be between min and max.
11
- *
12
- * @default [min]
13
11
  */
14
12
  value: Ref<TValue>;
15
13
  /**
@@ -31,16 +29,9 @@ export type CreateSliderOptions<TValue extends number | number[] = number> = {
31
29
  */
32
30
  step?: MaybeRef<number>;
33
31
  /**
34
- * Whether to render the slider in discrete mode.
35
- *
36
- * @default false
37
- */
38
- discrete?: MaybeRef<boolean>;
39
- /**
40
- * Step size when holding shift key or using Page Up/Page Down keys.
32
+ * Step size to increase/decrease the slider value when changing the value via keyboard while pressing the "Shift" key.
41
33
  *
42
- * Defaults to 10% of the total range (max - min) multiplied by the step size.
43
- * This provides intuitive behavior that automatically scales with different slider ranges.
34
+ * default 10% of the total range (max - min)
44
35
  */
45
36
  shiftStep?: MaybeRef<number>;
46
37
  /**
@@ -50,27 +41,21 @@ export type CreateSliderOptions<TValue extends number | number[] = number> = {
50
41
  */
51
42
  disabled?: MaybeRef<boolean>;
52
43
  /**
53
- * Array of marks to display on the slider.
44
+ * Whether to show marks inside the slider rail.
45
+ * - `true`: will generate marks automatically based on `step` prop
46
+ * - array of numbers or `SliderMark` objects: will shown at the specified values with optional labels
54
47
  *
55
48
  * @default false
56
49
  */
57
- marks?: MaybeRef<Nullable<SliderMark[] | boolean>>;
50
+ marks?: MaybeRef<SliderMark[] | number[] | boolean>;
58
51
  /**
59
52
  * Aria label for the slider.
60
- *
61
- * @default undefined
62
53
  */
63
54
  label: MaybeRef<string>;
64
55
  /**
65
- * Callback when the value changes during interaction.
66
- * Note: This is called during interaction (dragging, key press, etc.).
56
+ * Callback when the current value changes.
67
57
  */
68
58
  onChange?: (value: TValue) => void;
69
- /**
70
- * Callback when the value is committed (drag end, key press, etc.).
71
- * Note: This is called when the user stops interacting with the slider.
72
- */
73
- onCommit?: (value: TValue) => void;
74
59
  };
75
60
  /**
76
61
  * Composable for creating an accessibility-compliant slider.
@@ -79,17 +64,195 @@ export type CreateSliderOptions<TValue extends number | number[] = number> = {
79
64
  * * @experimental
80
65
  * @deprecated This component is still under active development and its API might change in patch releases.
81
66
  */
82
- export declare const _unstableCreateSlider: <TValue extends number | number[] = number>(options: CreateSliderOptions<TValue>) => import('../../utils/builder.js').HeadlessComposable<{
67
+ export declare const _unstableCreateSlider: <TValue extends SliderValue>(options: CreateSliderOptions<TValue>) => import('../../utils/builder.js').HeadlessComposable<{
83
68
  /**
84
69
  * Root slider container element
85
70
  */
86
71
  root: import('vue').ComputedRef<{
72
+ innerHTML?: string | undefined;
73
+ class?: any;
74
+ style: string | false | import('vue').CSSProperties | import('vue').StyleValue[] | null;
75
+ accesskey?: string | undefined;
76
+ contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
77
+ contextmenu?: string | undefined;
78
+ dir?: string | undefined;
79
+ draggable?: (boolean | "true" | "false") | undefined;
80
+ hidden?: (boolean | "true" | "false") | "" | "hidden" | "until-found" | undefined;
81
+ id?: string | undefined;
82
+ inert?: (boolean | "true" | "false") | undefined;
83
+ lang?: string | undefined;
84
+ placeholder?: string | undefined;
85
+ spellcheck?: (boolean | "true" | "false") | undefined;
86
+ tabindex?: (string | number) | undefined;
87
+ title?: string | undefined;
88
+ translate?: "yes" | "no" | undefined;
89
+ radiogroup?: string | undefined;
90
+ role?: string | undefined;
91
+ about?: string | undefined;
92
+ datatype?: string | undefined;
93
+ inlist?: any;
94
+ prefix?: string | undefined;
95
+ property?: string | undefined;
96
+ resource?: string | undefined;
97
+ typeof?: string | undefined;
98
+ vocab?: string | undefined;
99
+ autocapitalize?: string | undefined;
100
+ autocorrect?: string | undefined;
101
+ autosave?: string | undefined;
102
+ color?: string | undefined;
103
+ itemprop?: string | undefined;
104
+ itemscope?: (boolean | "true" | "false") | undefined;
105
+ itemtype?: string | undefined;
106
+ itemid?: string | undefined;
107
+ itemref?: string | undefined;
108
+ results?: (string | number) | undefined;
109
+ security?: string | undefined;
110
+ unselectable?: "on" | "off" | undefined;
111
+ inputmode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined;
112
+ is?: string | undefined;
113
+ 'aria-activedescendant'?: string | undefined;
114
+ 'aria-atomic'?: (boolean | "true" | "false") | undefined;
115
+ 'aria-autocomplete'?: "none" | "inline" | "list" | "both" | undefined;
116
+ 'aria-busy'?: (boolean | "true" | "false") | undefined;
117
+ 'aria-checked'?: (boolean | "true" | "false") | "mixed" | undefined;
118
+ 'aria-colcount'?: (string | number) | undefined;
119
+ 'aria-colindex'?: (string | number) | undefined;
120
+ 'aria-colspan'?: (string | number) | undefined;
121
+ 'aria-controls'?: string | undefined;
122
+ 'aria-current'?: (boolean | "true" | "false") | "page" | "step" | "location" | "date" | "time" | undefined;
123
+ 'aria-describedby'?: string | undefined;
124
+ 'aria-details'?: string | undefined;
125
+ 'aria-disabled'?: (boolean | "true" | "false") | undefined;
126
+ 'aria-dropeffect'?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
127
+ 'aria-errormessage'?: string | undefined;
128
+ 'aria-expanded'?: (boolean | "true" | "false") | undefined;
129
+ 'aria-flowto'?: string | undefined;
130
+ 'aria-grabbed'?: (boolean | "true" | "false") | undefined;
131
+ 'aria-haspopup'?: (boolean | "true" | "false") | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
132
+ 'aria-hidden'?: (boolean | "true" | "false") | undefined;
133
+ 'aria-invalid'?: (boolean | "true" | "false") | "grammar" | "spelling" | undefined;
134
+ 'aria-keyshortcuts'?: string | undefined;
135
+ 'aria-label'?: string | undefined;
136
+ 'aria-labelledby'?: string | undefined;
137
+ 'aria-level'?: (string | number) | undefined;
138
+ 'aria-live'?: "off" | "assertive" | "polite" | undefined;
139
+ 'aria-modal'?: (boolean | "true" | "false") | undefined;
140
+ 'aria-multiline'?: (boolean | "true" | "false") | undefined;
141
+ 'aria-multiselectable'?: (boolean | "true" | "false") | undefined;
142
+ 'aria-orientation'?: "horizontal" | "vertical" | undefined;
143
+ 'aria-owns'?: string | undefined;
144
+ 'aria-placeholder'?: string | undefined;
145
+ 'aria-posinset'?: (string | number) | undefined;
146
+ 'aria-pressed'?: (boolean | "true" | "false") | "mixed" | undefined;
147
+ 'aria-readonly'?: (boolean | "true" | "false") | undefined;
148
+ 'aria-relevant'?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined;
149
+ 'aria-required'?: (boolean | "true" | "false") | undefined;
150
+ 'aria-roledescription'?: string | undefined;
151
+ 'aria-rowcount'?: (string | number) | undefined;
152
+ 'aria-rowindex'?: (string | number) | undefined;
153
+ 'aria-rowspan'?: (string | number) | undefined;
154
+ 'aria-selected'?: (boolean | "true" | "false") | undefined;
155
+ 'aria-setsize'?: (string | number) | undefined;
156
+ 'aria-sort'?: "none" | "ascending" | "descending" | "other" | undefined;
157
+ 'aria-valuemax'?: (string | number) | undefined;
158
+ 'aria-valuemin'?: (string | number) | undefined;
159
+ 'aria-valuenow'?: (string | number) | undefined;
160
+ 'aria-valuetext'?: string | undefined;
161
+ onCopy?: ((payload: ClipboardEvent) => void) | undefined;
162
+ onCut?: ((payload: ClipboardEvent) => void) | undefined;
163
+ onPaste?: ((payload: ClipboardEvent) => void) | undefined;
164
+ onCompositionend?: ((payload: CompositionEvent) => void) | undefined;
165
+ onCompositionstart?: ((payload: CompositionEvent) => void) | undefined;
166
+ onCompositionupdate?: ((payload: CompositionEvent) => void) | undefined;
167
+ onDrag?: ((payload: DragEvent) => void) | undefined;
168
+ onDragend?: ((payload: DragEvent) => void) | undefined;
169
+ onDragenter?: ((payload: DragEvent) => void) | undefined;
170
+ onDragexit?: ((payload: DragEvent) => void) | undefined;
171
+ onDragleave?: ((payload: DragEvent) => void) | undefined;
172
+ onDragover?: ((payload: DragEvent) => void) | undefined;
173
+ onDragstart?: ((payload: DragEvent) => void) | undefined;
174
+ onDrop?: ((payload: DragEvent) => void) | undefined;
175
+ onFocus?: ((payload: FocusEvent) => void) | undefined;
176
+ onFocusin?: ((payload: FocusEvent) => void) | undefined;
177
+ onFocusout?: ((payload: FocusEvent) => void) | undefined;
178
+ onBlur?: ((payload: FocusEvent) => void) | undefined;
179
+ onChange?: ((payload: Event) => void) | undefined;
180
+ onBeforeinput?: ((payload: InputEvent) => void) | undefined;
181
+ onFormdata?: ((payload: FormDataEvent) => void) | undefined;
182
+ onInput?: ((payload: InputEvent) => void) | undefined;
183
+ onReset?: ((payload: Event) => void) | undefined;
184
+ onSubmit?: ((payload: SubmitEvent) => void) | undefined;
185
+ onInvalid?: ((payload: Event) => void) | undefined;
186
+ onFullscreenchange?: ((payload: Event) => void) | undefined;
187
+ onFullscreenerror?: ((payload: Event) => void) | undefined;
188
+ onLoad?: ((payload: Event) => void) | undefined;
189
+ onError?: ((payload: Event) => void) | undefined;
190
+ onKeydown?: ((payload: KeyboardEvent) => void) | undefined;
191
+ onKeypress?: ((payload: KeyboardEvent) => void) | undefined;
192
+ onKeyup?: ((payload: KeyboardEvent) => void) | undefined;
193
+ onDblclick?: ((payload: MouseEvent) => void) | undefined;
194
+ onMousedown?: ((payload: MouseEvent) => void) | undefined;
195
+ onMouseenter?: ((payload: MouseEvent) => void) | undefined;
196
+ onMouseleave?: ((payload: MouseEvent) => void) | undefined;
197
+ onMousemove?: ((payload: MouseEvent) => void) | undefined;
198
+ onMouseout?: ((payload: MouseEvent) => void) | undefined;
199
+ onMouseover?: ((payload: MouseEvent) => void) | undefined;
200
+ onMouseup?: ((payload: MouseEvent) => void) | undefined;
201
+ onAbort?: ((payload: UIEvent) => void) | undefined;
202
+ onCanplay?: ((payload: Event) => void) | undefined;
203
+ onCanplaythrough?: ((payload: Event) => void) | undefined;
204
+ onDurationchange?: ((payload: Event) => void) | undefined;
205
+ onEmptied?: ((payload: Event) => void) | undefined;
206
+ onEncrypted?: ((payload: MediaEncryptedEvent) => void) | undefined;
207
+ onEnded?: ((payload: Event) => void) | undefined;
208
+ onLoadeddata?: ((payload: Event) => void) | undefined;
209
+ onLoadedmetadata?: ((payload: Event) => void) | undefined;
210
+ onLoadstart?: ((payload: Event) => void) | undefined;
211
+ onPause?: ((payload: Event) => void) | undefined;
212
+ onPlay?: ((payload: Event) => void) | undefined;
213
+ onPlaying?: ((payload: Event) => void) | undefined;
214
+ onProgress?: ((payload: ProgressEvent<EventTarget>) => void) | undefined;
215
+ onRatechange?: ((payload: Event) => void) | undefined;
216
+ onSeeked?: ((payload: Event) => void) | undefined;
217
+ onSeeking?: ((payload: Event) => void) | undefined;
218
+ onStalled?: ((payload: Event) => void) | undefined;
219
+ onSuspend?: ((payload: Event) => void) | undefined;
220
+ onTimeupdate?: ((payload: Event) => void) | undefined;
221
+ onVolumechange?: ((payload: Event) => void) | undefined;
222
+ onWaiting?: ((payload: Event) => void) | undefined;
223
+ onSelect?: ((payload: Event) => void) | undefined;
224
+ onScroll?: ((payload: Event) => void) | undefined;
225
+ onScrollend?: ((payload: Event) => void) | undefined;
226
+ onTouchcancel?: ((payload: TouchEvent) => void) | undefined;
227
+ onTouchend?: ((payload: TouchEvent) => void) | undefined;
228
+ onTouchmove?: ((payload: TouchEvent) => void) | undefined;
229
+ onTouchstart?: ((payload: TouchEvent) => void) | undefined;
230
+ onAuxclick?: ((payload: PointerEvent) => void) | undefined;
231
+ onClick?: ((payload: PointerEvent) => void) | undefined;
232
+ onContextmenu?: ((payload: PointerEvent) => void) | undefined;
233
+ onGotpointercapture?: ((payload: PointerEvent) => void) | undefined;
234
+ onLostpointercapture?: ((payload: PointerEvent) => void) | undefined;
235
+ onPointerdown?: ((payload: PointerEvent) => void) | undefined;
236
+ onPointermove?: ((payload: PointerEvent) => void) | undefined;
237
+ onPointerup?: ((payload: PointerEvent) => void) | undefined;
238
+ onPointercancel?: ((payload: PointerEvent) => void) | undefined;
239
+ onPointerenter?: ((payload: PointerEvent) => void) | undefined;
240
+ onPointerleave?: ((payload: PointerEvent) => void) | undefined;
241
+ onPointerover?: ((payload: PointerEvent) => void) | undefined;
242
+ onPointerout?: ((payload: PointerEvent) => void) | undefined;
243
+ onBeforetoggle?: ((payload: ToggleEvent) => void) | undefined;
244
+ onToggle?: ((payload: ToggleEvent) => void) | undefined;
245
+ onWheel?: ((payload: WheelEvent) => void) | undefined;
246
+ onAnimationcancel?: ((payload: AnimationEvent) => void) | undefined;
247
+ onAnimationstart?: ((payload: AnimationEvent) => void) | undefined;
248
+ onAnimationend?: ((payload: AnimationEvent) => void) | undefined;
249
+ onAnimationiteration?: ((payload: AnimationEvent) => void) | undefined;
250
+ onSecuritypolicyviolation?: ((payload: SecurityPolicyViolationEvent) => void) | undefined;
251
+ onTransitioncancel?: ((payload: TransitionEvent) => void) | undefined;
252
+ onTransitionend?: ((payload: TransitionEvent) => void) | undefined;
253
+ onTransitionrun?: ((payload: TransitionEvent) => void) | undefined;
254
+ onTransitionstart?: ((payload: TransitionEvent) => void) | undefined;
87
255
  ref: import('../../utils/builder.js').HeadlessElRef<HTMLElement>;
88
- style: {
89
- touchAction: "pan-y";
90
- };
91
- onMousedown: (event: MouseEvent) => void;
92
- onTouchstart: (event: TouchEvent) => void;
93
256
  }>;
94
257
  /**
95
258
  * Individual thumb elements for each value (span)
@@ -98,46 +261,215 @@ export declare const _unstableCreateSlider: <TValue extends number | number[] =
98
261
  index: number;
99
262
  value: number;
100
263
  }) => {
101
- "data-index": number;
102
264
  style: {
103
265
  left: string;
104
266
  };
105
267
  }>;
106
268
  /**
107
- * Visually hidden input inside each thumb for accessibility
269
+ * Input inside each thumb for accessibility
108
270
  */
109
271
  thumbInput: import('vue').ComputedRef<(data: {
110
272
  index: number;
111
273
  value: number;
112
274
  }) => {
275
+ innerHTML?: string | undefined;
276
+ class?: any;
277
+ style?: import('vue').StyleValue | undefined;
278
+ accesskey?: string | undefined;
279
+ contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
280
+ contextmenu?: string | undefined;
281
+ dir?: string | undefined;
282
+ draggable?: (boolean | "true" | "false") | undefined;
283
+ hidden?: (boolean | "true" | "false") | "" | "hidden" | "until-found" | undefined;
284
+ id?: string | undefined;
285
+ inert?: (boolean | "true" | "false") | undefined;
286
+ lang?: string | undefined;
287
+ placeholder?: string | undefined;
288
+ spellcheck?: (boolean | "true" | "false") | undefined;
289
+ tabindex?: (string | number) | undefined;
290
+ title?: string | undefined;
291
+ translate?: "yes" | "no" | undefined;
292
+ radiogroup?: string | undefined;
293
+ role: string;
294
+ about?: string | undefined;
295
+ datatype?: string | undefined;
296
+ inlist?: any;
297
+ prefix?: string | undefined;
298
+ property?: string | undefined;
299
+ resource?: string | undefined;
300
+ typeof?: string | undefined;
301
+ vocab?: string | undefined;
302
+ autocapitalize?: string | undefined;
303
+ autocorrect?: string | undefined;
304
+ autosave?: string | undefined;
305
+ color?: string | undefined;
306
+ itemprop?: string | undefined;
307
+ itemscope?: (boolean | "true" | "false") | undefined;
308
+ itemtype?: string | undefined;
309
+ itemid?: string | undefined;
310
+ itemref?: string | undefined;
311
+ results?: (string | number) | undefined;
312
+ security?: string | undefined;
313
+ unselectable?: "on" | "off" | undefined;
314
+ inputmode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined;
315
+ is?: string | undefined;
316
+ 'aria-activedescendant'?: string | undefined;
317
+ 'aria-atomic'?: (boolean | "true" | "false") | undefined;
318
+ 'aria-autocomplete'?: "none" | "inline" | "list" | "both" | undefined;
319
+ 'aria-busy'?: (boolean | "true" | "false") | undefined;
320
+ 'aria-checked'?: (boolean | "true" | "false") | "mixed" | undefined;
321
+ 'aria-colcount'?: (string | number) | undefined;
322
+ 'aria-colindex'?: (string | number) | undefined;
323
+ 'aria-colspan'?: (string | number) | undefined;
324
+ 'aria-controls'?: string | undefined;
325
+ 'aria-current'?: (boolean | "true" | "false") | "page" | "step" | "location" | "date" | "time" | undefined;
326
+ 'aria-describedby'?: string | undefined;
327
+ 'aria-details'?: string | undefined;
328
+ 'aria-disabled'?: (boolean | "true" | "false") | undefined;
329
+ 'aria-dropeffect'?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
330
+ 'aria-errormessage'?: string | undefined;
331
+ 'aria-expanded'?: (boolean | "true" | "false") | undefined;
332
+ 'aria-flowto'?: string | undefined;
333
+ 'aria-grabbed'?: (boolean | "true" | "false") | undefined;
334
+ 'aria-haspopup'?: (boolean | "true" | "false") | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
335
+ 'aria-hidden'?: (boolean | "true" | "false") | undefined;
336
+ 'aria-invalid'?: (boolean | "true" | "false") | "grammar" | "spelling" | undefined;
337
+ 'aria-keyshortcuts'?: string | undefined;
338
+ "aria-label": string;
339
+ 'aria-labelledby'?: string | undefined;
340
+ 'aria-level'?: (string | number) | undefined;
341
+ 'aria-live'?: "off" | "assertive" | "polite" | undefined;
342
+ 'aria-modal'?: (boolean | "true" | "false") | undefined;
343
+ 'aria-multiline'?: (boolean | "true" | "false") | undefined;
344
+ 'aria-multiselectable'?: (boolean | "true" | "false") | undefined;
345
+ "aria-orientation": "horizontal" | "vertical";
346
+ 'aria-owns'?: string | undefined;
347
+ 'aria-placeholder'?: string | undefined;
348
+ 'aria-posinset'?: (string | number) | undefined;
349
+ 'aria-pressed'?: (boolean | "true" | "false") | "mixed" | undefined;
350
+ 'aria-readonly'?: (boolean | "true" | "false") | undefined;
351
+ 'aria-relevant'?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined;
352
+ 'aria-required'?: (boolean | "true" | "false") | undefined;
353
+ 'aria-roledescription'?: string | undefined;
354
+ 'aria-rowcount'?: (string | number) | undefined;
355
+ 'aria-rowindex'?: (string | number) | undefined;
356
+ 'aria-rowspan'?: (string | number) | undefined;
357
+ 'aria-selected'?: (boolean | "true" | "false") | undefined;
358
+ 'aria-setsize'?: (string | number) | undefined;
359
+ 'aria-sort'?: "none" | "ascending" | "descending" | "other" | undefined;
360
+ "aria-valuemax": string | number;
361
+ "aria-valuemin": string | number;
362
+ "aria-valuenow": string | number;
363
+ 'aria-valuetext'?: string | undefined;
364
+ onCopy?: ((payload: ClipboardEvent) => void) | undefined;
365
+ onCut?: ((payload: ClipboardEvent) => void) | undefined;
366
+ onPaste?: ((payload: ClipboardEvent) => void) | undefined;
367
+ onCompositionend?: ((payload: CompositionEvent) => void) | undefined;
368
+ onCompositionstart?: ((payload: CompositionEvent) => void) | undefined;
369
+ onCompositionupdate?: ((payload: CompositionEvent) => void) | undefined;
370
+ onDrag?: ((payload: DragEvent) => void) | undefined;
371
+ onDragend?: ((payload: DragEvent) => void) | undefined;
372
+ onDragenter?: ((payload: DragEvent) => void) | undefined;
373
+ onDragexit?: ((payload: DragEvent) => void) | undefined;
374
+ onDragleave?: ((payload: DragEvent) => void) | undefined;
375
+ onDragover?: ((payload: DragEvent) => void) | undefined;
376
+ onDragstart?: ((payload: DragEvent) => void) | undefined;
377
+ onDrop?: ((payload: DragEvent) => void) | undefined;
378
+ onFocus?: ((payload: FocusEvent) => void) | undefined;
379
+ onFocusin?: ((payload: FocusEvent) => void) | undefined;
380
+ onFocusout?: ((payload: FocusEvent) => void) | undefined;
381
+ onBlur?: ((payload: FocusEvent) => void) | undefined;
382
+ onChange?: ((payload: Event) => void) | undefined;
383
+ onBeforeinput?: ((payload: InputEvent) => void) | undefined;
384
+ onFormdata?: ((payload: FormDataEvent) => void) | undefined;
385
+ onInput?: ((payload: InputEvent) => void) | undefined;
386
+ onReset?: ((payload: Event) => void) | undefined;
387
+ onSubmit?: ((payload: SubmitEvent) => void) | undefined;
388
+ onInvalid?: ((payload: Event) => void) | undefined;
389
+ onFullscreenchange?: ((payload: Event) => void) | undefined;
390
+ onFullscreenerror?: ((payload: Event) => void) | undefined;
391
+ onLoad?: ((payload: Event) => void) | undefined;
392
+ onError?: ((payload: Event) => void) | undefined;
393
+ onKeydown?: ((payload: KeyboardEvent) => void) | undefined;
394
+ onKeypress?: ((payload: KeyboardEvent) => void) | undefined;
395
+ onKeyup?: ((payload: KeyboardEvent) => void) | undefined;
396
+ onDblclick?: ((payload: MouseEvent) => void) | undefined;
397
+ onMousedown?: ((payload: MouseEvent) => void) | undefined;
398
+ onMouseenter?: ((payload: MouseEvent) => void) | undefined;
399
+ onMouseleave?: ((payload: MouseEvent) => void) | undefined;
400
+ onMousemove?: ((payload: MouseEvent) => void) | undefined;
401
+ onMouseout?: ((payload: MouseEvent) => void) | undefined;
402
+ onMouseover?: ((payload: MouseEvent) => void) | undefined;
403
+ onMouseup?: ((payload: MouseEvent) => void) | undefined;
404
+ onAbort?: ((payload: UIEvent) => void) | undefined;
405
+ onCanplay?: ((payload: Event) => void) | undefined;
406
+ onCanplaythrough?: ((payload: Event) => void) | undefined;
407
+ onDurationchange?: ((payload: Event) => void) | undefined;
408
+ onEmptied?: ((payload: Event) => void) | undefined;
409
+ onEncrypted?: ((payload: MediaEncryptedEvent) => void) | undefined;
410
+ onEnded?: ((payload: Event) => void) | undefined;
411
+ onLoadeddata?: ((payload: Event) => void) | undefined;
412
+ onLoadedmetadata?: ((payload: Event) => void) | undefined;
413
+ onLoadstart?: ((payload: Event) => void) | undefined;
414
+ onPause?: ((payload: Event) => void) | undefined;
415
+ onPlay?: ((payload: Event) => void) | undefined;
416
+ onPlaying?: ((payload: Event) => void) | undefined;
417
+ onProgress?: ((payload: ProgressEvent<EventTarget>) => void) | undefined;
418
+ onRatechange?: ((payload: Event) => void) | undefined;
419
+ onSeeked?: ((payload: Event) => void) | undefined;
420
+ onSeeking?: ((payload: Event) => void) | undefined;
421
+ onStalled?: ((payload: Event) => void) | undefined;
422
+ onSuspend?: ((payload: Event) => void) | undefined;
423
+ onTimeupdate?: ((payload: Event) => void) | undefined;
424
+ onVolumechange?: ((payload: Event) => void) | undefined;
425
+ onWaiting?: ((payload: Event) => void) | undefined;
426
+ onSelect?: ((payload: Event) => void) | undefined;
427
+ onScroll?: ((payload: Event) => void) | undefined;
428
+ onScrollend?: ((payload: Event) => void) | undefined;
429
+ onTouchcancel?: ((payload: TouchEvent) => void) | undefined;
430
+ onTouchend?: ((payload: TouchEvent) => void) | undefined;
431
+ onTouchmove?: ((payload: TouchEvent) => void) | undefined;
432
+ onTouchstart?: ((payload: TouchEvent) => void) | undefined;
433
+ onAuxclick?: ((payload: PointerEvent) => void) | undefined;
434
+ onClick?: ((payload: PointerEvent) => void) | undefined;
435
+ onContextmenu?: ((payload: PointerEvent) => void) | undefined;
436
+ onGotpointercapture?: ((payload: PointerEvent) => void) | undefined;
437
+ onLostpointercapture?: ((payload: PointerEvent) => void) | undefined;
438
+ onPointerdown?: ((payload: PointerEvent) => void) | undefined;
439
+ onPointermove?: ((payload: PointerEvent) => void) | undefined;
440
+ onPointerup?: ((payload: PointerEvent) => void) | undefined;
441
+ onPointercancel?: ((payload: PointerEvent) => void) | undefined;
442
+ onPointerenter?: ((payload: PointerEvent) => void) | undefined;
443
+ onPointerleave?: ((payload: PointerEvent) => void) | undefined;
444
+ onPointerover?: ((payload: PointerEvent) => void) | undefined;
445
+ onPointerout?: ((payload: PointerEvent) => void) | undefined;
446
+ onBeforetoggle?: ((payload: ToggleEvent) => void) | undefined;
447
+ onToggle?: ((payload: ToggleEvent) => void) | undefined;
448
+ onWheel?: ((payload: WheelEvent) => void) | undefined;
449
+ onAnimationcancel?: ((payload: AnimationEvent) => void) | undefined;
450
+ onAnimationstart?: ((payload: AnimationEvent) => void) | undefined;
451
+ onAnimationend?: ((payload: AnimationEvent) => void) | undefined;
452
+ onAnimationiteration?: ((payload: AnimationEvent) => void) | undefined;
453
+ onSecuritypolicyviolation?: ((payload: SecurityPolicyViolationEvent) => void) | undefined;
454
+ onTransitioncancel?: ((payload: TransitionEvent) => void) | undefined;
455
+ onTransitionend?: ((payload: TransitionEvent) => void) | undefined;
456
+ onTransitionrun?: ((payload: TransitionEvent) => void) | undefined;
457
+ onTransitionstart?: ((payload: TransitionEvent) => void) | undefined;
113
458
  min: number;
114
459
  max: number;
115
460
  value: number;
116
- role: string;
117
461
  type: string;
118
- "aria-label": string;
119
- "aria-valuemin": number;
120
- "aria-valuemax": number;
121
- "aria-valuenow": number;
122
- "aria-orientation": "horizontal";
123
- "data-index": number;
124
- tabIndex: number;
125
- step: string | number;
126
- disabled: boolean;
127
- onChange: (event: Event) => void;
128
- onFocus: (event: FocusEvent) => void;
129
- onBlur: (event: FocusEvent) => void;
130
- onKeydown: (event: KeyboardEvent) => void;
462
+ step: number;
463
+ disabled: boolean | undefined;
131
464
  }>;
132
465
  /**
133
- * Mark elements
466
+ * Single Mark element inside the rail
134
467
  */
135
468
  mark: import('vue').ComputedRef<(data: {
136
469
  value: number;
137
470
  label?: string;
138
471
  positionOffset?: string;
139
472
  }) => {
140
- "data-value": number;
141
473
  "aria-hidden": true;
142
474
  style: {
143
475
  left: string;
@@ -149,82 +481,26 @@ export declare const _unstableCreateSlider: <TValue extends number | number[] =
149
481
  markLabel: import('vue').ComputedRef<(data: {
150
482
  value: number;
151
483
  }) => {
152
- "data-value": number;
484
+ "aria-hidden": true;
153
485
  style: {
154
486
  left: string;
487
+ transform: `translateX(${string})` | undefined;
155
488
  };
156
- "aria-hidden": true;
157
489
  }>;
158
490
  /**
159
491
  * Track element representing the selected range
160
492
  */
161
493
  track: import('vue').ComputedRef<{
162
- role: string;
163
- "aria-hidden": true;
164
494
  style: {
165
495
  left: string;
166
496
  width: string;
167
497
  };
168
498
  }>;
169
- /**
170
- * Rail element representing the full slider range
171
- */
172
- rail: import('vue').ComputedRef<{
173
- role: string;
174
- "aria-hidden": true;
175
- }>;
176
499
  }, {
177
- /**
178
- * True if the slider is currently being dragged.
179
- */
180
- isDragging: Ref<boolean, boolean>;
181
- /**
182
- * Index of the currently active thumb.
183
- * Thumb could be active even if not dragging (e.g. click on the rail to move the thumb there).
184
- * `-1` if no thumb is active.
185
- */
186
- activeThumbIndex: Ref<number, number>;
187
- /**
188
- * `true` if the slider is a range slider (with two or more thumbs).
189
- */
190
- isRange: import('vue').ComputedRef<boolean>;
191
- /**
192
- * Offset of the track as a percentage (0-100).
193
- */
194
- trackOffset: import('vue').ComputedRef<number>;
195
- /**
196
- * Length of the track as a percentage (0-100).
197
- */
198
- trackLength: import('vue').ComputedRef<number>;
199
- /**
200
- * List of marks to display on the slider.
201
- * - If marks option is `true`, marks are generated based on the step value.
202
- * - If marks option is an array of numbers or objects, it is used as provided (filtered to be within range).
203
- * - If marks option is `false`, no marks are shown.
204
- */
205
- marksList: import('vue').ComputedRef<{
206
- value: number;
207
- label?: string;
208
- }[]>;
209
- /**
210
- * Step size when holding shift key or using Page Up/Page Down keys.
211
- */
500
+ normalizedValue: import('vue').ComputedRef<NormalizedSliderValue>;
212
501
  shiftStep: import('vue').ComputedRef<number>;
213
- /**
214
- * Normalized slider values (clamped to min/max and rounded to nearest step/mark).
215
- */
216
- normalizedValues: import('vue').ComputedRef<number[]>;
502
+ marks: import('vue').ComputedRef<SliderMark[]>;
217
503
  }, {
218
- /**
219
- * Clamps a value to the slider's range.
220
- * @param value - value to clamp
221
- * @returns clamped value
222
- */
223
- clampValue: import('vue').ComputedRef<(value: number) => number>;
224
- /**
225
- * Rounds a value to the nearest valid step.
226
- * @param value - value to round
227
- * @returns rounded value
228
- */
229
- roundToStep: import('vue').ComputedRef<(value: number) => number | undefined>;
504
+ updateValue: (value: number, index: number) => void;
230
505
  }>;
506
+ export {};
@@ -5,45 +5,25 @@ export type SliderTestingOptions = {
5
5
  */
6
6
  page: Page;
7
7
  /**
8
- * Locator for the slider element(s).
8
+ * Locator for the slider element(s) (native `<input>`).
9
9
  */
10
10
  slider: Locator;
11
11
  /**
12
- * Optional: Locator for the slider container/root.
12
+ * Locator to the sliders rail element.
13
13
  */
14
- container?: Locator;
15
- /**
16
- * Expected initial value(s) for the slider.
17
- */
18
- initialValues?: number[];
19
- /**
20
- * Expected min value.
21
- */
22
- min?: number;
23
- /**
24
- * Expected max value.
25
- */
26
- max?: number;
27
- /**
28
- * Expected step value.
29
- */
30
- step?: number;
31
- /**
32
- * Expected shift step value.
33
- */
34
- shiftStep?: number;
14
+ rail: Locator;
35
15
  };
36
16
  /**
37
17
  * Comprehensive testing for single-thumb slider implementation.
38
18
  * Tests basic accessibility, keyboard navigation, and interaction patterns.
19
+ *
20
+ * Slider must have min=0, max=100, step=1 and initial value of 50.
39
21
  */
40
- export declare const singleThumbSliderTesting: ({ page, slider, container, initialValues, min, max, step, shiftStep, }: SliderTestingOptions) => Promise<void>;
22
+ export declare const singleSliderTesting: ({ page, slider, rail }: SliderTestingOptions) => Promise<void>;
41
23
  /**
42
- * Comprehensive testing for multi-thumb (range) slider implementation.
24
+ * Comprehensive testing for range slider implementation.
43
25
  * Tests range-specific behaviors, thumb independence, and collision handling.
26
+ *
27
+ * Slider must have min=0, max=100, step=1 and initial value of [25,75].
44
28
  */
45
- export declare const multiThumbSliderTesting: ({ page, slider, container, initialValues, min, max, step, }: SliderTestingOptions) => Promise<void>;
46
- /**
47
- * Test slider with marks (discrete mode).
48
- */
49
- export declare const discreteSliderTesting: ({ slider }: SliderTestingOptions) => Promise<void>;
29
+ export declare const rangeSliderTesting: ({ page, slider, rail }: SliderTestingOptions) => Promise<void>;