@tamagui/slider 1.0.1-beta.26 → 1.0.1-beta.29
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.js +106 -85
- package/dist/cjs/Slider.js.map +2 -2
- package/dist/cjs/SliderImpl.js +29 -9
- package/dist/cjs/SliderImpl.js.map +2 -2
- package/dist/cjs/constants.js +62 -0
- package/dist/cjs/constants.js.map +7 -0
- package/dist/cjs/index.js +0 -1
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/Slider.js +91 -66
- package/dist/esm/Slider.js.map +2 -2
- package/dist/esm/SliderImpl.js +27 -7
- package/dist/esm/SliderImpl.js.map +2 -2
- package/dist/esm/constants.js +30 -0
- package/dist/esm/constants.js.map +7 -0
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +2 -2
- package/dist/jsx/Slider.js +83 -58
- package/dist/jsx/SliderImpl.js +27 -8
- package/dist/jsx/constants.js +29 -0
- package/dist/jsx/index.js +0 -1
- package/package.json +8 -8
- package/types/Slider.d.ts.map +1 -1
- package/types/SliderImpl.d.ts.map +1 -1
- package/types/constants.d.ts +53 -0
- package/types/constants.d.ts.map +1 -0
- package/types/index.d.ts +1 -1
- package/types/index.d.ts.map +1 -1
- package/types/types.d.ts +3 -3
- package/types/types.d.ts.map +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/SliderImpl.tsx"],
|
|
4
|
-
"sourcesContent": ["/* -------------------------------------------------------------------------------------------------\n * SliderImpl\n * -----------------------------------------------------------------------------------------------*/\n\nimport { composeEventHandlers, styled } from '@tamagui/core'\nimport { YStack, getCircleSize } from '@tamagui/stacks'\nimport * as React from 'react'\n\nimport { SLIDER_NAME, useSliderContext } from './
|
|
5
|
-
"mappings": "AAIA;AACA;AACA;AAEA;AAGO,MAAM,oBAAoB,OAAO,QAAQ;AAAA,EAC9C,UAAU;AAAA,IACR,aAAa;AAAA,MACX,YAAY,CAAC;AAAA,MACb,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AACF,CAAC;AAEM,MAAM,cAAc,OAAO,mBAAmB;AAAA,EACnD,
|
|
4
|
+
"sourcesContent": ["/* -------------------------------------------------------------------------------------------------\n * SliderImpl\n * -----------------------------------------------------------------------------------------------*/\n\nimport { composeEventHandlers, isWeb, styled } from '@tamagui/core'\nimport { YStack, getCircleSize } from '@tamagui/stacks'\nimport * as React from 'react'\n\nimport { ARROW_KEYS, PAGE_KEYS, SLIDER_NAME, useSliderContext } from './constants'\nimport { ScopedProps, SliderImplElement, SliderImplProps } from './types'\n\nexport const DirectionalYStack = styled(YStack, {\n variants: {\n orientation: {\n horizontal: {},\n vertical: {},\n },\n },\n})\n\nexport const SliderFrame = styled(DirectionalYStack, {\n position: 'relative',\n\n variants: {\n size: (val, extras) => {\n const orientation = extras.props.orientation\n const circleSize = getCircleSize(val, extras)\n const size = circleSize / 10\n if (orientation === 'horizontal') {\n return {\n height: size,\n borderRadius: size,\n }\n }\n return {\n width: size,\n borderRadius: size,\n }\n },\n },\n})\n\nexport const SliderImpl = React.forwardRef<SliderImplElement, SliderImplProps>(\n (props: ScopedProps<SliderImplProps>, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props\n const context = useSliderContext(SLIDER_NAME, __scopeSlider)\n return (\n <SliderFrame\n size=\"$4\"\n {...sliderProps}\n data-orientation={sliderProps.orientation}\n ref={forwardedRef}\n {...(isWeb && {\n onKeyDown: (event) => {\n if (event.key === 'Home') {\n onHomeKeyDown(event)\n // Prevent scrolling to page start\n event.preventDefault()\n } else if (event.key === 'End') {\n onEndKeyDown(event)\n // Prevent scrolling to page end\n event.preventDefault()\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event)\n // Prevent scrolling for directional key presses\n event.preventDefault()\n }\n },\n })}\n onStartShouldSetResponder={() => true}\n onResponderGrant={composeEventHandlers(props.onResponderGrant, (event) => {\n const target = event.target as HTMLElement | number\n const isStartingOnThumb = context.thumbs.has(event.target)\n // // Prevent browser focus behaviour because we focus a thumb manually when values change.\n event.preventDefault()\n // Touch devices have a delay before focusing so won't focus if touch immediately moves\n // away from target (sliding). We want thumb to focus regardless.\n if (target instanceof HTMLElement) {\n if (context.thumbs.has(target)) {\n target.focus()\n }\n }\n onSlideStart(event, isStartingOnThumb ? 'thumb' : 'track')\n })}\n onResponderMove={composeEventHandlers(props.onResponderMove, (event) => {\n // const target = event.target as HTMLElement\n onSlideMove(event)\n })}\n onResponderRelease={composeEventHandlers(props.onResponderRelease, (event) => {\n // const target = event.target as HTMLElement\n onSlideEnd(event)\n })}\n />\n )\n }\n)\n"],
|
|
5
|
+
"mappings": "AAIA;AACA;AACA;AAEA;AAGO,MAAM,oBAAoB,OAAO,QAAQ;AAAA,EAC9C,UAAU;AAAA,IACR,aAAa;AAAA,MACX,YAAY,CAAC;AAAA,MACb,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AACF,CAAC;AAEM,MAAM,cAAc,OAAO,mBAAmB;AAAA,EACnD,UAAU;AAAA,EAEV,UAAU;AAAA,IACR,MAAM,CAAC,KAAK,WAAW;AACrB,YAAM,cAAc,OAAO,MAAM;AACjC,YAAM,aAAa,cAAc,KAAK,MAAM;AAC5C,YAAM,OAAO,aAAa;AAC1B,UAAI,gBAAgB,cAAc;AAChC,eAAO;AAAA,UACL,QAAQ;AAAA,UACR,cAAc;AAAA,QAChB;AAAA,MACF;AACA,aAAO;AAAA,QACL,OAAO;AAAA,QACP,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AACF,CAAC;AAEM,MAAM,aAAa,MAAM,WAC9B,CAAC,OAAqC,iBAAiB;AACrD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,OACG;AAAA,MACD;AACJ,QAAM,UAAU,iBAAiB,aAAa,aAAa;AAC3D,SACE,oCAAC;AAAA,IACC,MAAK;AAAA,OACD;AAAA,IACJ,oBAAkB,YAAY;AAAA,IAC9B,KAAK;AAAA,OACA,SAAS;AAAA,MACZ,WAAW,CAAC,UAAU;AACpB,YAAI,MAAM,QAAQ,QAAQ;AACxB,wBAAc,KAAK;AAEnB,gBAAM,eAAe;AAAA,QACvB,WAAW,MAAM,QAAQ,OAAO;AAC9B,uBAAa,KAAK;AAElB,gBAAM,eAAe;AAAA,QACvB,WAAW,UAAU,OAAO,UAAU,EAAE,SAAS,MAAM,GAAG,GAAG;AAC3D,wBAAc,KAAK;AAEnB,gBAAM,eAAe;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAAA,IACA,2BAA2B,MAAM;AAAA,IACjC,kBAAkB,qBAAqB,MAAM,kBAAkB,CAAC,UAAU;AACxE,YAAM,SAAS,MAAM;AACrB,YAAM,oBAAoB,QAAQ,OAAO,IAAI,MAAM,MAAM;AAEzD,YAAM,eAAe;AAGrB,UAAI,kBAAkB,aAAa;AACjC,YAAI,QAAQ,OAAO,IAAI,MAAM,GAAG;AAC9B,iBAAO,MAAM;AAAA,QACf;AAAA,MACF;AACA,mBAAa,OAAO,oBAAoB,UAAU,OAAO;AAAA,IAC3D,CAAC;AAAA,IACD,iBAAiB,qBAAqB,MAAM,iBAAiB,CAAC,UAAU;AAEtE,kBAAY,KAAK;AAAA,IACnB,CAAC;AAAA,IACD,oBAAoB,qBAAqB,MAAM,oBAAoB,CAAC,UAAU;AAE5E,iBAAW,KAAK;AAAA,IAClB,CAAC;AAAA,GACH;AAEJ,CACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createContextScope } from "@tamagui/create-context";
|
|
2
|
+
const SLIDER_NAME = "Slider";
|
|
3
|
+
const [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME);
|
|
4
|
+
const [SliderProvider, useSliderContext] = createSliderContext(SLIDER_NAME);
|
|
5
|
+
const [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext(SLIDER_NAME, {
|
|
6
|
+
startEdge: "left",
|
|
7
|
+
endEdge: "right",
|
|
8
|
+
sizeProp: "width",
|
|
9
|
+
size: 0,
|
|
10
|
+
direction: 1
|
|
11
|
+
});
|
|
12
|
+
const PAGE_KEYS = ["PageUp", "PageDown"];
|
|
13
|
+
const ARROW_KEYS = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"];
|
|
14
|
+
const BACK_KEYS = {
|
|
15
|
+
ltr: ["ArrowDown", "Home", "ArrowLeft", "PageDown"],
|
|
16
|
+
rtl: ["ArrowDown", "Home", "ArrowRight", "PageDown"]
|
|
17
|
+
};
|
|
18
|
+
export {
|
|
19
|
+
ARROW_KEYS,
|
|
20
|
+
BACK_KEYS,
|
|
21
|
+
PAGE_KEYS,
|
|
22
|
+
SLIDER_NAME,
|
|
23
|
+
SliderOrientationProvider,
|
|
24
|
+
SliderProvider,
|
|
25
|
+
createSliderContext,
|
|
26
|
+
createSliderScope,
|
|
27
|
+
useSliderContext,
|
|
28
|
+
useSliderOrientationContext
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/constants.tsx"],
|
|
4
|
+
"sourcesContent": ["import { SizeTokens } from '@tamagui/core'\nimport { createContextScope } from '@tamagui/create-context'\n\nimport { Direction, SliderContextValue } from './types'\n\nexport const SLIDER_NAME = 'Slider'\n\nexport const [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME)\n\nexport const [SliderProvider, useSliderContext] =\n createSliderContext<SliderContextValue>(SLIDER_NAME)\n\nexport const [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext<{\n startEdge: 'bottom' | 'left' | 'right'\n endEdge: 'top' | 'right' | 'left'\n sizeProp: 'width' | 'height'\n size: number | SizeTokens\n direction: number\n}>(SLIDER_NAME, {\n startEdge: 'left',\n endEdge: 'right',\n sizeProp: 'width',\n size: 0,\n direction: 1,\n})\n\nexport const PAGE_KEYS = ['PageUp', 'PageDown']\nexport const ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight']\nexport const BACK_KEYS: Record<Direction, string[]> = {\n ltr: ['ArrowDown', 'Home', 'ArrowLeft', 'PageDown'],\n rtl: ['ArrowDown', 'Home', 'ArrowRight', 'PageDown'],\n}\n"],
|
|
5
|
+
"mappings": "AACA;AAIO,MAAM,cAAc;AAEpB,MAAM,CAAC,qBAAqB,qBAAqB,mBAAmB,WAAW;AAE/E,MAAM,CAAC,gBAAgB,oBAC5B,oBAAwC,WAAW;AAE9C,MAAM,CAAC,2BAA2B,+BAA+B,oBAMrE,aAAa;AAAA,EACd,WAAW;AAAA,EACX,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AAAA,EACN,WAAW;AACb,CAAC;AAEM,MAAM,YAAY,CAAC,UAAU,UAAU;AACvC,MAAM,aAAa,CAAC,WAAW,aAAa,aAAa,YAAY;AACrE,MAAM,YAAyC;AAAA,EACpD,KAAK,CAAC,aAAa,QAAQ,aAAa,UAAU;AAAA,EAClD,KAAK,CAAC,aAAa,QAAQ,cAAc,UAAU;AACrD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/dist/esm/index.js
CHANGED
package/dist/esm/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["export * from './Slider'\nexport
|
|
5
|
-
"mappings": "AAAA;
|
|
4
|
+
"sourcesContent": ["export * from './Slider'\nexport type {\n SliderProps,\n SliderHorizontalProps,\n SliderVerticalProps,\n SliderTrackProps,\n} from './types'\n"],
|
|
5
|
+
"mappings": "AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/jsx/Slider.js
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
import { usePrevious } from "@radix-ui/react-use-previous";
|
|
4
3
|
import { useComposedRefs } from "@tamagui/compose-refs";
|
|
5
4
|
import { styled, withStaticProperties } from "@tamagui/core";
|
|
6
5
|
import { clamp, composeEventHandlers } from "@tamagui/helpers";
|
|
7
|
-
import {
|
|
6
|
+
import { ThemeableSizableStack } from "@tamagui/stacks";
|
|
8
7
|
import { useControllableState } from "@tamagui/use-controllable-state";
|
|
9
8
|
import { useDirection } from "@tamagui/use-direction";
|
|
10
9
|
import * as React from "react";
|
|
11
10
|
import {
|
|
11
|
+
ARROW_KEYS,
|
|
12
|
+
BACK_KEYS,
|
|
13
|
+
PAGE_KEYS,
|
|
12
14
|
SLIDER_NAME,
|
|
13
15
|
SliderOrientationProvider,
|
|
14
16
|
SliderProvider,
|
|
15
17
|
useSliderContext,
|
|
16
18
|
useSliderOrientationContext
|
|
17
|
-
} from "./
|
|
19
|
+
} from "./constants";
|
|
18
20
|
import {
|
|
19
21
|
convertValueToPercentage,
|
|
20
22
|
getClosestValueIndex,
|
|
@@ -27,17 +29,11 @@ import {
|
|
|
27
29
|
roundValue
|
|
28
30
|
} from "./helpers";
|
|
29
31
|
import { SliderFrame, SliderImpl } from "./SliderImpl";
|
|
30
|
-
const PAGE_KEYS = ["PageUp", "PageDown"];
|
|
31
|
-
const ARROW_KEYS = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"];
|
|
32
|
-
const BACK_KEYS = {
|
|
33
|
-
ltr: ["ArrowDown", "Home", "ArrowLeft", "PageDown"],
|
|
34
|
-
rtl: ["ArrowDown", "Home", "ArrowRight", "PageDown"]
|
|
35
|
-
};
|
|
36
32
|
const SliderHorizontal = React.forwardRef((props, forwardedRef) => {
|
|
37
33
|
const { min, max, dir, onSlideStart, onSlideMove, onStepKeyDown, ...sliderProps } = props;
|
|
38
|
-
const layoutRef = React.useRef(null);
|
|
39
34
|
const direction = useDirection(dir);
|
|
40
35
|
const isDirectionLTR = direction === "ltr";
|
|
36
|
+
const layoutRef = React.useRef(null);
|
|
41
37
|
const [size, setSize] = React.useState(0);
|
|
42
38
|
function getValueFromPointer(pointerPosition) {
|
|
43
39
|
const layout = layoutRef.current;
|
|
@@ -46,20 +42,20 @@ const SliderHorizontal = React.forwardRef((props, forwardedRef) => {
|
|
|
46
42
|
const input = [0, layout.width];
|
|
47
43
|
const output = isDirectionLTR ? [min, max] : [max, min];
|
|
48
44
|
const value = linearScale(input, output);
|
|
49
|
-
return value(pointerPosition
|
|
45
|
+
return value(pointerPosition);
|
|
50
46
|
}
|
|
51
47
|
__name(getValueFromPointer, "getValueFromPointer");
|
|
52
|
-
return <SliderOrientationProvider scope={props.__scopeSlider} startEdge={isDirectionLTR ? "left" : "right"} endEdge={isDirectionLTR ? "right" : "left"} direction={isDirectionLTR ? 1 : -1} sizeProp="width" size={size}><SliderImpl dir={direction} orientation="horizontal"
|
|
48
|
+
return <SliderOrientationProvider scope={props.__scopeSlider} startEdge={isDirectionLTR ? "left" : "right"} endEdge={isDirectionLTR ? "right" : "left"} direction={isDirectionLTR ? 1 : -1} sizeProp="width" size={size}><SliderImpl ref={forwardedRef} dir={direction} {...sliderProps} orientation="horizontal" onLayout={(e) => {
|
|
53
49
|
const layout = e.nativeEvent.layout;
|
|
54
50
|
layoutRef.current = layout;
|
|
55
51
|
setSize(layout.height);
|
|
56
|
-
}}
|
|
57
|
-
const value = getValueFromPointer(event.nativeEvent.
|
|
52
|
+
}} onSlideStart={(event, target) => {
|
|
53
|
+
const value = getValueFromPointer(event.nativeEvent.locationX);
|
|
58
54
|
if (value) {
|
|
59
|
-
onSlideStart == null ? void 0 : onSlideStart(value);
|
|
55
|
+
onSlideStart == null ? void 0 : onSlideStart(value, target);
|
|
60
56
|
}
|
|
61
57
|
}} onSlideMove={(event) => {
|
|
62
|
-
const value = getValueFromPointer(event.nativeEvent.
|
|
58
|
+
const value = getValueFromPointer(event.nativeEvent.locationX);
|
|
63
59
|
if (value) {
|
|
64
60
|
onSlideMove == null ? void 0 : onSlideMove(value);
|
|
65
61
|
}
|
|
@@ -71,42 +67,58 @@ const SliderHorizontal = React.forwardRef((props, forwardedRef) => {
|
|
|
71
67
|
});
|
|
72
68
|
const SliderVertical = React.forwardRef((props, forwardedRef) => {
|
|
73
69
|
const { min, max, onSlideStart, onSlideMove, onStepKeyDown, ...sliderProps } = props;
|
|
74
|
-
const
|
|
75
|
-
const
|
|
76
|
-
const rectRef = React.useRef();
|
|
70
|
+
const layoutRef = React.useRef(null);
|
|
71
|
+
const [size, setSize] = React.useState(0);
|
|
77
72
|
function getValueFromPointer(pointerPosition) {
|
|
78
|
-
const
|
|
79
|
-
|
|
73
|
+
const layout = layoutRef.current;
|
|
74
|
+
if (!layout)
|
|
75
|
+
return;
|
|
76
|
+
const input = [0, layout.height];
|
|
80
77
|
const output = [max, min];
|
|
81
78
|
const value = linearScale(input, output);
|
|
82
|
-
|
|
83
|
-
return value(pointerPosition - rect.top);
|
|
79
|
+
return value(pointerPosition);
|
|
84
80
|
}
|
|
85
81
|
__name(getValueFromPointer, "getValueFromPointer");
|
|
86
|
-
return <SliderOrientationProvider scope={props.__scopeSlider} startEdge="bottom" endEdge="top" sizeProp="height" size={
|
|
82
|
+
return <SliderOrientationProvider scope={props.__scopeSlider} startEdge="bottom" endEdge="top" sizeProp="height" size={size} direction={1}><SliderImpl ref={forwardedRef} {...sliderProps} orientation="vertical" onLayout={(e) => {
|
|
83
|
+
const layout = e.nativeEvent.layout;
|
|
84
|
+
layoutRef.current = layout;
|
|
85
|
+
setSize(layout.height);
|
|
86
|
+
}} onSlideStart={(event, target) => {
|
|
87
87
|
const value = getValueFromPointer(event.nativeEvent.locationY);
|
|
88
|
-
|
|
88
|
+
if (value) {
|
|
89
|
+
onSlideStart == null ? void 0 : onSlideStart(value, target);
|
|
90
|
+
}
|
|
89
91
|
}} onSlideMove={(event) => {
|
|
90
92
|
const value = getValueFromPointer(event.nativeEvent.locationY);
|
|
91
|
-
|
|
92
|
-
|
|
93
|
+
if (value) {
|
|
94
|
+
onSlideMove == null ? void 0 : onSlideMove(value);
|
|
95
|
+
}
|
|
96
|
+
}} onSlideEnd={() => {
|
|
97
|
+
}} onStepKeyDown={(event) => {
|
|
93
98
|
const isBackKey = BACK_KEYS.ltr.includes(event.key);
|
|
94
99
|
onStepKeyDown == null ? void 0 : onStepKeyDown({ event, direction: isBackKey ? -1 : 1 });
|
|
95
100
|
}} /></SliderOrientationProvider>;
|
|
96
101
|
});
|
|
97
102
|
const TRACK_NAME = "SliderTrack";
|
|
98
103
|
const SliderTrackFrame = styled(SliderFrame, {
|
|
99
|
-
name: "
|
|
104
|
+
name: "SliderTrack",
|
|
105
|
+
height: "100%",
|
|
106
|
+
width: "100%",
|
|
107
|
+
backgroundColor: "$background",
|
|
108
|
+
position: "relative",
|
|
109
|
+
borderRadius: 1e5
|
|
100
110
|
});
|
|
101
111
|
const SliderTrack = React.forwardRef((props, forwardedRef) => {
|
|
102
112
|
const { __scopeSlider, ...trackProps } = props;
|
|
103
113
|
const context = useSliderContext(TRACK_NAME, __scopeSlider);
|
|
104
|
-
return <SliderTrackFrame data-disabled={context.disabled ? "" : void 0} data-orientation={context.orientation} orientation={context.orientation} {...trackProps} ref={forwardedRef} />;
|
|
114
|
+
return <SliderTrackFrame data-disabled={context.disabled ? "" : void 0} data-orientation={context.orientation} orientation={context.orientation} size={context.size} {...trackProps} ref={forwardedRef} />;
|
|
105
115
|
});
|
|
106
116
|
SliderTrack.displayName = TRACK_NAME;
|
|
107
117
|
const RANGE_NAME = "SliderTrackActive";
|
|
108
118
|
const SliderTrackActiveFrame = styled(SliderFrame, {
|
|
109
|
-
name: "SliderTrackActive"
|
|
119
|
+
name: "SliderTrackActive",
|
|
120
|
+
backgroundColor: "$background",
|
|
121
|
+
position: "absolute"
|
|
110
122
|
});
|
|
111
123
|
const SliderTrackActive = React.forwardRef((props, forwardedRef) => {
|
|
112
124
|
const { __scopeSlider, ...rangeProps } = props;
|
|
@@ -118,29 +130,56 @@ const SliderTrackActive = React.forwardRef((props, forwardedRef) => {
|
|
|
118
130
|
const percentages = context.values.map((value) => convertValueToPercentage(value, context.min, context.max));
|
|
119
131
|
const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;
|
|
120
132
|
const offsetEnd = 100 - Math.max(...percentages);
|
|
121
|
-
return <SliderTrackActiveFrame orientation={context.orientation} data-orientation={context.orientation} data-disabled={context.disabled ? "" : void 0} {...rangeProps} ref={composedRefs} {...{
|
|
133
|
+
return <SliderTrackActiveFrame orientation={context.orientation} data-orientation={context.orientation} data-disabled={context.disabled ? "" : void 0} size={context.size} {...rangeProps} ref={composedRefs} {...{
|
|
122
134
|
[orientation.startEdge]: offsetStart + "%",
|
|
123
135
|
[orientation.endEdge]: offsetEnd + "%"
|
|
136
|
+
}} {...orientation.sizeProp === "width" ? {
|
|
137
|
+
height: "100%"
|
|
138
|
+
} : {
|
|
139
|
+
left: 0,
|
|
140
|
+
right: 0
|
|
124
141
|
}} />;
|
|
125
142
|
});
|
|
126
143
|
SliderTrackActive.displayName = RANGE_NAME;
|
|
127
144
|
const THUMB_NAME = "SliderThumb";
|
|
128
|
-
const SliderThumbFrame = styled(
|
|
145
|
+
const SliderThumbFrame = styled(ThemeableSizableStack, {
|
|
129
146
|
name: "SliderThumb",
|
|
130
|
-
position: "absolute"
|
|
147
|
+
position: "absolute",
|
|
148
|
+
bordered: 2,
|
|
149
|
+
borderWidth: 2,
|
|
150
|
+
pressable: true,
|
|
151
|
+
focusable: true,
|
|
152
|
+
hoverable: true
|
|
131
153
|
});
|
|
132
154
|
const SliderThumb = React.forwardRef((props, forwardedRef) => {
|
|
133
155
|
var _a;
|
|
134
156
|
const { __scopeSlider, index, size: sizeProp, ...thumbProps } = props;
|
|
135
157
|
const context = useSliderContext(THUMB_NAME, __scopeSlider);
|
|
136
158
|
const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);
|
|
159
|
+
const [thumb, setThumb] = React.useState(null);
|
|
160
|
+
const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));
|
|
137
161
|
const value = context.values[index];
|
|
138
162
|
const percent = value === void 0 ? 0 : convertValueToPercentage(value, context.min, context.max);
|
|
139
163
|
const label = getLabel(index, context.values.length);
|
|
140
164
|
const [size, setSize] = React.useState(0);
|
|
141
165
|
const thumbInBoundsOffset = size ? getThumbInBoundsOffset(size, percent, orientation.direction) : 0;
|
|
142
|
-
|
|
143
|
-
|
|
166
|
+
React.useEffect(() => {
|
|
167
|
+
if (thumb) {
|
|
168
|
+
context.thumbs.add(thumb);
|
|
169
|
+
return () => {
|
|
170
|
+
context.thumbs.delete(thumb);
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
}, [thumb, context.thumbs]);
|
|
174
|
+
return <SliderThumbFrame ref={composedRefs} role="slider" aria-label={props["aria-label"] || label} aria-valuemin={context.min} aria-valuenow={value} aria-valuemax={context.max} aria-orientation={context.orientation} data-orientation={context.orientation} data-disabled={context.disabled ? "" : void 0} tabIndex={context.disabled ? void 0 : 0} {...thumbProps} {...context.orientation === "horizontal" ? {
|
|
175
|
+
x: thumbInBoundsOffset - size / 2,
|
|
176
|
+
y: -size / 2,
|
|
177
|
+
top: "50%"
|
|
178
|
+
} : {
|
|
179
|
+
x: -size / 2,
|
|
180
|
+
y: size / 2,
|
|
181
|
+
left: "50%"
|
|
182
|
+
}} size={(_a = sizeProp != null ? sizeProp : context.size) != null ? _a : 30} onLayout={(e) => {
|
|
144
183
|
setSize(e.nativeEvent.layout[orientation.sizeProp]);
|
|
145
184
|
}} {...{
|
|
146
185
|
[orientation.startEdge]: `${percent}%`
|
|
@@ -172,14 +211,12 @@ const Slider = withStaticProperties(React.forwardRef((props, forwardedRef) => {
|
|
|
172
211
|
prop: value,
|
|
173
212
|
defaultProp: defaultValue,
|
|
174
213
|
onChange: (value2) => {
|
|
214
|
+
var _a;
|
|
215
|
+
const thumbs = [...thumbRefs.current];
|
|
216
|
+
(_a = thumbs[valueIndexToChangeRef.current]) == null ? void 0 : _a.focus();
|
|
175
217
|
onValueChange(value2);
|
|
176
218
|
}
|
|
177
219
|
});
|
|
178
|
-
function handleSlideStart(value2) {
|
|
179
|
-
const closestIndex = getClosestValueIndex(values, value2);
|
|
180
|
-
updateValues(value2, closestIndex);
|
|
181
|
-
}
|
|
182
|
-
__name(handleSlideStart, "handleSlideStart");
|
|
183
220
|
function handleSlideMove(value2) {
|
|
184
221
|
updateValues(value2, valueIndexToChangeRef.current);
|
|
185
222
|
}
|
|
@@ -200,7 +237,12 @@ const Slider = withStaticProperties(React.forwardRef((props, forwardedRef) => {
|
|
|
200
237
|
}
|
|
201
238
|
__name(updateValues, "updateValues");
|
|
202
239
|
const SliderOriented = isHorizontal ? SliderHorizontal : SliderVertical;
|
|
203
|
-
return <SliderProvider scope={props.__scopeSlider} disabled={disabled} min={min} max={max} valueIndexToChangeRef={valueIndexToChangeRef} thumbs={thumbRefs.current} values={values} orientation={orientation} size={sizeProp || 20}><SliderOriented aria-disabled={disabled} data-disabled={disabled ? "" : void 0} {...sliderProps} ref={forwardedRef} min={min} max={max} onSlideStart={disabled ? void 0 :
|
|
240
|
+
return <SliderProvider scope={props.__scopeSlider} disabled={disabled} min={min} max={max} valueIndexToChangeRef={valueIndexToChangeRef} thumbs={thumbRefs.current} values={values} orientation={orientation} size={sizeProp || 20}><SliderOriented aria-disabled={disabled} data-disabled={disabled ? "" : void 0} {...sliderProps} ref={forwardedRef} min={min} max={max} onSlideStart={disabled ? void 0 : (value2, target) => {
|
|
241
|
+
if (target !== "thumb") {
|
|
242
|
+
const closestIndex = getClosestValueIndex(values, value2);
|
|
243
|
+
updateValues(value2, closestIndex);
|
|
244
|
+
}
|
|
245
|
+
}} onSlideMove={disabled ? void 0 : handleSlideMove} onHomeKeyDown={() => !disabled && updateValues(min, 0)} onEndKeyDown={() => !disabled && updateValues(max, values.length - 1)} onStepKeyDown={({ event, direction: stepDirection }) => {
|
|
204
246
|
if (!disabled) {
|
|
205
247
|
const isPageKey = PAGE_KEYS.includes(event.key);
|
|
206
248
|
const isSkipKey = isPageKey || event.shiftKey && ARROW_KEYS.includes(event.key);
|
|
@@ -217,23 +259,6 @@ const Slider = withStaticProperties(React.forwardRef((props, forwardedRef) => {
|
|
|
217
259
|
Thumb: SliderThumb
|
|
218
260
|
});
|
|
219
261
|
Slider.displayName = SLIDER_NAME;
|
|
220
|
-
const BubbleInput = /* @__PURE__ */ __name((props) => {
|
|
221
|
-
const { value, ...inputProps } = props;
|
|
222
|
-
const ref = React.useRef(null);
|
|
223
|
-
const prevValue = usePrevious(value);
|
|
224
|
-
React.useEffect(() => {
|
|
225
|
-
const input = ref.current;
|
|
226
|
-
const inputProto = window.HTMLInputElement.prototype;
|
|
227
|
-
const descriptor = Object.getOwnPropertyDescriptor(inputProto, "value");
|
|
228
|
-
const setValue = descriptor.set;
|
|
229
|
-
if (prevValue !== value && setValue) {
|
|
230
|
-
const event = new Event("input", { bubbles: true });
|
|
231
|
-
setValue.call(input, value);
|
|
232
|
-
input.dispatchEvent(event);
|
|
233
|
-
}
|
|
234
|
-
}, [prevValue, value]);
|
|
235
|
-
return <input style={{ display: "none" }} {...inputProps} ref={ref} defaultValue={value} />;
|
|
236
|
-
}, "BubbleInput");
|
|
237
262
|
const Track = SliderTrack;
|
|
238
263
|
const Range = SliderTrackActive;
|
|
239
264
|
const Thumb = SliderThumb;
|
package/dist/jsx/SliderImpl.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { composeEventHandlers, styled } from "@tamagui/core";
|
|
1
|
+
import { composeEventHandlers, isWeb, styled } from "@tamagui/core";
|
|
2
2
|
import { YStack, getCircleSize } from "@tamagui/stacks";
|
|
3
3
|
import * as React from "react";
|
|
4
|
-
import { SLIDER_NAME, useSliderContext } from "./
|
|
4
|
+
import { ARROW_KEYS, PAGE_KEYS, SLIDER_NAME, useSliderContext } from "./constants";
|
|
5
5
|
const DirectionalYStack = styled(YStack, {
|
|
6
6
|
variants: {
|
|
7
7
|
orientation: {
|
|
@@ -11,22 +11,21 @@ const DirectionalYStack = styled(YStack, {
|
|
|
11
11
|
}
|
|
12
12
|
});
|
|
13
13
|
const SliderFrame = styled(DirectionalYStack, {
|
|
14
|
-
name: "Slider",
|
|
15
14
|
position: "relative",
|
|
16
15
|
variants: {
|
|
17
16
|
size: (val, extras) => {
|
|
18
17
|
const orientation = extras.props.orientation;
|
|
19
18
|
const circleSize = getCircleSize(val, extras);
|
|
20
|
-
const size = circleSize /
|
|
19
|
+
const size = circleSize / 10;
|
|
21
20
|
if (orientation === "horizontal") {
|
|
22
21
|
return {
|
|
23
22
|
height: size,
|
|
24
|
-
|
|
23
|
+
borderRadius: size
|
|
25
24
|
};
|
|
26
25
|
}
|
|
27
26
|
return {
|
|
28
27
|
width: size,
|
|
29
|
-
|
|
28
|
+
borderRadius: size
|
|
30
29
|
};
|
|
31
30
|
}
|
|
32
31
|
}
|
|
@@ -43,9 +42,29 @@ const SliderImpl = React.forwardRef((props, forwardedRef) => {
|
|
|
43
42
|
...sliderProps
|
|
44
43
|
} = props;
|
|
45
44
|
const context = useSliderContext(SLIDER_NAME, __scopeSlider);
|
|
46
|
-
return <SliderFrame size="$4" {...sliderProps} data-orientation={sliderProps.orientation} ref={forwardedRef}
|
|
45
|
+
return <SliderFrame size="$4" {...sliderProps} data-orientation={sliderProps.orientation} ref={forwardedRef} {...isWeb && {
|
|
46
|
+
onKeyDown: (event) => {
|
|
47
|
+
if (event.key === "Home") {
|
|
48
|
+
onHomeKeyDown(event);
|
|
49
|
+
event.preventDefault();
|
|
50
|
+
} else if (event.key === "End") {
|
|
51
|
+
onEndKeyDown(event);
|
|
52
|
+
event.preventDefault();
|
|
53
|
+
} else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {
|
|
54
|
+
onStepKeyDown(event);
|
|
55
|
+
event.preventDefault();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}} onStartShouldSetResponder={() => true} onResponderGrant={composeEventHandlers(props.onResponderGrant, (event) => {
|
|
59
|
+
const target = event.target;
|
|
60
|
+
const isStartingOnThumb = context.thumbs.has(event.target);
|
|
47
61
|
event.preventDefault();
|
|
48
|
-
|
|
62
|
+
if (target instanceof HTMLElement) {
|
|
63
|
+
if (context.thumbs.has(target)) {
|
|
64
|
+
target.focus();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
onSlideStart(event, isStartingOnThumb ? "thumb" : "track");
|
|
49
68
|
})} onResponderMove={composeEventHandlers(props.onResponderMove, (event) => {
|
|
50
69
|
onSlideMove(event);
|
|
51
70
|
})} onResponderRelease={composeEventHandlers(props.onResponderRelease, (event) => {
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { createContextScope } from "@tamagui/create-context";
|
|
2
|
+
const SLIDER_NAME = "Slider";
|
|
3
|
+
const [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME);
|
|
4
|
+
const [SliderProvider, useSliderContext] = createSliderContext(SLIDER_NAME);
|
|
5
|
+
const [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext(SLIDER_NAME, {
|
|
6
|
+
startEdge: "left",
|
|
7
|
+
endEdge: "right",
|
|
8
|
+
sizeProp: "width",
|
|
9
|
+
size: 0,
|
|
10
|
+
direction: 1
|
|
11
|
+
});
|
|
12
|
+
const PAGE_KEYS = ["PageUp", "PageDown"];
|
|
13
|
+
const ARROW_KEYS = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"];
|
|
14
|
+
const BACK_KEYS = {
|
|
15
|
+
ltr: ["ArrowDown", "Home", "ArrowLeft", "PageDown"],
|
|
16
|
+
rtl: ["ArrowDown", "Home", "ArrowRight", "PageDown"]
|
|
17
|
+
};
|
|
18
|
+
export {
|
|
19
|
+
ARROW_KEYS,
|
|
20
|
+
BACK_KEYS,
|
|
21
|
+
PAGE_KEYS,
|
|
22
|
+
SLIDER_NAME,
|
|
23
|
+
SliderOrientationProvider,
|
|
24
|
+
SliderProvider,
|
|
25
|
+
createSliderContext,
|
|
26
|
+
createSliderScope,
|
|
27
|
+
useSliderContext,
|
|
28
|
+
useSliderOrientationContext
|
|
29
|
+
};
|
package/dist/jsx/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/slider",
|
|
3
|
-
"version": "1.0.1-beta.
|
|
3
|
+
"version": "1.0.1-beta.29",
|
|
4
4
|
"sideEffects": true,
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"types": "./types/index.d.ts",
|
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@radix-ui/react-use-previous": "^0.1.1",
|
|
22
|
-
"@tamagui/compose-refs": "^1.0.1-beta.
|
|
23
|
-
"@tamagui/core": "^1.0.1-beta.
|
|
24
|
-
"@tamagui/create-context": "^1.0.1-beta.
|
|
25
|
-
"@tamagui/stacks": "^1.0.1-beta.
|
|
26
|
-
"@tamagui/use-controllable-state": "^1.0.1-beta.
|
|
27
|
-
"@tamagui/use-direction": "^1.0.1-beta.
|
|
22
|
+
"@tamagui/compose-refs": "^1.0.1-beta.29",
|
|
23
|
+
"@tamagui/core": "^1.0.1-beta.29",
|
|
24
|
+
"@tamagui/create-context": "^1.0.1-beta.29",
|
|
25
|
+
"@tamagui/stacks": "^1.0.1-beta.29",
|
|
26
|
+
"@tamagui/use-controllable-state": "^1.0.1-beta.29",
|
|
27
|
+
"@tamagui/use-direction": "^1.0.1-beta.29"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|
|
30
30
|
"react": "*",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"react-native": "*"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@tamagui/build": "^1.0.1-beta.
|
|
35
|
+
"@tamagui/build": "^1.0.1-beta.29",
|
|
36
36
|
"@types/react-native": "^0.67.3",
|
|
37
37
|
"react": "*",
|
|
38
38
|
"react-dom": "*",
|
package/types/Slider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../src/Slider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../src/Slider.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAyB,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAGvF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAmB,IAAI,EAAE,MAAM,cAAc,CAAA;AAwBpD,OAAO,EAKL,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAEjB,MAAM,SAAS,CAAA;AAMhB,aAAK,uBAAuB,GAAG,iBAAiB,CAAA;AAiEhD,aAAK,qBAAqB,GAAG,iBAAiB,CAAA;AAgE9C,aAAK,kBAAkB,GAAG,WAAW,GAAG,IAAI,CAAA;AAW5C,QAAA,MAAM,WAAW,6FAehB,CAAA;AAUD,aAAK,wBAAwB,GAAG,WAAW,GAAG,IAAI,CAAA;AAClD,UAAU,sBAAuB,SAAQ,WAAW;CAAG;AAQvD,QAAA,MAAM,iBAAiB,yGAqCtB,CAAA;AAsBD,aAAK,kBAAkB,GAAG,WAAW,GAAG,IAAI,CAAA;AAC5C,UAAU,gBAAiB,SAAQ,iBAAiB;IAClD,KAAK,EAAE,MAAM,CAAA;CACd;AAED,QAAA,MAAM,WAAW,6FA4EhB,CAAA;AAQD,aAAK,aAAa,GAAG,uBAAuB,GAAG,qBAAqB,CAAA;AAEpE,QAAA,MAAM,MAAM;;;;CAsHX,CAAA;AAuCD,QAAA,MAAM,KAAK,6FAAc,CAAA;AACzB,QAAA,MAAM,KAAK,yGAAoB,CAAA;AAC/B,QAAA,MAAM,KAAK,6FAAc,CAAA;AAEzB,OAAO,EACL,MAAM,EACN,WAAW,EACX,iBAAiB,EACjB,WAAW,EAEX,KAAK,EACL,KAAK,EACL,KAAK,GACN,CAAA;AACD,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SliderImpl.d.ts","sourceRoot":"","sources":["../src/SliderImpl.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,EAAe,iBAAiB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;EAO5B,CAAA;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"SliderImpl.d.ts","sourceRoot":"","sources":["../src/SliderImpl.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,EAAe,iBAAiB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;EAO5B,CAAA;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBtB,CAAA;AAEF,eAAO,MAAM,UAAU,2FA8DtB,CAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { SizeTokens } from '@tamagui/core';
|
|
3
|
+
import { Direction, SliderContextValue } from './types';
|
|
4
|
+
export declare const SLIDER_NAME = "Slider";
|
|
5
|
+
export declare const createSliderContext: <ContextValueType extends object | null>(rootComponentName: string, defaultContext?: ContextValueType | undefined) => readonly [{
|
|
6
|
+
(props: ContextValueType & {
|
|
7
|
+
scope: import("@tamagui/create-context").Scope<ContextValueType>;
|
|
8
|
+
children: import("react").ReactNode;
|
|
9
|
+
}): JSX.Element;
|
|
10
|
+
displayName: string;
|
|
11
|
+
}, (consumerName: string, scope: import("@tamagui/create-context").Scope<ContextValueType | undefined>) => ContextValueType], createSliderScope: import("@tamagui/create-context").CreateScope;
|
|
12
|
+
export declare const SliderProvider: {
|
|
13
|
+
(props: SliderContextValue & {
|
|
14
|
+
scope: import("@tamagui/create-context").Scope<SliderContextValue>;
|
|
15
|
+
children: import("react").ReactNode;
|
|
16
|
+
}): JSX.Element;
|
|
17
|
+
displayName: string;
|
|
18
|
+
}, useSliderContext: (consumerName: string, scope: import("@tamagui/create-context").Scope<SliderContextValue | undefined>) => SliderContextValue;
|
|
19
|
+
export declare const SliderOrientationProvider: {
|
|
20
|
+
(props: {
|
|
21
|
+
startEdge: 'bottom' | 'left' | 'right';
|
|
22
|
+
endEdge: 'top' | 'right' | 'left';
|
|
23
|
+
sizeProp: 'width' | 'height';
|
|
24
|
+
size: number | SizeTokens;
|
|
25
|
+
direction: number;
|
|
26
|
+
} & {
|
|
27
|
+
scope: import("@tamagui/create-context").Scope<{
|
|
28
|
+
startEdge: 'bottom' | 'left' | 'right';
|
|
29
|
+
endEdge: 'top' | 'right' | 'left';
|
|
30
|
+
sizeProp: 'width' | 'height';
|
|
31
|
+
size: number | SizeTokens;
|
|
32
|
+
direction: number;
|
|
33
|
+
}>;
|
|
34
|
+
children: import("react").ReactNode;
|
|
35
|
+
}): JSX.Element;
|
|
36
|
+
displayName: string;
|
|
37
|
+
}, useSliderOrientationContext: (consumerName: string, scope: import("@tamagui/create-context").Scope<{
|
|
38
|
+
startEdge: 'bottom' | 'left' | 'right';
|
|
39
|
+
endEdge: 'top' | 'right' | 'left';
|
|
40
|
+
sizeProp: 'width' | 'height';
|
|
41
|
+
size: number | SizeTokens;
|
|
42
|
+
direction: number;
|
|
43
|
+
} | undefined>) => {
|
|
44
|
+
startEdge: 'bottom' | 'left' | 'right';
|
|
45
|
+
endEdge: 'top' | 'right' | 'left';
|
|
46
|
+
sizeProp: 'width' | 'height';
|
|
47
|
+
size: number | SizeTokens;
|
|
48
|
+
direction: number;
|
|
49
|
+
};
|
|
50
|
+
export declare const PAGE_KEYS: string[];
|
|
51
|
+
export declare const ARROW_KEYS: string[];
|
|
52
|
+
export declare const BACK_KEYS: Record<Direction, string[]>;
|
|
53
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAG1C,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEvD,eAAO,MAAM,WAAW,WAAW,CAAA;AAEnC,eAAO,MAAO,mBAAmB;;;;;;8HAAE,iBAAiB,+CAAmC,CAAA;AAEvF,eAAO,MAAO,cAAc;;;;;;GAAE,gBAAgB,8HACQ,CAAA;AAEtD,eAAO,MAAO,yBAAyB;;mBAC1B,QAAQ,GAAG,MAAM,GAAG,OAAO;iBAC7B,KAAK,GAAG,OAAO,GAAG,MAAM;kBACvB,OAAO,GAAG,QAAQ;cACtB,MAAM,GAAG,UAAU;mBACd,MAAM;;;uBAJN,QAAQ,GAAG,MAAM,GAAG,OAAO;qBAC7B,KAAK,GAAG,OAAO,GAAG,MAAM;sBACvB,OAAO,GAAG,QAAQ;kBACtB,MAAM,GAAG,UAAU;uBACd,MAAM;;;;;GALsB,2BAA2B;eACvD,QAAQ,GAAG,MAAM,GAAG,OAAO;aAC7B,KAAK,GAAG,OAAO,GAAG,MAAM;cACvB,OAAO,GAAG,QAAQ;UACtB,MAAM,GAAG,UAAU;eACd,MAAM;;eAJN,QAAQ,GAAG,MAAM,GAAG,OAAO;aAC7B,KAAK,GAAG,OAAO,GAAG,MAAM;cACvB,OAAO,GAAG,QAAQ;UACtB,MAAM,GAAG,UAAU;eACd,MAAM;CAOjB,CAAA;AAEF,eAAO,MAAM,SAAS,UAAyB,CAAA;AAC/C,eAAO,MAAM,UAAU,UAAsD,CAAA;AAC7E,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAGjD,CAAA"}
|
package/types/index.d.ts
CHANGED
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,YAAY,EACV,WAAW,EACX,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,SAAS,CAAA"}
|
package/types/types.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare type ScopedProps<P> = P & {
|
|
|
9
9
|
export declare type Direction = 'ltr' | 'rtl';
|
|
10
10
|
export declare type SliderImplElement = HTMLElement | View;
|
|
11
11
|
declare type SliderImplPrivateProps = {
|
|
12
|
-
onSlideStart(event: GestureReponderEvent): void;
|
|
12
|
+
onSlideStart(event: GestureReponderEvent, target: 'thumb' | 'track'): void;
|
|
13
13
|
onSlideMove(event: GestureReponderEvent): void;
|
|
14
14
|
onSlideEnd(event: GestureReponderEvent): void;
|
|
15
15
|
onHomeKeyDown(event: React.KeyboardEvent): void;
|
|
@@ -25,7 +25,7 @@ export interface SliderImplProps extends SliderTrackProps, SliderImplPrivateProp
|
|
|
25
25
|
declare type SliderOrientationPrivateProps = {
|
|
26
26
|
min: number;
|
|
27
27
|
max: number;
|
|
28
|
-
onSlideStart?(value: number): void;
|
|
28
|
+
onSlideStart?(value: number, target: 'thumb' | 'track'): void;
|
|
29
29
|
onSlideMove?(value: number): void;
|
|
30
30
|
onHomeKeyDown(event: React.KeyboardEvent): void;
|
|
31
31
|
onEndKeyDown(event: React.KeyboardEvent): void;
|
|
@@ -57,7 +57,7 @@ export interface SliderProps extends Omit<SliderHorizontalProps | SliderVertical
|
|
|
57
57
|
onValueChange?(value: number[]): void;
|
|
58
58
|
}
|
|
59
59
|
export declare type SliderContextValue = {
|
|
60
|
-
size?: number | null;
|
|
60
|
+
size?: SizeTokens | number | null;
|
|
61
61
|
disabled?: boolean;
|
|
62
62
|
min: number;
|
|
63
63
|
max: number;
|
package/types/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,KAAK,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|