@tamagui/slider 1.1.7 → 1.1.9

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.
@@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => {
18
18
  return to;
19
19
  };
20
20
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
25
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
26
  mod
23
27
  ));
@@ -61,47 +65,53 @@ const SliderHorizontal = React.forwardRef(
61
65
  const value = (0, import_helpers2.linearScale)(input, output);
62
66
  return value(pointerPosition);
63
67
  }
64
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_constants.SliderOrientationProvider, {
65
- scope: props.__scopeSlider,
66
- startEdge: isDirectionLTR ? "left" : "right",
67
- endEdge: isDirectionLTR ? "right" : "left",
68
- direction: isDirectionLTR ? 1 : -1,
69
- sizeProp: "width",
70
- size: state.size,
71
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SliderImpl.SliderImpl, {
72
- ref: (0, import_compose_refs.composeRefs)(forwardedRef, sliderRef),
73
- dir: direction,
74
- ...sliderProps,
75
- orientation: "horizontal",
76
- onLayout: () => {
77
- var _a;
78
- (_a = sliderRef.current) == null ? void 0 : _a.measure((_x, _y, width, _height, pageX, _pageY) => {
79
- setState({
80
- size: width,
81
- offset: pageX
82
- });
83
- });
84
- },
85
- onSlideStart: (event, target) => {
86
- const value = getValueFromPointer(event.nativeEvent.locationX);
87
- if (value) {
88
- onSlideStart == null ? void 0 : onSlideStart(value, target);
89
- }
90
- },
91
- onSlideMove: (event) => {
92
- const value = getValueFromPointer(event.nativeEvent.pageX - state.offset);
93
- if (value) {
94
- onSlideMove == null ? void 0 : onSlideMove(value);
68
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
69
+ import_constants.SliderOrientationProvider,
70
+ {
71
+ scope: props.__scopeSlider,
72
+ startEdge: isDirectionLTR ? "left" : "right",
73
+ endEdge: isDirectionLTR ? "right" : "left",
74
+ direction: isDirectionLTR ? 1 : -1,
75
+ sizeProp: "width",
76
+ size: state.size,
77
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
78
+ import_SliderImpl.SliderImpl,
79
+ {
80
+ ref: (0, import_compose_refs.composeRefs)(forwardedRef, sliderRef),
81
+ dir: direction,
82
+ ...sliderProps,
83
+ orientation: "horizontal",
84
+ onLayout: () => {
85
+ var _a;
86
+ (_a = sliderRef.current) == null ? void 0 : _a.measure((_x, _y, width, _height, pageX, _pageY) => {
87
+ setState({
88
+ size: width,
89
+ offset: pageX
90
+ });
91
+ });
92
+ },
93
+ onSlideStart: (event, target) => {
94
+ const value = getValueFromPointer(event.nativeEvent.locationX);
95
+ if (value) {
96
+ onSlideStart == null ? void 0 : onSlideStart(value, target);
97
+ }
98
+ },
99
+ onSlideMove: (event) => {
100
+ const value = getValueFromPointer(event.nativeEvent.pageX - state.offset);
101
+ if (value) {
102
+ onSlideMove == null ? void 0 : onSlideMove(value);
103
+ }
104
+ },
105
+ onSlideEnd: () => {
106
+ },
107
+ onStepKeyDown: (event) => {
108
+ const isBackKey = import_constants.BACK_KEYS[direction].includes(event.key);
109
+ onStepKeyDown == null ? void 0 : onStepKeyDown({ event, direction: isBackKey ? -1 : 1 });
110
+ }
95
111
  }
96
- },
97
- onSlideEnd: () => {
98
- },
99
- onStepKeyDown: (event) => {
100
- const isBackKey = import_constants.BACK_KEYS[direction].includes(event.key);
101
- onStepKeyDown == null ? void 0 : onStepKeyDown({ event, direction: isBackKey ? -1 : 1 });
102
- }
103
- })
104
- });
112
+ )
113
+ }
114
+ );
105
115
  }
106
116
  );
107
117
  const SliderVertical = React.forwardRef(
@@ -115,46 +125,52 @@ const SliderVertical = React.forwardRef(
115
125
  const value = (0, import_helpers2.linearScale)(input, output);
116
126
  return value(pointerPosition);
117
127
  }
118
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_constants.SliderOrientationProvider, {
119
- scope: props.__scopeSlider,
120
- startEdge: "bottom",
121
- endEdge: "top",
122
- sizeProp: "height",
123
- size: state.size,
124
- direction: 1,
125
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SliderImpl.SliderImpl, {
126
- ref: (0, import_compose_refs.composeRefs)(forwardedRef, sliderRef),
127
- ...sliderProps,
128
- orientation: "vertical",
129
- onLayout: ({ nativeEvent: { layout } }) => {
130
- var _a;
131
- (_a = sliderRef.current) == null ? void 0 : _a.measure((_x, _y, _width, height, _pageX, pageY) => {
132
- setState({
133
- size: height,
134
- offset: pageY
135
- });
136
- });
137
- },
138
- onSlideStart: (event, target) => {
139
- const value = getValueFromPointer(event.nativeEvent.locationY);
140
- if (value) {
141
- onSlideStart == null ? void 0 : onSlideStart(value, target);
128
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
129
+ import_constants.SliderOrientationProvider,
130
+ {
131
+ scope: props.__scopeSlider,
132
+ startEdge: "bottom",
133
+ endEdge: "top",
134
+ sizeProp: "height",
135
+ size: state.size,
136
+ direction: 1,
137
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
138
+ import_SliderImpl.SliderImpl,
139
+ {
140
+ ref: (0, import_compose_refs.composeRefs)(forwardedRef, sliderRef),
141
+ ...sliderProps,
142
+ orientation: "vertical",
143
+ onLayout: ({ nativeEvent: { layout } }) => {
144
+ var _a;
145
+ (_a = sliderRef.current) == null ? void 0 : _a.measure((_x, _y, _width, height, _pageX, pageY) => {
146
+ setState({
147
+ size: height,
148
+ offset: pageY
149
+ });
150
+ });
151
+ },
152
+ onSlideStart: (event, target) => {
153
+ const value = getValueFromPointer(event.nativeEvent.locationY);
154
+ if (value) {
155
+ onSlideStart == null ? void 0 : onSlideStart(value, target);
156
+ }
157
+ },
158
+ onSlideMove: (event) => {
159
+ const value = getValueFromPointer(event.nativeEvent.pageY - state.offset);
160
+ if (value) {
161
+ onSlideMove == null ? void 0 : onSlideMove(value);
162
+ }
163
+ },
164
+ onSlideEnd: () => {
165
+ },
166
+ onStepKeyDown: (event) => {
167
+ const isBackKey = import_constants.BACK_KEYS.ltr.includes(event.key);
168
+ onStepKeyDown == null ? void 0 : onStepKeyDown({ event, direction: isBackKey ? -1 : 1 });
169
+ }
142
170
  }
143
- },
144
- onSlideMove: (event) => {
145
- const value = getValueFromPointer(event.nativeEvent.pageY - state.offset);
146
- if (value) {
147
- onSlideMove == null ? void 0 : onSlideMove(value);
148
- }
149
- },
150
- onSlideEnd: () => {
151
- },
152
- onStepKeyDown: (event) => {
153
- const isBackKey = import_constants.BACK_KEYS.ltr.includes(event.key);
154
- onStepKeyDown == null ? void 0 : onStepKeyDown({ event, direction: isBackKey ? -1 : 1 });
155
- }
156
- })
157
- });
171
+ )
172
+ }
173
+ );
158
174
  }
