@tamagui/slider 1.61.2 → 1.62.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.
Files changed (53) hide show
  1. package/dist/cjs/Slider.js +72 -191
  2. package/dist/cjs/Slider.js.map +2 -2
  3. package/dist/cjs/Slider.native.js +438 -0
  4. package/dist/cjs/Slider.native.js.map +6 -0
  5. package/dist/cjs/SliderImpl.js +28 -65
  6. package/dist/cjs/SliderImpl.js.map +1 -1
  7. package/dist/cjs/SliderImpl.native.js +107 -0
  8. package/dist/cjs/SliderImpl.native.js.map +6 -0
  9. package/dist/cjs/constants.js +7 -17
  10. package/dist/cjs/constants.js.map +1 -1
  11. package/dist/cjs/constants.native.js +54 -0
  12. package/dist/cjs/constants.native.js.map +6 -0
  13. package/dist/cjs/helpers.js +12 -29
  14. package/dist/cjs/helpers.js.map +1 -1
  15. package/dist/cjs/helpers.native.js +86 -0
  16. package/dist/cjs/helpers.native.js.map +6 -0
  17. package/dist/cjs/index.js +6 -11
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/index.native.js +30 -0
  20. package/dist/cjs/index.native.js.map +6 -0
  21. package/dist/cjs/types.js +3 -6
  22. package/dist/cjs/types.js.map +1 -1
  23. package/dist/cjs/types.native.js +15 -0
  24. package/dist/cjs/types.native.js.map +6 -0
  25. package/dist/esm/Slider.js +65 -167
  26. package/dist/esm/Slider.js.map +2 -2
  27. package/dist/esm/SliderImpl.js +21 -47
  28. package/dist/esm/SliderImpl.js.map +1 -1
  29. package/dist/esm/constants.js +2 -8
  30. package/dist/esm/constants.js.map +1 -1
  31. package/dist/esm/helpers.js +7 -20
  32. package/dist/esm/helpers.js.map +1 -1
  33. package/dist/jsx/Slider.js +59 -158
  34. package/dist/jsx/Slider.js.map +2 -2
  35. package/dist/jsx/Slider.native.js +419 -0
  36. package/dist/jsx/Slider.native.js.map +6 -0
  37. package/dist/jsx/SliderImpl.js +20 -46
  38. package/dist/jsx/SliderImpl.js.map +1 -1
  39. package/dist/jsx/SliderImpl.native.js +77 -0
  40. package/dist/jsx/SliderImpl.native.js.map +6 -0
  41. package/dist/jsx/constants.js +2 -8
  42. package/dist/jsx/constants.js.map +1 -1
  43. package/dist/jsx/constants.native.js +24 -0
  44. package/dist/jsx/constants.native.js.map +6 -0
  45. package/dist/jsx/helpers.js +7 -20
  46. package/dist/jsx/helpers.js.map +1 -1
  47. package/dist/jsx/helpers.native.js +57 -0
  48. package/dist/jsx/helpers.native.js.map +6 -0
  49. package/dist/jsx/index.native.js +7 -0
  50. package/dist/jsx/index.native.js.map +6 -0
  51. package/dist/jsx/types.native.js +1 -0
  52. package/dist/jsx/types.native.js.map +6 -0
  53. package/package.json +10 -10
