@tamagui/demos 1.2.9 → 1.2.11
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/esm/AddThemeDemo.mjs +35 -0
- package/dist/esm/AddThemeDemo.mjs.map +7 -0
- package/dist/esm/AlertDialogDemo.mjs +53 -0
- package/dist/esm/AlertDialogDemo.mjs.map +7 -0
- package/dist/esm/AnimationsDemo.mjs +89 -0
- package/dist/esm/AnimationsDemo.mjs.map +7 -0
- package/dist/esm/AnimationsEnterDemo.mjs +40 -0
- package/dist/esm/AnimationsEnterDemo.mjs.map +7 -0
- package/dist/esm/AnimationsHoverDemo.mjs +26 -0
- package/dist/esm/AnimationsHoverDemo.mjs.map +7 -0
- package/dist/esm/AnimationsPresenceDemo.mjs +62 -0
- package/dist/esm/AnimationsPresenceDemo.mjs.map +7 -0
- package/dist/esm/AnimationsTimingDemo.mjs +26 -0
- package/dist/esm/AnimationsTimingDemo.mjs.map +7 -0
- package/dist/esm/AvatarDemo.mjs +30 -0
- package/dist/esm/AvatarDemo.mjs.map +7 -0
- package/dist/esm/ButtonDemo.mjs +25 -0
- package/dist/esm/ButtonDemo.mjs.map +7 -0
- package/dist/esm/CardDemo.mjs +46 -0
- package/dist/esm/CardDemo.mjs.map +7 -0
- package/dist/esm/ColorsDemo.mjs +96 -0
- package/dist/esm/ColorsDemo.mjs.map +7 -0
- package/dist/esm/DialogDemo.mjs +72 -0
- package/dist/esm/DialogDemo.mjs.map +7 -0
- package/dist/esm/FeatherIconsDemo.mjs +33 -0
- package/dist/esm/FeatherIconsDemo.mjs.map +7 -0
- package/dist/esm/FormsDemo.mjs +20 -0
- package/dist/esm/FormsDemo.mjs.map +7 -0
- package/dist/esm/GroupDemo.mjs +25 -0
- package/dist/esm/GroupDemo.mjs.map +7 -0
- package/dist/esm/HeadingsDemo.mjs +16 -0
- package/dist/esm/HeadingsDemo.mjs.map +7 -0
- package/dist/esm/ImageDemo.mjs +9 -0
- package/dist/esm/ImageDemo.mjs.map +7 -0
- package/dist/esm/LabelDemo.mjs +18 -0
- package/dist/esm/LabelDemo.mjs.map +7 -0
- package/dist/esm/LinearGradientDemo.mjs +33 -0
- package/dist/esm/LinearGradientDemo.mjs.map +7 -0
- package/dist/esm/ListItemDemo.mjs +47 -0
- package/dist/esm/ListItemDemo.mjs.map +7 -0
- package/dist/esm/LucideIconsDemo.mjs +33 -0
- package/dist/esm/LucideIconsDemo.mjs.map +7 -0
- package/dist/esm/PopoverDemo.mjs +76 -0
- package/dist/esm/PopoverDemo.mjs.map +7 -0
- package/dist/esm/ProgressDemo.mjs +55 -0
- package/dist/esm/ProgressDemo.mjs.map +7 -0
- package/dist/esm/ScrollViewDemo.mjs +18 -0
- package/dist/esm/ScrollViewDemo.mjs.map +7 -0
- package/dist/esm/SelectDemo.mjs +80 -0
- package/dist/esm/SelectDemo.mjs.map +7 -0
- package/dist/esm/SeparatorDemo.mjs +20 -0
- package/dist/esm/SeparatorDemo.mjs.map +7 -0
- package/dist/esm/ShapesDemo.mjs +12 -0
- package/dist/esm/ShapesDemo.mjs.map +7 -0
- package/dist/esm/SheetDemo.mjs +78 -0
- package/dist/esm/SheetDemo.mjs.map +7 -0
- package/dist/esm/SliderDemo.mjs +19 -0
- package/dist/esm/SliderDemo.mjs.map +7 -0
- package/dist/esm/SpinnerDemo.mjs +12 -0
- package/dist/esm/SpinnerDemo.mjs.map +7 -0
- package/dist/esm/StacksDemo.mjs +25 -0
- package/dist/esm/StacksDemo.mjs.map +7 -0
- package/dist/esm/SwitchDemo.mjs +22 -0
- package/dist/esm/SwitchDemo.mjs.map +7 -0
- package/dist/esm/TextDemo.mjs +17 -0
- package/dist/esm/TextDemo.mjs.map +7 -0
- package/dist/esm/ThemeInverseDemo.mjs +20 -0
- package/dist/esm/ThemeInverseDemo.mjs.map +7 -0
- package/dist/esm/TokensDemo.mjs +100 -0
- package/dist/esm/TokensDemo.mjs.map +7 -0
- package/dist/esm/TooltipDemo.mjs +69 -0
- package/dist/esm/TooltipDemo.mjs.map +7 -0
- package/dist/esm/UpdateThemeDemo.mjs +55 -0
- package/dist/esm/UpdateThemeDemo.mjs.map +7 -0
- package/dist/esm/conf.mjs +5 -0
- package/dist/esm/conf.mjs.map +7 -0
- package/dist/esm/index.mjs +78 -0
- package/dist/esm/index.mjs.map +7 -0
- package/dist/esm/tamagui.config.mjs +6 -0
- package/dist/esm/tamagui.config.mjs.map +7 -0
- package/dist/esm/useOnIntersecting.mjs +68 -0
- package/dist/esm/useOnIntersecting.mjs.map +7 -0
- package/dist/jsx/AddThemeDemo.mjs +30 -0
- package/dist/jsx/AddThemeDemo.mjs.map +7 -0
- package/dist/jsx/AlertDialogDemo.mjs +45 -0
- package/dist/jsx/AlertDialogDemo.mjs.map +7 -0
- package/dist/jsx/AnimationsDemo.mjs +81 -0
- package/dist/jsx/AnimationsDemo.mjs.map +7 -0
- package/dist/jsx/AnimationsEnterDemo.mjs +35 -0
- package/dist/jsx/AnimationsEnterDemo.mjs.map +7 -0
- package/dist/jsx/AnimationsHoverDemo.mjs +21 -0
- package/dist/jsx/AnimationsHoverDemo.mjs.map +7 -0
- package/dist/jsx/AnimationsPresenceDemo.mjs +55 -0
- package/dist/jsx/AnimationsPresenceDemo.mjs.map +7 -0
- package/dist/jsx/AnimationsTimingDemo.mjs +21 -0
- package/dist/jsx/AnimationsTimingDemo.mjs.map +7 -0
- package/dist/jsx/AvatarDemo.mjs +23 -0
- package/dist/jsx/AvatarDemo.mjs.map +7 -0
- package/dist/jsx/ButtonDemo.mjs +24 -0
- package/dist/jsx/ButtonDemo.mjs.map +7 -0
- package/dist/jsx/CardDemo.mjs +39 -0
- package/dist/jsx/CardDemo.mjs.map +7 -0
- package/dist/jsx/ColorsDemo.mjs +84 -0
- package/dist/jsx/ColorsDemo.mjs.map +7 -0
- package/dist/jsx/DialogDemo.mjs +64 -0
- package/dist/jsx/DialogDemo.mjs.map +7 -0
- package/dist/jsx/FeatherIconsDemo.mjs +32 -0
- package/dist/jsx/FeatherIconsDemo.mjs.map +7 -0
- package/dist/jsx/FormsDemo.mjs +19 -0
- package/dist/jsx/FormsDemo.mjs.map +7 -0
- package/dist/jsx/GroupDemo.mjs +24 -0
- package/dist/jsx/GroupDemo.mjs.map +7 -0
- package/dist/jsx/HeadingsDemo.mjs +15 -0
- package/dist/jsx/HeadingsDemo.mjs.map +7 -0
- package/dist/jsx/ImageDemo.mjs +8 -0
- package/dist/jsx/ImageDemo.mjs.map +7 -0
- package/dist/jsx/LabelDemo.mjs +17 -0
- package/dist/jsx/LabelDemo.mjs.map +7 -0
- package/dist/jsx/LinearGradientDemo.mjs +26 -0
- package/dist/jsx/LinearGradientDemo.mjs.map +7 -0
- package/dist/jsx/ListItemDemo.mjs +40 -0
- package/dist/jsx/ListItemDemo.mjs.map +7 -0
- package/dist/jsx/LucideIconsDemo.mjs +32 -0
- package/dist/jsx/LucideIconsDemo.mjs.map +7 -0
- package/dist/jsx/PopoverDemo.mjs +67 -0
- package/dist/jsx/PopoverDemo.mjs.map +7 -0
- package/dist/jsx/ProgressDemo.mjs +50 -0
- package/dist/jsx/ProgressDemo.mjs.map +7 -0
- package/dist/jsx/ScrollViewDemo.mjs +17 -0
- package/dist/jsx/ScrollViewDemo.mjs.map +7 -0
- package/dist/jsx/SelectDemo.mjs +73 -0
- package/dist/jsx/SelectDemo.mjs.map +7 -0
- package/dist/jsx/SeparatorDemo.mjs +19 -0
- package/dist/jsx/SeparatorDemo.mjs.map +7 -0
- package/dist/jsx/ShapesDemo.mjs +11 -0
- package/dist/jsx/ShapesDemo.mjs.map +7 -0
- package/dist/jsx/SheetDemo.mjs +64 -0
- package/dist/jsx/SheetDemo.mjs.map +7 -0
- package/dist/jsx/SliderDemo.mjs +18 -0
- package/dist/jsx/SliderDemo.mjs.map +7 -0
- package/dist/jsx/SpinnerDemo.mjs +11 -0
- package/dist/jsx/SpinnerDemo.mjs.map +7 -0
- package/dist/jsx/StacksDemo.mjs +24 -0
- package/dist/jsx/StacksDemo.mjs.map +7 -0
- package/dist/jsx/SwitchDemo.mjs +21 -0
- package/dist/jsx/SwitchDemo.mjs.map +7 -0
- package/dist/jsx/TextDemo.mjs +16 -0
- package/dist/jsx/TextDemo.mjs.map +7 -0
- package/dist/jsx/ThemeInverseDemo.mjs +19 -0
- package/dist/jsx/ThemeInverseDemo.mjs.map +7 -0
- package/dist/jsx/TokensDemo.mjs +91 -0
- package/dist/jsx/TokensDemo.mjs.map +7 -0
- package/dist/jsx/TooltipDemo.mjs +64 -0
- package/dist/jsx/TooltipDemo.mjs.map +7 -0
- package/dist/jsx/UpdateThemeDemo.mjs +50 -0
- package/dist/jsx/UpdateThemeDemo.mjs.map +7 -0
- package/dist/jsx/conf.mjs +5 -0
- package/dist/jsx/conf.mjs.map +7 -0
- package/dist/jsx/index.mjs +78 -0
- package/dist/jsx/index.mjs.map +7 -0
- package/dist/jsx/tamagui.config.mjs +6 -0
- package/dist/jsx/tamagui.config.mjs.map +7 -0
- package/dist/jsx/useOnIntersecting.mjs +68 -0
- package/dist/jsx/useOnIntersecting.mjs.map +7 -0
- package/package.json +17 -17
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/AnimationsDemo.tsx"],
|
|
4
|
+
"sourcesContent": ["import { LogoIcon } from '@tamagui/logo'\nimport { Play } from '@tamagui/lucide-icons'\nimport { Button, Square, useControllableState, useEvent } from 'tamagui'\n\nexport function AnimationsDemo(props) {\n const [positionI, setPositionI] = useControllableState({\n strategy: 'most-recent-wins',\n prop: props.position,\n defaultProp: 0,\n })\n const position = positions[positionI]\n const onPress = useEvent(() => {\n setPositionI((x) => {\n return (x + 1) % positions.length\n })\n })\n\n return (\n <>\n <Square\n animation={props.animation || 'bouncy'}\n onPress={onPress}\n size={104}\n boc=\"$borderColor\"\n bw={1}\n br=\"$9\"\n bc=\"$color9\"\n hoverStyle={{\n scale: 1.1,\n }}\n pressStyle={{\n scale: 0.9,\n }}\n {...position}\n >\n {props.children || <LogoIcon downscale={0.75} />}\n </Square>\n\n <Button\n pos=\"absolute\"\n b={20}\n l={20}\n icon={Play}\n theme={props.tint}\n size=\"$5\"\n circular\n onPress={onPress}\n />\n </>\n )\n}\n\nexport const positions = [\n {\n x: 0,\n y: 0,\n scale: 1,\n rotate: '0deg',\n },\n {\n x: -50,\n y: -50,\n scale: 0.5,\n rotate: '-45deg',\n hoverStyle: {\n scale: 0.6,\n },\n pressStyle: {\n scale: 0.4,\n },\n },\n {\n x: 50,\n y: 50,\n scale: 1,\n rotate: '180deg',\n hoverStyle: {\n scale: 1.1,\n },\n pressStyle: {\n scale: 0.9,\n },\n },\n]\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,gBAAgB;AACzB,SAAS,YAAY;AACrB,SAAS,QAAQ,QAAQ,sBAAsB,gBAAgB;AAExD,SAAS,eAAe,OAAO;AACpC,QAAM,CAAC,WAAW,YAAY,IAAI,qBAAqB;AAAA,IACrD,UAAU;AAAA,IACV,MAAM,MAAM;AAAA,IACZ,aAAa;AAAA,EACf,CAAC;AACD,QAAM,WAAW,UAAU,SAAS;AACpC,QAAM,UAAU,SAAS,MAAM;AAC7B,iBAAa,CAAC,MAAM;AAClB,cAAQ,IAAI,KAAK,UAAU;AAAA,IAC7B,CAAC;AAAA,EACH,CAAC;AAED,SACE;AAAA,IACE,CAAC;AAAA,MACC,WAAW,MAAM,aAAa;AAAA,MAC9B,SAAS;AAAA,MACT,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,GAAG;AAAA,MACH,GAAG;AAAA,MACH,YAAY;AAAA,QACV,OAAO;AAAA,MACT;AAAA,MACA,YAAY;AAAA,QACV,OAAO;AAAA,MACT;AAAA,UACI;AAAA,MAEH,MAAM,YAAY,CAAC,SAAS,WAAW,MAAM,GAChD,EAjBC;AAAA,IAmBD,CAAC;AAAA,MACC,IAAI;AAAA,MACJ,GAAG;AAAA,MACH,GAAG;AAAA,MACH,MAAM;AAAA,MACN,OAAO,MAAM;AAAA,MACb,KAAK;AAAA,MACL;AAAA,MACA,SAAS;AAAA,IACX;AAAA,EACF;AAEJ;AAEO,MAAM,YAAY;AAAA,EACvB;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,YAAY;AAAA,MACV,OAAO;AAAA,IACT;AAAA,IACA,YAAY;AAAA,MACV,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,YAAY;AAAA,MACV,OAAO;AAAA,IACT;AAAA,IACA,YAAY;AAAA,MACV,OAAO;AAAA,IACT;AAAA,EACF;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { LogoIcon } from "@tamagui/logo";
|
|
2
|
+
import { useRef, useState } from "react";
|
|
3
|
+
import { Button, Square, YStack } from "tamagui";
|
|
4
|
+
import { useIsIntersecting } from "./useOnIntersecting";
|
|
5
|
+
function AnimationsEnterDemo(props) {
|
|
6
|
+
const ref = useRef(null);
|
|
7
|
+
const hasIntersected = useIsIntersecting(ref, { once: true });
|
|
8
|
+
const [key, setKey] = useState(0);
|
|
9
|
+
if (!hasIntersected) {
|
|
10
|
+
return <YStack ref={ref} />;
|
|
11
|
+
}
|
|
12
|
+
return <>
|
|
13
|
+
<Square
|
|
14
|
+
key={key}
|
|
15
|
+
enterStyle={{
|
|
16
|
+
scale: 1.5,
|
|
17
|
+
y: -10,
|
|
18
|
+
opacity: 0
|
|
19
|
+
}}
|
|
20
|
+
animation="bouncy"
|
|
21
|
+
elevation="$4"
|
|
22
|
+
size={110}
|
|
23
|
+
opacity={1}
|
|
24
|
+
scale={1}
|
|
25
|
+
y={0}
|
|
26
|
+
bc="$pink10"
|
|
27
|
+
br="$9"
|
|
28
|
+
>{props.children ?? <LogoIcon downscale={0.75} />}</Square>
|
|
29
|
+
<Button size="$3" mt="$4" onPress={() => setKey(Math.random())}>Re-mount</Button>
|
|
30
|
+
</>;
|
|
31
|
+
}
|
|
32
|
+
export {
|
|
33
|
+
AnimationsEnterDemo
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=AnimationsEnterDemo.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/AnimationsEnterDemo.tsx"],
|
|
4
|
+
"sourcesContent": ["import { LogoIcon } from '@tamagui/logo'\nimport { useRef, useState } from 'react'\nimport { Button, Square, YStack } from 'tamagui'\n\nimport { useIsIntersecting } from './useOnIntersecting'\n\nexport function AnimationsEnterDemo(props: any) {\n const ref = useRef<HTMLElement>(null)\n const hasIntersected = useIsIntersecting(ref, { once: true })\n const [key, setKey] = useState(0)\n\n if (!hasIntersected) {\n return <YStack ref={ref} />\n }\n\n return (\n <>\n <Square\n key={key}\n enterStyle={{\n scale: 1.5,\n y: -10,\n opacity: 0,\n }}\n animation=\"bouncy\"\n elevation=\"$4\"\n size={110}\n opacity={1}\n scale={1}\n y={0}\n bc=\"$pink10\"\n br=\"$9\"\n >\n {props.children ?? <LogoIcon downscale={0.75} />}\n </Square>\n\n <Button size=\"$3\" mt=\"$4\" onPress={() => setKey(Math.random())}>\n Re-mount\n </Button>\n </>\n )\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,gBAAgB;AACzB,SAAS,QAAQ,gBAAgB;AACjC,SAAS,QAAQ,QAAQ,cAAc;AAEvC,SAAS,yBAAyB;AAE3B,SAAS,oBAAoB,OAAY;AAC9C,QAAM,MAAM,OAAoB,IAAI;AACpC,QAAM,iBAAiB,kBAAkB,KAAK,EAAE,MAAM,KAAK,CAAC;AAC5D,QAAM,CAAC,KAAK,MAAM,IAAI,SAAS,CAAC;AAEhC,MAAI,CAAC,gBAAgB;AACnB,WAAO,CAAC,OAAO,KAAK,KAAK;AAAA,EAC3B;AAEA,SACE;AAAA,IACE,CAAC;AAAA,MACC,KAAK;AAAA,MACL,YAAY;AAAA,QACV,OAAO;AAAA,QACP,GAAG;AAAA,QACH,SAAS;AAAA,MACX;AAAA,MACA,UAAU;AAAA,MACV,UAAU;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,MACT,OAAO;AAAA,MACP,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MAEF,MAAM,YAAY,CAAC,SAAS,WAAW,MAAM,GAChD,EAjBC;AAAA,IAmBD,CAAC,OAAO,KAAK,KAAK,GAAG,KAAK,SAAS,MAAM,OAAO,KAAK,OAAO,CAAC,GAAG,QAEhE,EAFC;AAAA,EAGH;AAEJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { LogoIcon } from "@tamagui/logo";
|
|
2
|
+
import { Square } from "tamagui";
|
|
3
|
+
function AnimationsHoverDemo() {
|
|
4
|
+
return <Square
|
|
5
|
+
bc="$pink10"
|
|
6
|
+
animation="bouncy"
|
|
7
|
+
elevation="$4"
|
|
8
|
+
size={110}
|
|
9
|
+
br="$9"
|
|
10
|
+
hoverStyle={{
|
|
11
|
+
scale: 1.2
|
|
12
|
+
}}
|
|
13
|
+
pressStyle={{
|
|
14
|
+
scale: 0.9
|
|
15
|
+
}}
|
|
16
|
+
><LogoIcon downscale={0.75} /></Square>;
|
|
17
|
+
}
|
|
18
|
+
export {
|
|
19
|
+
AnimationsHoverDemo
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=AnimationsHoverDemo.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/AnimationsHoverDemo.tsx"],
|
|
4
|
+
"sourcesContent": ["import { LogoIcon } from '@tamagui/logo'\nimport { Square } from 'tamagui'\n\nexport function AnimationsHoverDemo() {\n return (\n <Square\n bc=\"$pink10\"\n animation=\"bouncy\"\n elevation=\"$4\"\n size={110}\n br=\"$9\"\n hoverStyle={{\n scale: 1.2,\n }}\n pressStyle={{\n scale: 0.9,\n }}\n >\n <LogoIcon downscale={0.75} />\n </Square>\n )\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,gBAAgB;AACzB,SAAS,cAAc;AAEhB,SAAS,sBAAsB;AACpC,SACE,CAAC;AAAA,IACC,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA,IACV,MAAM;AAAA,IACN,GAAG;AAAA,IACH,YAAY;AAAA,MACV,OAAO;AAAA,IACT;AAAA,IACA,YAAY;AAAA,MACV,OAAO;AAAA,IACT;AAAA,GAEA,CAAC,SAAS,WAAW,MAAM,EAC7B,EAdC;AAgBL;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { AnimatePresence } from "@tamagui/animate-presence";
|
|
2
|
+
import { ArrowLeft, ArrowRight } from "@tamagui/lucide-icons";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { Button, Image, XStack, YStack, styled } from "tamagui";
|
|
5
|
+
import photo1 from "../../public/photo1.jpg";
|
|
6
|
+
import photo2 from "../../public/photo2.jpg";
|
|
7
|
+
import photo3 from "../../public/photo3.jpg";
|
|
8
|
+
const images = [photo1, photo2, photo3].map((x) => x.src || x);
|
|
9
|
+
const YStackEnterable = styled(YStack, {
|
|
10
|
+
variants: {
|
|
11
|
+
isLeft: { true: { x: -300, opacity: 0 } },
|
|
12
|
+
isRight: { true: { x: 300, opacity: 0 } }
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
function AnimationsPresenceDemo() {
|
|
16
|
+
const [[page, direction], setPage] = useState([0, 0]);
|
|
17
|
+
const imageIndex = wrap(0, images.length, page);
|
|
18
|
+
const paginate = (newDirection) => {
|
|
19
|
+
setPage([page + newDirection, newDirection]);
|
|
20
|
+
};
|
|
21
|
+
const enterVariant = direction === 1 || direction === 0 ? "isRight" : "isLeft";
|
|
22
|
+
const exitVariant = direction === 1 ? "isLeft" : "isRight";
|
|
23
|
+
return <XStack ov="hidden" bc="#000" pos="relative" h={300} w="100%" ai="center">
|
|
24
|
+
<AnimatePresence enterVariant={enterVariant} exitVariant={exitVariant}><YStackEnterable key={page} animation="bouncy" fullscreen x={0} o={1}><Image src={images[imageIndex]} width={780} height={300} /></YStackEnterable></AnimatePresence>
|
|
25
|
+
<Button
|
|
26
|
+
accessibilityLabel="Carousel left"
|
|
27
|
+
icon={ArrowLeft}
|
|
28
|
+
size="$5"
|
|
29
|
+
pos="absolute"
|
|
30
|
+
l="$4"
|
|
31
|
+
circular
|
|
32
|
+
elevate
|
|
33
|
+
onPress={() => paginate(-1)}
|
|
34
|
+
/>
|
|
35
|
+
<Button
|
|
36
|
+
accessibilityLabel="Carousel right"
|
|
37
|
+
icon={ArrowRight}
|
|
38
|
+
size="$5"
|
|
39
|
+
pos="absolute"
|
|
40
|
+
r="$4"
|
|
41
|
+
circular
|
|
42
|
+
elevate
|
|
43
|
+
onPress={() => paginate(1)}
|
|
44
|
+
/>
|
|
45
|
+
</XStack>;
|
|
46
|
+
}
|
|
47
|
+
const wrap = (min, max, v) => {
|
|
48
|
+
const rangeSize = max - min;
|
|
49
|
+
return ((v - min) % rangeSize + rangeSize) % rangeSize + min;
|
|
50
|
+
};
|
|
51
|
+
export {
|
|
52
|
+
AnimationsPresenceDemo,
|
|
53
|
+
images
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=AnimationsPresenceDemo.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/AnimationsPresenceDemo.tsx"],
|
|
4
|
+
"sourcesContent": ["import { AnimatePresence } from '@tamagui/animate-presence'\nimport { ArrowLeft, ArrowRight } from '@tamagui/lucide-icons'\nimport { useState } from 'react'\nimport { Button, Image, XStack, YStack, styled } from 'tamagui'\n\n// @ts-ignore\nimport photo1 from '../../public/photo1.jpg'\n// @ts-ignore\nimport photo2 from '../../public/photo2.jpg'\n// @ts-ignore\nimport photo3 from '../../public/photo3.jpg'\n\nexport const images = [photo1, photo2, photo3].map((x) => x.src || x)\n\nconst YStackEnterable = styled(YStack, {\n variants: {\n isLeft: { true: { x: -300, opacity: 0 } },\n isRight: { true: { x: 300, opacity: 0 } },\n } as const,\n})\n\nexport function AnimationsPresenceDemo() {\n const [[page, direction], setPage] = useState([0, 0])\n\n const imageIndex = wrap(0, images.length, page)\n\n const paginate = (newDirection: number) => {\n setPage([page + newDirection, newDirection])\n }\n\n const enterVariant = direction === 1 || direction === 0 ? 'isRight' : 'isLeft'\n const exitVariant = direction === 1 ? 'isLeft' : 'isRight'\n\n return (\n <XStack ov=\"hidden\" bc=\"#000\" pos=\"relative\" h={300} w=\"100%\" ai=\"center\">\n <AnimatePresence enterVariant={enterVariant} exitVariant={exitVariant}>\n <YStackEnterable key={page} animation=\"bouncy\" fullscreen x={0} o={1}>\n <Image src={images[imageIndex]} width={780} height={300} />\n </YStackEnterable>\n </AnimatePresence>\n\n <Button\n accessibilityLabel=\"Carousel left\"\n icon={ArrowLeft}\n size=\"$5\"\n pos=\"absolute\"\n l=\"$4\"\n circular\n elevate\n onPress={() => paginate(-1)}\n />\n <Button\n accessibilityLabel=\"Carousel right\"\n icon={ArrowRight}\n size=\"$5\"\n pos=\"absolute\"\n r=\"$4\"\n circular\n elevate\n onPress={() => paginate(1)}\n />\n </XStack>\n )\n}\n\nconst wrap = (min: number, max: number, v: number) => {\n const rangeSize = max - min\n return ((((v - min) % rangeSize) + rangeSize) % rangeSize) + min\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,uBAAuB;AAChC,SAAS,WAAW,kBAAkB;AACtC,SAAS,gBAAgB;AACzB,SAAS,QAAQ,OAAO,QAAQ,QAAQ,cAAc;AAGtD,OAAO,YAAY;AAEnB,OAAO,YAAY;AAEnB,OAAO,YAAY;AAEZ,MAAM,SAAS,CAAC,QAAQ,QAAQ,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;AAEpE,MAAM,kBAAkB,OAAO,QAAQ;AAAA,EACrC,UAAU;AAAA,IACR,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,EAAE,EAAE;AAAA,IACxC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,SAAS,EAAE,EAAE;AAAA,EAC1C;AACF,CAAC;AAEM,SAAS,yBAAyB;AACvC,QAAM,CAAC,CAAC,MAAM,SAAS,GAAG,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AAEpD,QAAM,aAAa,KAAK,GAAG,OAAO,QAAQ,IAAI;AAE9C,QAAM,WAAW,CAAC,iBAAyB;AACzC,YAAQ,CAAC,OAAO,cAAc,YAAY,CAAC;AAAA,EAC7C;AAEA,QAAM,eAAe,cAAc,KAAK,cAAc,IAAI,YAAY;AACtE,QAAM,cAAc,cAAc,IAAI,WAAW;AAEjD,SACE,CAAC,OAAO,GAAG,SAAS,GAAG,OAAO,IAAI,WAAW,GAAG,KAAK,EAAE,OAAO,GAAG;AAAA,IAC/D,CAAC,gBAAgB,cAAc,cAAc,aAAa,aACxD,CAAC,gBAAgB,KAAK,MAAM,UAAU,SAAS,WAAW,GAAG,GAAG,GAAG,GACjE,CAAC,MAAM,KAAK,OAAO,UAAU,GAAG,OAAO,KAAK,QAAQ,KAAK,EAC3D,EAFC,gBAGH,EAJC;AAAA,IAMD,CAAC;AAAA,MACC,mBAAmB;AAAA,MACnB,MAAM;AAAA,MACN,KAAK;AAAA,MACL,IAAI;AAAA,MACJ,EAAE;AAAA,MACF;AAAA,MACA;AAAA,MACA,SAAS,MAAM,SAAS,EAAE;AAAA,IAC5B;AAAA,IACA,CAAC;AAAA,MACC,mBAAmB;AAAA,MACnB,MAAM;AAAA,MACN,KAAK;AAAA,MACL,IAAI;AAAA,MACJ,EAAE;AAAA,MACF;AAAA,MACA;AAAA,MACA,SAAS,MAAM,SAAS,CAAC;AAAA,IAC3B;AAAA,EACF,EA3BC;AA6BL;AAEA,MAAM,OAAO,CAAC,KAAa,KAAa,MAAc;AACpD,QAAM,YAAY,MAAM;AACxB,WAAW,IAAI,OAAO,YAAa,aAAa,YAAa;AAC/D;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { LogoIcon } from "@tamagui/logo";
|
|
2
|
+
import { Square } from "tamagui";
|
|
3
|
+
function AnimationsTimingDemo() {
|
|
4
|
+
return <Square
|
|
5
|
+
bc="$pink10"
|
|
6
|
+
animation="100ms"
|
|
7
|
+
elevation="$4"
|
|
8
|
+
size={110}
|
|
9
|
+
br="$9"
|
|
10
|
+
hoverStyle={{
|
|
11
|
+
scale: 1.2
|
|
12
|
+
}}
|
|
13
|
+
pressStyle={{
|
|
14
|
+
scale: 0.9
|
|
15
|
+
}}
|
|
16
|
+
><LogoIcon downscale={0.75} /></Square>;
|
|
17
|
+
}
|
|
18
|
+
export {
|
|
19
|
+
AnimationsTimingDemo
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=AnimationsTimingDemo.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/AnimationsTimingDemo.tsx"],
|
|
4
|
+
"sourcesContent": ["import { LogoIcon } from '@tamagui/logo'\nimport { Square } from 'tamagui'\n\nexport function AnimationsTimingDemo() {\n return (\n <Square\n bc=\"$pink10\"\n animation=\"100ms\"\n elevation=\"$4\"\n size={110}\n br=\"$9\"\n hoverStyle={{\n scale: 1.2,\n }}\n pressStyle={{\n scale: 0.9,\n }}\n >\n <LogoIcon downscale={0.75} />\n </Square>\n )\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,gBAAgB;AACzB,SAAS,cAAc;AAEhB,SAAS,uBAAuB;AACrC,SACE,CAAC;AAAA,IACC,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA,IACV,MAAM;AAAA,IACN,GAAG;AAAA,IACH,YAAY;AAAA,MACV,OAAO;AAAA,IACT;AAAA,IACA,YAAY;AAAA,MACV,OAAO;AAAA,IACT;AAAA,GAEA,CAAC,SAAS,WAAW,MAAM,EAC7B,EAdC;AAgBL;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Avatar, XStack } from "tamagui";
|
|
2
|
+
function AvatarDemo() {
|
|
3
|
+
return <XStack ai="center" space="$6">
|
|
4
|
+
<Avatar circular size="$10">
|
|
5
|
+
<Avatar.Image
|
|
6
|
+
accessibilityLabel="Cam"
|
|
7
|
+
src={"https://images.unsplash.com/photo-1548142813-c348350df52b?&w=150&h=150&dpr=2&q=80"}
|
|
8
|
+
/>
|
|
9
|
+
<Avatar.Fallback backgroundColor="$blue10" />
|
|
10
|
+
</Avatar>
|
|
11
|
+
<Avatar circular size="$8">
|
|
12
|
+
<Avatar.Image
|
|
13
|
+
accessibilityLabel="Nate Wienert"
|
|
14
|
+
src={"https://images.unsplash.com/photo-1531384441138-2736e62e0919?&w=100&h=100&dpr=2&q=80"}
|
|
15
|
+
/>
|
|
16
|
+
<Avatar.Fallback delayMs={600} backgroundColor="$blue10" />
|
|
17
|
+
</Avatar>
|
|
18
|
+
</XStack>;
|
|
19
|
+
}
|
|
20
|
+
export {
|
|
21
|
+
AvatarDemo
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=AvatarDemo.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/AvatarDemo.tsx"],
|
|
4
|
+
"sourcesContent": ["import React from 'react'\nimport { Avatar, XStack } from 'tamagui'\n\nexport function AvatarDemo() {\n return (\n <XStack ai=\"center\" space=\"$6\">\n <Avatar circular size=\"$10\">\n <Avatar.Image\n accessibilityLabel=\"Cam\"\n src=\"https://images.unsplash.com/photo-1548142813-c348350df52b?&w=150&h=150&dpr=2&q=80\"\n />\n <Avatar.Fallback backgroundColor=\"$blue10\" />\n </Avatar>\n\n <Avatar circular size=\"$8\">\n <Avatar.Image\n accessibilityLabel=\"Nate Wienert\"\n src=\"https://images.unsplash.com/photo-1531384441138-2736e62e0919?&w=100&h=100&dpr=2&q=80\"\n />\n <Avatar.Fallback delayMs={600} backgroundColor=\"$blue10\" />\n </Avatar>\n </XStack>\n )\n}\n"],
|
|
5
|
+
"mappings": "AACA,SAAS,QAAQ,cAAc;AAExB,SAAS,aAAa;AAC3B,SACE,CAAC,OAAO,GAAG,SAAS,MAAM;AAAA,IACxB,CAAC,OAAO,SAAS,KAAK;AAAA,MACpB,CAAC,OAAO;AAAA,QACN,mBAAmB;AAAA,QACnB,KAAI;AAAA,MACN;AAAA,MACA,CAAC,OAAO,SAAS,gBAAgB,UAAU;AAAA,IAC7C,EANC;AAAA,IAQD,CAAC,OAAO,SAAS,KAAK;AAAA,MACpB,CAAC,OAAO;AAAA,QACN,mBAAmB;AAAA,QACnB,KAAI;AAAA,MACN;AAAA,MACA,CAAC,OAAO,SAAS,SAAS,KAAK,gBAAgB,UAAU;AAAA,IAC3D,EANC;AAAA,EAOH,EAhBC;AAkBL;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Activity, Airplay } from "@tamagui/lucide-icons";
|
|
2
|
+
import { Button, XGroup, XStack, YStack } from "tamagui";
|
|
3
|
+
function ButtonDemo(props) {
|
|
4
|
+
return <YStack p="$3" space {...props}>
|
|
5
|
+
<Button>Plain</Button>
|
|
6
|
+
<Button als="center" icon={Airplay} size="$6">Large</Button>
|
|
7
|
+
<XGroup size="$3">
|
|
8
|
+
<Button w="50%" theme="alt2">Alt2</Button>
|
|
9
|
+
<Button w="50%" theme="yellow">Yellow</Button>
|
|
10
|
+
</XGroup>
|
|
11
|
+
<XStack space="$2">
|
|
12
|
+
<Button themeInverse size="$3">Small Inverse</Button>
|
|
13
|
+
<Button iconAfter={Activity} size="$3">After</Button>
|
|
14
|
+
</XStack>
|
|
15
|
+
<XGroup>
|
|
16
|
+
<Button w="50%" size="$2" disabled o={0.5}>disabled</Button>
|
|
17
|
+
<Button w="50%" size="$2" chromeless>chromeless</Button>
|
|
18
|
+
</XGroup>
|
|
19
|
+
</YStack>;
|
|
20
|
+
}
|
|
21
|
+
export {
|
|
22
|
+
ButtonDemo
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=ButtonDemo.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/ButtonDemo.tsx"],
|
|
4
|
+
"sourcesContent": ["import { Activity, Airplay } from '@tamagui/lucide-icons'\nimport { Button, XGroup, XStack, YStack } from 'tamagui'\n\nexport function ButtonDemo(props) {\n return (\n <YStack p=\"$3\" space {...props}>\n <Button>Plain</Button>\n <Button als=\"center\" icon={Airplay} size=\"$6\">\n Large\n </Button>\n <XGroup size=\"$3\">\n <Button w=\"50%\" theme=\"alt2\">\n Alt2\n </Button>\n <Button w=\"50%\" theme=\"yellow\">\n Yellow\n </Button>\n </XGroup>\n <XStack space=\"$2\">\n <Button themeInverse size=\"$3\">\n Small Inverse\n </Button>\n <Button iconAfter={Activity} size=\"$3\">\n After\n </Button>\n </XStack>\n <XGroup>\n <Button w=\"50%\" size=\"$2\" disabled o={0.5}>\n disabled\n </Button>\n <Button w=\"50%\" size=\"$2\" chromeless>\n chromeless\n </Button>\n </XGroup>\n </YStack>\n )\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,UAAU,eAAe;AAClC,SAAS,QAAQ,QAAQ,QAAQ,cAAc;AAExC,SAAS,WAAW,OAAO;AAChC,SACE,CAAC,OAAO,EAAE,KAAK,UAAU;AAAA,IACvB,CAAC,OAAO,KAAK,EAAZ;AAAA,IACD,CAAC,OAAO,IAAI,SAAS,MAAM,SAAS,KAAK,KAAK,KAE9C,EAFC;AAAA,IAGD,CAAC,OAAO,KAAK;AAAA,MACX,CAAC,OAAO,EAAE,MAAM,MAAM,OAAO,IAE7B,EAFC;AAAA,MAGD,CAAC,OAAO,EAAE,MAAM,MAAM,SAAS,MAE/B,EAFC;AAAA,IAGH,EAPC;AAAA,IAQD,CAAC,OAAO,MAAM;AAAA,MACZ,CAAC,OAAO,aAAa,KAAK,KAAK,aAE/B,EAFC;AAAA,MAGD,CAAC,OAAO,WAAW,UAAU,KAAK,KAAK,KAEvC,EAFC;AAAA,IAGH,EAPC;AAAA,IAQD,CAAC;AAAA,MACC,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,SAAS,GAAG,KAAK,QAE3C,EAFC;AAAA,MAGD,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,WAAW,UAErC,EAFC;AAAA,IAGH,EAPC;AAAA,EAQH,EA7BC;AA+BL;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Button, Card, H2, Image, Paragraph, XStack } from "tamagui";
|
|
2
|
+
function CardDemo() {
|
|
3
|
+
return <XStack $sm={{ flexDirection: "column" }} px="$4" space>
|
|
4
|
+
<DemoCard
|
|
5
|
+
animation="bouncy"
|
|
6
|
+
size="$4"
|
|
7
|
+
w={250}
|
|
8
|
+
h={300}
|
|
9
|
+
scale={0.9}
|
|
10
|
+
hoverStyle={{ scale: 0.925 }}
|
|
11
|
+
pressStyle={{ scale: 0.875 }}
|
|
12
|
+
/>
|
|
13
|
+
<DemoCard size="$5" w={250} h={300} />
|
|
14
|
+
</XStack>;
|
|
15
|
+
}
|
|
16
|
+
function DemoCard(props) {
|
|
17
|
+
return <Card theme="dark" elevate size="$4" bordered {...props}>
|
|
18
|
+
<Card.Header padded>
|
|
19
|
+
<H2>Sony A7IV</H2>
|
|
20
|
+
<Paragraph theme="alt2">Now available</Paragraph>
|
|
21
|
+
</Card.Header>
|
|
22
|
+
<Card.Footer padded>
|
|
23
|
+
<XStack f={1} />
|
|
24
|
+
<Button br="$10">Purchase</Button>
|
|
25
|
+
</Card.Footer>
|
|
26
|
+
<Card.Background><Image
|
|
27
|
+
pos="absolute"
|
|
28
|
+
width={300}
|
|
29
|
+
height={300}
|
|
30
|
+
resizeMode="contain"
|
|
31
|
+
als="center"
|
|
32
|
+
src="data:image/jpeg;base64,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"
|
|
33
|
+
/></Card.Background>
|
|
34
|
+
</Card>;
|
|
35
|
+
}
|
|
36
|
+
export {
|
|
37
|
+
CardDemo
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=CardDemo.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/CardDemo.tsx"],
|
|
4
|
+
"sourcesContent": ["import { Button, Card, CardProps, H2, Image, Paragraph, XStack } from 'tamagui'\n\nexport function CardDemo() {\n return (\n <XStack $sm={{ flexDirection: 'column' }} px=\"$4\" space>\n <DemoCard\n animation=\"bouncy\"\n size=\"$4\"\n w={250}\n h={300}\n scale={0.9}\n hoverStyle={{ scale: 0.925 }}\n pressStyle={{ scale: 0.875 }}\n />\n <DemoCard size=\"$5\" w={250} h={300} />\n </XStack>\n )\n}\n\nfunction DemoCard(props: CardProps) {\n return (\n <Card theme=\"dark\" elevate size=\"$4\" bordered {...props}>\n <Card.Header padded>\n <H2>Sony A7IV</H2>\n <Paragraph theme=\"alt2\">Now available</Paragraph>\n </Card.Header>\n <Card.Footer padded>\n <XStack f={1} />\n <Button br=\"$10\">Purchase</Button>\n </Card.Footer>\n <Card.Background>\n <Image\n pos=\"absolute\"\n width={300}\n height={300}\n resizeMode=\"contain\"\n als=\"center\"\n src=\"data:image/jpeg;base64,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\"\n />\n </Card.Background>\n </Card>\n )\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,QAAQ,MAAiB,IAAI,OAAO,WAAW,cAAc;AAE/D,SAAS,WAAW;AACzB,SACE,CAAC,OAAO,KAAK,EAAE,eAAe,SAAS,GAAG,GAAG,KAAK;AAAA,IAChD,CAAC;AAAA,MACC,UAAU;AAAA,MACV,KAAK;AAAA,MACL,GAAG;AAAA,MACH,GAAG;AAAA,MACH,OAAO;AAAA,MACP,YAAY,EAAE,OAAO,MAAM;AAAA,MAC3B,YAAY,EAAE,OAAO,MAAM;AAAA,IAC7B;AAAA,IACA,CAAC,SAAS,KAAK,KAAK,GAAG,KAAK,GAAG,KAAK;AAAA,EACtC,EAXC;AAaL;AAEA,SAAS,SAAS,OAAkB;AAClC,SACE,CAAC,KAAK,MAAM,OAAO,QAAQ,KAAK,KAAK,aAAa;AAAA,IAChD,CAAC,KAAK,OAAO;AAAA,MACX,CAAC,GAAG,SAAS,EAAZ;AAAA,MACD,CAAC,UAAU,MAAM,OAAO,aAAa,EAApC;AAAA,IACH,EAHC,KAAK;AAAA,IAIN,CAAC,KAAK,OAAO;AAAA,MACX,CAAC,OAAO,GAAG,GAAG;AAAA,MACd,CAAC,OAAO,GAAG,MAAM,QAAQ,EAAxB;AAAA,IACH,EAHC,KAAK;AAAA,IAIN,CAAC,KAAK,WACJ,CAAC;AAAA,MACC,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,IAAI;AAAA,MACJ,IAAI;AAAA,IACN,EACF,EATC,KAAK;AAAA,EAUR,EAnBC;AAqBL;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import {
|
|
2
|
+
H2,
|
|
3
|
+
Paragraph,
|
|
4
|
+
Separator,
|
|
5
|
+
Square,
|
|
6
|
+
XStack,
|
|
7
|
+
YStack,
|
|
8
|
+
getTokens,
|
|
9
|
+
getVariableValue
|
|
10
|
+
} from "tamagui";
|
|
11
|
+
const colorGroups = ["orange", "yellow", "green", "blue", "purple", "pink", "red"];
|
|
12
|
+
function ColorsDemo() {
|
|
13
|
+
const colors = getTokens({ prefixed: false }).color;
|
|
14
|
+
const [colorsLight, colorsDark] = [getColors(colors), getColors(colors, true)];
|
|
15
|
+
return <YStack mt="$4" space="$8">
|
|
16
|
+
<ColorsRow title="Light" colors={colorsLight} />
|
|
17
|
+
<Separator />
|
|
18
|
+
<ColorsRow title="Dark" colors={colorsDark} />
|
|
19
|
+
</YStack>;
|
|
20
|
+
}
|
|
21
|
+
function ColorsRow({ title, colors }) {
|
|
22
|
+
return <YStack space $sm={{ space: "$2" }}>
|
|
23
|
+
<H2 size="$2">{title}</H2>
|
|
24
|
+
<XStack space als="center">
|
|
25
|
+
<YStack space $sm={{ space: "$2" }} als="center">
|
|
26
|
+
{colors.map((group, index) => {
|
|
27
|
+
return <XStack space="$2" key={index}>{group.map((color) => {
|
|
28
|
+
return <Square
|
|
29
|
+
key={`${color.key}${index}`}
|
|
30
|
+
br="$2"
|
|
31
|
+
size="$4"
|
|
32
|
+
h="$4"
|
|
33
|
+
bc={getVariableValue(color)}
|
|
34
|
+
$sm={{
|
|
35
|
+
size: "$2"
|
|
36
|
+
}}
|
|
37
|
+
$xs={{
|
|
38
|
+
size: "$1"
|
|
39
|
+
}}
|
|
40
|
+
/>;
|
|
41
|
+
})}</XStack>;
|
|
42
|
+
})}
|
|
43
|
+
<XStack space="$2" als="center">{new Array(13).fill(0).slice(1).map((_, index) => {
|
|
44
|
+
return <Paragraph
|
|
45
|
+
col="$color10"
|
|
46
|
+
ta="center"
|
|
47
|
+
w="$4"
|
|
48
|
+
$sm={{
|
|
49
|
+
w: "$2"
|
|
50
|
+
}}
|
|
51
|
+
$xs={{
|
|
52
|
+
w: "$1"
|
|
53
|
+
}}
|
|
54
|
+
key={index}
|
|
55
|
+
>{index}</Paragraph>;
|
|
56
|
+
})}</XStack>
|
|
57
|
+
</YStack>
|
|
58
|
+
<YStack space="$4" mt="$2">{colorGroups.map((name) => <Paragraph
|
|
59
|
+
theme={name}
|
|
60
|
+
col="$color10"
|
|
61
|
+
h="$4"
|
|
62
|
+
rotate="-10deg"
|
|
63
|
+
$sm={{
|
|
64
|
+
h: "$2"
|
|
65
|
+
}}
|
|
66
|
+
$xs={{
|
|
67
|
+
h: "$1"
|
|
68
|
+
}}
|
|
69
|
+
key={name}
|
|
70
|
+
>{name}</Paragraph>)}</YStack>
|
|
71
|
+
</XStack>
|
|
72
|
+
</YStack>;
|
|
73
|
+
}
|
|
74
|
+
function getColors(colors, dark = false) {
|
|
75
|
+
return colorGroups.map((group) => {
|
|
76
|
+
return Object.keys(colors).filter(
|
|
77
|
+
(color) => color.startsWith(group) && (dark ? color.endsWith("Dark") : !color.endsWith("Dark"))
|
|
78
|
+
).map((key) => colors[key]);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
export {
|
|
82
|
+
ColorsDemo
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=ColorsDemo.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/ColorsDemo.tsx"],
|
|
4
|
+
"sourcesContent": ["import { Variable } from '@tamagui/core'\nimport {\n H2,\n Paragraph,\n Separator,\n Square,\n XStack,\n YStack,\n getTokens,\n getVariableValue,\n} from 'tamagui'\n\nconst colorGroups = ['orange', 'yellow', 'green', 'blue', 'purple', 'pink', 'red']\n\nexport function ColorsDemo() {\n const colors = getTokens({ prefixed: false }).color\n const [colorsLight, colorsDark] = [getColors(colors), getColors(colors, true)]\n\n return (\n <YStack mt=\"$4\" space=\"$8\">\n <ColorsRow title=\"Light\" colors={colorsLight} />\n <Separator />\n <ColorsRow title=\"Dark\" colors={colorsDark} />\n </YStack>\n )\n}\n\nfunction ColorsRow({ title, colors }: { title: string; colors: Variable[][] }) {\n return (\n <YStack space $sm={{ space: '$2' }}>\n <H2 size=\"$2\">{title}</H2>\n\n <XStack space als=\"center\">\n <YStack space $sm={{ space: '$2' }} als=\"center\">\n {colors.map((group, index) => {\n return (\n <XStack space=\"$2\" key={index}>\n {group.map((color) => {\n return (\n <Square\n key={`${color.key}${index}`}\n br=\"$2\"\n size=\"$4\"\n h=\"$4\"\n bc={getVariableValue(color)}\n $sm={{\n size: '$2',\n }}\n $xs={{\n size: '$1',\n }}\n />\n )\n })}\n </XStack>\n )\n })}\n\n <XStack space=\"$2\" als=\"center\">\n {new Array(13)\n .fill(0)\n .slice(1)\n .map((_, index) => {\n return (\n <Paragraph\n col=\"$color10\"\n ta=\"center\"\n w=\"$4\"\n $sm={{\n w: '$2',\n }}\n $xs={{\n w: '$1',\n }}\n key={index}\n >\n {index}\n </Paragraph>\n )\n })}\n </XStack>\n </YStack>\n\n <YStack space=\"$4\" mt=\"$2\">\n {colorGroups.map((name) => (\n <Paragraph\n theme={name as any}\n col=\"$color10\"\n h=\"$4\"\n rotate=\"-10deg\"\n $sm={{\n h: '$2',\n }}\n $xs={{\n h: '$1',\n }}\n key={name}\n >\n {name}\n </Paragraph>\n ))}\n </YStack>\n </XStack>\n </YStack>\n )\n}\n\nfunction getColors(colors: Record<string, Variable>, dark = false) {\n return colorGroups.map((group) => {\n return Object.keys(colors)\n .filter(\n (color) =>\n color.startsWith(group) &&\n (dark ? color.endsWith('Dark') : !color.endsWith('Dark'))\n )\n .map((key) => colors[key])\n })\n}\n"],
|
|
5
|
+
"mappings": "AACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,MAAM,cAAc,CAAC,UAAU,UAAU,SAAS,QAAQ,UAAU,QAAQ,KAAK;AAE1E,SAAS,aAAa;AAC3B,QAAM,SAAS,UAAU,EAAE,UAAU,MAAM,CAAC,EAAE;AAC9C,QAAM,CAAC,aAAa,UAAU,IAAI,CAAC,UAAU,MAAM,GAAG,UAAU,QAAQ,IAAI,CAAC;AAE7E,SACE,CAAC,OAAO,GAAG,KAAK,MAAM;AAAA,IACpB,CAAC,UAAU,MAAM,QAAQ,QAAQ,aAAa;AAAA,IAC9C,CAAC,UAAU;AAAA,IACX,CAAC,UAAU,MAAM,OAAO,QAAQ,YAAY;AAAA,EAC9C,EAJC;AAML;AAEA,SAAS,UAAU,EAAE,OAAO,OAAO,GAA4C;AAC7E,SACE,CAAC,OAAO,MAAM,KAAK,EAAE,OAAO,KAAK;AAAA,IAC/B,CAAC,GAAG,KAAK,MAAM,MAAM,EAApB;AAAA,IAED,CAAC,OAAO,MAAM,IAAI;AAAA,MAChB,CAAC,OAAO,MAAM,KAAK,EAAE,OAAO,KAAK,GAAG,IAAI;AAAA,SACrC,OAAO,IAAI,CAAC,OAAO,UAAU;AAC5B,iBACE,CAAC,OAAO,MAAM,KAAK,KAAK,QACrB,MAAM,IAAI,CAAC,UAAU;AACpB,mBACE,CAAC;AAAA,cACC,KAAK,GAAG,MAAM,MAAM;AAAA,cACpB,GAAG;AAAA,cACH,KAAK;AAAA,cACL,EAAE;AAAA,cACF,IAAI,iBAAiB,KAAK;AAAA,cAC1B,KAAK;AAAA,gBACH,MAAM;AAAA,cACR;AAAA,cACA,KAAK;AAAA,gBACH,MAAM;AAAA,cACR;AAAA,YACF;AAAA,UAEJ,CAAC,EACH,EAlBC;AAAA,QAoBL,CAAC;AAAA,QAED,CAAC,OAAO,MAAM,KAAK,IAAI,UACpB,IAAI,MAAM,EAAE,EACV,KAAK,CAAC,EACN,MAAM,CAAC,EACP,IAAI,CAAC,GAAG,UAAU;AACjB,iBACE,CAAC;AAAA,YACC,IAAI;AAAA,YACJ,GAAG;AAAA,YACH,EAAE;AAAA,YACF,KAAK;AAAA,cACH,GAAG;AAAA,YACL;AAAA,YACA,KAAK;AAAA,cACH,GAAG;AAAA,YACL;AAAA,YACA,KAAK;AAAA,YAEJ,MACH,EAbC;AAAA,QAeL,CAAC,EACL,EAtBC;AAAA,MAuBH,EAhDC;AAAA,MAkDD,CAAC,OAAO,MAAM,KAAK,GAAG,MACnB,YAAY,IAAI,CAAC,SAChB,CAAC;AAAA,QACC,OAAO;AAAA,QACP,IAAI;AAAA,QACJ,EAAE;AAAA,QACF,OAAO;AAAA,QACP,KAAK;AAAA,UACH,GAAG;AAAA,QACL;AAAA,QACA,KAAK;AAAA,UACH,GAAG;AAAA,QACL;AAAA,QACA,KAAK;AAAA,QAEJ,KACH,EAdC,UAeF,EACH,EAlBC;AAAA,IAmBH,EAtEC;AAAA,EAuEH,EA1EC;AA4EL;AAEA,SAAS,UAAU,QAAkC,OAAO,OAAO;AACjE,SAAO,YAAY,IAAI,CAAC,UAAU;AAChC,WAAO,OAAO,KAAK,MAAM,EACtB;AAAA,MACC,CAAC,UACC,MAAM,WAAW,KAAK,MACrB,OAAO,MAAM,SAAS,MAAM,IAAI,CAAC,MAAM,SAAS,MAAM;AAAA,IAC3D,EACC,IAAI,CAAC,QAAQ,OAAO,GAAG,CAAC;AAAA,EAC7B,CAAC;AACH;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { X } from "@tamagui/lucide-icons";
|
|
2
|
+
import {
|
|
3
|
+
Adapt,
|
|
4
|
+
Button,
|
|
5
|
+
Dialog,
|
|
6
|
+
Fieldset,
|
|
7
|
+
Input,
|
|
8
|
+
Label,
|
|
9
|
+
Sheet,
|
|
10
|
+
Unspaced,
|
|
11
|
+
YStack
|
|
12
|
+
} from "tamagui";
|
|
13
|
+
import { SelectDemo } from "./SelectDemo";
|
|
14
|
+
function DialogDemo() {
|
|
15
|
+
return <Dialog modal>
|
|
16
|
+
<Dialog.Trigger asChild><Button>Edit Profile</Button></Dialog.Trigger>
|
|
17
|
+
<Adapt when="sm" platform="touch"><Sheet zIndex={2e5} modal dismissOnSnapToBottom>
|
|
18
|
+
<Sheet.Frame padding="$4" space><Adapt.Contents /></Sheet.Frame>
|
|
19
|
+
<Sheet.Overlay />
|
|
20
|
+
</Sheet></Adapt>
|
|
21
|
+
<Dialog.Portal>
|
|
22
|
+
<Dialog.Overlay
|
|
23
|
+
key="overlay"
|
|
24
|
+
animation="quick"
|
|
25
|
+
o={0.5}
|
|
26
|
+
enterStyle={{ o: 0 }}
|
|
27
|
+
exitStyle={{ o: 0 }}
|
|
28
|
+
/>
|
|
29
|
+
<Dialog.Content
|
|
30
|
+
bordered
|
|
31
|
+
elevate
|
|
32
|
+
key="content"
|
|
33
|
+
animation={[
|
|
34
|
+
"quick",
|
|
35
|
+
{
|
|
36
|
+
opacity: {
|
|
37
|
+
overshootClamping: true
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
]}
|
|
41
|
+
enterStyle={{ x: 0, y: -20, opacity: 0, scale: 0.9 }}
|
|
42
|
+
exitStyle={{ x: 0, y: 10, opacity: 0, scale: 0.95 }}
|
|
43
|
+
space
|
|
44
|
+
>
|
|
45
|
+
<Dialog.Title>Edit profile</Dialog.Title>
|
|
46
|
+
<Dialog.Description>Make changes to your profile here. Click save when you're done.</Dialog.Description>
|
|
47
|
+
<Fieldset space="$4" horizontal>
|
|
48
|
+
<Label w={160} justifyContent="flex-end" htmlFor="name">Name</Label>
|
|
49
|
+
<Input f={1} id="name" defaultValue="Nate Wienert" />
|
|
50
|
+
</Fieldset>
|
|
51
|
+
<Fieldset space="$4" horizontal>
|
|
52
|
+
<Label w={160} justifyContent="flex-end" htmlFor="username">Food</Label>
|
|
53
|
+
<SelectDemo />
|
|
54
|
+
</Fieldset>
|
|
55
|
+
<YStack ai="flex-end" mt="$2"><Dialog.Close displayWhenAdapted asChild><Button theme="alt1" aria-label="Close">Save changes</Button></Dialog.Close></YStack>
|
|
56
|
+
<Unspaced><Dialog.Close asChild><Button pos="absolute" t="$2" r="$2" size="$3" circular icon={X} /></Dialog.Close></Unspaced>
|
|
57
|
+
</Dialog.Content>
|
|
58
|
+
</Dialog.Portal>
|
|
59
|
+
</Dialog>;
|
|
60
|
+
}
|
|
61
|
+
export {
|
|
62
|
+
DialogDemo
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=DialogDemo.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/DialogDemo.tsx"],
|
|
4
|
+
"sourcesContent": ["import { X } from '@tamagui/lucide-icons'\nimport {\n Adapt,\n Button,\n Dialog,\n Fieldset,\n H2,\n Input,\n Label,\n Sheet,\n Unspaced,\n YStack,\n} from 'tamagui'\n\nimport { SelectDemo } from './SelectDemo'\n\nexport function DialogDemo() {\n return (\n <Dialog modal>\n <Dialog.Trigger asChild>\n <Button>Edit Profile</Button>\n </Dialog.Trigger>\n\n <Adapt when=\"sm\" platform=\"touch\">\n <Sheet zIndex={200000} modal dismissOnSnapToBottom>\n <Sheet.Frame padding=\"$4\" space>\n <Adapt.Contents />\n </Sheet.Frame>\n <Sheet.Overlay />\n </Sheet>\n </Adapt>\n\n <Dialog.Portal>\n <Dialog.Overlay\n key=\"overlay\"\n animation=\"quick\"\n o={0.5}\n enterStyle={{ o: 0 }}\n exitStyle={{ o: 0 }}\n />\n\n <Dialog.Content\n bordered\n elevate\n key=\"content\"\n animation={[\n 'quick',\n {\n opacity: {\n overshootClamping: true,\n },\n },\n ]}\n enterStyle={{ x: 0, y: -20, opacity: 0, scale: 0.9 }}\n exitStyle={{ x: 0, y: 10, opacity: 0, scale: 0.95 }}\n space\n >\n <Dialog.Title>Edit profile</Dialog.Title>\n <Dialog.Description>\n Make changes to your profile here. Click save when you're done.\n </Dialog.Description>\n <Fieldset space=\"$4\" horizontal>\n <Label w={160} justifyContent=\"flex-end\" htmlFor=\"name\">\n Name\n </Label>\n <Input f={1} id=\"name\" defaultValue=\"Nate Wienert\" />\n </Fieldset>\n <Fieldset space=\"$4\" horizontal>\n <Label w={160} justifyContent=\"flex-end\" htmlFor=\"username\">\n Food\n </Label>\n <SelectDemo />\n </Fieldset>\n\n <YStack ai=\"flex-end\" mt=\"$2\">\n <Dialog.Close displayWhenAdapted asChild>\n <Button theme=\"alt1\" aria-label=\"Close\">\n Save changes\n </Button>\n </Dialog.Close>\n </YStack>\n\n <Unspaced>\n <Dialog.Close asChild>\n <Button pos=\"absolute\" t=\"$2\" r=\"$2\" size=\"$3\" circular icon={X} />\n </Dialog.Close>\n </Unspaced>\n </Dialog.Content>\n </Dialog.Portal>\n </Dialog>\n )\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,SAAS;AAClB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,kBAAkB;AAEpB,SAAS,aAAa;AAC3B,SACE,CAAC,OAAO;AAAA,IACN,CAAC,OAAO,QAAQ,QACd,CAAC,OAAO,YAAY,EAAnB,OACH,EAFC,OAAO;AAAA,IAIR,CAAC,MAAM,KAAK,KAAK,SAAS,QACxB,CAAC,MAAM,QAAQ,KAAQ,MAAM;AAAA,MAC3B,CAAC,MAAM,MAAM,QAAQ,KAAK,MACxB,CAAC,MAAM,SAAS,EAClB,EAFC,MAAM;AAAA,MAGP,CAAC,MAAM,QAAQ;AAAA,IACjB,EALC,MAMH,EAPC;AAAA,IASD,CAAC,OAAO;AAAA,MACN,CAAC,OAAO;AAAA,QACN,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,GAAG;AAAA,QACH,YAAY,EAAE,GAAG,EAAE;AAAA,QACnB,WAAW,EAAE,GAAG,EAAE;AAAA,MACpB;AAAA,MAEA,CAAC,OAAO;AAAA,QACN;AAAA,QACA;AAAA,QACA,IAAI;AAAA,QACJ,WAAW;AAAA,UACT;AAAA,UACA;AAAA,YACE,SAAS;AAAA,cACP,mBAAmB;AAAA,YACrB;AAAA,UACF;AAAA,QACF;AAAA,QACA,YAAY,EAAE,GAAG,GAAG,GAAG,KAAK,SAAS,GAAG,OAAO,IAAI;AAAA,QACnD,WAAW,EAAE,GAAG,GAAG,GAAG,IAAI,SAAS,GAAG,OAAO,KAAK;AAAA,QAClD;AAAA;AAAA,QAEA,CAAC,OAAO,MAAM,YAAY,EAAzB,OAAO;AAAA,QACR,CAAC,OAAO,YAAY,+DAEpB,EAFC,OAAO;AAAA,QAGR,CAAC,SAAS,MAAM,KAAK;AAAA,UACnB,CAAC,MAAM,GAAG,KAAK,eAAe,WAAW,QAAQ,OAAO,IAExD,EAFC;AAAA,UAGD,CAAC,MAAM,GAAG,GAAG,GAAG,OAAO,aAAa,eAAe;AAAA,QACrD,EALC;AAAA,QAMD,CAAC,SAAS,MAAM,KAAK;AAAA,UACnB,CAAC,MAAM,GAAG,KAAK,eAAe,WAAW,QAAQ,WAAW,IAE5D,EAFC;AAAA,UAGD,CAAC,WAAW;AAAA,QACd,EALC;AAAA,QAOD,CAAC,OAAO,GAAG,WAAW,GAAG,KACvB,CAAC,OAAO,MAAM,mBAAmB,QAC/B,CAAC,OAAO,MAAM,OAAO,WAAW,QAAQ,YAExC,EAFC,OAGH,EAJC,OAAO,MAKV,EANC;AAAA,QAQD,CAAC,SACC,CAAC,OAAO,MAAM,QACZ,CAAC,OAAO,IAAI,WAAW,EAAE,KAAK,EAAE,KAAK,KAAK,KAAK,SAAS,MAAM,GAAG,EACnE,EAFC,OAAO,MAGV,EAJC;AAAA,MAKH,EA9CC,OAAO;AAAA,IA+CV,EAxDC,OAAO;AAAA,EAyDV,EAvEC;AAyEL;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import * as FeatherIcons from "@tamagui/lucide-icons";
|
|
2
|
+
import { useMemo, useState } from "react";
|
|
3
|
+
import { ScrollView } from "react-native";
|
|
4
|
+
import { Grid, Input, Paragraph, Spacer, YStack, useDebounceValue } from "tamagui";
|
|
5
|
+
const featherIcons = Object.keys(FeatherIcons).map((name) => ({
|
|
6
|
+
key: name.toLowerCase(),
|
|
7
|
+
name,
|
|
8
|
+
Icon: FeatherIcons[name]
|
|
9
|
+
}));
|
|
10
|
+
function FeatherIconsDemo() {
|
|
11
|
+
const [searchRaw, setSearch] = useState("");
|
|
12
|
+
const search = useDebounceValue(searchRaw, 400);
|
|
13
|
+
const size = 100;
|
|
14
|
+
const iconsMemo = useMemo(() => {
|
|
15
|
+
const icons = featherIcons.filter((x) => x.key.startsWith(search.toLowerCase()));
|
|
16
|
+
return icons.map(({ Icon, name }) => {
|
|
17
|
+
return <YStack h={size} ai="center" jc="center" key={name}>
|
|
18
|
+
<Icon size={size * 0.25} />
|
|
19
|
+
<Spacer />
|
|
20
|
+
<Paragraph size="$2" o={0.5}>{name}</Paragraph>
|
|
21
|
+
</YStack>;
|
|
22
|
+
});
|
|
23
|
+
}, [search]);
|
|
24
|
+
return <YStack als="stretch" p="$4" pb="$0" space>
|
|
25
|
+
<Input value={searchRaw} onChangeText={setSearch} placeholder="Search..." />
|
|
26
|
+
<YStack h={420}><ScrollView><Grid itemMinWidth={size}>{iconsMemo}</Grid></ScrollView></YStack>
|
|
27
|
+
</YStack>;
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
FeatherIconsDemo
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=FeatherIconsDemo.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/FeatherIconsDemo.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as FeatherIcons from '@tamagui/lucide-icons'\nimport React from 'react'\nimport { useMemo, useState } from 'react'\nimport { ScrollView } from 'react-native'\nimport { Grid, Input, Paragraph, Spacer, YStack, useDebounceValue } from 'tamagui'\n\nconst featherIcons = Object.keys(FeatherIcons).map((name) => ({\n key: name.toLowerCase(),\n name,\n Icon: FeatherIcons[name],\n}))\n\nexport function FeatherIconsDemo() {\n const [searchRaw, setSearch] = useState('')\n const search = useDebounceValue(searchRaw, 400)\n\n const size = 100\n\n const iconsMemo = useMemo(() => {\n const icons = featherIcons.filter((x) => x.key.startsWith(search.toLowerCase()))\n return icons.map(({ Icon, name }) => {\n return (\n <YStack h={size} ai=\"center\" jc=\"center\" key={name}>\n <Icon size={size * 0.25} />\n <Spacer />\n <Paragraph size=\"$2\" o={0.5}>\n {name}\n </Paragraph>\n </YStack>\n )\n })\n }, [search])\n\n return (\n <YStack als=\"stretch\" p=\"$4\" pb=\"$0\" space>\n <Input value={searchRaw} onChangeText={setSearch} placeholder=\"Search...\" />\n\n <YStack h={420}>\n <ScrollView>\n <Grid itemMinWidth={size}>{iconsMemo}</Grid>\n </ScrollView>\n </YStack>\n </YStack>\n )\n}\n"],
|
|
5
|
+
"mappings": "AAAA,YAAY,kBAAkB;AAE9B,SAAS,SAAS,gBAAgB;AAClC,SAAS,kBAAkB;AAC3B,SAAS,MAAM,OAAO,WAAW,QAAQ,QAAQ,wBAAwB;AAEzE,MAAM,eAAe,OAAO,KAAK,YAAY,EAAE,IAAI,CAAC,UAAU;AAAA,EAC5D,KAAK,KAAK,YAAY;AAAA,EACtB;AAAA,EACA,MAAM,aAAa,IAAI;AACzB,EAAE;AAEK,SAAS,mBAAmB;AACjC,QAAM,CAAC,WAAW,SAAS,IAAI,SAAS,EAAE;AAC1C,QAAM,SAAS,iBAAiB,WAAW,GAAG;AAE9C,QAAM,OAAO;AAEb,QAAM,YAAY,QAAQ,MAAM;AAC9B,UAAM,QAAQ,aAAa,OAAO,CAAC,MAAM,EAAE,IAAI,WAAW,OAAO,YAAY,CAAC,CAAC;AAC/E,WAAO,MAAM,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM;AACnC,aACE,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,KAAK;AAAA,QAC5C,CAAC,KAAK,MAAM,OAAO,MAAM;AAAA,QACzB,CAAC,OAAO;AAAA,QACR,CAAC,UAAU,KAAK,KAAK,GAAG,MACrB,KACH,EAFC;AAAA,MAGH,EANC;AAAA,IAQL,CAAC;AAAA,EACH,GAAG,CAAC,MAAM,CAAC;AAEX,SACE,CAAC,OAAO,IAAI,UAAU,EAAE,KAAK,GAAG,KAAK;AAAA,IACnC,CAAC,MAAM,OAAO,WAAW,cAAc,WAAW,YAAY,YAAY;AAAA,IAE1E,CAAC,OAAO,GAAG,KACT,CAAC,WACC,CAAC,KAAK,cAAc,OAAO,UAAU,EAApC,KACH,EAFC,WAGH,EAJC;AAAA,EAKH,EARC;AAUL;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Button, Input, TextArea, XStack, YStack } from "tamagui";
|
|
2
|
+
function FormsDemo() {
|
|
3
|
+
return <YStack w={200} mih={250} overflow="hidden" space="$2" m="$3" p="$2">
|
|
4
|
+
<FormDemo size="$2" />
|
|
5
|
+
<FormDemo size="$3" />
|
|
6
|
+
<FormDemo size="$4" />
|
|
7
|
+
<TextArea mih={140} placeholder="Enter your details..." numberOfLines={4} />
|
|
8
|
+
</YStack>;
|
|
9
|
+
}
|
|
10
|
+
function FormDemo(props) {
|
|
11
|
+
return <XStack ai="center" space="$2">
|
|
12
|
+
<Input f={1} size={props.size} placeholder={`Size ${props.size}...`} />
|
|
13
|
+
<Button size={props.size}>Go</Button>
|
|
14
|
+
</XStack>;
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
FormsDemo
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=FormsDemo.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/FormsDemo.tsx"],
|
|
4
|
+
"sourcesContent": ["import { Button, Input, SizeTokens, TextArea, XStack, YStack } from 'tamagui'\n\nexport function FormsDemo() {\n return (\n <YStack w={200} mih={250} overflow=\"hidden\" space=\"$2\" m=\"$3\" p=\"$2\">\n <FormDemo size=\"$2\" />\n <FormDemo size=\"$3\" />\n <FormDemo size=\"$4\" />\n <TextArea mih={140} placeholder=\"Enter your details...\" numberOfLines={4} />\n </YStack>\n )\n}\n\nfunction FormDemo(props: { size: SizeTokens }) {\n return (\n <XStack ai=\"center\" space=\"$2\">\n <Input f={1} size={props.size} placeholder={`Size ${props.size}...`} />\n <Button size={props.size}>Go</Button>\n </XStack>\n )\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,QAAQ,OAAmB,UAAU,QAAQ,cAAc;AAE7D,SAAS,YAAY;AAC1B,SACE,CAAC,OAAO,GAAG,KAAK,KAAK,KAAK,SAAS,SAAS,MAAM,KAAK,EAAE,KAAK,EAAE;AAAA,IAC9D,CAAC,SAAS,KAAK,KAAK;AAAA,IACpB,CAAC,SAAS,KAAK,KAAK;AAAA,IACpB,CAAC,SAAS,KAAK,KAAK;AAAA,IACpB,CAAC,SAAS,KAAK,KAAK,YAAY,wBAAwB,eAAe,GAAG;AAAA,EAC5E,EALC;AAOL;AAEA,SAAS,SAAS,OAA6B;AAC7C,SACE,CAAC,OAAO,GAAG,SAAS,MAAM;AAAA,IACxB,CAAC,MAAM,GAAG,GAAG,MAAM,MAAM,MAAM,aAAa,QAAQ,MAAM,WAAW;AAAA,IACrE,CAAC,OAAO,MAAM,MAAM,MAAM,EAAE,EAA3B;AAAA,EACH,EAHC;AAKL;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|