159
175
  );
160
176
  const TRACK_NAME = "SliderTrack";
@@ -171,14 +187,17 @@ const SliderTrack = React.forwardRef(
171
187
  (props, forwardedRef) => {
172
188
  const { __scopeSlider, ...trackProps } = props;
173
189
  const context = (0, import_constants.useSliderContext)(TRACK_NAME, __scopeSlider);
174
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SliderTrackFrame, {
175
- "data-disabled": context.disabled ? "" : void 0,
176
- "data-orientation": context.orientation,
177
- orientation: context.orientation,
178
- size: context.size,
179
- ...trackProps,
180
- ref: forwardedRef
181
- });
190
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
191
+ SliderTrackFrame,
192
+ {
193
+ "data-disabled": context.disabled ? "" : void 0,
194
+ "data-orientation": context.orientation,
195
+ orientation: context.orientation,
196
+ size: context.size,
197
+ ...trackProps,
198
+ ref: forwardedRef
199
+ }
200
+ );
182
201
  }
183
202
  );
184
203
  SliderTrack.displayName = TRACK_NAME;
@@ -201,24 +220,27 @@ const SliderTrackActive = React.forwardRef(
201
220
  );
202
221
  const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;
203
222
  const offsetEnd = 100 - Math.max(...percentages);
204
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SliderTrackActiveFrame, {
205
- orientation: context.orientation,
206
- "data-orientation": context.orientation,
207
- "data-disabled": context.disabled ? "" : void 0,
208
- size: context.size,
209
- ...rangeProps,
210
- ref: composedRefs,
211
- ...{
212
- [orientation.startEdge]: `${offsetStart}%`,
213
- [orientation.endEdge]: `${offsetEnd}%`
214
- },
215
- ...orientation.sizeProp === "width" ? {
216
- height: "100%"
217
- } : {
218
- left: 0,
219
- right: 0
223
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
224
+ SliderTrackActiveFrame,
225
+ {
226
+ orientation: context.orientation,
227
+ "data-orientation": context.orientation,
228
+ "data-disabled": context.disabled ? "" : void 0,
229
+ size: context.size,
230
+ ...rangeProps,
231
+ ref: composedRefs,
232
+ ...{
233
+ [orientation.startEdge]: `${offsetStart}%`,
234
+ [orientation.endEdge]: `${offsetEnd}%`
235
+ },
236
+ ...orientation.sizeProp === "width" ? {
237
+ height: "100%"
238
+ } : {
239
+ left: 0,
240
+ right: 0
241
+ }
220
242
  }
221
- });
243
+ );
222
244
  }
223
245
  );
224
246
  SliderTrackActive.displayName = RANGE_NAME;
@@ -235,7 +257,9 @@ const getThumbSize = (val) => {
235
257
  const SliderThumbFrame = (0, import_core.styled)(import_stacks.ThemeableStack, {
236
258
  name: "SliderThumb",
237
259
  position: "absolute",
260
+ // TODO not taking up 2
238
261
  bordered: 2,
262
+ // OR THIS
239
263
  borderWidth: 2,
240
264
  backgrounded: true,
241
265
  pressTheme: import_core.isWeb,
@@ -257,7 +281,7 @@ const SliderThumb = React.forwardRef(
257
281
  const value = context.values[index];
258
282
  const percent = value === void 0 ? 0 : (0, import_helpers2.convertValueToPercentage)(value, context.min, context.max);
259
283
  const label = (0, import_helpers2.getLabel)(index, context.values.length);
260
- const sizeIn = sizeProp ?? context.size ?? "$4";
284
+ const sizeIn = sizeProp ?? context.size ?? "$true";
261
285
  const [size, setSize] = React.useState(() => {
262
286
  const estimatedSize = (0, import_core.getVariableValue)(getThumbSize(sizeIn).width);
263
287
  return estimatedSize;
@@ -271,47 +295,50 @@ const SliderThumb = React.forwardRef(
271
295
  };
272
296
  }
273
297
  }, [thumb, context.thumbs]);
274
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SliderThumbFrame, {
275
- ref: composedRefs,
276
- role: "slider",
277
- "aria-label": props["aria-label"] || label,
278
- "aria-valuemin": context.min,
279
- "aria-valuenow": value,
280
- "aria-valuemax": context.max,
281
- "aria-orientation": context.orientation,
282
- "data-orientation": context.orientation,
283
- "data-disabled": context.disabled ? "" : void 0,
284
- tabIndex: context.disabled ? void 0 : 0,
285
- animateOnly: ["transform", "left", "right", "top", "bottom"],
286
- ...thumbProps,
287
- ...context.orientation === "horizontal" ? {
288
- x: thumbInBoundsOffset - size / 2,
289
- y: -size / 2,
290
- top: "50%",
291
- ...size === 0 && {
292
- top: "auto",
293
- bottom: "auto"
294
- }
295
- } : {
296
- x: -size / 2,
297
- y: size / 2,
298
- left: "50%",
299
- ...size === 0 && {
300
- left: "auto",
301
- right: "auto"
302
- }
303
- },
304
- ...{
305
- [orientation.startEdge]: `${percent}%`
306
- },
307
- size: sizeIn,
308
- onLayout: (e) => {
309
- setSize(e.nativeEvent.layout[orientation.sizeProp]);
310
- },
311
- onFocus: (0, import_helpers.composeEventHandlers)(props.onFocus, () => {
312
- context.valueIndexToChangeRef.current = index;
313
- })
314
- });
298
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
299
+ SliderThumbFrame,
300
+ {
301
+ ref: composedRefs,
302
+ role: "slider",
303
+ "aria-label": props["aria-label"] || label,
304
+ "aria-valuemin": context.min,
305
+ "aria-valuenow": value,
306
+ "aria-valuemax": context.max,
307
+ "aria-orientation": context.orientation,
308
+ "data-orientation": context.orientation,
309
+ "data-disabled": context.disabled ? "" : void 0,
310
+ tabIndex: context.disabled ? void 0 : 0,
311
+ animateOnly: ["transform", "left", "right", "top", "bottom"],
312
+ ...thumbProps,
313
+ ...context.orientation === "horizontal" ? {
314
+ x: thumbInBoundsOffset - size / 2,
315
+ y: -size / 2,
316
+ top: "50%",
317
+ ...size === 0 && {
318
+ top: "auto",
319
+ bottom: "auto"
320
+ }
321
+ } : {
322
+ x: -size / 2,
323
+ y: size / 2,
324
+ left: "50%",
325
+ ...size === 0 && {
326
+ left: "auto",
327
+ right: "auto"
328
+ }
329
+ },
330
+ ...{
331
+ [orientation.startEdge]: `${percent}%`
332
+ },
333
+ size: sizeIn,
334
+ onLayout: (e) => {
335
+ setSize(e.nativeEvent.layout[orientation.sizeProp]);
336
+ },
337
+ onFocus: (0, import_helpers.composeEventHandlers)(props.onFocus, () => {
338
+ context.valueIndexToChangeRef.current = index;
339
+ })
340
+ }
341
+ );
315
342
  }