@@ -0,0 +1,419 @@
1
+ import { composeRefs, useComposedRefs } from "@tamagui/compose-refs";
2
+ import {
3
+ createShallowSetState,
4
+ getTokens,
5
+ getVariableValue,
6
+ isClient,
7
+ isWeb,
8
+ styled,
9
+ withStaticProperties
10
+ } from "@tamagui/core";
11
+ import { getSize } from "@tamagui/get-token";
12
+ import { clamp, composeEventHandlers } from "@tamagui/helpers";
13
+ import { ThemeableStack } from "@tamagui/stacks";
14
+ import { useControllableState } from "@tamagui/use-controllable-state";
15
+ import { useDirection } from "@tamagui/use-direction";
16
+ import * as React from "react";
17
+ import {
18
+ ARROW_KEYS,
19
+ BACK_KEYS,
20
+ PAGE_KEYS,
21
+ SLIDER_NAME,
22
+ SliderOrientationProvider,
23
+ SliderProvider,
24
+ useSliderContext,
25
+ useSliderOrientationContext
26
+ } from "./constants";
27
+ import {
28
+ convertValueToPercentage,
29
+ getClosestValueIndex,
30
+ getDecimalCount,
31
+ getLabel,
32
+ getNextSortedValues,
33
+ getThumbInBoundsOffset,
34
+ hasMinStepsBetweenValues,
35
+ linearScale,
36
+ roundValue
37
+ } from "./helpers";
38
+ import { SliderFrame, SliderImpl } from "./SliderImpl";
39
+ const SliderHorizontal = React.forwardRef(
40
+ (props, forwardedRef) => {
41
+ const {
42
+ min,
43
+ max,
44
+ dir,
45
+ onSlideStart,
46
+ onSlideMove,
47
+ onStepKeyDown,
48
+ onSlideEnd,
49
+ ...sliderProps
50
+ } = props, direction = useDirection(dir), isDirectionLTR = direction === "ltr", sliderRef = React.useRef(null), [state, setState_] = React.useState(() => ({ size: 0, offset: 0 })), setState = createShallowSetState(setState_);
51
+ function getValueFromPointer(pointerPosition) {
52
+ const input = [0, state.size];
53
+ return linearScale(input, isDirectionLTR ? [min, max] : [max, min])(pointerPosition);
54
+ }
55
+ const measure = () => {
56
+ sliderRef.current?.measure((_x, _y, width, _height, pageX, _pageY) => {
57
+ setState({
58
+ size: width,
59
+ offset: pageX
60
+ });
61
+ });
62
+ };
63
+ return isClient && useOnDebouncedWindowResize(measure), <SliderOrientationProvider
64
+ scope={props.__scopeSlider}
65
+ startEdge={isDirectionLTR ? "left" : "right"}
66
+ endEdge={isDirectionLTR ? "right" : "left"}
67
+ direction={isDirectionLTR ? 1 : -1}
68
+ sizeProp="width"
69
+ size={state.size}
70
+ ><SliderImpl
71
+ ref={composeRefs(forwardedRef, sliderRef)}
72
+ dir={direction}
73
+ {...sliderProps}
74
+ orientation="horizontal"
75
+ onLayout={measure}
76
+ onSlideStart={(event, target) => {
77
+ const value = getValueFromPointer(event.nativeEvent.locationX);
78
+ value && onSlideStart?.(value, target, event);
79
+ }}
80
+ onSlideMove={(event) => {
81
+ const value = getValueFromPointer(event.nativeEvent.pageX - state.offset);
82
+ value && onSlideMove?.(value, event);
83
+ }}
84
+ onSlideEnd={(event) => {
85
+ const value = getValueFromPointer(event.nativeEvent.pageX - state.offset);
86
+ value && onSlideEnd?.(event, value);
87
+ }}
88
+ onStepKeyDown={(event) => {
89
+ const isBackKey = BACK_KEYS[direction].includes(event.key);
90
+ onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });
91
+ }}
92
+ /></SliderOrientationProvider>;
93
+ }
94
+ );
95
+ function useOnDebouncedWindowResize(callback, amt = 200) {
96
+ React.useEffect(() => {
97
+ let last;
98
+ const onResize = () => {
99
+ clearTimeout(last), last = setTimeout(callback, amt);
100
+ };
101
+ return window.addEventListener("resize", onResize), () => {
102
+ clearTimeout(last), window.removeEventListener("resize", onResize);
103
+ };
104
+ }, []);
105
+ }
106
+ const SliderVertical = React.forwardRef(
107
+ (props, forwardedRef) => {
108
+ const {
109
+ min,
110
+ max,
111
+ onSlideStart,
112
+ onSlideMove,
113
+ onStepKeyDown,
114
+ onSlideEnd,
115
+ ...sliderProps
116
+ } = props, [state, setState_] = React.useState(() => ({ size: 0, offset: 0 })), setState = createShallowSetState(setState_), sliderRef = React.useRef(null);
117
+ function getValueFromPointer(pointerPosition) {
118
+ const input = [0, state.size];
119
+ return linearScale(input, [max, min])(pointerPosition);
120
+ }
121
+ const measure = () => {
122
+ sliderRef.current?.measure((_x, _y, _width, height, _pageX, pageY) => {
123
+ setState({
124
+ size: height,
125
+ offset: pageY
126
+ });
127
+ });
128
+ };
129
+ return isClient && useOnDebouncedWindowResize(measure), <SliderOrientationProvider
130
+ scope={props.__scopeSlider}
131
+ startEdge="bottom"
132
+ endEdge="top"
133
+ sizeProp="height"
134
+ size={state.size}
135
+ direction={1}
136
+ ><SliderImpl
137
+ ref={composeRefs(forwardedRef, sliderRef)}
138
+ {...sliderProps}
139
+ orientation="vertical"
140
+ onLayout={measure}
141
+ onSlideStart={(event, target) => {
142
+ const value = getValueFromPointer(event.nativeEvent.locationY);
143
+ value && onSlideStart?.(value, target, event);
144
+ }}
145
+ onSlideMove={(event) => {
146
+ const value = getValueFromPointer(event.nativeEvent.pageY - state.offset);
147
+ value && onSlideMove?.(value, event);
148
+ }}
149
+ onSlideEnd={(event) => {
150
+ const value = getValueFromPointer(event.nativeEvent.pageY - state.offset);
151
+ onSlideEnd?.(event, value);
152
+ }}
153
+ onStepKeyDown={(event) => {
154
+ const isBackKey = BACK_KEYS.ltr.includes(event.key);
155
+ onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });
156
+ }}
157
+ /></SliderOrientationProvider>;
158
+ }
159
+ ), TRACK_NAME = "SliderTrack", SliderTrackFrame = styled(SliderFrame, {
160
+ name: "SliderTrack",
161
+ variants: {
162
+ unstyled: {
163
+ false: {
164
+ height: "100%",
165
+ width: "100%",
166
+ backgroundColor: "$background",
167
+ position: "relative",
168
+ borderRadius: 1e5,
169
+ overflow: "hidden"
170
+ }
171
+ }
172
+ },
173
+ defaultVariants: {
174
+ unstyled: !1
175
+ }
176
+ }), SliderTrack = React.forwardRef(
177
+ (props, forwardedRef) => {
178
+ const { __scopeSlider, ...trackProps } = props, context = useSliderContext(TRACK_NAME, __scopeSlider);
179
+ return <SliderTrackFrame
180
+ data-disabled={context.disabled ? "" : void 0}
181
+ data-orientation={context.orientation}
182
+ orientation={context.orientation}
183
+ size={context.size}
184
+ {...trackProps}
185
+ ref={forwardedRef}
186
+ />;
187
+ }
188
+ );
189
+ SliderTrack.displayName = TRACK_NAME;
190
+ const RANGE_NAME = "SliderTrackActive", SliderTrackActiveFrame = styled(SliderFrame, {
191
+ name: "SliderTrackActive",
192
+ backgroundColor: "$background",
193
+ position: "absolute"
194
+ }), SliderTrackActive = React.forwardRef(
195
+ (props, forwardedRef) => {
196
+ const { __scopeSlider, ...rangeProps } = props, context = useSliderContext(RANGE_NAME, __scopeSlider), orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider), ref = React.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref), valuesCount = context.values.length, percentages = context.values.map(
197
+ (value) => convertValueToPercentage(value, context.min, context.max)
198
+ ), offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0, offsetEnd = 100 - Math.max(...percentages);
199
+ return <SliderTrackActiveFrame
200
+ orientation={context.orientation}
201
+ data-orientation={context.orientation}
202
+ data-disabled={context.disabled ? "" : void 0}
203
+ size={context.size}
204
+ animateOnly={["left", "top", "right", "bottom"]}
205
+ {...rangeProps}
206
+ ref={composedRefs}
207
+ {...{ [orientation.startEdge]: `${offsetStart}%` }}
208
+ {...{ [orientation.endEdge]: `${offsetEnd}%` }}
209
+ {...orientation.sizeProp === "width" ? {
210
+ height: "100%"
211
+ } : {
212
+ left: 0,
213
+ right: 0
214
+ }}
215
+ />;
216
+ }
217
+ );
218
+ SliderTrackActive.displayName = RANGE_NAME;
219
+ const THUMB_NAME = "SliderThumb", getThumbSize = (val) => {
220
+ const tokens = getTokens(), size = typeof val == "number" ? val : getSize(tokens.size[val], {
221
+ shift: -1
222
+ });
223
+ return {
224
+ width: size,
225
+ height: size,
226
+ minWidth: size,
227
+ minHeight: size
228
+ };
229
+ }, SliderThumbFrame = styled(ThemeableStack, {
230
+ name: "SliderThumb",
231
+ variants: {
232
+ size: {
233
+ "...size": getThumbSize
234
+ },
235
+ unstyled: {
236
+ false: {
237
+ position: "absolute",
238
+ bordered: 2,
239
+ borderWidth: 2,
240
+ backgrounded: !0,
241
+ pressTheme: isWeb,
242
+ focusTheme: isWeb,
243
+ hoverTheme: isWeb
244
+ }
245
+ }
246
+ },
247
+ defaultVariants: {
248
+ unstyled: !1
249
+ }
250
+ }), SliderThumb = SliderThumbFrame.styleable(function(props, forwardedRef) {
251
+ const { __scopeSlider, index, size: sizeProp, ...thumbProps } = props, context = useSliderContext(THUMB_NAME, __scopeSlider), orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider), [thumb, setThumb] = React.useState(null), composedRefs = useComposedRefs(
252
+ forwardedRef,
253
+ (node) => setThumb(node)
254
+ ), value = context.values[index], percent = value === void 0 ? 0 : convertValueToPercentage(value, context.min, context.max), label = getLabel(index, context.values.length), sizeIn = sizeProp ?? context.size ?? "$true", [size, setSize] = React.useState(() => getVariableValue(getThumbSize(sizeIn).width)), thumbInBoundsOffset = size ? getThumbInBoundsOffset(size, percent, orientation.direction) : 0;
255
+ React.useEffect(() => {
256
+ if (thumb)
257
+ return context.thumbs.add(thumb), () => {
258
+ context.thumbs.delete(thumb);
259
+ };
260
+ }, [thumb, context.thumbs]);
261
+ const positionalStyles = context.orientation === "horizontal" ? {
262
+ x: thumbInBoundsOffset - size / 2,
263
+ y: -size / 2,
264
+ top: "50%",
265
+ ...size === 0 && {
266
+ top: "auto",
267
+ bottom: "auto"
268
+ }
269
+ } : {
270
+ x: -size / 2,
271
+ y: size / 2,
272
+ left: "50%",
273
+ ...size === 0 && {
274
+ left: "auto",
275
+ right: "auto"
276
+ }
277
+ };
278
+ return <SliderThumbFrame
279
+ ref={composedRefs}
280
+ role="slider"
281
+ aria-label={props["aria-label"] || label}
282
+ aria-valuemin={context.min}
283
+ aria-valuenow={value}
284
+ aria-valuemax={context.max}
285
+ aria-orientation={context.orientation}
286
+ data-orientation={context.orientation}
287
+ data-disabled={context.disabled ? "" : void 0}
288
+ tabIndex={context.disabled ? void 0 : 0}
289
+ animateOnly={["transform", "left", "top", "right", "bottom"]}
290
+ {...positionalStyles}
291
+ {...{ [orientation.startEdge]: `${percent}%` }}
292
+ size={sizeIn}
293
+ {...thumbProps}
294
+ onLayout={(e) => {
295
+ setSize(e.nativeEvent.layout[orientation.sizeProp]);
296
+ }}
297
+ onFocus={composeEventHandlers(props.onFocus, () => {
298
+ context.valueIndexToChangeRef.current = index;
299
+ })}
300
+ />;
301
+ }), SliderComponent = React.forwardRef(
302
+ (props, forwardedRef) => {
303
+ const {
304
+ name,
305
+ min = 0,
306
+ max = 100,
307
+ step = 1,
308
+ orientation = "horizontal",
309
+ disabled = !1,
310
+ minStepsBetweenThumbs = 0,
311
+ defaultValue = [min],
312
+ value,
313
+ onValueChange = () => {
314
+ },
315
+ size: sizeProp,
316
+ onSlideEnd,
317
+ onSlideMove,
318
+ onSlideStart,
319
+ ...sliderProps
320
+ } = props, sliderRef = React.useRef(null), composedRefs = useComposedRefs(sliderRef, forwardedRef), thumbRefs = React.useRef(/* @__PURE__ */ new Set()), valueIndexToChangeRef = React.useRef(0), isHorizontal = orientation === "horizontal", [values = [], setValues] = useControllableState({
321
+ prop: value,
322
+ defaultProp: defaultValue,
323
+ transition: !0,
324
+ onChange: (value2) => {
325
+ isWeb && [...thumbRefs.current][valueIndexToChangeRef.current]?.focus(), onValueChange(value2);
326
+ }
327
+ });
328
+ isWeb && React.useEffect(() => {
329
+ const node = sliderRef.current;
330
+ if (!node)
331
+ return;
332
+ const preventDefault = (e) => {
333
+ e.preventDefault();
334
+ };
335
+ return node.addEventListener("touchstart", preventDefault), () => {
336
+ node.removeEventListener("touchstart", preventDefault);
337
+ };
338
+ }, []);
339
+ function handleSlideMove(value2, event) {
340
+ updateValues(value2, valueIndexToChangeRef.current), onSlideMove?.(event, value2);
341
+ }
342
+ function updateValues(value2, atIndex) {
343
+ const decimalCount = getDecimalCount(step), snapToStep = roundValue(
344
+ Math.round((value2 - min) / step) * step + min,
345
+ decimalCount
346
+ ), nextValue = clamp(snapToStep, [min, max]);
347
+ setValues((prevValues = []) => {
348
+ const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);
349
+ return hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step) ? (valueIndexToChangeRef.current = nextValues.indexOf(nextValue), String(nextValues) === String(prevValues) ? prevValues : nextValues) : prevValues;
350
+ });
351
+ }
352
+ const SliderOriented = isHorizontal ? SliderHorizontal : SliderVertical;
353
+ return <SliderProvider
354
+ scope={props.__scopeSlider}
355
+ disabled={disabled}
356
+ min={min}
357
+ max={max}
358
+ valueIndexToChangeRef={valueIndexToChangeRef}
359
+ thumbs={thumbRefs.current}
360
+ values={values}
361
+ orientation={orientation}
362
+ size={sizeProp}
363
+ >
364
+ <SliderOriented
365
+ aria-disabled={disabled}
366
+ data-disabled={disabled ? "" : void 0}
367
+ {...sliderProps}
368
+ ref={composedRefs}
369
+ min={min}
370
+ max={max}
371
+ onSlideEnd={onSlideEnd}
372
+ onSlideStart={disabled ? void 0 : (value2, target, event) => {
373
+ if (target !== "thumb") {
374
+ const closestIndex = getClosestValueIndex(values, value2);
375
+ updateValues(value2, closestIndex), onSlideStart?.(event, value2, target);
376
+ }
377
+ }}
378
+ onSlideMove={disabled ? void 0 : handleSlideMove}
379
+ onHomeKeyDown={() => !disabled && updateValues(min, 0)}
380
+ onEndKeyDown={() => !disabled && updateValues(max, values.length - 1)}
381
+ onStepKeyDown={({ event, direction: stepDirection }) => {
382
+ if (!disabled) {
383
+ const multiplier = PAGE_KEYS.includes(event.key) || event.shiftKey && ARROW_KEYS.includes(event.key) ? 10 : 1, atIndex = valueIndexToChangeRef.current, value2 = values[atIndex], stepInDirection = step * multiplier * stepDirection;
384
+ updateValues(value2 + stepInDirection, atIndex);
385
+ }
386
+ }}
387
+ />
388
+ {
389
+ /* {isFormControl &&
390
+ values.map((value, index) => (
391
+ <BubbleInput
392
+ key={index}
393
+ name={name ? name + (values.length > 1 ? '[]' : '') : undefined}
394
+ value={value}
395
+ />
396
+ ))} */
397
+ }
398
+ </SliderProvider>;
399
+ }
400
+ ), Slider = withStaticProperties(SliderComponent, {
401
+ Track: SliderTrack,
402
+ TrackActive: SliderTrackActive,
403
+ Thumb: SliderThumb
404
+ });
405
+ Slider.displayName = SLIDER_NAME;
406
+ const Track = SliderTrack, Range = SliderTrackActive, Thumb = SliderThumb;
407
+ export {
408
+ Range,
409
+ Slider,
410
+ SliderThumb,
411
+ SliderThumbFrame,
412
+ SliderTrack,
413
+ SliderTrackActive,
414
+ SliderTrackActiveFrame,
415
+ SliderTrackFrame,
416
+ Thumb,
417
+ Track
418
+ };
419
+ //# sourceMappingURL=Slider.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/Slider.tsx"],
4
+ "mappings": "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",
5
+ "names": ["value"]
6
+ }
@@ -10,32 +10,25 @@ const DirectionalYStack = styled(YStack, {
10
10
  vertical: {}
11
11
  }
12
12
  }
