@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.
Files changed (165) hide show
  1. package/dist/esm/AddThemeDemo.mjs +35 -0
  2. package/dist/esm/AddThemeDemo.mjs.map +7 -0
  3. package/dist/esm/AlertDialogDemo.mjs +53 -0
  4. package/dist/esm/AlertDialogDemo.mjs.map +7 -0
  5. package/dist/esm/AnimationsDemo.mjs +89 -0
  6. package/dist/esm/AnimationsDemo.mjs.map +7 -0
  7. package/dist/esm/AnimationsEnterDemo.mjs +40 -0
  8. package/dist/esm/AnimationsEnterDemo.mjs.map +7 -0
  9. package/dist/esm/AnimationsHoverDemo.mjs +26 -0
  10. package/dist/esm/AnimationsHoverDemo.mjs.map +7 -0
  11. package/dist/esm/AnimationsPresenceDemo.mjs +62 -0
  12. package/dist/esm/AnimationsPresenceDemo.mjs.map +7 -0
  13. package/dist/esm/AnimationsTimingDemo.mjs +26 -0
  14. package/dist/esm/AnimationsTimingDemo.mjs.map +7 -0
  15. package/dist/esm/AvatarDemo.mjs +30 -0
  16. package/dist/esm/AvatarDemo.mjs.map +7 -0
  17. package/dist/esm/ButtonDemo.mjs +25 -0
  18. package/dist/esm/ButtonDemo.mjs.map +7 -0
  19. package/dist/esm/CardDemo.mjs +46 -0
  20. package/dist/esm/CardDemo.mjs.map +7 -0
  21. package/dist/esm/ColorsDemo.mjs +96 -0
  22. package/dist/esm/ColorsDemo.mjs.map +7 -0
  23. package/dist/esm/DialogDemo.mjs +72 -0
  24. package/dist/esm/DialogDemo.mjs.map +7 -0
  25. package/dist/esm/FeatherIconsDemo.mjs +33 -0
  26. package/dist/esm/FeatherIconsDemo.mjs.map +7 -0
  27. package/dist/esm/FormsDemo.mjs +20 -0
  28. package/dist/esm/FormsDemo.mjs.map +7 -0
  29. package/dist/esm/GroupDemo.mjs +25 -0
  30. package/dist/esm/GroupDemo.mjs.map +7 -0
  31. package/dist/esm/HeadingsDemo.mjs +16 -0
  32. package/dist/esm/HeadingsDemo.mjs.map +7 -0
  33. package/dist/esm/ImageDemo.mjs +9 -0
  34. package/dist/esm/ImageDemo.mjs.map +7 -0
  35. package/dist/esm/LabelDemo.mjs +18 -0
  36. package/dist/esm/LabelDemo.mjs.map +7 -0
  37. package/dist/esm/LinearGradientDemo.mjs +33 -0
  38. package/dist/esm/LinearGradientDemo.mjs.map +7 -0
  39. package/dist/esm/ListItemDemo.mjs +47 -0
  40. package/dist/esm/ListItemDemo.mjs.map +7 -0
  41. package/dist/esm/LucideIconsDemo.mjs +33 -0
  42. package/dist/esm/LucideIconsDemo.mjs.map +7 -0
  43. package/dist/esm/PopoverDemo.mjs +76 -0
  44. package/dist/esm/PopoverDemo.mjs.map +7 -0
  45. package/dist/esm/ProgressDemo.mjs +55 -0
  46. package/dist/esm/ProgressDemo.mjs.map +7 -0
  47. package/dist/esm/ScrollViewDemo.mjs +18 -0
  48. package/dist/esm/ScrollViewDemo.mjs.map +7 -0
  49. package/dist/esm/SelectDemo.mjs +80 -0
  50. package/dist/esm/SelectDemo.mjs.map +7 -0
  51. package/dist/esm/SeparatorDemo.mjs +20 -0
  52. package/dist/esm/SeparatorDemo.mjs.map +7 -0
  53. package/dist/esm/ShapesDemo.mjs +12 -0
  54. package/dist/esm/ShapesDemo.mjs.map +7 -0
  55. package/dist/esm/SheetDemo.mjs +78 -0
  56. package/dist/esm/SheetDemo.mjs.map +7 -0
  57. package/dist/esm/SliderDemo.mjs +19 -0
  58. package/dist/esm/SliderDemo.mjs.map +7 -0
  59. package/dist/esm/SpinnerDemo.mjs +12 -0
  60. package/dist/esm/SpinnerDemo.mjs.map +7 -0
  61. package/dist/esm/StacksDemo.mjs +25 -0
  62. package/dist/esm/StacksDemo.mjs.map +7 -0
  63. package/dist/esm/SwitchDemo.mjs +22 -0
  64. package/dist/esm/SwitchDemo.mjs.map +7 -0
  65. package/dist/esm/TextDemo.mjs +17 -0
  66. package/dist/esm/TextDemo.mjs.map +7 -0
  67. package/dist/esm/ThemeInverseDemo.mjs +20 -0
  68. package/dist/esm/ThemeInverseDemo.mjs.map +7 -0
  69. package/dist/esm/TokensDemo.mjs +100 -0
  70. package/dist/esm/TokensDemo.mjs.map +7 -0
  71. package/dist/esm/TooltipDemo.mjs +69 -0
  72. package/dist/esm/TooltipDemo.mjs.map +7 -0
  73. package/dist/esm/UpdateThemeDemo.mjs +55 -0
  74. package/dist/esm/UpdateThemeDemo.mjs.map +7 -0
  75. package/dist/esm/conf.mjs +5 -0
  76. package/dist/esm/conf.mjs.map +7 -0
  77. package/dist/esm/index.mjs +78 -0
  78. package/dist/esm/index.mjs.map +7 -0
  79. package/dist/esm/tamagui.config.mjs +6 -0
  80. package/dist/esm/tamagui.config.mjs.map +7 -0
  81. package/dist/esm/useOnIntersecting.mjs +68 -0
  82. package/dist/esm/useOnIntersecting.mjs.map +7 -0
  83. package/dist/jsx/AddThemeDemo.mjs +30 -0
  84. package/dist/jsx/AddThemeDemo.mjs.map +7 -0
  85. package/dist/jsx/AlertDialogDemo.mjs +45 -0
  86. package/dist/jsx/AlertDialogDemo.mjs.map +7 -0
  87. package/dist/jsx/AnimationsDemo.mjs +81 -0
  88. package/dist/jsx/AnimationsDemo.mjs.map +7 -0
  89. package/dist/jsx/AnimationsEnterDemo.mjs +35 -0
  90. package/dist/jsx/AnimationsEnterDemo.mjs.map +7 -0
  91. package/dist/jsx/AnimationsHoverDemo.mjs +21 -0
  92. package/dist/jsx/AnimationsHoverDemo.mjs.map +7 -0
  93. package/dist/jsx/AnimationsPresenceDemo.mjs +55 -0
  94. package/dist/jsx/AnimationsPresenceDemo.mjs.map +7 -0
  95. package/dist/jsx/AnimationsTimingDemo.mjs +21 -0
  96. package/dist/jsx/AnimationsTimingDemo.mjs.map +7 -0
  97. package/dist/jsx/AvatarDemo.mjs +23 -0
  98. package/dist/jsx/AvatarDemo.mjs.map +7 -0
  99. package/dist/jsx/ButtonDemo.mjs +24 -0
  100. package/dist/jsx/ButtonDemo.mjs.map +7 -0
  101. package/dist/jsx/CardDemo.mjs +39 -0
  102. package/dist/jsx/CardDemo.mjs.map +7 -0
  103. package/dist/jsx/ColorsDemo.mjs +84 -0
  104. package/dist/jsx/ColorsDemo.mjs.map +7 -0
  105. package/dist/jsx/DialogDemo.mjs +64 -0
  106. package/dist/jsx/DialogDemo.mjs.map +7 -0
  107. package/dist/jsx/FeatherIconsDemo.mjs +32 -0
  108. package/dist/jsx/FeatherIconsDemo.mjs.map +7 -0
  109. package/dist/jsx/FormsDemo.mjs +19 -0
  110. package/dist/jsx/FormsDemo.mjs.map +7 -0
  111. package/dist/jsx/GroupDemo.mjs +24 -0
  112. package/dist/jsx/GroupDemo.mjs.map +7 -0
  113. package/dist/jsx/HeadingsDemo.mjs +15 -0
  114. package/dist/jsx/HeadingsDemo.mjs.map +7 -0
  115. package/dist/jsx/ImageDemo.mjs +8 -0
  116. package/dist/jsx/ImageDemo.mjs.map +7 -0
  117. package/dist/jsx/LabelDemo.mjs +17 -0
  118. package/dist/jsx/LabelDemo.mjs.map +7 -0
  119. package/dist/jsx/LinearGradientDemo.mjs +26 -0
  120. package/dist/jsx/LinearGradientDemo.mjs.map +7 -0
  121. package/dist/jsx/ListItemDemo.mjs +40 -0
  122. package/dist/jsx/ListItemDemo.mjs.map +7 -0
  123. package/dist/jsx/LucideIconsDemo.mjs +32 -0
  124. package/dist/jsx/LucideIconsDemo.mjs.map +7 -0
  125. package/dist/jsx/PopoverDemo.mjs +67 -0
  126. package/dist/jsx/PopoverDemo.mjs.map +7 -0
  127. package/dist/jsx/ProgressDemo.mjs +50 -0
  128. package/dist/jsx/ProgressDemo.mjs.map +7 -0
  129. package/dist/jsx/ScrollViewDemo.mjs +17 -0
  130. package/dist/jsx/ScrollViewDemo.mjs.map +7 -0
  131. package/dist/jsx/SelectDemo.mjs +73 -0
  132. package/dist/jsx/SelectDemo.mjs.map +7 -0
  133. package/dist/jsx/SeparatorDemo.mjs +19 -0
  134. package/dist/jsx/SeparatorDemo.mjs.map +7 -0
  135. package/dist/jsx/ShapesDemo.mjs +11 -0
  136. package/dist/jsx/ShapesDemo.mjs.map +7 -0
  137. package/dist/jsx/SheetDemo.mjs +64 -0
  138. package/dist/jsx/SheetDemo.mjs.map +7 -0
  139. package/dist/jsx/SliderDemo.mjs +18 -0
  140. package/dist/jsx/SliderDemo.mjs.map +7 -0
  141. package/dist/jsx/SpinnerDemo.mjs +11 -0
  142. package/dist/jsx/SpinnerDemo.mjs.map +7 -0
  143. package/dist/jsx/StacksDemo.mjs +24 -0
  144. package/dist/jsx/StacksDemo.mjs.map +7 -0
  145. package/dist/jsx/SwitchDemo.mjs +21 -0
  146. package/dist/jsx/SwitchDemo.mjs.map +7 -0
  147. package/dist/jsx/TextDemo.mjs +16 -0
  148. package/dist/jsx/TextDemo.mjs.map +7 -0
  149. package/dist/jsx/ThemeInverseDemo.mjs +19 -0
  150. package/dist/jsx/ThemeInverseDemo.mjs.map +7 -0
  151. package/dist/jsx/TokensDemo.mjs +91 -0
  152. package/dist/jsx/TokensDemo.mjs.map +7 -0
  153. package/dist/jsx/TooltipDemo.mjs +64 -0
  154. package/dist/jsx/TooltipDemo.mjs.map +7 -0
  155. package/dist/jsx/UpdateThemeDemo.mjs +50 -0
  156. package/dist/jsx/UpdateThemeDemo.mjs.map +7 -0
  157. package/dist/jsx/conf.mjs +5 -0
  158. package/dist/jsx/conf.mjs.map +7 -0
  159. package/dist/jsx/index.mjs +78 -0
  160. package/dist/jsx/index.mjs.map +7 -0
  161. package/dist/jsx/tamagui.config.mjs +6 -0
  162. package/dist/jsx/tamagui.config.mjs.map +7 -0
  163. package/dist/jsx/useOnIntersecting.mjs +68 -0
  164. package/dist/jsx/useOnIntersecting.mjs.map +7 -0
  165. 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
+ }