316
343
  );
317
344
  SliderThumb.displayName = THUMB_NAME;
@@ -385,45 +412,51 @@ const Slider = (0, import_core.withStaticProperties)(
385
412
  });
386
413
  }
387
414
  const SliderOriented = isHorizontal ? SliderHorizontal : SliderVertical;
388
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_constants.SliderProvider, {
389
- scope: props.__scopeSlider,
390
- disabled,
391
- min,
392
- max,
393
- valueIndexToChangeRef,
394
- thumbs: thumbRefs.current,
395
- values,
396
- orientation,
397
- size: sizeProp,
398
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SliderOriented, {
399
- "aria-disabled": disabled,
400
- "data-disabled": disabled ? "" : void 0,
401
- ...sliderProps,
402
- ref: composedRefs,
415
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
416
+ import_constants.SliderProvider,
417
+ {
418
+ scope: props.__scopeSlider,
419
+ disabled,
403
420
  min,
404
421
  max,
405
- onSlideStart: disabled ? void 0 : (value2, target) => {
406
- if (target !== "thumb") {
407
- const closestIndex = (0, import_helpers2.getClosestValueIndex)(values, value2);
408
- updateValues(value2, closestIndex);
422
+ valueIndexToChangeRef,
423
+ thumbs: thumbRefs.current,
424
+ values,
425
+ orientation,
426
+ size: sizeProp,
427
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
428
+ SliderOriented,
429
+ {
430
+ "aria-disabled": disabled,
431
+ "data-disabled": disabled ? "" : void 0,
432
+ ...sliderProps,
433
+ ref: composedRefs,
434
+ min,
435
+ max,
436
+ onSlideStart: disabled ? void 0 : (value2, target) => {
437
+ if (target !== "thumb") {
438
+ const closestIndex = (0, import_helpers2.getClosestValueIndex)(values, value2);
439
+ updateValues(value2, closestIndex);
440
+ }
441
+ },
442
+ onSlideMove: disabled ? void 0 : handleSlideMove,
443
+ onHomeKeyDown: () => !disabled && updateValues(min, 0),
444
+ onEndKeyDown: () => !disabled && updateValues(max, values.length - 1),
445
+ onStepKeyDown: ({ event, direction: stepDirection }) => {
446
+ if (!disabled) {
447
+ const isPageKey = import_constants.PAGE_KEYS.includes(event.key);
448
+ const isSkipKey = isPageKey || event.shiftKey && import_constants.ARROW_KEYS.includes(event.key);
449
+ const multiplier = isSkipKey ? 10 : 1;
450
+ const atIndex = valueIndexToChangeRef.current;
451
+ const value2 = values[atIndex];
452
+ const stepInDirection = step * multiplier * stepDirection;
453
+ updateValues(value2 + stepInDirection, atIndex);
454
+ }
455
+ }
409
456
  }
410
- },
411
- onSlideMove: disabled ? void 0 : handleSlideMove,
412
- onHomeKeyDown: () => !disabled && updateValues(min, 0),
413
- onEndKeyDown: () => !disabled && updateValues(max, values.length - 1),
414
- onStepKeyDown: ({ event, direction: stepDirection }) => {
415
- if (!disabled) {
416
- const isPageKey = import_constants.PAGE_KEYS.includes(event.key);
417
- const isSkipKey = isPageKey || event.shiftKey && import_constants.ARROW_KEYS.includes(event.key);
418
- const multiplier = isSkipKey ? 10 : 1;
419
- const atIndex = valueIndexToChangeRef.current;
420
- const value2 = values[atIndex];
421
- const stepInDirection = step * multiplier * stepDirection;
422
- updateValues(value2 + stepInDirection, atIndex);
423
- }
424
- }
425
- })
426
- });
457
+ )
458
+ }
459
+ );
427
460
  }),