13
- });
14
- const SliderFrame = styled(DirectionalYStack, {
13
+ }), SliderFrame = styled(DirectionalYStack, {
15
14
  position: "relative",
16
15
  variants: {
17
16
  size: (val, extras) => {
18
- if (!val) {
17
+ if (!val)
19
18
  return;
20
- }
21
- const orientation = extras.props.orientation;
22
- const size = Math.round(getVariableValue(getSize(val)) / 6);
23
- if (orientation === "horizontal") {
24
- return {
25
- height: size,
26
- borderRadius: size,
27
- justifyContent: "center"
28
- };
29
- }
30
- return {
19
+ const orientation = extras.props.orientation, size = Math.round(getVariableValue(getSize(val)) / 6);
20
+ return orientation === "horizontal" ? {
21
+ height: size,
22
+ borderRadius: size,
23
+ justifyContent: "center"
24
+ } : {
31
25
  width: size,
32
26
  borderRadius: size,
33
27
  alignItems: "center"
34
28
  };
35
29
  }
36
30
  }
37
- });
38
- const SliderImpl = React.forwardRef(
31
+ }), SliderImpl = React.forwardRef(
39
32
  (props, forwardedRef) => {
40
33
  const {
41
34
  __scopeSlider,
@@ -46,8 +39,7 @@ const SliderImpl = React.forwardRef(
46
39
  onEndKeyDown,
47
40
  onStepKeyDown,
48
41
  ...sliderProps
49
- } = props;
50
- const context = useSliderContext(SLIDER_NAME, __scopeSlider);
42
+ } = props, context = useSliderContext(SLIDER_NAME, __scopeSlider);
51
43
  return <SliderFrame
52
44
  size="$4"
53
45
  {...sliderProps}
@@ -55,39 +47,21 @@ const SliderImpl = React.forwardRef(
55
47
  ref={forwardedRef}
56
48
  {...isWeb && {
57
49
  onKeyDown: (event) => {
58
- if (event.key === "Home") {
59
- onHomeKeyDown(event);
60
- event.preventDefault();
61
- } else if (event.key === "End") {
62
- onEndKeyDown(event);
63
- event.preventDefault();
64
- } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {
65
- onStepKeyDown(event);
66
- event.preventDefault();
67
- }
50
+ event.key === "Home" ? (onHomeKeyDown(event), event.preventDefault()) : event.key === "End" ? (onEndKeyDown(event), event.preventDefault()) : PAGE_KEYS.concat(ARROW_KEYS).includes(event.key) && (onStepKeyDown(event), event.preventDefault());
68
51
  }
69
52
  }}
70
- onMoveShouldSetResponderCapture={() => true}
71
- onScrollShouldSetResponder={() => true}
72
- onScrollShouldSetResponderCapture={() => true}
73
- onMoveShouldSetResponder={() => true}
74
- onStartShouldSetResponder={() => true}
75
- onResponderTerminationRequest={() => {
76
- return false;
77
- }}
53
+ onMoveShouldSetResponderCapture={() => !0}
54
+ onScrollShouldSetResponder={() => !0}
55
+ onScrollShouldSetResponderCapture={() => !0}
56
+ onMoveShouldSetResponder={() => !0}
57
+ onStartShouldSetResponder={() => !0}
58
+ onResponderTerminationRequest={() => !1}
78
59
  onResponderGrant={composeEventHandlers(props.onResponderGrant, (event) => {
79
- const target = event.target;
80
- const isStartingOnThumb = context.thumbs.has(target);
81
- if (isWeb && target instanceof HTMLElement) {
82
- if (context.thumbs.has(target)) {
83
- target.focus();
84
- }
85
- }
86
- onSlideStart(event, isStartingOnThumb ? "thumb" : "track");
60
+ const target = event.target, isStartingOnThumb = context.thumbs.has(target);
61
+ isWeb && target instanceof HTMLElement && context.thumbs.has(target) && target.focus(), onSlideStart(event, isStartingOnThumb ? "thumb" : "track");
87
62
  })}
88
63
  onResponderMove={composeEventHandlers(props.onResponderMove, (event) => {
89
- event.stopPropagation();
90
- onSlideMove(event);
64
+ event.stopPropagation(), onSlideMove(event);
91
65
  })}
92
66
  onResponderRelease={composeEventHandlers(props.onResponderRelease, (event) => {
93
67
  onSlideEnd(event);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/SliderImpl.tsx"],
4
- "mappings": "AAIA,SAAS,sBAAsB,kBAAkB,OAAO,cAAc;AACtE,SAAS,eAAe;AACxB,SAAS,cAAc;AACvB,YAAY,WAAW;AAGvB,SAAS,YAAY,WAAW,aAAa,wBAAwB;AAG9D,MAAM,oBAAoB,OAAO,QAAQ;AAAA,EAC9C,UAAU;AAAA,IACR,aAAa;AAAA,MACX,YAAY,CAAC;AAAA,MACb,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AACF,CAAC;AAEM,MAAM,cAAc,OAAO,mBAAmB;AAAA,EACnD,UAAU;AAAA,EAEV,UAAU;AAAA,IACR,MAAM,CAAC,KAAK,WAAW;AACrB,UAAI,CAAC,KAAK;AACR;AAAA,MACF;AACA,YAAM,cAAc,OAAO,MAAM;AACjC,YAAM,OAAO,KAAK,MAAM,iBAAiB,QAAQ,GAAG,CAAC,IAAI,CAAC;AAC1D,UAAI,gBAAgB,cAAc;AAChC,eAAO;AAAA,UACL,QAAQ;AAAA,UACR,cAAc;AAAA,UACd,gBAAgB;AAAA,QAClB;AAAA,MACF;AACA,aAAO;AAAA,QACL,OAAO;AAAA,QACP,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACF,CAAC;AAEM,MAAM,aAAa,MAAM;AAAA,EAC9B,CAAC,OAAqC,iBAAiB;AACrD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL,IAAI;AACJ,UAAM,UAAU,iBAAiB,aAAa,aAAa;AAC3D,WACE,CAAC;AAAA,MACC,KAAK;AAAA,UACD;AAAA,MACJ,kBAAkB,YAAY;AAAA,MAC9B,KAAK;AAAA,UACA,SAAS;AAAA,QACZ,WAAW,CAAC,UAAU;AACpB,cAAI,MAAM,QAAQ,QAAQ;AACxB,0BAAc,KAAK;AAEnB,kBAAM,eAAe;AAAA,UACvB,WAAW,MAAM,QAAQ,OAAO;AAC9B,yBAAa,KAAK;AAElB,kBAAM,eAAe;AAAA,UACvB,WAAW,UAAU,OAAO,UAAU,EAAE,SAAS,MAAM,GAAG,GAAG;AAC3D,0BAAc,KAAK;AAEnB,kBAAM,eAAe;AAAA,UACvB;AAAA,QACF;AAAA,MACF;AAAA,MACA,iCAAiC,MAAM;AAAA,MACvC,4BAA4B,MAAM;AAAA,MAClC,mCAAmC,MAAM;AAAA,MACzC,0BAA0B,MAAM;AAAA,MAChC,2BAA2B,MAAM;AAAA,MAEjC,+BAA+B,MAAM;AACnC,eAAO;AAAA,MACT;AAAA,MACA,kBAAkB,qBAAqB,MAAM,kBAAkB,CAAC,UAAU;AACxE,cAAM,SAAS,MAAM;AACrB,cAAM,oBAAoB,QAAQ,OAAO,IAAI,MAAM;AAInD,YAAI,SAAS,kBAAkB,aAAa;AAC1C,cAAI,QAAQ,OAAO,IAAI,MAAM,GAAG;AAC9B,mBAAO,MAAM;AAAA,UACf;AAAA,QACF;AACA,qBAAa,OAAO,oBAAoB,UAAU,OAAO;AAAA,MAC3D,CAAC;AAAA,MACD,iBAAiB,qBAAqB,MAAM,iBAAiB,CAAC,UAAU;AACtE,cAAM,gBAAgB;AAEtB,oBAAY,KAAK;AAAA,MACnB,CAAC;AAAA,MACD,oBAAoB,qBAAqB,MAAM,oBAAoB,CAAC,UAAU;AAE5E,mBAAW,KAAK;AAAA,MAClB,CAAC;AAAA,IACH;AAAA,EAEJ;AACF;",
4
+ "mappings": "AAIA,SAAS,sBAAsB,kBAAkB,OAAO,cAAc;AACtE,SAAS,eAAe;AACxB,SAAS,cAAc;AACvB,YAAY,WAAW;AAGvB,SAAS,YAAY,WAAW,aAAa,wBAAwB;AAG9D,MAAM,oBAAoB,OAAO,QAAQ;AAAA,EAC9C,UAAU;AAAA,IACR,aAAa;AAAA,MACX,YAAY,CAAC;AAAA,MACb,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AACF,CAAC,GAEY,cAAc,OAAO,mBAAmB;AAAA,EACnD,UAAU;AAAA,EAEV,UAAU;AAAA,IACR,MAAM,CAAC,KAAK,WAAW;AACrB,UAAI,CAAC;AACH;AAEF,YAAM,cAAc,OAAO,MAAM,aAC3B,OAAO,KAAK,MAAM,iBAAiB,QAAQ,GAAG,CAAC,IAAI,CAAC;AAC1D,aAAI,gBAAgB,eACX;AAAA,QACL,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,gBAAgB;AAAA,MAClB,IAEK;AAAA,QACL,OAAO;AAAA,QACP,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACF,CAAC,GAEY,aAAa,MAAM;AAAA,EAC9B,CAAC,OAAqC,iBAAiB;AACrD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL,IAAI,OACE,UAAU,iBAAiB,aAAa,aAAa;AAC3D,WACE,CAAC;AAAA,MACC,KAAK;AAAA,UACD;AAAA,MACJ,kBAAkB,YAAY;AAAA,MAC9B,KAAK;AAAA,UACA,SAAS;AAAA,QACZ,WAAW,CAAC,UAAU;AACpB,UAAI,MAAM,QAAQ,UAChB,cAAc,KAAK,GAEnB,MAAM,eAAe,KACZ,MAAM,QAAQ,SACvB,aAAa,KAAK,GAElB,MAAM,eAAe,KACZ,UAAU,OAAO,UAAU,EAAE,SAAS,MAAM,GAAG,MACxD,cAAc,KAAK,GAEnB,MAAM,eAAe;AAAA,QAEzB;AAAA,MACF;AAAA,MACA,iCAAiC,MAAM;AAAA,MACvC,4BAA4B,MAAM;AAAA,MAClC,mCAAmC,MAAM;AAAA,MACzC,0BAA0B,MAAM;AAAA,MAChC,2BAA2B,MAAM;AAAA,MAEjC,+BAA+B,MACtB;AAAA,MAET,kBAAkB,qBAAqB,MAAM,kBAAkB,CAAC,UAAU;AACxE,cAAM,SAAS,MAAM,QACf,oBAAoB,QAAQ,OAAO,IAAI,MAAM;AAInD,QAAI,SAAS,kBAAkB,eACzB,QAAQ,OAAO,IAAI,MAAM,KAC3B,OAAO,MAAM,GAGjB,aAAa,OAAO,oBAAoB,UAAU,OAAO;AAAA,MAC3D,CAAC;AAAA,MACD,iBAAiB,qBAAqB,MAAM,iBAAiB,CAAC,UAAU;AACtE,cAAM,gBAAgB,GAEtB,YAAY,KAAK;AAAA,MACnB,CAAC;AAAA,MACD,oBAAoB,qBAAqB,MAAM,oBAAoB,CAAC,UAAU;AAE5E,mBAAW,KAAK;AAAA,MAClB,CAAC;AAAA,IACH;AAAA,EAEJ;AACF;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,77 @@
1
+ import { composeEventHandlers, getVariableValue, isWeb, styled } from "@tamagui/core";
2
+ import { getSize } from "@tamagui/get-token";
3
+ import { YStack } from "@tamagui/stacks";
4
+ import * as React from "react";
5
+ import { ARROW_KEYS, PAGE_KEYS, SLIDER_NAME, useSliderContext } from "./constants";
6
+ const DirectionalYStack = styled(YStack, {
7
+ variants: {
8
+ orientation: {
9
+ horizontal: {},
10
+ vertical: {}
11
+ }
12
+ }
13
+ }), SliderFrame = styled(DirectionalYStack, {
14
+ position: "relative",
15
+ variants: {
16
+ size: (val, extras) => {
17
+ if (!val)
18
+ return;
19
+ const orientation = extras.props.orientation, size = Math.round(getVariableValue(getSize(val)) / 6);
20
+ return orientation === "horizontal" ? {
21
+ height: size,
22
+ borderRadius: size,
23
+ justifyContent: "center"
24
+ } : {
25
+ width: size,
26
+ borderRadius: size,
27
+ alignItems: "center"
28
+ };
29
+ }
30
+ }
31
+ }), SliderImpl = React.forwardRef(
32
+ (props, forwardedRef) => {
33
+ const {
34
+ __scopeSlider,
35
+ onSlideStart,
36
+ onSlideMove,
37
+ onSlideEnd,
38
+ onHomeKeyDown,
39
+ onEndKeyDown,
40
+ onStepKeyDown,
41
+ ...sliderProps
42
+ } = props, context = useSliderContext(SLIDER_NAME, __scopeSlider);
43
+ return <SliderFrame
44
+ size="$4"
45
+ {...sliderProps}
46
+ data-orientation={sliderProps.orientation}
47
+ ref={forwardedRef}
48
+ {...isWeb && {
49
+ onKeyDown: (event) => {
50
+ event.key === "Home" ? (onHomeKeyDown(event), event.preventDefault()) : event.key === "End" ? (onEndKeyDown(event), event.preventDefault()) : PAGE_KEYS.concat(ARROW_KEYS).includes(event.key) && (onStepKeyDown(event), event.preventDefault());
51
+ }
52
+ }}
53
+ onMoveShouldSetResponderCapture={() => !0}
54
+ onScrollShouldSetResponder={() => !0}
55
+ onScrollShouldSetResponderCapture={() => !0}
56
+ onMoveShouldSetResponder={() => !0}
57
+ onStartShouldSetResponder={() => !0}
58
+ onResponderTerminationRequest={() => !1}
59
+ onResponderGrant={composeEventHandlers(props.onResponderGrant, (event) => {
60
+ const target = event.target, isStartingOnThumb = context.thumbs.has(target);
61
+ isWeb && target instanceof HTMLElement && context.thumbs.has(target) && target.focus(), onSlideStart(event, isStartingOnThumb ? "thumb" : "track");
62
+ })}
63
+ onResponderMove={composeEventHandlers(props.onResponderMove, (event) => {
64
+ event.stopPropagation(), onSlideMove(event);
65
+ })}
66
+ onResponderRelease={composeEventHandlers(props.onResponderRelease, (event) => {
67
+ onSlideEnd(event);
68
+ })}
69
+ />;
70
+ }
71
+ );
72
+ export {
73
+ DirectionalYStack,
74
+ SliderFrame,
75
+ SliderImpl
76
+ };
77
+ //# sourceMappingURL=SliderImpl.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/SliderImpl.tsx"],
4
+ "mappings": "AAIA,SAAS,sBAAsB,kBAAkB,OAAO,cAAc;AACtE,SAAS,eAAe;AACxB,SAAS,cAAc;AACvB,YAAY,WAAW;AAGvB,SAAS,YAAY,WAAW,aAAa,wBAAwB;AAG9D,MAAM,oBAAoB,OAAO,QAAQ;AAAA,EAC9C,UAAU;AAAA,IACR,aAAa;AAAA,MACX,YAAY,CAAC;AAAA,MACb,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AACF,CAAC,GAEY,cAAc,OAAO,mBAAmB;AAAA,EACnD,UAAU;AAAA,EAEV,UAAU;AAAA,IACR,MAAM,CAAC,KAAK,WAAW;AACrB,UAAI,CAAC;AACH;AAEF,YAAM,cAAc,OAAO,MAAM,aAC3B,OAAO,KAAK,MAAM,iBAAiB,QAAQ,GAAG,CAAC,IAAI,CAAC;AAC1D,aAAI,gBAAgB,eACX;AAAA,QACL,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,gBAAgB;AAAA,MAClB,IAEK;AAAA,QACL,OAAO;AAAA,QACP,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACF,CAAC,GAEY,aAAa,MAAM;AAAA,EAC9B,CAAC,OAAqC,iBAAiB;AACrD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL,IAAI,OACE,UAAU,iBAAiB,aAAa,aAAa;AAC3D,WACE,CAAC;AAAA,MACC,KAAK;AAAA,UACD;AAAA,MACJ,kBAAkB,YAAY;AAAA,MAC9B,KAAK;AAAA,UACA,SAAS;AAAA,QACZ,WAAW,CAAC,UAAU;AACpB,UAAI,MAAM,QAAQ,UAChB,cAAc,KAAK,GAEnB,MAAM,eAAe,KACZ,MAAM,QAAQ,SACvB,aAAa,KAAK,GAElB,MAAM,eAAe,KACZ,UAAU,OAAO,UAAU,EAAE,SAAS,MAAM,GAAG,MACxD,cAAc,KAAK,GAEnB,MAAM,eAAe;AAAA,QAEzB;AAAA,MACF;AAAA,MACA,iCAAiC,MAAM;AAAA,MACvC,4BAA4B,MAAM;AAAA,MAClC,mCAAmC,MAAM;AAAA,MACzC,0BAA0B,MAAM;AAAA,MAChC,2BAA2B,MAAM;AAAA,MAEjC,+BAA+B,MACtB;AAAA,MAET,kBAAkB,qBAAqB,MAAM,kBAAkB,CAAC,UAAU;AACxE,cAAM,SAAS,MAAM,QACf,oBAAoB,QAAQ,OAAO,IAAI,MAAM;AAInD,QAAI,SAAS,kBAAkB,eACzB,QAAQ,OAAO,IAAI,MAAM,KAC3B,OAAO,MAAM,GAGjB,aAAa,OAAO,oBAAoB,UAAU,OAAO;AAAA,MAC3D,CAAC;AAAA,MACD,iBAAiB,qBAAqB,MAAM,iBAAiB,CAAC,UAAU;AACtE,cAAM,gBAAgB,GAEtB,YAAY,KAAK;AAAA,MACnB,CAAC;AAAA,MACD,oBAAoB,qBAAqB,MAAM,oBAAoB,CAAC,UAAU;AAE5E,mBAAW,KAAK;AAAA,MAClB,CAAC;AAAA,IACH;AAAA,EAEJ;AACF;",
5
+ "names": []
6
+ }
@@ -1,17 +1,11 @@
1
1
  import { createContextScope } from "@tamagui/create-context";
2
- const SLIDER_NAME = "Slider";
3
- const [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME);
4
- const [SliderProvider, useSliderContext] = createSliderContext(SLIDER_NAME);
5
- const [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext(SLIDER_NAME, {
2
+ const SLIDER_NAME = "Slider", [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME), [SliderProvider, useSliderContext] = createSliderContext(SLIDER_NAME), [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext(SLIDER_NAME, {
6
3
  startEdge: "left",
7
4
  endEdge: "right",
8
5
  sizeProp: "width",
9
6
  size: 0,
10
7
  direction: 1
11
- });
12
- const PAGE_KEYS = ["PageUp", "PageDown"];
13
- const ARROW_KEYS = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"];
14
- const BACK_KEYS = {
8
+ }), PAGE_KEYS = ["PageUp", "PageDown"], ARROW_KEYS = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"], BACK_KEYS = {
15
9
  ltr: ["ArrowDown", "Home", "ArrowLeft", "PageDown"],
16
10
  rtl: ["ArrowDown", "Home", "ArrowRight", "PageDown"]
17
11
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/constants.tsx"],
4
- "mappings": "AACA,SAAS,0BAA0B;AAI5B,MAAM,cAAc;AAEpB,MAAM,CAAC,qBAAqB,iBAAiB,IAAI,mBAAmB,WAAW;AAE/E,MAAM,CAAC,gBAAgB,gBAAgB,IAC5C,oBAAwC,WAAW;AAE9C,MAAM,CAAC,2BAA2B,2BAA2B,IAClE,oBAMG,aAAa;AAAA,EACd,WAAW;AAAA,EACX,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AAAA,EACN,WAAW;AACb,CAAC;AAEI,MAAM,YAAY,CAAC,UAAU,UAAU;AACvC,MAAM,aAAa,CAAC,WAAW,aAAa,aAAa,YAAY;AACrE,MAAM,YAAyC;AAAA,EACpD,KAAK,CAAC,aAAa,QAAQ,aAAa,UAAU;AAAA,EAClD,KAAK,CAAC,aAAa,QAAQ,cAAc,UAAU;AACrD;",
4
+ "mappings": "AACA,SAAS,0BAA0B;AAI5B,MAAM,cAAc,UAEd,CAAC,qBAAqB,iBAAiB,IAAI,mBAAmB,WAAW,GAEzE,CAAC,gBAAgB,gBAAgB,IAC5C,oBAAwC,WAAW,GAExC,CAAC,2BAA2B,2BAA2B,IAClE,oBAMG,aAAa;AAAA,EACd,WAAW;AAAA,EACX,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AAAA,EACN,WAAW;AACb,CAAC,GAEU,YAAY,CAAC,UAAU,UAAU,GACjC,aAAa,CAAC,WAAW,aAAa,aAAa,YAAY,GAC/D,YAAyC;AAAA,EACpD,KAAK,CAAC,aAAa,QAAQ,aAAa,UAAU;AAAA,EAClD,KAAK,CAAC,aAAa,QAAQ,cAAc,UAAU;AACrD;",
5
5
  "names": []
6
6
  }