@tamagui/slider 3.0.0-beta.924.1 → 3.0.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.
- package/dist/cjs/Slider.cjs +25 -36
- package/dist/cjs/Slider.native.cjs +27 -37
- package/dist/cjs/Slider.native.js +27 -37
- package/dist/cjs/Slider.native.js.map +1 -1
- package/dist/cjs/SliderImpl.cjs +9 -35
- package/dist/cjs/SliderImpl.native.cjs +10 -51
- package/dist/cjs/SliderImpl.native.js +10 -51
- package/dist/cjs/SliderImpl.native.js.map +1 -1
- package/dist/cjs/SliderResponder.cjs +53 -0
- package/dist/cjs/SliderResponder.native.cjs +54 -0
- package/dist/cjs/SliderResponder.native.js +56 -0
- package/dist/cjs/SliderResponder.native.js.map +1 -0
- package/dist/esm/Slider.mjs +26 -37
- package/dist/esm/Slider.mjs.map +1 -1
- package/dist/esm/Slider.native.js +28 -38
- package/dist/esm/Slider.native.js.map +1 -1
- package/dist/esm/SliderImpl.mjs +10 -36
- package/dist/esm/SliderImpl.mjs.map +1 -1
- package/dist/esm/SliderImpl.native.js +11 -52
- package/dist/esm/SliderImpl.native.js.map +1 -1
- package/dist/esm/SliderResponder.mjs +28 -0
- package/dist/esm/SliderResponder.mjs.map +1 -0
- package/dist/esm/SliderResponder.native.js +33 -0
- package/dist/esm/SliderResponder.native.js.map +1 -0
- package/dist/jsx/Slider.mjs +26 -37
- package/dist/jsx/Slider.mjs.map +1 -1
- package/dist/jsx/Slider.native.cjs +27 -37
- package/dist/jsx/Slider.native.js +27 -37
- package/dist/jsx/Slider.native.js.map +1 -1
- package/dist/jsx/SliderImpl.mjs +10 -36
- package/dist/jsx/SliderImpl.mjs.map +1 -1
- package/dist/jsx/SliderImpl.native.cjs +10 -51
- package/dist/jsx/SliderImpl.native.js +10 -51
- package/dist/jsx/SliderImpl.native.js.map +1 -1
- package/dist/jsx/SliderResponder.mjs +28 -0
- package/dist/jsx/SliderResponder.mjs.map +1 -0
- package/dist/jsx/SliderResponder.native.cjs +54 -0
- package/dist/jsx/SliderResponder.native.js +56 -0
- package/dist/jsx/SliderResponder.native.js.map +1 -0
- package/package.json +18 -14
- package/src/Slider.tsx +67 -44
- package/src/SliderImpl.tsx +10 -32
- package/src/SliderResponder.native.tsx +30 -0
- package/src/SliderResponder.tsx +43 -0
- package/src/constants.tsx +2 -2
- package/src/types.ts +11 -6
- package/types/Slider.d.ts +42 -196
- package/types/Slider.d.ts.map +1 -1
- package/types/SliderImpl.d.ts +12 -6
- package/types/SliderImpl.d.ts.map +1 -1
- package/types/SliderResponder.d.ts +10 -0
- package/types/SliderResponder.d.ts.map +1 -0
- package/types/SliderResponder.native.d.ts +3 -0
- package/types/SliderResponder.native.d.ts.map +1 -0
- package/types/constants.d.ts +3 -4
- package/types/constants.d.ts.map +1 -1
- package/types/types.d.ts +10 -6
- package/types/types.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SliderImpl.native.js","names":[],"sources":["esm/SliderImpl.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createRefComponent } from \"@tamagui/core\";\nimport { isWeb } from \"@tamagui/constants\";\nimport {
|
|
1
|
+
{"version":3,"file":"SliderImpl.native.js","names":[],"sources":["esm/SliderImpl.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createRefComponent } from \"@tamagui/core\";\nimport { isWeb } from \"@tamagui/constants\";\nimport { styled } from \"@tamagui/core\";\nimport { YStack } from \"@tamagui/stacks\";\nimport * as React from \"react\";\nimport { ARROW_KEYS, PAGE_KEYS, useSliderContext } from \"./constants\";\nimport { SliderResponder } from \"./SliderResponder\";\nvar SliderFrameBase = styled(YStack, {\n position: \"relative\",\n justifyContent: \"center\",\n alignItems: \"center\",\n variants: {\n orientation: {\n horizontal: {},\n vertical: {}\n }\n }\n});\nvar SliderFrame = SliderFrameBase;\nvar SliderImpl = createRefComponent(function(props, forwardedRef) {\n var { __scopeSlider, onSlideStart, onSlideMove, onSlideEnd, onHomeKeyDown, onEndKeyDown, onStepKeyDown, children, ...sliderProps } = props;\n var context = useSliderContext(__scopeSlider);\n var handleResponderGrant = React.useCallback(function(event) {\n var _props_onResponderGrant;\n (_props_onResponderGrant = props.onResponderGrant) === null || _props_onResponderGrant === void 0 ? void 0 : _props_onResponderGrant.call(props, event);\n var target = event.target;\n var thumbIndex = context.thumbs.get(target);\n var isStartingOnThumb = thumbIndex !== void 0;\n if (isWeb && target instanceof HTMLElement) {\n if (context.thumbs.has(target)) {\n target.focus();\n }\n }\n if (!isWeb && isStartingOnThumb) {\n context.valueIndexToChangeRef.current = thumbIndex;\n }\n onSlideStart(event, isStartingOnThumb ? \"thumb\" : \"track\");\n }, [\n context,\n onSlideStart,\n props.onResponderGrant\n ]);\n var handleResponderMove = React.useCallback(function(event) {\n var _props_onResponderMove;\n (_props_onResponderMove = props.onResponderMove) === null || _props_onResponderMove === void 0 ? void 0 : _props_onResponderMove.call(props, event);\n event.stopPropagation();\n onSlideMove(event);\n }, [\n onSlideMove,\n props.onResponderMove\n ]);\n var handleResponderRelease = React.useCallback(function(event) {\n var _props_onResponderRelease;\n (_props_onResponderRelease = props.onResponderRelease) === null || _props_onResponderRelease === void 0 ? void 0 : _props_onResponderRelease.call(props, event);\n onSlideEnd(event);\n }, [\n onSlideEnd,\n props.onResponderRelease\n ]);\n return /* @__PURE__ */ _jsx(SliderFrame, {\n ref: forwardedRef,\n ...sliderProps,\n \"data-orientation\": sliderProps.orientation,\n ...isWeb && {\n onKeyDown: function(event) {\n if (event.key === \"Home\") {\n onHomeKeyDown(event);\n event.preventDefault();\n } else if (event.key === \"End\") {\n onEndKeyDown(event);\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n event.preventDefault();\n }\n }\n },\n children: /* @__PURE__ */ _jsx(SliderResponder, {\n onResponderGrant: handleResponderGrant,\n onResponderMove: handleResponderMove,\n onResponderRelease: handleResponderRelease,\n children\n })\n });\n});\nexport {\n SliderFrame,\n SliderImpl\n};\n//# sourceMappingURL=SliderImpl.js.map\n"],"mappings":";;;;;;;;;AAQA,IAAI,kBAAkB,OAAO,QAAQ;CACnC,UAAU;CACV,gBAAgB;CAChB,YAAY;CACZ,UAAU,EACR,aAAa;EACX,YAAY,CAAC;EACb,UAAU,CAAC;CACb,EACF;AACF,CAAC;AACD,IAAI,cAAc;AAClB,IAAI,aAAa,mBAAmB,SAAS,OAAO,cAAc;CAChE,IAAI,EAAE,eAAe,cAAc,aAAa,YAAY,eAAe,cAAc,eAAe,UAAU,GAAG,gBAAgB;CACrI,IAAI,UAAU,iBAAiB,aAAa;CAC5C,IAAI,uBAAuB,MAAM,YAAY,SAAS,OAAO;EAC3D,IAAI;EACJ,CAAC,0BAA0B,MAAM,sBAAsB,QAAQ,4BAA4B,KAAK,IAAI,KAAK,IAAI,wBAAwB,KAAK,OAAO,KAAK;EACtJ,IAAI,SAAS,MAAM;EACnB,IAAI,aAAa,QAAQ,OAAO,IAAI,MAAM;EAC1C,IAAI,oBAAoB,eAAe,KAAK;EAC5C,IAAI,SAAS,kBAAkB,aAAa;GAC1C,IAAI,QAAQ,OAAO,IAAI,MAAM,GAAG;IAC9B,OAAO,MAAM;GACf;EACF;EACA,IAAI,CAAC,SAAS,mBAAmB;GAC/B,QAAQ,sBAAsB,UAAU;EAC1C;EACA,aAAa,OAAO,oBAAoB,UAAU,OAAO;CAC3D,GAAG;EACD;EACA;EACA,MAAM;CACR,CAAC;CACD,IAAI,sBAAsB,MAAM,YAAY,SAAS,OAAO;EAC1D,IAAI;EACJ,CAAC,yBAAyB,MAAM,qBAAqB,QAAQ,2BAA2B,KAAK,IAAI,KAAK,IAAI,uBAAuB,KAAK,OAAO,KAAK;EAClJ,MAAM,gBAAgB;EACtB,YAAY,KAAK;CACnB,GAAG,CACD,aACA,MAAM,eACR,CAAC;CACD,IAAI,yBAAyB,MAAM,YAAY,SAAS,OAAO;EAC7D,IAAI;EACJ,CAAC,4BAA4B,MAAM,wBAAwB,QAAQ,8BAA8B,KAAK,IAAI,KAAK,IAAI,0BAA0B,KAAK,OAAO,KAAK;EAC9J,WAAW,KAAK;CAClB,GAAG,CACD,YACA,MAAM,kBACR,CAAC;CACD,OAAuB,oBAAK,aAAa;EACvC,KAAK;EACL,GAAG;EACH,oBAAoB,YAAY;EAChC,GAAG,SAAS,EACV,WAAW,SAAS,OAAO;GACzB,IAAI,MAAM,QAAQ,QAAQ;IACxB,cAAc,KAAK;IACnB,MAAM,eAAe;GACvB,OAAO,IAAI,MAAM,QAAQ,OAAO;IAC9B,aAAa,KAAK;IAClB,MAAM,eAAe;GACvB,OAAO,IAAI,UAAU,OAAO,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,GAAG;IAC3D,cAAc,KAAK;IACnB,MAAM,eAAe;GACvB;EACF,EACF;EACA,UAA0B,oBAAK,iBAAiB;GAC9C,kBAAkB;GAClB,iBAAiB;GACjB,oBAAoB;GACpB;EACF,CAAC;CACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { View } from "@tamagui/core";
|
|
2
|
+
import { useResponderEvents } from "@tamagui/react-native-use-responder-events";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
const SliderResponder = ({ onResponderGrant, onResponderMove, onResponderRelease, children }) => {
|
|
7
|
+
const ref = React.useRef(null);
|
|
8
|
+
useResponderEvents(ref, {
|
|
9
|
+
onMoveShouldSetResponderCapture: () => true,
|
|
10
|
+
onMoveShouldSetResponder: () => true,
|
|
11
|
+
onStartShouldSetResponder: () => true,
|
|
12
|
+
onResponderTerminationRequest: () => false,
|
|
13
|
+
onResponderGrant,
|
|
14
|
+
onResponderMove,
|
|
15
|
+
onResponderRelease
|
|
16
|
+
});
|
|
17
|
+
return /* @__PURE__ */ jsx(View, {
|
|
18
|
+
ref,
|
|
19
|
+
position: "absolute",
|
|
20
|
+
inset: 0,
|
|
21
|
+
justifyContent: "center",
|
|
22
|
+
alignItems: "center",
|
|
23
|
+
children
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export { SliderResponder };
|
|
28
|
+
//# sourceMappingURL=SliderResponder.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SliderResponder.js","names":[],"sources":["esm/SliderResponder.js"],"sourcesContent":["import { View } from \"@tamagui/core\";\nimport { useResponderEvents } from \"@tamagui/react-native-use-responder-events\";\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nconst SliderResponder = ({\n onResponderGrant,\n onResponderMove,\n onResponderRelease,\n children\n}) => {\n const ref = React.useRef(null);\n useResponderEvents(ref, {\n onMoveShouldSetResponderCapture: () => true,\n onMoveShouldSetResponder: () => true,\n onStartShouldSetResponder: () => true,\n onResponderTerminationRequest: () => false,\n onResponderGrant,\n onResponderMove,\n onResponderRelease\n });\n return /* @__PURE__ */ jsx(\n View,\n {\n ref,\n position: \"absolute\",\n inset: 0,\n justifyContent: \"center\",\n alignItems: \"center\",\n children\n }\n );\n};\nexport {\n SliderResponder\n};\n//# sourceMappingURL=SliderResponder.js.map\n"],"mappings":";;;;;;AAIA,MAAM,mBAAmB,EACvB,kBACA,iBACA,oBACA,eACI;CACJ,MAAM,MAAM,MAAM,OAAO,IAAI;CAC7B,mBAAmB,KAAK;EACtB,uCAAuC;EACvC,gCAAgC;EAChC,iCAAiC;EACjC,qCAAqC;EACrC;EACA;EACA;CACF,CAAC;CACD,OAAuB,oBACrB,MACA;EACE;EACA,UAAU;EACV,OAAO;EACP,gBAAgB;EAChB,YAAY;EACZ;CACF,CACF;AACF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { View } from "react-native";
|
|
3
|
+
|
|
4
|
+
var SliderResponder = function(param) {
|
|
5
|
+
var { onResponderGrant, onResponderMove, onResponderRelease, children } = param;
|
|
6
|
+
return /* @__PURE__ */ jsx(View, {
|
|
7
|
+
onMoveShouldSetResponderCapture: function() {
|
|
8
|
+
return true;
|
|
9
|
+
},
|
|
10
|
+
onMoveShouldSetResponder: function() {
|
|
11
|
+
return true;
|
|
12
|
+
},
|
|
13
|
+
onStartShouldSetResponder: function() {
|
|
14
|
+
return true;
|
|
15
|
+
},
|
|
16
|
+
onResponderTerminationRequest: function() {
|
|
17
|
+
return false;
|
|
18
|
+
},
|
|
19
|
+
onResponderGrant,
|
|
20
|
+
onResponderMove,
|
|
21
|
+
onResponderRelease,
|
|
22
|
+
style: {
|
|
23
|
+
inset: 0,
|
|
24
|
+
position: "absolute",
|
|
25
|
+
justifyContent: "center",
|
|
26
|
+
alignItems: "center"
|
|
27
|
+
},
|
|
28
|
+
children
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export { SliderResponder };
|
|
33
|
+
//# sourceMappingURL=SliderResponder.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SliderResponder.native.js","names":[],"sources":["esm/SliderResponder.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { View } from \"react-native\";\nvar SliderResponder = function(param) {\n var { onResponderGrant, onResponderMove, onResponderRelease, children } = param;\n return /* @__PURE__ */ _jsx(View, {\n onMoveShouldSetResponderCapture: function() {\n return true;\n },\n onMoveShouldSetResponder: function() {\n return true;\n },\n onStartShouldSetResponder: function() {\n return true;\n },\n onResponderTerminationRequest: function() {\n return false;\n },\n onResponderGrant,\n onResponderMove,\n onResponderRelease,\n style: {\n inset: 0,\n position: \"absolute\",\n justifyContent: \"center\",\n alignItems: \"center\"\n },\n children\n });\n};\nexport {\n SliderResponder\n};\n//# sourceMappingURL=SliderResponder.native.js.map\n"],"mappings":";;;;AAEA,IAAI,kBAAkB,SAAS,OAAO;CACpC,IAAI,EAAE,kBAAkB,iBAAiB,oBAAoB,aAAa;CAC1E,OAAuB,oBAAK,MAAM;EAChC,iCAAiC,WAAW;GAC1C,OAAO;EACT;EACA,0BAA0B,WAAW;GACnC,OAAO;EACT;EACA,2BAA2B,WAAW;GACpC,OAAO;EACT;EACA,+BAA+B,WAAW;GACxC,OAAO;EACT;EACA;EACA;EACA;EACA,OAAO;GACL,OAAO;GACP,UAAU;GACV,gBAAgB;GAChB,YAAY;EACd;EACA;CACF,CAAC;AACH"}
|
package/dist/jsx/Slider.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { composeRefs, useComposedRefs } from "@tamagui/compose-refs";
|
|
2
2
|
import { isIos, isWeb } from "@tamagui/constants";
|
|
3
|
-
import { createRefComponent, createStyledHOC,
|
|
3
|
+
import { createRefComponent, createStyledHOC, getConfig, getVariableValue, resolveTextMetrics, styled, useConfiguration, useCreateShallowSetState } from "@tamagui/core";
|
|
4
4
|
import { clamp, composeEventHandlers, withStaticProperties } from "@tamagui/helpers";
|
|
5
5
|
import { YStack } from "@tamagui/stacks";
|
|
6
6
|
import { useControllableState } from "@tamagui/use-controllable-state";
|
|
@@ -30,6 +30,11 @@ function removeActiveSliderMeasureListener(listener) {
|
|
|
30
30
|
activeSliderMeasureInterval = void 0;
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
+
const getTrackPosition = (event, offset, orientation) => {
|
|
34
|
+
const { locationX, locationY, pageX, pageY } = event.nativeEvent;
|
|
35
|
+
if (isWeb) return orientation === "horizontal" ? locationX : locationY;
|
|
36
|
+
return (orientation === "horizontal" ? pageX : pageY) - offset;
|
|
37
|
+
};
|
|
33
38
|
const SliderHorizontal = createRefComponent((props, forwardedRef) => {
|
|
34
39
|
const { min, max, dir, onSlideStart, onSlideMove, onStepKeyDown, onSlideEnd, ...sliderProps } = props;
|
|
35
40
|
const direction = useDirection(dir);
|
|
@@ -70,11 +75,11 @@ const SliderHorizontal = createRefComponent((props, forwardedRef) => {
|
|
|
70
75
|
if (value) onSlideStart?.(value, target, event);
|
|
71
76
|
},
|
|
72
77
|
onSlideMove: (event) => {
|
|
73
|
-
const value = getValueFromPointer(event
|
|
78
|
+
const value = getValueFromPointer(getTrackPosition(event, state.offset, "horizontal"));
|
|
74
79
|
if (value) onSlideMove?.(value, event);
|
|
75
80
|
},
|
|
76
81
|
onSlideEnd: (event) => {
|
|
77
|
-
const value = getValueFromPointer(event
|
|
82
|
+
const value = getValueFromPointer(getTrackPosition(event, state.offset, "horizontal"));
|
|
78
83
|
if (value) onSlideEnd?.(event, value);
|
|
79
84
|
},
|
|
80
85
|
onStepKeyDown: (event) => {
|
|
@@ -175,11 +180,11 @@ const SliderVertical = createRefComponent((props, forwardedRef) => {
|
|
|
175
180
|
if (value) onSlideStart?.(value, target, event);
|
|
176
181
|
},
|
|
177
182
|
onSlideMove: (event) => {
|
|
178
|
-
const value = getValueFromPointer(event
|
|
183
|
+
const value = getValueFromPointer(getTrackPosition(event, state.offset, "vertical"));
|
|
179
184
|
if (value) onSlideMove?.(value, event);
|
|
180
185
|
},
|
|
181
186
|
onSlideEnd: (event) => {
|
|
182
|
-
const value = getValueFromPointer(event
|
|
187
|
+
const value = getValueFromPointer(getTrackPosition(event, state.offset, "vertical"));
|
|
183
188
|
onSlideEnd?.(event, value);
|
|
184
189
|
},
|
|
185
190
|
onStepKeyDown: (event) => {
|
|
@@ -206,7 +211,6 @@ const SliderTrack = createStyledHOC(SliderTrackFrame, function SliderTrack2(prop
|
|
|
206
211
|
"data-disabled": context.disabled ? "" : void 0,
|
|
207
212
|
"data-orientation": context.orientation,
|
|
208
213
|
orientation: context.orientation,
|
|
209
|
-
size: context.size ?? void 0,
|
|
210
214
|
...trackProps,
|
|
211
215
|
ref: forwardedRef
|
|
212
216
|
});
|
|
@@ -229,13 +233,6 @@ const SliderActive = createStyledHOC(SliderActiveFrame, function SliderActive2(p
|
|
|
229
233
|
orientation: context.orientation,
|
|
230
234
|
"data-orientation": context.orientation,
|
|
231
235
|
"data-disabled": context.disabled ? "" : void 0,
|
|
232
|
-
size: context.size ?? void 0,
|
|
233
|
-
animateOnly: [
|
|
234
|
-
"left",
|
|
235
|
-
"top",
|
|
236
|
-
"right",
|
|
237
|
-
"bottom"
|
|
238
|
-
],
|
|
239
236
|
...rangeProps,
|
|
240
237
|
ref: composedRefs,
|
|
241
238
|
[orientation.startEdge]: `${offsetStart}%`,
|
|
@@ -246,23 +243,25 @@ const SliderActive = createStyledHOC(SliderActiveFrame, function SliderActive2(p
|
|
|
246
243
|
}
|
|
247
244
|
});
|
|
248
245
|
});
|
|
249
|
-
const
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
}
|
|
246
|
+
const thumbSize = (val) => {
|
|
247
|
+
if (typeof val === "number") return val;
|
|
248
|
+
if (typeof val === "string") {
|
|
249
|
+
const conf = getConfig();
|
|
250
|
+
const font = conf.fontsParsed[conf.defaultFontToken];
|
|
251
|
+
const fontSize = font?.size[val];
|
|
252
|
+
if (fontSize != null) {
|
|
253
|
+
const metrics = { fontSize: Number.parseFloat(String(getVariableValue(fontSize))) };
|
|
254
|
+
const lineHeight = font?.lineHeight?.[val];
|
|
255
|
+
resolveTextMetrics(metrics, typeof lineHeight === "number" ? `${lineHeight}px` : lineHeight);
|
|
256
|
+
return metrics.lineHeight ?? metrics.fontSize;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
return 20;
|
|
260
|
+
};
|
|
261
261
|
const SliderThumbFrame = styled(YStack, {
|
|
262
262
|
displayName: "SliderThumb",
|
|
263
263
|
position: "absolute",
|
|
264
264
|
variants: {
|
|
265
|
-
size: getThumbSize,
|
|
266
265
|
circular: { true: {
|
|
267
266
|
borderRadius: 1e5,
|
|
268
267
|
padding: 0
|
|
@@ -287,9 +286,7 @@ const SliderThumb = createStyledHOC(SliderThumbFrame, function SliderThumb2(prop
|
|
|
287
286
|
const percent = value === void 0 ? 0 : convertValueToPercentage(value, context.min, context.max);
|
|
288
287
|
const label = getLabel(index, context.values.length);
|
|
289
288
|
const sizeIn = sizeProp ?? context.size ?? true;
|
|
290
|
-
const [size, setSize] = React.useState(() =>
|
|
291
|
-
return getVariableValue(getThumbSize(sizeIn, {})?.width);
|
|
292
|
-
});
|
|
289
|
+
const [size, setSize] = React.useState(() => thumbSize(sizeIn));
|
|
293
290
|
const thumbInBoundsOffset = size ? getThumbInBoundsOffset(size, percent, orientation.direction) : 0;
|
|
294
291
|
React.useEffect(() => {
|
|
295
292
|
if (thumb) {
|
|
@@ -331,16 +328,8 @@ const SliderThumb = createStyledHOC(SliderThumbFrame, function SliderThumb2(prop
|
|
|
331
328
|
"data-orientation": context.orientation,
|
|
332
329
|
"data-disabled": context.disabled ? "" : void 0,
|
|
333
330
|
tabIndex: context.disabled ? void 0 : 0,
|
|
334
|
-
animateOnly: [
|
|
335
|
-
"transform",
|
|
336
|
-
"left",
|
|
337
|
-
"top",
|
|
338
|
-
"right",
|
|
339
|
-
"bottom"
|
|
340
|
-
],
|
|
341
331
|
...positionalStyles,
|
|
342
332
|
[orientation.startEdge]: `${percent}%`,
|
|
343
|
-
size: sizeIn,
|
|
344
333
|
circular,
|
|
345
334
|
...thumbProps,
|
|
346
335
|
onLayout: (e) => {
|
package/dist/jsx/Slider.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.js","names":[],"sources":["jsx/Slider.js"],"sourcesContent":["import { composeRefs, useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isIos, isWeb } from \"@tamagui/constants\";\nimport { createRefComponent, createStyledHOC, getTokens, getVariableValue, resolveSizeToken, styled, useConfiguration, useCreateShallowSetState } from \"@tamagui/core\";\nimport { clamp, composeEventHandlers, withStaticProperties } from \"@tamagui/helpers\";\nimport { YStack } from \"@tamagui/stacks\";\nimport { useControllableState } from \"@tamagui/use-controllable-state\";\nimport { useDirection } from \"@tamagui/use-direction\";\nimport * as React from \"react\";\nimport { ARROW_KEYS, BACK_KEYS, PAGE_KEYS, SLIDER_NAME, SliderOrientationProvider, SliderProvider, useSliderContext, useSliderOrientationContext } from \"./constants\";\nimport { convertValueToPercentage, getClosestValueIndex, getDecimalCount, getLabel, getNextSortedValues, getThumbInBoundsOffset, hasMinStepsBetweenValues, linearScale, roundValue } from \"./helpers\";\nimport { SliderFrame, SliderImpl } from \"./SliderImpl\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\n\nconst activeSliderMeasureListeners = /* @__PURE__ */ new Set();\nlet activeSliderMeasureInterval;\nfunction startSliderMeasureInterval() {\n\tif (activeSliderMeasureInterval !== void 0 || process.env.TAMAGUI_DISABLE_SLIDER_INTERVAL) return;\n\tactiveSliderMeasureInterval = setInterval(() => {\n\t\tactiveSliderMeasureListeners.forEach((cb) => cb());\n\t}, 1e3);\n}\nfunction addActiveSliderMeasureListener(listener) {\n\tactiveSliderMeasureListeners.add(listener);\n\tstartSliderMeasureInterval();\n}\nfunction removeActiveSliderMeasureListener(listener) {\n\tactiveSliderMeasureListeners.delete(listener);\n\tif (!activeSliderMeasureListeners.size && activeSliderMeasureInterval !== void 0) {\n\t\tclearInterval(activeSliderMeasureInterval);\n\t\tactiveSliderMeasureInterval = void 0;\n\t}\n}\nconst SliderHorizontal = createRefComponent((props, forwardedRef) => {\n\tconst { min, max, dir, onSlideStart, onSlideMove, onStepKeyDown, onSlideEnd, ...sliderProps } = props;\n\tconst direction = useDirection(dir);\n\tconst isDirectionLTR = direction === \"ltr\";\n\tconst sliderRef = React.useRef(null);\n\tconst [state, setState_] = React.useState(() => ({\n\t\tsize: 0,\n\t\toffset: 0\n\t}));\n\tconst setState = useCreateShallowSetState(setState_);\n\tfunction getValueFromPointer(pointerPosition) {\n\t\treturn linearScale([0, state.size], isDirectionLTR ? [min, max] : [max, min])(pointerPosition);\n\t}\n\tconst measure = () => {\n\t\tsliderRef.current?.measure((_x, _y, width, _height, pageX, _pageY) => {\n\t\t\tsetState({\n\t\t\t\tsize: width,\n\t\t\t\toffset: pageX\n\t\t\t});\n\t\t});\n\t};\n\tuseSliderMeasure(sliderRef, measure);\n\treturn /* @__PURE__ */ jsx(SliderOrientationProvider, {\n\t\tscope: props.__scopeSlider,\n\t\tstartEdge: isDirectionLTR ? \"left\" : \"right\",\n\t\tendEdge: isDirectionLTR ? \"right\" : \"left\",\n\t\tdirection: isDirectionLTR ? 1 : -1,\n\t\tsizeProp: \"width\",\n\t\tsize: state.size,\n\t\tchildren: /* @__PURE__ */ jsx(SliderImpl, {\n\t\t\tref: composeRefs(forwardedRef, sliderRef),\n\t\t\tdir: direction,\n\t\t\t...sliderProps,\n\t\t\torientation: \"horizontal\",\n\t\t\tonLayout: measure,\n\t\t\tonSlideStart: (event, target) => {\n\t\t\t\tconst value = getValueFromPointer(event.nativeEvent.locationX);\n\t\t\t\tif (value) onSlideStart?.(value, target, event);\n\t\t\t},\n\t\t\tonSlideMove: (event) => {\n\t\t\t\tconst value = getValueFromPointer(event.nativeEvent.pageX - state.offset);\n\t\t\t\tif (value) onSlideMove?.(value, event);\n\t\t\t},\n\t\t\tonSlideEnd: (event) => {\n\t\t\t\tconst value = getValueFromPointer(event.nativeEvent.pageX - state.offset);\n\t\t\t\tif (value) onSlideEnd?.(event, value);\n\t\t\t},\n\t\t\tonStepKeyDown: (event) => {\n\t\t\t\tconst isBackKey = BACK_KEYS[direction].includes(event.key);\n\t\t\t\tonStepKeyDown?.({\n\t\t\t\t\tevent,\n\t\t\t\t\tdirection: isBackKey ? -1 : 1\n\t\t\t\t});\n\t\t\t}\n\t\t})\n\t});\n});\nfunction useOnDebouncedWindowResize(callback, amt = 200) {\n\tReact.useEffect(() => {\n\t\tlet last;\n\t\tconst onResize = () => {\n\t\t\tclearTimeout(last);\n\t\t\tlast = setTimeout(callback, amt);\n\t\t};\n\t\twindow.addEventListener(\"resize\", onResize);\n\t\treturn () => {\n\t\t\tclearTimeout(last);\n\t\t\twindow.removeEventListener(\"resize\", onResize);\n\t\t};\n\t}, []);\n}\nfunction useSliderMeasure(sliderRef, measure) {\n\tuseOnDebouncedWindowResize(measure);\n\tReact.useEffect(() => {\n\t\tconst node = sliderRef.current;\n\t\tif (!node) return;\n\t\tlet measureTm;\n\t\tconst debouncedMeasure = () => {\n\t\t\tclearTimeout(measureTm);\n\t\t\tmeasureTm = setTimeout(() => {\n\t\t\t\tmeasure();\n\t\t\t}, 200);\n\t\t};\n\t\tconst io = new IntersectionObserver((entries) => {\n\t\t\tdebouncedMeasure();\n\t\t\tif (entries?.[0].isIntersecting) addActiveSliderMeasureListener(debouncedMeasure);\n\t\t\telse removeActiveSliderMeasureListener(debouncedMeasure);\n\t\t}, {\n\t\t\troot: null,\n\t\t\trootMargin: \"0px\",\n\t\t\tthreshold: [\n\t\t\t\t0,\n\t\t\t\t.5,\n\t\t\t\t1\n\t\t\t]\n\t\t});\n\t\tio.observe(node);\n\t\treturn () => {\n\t\t\tremoveActiveSliderMeasureListener(debouncedMeasure);\n\t\t\tio.disconnect();\n\t\t};\n\t}, []);\n}\nconst SliderVertical = createRefComponent((props, forwardedRef) => {\n\tconst { min, max, onSlideStart, onSlideMove, onStepKeyDown, onSlideEnd, ...sliderProps } = props;\n\tconst [state, setState_] = React.useState(() => ({\n\t\tsize: 0,\n\t\toffset: 0\n\t}));\n\tconst setState = useCreateShallowSetState(setState_);\n\tconst sliderRef = React.useRef(null);\n\tconst configuration = useConfiguration();\n\tconst insets = isIos && configuration.insets ? configuration.insets : {\n\t\ttop: 0,\n\t\tbottom: 0\n\t};\n\tfunction getValueFromPointer(pointerPosition) {\n\t\treturn linearScale([0, state.size], [max, min])(pointerPosition);\n\t}\n\tconst measure = () => {\n\t\tsliderRef.current?.measure((_x, _y, _width, height, _pageX, pageY) => {\n\t\t\tsetState({\n\t\t\t\tsize: height,\n\t\t\t\toffset: pageY + (isIos ? insets.top : 0)\n\t\t\t});\n\t\t});\n\t};\n\tuseSliderMeasure(sliderRef, measure);\n\treturn /* @__PURE__ */ jsx(SliderOrientationProvider, {\n\t\tscope: props.__scopeSlider,\n\t\tstartEdge: \"bottom\",\n\t\tendEdge: \"top\",\n\t\tsizeProp: \"height\",\n\t\tsize: state.size,\n\t\tdirection: 1,\n\t\tchildren: /* @__PURE__ */ jsx(SliderImpl, {\n\t\t\tref: composeRefs(forwardedRef, sliderRef),\n\t\t\t...sliderProps,\n\t\t\torientation: \"vertical\",\n\t\t\tonLayout: measure,\n\t\t\tonSlideStart: (event, target) => {\n\t\t\t\tconst value = getValueFromPointer(event.nativeEvent.locationY);\n\t\t\t\tif (value) onSlideStart?.(value, target, event);\n\t\t\t},\n\t\t\tonSlideMove: (event) => {\n\t\t\t\tconst value = getValueFromPointer(event.nativeEvent.pageY - state.offset);\n\t\t\t\tif (value) onSlideMove?.(value, event);\n\t\t\t},\n\t\t\tonSlideEnd: (event) => {\n\t\t\t\tconst value = getValueFromPointer(event.nativeEvent.pageY - state.offset);\n\t\t\t\tonSlideEnd?.(event, value);\n\t\t\t},\n\t\t\tonStepKeyDown: (event) => {\n\t\t\t\tconst isBackKey = BACK_KEYS.ltr.includes(event.key);\n\t\t\t\tonStepKeyDown?.({\n\t\t\t\t\tevent,\n\t\t\t\t\tdirection: isBackKey ? -1 : 1\n\t\t\t\t});\n\t\t\t}\n\t\t})\n\t});\n});\nconst SliderTrackFrame = styled(SliderFrame, {\n\tdisplayName: \"Slider\",\n\theight: \"100%\",\n\twidth: \"100%\",\n\tposition: \"relative\",\n\toverflow: \"hidden\"\n});\nconst SliderTrack = createStyledHOC(SliderTrackFrame, function SliderTrack2(props, forwardedRef) {\n\tconst { __scopeSlider, ...trackProps } = props;\n\tconst context = useSliderContext(__scopeSlider);\n\treturn /* @__PURE__ */ jsx(SliderTrackFrame, {\n\t\t\"data-disabled\": context.disabled ? \"\" : void 0,\n\t\t\"data-orientation\": context.orientation,\n\t\torientation: context.orientation,\n\t\tsize: context.size ?? void 0,\n\t\t...trackProps,\n\t\tref: forwardedRef\n\t});\n});\nconst SliderActiveFrame = styled(SliderFrame, {\n\tdisplayName: \"SliderActive\",\n\tposition: \"absolute\",\n\tpointerEvents: \"box-none\"\n});\nconst SliderActive = createStyledHOC(SliderActiveFrame, function SliderActive2(props, forwardedRef) {\n\tconst { __scopeSlider, ...rangeProps } = props;\n\tconst context = useSliderContext(__scopeSlider);\n\tconst orientation = useSliderOrientationContext(__scopeSlider);\n\tconst composedRefs = useComposedRefs(forwardedRef, React.useRef(null));\n\tconst valuesCount = context.values.length;\n\tconst percentages = context.values.map((value) => convertValueToPercentage(value, context.min, context.max));\n\tconst offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n\tconst offsetEnd = 100 - Math.max(...percentages);\n\treturn /* @__PURE__ */ jsx(SliderActiveFrame, {\n\t\torientation: context.orientation,\n\t\t\"data-orientation\": context.orientation,\n\t\t\"data-disabled\": context.disabled ? \"\" : void 0,\n\t\tsize: context.size ?? void 0,\n\t\tanimateOnly: [\n\t\t\t\"left\",\n\t\t\t\"top\",\n\t\t\t\"right\",\n\t\t\t\"bottom\"\n\t\t],\n\t\t...rangeProps,\n\t\tref: composedRefs,\n\t\t[orientation.startEdge]: `${offsetStart}%`,\n\t\t[orientation.endEdge]: `${offsetEnd}%`,\n\t\t...orientation.sizeProp === \"width\" ? { height: \"100%\" } : {\n\t\t\tleft: 0,\n\t\t\tright: 0\n\t\t}\n\t});\n});\nconst getThumbSize = styled.dynamic((val) => {\n\tconst tokens = getTokens();\n\tconst sizeToken = resolveSizeToken(val ?? true, \"size\");\n\tconst resolved = typeof sizeToken === \"number\" ? sizeToken : tokens.size[sizeToken];\n\tconst size = typeof val === \"number\" ? val : getVariableValue(resolved) * .86;\n\treturn {\n\t\twidth: size,\n\t\theight: size,\n\t\tminWidth: size,\n\t\tminHeight: size\n\t};\n});\nconst SliderThumbFrame = styled(YStack, {\n\tdisplayName: \"SliderThumb\",\n\tposition: \"absolute\",\n\tvariants: {\n\t\tsize: getThumbSize,\n\t\tcircular: { true: {\n\t\t\tborderRadius: 1e5,\n\t\t\tpadding: 0\n\t\t} },\n\t\televate: { true: {\n\t\t\tshadowColor: \"shadow-color\",\n\t\t\tshadowRadius: 4,\n\t\t\tshadowOffset: {\n\t\t\t\twidth: 0,\n\t\t\t\theight: 2\n\t\t\t}\n\t\t} }\n\t}\n});\nconst SliderThumb = createStyledHOC(SliderThumbFrame, function SliderThumb2(props, forwardedRef) {\n\tconst { __scopeSlider, index = 0, circular, size: sizeProp, ...thumbProps } = props;\n\tconst context = useSliderContext(__scopeSlider);\n\tconst orientation = useSliderOrientationContext(__scopeSlider);\n\tconst [thumb, setThumb] = React.useState(null);\n\tconst composedRefs = useComposedRefs(forwardedRef, setThumb);\n\tconst value = context.values[index];\n\tconst percent = value === void 0 ? 0 : convertValueToPercentage(value, context.min, context.max);\n\tconst label = getLabel(index, context.values.length);\n\tconst sizeIn = sizeProp ?? context.size ?? true;\n\tconst [size, setSize] = React.useState(() => {\n\t\treturn getVariableValue(getThumbSize(sizeIn, {})?.width);\n\t});\n\tconst thumbInBoundsOffset = size ? getThumbInBoundsOffset(size, percent, orientation.direction) : 0;\n\tReact.useEffect(() => {\n\t\tif (thumb) {\n\t\t\tcontext.thumbs.set(thumb, index);\n\t\t\treturn () => {\n\t\t\t\tcontext.thumbs.delete(thumb);\n\t\t\t};\n\t\t}\n\t}, [\n\t\tthumb,\n\t\tcontext.thumbs,\n\t\tindex\n\t]);\n\tconst positionalStyles = context.orientation === \"horizontal\" ? {\n\t\tx: (thumbInBoundsOffset - size / 2) * orientation.direction,\n\t\ty: -size / 2,\n\t\ttop: \"50%\",\n\t\t...size === 0 && {\n\t\t\ttop: \"auto\",\n\t\t\tbottom: \"auto\"\n\t\t}\n\t} : {\n\t\tx: -size / 2,\n\t\ty: size / 2,\n\t\tleft: \"50%\",\n\t\t...size === 0 && {\n\t\t\tleft: \"auto\",\n\t\t\tright: \"auto\"\n\t\t}\n\t};\n\treturn /* @__PURE__ */ jsx(SliderThumbFrame, {\n\t\tref: composedRefs,\n\t\trole: \"slider\",\n\t\t\"aria-label\": props[\"aria-label\"] || label,\n\t\t\"aria-valuemin\": context.min,\n\t\t\"aria-valuenow\": value,\n\t\t\"aria-valuemax\": context.max,\n\t\t\"aria-orientation\": context.orientation,\n\t\t\"data-orientation\": context.orientation,\n\t\t\"data-disabled\": context.disabled ? \"\" : void 0,\n\t\ttabIndex: context.disabled ? void 0 : 0,\n\t\tanimateOnly: [\n\t\t\t\"transform\",\n\t\t\t\"left\",\n\t\t\t\"top\",\n\t\t\t\"right\",\n\t\t\t\"bottom\"\n\t\t],\n\t\t...positionalStyles,\n\t\t[orientation.startEdge]: `${percent}%`,\n\t\tsize: sizeIn,\n\t\tcircular,\n\t\t...thumbProps,\n\t\tonLayout: (e) => {\n\t\t\tsetSize(e.nativeEvent.layout[orientation.sizeProp]);\n\t\t},\n\t\tonFocus: composeEventHandlers(props.onFocus, () => {\n\t\t\tcontext.valueIndexToChangeRef.current = index;\n\t\t})\n\t});\n}, { staticConfig: { memo: true } });\nconst Slider = withStaticProperties(createRefComponent((props, forwardedRef) => {\n\tconst { name, min = 0, max = 100, step = 1, orientation = \"horizontal\", disabled = false, minStepsBetweenThumbs = 0, defaultValue = [min], value, onValueChange = () => {}, size: sizeProp, onSlideEnd, onSlideMove, onSlideStart, ...sliderProps } = props;\n\tconst sliderRef = React.useRef(null);\n\tconst composedRefs = useComposedRefs(sliderRef, forwardedRef);\n\tconst thumbRefs = React.useRef(/* @__PURE__ */ new Map());\n\tconst valueIndexToChangeRef = React.useRef(0);\n\tconst isHorizontal = orientation === \"horizontal\";\n\tconst [values = [], setValues] = useControllableState({\n\t\tprop: value,\n\t\tdefaultProp: defaultValue,\n\t\ttransition: true,\n\t\tonChange: (value2) => {\n\t\t\tupdateThumbFocus(valueIndexToChangeRef.current);\n\t\t\tonValueChange(value2);\n\t\t}\n\t});\n\tif (isWeb) React.useEffect(() => {\n\t\tconst node = sliderRef.current;\n\t\tif (!node) return;\n\t\tconst preventDefault = (e) => {\n\t\t\te.preventDefault();\n\t\t};\n\t\tnode.addEventListener(\"touchstart\", preventDefault);\n\t\treturn () => {\n\t\t\tnode.removeEventListener(\"touchstart\", preventDefault);\n\t\t};\n\t}, []);\n\tfunction updateThumbFocus(focusIndex) {\n\t\tif (!isWeb) return;\n\t\tfor (const [node, index] of thumbRefs.current.entries()) if (index === focusIndex) {\n\t\t\tnode.focus();\n\t\t\treturn;\n\t\t}\n\t}\n\tfunction handleSlideMove(value2, event) {\n\t\tupdateValues(value2, valueIndexToChangeRef.current);\n\t\tonSlideMove?.(event, value2);\n\t}\n\tfunction updateValues(value2, atIndex) {\n\t\tconst decimalCount = getDecimalCount(step);\n\t\tconst nextValue = clamp(roundValue(Math.round((value2 - min) / step) * step + min, decimalCount), [min, max]);\n\t\tsetValues((prevValues = []) => {\n\t\t\tconst nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n\t\t\tif (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n\t\t\t\tvalueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n\t\t\t\treturn String(nextValues) === String(prevValues) ? prevValues : nextValues;\n\t\t\t}\n\t\t\treturn prevValues;\n\t\t});\n\t}\n\tconst SliderOriented = isHorizontal ? SliderHorizontal : SliderVertical;\n\treturn /* @__PURE__ */ jsxs(SliderProvider, {\n\t\tscope: props.__scopeSlider,\n\t\tdisabled,\n\t\tmin,\n\t\tmax,\n\t\tvalueIndexToChangeRef,\n\t\tthumbs: thumbRefs.current,\n\t\tvalues,\n\t\torientation,\n\t\tsize: sizeProp,\n\t\tchildren: [/* @__PURE__ */ jsx(SliderOriented, {\n\t\t\t\"aria-disabled\": disabled,\n\t\t\t\"data-disabled\": disabled ? \"\" : void 0,\n\t\t\t...sliderProps,\n\t\t\tref: composedRefs,\n\t\t\tmin,\n\t\t\tmax,\n\t\t\tonSlideEnd,\n\t\t\tonSlideStart: disabled ? void 0 : (value2, target, event) => {\n\t\t\t\tif (target !== \"thumb\") updateValues(value2, getClosestValueIndex(values, value2));\n\t\t\t\tonSlideStart?.(event, value2, target);\n\t\t\t},\n\t\t\tonSlideMove: disabled ? void 0 : handleSlideMove,\n\t\t\tonHomeKeyDown: () => !disabled && updateValues(min, 0),\n\t\t\tonEndKeyDown: () => !disabled && updateValues(max, values.length - 1),\n\t\t\tonStepKeyDown: ({ event, direction: stepDirection }) => {\n\t\t\t\tif (!disabled) {\n\t\t\t\t\tconst multiplier = PAGE_KEYS.includes(event.key) || event.shiftKey && ARROW_KEYS.includes(event.key) ? 10 : 1;\n\t\t\t\t\tconst atIndex = valueIndexToChangeRef.current;\n\t\t\t\t\tconst value2 = values[atIndex];\n\t\t\t\t\tupdateValues(value2 + step * multiplier * stepDirection, atIndex);\n\t\t\t\t}\n\t\t\t}\n\t\t}), isWeb && name && values.map((value2, index) => /* @__PURE__ */ jsx(\"input\", {\n\t\t\ttype: \"hidden\",\n\t\t\tname,\n\t\t\tvalue: value2\n\t\t}, index))]\n\t});\n}), {\n\tTrack: SliderTrack,\n\tTrackActive: SliderActive,\n\tThumb: SliderThumb\n});\nSlider.displayName = SLIDER_NAME;\nconst Track = SliderTrack;\nconst Range = SliderActive;\nconst Thumb = SliderThumb;\n\nexport { Range, Slider, SliderActive, SliderActiveFrame, SliderThumb, SliderThumbFrame, SliderTrack, SliderTrackFrame, Thumb, Track };"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Slider.js","names":[],"sources":["jsx/Slider.js"],"sourcesContent":["import { composeRefs, useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isIos, isWeb } from \"@tamagui/constants\";\nimport { createRefComponent, createStyledHOC, getConfig, getVariableValue, resolveTextMetrics, styled, useConfiguration, useCreateShallowSetState } from \"@tamagui/core\";\nimport { clamp, composeEventHandlers, withStaticProperties } from \"@tamagui/helpers\";\nimport { YStack } from \"@tamagui/stacks\";\nimport { useControllableState } from \"@tamagui/use-controllable-state\";\nimport { useDirection } from \"@tamagui/use-direction\";\nimport * as React from \"react\";\nimport { ARROW_KEYS, BACK_KEYS, PAGE_KEYS, SLIDER_NAME, SliderOrientationProvider, SliderProvider, useSliderContext, useSliderOrientationContext } from \"./constants\";\nimport { convertValueToPercentage, getClosestValueIndex, getDecimalCount, getLabel, getNextSortedValues, getThumbInBoundsOffset, hasMinStepsBetweenValues, linearScale, roundValue } from \"./helpers\";\nimport { SliderFrame, SliderImpl } from \"./SliderImpl\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\n\nconst activeSliderMeasureListeners = /* @__PURE__ */ new Set();\nlet activeSliderMeasureInterval;\nfunction startSliderMeasureInterval() {\n\tif (activeSliderMeasureInterval !== void 0 || process.env.TAMAGUI_DISABLE_SLIDER_INTERVAL) return;\n\tactiveSliderMeasureInterval = setInterval(() => {\n\t\tactiveSliderMeasureListeners.forEach((cb) => cb());\n\t}, 1e3);\n}\nfunction addActiveSliderMeasureListener(listener) {\n\tactiveSliderMeasureListeners.add(listener);\n\tstartSliderMeasureInterval();\n}\nfunction removeActiveSliderMeasureListener(listener) {\n\tactiveSliderMeasureListeners.delete(listener);\n\tif (!activeSliderMeasureListeners.size && activeSliderMeasureInterval !== void 0) {\n\t\tclearInterval(activeSliderMeasureInterval);\n\t\tactiveSliderMeasureInterval = void 0;\n\t}\n}\nconst getTrackPosition = (event, offset, orientation) => {\n\tconst { locationX, locationY, pageX, pageY } = event.nativeEvent;\n\tif (isWeb) return orientation === \"horizontal\" ? locationX : locationY;\n\treturn (orientation === \"horizontal\" ? pageX : pageY) - offset;\n};\nconst SliderHorizontal = createRefComponent((props, forwardedRef) => {\n\tconst { min, max, dir, onSlideStart, onSlideMove, onStepKeyDown, onSlideEnd, ...sliderProps } = props;\n\tconst direction = useDirection(dir);\n\tconst isDirectionLTR = direction === \"ltr\";\n\tconst sliderRef = React.useRef(null);\n\tconst [state, setState_] = React.useState(() => ({\n\t\tsize: 0,\n\t\toffset: 0\n\t}));\n\tconst setState = useCreateShallowSetState(setState_);\n\tfunction getValueFromPointer(pointerPosition) {\n\t\treturn linearScale([0, state.size], isDirectionLTR ? [min, max] : [max, min])(pointerPosition);\n\t}\n\tconst measure = () => {\n\t\tsliderRef.current?.measure((_x, _y, width, _height, pageX, _pageY) => {\n\t\t\tsetState({\n\t\t\t\tsize: width,\n\t\t\t\toffset: pageX\n\t\t\t});\n\t\t});\n\t};\n\tuseSliderMeasure(sliderRef, measure);\n\treturn /* @__PURE__ */ jsx(SliderOrientationProvider, {\n\t\tscope: props.__scopeSlider,\n\t\tstartEdge: isDirectionLTR ? \"left\" : \"right\",\n\t\tendEdge: isDirectionLTR ? \"right\" : \"left\",\n\t\tdirection: isDirectionLTR ? 1 : -1,\n\t\tsizeProp: \"width\",\n\t\tsize: state.size,\n\t\tchildren: /* @__PURE__ */ jsx(SliderImpl, {\n\t\t\tref: composeRefs(forwardedRef, sliderRef),\n\t\t\tdir: direction,\n\t\t\t...sliderProps,\n\t\t\torientation: \"horizontal\",\n\t\t\tonLayout: measure,\n\t\t\tonSlideStart: (event, target) => {\n\t\t\t\tconst value = getValueFromPointer(event.nativeEvent.locationX);\n\t\t\t\tif (value) onSlideStart?.(value, target, event);\n\t\t\t},\n\t\t\tonSlideMove: (event) => {\n\t\t\t\tconst value = getValueFromPointer(getTrackPosition(event, state.offset, \"horizontal\"));\n\t\t\t\tif (value) onSlideMove?.(value, event);\n\t\t\t},\n\t\t\tonSlideEnd: (event) => {\n\t\t\t\tconst value = getValueFromPointer(getTrackPosition(event, state.offset, \"horizontal\"));\n\t\t\t\tif (value) onSlideEnd?.(event, value);\n\t\t\t},\n\t\t\tonStepKeyDown: (event) => {\n\t\t\t\tconst isBackKey = BACK_KEYS[direction].includes(event.key);\n\t\t\t\tonStepKeyDown?.({\n\t\t\t\t\tevent,\n\t\t\t\t\tdirection: isBackKey ? -1 : 1\n\t\t\t\t});\n\t\t\t}\n\t\t})\n\t});\n});\nfunction useOnDebouncedWindowResize(callback, amt = 200) {\n\tReact.useEffect(() => {\n\t\tlet last;\n\t\tconst onResize = () => {\n\t\t\tclearTimeout(last);\n\t\t\tlast = setTimeout(callback, amt);\n\t\t};\n\t\twindow.addEventListener(\"resize\", onResize);\n\t\treturn () => {\n\t\t\tclearTimeout(last);\n\t\t\twindow.removeEventListener(\"resize\", onResize);\n\t\t};\n\t}, []);\n}\nfunction useSliderMeasure(sliderRef, measure) {\n\tuseOnDebouncedWindowResize(measure);\n\tReact.useEffect(() => {\n\t\tconst node = sliderRef.current;\n\t\tif (!node) return;\n\t\tlet measureTm;\n\t\tconst debouncedMeasure = () => {\n\t\t\tclearTimeout(measureTm);\n\t\t\tmeasureTm = setTimeout(() => {\n\t\t\t\tmeasure();\n\t\t\t}, 200);\n\t\t};\n\t\tconst io = new IntersectionObserver((entries) => {\n\t\t\tdebouncedMeasure();\n\t\t\tif (entries?.[0].isIntersecting) addActiveSliderMeasureListener(debouncedMeasure);\n\t\t\telse removeActiveSliderMeasureListener(debouncedMeasure);\n\t\t}, {\n\t\t\troot: null,\n\t\t\trootMargin: \"0px\",\n\t\t\tthreshold: [\n\t\t\t\t0,\n\t\t\t\t.5,\n\t\t\t\t1\n\t\t\t]\n\t\t});\n\t\tio.observe(node);\n\t\treturn () => {\n\t\t\tremoveActiveSliderMeasureListener(debouncedMeasure);\n\t\t\tio.disconnect();\n\t\t};\n\t}, []);\n}\nconst SliderVertical = createRefComponent((props, forwardedRef) => {\n\tconst { min, max, onSlideStart, onSlideMove, onStepKeyDown, onSlideEnd, ...sliderProps } = props;\n\tconst [state, setState_] = React.useState(() => ({\n\t\tsize: 0,\n\t\toffset: 0\n\t}));\n\tconst setState = useCreateShallowSetState(setState_);\n\tconst sliderRef = React.useRef(null);\n\tconst configuration = useConfiguration();\n\tconst insets = isIos && configuration.insets ? configuration.insets : {\n\t\ttop: 0,\n\t\tbottom: 0\n\t};\n\tfunction getValueFromPointer(pointerPosition) {\n\t\treturn linearScale([0, state.size], [max, min])(pointerPosition);\n\t}\n\tconst measure = () => {\n\t\tsliderRef.current?.measure((_x, _y, _width, height, _pageX, pageY) => {\n\t\t\tsetState({\n\t\t\t\tsize: height,\n\t\t\t\toffset: pageY + (isIos ? insets.top : 0)\n\t\t\t});\n\t\t});\n\t};\n\tuseSliderMeasure(sliderRef, measure);\n\treturn /* @__PURE__ */ jsx(SliderOrientationProvider, {\n\t\tscope: props.__scopeSlider,\n\t\tstartEdge: \"bottom\",\n\t\tendEdge: \"top\",\n\t\tsizeProp: \"height\",\n\t\tsize: state.size,\n\t\tdirection: 1,\n\t\tchildren: /* @__PURE__ */ jsx(SliderImpl, {\n\t\t\tref: composeRefs(forwardedRef, sliderRef),\n\t\t\t...sliderProps,\n\t\t\torientation: \"vertical\",\n\t\t\tonLayout: measure,\n\t\t\tonSlideStart: (event, target) => {\n\t\t\t\tconst value = getValueFromPointer(event.nativeEvent.locationY);\n\t\t\t\tif (value) onSlideStart?.(value, target, event);\n\t\t\t},\n\t\t\tonSlideMove: (event) => {\n\t\t\t\tconst value = getValueFromPointer(getTrackPosition(event, state.offset, \"vertical\"));\n\t\t\t\tif (value) onSlideMove?.(value, event);\n\t\t\t},\n\t\t\tonSlideEnd: (event) => {\n\t\t\t\tconst value = getValueFromPointer(getTrackPosition(event, state.offset, \"vertical\"));\n\t\t\t\tonSlideEnd?.(event, value);\n\t\t\t},\n\t\t\tonStepKeyDown: (event) => {\n\t\t\t\tconst isBackKey = BACK_KEYS.ltr.includes(event.key);\n\t\t\t\tonStepKeyDown?.({\n\t\t\t\t\tevent,\n\t\t\t\t\tdirection: isBackKey ? -1 : 1\n\t\t\t\t});\n\t\t\t}\n\t\t})\n\t});\n});\nconst SliderTrackFrame = styled(SliderFrame, {\n\tdisplayName: \"Slider\",\n\theight: \"100%\",\n\twidth: \"100%\",\n\tposition: \"relative\",\n\toverflow: \"hidden\"\n});\nconst SliderTrack = createStyledHOC(SliderTrackFrame, function SliderTrack2(props, forwardedRef) {\n\tconst { __scopeSlider, ...trackProps } = props;\n\tconst context = useSliderContext(__scopeSlider);\n\treturn /* @__PURE__ */ jsx(SliderTrackFrame, {\n\t\t\"data-disabled\": context.disabled ? \"\" : void 0,\n\t\t\"data-orientation\": context.orientation,\n\t\torientation: context.orientation,\n\t\t...trackProps,\n\t\tref: forwardedRef\n\t});\n});\nconst SliderActiveFrame = styled(SliderFrame, {\n\tdisplayName: \"SliderActive\",\n\tposition: \"absolute\",\n\tpointerEvents: \"box-none\"\n});\nconst SliderActive = createStyledHOC(SliderActiveFrame, function SliderActive2(props, forwardedRef) {\n\tconst { __scopeSlider, ...rangeProps } = props;\n\tconst context = useSliderContext(__scopeSlider);\n\tconst orientation = useSliderOrientationContext(__scopeSlider);\n\tconst composedRefs = useComposedRefs(forwardedRef, React.useRef(null));\n\tconst valuesCount = context.values.length;\n\tconst percentages = context.values.map((value) => convertValueToPercentage(value, context.min, context.max));\n\tconst offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n\tconst offsetEnd = 100 - Math.max(...percentages);\n\treturn /* @__PURE__ */ jsx(SliderActiveFrame, {\n\t\torientation: context.orientation,\n\t\t\"data-orientation\": context.orientation,\n\t\t\"data-disabled\": context.disabled ? \"\" : void 0,\n\t\t...rangeProps,\n\t\tref: composedRefs,\n\t\t[orientation.startEdge]: `${offsetStart}%`,\n\t\t[orientation.endEdge]: `${offsetEnd}%`,\n\t\t...orientation.sizeProp === \"width\" ? { height: \"100%\" } : {\n\t\t\tleft: 0,\n\t\t\tright: 0\n\t\t}\n\t});\n});\nconst thumbSize = (val) => {\n\tif (typeof val === \"number\") return val;\n\tif (typeof val === \"string\") {\n\t\tconst conf = getConfig();\n\t\tconst font = conf.fontsParsed[conf.defaultFontToken];\n\t\tconst fontSize = font?.size[val];\n\t\tif (fontSize != null) {\n\t\t\tconst metrics = { fontSize: Number.parseFloat(String(getVariableValue(fontSize))) };\n\t\t\tconst lineHeight = font?.lineHeight?.[val];\n\t\t\tresolveTextMetrics(metrics, typeof lineHeight === \"number\" ? `${lineHeight}px` : lineHeight);\n\t\t\treturn metrics.lineHeight ?? metrics.fontSize;\n\t\t}\n\t}\n\treturn 20;\n};\nconst SliderThumbFrame = styled(YStack, {\n\tdisplayName: \"SliderThumb\",\n\tposition: \"absolute\",\n\tvariants: {\n\t\tcircular: { true: {\n\t\t\tborderRadius: 1e5,\n\t\t\tpadding: 0\n\t\t} },\n\t\televate: { true: {\n\t\t\tshadowColor: \"shadow-color\",\n\t\t\tshadowRadius: 4,\n\t\t\tshadowOffset: {\n\t\t\t\twidth: 0,\n\t\t\t\theight: 2\n\t\t\t}\n\t\t} }\n\t}\n});\nconst SliderThumb = createStyledHOC(SliderThumbFrame, function SliderThumb2(props, forwardedRef) {\n\tconst { __scopeSlider, index = 0, circular, size: sizeProp, ...thumbProps } = props;\n\tconst context = useSliderContext(__scopeSlider);\n\tconst orientation = useSliderOrientationContext(__scopeSlider);\n\tconst [thumb, setThumb] = React.useState(null);\n\tconst composedRefs = useComposedRefs(forwardedRef, setThumb);\n\tconst value = context.values[index];\n\tconst percent = value === void 0 ? 0 : convertValueToPercentage(value, context.min, context.max);\n\tconst label = getLabel(index, context.values.length);\n\tconst sizeIn = sizeProp ?? context.size ?? true;\n\tconst [size, setSize] = React.useState(() => thumbSize(sizeIn));\n\tconst thumbInBoundsOffset = size ? getThumbInBoundsOffset(size, percent, orientation.direction) : 0;\n\tReact.useEffect(() => {\n\t\tif (thumb) {\n\t\t\tcontext.thumbs.set(thumb, index);\n\t\t\treturn () => {\n\t\t\t\tcontext.thumbs.delete(thumb);\n\t\t\t};\n\t\t}\n\t}, [\n\t\tthumb,\n\t\tcontext.thumbs,\n\t\tindex\n\t]);\n\tconst positionalStyles = context.orientation === \"horizontal\" ? {\n\t\tx: (thumbInBoundsOffset - size / 2) * orientation.direction,\n\t\ty: -size / 2,\n\t\ttop: \"50%\",\n\t\t...size === 0 && {\n\t\t\ttop: \"auto\",\n\t\t\tbottom: \"auto\"\n\t\t}\n\t} : {\n\t\tx: -size / 2,\n\t\ty: size / 2,\n\t\tleft: \"50%\",\n\t\t...size === 0 && {\n\t\t\tleft: \"auto\",\n\t\t\tright: \"auto\"\n\t\t}\n\t};\n\treturn /* @__PURE__ */ jsx(SliderThumbFrame, {\n\t\tref: composedRefs,\n\t\trole: \"slider\",\n\t\t\"aria-label\": props[\"aria-label\"] || label,\n\t\t\"aria-valuemin\": context.min,\n\t\t\"aria-valuenow\": value,\n\t\t\"aria-valuemax\": context.max,\n\t\t\"aria-orientation\": context.orientation,\n\t\t\"data-orientation\": context.orientation,\n\t\t\"data-disabled\": context.disabled ? \"\" : void 0,\n\t\ttabIndex: context.disabled ? void 0 : 0,\n\t\t...positionalStyles,\n\t\t[orientation.startEdge]: `${percent}%`,\n\t\tcircular,\n\t\t...thumbProps,\n\t\tonLayout: (e) => {\n\t\t\tsetSize(e.nativeEvent.layout[orientation.sizeProp]);\n\t\t},\n\t\tonFocus: composeEventHandlers(props.onFocus, () => {\n\t\t\tcontext.valueIndexToChangeRef.current = index;\n\t\t})\n\t});\n}, { staticConfig: { memo: true } });\nconst Slider = withStaticProperties(createRefComponent((props, forwardedRef) => {\n\tconst { name, min = 0, max = 100, step = 1, orientation = \"horizontal\", disabled = false, minStepsBetweenThumbs = 0, defaultValue = [min], value, onValueChange = () => {}, size: sizeProp, onSlideEnd, onSlideMove, onSlideStart, ...sliderProps } = props;\n\tconst sliderRef = React.useRef(null);\n\tconst composedRefs = useComposedRefs(sliderRef, forwardedRef);\n\tconst thumbRefs = React.useRef(/* @__PURE__ */ new Map());\n\tconst valueIndexToChangeRef = React.useRef(0);\n\tconst isHorizontal = orientation === \"horizontal\";\n\tconst [values = [], setValues] = useControllableState({\n\t\tprop: value,\n\t\tdefaultProp: defaultValue,\n\t\ttransition: true,\n\t\tonChange: (value2) => {\n\t\t\tupdateThumbFocus(valueIndexToChangeRef.current);\n\t\t\tonValueChange(value2);\n\t\t}\n\t});\n\tif (isWeb) React.useEffect(() => {\n\t\tconst node = sliderRef.current;\n\t\tif (!node) return;\n\t\tconst preventDefault = (e) => {\n\t\t\te.preventDefault();\n\t\t};\n\t\tnode.addEventListener(\"touchstart\", preventDefault);\n\t\treturn () => {\n\t\t\tnode.removeEventListener(\"touchstart\", preventDefault);\n\t\t};\n\t}, []);\n\tfunction updateThumbFocus(focusIndex) {\n\t\tif (!isWeb) return;\n\t\tfor (const [node, index] of thumbRefs.current.entries()) if (index === focusIndex) {\n\t\t\tnode.focus();\n\t\t\treturn;\n\t\t}\n\t}\n\tfunction handleSlideMove(value2, event) {\n\t\tupdateValues(value2, valueIndexToChangeRef.current);\n\t\tonSlideMove?.(event, value2);\n\t}\n\tfunction updateValues(value2, atIndex) {\n\t\tconst decimalCount = getDecimalCount(step);\n\t\tconst nextValue = clamp(roundValue(Math.round((value2 - min) / step) * step + min, decimalCount), [min, max]);\n\t\tsetValues((prevValues = []) => {\n\t\t\tconst nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n\t\t\tif (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n\t\t\t\tvalueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n\t\t\t\treturn String(nextValues) === String(prevValues) ? prevValues : nextValues;\n\t\t\t}\n\t\t\treturn prevValues;\n\t\t});\n\t}\n\tconst SliderOriented = isHorizontal ? SliderHorizontal : SliderVertical;\n\treturn /* @__PURE__ */ jsxs(SliderProvider, {\n\t\tscope: props.__scopeSlider,\n\t\tdisabled,\n\t\tmin,\n\t\tmax,\n\t\tvalueIndexToChangeRef,\n\t\tthumbs: thumbRefs.current,\n\t\tvalues,\n\t\torientation,\n\t\tsize: sizeProp,\n\t\tchildren: [/* @__PURE__ */ jsx(SliderOriented, {\n\t\t\t\"aria-disabled\": disabled,\n\t\t\t\"data-disabled\": disabled ? \"\" : void 0,\n\t\t\t...sliderProps,\n\t\t\tref: composedRefs,\n\t\t\tmin,\n\t\t\tmax,\n\t\t\tonSlideEnd,\n\t\t\tonSlideStart: disabled ? void 0 : (value2, target, event) => {\n\t\t\t\tif (target !== \"thumb\") updateValues(value2, getClosestValueIndex(values, value2));\n\t\t\t\tonSlideStart?.(event, value2, target);\n\t\t\t},\n\t\t\tonSlideMove: disabled ? void 0 : handleSlideMove,\n\t\t\tonHomeKeyDown: () => !disabled && updateValues(min, 0),\n\t\t\tonEndKeyDown: () => !disabled && updateValues(max, values.length - 1),\n\t\t\tonStepKeyDown: ({ event, direction: stepDirection }) => {\n\t\t\t\tif (!disabled) {\n\t\t\t\t\tconst multiplier = PAGE_KEYS.includes(event.key) || event.shiftKey && ARROW_KEYS.includes(event.key) ? 10 : 1;\n\t\t\t\t\tconst atIndex = valueIndexToChangeRef.current;\n\t\t\t\t\tconst value2 = values[atIndex];\n\t\t\t\t\tupdateValues(value2 + step * multiplier * stepDirection, atIndex);\n\t\t\t\t}\n\t\t\t}\n\t\t}), isWeb && name && values.map((value2, index) => /* @__PURE__ */ jsx(\"input\", {\n\t\t\ttype: \"hidden\",\n\t\t\tname,\n\t\t\tvalue: value2\n\t\t}, index))]\n\t});\n}), {\n\tTrack: SliderTrack,\n\tTrackActive: SliderActive,\n\tThumb: SliderThumb\n});\nSlider.displayName = SLIDER_NAME;\nconst Track = SliderTrack;\nconst Range = SliderActive;\nconst Thumb = SliderThumb;\n\nexport { Range, Slider, SliderActive, SliderActiveFrame, SliderThumb, SliderThumbFrame, SliderTrack, SliderTrackFrame, Thumb, Track };"],"mappings":"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"}
|
|
@@ -52,6 +52,11 @@ var React = __toESM(require("react"), 1);
|
|
|
52
52
|
var import_constants2 = require("./constants.native.js");
|
|
53
53
|
var import_helpers2 = require("./helpers.native.js");
|
|
54
54
|
var import_SliderImpl = require("./SliderImpl.native.js");
|
|
55
|
+
var getTrackPosition = function(event, offset, orientation) {
|
|
56
|
+
var { locationX, locationY, pageX, pageY } = event.nativeEvent;
|
|
57
|
+
if (import_constants.isWeb) return orientation === "horizontal" ? locationX : locationY;
|
|
58
|
+
return (orientation === "horizontal" ? pageX : pageY) - offset;
|
|
59
|
+
};
|
|
55
60
|
var SliderHorizontal = (0, import_core.createRefComponent)(function(props, forwardedRef) {
|
|
56
61
|
var { min, max, dir, onSlideStart, onSlideMove, onStepKeyDown, onSlideEnd, ...sliderProps } = props;
|
|
57
62
|
var direction = (0, import_use_direction.useDirection)(dir);
|
|
@@ -96,11 +101,11 @@ var SliderHorizontal = (0, import_core.createRefComponent)(function(props, forwa
|
|
|
96
101
|
if (value) onSlideStart === null || onSlideStart === void 0 || onSlideStart(value, target, event);
|
|
97
102
|
},
|
|
98
103
|
onSlideMove: function(event) {
|
|
99
|
-
var value = getValueFromPointer(event
|
|
104
|
+
var value = getValueFromPointer(getTrackPosition(event, state.offset, "horizontal"));
|
|
100
105
|
if (value) onSlideMove === null || onSlideMove === void 0 || onSlideMove(value, event);
|
|
101
106
|
},
|
|
102
107
|
onSlideEnd: function(event) {
|
|
103
|
-
var value = getValueFromPointer(event
|
|
108
|
+
var value = getValueFromPointer(getTrackPosition(event, state.offset, "horizontal"));
|
|
104
109
|
if (value) onSlideEnd === null || onSlideEnd === void 0 || onSlideEnd(event, value);
|
|
105
110
|
},
|
|
106
111
|
onStepKeyDown: function(event) {
|
|
@@ -159,11 +164,11 @@ var SliderVertical = (0, import_core.createRefComponent)(function(props, forward
|
|
|
159
164
|
if (value) onSlideStart === null || onSlideStart === void 0 || onSlideStart(value, target, event);
|
|
160
165
|
},
|
|
161
166
|
onSlideMove: function(event) {
|
|
162
|
-
var value = getValueFromPointer(event
|
|
167
|
+
var value = getValueFromPointer(getTrackPosition(event, state.offset, "vertical"));
|
|
163
168
|
if (value) onSlideMove === null || onSlideMove === void 0 || onSlideMove(value, event);
|
|
164
169
|
},
|
|
165
170
|
onSlideEnd: function(event) {
|
|
166
|
-
var value = getValueFromPointer(event
|
|
171
|
+
var value = getValueFromPointer(getTrackPosition(event, state.offset, "vertical"));
|
|
167
172
|
onSlideEnd === null || onSlideEnd === void 0 || onSlideEnd(event, value);
|
|
168
173
|
},
|
|
169
174
|
onStepKeyDown: function(event) {
|
|
@@ -186,12 +191,10 @@ var SliderTrackFrame = (0, import_core.styled)(import_SliderImpl.SliderFrame, {
|
|
|
186
191
|
var SliderTrack = (0, import_core.createStyledHOC)(SliderTrackFrame, function SliderTrack2(props, forwardedRef) {
|
|
187
192
|
var { __scopeSlider, ...trackProps } = props;
|
|
188
193
|
var context = (0, import_constants2.useSliderContext)(__scopeSlider);
|
|
189
|
-
var _context_size;
|
|
190
194
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SliderTrackFrame, {
|
|
191
195
|
"data-disabled": context.disabled ? "" : void 0,
|
|
192
196
|
"data-orientation": context.orientation,
|
|
193
197
|
orientation: context.orientation,
|
|
194
|
-
size: (_context_size = context.size) !== null && _context_size !== void 0 ? _context_size : void 0,
|
|
195
198
|
...trackProps,
|
|
196
199
|
ref: forwardedRef
|
|
197
200
|
});
|
|
@@ -213,18 +216,10 @@ var SliderActive = (0, import_core.createStyledHOC)(SliderActiveFrame, function
|
|
|
213
216
|
});
|
|
214
217
|
var offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;
|
|
215
218
|
var offsetEnd = 100 - Math.max(...percentages);
|
|
216
|
-
var _context_size;
|
|
217
219
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SliderActiveFrame, {
|
|
218
220
|
orientation: context.orientation,
|
|
219
221
|
"data-orientation": context.orientation,
|
|
220
222
|
"data-disabled": context.disabled ? "" : void 0,
|
|
221
|
-
size: (_context_size = context.size) !== null && _context_size !== void 0 ? _context_size : void 0,
|
|
222
|
-
animateOnly: [
|
|
223
|
-
"left",
|
|
224
|
-
"top",
|
|
225
|
-
"right",
|
|
226
|
-
"bottom"
|
|
227
|
-
],
|
|
228
223
|
...rangeProps,
|
|
229
224
|
ref: composedRefs,
|
|
230
225
|
[orientation.startEdge]: `${offsetStart}%`,
|
|
@@ -235,23 +230,27 @@ var SliderActive = (0, import_core.createStyledHOC)(SliderActiveFrame, function
|
|
|
235
230
|
}
|
|
236
231
|
});
|
|
237
232
|
});
|
|
238
|
-
var
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
233
|
+
var thumbSize = function(val) {
|
|
234
|
+
if (typeof val === "number") return val;
|
|
235
|
+
if (typeof val === "string") {
|
|
236
|
+
var conf = (0, import_core.getConfig)();
|
|
237
|
+
var font = conf.fontsParsed[conf.defaultFontToken];
|
|
238
|
+
var fontSize = font === null || font === void 0 ? void 0 : font.size[val];
|
|
239
|
+
if (fontSize != null) {
|
|
240
|
+
var _font_lineHeight;
|
|
241
|
+
var metrics = { fontSize: Number.parseFloat(String((0, import_core.getVariableValue)(fontSize))) };
|
|
242
|
+
var lineHeight = font === null || font === void 0 ? void 0 : (_font_lineHeight = font.lineHeight) === null || _font_lineHeight === void 0 ? void 0 : _font_lineHeight[val];
|
|
243
|
+
(0, import_core.resolveTextMetrics)(metrics, typeof lineHeight === "number" ? `${lineHeight}px` : lineHeight);
|
|
244
|
+
var _metrics_lineHeight;
|
|
245
|
+
return (_metrics_lineHeight = metrics.lineHeight) !== null && _metrics_lineHeight !== void 0 ? _metrics_lineHeight : metrics.fontSize;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
return 20;
|
|
249
|
+
};
|
|
250
250
|
var SliderThumbFrame = (0, import_core.styled)(import_stacks.YStack, {
|
|
251
251
|
displayName: "SliderThumb",
|
|
252
252
|
position: "absolute",
|
|
253
253
|
variants: {
|
|
254
|
-
size: getThumbSize,
|
|
255
254
|
circular: { true: {
|
|
256
255
|
borderRadius: 1e5,
|
|
257
256
|
padding: 0
|
|
@@ -278,8 +277,7 @@ var SliderThumb = (0, import_core.createStyledHOC)(SliderThumbFrame, function Sl
|
|
|
278
277
|
var _ref;
|
|
279
278
|
var sizeIn = (_ref = sizeProp !== null && sizeProp !== void 0 ? sizeProp : context.size) !== null && _ref !== void 0 ? _ref : true;
|
|
280
279
|
var [size, setSize] = React.useState(function() {
|
|
281
|
-
|
|
282
|
-
return (0, import_core.getVariableValue)((_getThumbSize = getThumbSize(sizeIn, {})) === null || _getThumbSize === void 0 ? void 0 : _getThumbSize.width);
|
|
280
|
+
return thumbSize(sizeIn);
|
|
283
281
|
});
|
|
284
282
|
var thumbInBoundsOffset = size ? (0, import_helpers2.getThumbInBoundsOffset)(size, percent, orientation.direction) : 0;
|
|
285
283
|
React.useEffect(function() {
|
|
@@ -322,16 +320,8 @@ var SliderThumb = (0, import_core.createStyledHOC)(SliderThumbFrame, function Sl
|
|
|
322
320
|
"data-orientation": context.orientation,
|
|
323
321
|
"data-disabled": context.disabled ? "" : void 0,
|
|
324
322
|
tabIndex: context.disabled ? void 0 : 0,
|
|
325
|
-
animateOnly: [
|
|
326
|
-
"transform",
|
|
327
|
-
"left",
|
|
328
|
-
"top",
|
|
329
|
-
"right",
|
|
330
|
-
"bottom"
|
|
331
|
-
],
|
|
332
323
|
...positionalStyles,
|
|
333
324
|
[orientation.startEdge]: `${percent}%`,
|
|
334
|
-
size: sizeIn,
|
|
335
325
|
circular,
|
|
336
326
|
...thumbProps,
|
|
337
327
|
onLayout: function(e) {
|