428
461
  {
429
462
  Track: SliderTrack,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Slider.tsx"],
4
- "sourcesContent": ["// forked from radix-ui\n\nimport { composeRefs, useComposedRefs } from '@tamagui/compose-refs'\nimport {\n GetProps,\n SizeTokens,\n getVariableValue,\n isWeb,\n styled,\n withStaticProperties,\n} from '@tamagui/core'\nimport { getSize } from '@tamagui/get-size'\nimport { clamp, composeEventHandlers } from '@tamagui/helpers'\nimport { SizableStackProps, ThemeableStack } from '@tamagui/stacks'\nimport { useControllableState } from '@tamagui/use-controllable-state'\nimport { useDirection } from '@tamagui/use-direction'\nimport * as React from 'react'\nimport { View } from 'react-native'\n\nimport {\n ARROW_KEYS,\n BACK_KEYS,\n PAGE_KEYS,\n SLIDER_NAME,\n SliderOrientationProvider,\n SliderProvider,\n useSliderContext,\n useSliderOrientationContext,\n} from './constants'\nimport {\n convertValueToPercentage,\n getClosestValueIndex,\n getDecimalCount,\n getLabel,\n getNextSortedValues,\n getThumbInBoundsOffset,\n hasMinStepsBetweenValues,\n linearScale,\n roundValue,\n} from './helpers'\nimport { SliderFrame, SliderImpl } from './SliderImpl'\nimport {\n ScopedProps,\n SliderContextValue,\n SliderHorizontalProps,\n SliderProps,\n SliderTrackProps,\n SliderVerticalProps,\n} from './types'\n\n/* -------------------------------------------------------------------------------------------------\n * SliderHorizontal\n * -----------------------------------------------------------------------------------------------*/\n\nconst SliderHorizontal = React.forwardRef<View, SliderHorizontalProps>(\n (props: ScopedProps<SliderHorizontalProps>, forwardedRef) => {\n const { min, max, dir, onSlideStart, onSlideMove, onStepKeyDown, ...sliderProps } =\n props\n const direction = useDirection(dir)\n const isDirectionLTR = direction === 'ltr'\n const sliderRef = React.useRef<View>(null)\n const [state, setState] = React.useState(() => ({ size: 0, offset: 0 }))\n\n function getValueFromPointer(pointerPosition: number) {\n const input: [number, number] = [0, state.size]\n const output: [number, number] = isDirectionLTR ? [min, max] : [max, min]\n const value = linearScale(input, output)\n return value(pointerPosition)\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isDirectionLTR ? 'left' : 'right'}\n endEdge={isDirectionLTR ? 'right' : 'left'}\n direction={isDirectionLTR ? 1 : -1}\n sizeProp=\"width\"\n size={state.size}\n >\n <SliderImpl\n ref={composeRefs(forwardedRef, sliderRef)}\n dir={direction}\n {...sliderProps}\n orientation=\"horizontal\"\n onLayout={() => {\n sliderRef.current?.measure((_x, _y, width, _height, pageX, _pageY) => {\n setState({\n size: width,\n offset: pageX,\n })\n })\n }}\n onSlideStart={(event, target) => {\n const value = getValueFromPointer(event.nativeEvent.locationX)\n if (value) {\n onSlideStart?.(value, target)\n }\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.nativeEvent.pageX - state.offset)\n if (value) {\n onSlideMove?.(value)\n }\n }}\n onSlideEnd={() => {}}\n onStepKeyDown={(event) => {\n const isBackKey = BACK_KEYS[direction].includes(event.key)\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 })\n }}\n />\n </SliderOrientationProvider>\n )\n }\n)\n\n/* -------------------------------------------------------------------------------------------------\n * SliderVertical\n * -----------------------------------------------------------------------------------------------*/\n\nconst SliderVertical = React.forwardRef<View, SliderVerticalProps>(\n (props: ScopedProps<SliderVerticalProps>, forwardedRef) => {\n const { min, max, onSlideStart, onSlideMove, onStepKeyDown, ...sliderProps } = props\n const [state, setState] = React.useState(() => ({ size: 0, offset: 0 }))\n const sliderRef = React.useRef<View>(null)\n\n function getValueFromPointer(pointerPosition: number) {\n const input: [number, number] = [0, state.size]\n const output: [number, number] = [max, min]\n const value = linearScale(input, output)\n return value(pointerPosition)\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge=\"bottom\"\n endEdge=\"top\"\n sizeProp=\"height\"\n size={state.size}\n direction={1}\n >\n <SliderImpl\n ref={composeRefs(forwardedRef, sliderRef)}\n {...sliderProps}\n orientation=\"vertical\"\n onLayout={({ nativeEvent: { layout } }) => {\n sliderRef.current?.measure((_x, _y, _width, height, _pageX, pageY) => {\n setState({\n size: height,\n offset: pageY,\n })\n })\n }}\n onSlideStart={(event, target) => {\n const value = getValueFromPointer(event.nativeEvent.locationY)\n if (value) {\n onSlideStart?.(value, target)\n }\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.nativeEvent.pageY - state.offset)\n if (value) {\n onSlideMove?.(value)\n }\n }}\n onSlideEnd={() => {}}\n onStepKeyDown={(event) => {\n const isBackKey = BACK_KEYS.ltr.includes(event.key)\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 })\n }}\n />\n </SliderOrientationProvider>\n )\n }\n)\n\n/* -------------------------------------------------------------------------------------------------\n * SliderTrack\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRACK_NAME = 'SliderTrack'\n\ntype SliderTrackElement = HTMLElement | View\n\nexport const SliderTrackFrame = styled(SliderFrame, {\n name: 'SliderTrack',\n height: '100%',\n width: '100%',\n backgroundColor: '$background',\n position: 'relative',\n borderRadius: 100_000,\n overflow: 'hidden',\n})\n\nconst SliderTrack = React.forwardRef<SliderTrackElement, SliderTrackProps>(\n (props: ScopedProps<SliderTrackProps>, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props\n const context = useSliderContext(TRACK_NAME, __scopeSlider)\n return (\n <SliderTrackFrame\n data-disabled={context.disabled ? '' : undefined}\n data-orientation={context.orientation}\n orientation={context.orientation}\n size={context.size}\n {...trackProps}\n ref={forwardedRef}\n />\n )\n }\n)\n\nSliderTrack.displayName = TRACK_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * SliderTrackActive\n * -----------------------------------------------------------------------------------------------*/\n\nconst RANGE_NAME = 'SliderTrackActive'\n\nexport const SliderTrackActiveFrame = styled(SliderFrame, {\n name: 'SliderTrackActive',\n backgroundColor: '$background',\n position: 'absolute',\n})\n\ntype SliderTrackActiveProps = GetProps<typeof SliderTrackActiveFrame>\n\nconst SliderTrackActive = React.forwardRef<View, SliderTrackActiveProps>(\n (props: ScopedProps<SliderTrackActiveProps>, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props\n const context = useSliderContext(RANGE_NAME, __scopeSlider)\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider)\n const ref = React.useRef<View>(null)\n const composedRefs = useComposedRefs(forwardedRef, ref)\n const valuesCount = context.values.length\n const percentages = context.values.map((value) =>\n convertValueToPercentage(value, context.min, context.max)\n )\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0\n const offsetEnd = 100 - Math.max(...percentages)\n\n return (\n <SliderTrackActiveFrame\n orientation={context.orientation}\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n size={context.size}\n {...rangeProps}\n ref={composedRefs}\n {...{\n [orientation.startEdge]: `${offsetStart}%`,\n [orientation.endEdge]: `${offsetEnd}%`,\n }}\n {...(orientation.sizeProp === 'width'\n ? {\n height: '100%',\n }\n : {\n left: 0,\n right: 0,\n })}\n />\n )\n }\n)\n\nSliderTrackActive.displayName = RANGE_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * SliderThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'SliderThumb'\n\n// TODO make this customizable through tamagui\n// so we can accurately use it for estimatedSize below\nconst getThumbSize = (val?: SizeTokens | number) => {\n const size = typeof val === 'number' ? val : getSize(val, -1)\n return {\n width: size,\n height: size,\n minWidth: size,\n minHeight: size,\n }\n}\n\nexport const SliderThumbFrame = styled(ThemeableStack, {\n name: 'SliderThumb',\n position: 'absolute',\n // TODO not taking up 2\n bordered: 2,\n // OR THIS\n borderWidth: 2,\n backgrounded: true,\n pressTheme: isWeb,\n focusTheme: isWeb,\n hoverTheme: isWeb,\n\n variants: {\n size: {\n '...size': getThumbSize,\n },\n } as const,\n})\n\ninterface SliderThumbProps extends SizableStackProps {\n index: number\n}\n\nconst SliderThumb = React.forwardRef<View, SliderThumbProps>(\n (props: ScopedProps<SliderThumbProps>, forwardedRef) => {\n const { __scopeSlider, index, size: sizeProp, ...thumbProps } = props\n const context = useSliderContext(THUMB_NAME, __scopeSlider)\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider)\n const [thumb, setThumb] = React.useState<View | HTMLElement | null>(null)\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node))\n\n // We cast because index could be `-1` which would return undefined\n const value = context.values[index] as number | undefined\n const percent =\n value === undefined ? 0 : convertValueToPercentage(value, context.min, context.max)\n const label = getLabel(index, context.values.length)\n const sizeIn = sizeProp ?? context.size ?? '$4'\n const [size, setSize] = React.useState(() => {\n // for SSR\n const estimatedSize = getVariableValue(getThumbSize(sizeIn).width)\n return estimatedSize\n })\n\n const thumbInBoundsOffset = size\n ? getThumbInBoundsOffset(size, percent, orientation.direction)\n : 0\n\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb)\n return () => {\n context.thumbs.delete(thumb)\n }\n }\n }, [thumb, context.thumbs])\n\n return (\n <SliderThumbFrame\n ref={composedRefs}\n // TODO\n // @ts-ignore\n role=\"slider\"\n aria-label={props['aria-label'] || label}\n aria-valuemin={context.min}\n aria-valuenow={value}\n aria-valuemax={context.max}\n aria-orientation={context.orientation}\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n tabIndex={context.disabled ? undefined : 0}\n animateOnly={['transform', 'left', 'right', 'top', 'bottom']}\n {...thumbProps}\n {...(context.orientation === 'horizontal'\n ? {\n x: thumbInBoundsOffset - size / 2,\n y: -size / 2,\n top: '50%',\n ...(size === 0 && {\n top: 'auto',\n bottom: 'auto',\n }),\n }\n : {\n x: -size / 2,\n y: size / 2,\n left: '50%',\n ...(size === 0 && {\n left: 'auto',\n right: 'auto',\n }),\n })}\n {...{\n [orientation.startEdge]: `${percent}%`,\n }}\n size={sizeIn}\n onLayout={(e) => {\n setSize(e.nativeEvent.layout[orientation.sizeProp])\n }}\n /**\n * There will be no value on initial render while we work out the index so we hide thumbs\n * without a value, otherwise SSR will render them in the wrong position before they\n * snap into the correct position during hydration which would be visually jarring for\n * slower connections.\n */\n // style={value === undefined ? { display: 'none' } : props.style}\n onFocus={composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index\n })}\n />\n )\n }\n)\n\nSliderThumb.displayName = THUMB_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * Slider\n * -----------------------------------------------------------------------------------------------*/\n\nconst Slider = withStaticProperties(\n React.forwardRef<View, SliderProps>((props: ScopedProps<SliderProps>, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = 'horizontal',\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {},\n size: sizeProp,\n ...sliderProps\n } = props\n const sliderRef = React.useRef<View>(null)\n const composedRefs = useComposedRefs(sliderRef, forwardedRef)\n const thumbRefs = React.useRef<SliderContextValue['thumbs']>(new Set())\n const valueIndexToChangeRef = React.useRef<number>(0)\n const isHorizontal = orientation === 'horizontal'\n // We set this to true by default so that events bubble to forms without JS (SSR)\n // const isFormControl =\n // sliderRef.current instanceof HTMLElement ? Boolean(sliderRef.current.closest('form')) : true\n\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n transition: true,\n onChange: (value) => {\n if (isWeb) {\n const thumbs = [...thumbRefs.current]\n thumbs[valueIndexToChangeRef.current]?.focus()\n }\n onValueChange(value)\n },\n })\n\n if (isWeb) {\n React.useEffect(() => {\n // @ts-ignore\n const node = sliderRef.current as HTMLElement\n if (!node) return\n const preventDefault = (e) => {\n e.preventDefault()\n }\n node.addEventListener('touchstart', preventDefault)\n return () => {\n node.removeEventListener('touchstart', preventDefault)\n }\n }, [])\n }\n\n function handleSlideMove(value: number) {\n updateValues(value, valueIndexToChangeRef.current)\n }\n\n function updateValues(value: number, atIndex: number) {\n const decimalCount = getDecimalCount(step)\n const snapToStep = roundValue(\n Math.round((value - min) / step) * step + min,\n decimalCount\n )\n const nextValue = clamp(snapToStep, [min, max])\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex)\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue)\n return String(nextValues) === String(prevValues) ? prevValues : nextValues\n } else {\n return prevValues\n }\n })\n }\n\n const SliderOriented = isHorizontal ? SliderHorizontal : SliderVertical\n\n return (\n <SliderProvider\n scope={props.__scopeSlider}\n disabled={disabled}\n min={min}\n max={max}\n valueIndexToChangeRef={valueIndexToChangeRef}\n thumbs={thumbRefs.current}\n values={values}\n orientation={orientation}\n size={sizeProp}\n >\n <SliderOriented\n aria-disabled={disabled}\n data-disabled={disabled ? '' : undefined}\n {...sliderProps}\n ref={composedRefs}\n min={min}\n max={max}\n onSlideStart={\n disabled\n ? undefined\n : (value: number, target) => {\n // when starting on the track, move it right away\n // when starting on thumb, dont jump until movemenet as it feels weird\n if (target !== 'thumb') {\n const closestIndex = getClosestValueIndex(values, value)\n updateValues(value, closestIndex)\n }\n }\n }\n onSlideMove={disabled ? undefined : handleSlideMove}\n onHomeKeyDown={() => !disabled && updateValues(min, 0)}\n onEndKeyDown={() => !disabled && updateValues(max, values.length - 1)}\n onStepKeyDown={({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key)\n const isSkipKey =\n isPageKey || (event.shiftKey && ARROW_KEYS.includes(event.key))\n const multiplier = isSkipKey ? 10 : 1\n const atIndex = valueIndexToChangeRef.current\n const value = values[atIndex]\n const stepInDirection = step * multiplier * stepDirection\n updateValues(value + stepInDirection, atIndex)\n }\n }}\n />\n {/* {isFormControl &&\n values.map((value, index) => (\n <BubbleInput\n key={index}\n name={name ? name + (values.length > 1 ? '[]' : '') : undefined}\n value={value}\n />\n ))} */}\n </SliderProvider>\n )\n }),\n {\n Track: SliderTrack,\n TrackActive: SliderTrackActive,\n Thumb: SliderThumb,\n }\n)\n\nSlider.displayName = SLIDER_NAME\n\n/* -----------------------------------------------------------------------------------------------*/\n\n// // TODO\n// const BubbleInput = (props: any) => {\n// const { value, ...inputProps } = props\n// const ref = React.useRef<HTMLInputElement>(null)\n// const prevValue = usePrevious(value)\n\n// // Bubble value change to parents (e.g form change event)\n// React.useEffect(() => {\n// const input = ref.current!\n// const inputProto = window.HTMLInputElement.prototype\n// const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor\n// const setValue = descriptor.set\n// if (prevValue !== value && setValue) {\n// const event = new Event('input', { bubbles: true })\n// setValue.call(input, value)\n// input.dispatchEvent(event)\n// }\n// }, [prevValue, value])\n\n// /**\n// * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n// * wrap it will not be able to access its value via the FormData API.\n// *\n// * We purposefully do not add the `value` attribute here to allow the value\n// * to be set programatically and bubble to any parent form `onChange` event.\n// * Adding the `value` will cause React to consider the programatic\n// * dispatch a duplicate and it will get swallowed.\n// */\n// return <input style={{ display: 'none' }} {...inputProps} ref={ref} defaultValue={value} />\n// }\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Track = SliderTrack\nconst Range = SliderTrackActive\nconst Thumb = SliderThumb\n\nexport {\n Slider,\n SliderTrack,\n SliderTrackActive,\n SliderThumb,\n //\n Track,\n Range,\n Thumb,\n}\n\nexport type { SliderProps, SliderTrackProps, SliderTrackActiveProps, SliderThumbProps }\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// forked from radix-ui\n\nimport { composeRefs, useComposedRefs } from '@tamagui/compose-refs'\nimport {\n GetProps,\n SizeTokens,\n getVariableValue,\n isWeb,\n styled,\n withStaticProperties,\n} from '@tamagui/core'\nimport { getSize } from '@tamagui/get-size'\nimport { clamp, composeEventHandlers } from '@tamagui/helpers'\nimport { SizableStackProps, ThemeableStack } from '@tamagui/stacks'\nimport { useControllableState } from '@tamagui/use-controllable-state'\nimport { useDirection } from '@tamagui/use-direction'\nimport * as React from 'react'\nimport { View } from 'react-native'\n\nimport {\n ARROW_KEYS,\n BACK_KEYS,\n PAGE_KEYS,\n SLIDER_NAME,\n SliderOrientationProvider,\n SliderProvider,\n useSliderContext,\n useSliderOrientationContext,\n} from './constants'\nimport {\n convertValueToPercentage,\n getClosestValueIndex,\n getDecimalCount,\n getLabel,\n getNextSortedValues,\n getThumbInBoundsOffset,\n hasMinStepsBetweenValues,\n linearScale,\n roundValue,\n} from './helpers'\nimport { SliderFrame, SliderImpl } from './SliderImpl'\nimport {\n ScopedProps,\n SliderContextValue,\n SliderHorizontalProps,\n SliderProps,\n SliderTrackProps,\n SliderVerticalProps,\n} from './types'\n\n/* -------------------------------------------------------------------------------------------------\n * SliderHorizontal\n * -----------------------------------------------------------------------------------------------*/\n\nconst SliderHorizontal = React.forwardRef<View, SliderHorizontalProps>(\n (props: ScopedProps<SliderHorizontalProps>, forwardedRef) => {\n const { min, max, dir, onSlideStart, onSlideMove, onStepKeyDown, ...sliderProps } =\n props\n const direction = useDirection(dir)\n const isDirectionLTR = direction === 'ltr'\n const sliderRef = React.useRef<View>(null)\n const [state, setState] = React.useState(() => ({ size: 0, offset: 0 }))\n\n function getValueFromPointer(pointerPosition: number) {\n const input: [number, number] = [0, state.size]\n const output: [number, number] = isDirectionLTR ? [min, max] : [max, min]\n const value = linearScale(input, output)\n return value(pointerPosition)\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isDirectionLTR ? 'left' : 'right'}\n endEdge={isDirectionLTR ? 'right' : 'left'}\n direction={isDirectionLTR ? 1 : -1}\n sizeProp=\"width\"\n size={state.size}\n >\n <SliderImpl\n ref={composeRefs(forwardedRef, sliderRef)}\n dir={direction}\n {...sliderProps}\n orientation=\"horizontal\"\n onLayout={() => {\n sliderRef.current?.measure((_x, _y, width, _height, pageX, _pageY) => {\n setState({\n size: width,\n offset: pageX,\n })\n })\n }}\n onSlideStart={(event, target) => {\n const value = getValueFromPointer(event.nativeEvent.locationX)\n if (value) {\n onSlideStart?.(value, target)\n }\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.nativeEvent.pageX - state.offset)\n if (value) {\n onSlideMove?.(value)\n }\n }}\n onSlideEnd={() => {}}\n onStepKeyDown={(event) => {\n const isBackKey = BACK_KEYS[direction].includes(event.key)\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 })\n }}\n />\n </SliderOrientationProvider>\n )\n }\n)\n\n/* -------------------------------------------------------------------------------------------------\n * SliderVertical\n * -----------------------------------------------------------------------------------------------*/\n\nconst SliderVertical = React.forwardRef<View, SliderVerticalProps>(\n (props: ScopedProps<SliderVerticalProps>, forwardedRef) => {\n const { min, max, onSlideStart, onSlideMove, onStepKeyDown, ...sliderProps } = props\n const [state, setState] = React.useState(() => ({ size: 0, offset: 0 }))\n const sliderRef = React.useRef<View>(null)\n\n function getValueFromPointer(pointerPosition: number) {\n const input: [number, number] = [0, state.size]\n const output: [number, number] = [max, min]\n const value = linearScale(input, output)\n return value(pointerPosition)\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge=\"bottom\"\n endEdge=\"top\"\n sizeProp=\"height\"\n size={state.size}\n direction={1}\n >\n <SliderImpl\n ref={composeRefs(forwardedRef, sliderRef)}\n {...sliderProps}\n orientation=\"vertical\"\n onLayout={({ nativeEvent: { layout } }) => {\n sliderRef.current?.measure((_x, _y, _width, height, _pageX, pageY) => {\n setState({\n size: height,\n offset: pageY,\n })\n })\n }}\n onSlideStart={(event, target) => {\n const value = getValueFromPointer(event.nativeEvent.locationY)\n if (value) {\n onSlideStart?.(value, target)\n }\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.nativeEvent.pageY - state.offset)\n if (value) {\n onSlideMove?.(value)\n }\n }}\n onSlideEnd={() => {}}\n onStepKeyDown={(event) => {\n const isBackKey = BACK_KEYS.ltr.includes(event.key)\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 })\n }}\n />\n </SliderOrientationProvider>\n )\n }\n)\n\n/* -------------------------------------------------------------------------------------------------\n * SliderTrack\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRACK_NAME = 'SliderTrack'\n\ntype SliderTrackElement = HTMLElement | View\n\nexport const SliderTrackFrame = styled(SliderFrame, {\n name: 'SliderTrack',\n height: '100%',\n width: '100%',\n backgroundColor: '$background',\n position: 'relative',\n borderRadius: 100_000,\n overflow: 'hidden',\n})\n\nconst SliderTrack = React.forwardRef<SliderTrackElement, SliderTrackProps>(\n (props: ScopedProps<SliderTrackProps>, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props\n const context = useSliderContext(TRACK_NAME, __scopeSlider)\n return (\n <SliderTrackFrame\n data-disabled={context.disabled ? '' : undefined}\n data-orientation={context.orientation}\n orientation={context.orientation}\n size={context.size}\n {...trackProps}\n ref={forwardedRef}\n />\n )\n }\n)\n\nSliderTrack.displayName = TRACK_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * SliderTrackActive\n * -----------------------------------------------------------------------------------------------*/\n\nconst RANGE_NAME = 'SliderTrackActive'\n\nexport const SliderTrackActiveFrame = styled(SliderFrame, {\n name: 'SliderTrackActive',\n backgroundColor: '$background',\n position: 'absolute',\n})\n\ntype SliderTrackActiveProps = GetProps<typeof SliderTrackActiveFrame>\n\nconst SliderTrackActive = React.forwardRef<View, SliderTrackActiveProps>(\n (props: ScopedProps<SliderTrackActiveProps>, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props\n const context = useSliderContext(RANGE_NAME, __scopeSlider)\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider)\n const ref = React.useRef<View>(null)\n const composedRefs = useComposedRefs(forwardedRef, ref)\n const valuesCount = context.values.length\n const percentages = context.values.map((value) =>\n convertValueToPercentage(value, context.min, context.max)\n )\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0\n const offsetEnd = 100 - Math.max(...percentages)\n\n return (\n <SliderTrackActiveFrame\n orientation={context.orientation}\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n size={context.size}\n {...rangeProps}\n ref={composedRefs}\n {...{\n [orientation.startEdge]: `${offsetStart}%`,\n [orientation.endEdge]: `${offsetEnd}%`,\n }}\n {...(orientation.sizeProp === 'width'\n ? {\n height: '100%',\n }\n : {\n left: 0,\n right: 0,\n })}\n />\n )\n }\n)\n\nSliderTrackActive.displayName = RANGE_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * SliderThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'SliderThumb'\n\n// TODO make this customizable through tamagui\n// so we can accurately use it for estimatedSize below\nconst getThumbSize = (val?: SizeTokens | number) => {\n const size = typeof val === 'number' ? val : getSize(val, -1)\n return {\n width: size,\n height: size,\n minWidth: size,\n minHeight: size,\n }\n}\n\nexport const SliderThumbFrame = styled(ThemeableStack, {\n name: 'SliderThumb',\n position: 'absolute',\n // TODO not taking up 2\n bordered: 2,\n // OR THIS\n borderWidth: 2,\n backgrounded: true,\n pressTheme: isWeb,\n focusTheme: isWeb,\n hoverTheme: isWeb,\n\n variants: {\n size: {\n '...size': getThumbSize,\n },\n } as const,\n})\n\ninterface SliderThumbProps extends SizableStackProps {\n index: number\n}\n\nconst SliderThumb = React.forwardRef<View, SliderThumbProps>(\n (props: ScopedProps<SliderThumbProps>, forwardedRef) => {\n const { __scopeSlider, index, size: sizeProp, ...thumbProps } = props\n const context = useSliderContext(THUMB_NAME, __scopeSlider)\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider)\n const [thumb, setThumb] = React.useState<View | HTMLElement | null>(null)\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node))\n\n // We cast because index could be `-1` which would return undefined\n const value = context.values[index] as number | undefined\n const percent =\n value === undefined ? 0 : convertValueToPercentage(value, context.min, context.max)\n const label = getLabel(index, context.values.length)\n const sizeIn = sizeProp ?? context.size ?? '$true'\n const [size, setSize] = React.useState(() => {\n // for SSR\n const estimatedSize = getVariableValue(getThumbSize(sizeIn).width)\n return estimatedSize\n })\n\n const thumbInBoundsOffset = size\n ? getThumbInBoundsOffset(size, percent, orientation.direction)\n : 0\n\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb)\n return () => {\n context.thumbs.delete(thumb)\n }\n }\n }, [thumb, context.thumbs])\n\n return (\n <SliderThumbFrame\n ref={composedRefs}\n // TODO\n // @ts-ignore\n role=\"slider\"\n aria-label={props['aria-label'] || label}\n aria-valuemin={context.min}\n aria-valuenow={value}\n aria-valuemax={context.max}\n aria-orientation={context.orientation}\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n tabIndex={context.disabled ? undefined : 0}\n animateOnly={['transform', 'left', 'right', 'top', 'bottom']}\n {...thumbProps}\n {...(context.orientation === 'horizontal'\n ? {\n x: thumbInBoundsOffset - size / 2,\n y: -size / 2,\n top: '50%',\n ...(size === 0 && {\n top: 'auto',\n bottom: 'auto',\n }),\n }\n : {\n x: -size / 2,\n y: size / 2,\n left: '50%',\n ...(size === 0 && {\n left: 'auto',\n right: 'auto',\n }),\n })}\n {...{\n [orientation.startEdge]: `${percent}%`,\n }}\n size={sizeIn}\n onLayout={(e) => {\n setSize(e.nativeEvent.layout[orientation.sizeProp])\n }}\n /**\n * There will be no value on initial render while we work out the index so we hide thumbs\n * without a value, otherwise SSR will render them in the wrong position before they\n * snap into the correct position during hydration which would be visually jarring for\n * slower connections.\n */\n // style={value === undefined ? { display: 'none' } : props.style}\n onFocus={composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index\n })}\n />\n )\n }\n)\n\nSliderThumb.displayName = THUMB_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * Slider\n * -----------------------------------------------------------------------------------------------*/\n\nconst Slider = withStaticProperties(\n React.forwardRef<View, SliderProps>((props: ScopedProps<SliderProps>, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = 'horizontal',\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {},\n size: sizeProp,\n ...sliderProps\n } = props\n const sliderRef = React.useRef<View>(null)\n const composedRefs = useComposedRefs(sliderRef, forwardedRef)\n const thumbRefs = React.useRef<SliderContextValue['thumbs']>(new Set())\n const valueIndexToChangeRef = React.useRef<number>(0)\n const isHorizontal = orientation === 'horizontal'\n // We set this to true by default so that events bubble to forms without JS (SSR)\n // const isFormControl =\n // sliderRef.current instanceof HTMLElement ? Boolean(sliderRef.current.closest('form')) : true\n\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n transition: true,\n onChange: (value) => {\n if (isWeb) {\n const thumbs = [...thumbRefs.current]\n thumbs[valueIndexToChangeRef.current]?.focus()\n }\n onValueChange(value)\n },\n })\n\n if (isWeb) {\n React.useEffect(() => {\n // @ts-ignore\n const node = sliderRef.current as HTMLElement\n if (!node) return\n const preventDefault = (e) => {\n e.preventDefault()\n }\n node.addEventListener('touchstart', preventDefault)\n return () => {\n node.removeEventListener('touchstart', preventDefault)\n }\n }, [])\n }\n\n function handleSlideMove(value: number) {\n updateValues(value, valueIndexToChangeRef.current)\n }\n\n function updateValues(value: number, atIndex: number) {\n const decimalCount = getDecimalCount(step)\n const snapToStep = roundValue(\n Math.round((value - min) / step) * step + min,\n decimalCount\n )\n const nextValue = clamp(snapToStep, [min, max])\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex)\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue)\n return String(nextValues) === String(prevValues) ? prevValues : nextValues\n } else {\n return prevValues\n }\n })\n }\n\n const SliderOriented = isHorizontal ? SliderHorizontal : SliderVertical\n\n return (\n <SliderProvider\n scope={props.__scopeSlider}\n disabled={disabled}\n min={min}\n max={max}\n valueIndexToChangeRef={valueIndexToChangeRef}\n thumbs={thumbRefs.current}\n values={values}\n orientation={orientation}\n size={sizeProp}\n >\n <SliderOriented\n aria-disabled={disabled}\n data-disabled={disabled ? '' : undefined}\n {...sliderProps}\n ref={composedRefs}\n min={min}\n max={max}\n onSlideStart={\n disabled\n ? undefined\n : (value: number, target) => {\n // when starting on the track, move it right away\n // when starting on thumb, dont jump until movemenet as it feels weird\n if (target !== 'thumb') {\n const closestIndex = getClosestValueIndex(values, value)\n updateValues(value, closestIndex)\n }\n }\n }\n onSlideMove={disabled ? undefined : handleSlideMove}\n onHomeKeyDown={() => !disabled && updateValues(min, 0)}\n onEndKeyDown={() => !disabled && updateValues(max, values.length - 1)}\n onStepKeyDown={({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key)\n const isSkipKey =\n isPageKey || (event.shiftKey && ARROW_KEYS.includes(event.key))\n const multiplier = isSkipKey ? 10 : 1\n const atIndex = valueIndexToChangeRef.current\n const value = values[atIndex]\n const stepInDirection = step * multiplier * stepDirection\n updateValues(value + stepInDirection, atIndex)\n }\n }}\n />\n {/* {isFormControl &&\n values.map((value, index) => (\n <BubbleInput\n key={index}\n name={name ? name + (values.length > 1 ? '[]' : '') : undefined}\n value={value}\n />\n ))} */}\n </SliderProvider>\n )\n }),\n {\n Track: SliderTrack,\n TrackActive: SliderTrackActive,\n Thumb: SliderThumb,\n }\n)\n\nSlider.displayName = SLIDER_NAME\n\n/* -----------------------------------------------------------------------------------------------*/\n\n// // TODO\n// const BubbleInput = (props: any) => {\n// const { value, ...inputProps } = props\n// const ref = React.useRef<HTMLInputElement>(null)\n// const prevValue = usePrevious(value)\n\n// // Bubble value change to parents (e.g form change event)\n// React.useEffect(() => {\n// const input = ref.current!\n// const inputProto = window.HTMLInputElement.prototype\n// const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor\n// const setValue = descriptor.set\n// if (prevValue !== value && setValue) {\n// const event = new Event('input', { bubbles: true })\n// setValue.call(input, value)\n// input.dispatchEvent(event)\n// }\n// }, [prevValue, value])\n\n// /**\n// * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n// * wrap it will not be able to access its value via the FormData API.\n// *\n// * We purposefully do not add the `value` attribute here to allow the value\n// * to be set programatically and bubble to any parent form `onChange` event.\n// * Adding the `value` will cause React to consider the programatic\n// * dispatch a duplicate and it will get swallowed.\n// */\n// return <input style={{ display: 'none' }} {...inputProps} ref={ref} defaultValue={value} />\n// }\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Track = SliderTrack\nconst Range = SliderTrackActive\nconst Thumb = SliderThumb\n\nexport {\n Slider,\n SliderTrack,\n SliderTrackActive,\n SliderThumb,\n //\n Track,\n Range,\n Thumb,\n}\n\nexport type { SliderProps, SliderTrackProps, SliderTrackActiveProps, SliderThumbProps }\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_helpers", "value"]
7
7
  }