@tamagui/demos 1.86.5 → 1.87.0-1705782099858
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/AnimationsPresenceDemo.js +30 -13
- package/dist/cjs/AnimationsPresenceDemo.js.map +2 -2
- package/dist/cjs/AnimationsPresenceDemo.native.js +30 -13
- package/dist/cjs/AnimationsPresenceDemo.native.js.map +2 -2
- package/dist/cjs/CheckboxHeadlessDemo.js +53 -0
- package/dist/cjs/CheckboxHeadlessDemo.js.map +6 -0
- package/dist/cjs/CheckboxHeadlessDemo.native.js +54 -0
- package/dist/cjs/CheckboxHeadlessDemo.native.js.map +6 -0
- package/dist/cjs/CheckboxUnstyledDemo.js +57 -0
- package/dist/cjs/CheckboxUnstyledDemo.js.map +6 -0
- package/dist/cjs/CheckboxUnstyledDemo.native.js +58 -0
- package/dist/cjs/CheckboxUnstyledDemo.native.js.map +6 -0
- package/dist/cjs/SwitchHeadlessDemo.js +83 -0
- package/dist/cjs/SwitchHeadlessDemo.js.map +6 -0
- package/dist/cjs/SwitchHeadlessDemo.native.js +84 -0
- package/dist/cjs/SwitchHeadlessDemo.native.js.map +6 -0
- package/dist/cjs/SwitchUnstyledDemo.js +73 -0
- package/dist/cjs/SwitchUnstyledDemo.js.map +6 -0
- package/dist/cjs/SwitchUnstyledDemo.native.js +74 -0
- package/dist/cjs/SwitchUnstyledDemo.native.js.map +6 -0
- package/dist/esm/AnimationsPresenceDemo.js +30 -13
- package/dist/esm/AnimationsPresenceDemo.js.map +2 -2
- package/dist/esm/AnimationsPresenceDemo.native.js +30 -13
- package/dist/esm/AnimationsPresenceDemo.native.js.map +2 -2
- package/dist/esm/CheckboxHeadlessDemo.js +40 -0
- package/dist/esm/CheckboxHeadlessDemo.js.map +6 -0
- package/dist/esm/CheckboxHeadlessDemo.native.js +40 -0
- package/dist/esm/CheckboxHeadlessDemo.native.js.map +6 -0
- package/dist/esm/CheckboxUnstyledDemo.js +40 -0
- package/dist/esm/CheckboxUnstyledDemo.js.map +6 -0
- package/dist/esm/CheckboxUnstyledDemo.native.js +40 -0
- package/dist/esm/CheckboxUnstyledDemo.native.js.map +6 -0
- package/dist/esm/SwitchHeadlessDemo.js +67 -0
- package/dist/esm/SwitchHeadlessDemo.js.map +6 -0
- package/dist/esm/SwitchHeadlessDemo.native.js +67 -0
- package/dist/esm/SwitchHeadlessDemo.native.js.map +6 -0
- package/dist/esm/SwitchUnstyledDemo.js +55 -0
- package/dist/esm/SwitchUnstyledDemo.js.map +6 -0
- package/dist/esm/SwitchUnstyledDemo.native.js +55 -0
- package/dist/esm/SwitchUnstyledDemo.native.js.map +6 -0
- package/dist/jsx/AnimationsPresenceDemo.js +29 -12
- package/dist/jsx/AnimationsPresenceDemo.js.map +2 -2
- package/dist/jsx/AnimationsPresenceDemo.native.js +29 -12
- package/dist/jsx/AnimationsPresenceDemo.native.js.map +2 -2
- package/dist/jsx/CheckboxHeadlessDemo.js +35 -0
- package/dist/jsx/CheckboxHeadlessDemo.js.map +6 -0
- package/dist/jsx/CheckboxHeadlessDemo.native.js +35 -0
- package/dist/jsx/CheckboxHeadlessDemo.native.js.map +6 -0
- package/dist/jsx/CheckboxUnstyledDemo.js +39 -0
- package/dist/jsx/CheckboxUnstyledDemo.js.map +6 -0
- package/dist/jsx/CheckboxUnstyledDemo.native.js +39 -0
- package/dist/jsx/CheckboxUnstyledDemo.native.js.map +6 -0
- package/dist/jsx/SwitchHeadlessDemo.js +59 -0
- package/dist/jsx/SwitchHeadlessDemo.js.map +6 -0
- package/dist/jsx/SwitchHeadlessDemo.native.js +59 -0
- package/dist/jsx/SwitchHeadlessDemo.native.js.map +6 -0
- package/dist/jsx/SwitchUnstyledDemo.js +54 -0
- package/dist/jsx/SwitchUnstyledDemo.js.map +6 -0
- package/dist/jsx/SwitchUnstyledDemo.native.js +54 -0
- package/dist/jsx/SwitchUnstyledDemo.native.js.map +6 -0
- package/package.json +18 -18
- package/src/AnimationsPresenceDemo.tsx +33 -18
- package/types/AnimationsPresenceDemo.d.ts.map +1 -1
- package/types/CheckboxHeadlessDemo.d.ts.map +1 -0
- package/types/CheckboxUnstyledDemo.d.ts.map +1 -0
- package/types/SwitchHeadlessDemo.d.ts.map +1 -0
- package/types/SwitchUnstyledDemo.d.ts.map +1 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { useSwitch } from "@tamagui/switch-headless";
|
|
2
|
+
import { forwardRef, useEffect, useRef, useState } from "react";
|
|
3
|
+
import { Animated, Pressable } from "react-native";
|
|
4
|
+
import { Label, XStack, YStack } from "tamagui";
|
|
5
|
+
function SwitchHeadlessDemo() {
|
|
6
|
+
return <YStack width={200} alignItems="center" space="$3"><XStack space="$3" alignItems="center">
|
|
7
|
+
<Label htmlFor="headless">Headless</Label>
|
|
8
|
+
<HeadlessSwitch defaultChecked id="headless" />
|
|
9
|
+
</XStack></YStack>;
|
|
10
|
+
}
|
|
11
|
+
const HeadlessSwitch = forwardRef((props, ref) => {
|
|
12
|
+
const [checked, setChecked] = useState(props.defaultChecked || !1), { switchProps, switchRef, bubbleInput } = useSwitch(
|
|
13
|
+
props,
|
|
14
|
+
[checked, setChecked],
|
|
15
|
+
ref
|
|
16
|
+
), animation = useRef(new Animated.Value(checked ? 1 : 0)).current;
|
|
17
|
+
return useEffect(() => {
|
|
18
|
+
Animated.timing(animation, {
|
|
19
|
+
toValue: checked ? 1 : 0,
|
|
20
|
+
duration: 100,
|
|
21
|
+
useNativeDriver: !0
|
|
22
|
+
}).start();
|
|
23
|
+
}, [checked]), <>
|
|
24
|
+
<Pressable
|
|
25
|
+
style={{
|
|
26
|
+
width: 40,
|
|
27
|
+
height: 20,
|
|
28
|
+
borderRadius: 100,
|
|
29
|
+
backgroundColor: checked ? "lightblue" : "silver"
|
|
30
|
+
}}
|
|
31
|
+
ref={switchRef}
|
|
32
|
+
{...switchProps}
|
|
33
|
+
><Animated.View
|
|
34
|
+
style={[
|
|
35
|
+
{
|
|
36
|
+
backgroundColor: "black",
|
|
37
|
+
borderRadius: 100,
|
|
38
|
+
width: 20,
|
|
39
|
+
height: 20
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
transform: [
|
|
43
|
+
{
|
|
44
|
+
translateX: animation.interpolate({
|
|
45
|
+
inputRange: [0, 1],
|
|
46
|
+
outputRange: [0, 20]
|
|
47
|
+
})
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
]}
|
|
52
|
+
/></Pressable>
|
|
53
|
+
{bubbleInput}
|
|
54
|
+
</>;
|
|
55
|
+
});
|
|
56
|
+
export {
|
|
57
|
+
SwitchHeadlessDemo
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=SwitchHeadlessDemo.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/SwitchHeadlessDemo.tsx"],
|
|
4
|
+
"mappings": "AAAA,SAA6C,iBAAiB;AAC9D,SAAS,YAAY,WAAW,QAAQ,gBAAgB;AACxD,SAAS,UAAU,iBAAuB;AAC1C,SAAS,OAAO,QAAQ,cAAc;AAE/B,SAAS,qBAAqB;AACnC,SACE,CAAC,OAAO,OAAO,KAAK,WAAW,SAAS,MAAM,KAC5C,CAAC,OAAO,MAAM,KAAK,WAAW;AAAA,IAC5B,CAAC,MAAM,QAAQ,WAAW,QAAQ,EAAjC;AAAA,IACD,CAAC,eAAe,eAAe,GAAG,WAAW;AAAA,EAC/C,EAHC,OAIH,EALC;AAOL;AAEA,MAAM,iBAAiB,WAAsC,CAAC,OAAO,QAAQ;AAC3E,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,MAAM,kBAAkB,EAAK,GAC9D,EAAE,aAAa,WAAW,YAAY,IAAI;AAAA,IAC9C;AAAA,IACA,CAAC,SAAS,UAAU;AAAA,IACpB;AAAA,EACF,GAEM,YAAY,OAAO,IAAI,SAAS,MAAM,UAAU,IAAI,CAAC,CAAC,EAAE;AAE9D,mBAAU,MAAM;AACd,aAAS,OAAO,WAAW;AAAA,MACzB,SAAS,UAAU,IAAI;AAAA,MACvB,UAAU;AAAA,MACV,iBAAiB;AAAA,IACnB,CAAC,EAAE,MAAM;AAAA,EACX,GAAG,CAAC,OAAO,CAAC,GAGV;AAAA,IACE,CAAC;AAAA,MACC,OAAO;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,iBAAiB,UAAU,cAAc;AAAA,MAC3C;AAAA,MACA,KAAK;AAAA,UACD;AAAA,KAEJ,CAAC,SAAS;AAAA,MACR,OAAO;AAAA,QACL;AAAA,UACE,iBAAiB;AAAA,UACjB,cAAc;AAAA,UACd,OAAO;AAAA,UACP,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,WAAW;AAAA,YACT;AAAA,cACE,YAAY,UAAU,YAAY;AAAA,gBAChC,YAAY,CAAC,GAAG,CAAC;AAAA,gBACjB,aAAa,CAAC,GAAG,EAAE;AAAA,cACrB,CAAC;AAAA,YACH;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF,EACF,EA9BC;AAAA,KA+BA;AAAA,EACH;AAEJ,CAAC;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Stack, styled } from "@tamagui/core";
|
|
2
|
+
import { SwitchStyledContext, createSwitch } from "@tamagui/switch";
|
|
3
|
+
import { Label, XStack, YStack } from "tamagui";
|
|
4
|
+
const Frame = styled(Stack, {
|
|
5
|
+
context: SwitchStyledContext,
|
|
6
|
+
width: 40,
|
|
7
|
+
height: 20,
|
|
8
|
+
borderRadius: 20,
|
|
9
|
+
variants: {
|
|
10
|
+
checked: {
|
|
11
|
+
true: {
|
|
12
|
+
backgroundColor: "lightblue"
|
|
13
|
+
},
|
|
14
|
+
false: {
|
|
15
|
+
backgroundColor: "silver"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
defaultVariants: {
|
|
20
|
+
checked: !1
|
|
21
|
+
}
|
|
22
|
+
}), Thumb = styled(Stack, {
|
|
23
|
+
context: SwitchStyledContext,
|
|
24
|
+
width: 20,
|
|
25
|
+
height: 20,
|
|
26
|
+
backgroundColor: "black",
|
|
27
|
+
borderRadius: 20,
|
|
28
|
+
variants: {
|
|
29
|
+
checked: {
|
|
30
|
+
true: {
|
|
31
|
+
opacity: 0.8
|
|
32
|
+
},
|
|
33
|
+
false: {
|
|
34
|
+
opacity: 0.5
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}), Switch = createSwitch({
|
|
39
|
+
// @ts-ignore
|
|
40
|
+
Frame,
|
|
41
|
+
// @ts-ignore
|
|
42
|
+
Thumb
|
|
43
|
+
});
|
|
44
|
+
function SwitchUnstyledDemo() {
|
|
45
|
+
return <YStack width={200} alignItems="center" space="$3"><XStack space="$3" alignItems="center">
|
|
46
|
+
<Label htmlFor="unstyled-switch">Unstyled</Label>
|
|
47
|
+
<Switch defaultChecked id="unstyled-switch"><Switch.Thumb animation="quick" /></Switch>
|
|
48
|
+
</XStack></YStack>;
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
Switch,
|
|
52
|
+
SwitchUnstyledDemo
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=SwitchUnstyledDemo.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/SwitchUnstyledDemo.tsx"],
|
|
4
|
+
"mappings": "AAAA,SAAS,OAAO,cAAc;AAC9B,SAAS,qBAAqB,oBAAoB;AAClD,SAAS,OAAO,QAAQ,cAAc;AAEtC,MAAM,QAAQ,OAAO,OAAO;AAAA,EAC1B,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,UAAU;AAAA,IACR,SAAS;AAAA,MACP,MAAM;AAAA,QACJ,iBAAiB;AAAA,MACnB;AAAA,MACA,OAAO;AAAA,QACL,iBAAiB;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,EACX;AACF,CAAC,GAEK,QAAQ,OAAO,OAAO;AAAA,EAC1B,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,cAAc;AAAA,EAEd,UAAU;AAAA,IACR,SAAS;AAAA,MACP,MAAM;AAAA,QACJ,SAAS;AAAA,MACX;AAAA,MACA,OAAO;AAAA,QACL,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AACF,CAAC,GAGY,SAAS,aAAa;AAAA;AAAA,EAEjC;AAAA;AAAA,EAEA;AACF,CAAC;AAEM,SAAS,qBAAqB;AACnC,SACE,CAAC,OAAO,OAAO,KAAK,WAAW,SAAS,MAAM,KAC5C,CAAC,OAAO,MAAM,KAAK,WAAW;AAAA,IAC5B,CAAC,MAAM,QAAQ,kBAAkB,QAAQ,EAAxC;AAAA,IACD,CAAC,OAAO,eAAe,GAAG,kBACxB,CAAC,OAAO,MAAM,UAAU,QAAQ,EAClC,EAFC;AAAA,EAGH,EALC,OAMH,EAPC;AASL;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Stack, styled } from "@tamagui/core";
|
|
2
|
+
import { SwitchStyledContext, createSwitch } from "@tamagui/switch";
|
|
3
|
+
import { Label, XStack, YStack } from "tamagui";
|
|
4
|
+
const Frame = styled(Stack, {
|
|
5
|
+
context: SwitchStyledContext,
|
|
6
|
+
width: 40,
|
|
7
|
+
height: 20,
|
|
8
|
+
borderRadius: 20,
|
|
9
|
+
variants: {
|
|
10
|
+
checked: {
|
|
11
|
+
true: {
|
|
12
|
+
backgroundColor: "lightblue"
|
|
13
|
+
},
|
|
14
|
+
false: {
|
|
15
|
+
backgroundColor: "silver"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
defaultVariants: {
|
|
20
|
+
checked: !1
|
|
21
|
+
}
|
|
22
|
+
}), Thumb = styled(Stack, {
|
|
23
|
+
context: SwitchStyledContext,
|
|
24
|
+
width: 20,
|
|
25
|
+
height: 20,
|
|
26
|
+
backgroundColor: "black",
|
|
27
|
+
borderRadius: 20,
|
|
28
|
+
variants: {
|
|
29
|
+
checked: {
|
|
30
|
+
true: {
|
|
31
|
+
opacity: 0.8
|
|
32
|
+
},
|
|
33
|
+
false: {
|
|
34
|
+
opacity: 0.5
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}), Switch = createSwitch({
|
|
39
|
+
// @ts-ignore
|
|
40
|
+
Frame,
|
|
41
|
+
// @ts-ignore
|
|
42
|
+
Thumb
|
|
43
|
+
});
|
|
44
|
+
function SwitchUnstyledDemo() {
|
|
45
|
+
return <YStack width={200} alignItems="center" space="$3"><XStack space="$3" alignItems="center">
|
|
46
|
+
<Label htmlFor="unstyled-switch">Unstyled</Label>
|
|
47
|
+
<Switch defaultChecked id="unstyled-switch"><Switch.Thumb animation="quick" /></Switch>
|
|
48
|
+
</XStack></YStack>;
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
Switch,
|
|
52
|
+
SwitchUnstyledDemo
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=SwitchUnstyledDemo.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/SwitchUnstyledDemo.tsx"],
|
|
4
|
+
"mappings": "AAAA,SAAS,OAAO,cAAc;AAC9B,SAAS,qBAAqB,oBAAoB;AAClD,SAAS,OAAO,QAAQ,cAAc;AAEtC,MAAM,QAAQ,OAAO,OAAO;AAAA,EAC1B,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,UAAU;AAAA,IACR,SAAS;AAAA,MACP,MAAM;AAAA,QACJ,iBAAiB;AAAA,MACnB;AAAA,MACA,OAAO;AAAA,QACL,iBAAiB;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,EACX;AACF,CAAC,GAEK,QAAQ,OAAO,OAAO;AAAA,EAC1B,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,cAAc;AAAA,EAEd,UAAU;AAAA,IACR,SAAS;AAAA,MACP,MAAM;AAAA,QACJ,SAAS;AAAA,MACX;AAAA,MACA,OAAO;AAAA,QACL,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AACF,CAAC,GAGY,SAAS,aAAa;AAAA;AAAA,EAEjC;AAAA;AAAA,EAEA;AACF,CAAC;AAEM,SAAS,qBAAqB;AACnC,SACE,CAAC,OAAO,OAAO,KAAK,WAAW,SAAS,MAAM,KAC5C,CAAC,OAAO,MAAM,KAAK,WAAW;AAAA,IAC5B,CAAC,MAAM,QAAQ,kBAAkB,QAAQ,EAAxC;AAAA,IACD,CAAC,OAAO,eAAe,GAAG,kBACxB,CAAC,OAAO,MAAM,UAAU,QAAQ,EAClC,EAFC;AAAA,EAGH,EALC,OAMH,EAPC;AASL;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/demos",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.87.0-1705782099858",
|
|
4
4
|
"sideEffects": [
|
|
5
5
|
"*.css"
|
|
6
6
|
],
|
|
@@ -40,29 +40,29 @@
|
|
|
40
40
|
}
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@tamagui/avatar": "1.
|
|
44
|
-
"@tamagui/button": "1.
|
|
45
|
-
"@tamagui/core": "1.
|
|
46
|
-
"@tamagui/list-item": "1.
|
|
47
|
-
"@tamagui/logo": "1.
|
|
48
|
-
"@tamagui/menu": "1.
|
|
49
|
-
"@tamagui/popover": "1.
|
|
50
|
-
"@tamagui/progress": "1.
|
|
51
|
-
"@tamagui/radio-group": "1.
|
|
52
|
-
"@tamagui/select": "1.
|
|
53
|
-
"@tamagui/sheet": "1.
|
|
54
|
-
"@tamagui/site-config": "1.
|
|
55
|
-
"@tamagui/slider": "1.
|
|
56
|
-
"@tamagui/stacks": "1.
|
|
57
|
-
"@tamagui/toast": "1.
|
|
58
|
-
"tamagui": "1.
|
|
43
|
+
"@tamagui/avatar": "1.87.0-1705782099858",
|
|
44
|
+
"@tamagui/button": "1.87.0-1705782099858",
|
|
45
|
+
"@tamagui/core": "1.87.0-1705782099858",
|
|
46
|
+
"@tamagui/list-item": "1.87.0-1705782099858",
|
|
47
|
+
"@tamagui/logo": "1.87.0-1705782099858",
|
|
48
|
+
"@tamagui/menu": "1.87.0-1705782099858",
|
|
49
|
+
"@tamagui/popover": "1.87.0-1705782099858",
|
|
50
|
+
"@tamagui/progress": "1.87.0-1705782099858",
|
|
51
|
+
"@tamagui/radio-group": "1.87.0-1705782099858",
|
|
52
|
+
"@tamagui/select": "1.87.0-1705782099858",
|
|
53
|
+
"@tamagui/sheet": "1.87.0-1705782099858",
|
|
54
|
+
"@tamagui/site-config": "1.87.0-1705782099858",
|
|
55
|
+
"@tamagui/slider": "1.87.0-1705782099858",
|
|
56
|
+
"@tamagui/stacks": "1.87.0-1705782099858",
|
|
57
|
+
"@tamagui/toast": "1.87.0-1705782099858",
|
|
58
|
+
"tamagui": "1.87.0-1705782099858"
|
|
59
59
|
},
|
|
60
60
|
"peerDependencies": {
|
|
61
61
|
"react": "*",
|
|
62
62
|
"react-dom": "*"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
|
-
"@tamagui/build": "1.
|
|
65
|
+
"@tamagui/build": "1.87.0-1705782099858",
|
|
66
66
|
"react": "^18.2.0",
|
|
67
67
|
"react-dom": "^18.2.0"
|
|
68
68
|
},
|
|
@@ -12,25 +12,43 @@ import photo3 from '../../public/photo3.jpg'
|
|
|
12
12
|
|
|
13
13
|
export const images = [photo1, photo2, photo3].map((x) => x.src || x)
|
|
14
14
|
|
|
15
|
-
const
|
|
15
|
+
const GalleryItem = styled(YStack, {
|
|
16
|
+
zIndex: 1,
|
|
17
|
+
x: 0,
|
|
18
|
+
opacity: 1,
|
|
19
|
+
fullscreen: true,
|
|
20
|
+
|
|
16
21
|
variants: {
|
|
17
|
-
|
|
18
|
-
|
|
22
|
+
// 1 = right, 0 = nowhere, -1 = left
|
|
23
|
+
going: {
|
|
24
|
+
':number': (going) => ({
|
|
25
|
+
enterStyle: {
|
|
26
|
+
x: going > 0 ? 1000 : -1000,
|
|
27
|
+
opacity: 0,
|
|
28
|
+
},
|
|
29
|
+
exitStyle: {
|
|
30
|
+
zIndex: 0,
|
|
31
|
+
x: going < 0 ? 1000 : -1000,
|
|
32
|
+
opacity: 0,
|
|
33
|
+
},
|
|
34
|
+
}),
|
|
35
|
+
},
|
|
19
36
|
} as const,
|
|
20
37
|
})
|
|
21
38
|
|
|
39
|
+
const wrap = (min: number, max: number, v: number) => {
|
|
40
|
+
const rangeSize = max - min
|
|
41
|
+
return ((((v - min) % rangeSize) + rangeSize) % rangeSize) + min
|
|
42
|
+
}
|
|
43
|
+
|
|
22
44
|
export function AnimationsPresenceDemo() {
|
|
23
|
-
const [[page,
|
|
45
|
+
const [[page, going], setPage] = useState([0, 0])
|
|
24
46
|
|
|
25
47
|
const imageIndex = wrap(0, images.length, page)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
setPage([page + newDirection, newDirection])
|
|
48
|
+
const paginate = (going: number) => {
|
|
49
|
+
setPage([page + going, going])
|
|
29
50
|
}
|
|
30
51
|
|
|
31
|
-
const enterVariant = direction === 1 || direction === 0 ? 'isRight' : 'isLeft'
|
|
32
|
-
const exitVariant = direction === 1 ? 'isLeft' : 'isRight'
|
|
33
|
-
|
|
34
52
|
return (
|
|
35
53
|
<XStack
|
|
36
54
|
overflow="hidden"
|
|
@@ -40,10 +58,10 @@ export function AnimationsPresenceDemo() {
|
|
|
40
58
|
width="100%"
|
|
41
59
|
alignItems="center"
|
|
42
60
|
>
|
|
43
|
-
<AnimatePresence
|
|
44
|
-
<
|
|
61
|
+
<AnimatePresence initial={false} custom={{ going }}>
|
|
62
|
+
<GalleryItem key={page} animation="slowest" going={going}>
|
|
45
63
|
<Image source={{ uri: images[imageIndex], width: 780, height: 300 }} />
|
|
46
|
-
</
|
|
64
|
+
</GalleryItem>
|
|
47
65
|
</AnimatePresence>
|
|
48
66
|
|
|
49
67
|
<Button
|
|
@@ -55,6 +73,7 @@ export function AnimationsPresenceDemo() {
|
|
|
55
73
|
circular
|
|
56
74
|
elevate
|
|
57
75
|
onPress={() => paginate(-1)}
|
|
76
|
+
zi={100}
|
|
58
77
|
/>
|
|
59
78
|
<Button
|
|
60
79
|
accessibilityLabel="Carousel right"
|
|
@@ -65,12 +84,8 @@ export function AnimationsPresenceDemo() {
|
|
|
65
84
|
circular
|
|
66
85
|
elevate
|
|
67
86
|
onPress={() => paginate(1)}
|
|
87
|
+
zi={100}
|
|
68
88
|
/>
|
|
69
89
|
</XStack>
|
|
70
90
|
)
|
|
71
91
|
}
|
|
72
|
-
|
|
73
|
-
const wrap = (min: number, max: number, v: number) => {
|
|
74
|
-
const rangeSize = max - min
|
|
75
|
-
return ((((v - min) % rangeSize) + rangeSize) % rangeSize) + min
|
|
76
|
-
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnimationsPresenceDemo.d.ts","sourceRoot":"","sources":["../src/AnimationsPresenceDemo.tsx"],"names":[],"mappings":";AAYA,eAAO,MAAM,MAAM,OAAkD,CAAA;
|
|
1
|
+
{"version":3,"file":"AnimationsPresenceDemo.d.ts","sourceRoot":"","sources":["../src/AnimationsPresenceDemo.tsx"],"names":[],"mappings":";AAYA,eAAO,MAAM,MAAM,OAAkD,CAAA;AA+BrE,wBAAgB,sBAAsB,gBA+CrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxHeadlessDemo.d.ts","sourceRoot":"","sources":["../src/CheckboxHeadlessDemo.tsx"],"names":[],"mappings":";AASA,wBAAgB,oBAAoB,gBAUnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxUnstyledDemo.d.ts","sourceRoot":"","sources":["../src/CheckboxUnstyledDemo.tsx"],"names":[],"mappings":";AA8BA,eAAO,MAAM,QAAQ,KAGnB,CAAA;AAEF,wBAAgB,oBAAoB,gBAanC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SwitchHeadlessDemo.d.ts","sourceRoot":"","sources":["../src/SwitchHeadlessDemo.tsx"],"names":[],"mappings":";AAKA,wBAAgB,kBAAkB,gBASjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SwitchUnstyledDemo.d.ts","sourceRoot":"","sources":["../src/SwitchUnstyledDemo.tsx"],"names":[],"mappings":";AA4CA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKjB,CAAA;AAEF,wBAAgB,kBAAkB,gBAWjC"}
|