@tamagui/demos 1.114.4 → 1.115.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/dist/cjs/AccordionDemo.cjs +96 -0
  2. package/dist/cjs/AddThemeDemo.cjs +70 -0
  3. package/dist/cjs/AlertDialogDemo.cjs +96 -0
  4. package/dist/cjs/AnimationsDemo.cjs +100 -0
  5. package/dist/cjs/AnimationsEnterDemo.cjs +74 -0
  6. package/dist/cjs/AnimationsHoverDemo.cjs +47 -0
  7. package/dist/cjs/AnimationsPresenceDemo.cjs +124 -0
  8. package/dist/cjs/AnimationsTimingDemo.cjs +46 -0
  9. package/dist/cjs/AvatarDemo.cjs +53 -0
  10. package/dist/cjs/BuildAButtonDemo.cjs +125 -0
  11. package/dist/cjs/ButtonDemo.cjs +83 -0
  12. package/dist/cjs/{CardDemo.js → CardDemo.cjs} +67 -41
  13. package/dist/cjs/CheckboxDemo.cjs +70 -0
  14. package/dist/cjs/CheckboxHeadlessDemo.cjs +87 -0
  15. package/dist/cjs/CheckboxUnstyledDemo.cjs +78 -0
  16. package/dist/cjs/ColorsDemo.cjs +121 -0
  17. package/dist/cjs/DialogDemo.cjs +155 -0
  18. package/dist/cjs/FormsDemo.cjs +70 -0
  19. package/dist/cjs/Grid.cjs +71 -0
  20. package/dist/cjs/GroupDemo.cjs +85 -0
  21. package/dist/cjs/HeadingsDemo.cjs +45 -0
  22. package/dist/cjs/ImageDemo.cjs +36 -0
  23. package/dist/cjs/InputsDemo.cjs +60 -0
  24. package/dist/cjs/LabelDemo.cjs +60 -0
  25. package/dist/cjs/LinearGradientDemo.cjs +48 -0
  26. package/dist/cjs/ListItemDemo.cjs +100 -0
  27. package/dist/cjs/LucideIconsDemo.cjs +93 -0
  28. package/dist/cjs/NewInputsDemo.cjs +60 -0
  29. package/dist/cjs/PopoverDemo.cjs +145 -0
  30. package/dist/cjs/ProgressDemo.cjs +106 -0
  31. package/dist/cjs/RadioGroupDemo.cjs +71 -0
  32. package/dist/cjs/RadioGroupHeadlessDemo.cjs +168 -0
  33. package/dist/cjs/RadioGroupUnstyledDemo.cjs +142 -0
  34. package/dist/cjs/ReplaceThemeDemo.cjs +78 -0
  35. package/dist/cjs/ScrollViewDemo.cjs +74 -0
  36. package/dist/cjs/SelectDemo.cjs +228 -0
  37. package/dist/cjs/SeparatorDemo.cjs +60 -0
  38. package/dist/cjs/ShapesDemo.cjs +42 -0
  39. package/dist/cjs/SheetDemo.cjs +176 -0
  40. package/dist/cjs/SliderDemo.cjs +58 -0
  41. package/dist/cjs/SpinnerDemo.cjs +41 -0
  42. package/dist/cjs/StacksDemo.cjs +104 -0
  43. package/dist/cjs/SwitchDemo.cjs +95 -0
  44. package/dist/cjs/SwitchHeadlessDemo.cjs +101 -0
  45. package/dist/cjs/SwitchUnstyledDemo.cjs +89 -0
  46. package/dist/cjs/TabsAdvancedDemo.cjs +340 -0
  47. package/dist/cjs/TabsDemo.cjs +191 -0
  48. package/dist/cjs/TextDemo.cjs +52 -0
  49. package/dist/cjs/ThemeBuilderDemo.cjs +178 -0
  50. package/dist/cjs/ThemeInverseDemo.cjs +69 -0
  51. package/dist/cjs/ToastDemo.cjs +133 -0
  52. package/dist/cjs/ToastDuplicateDemo.cjs +83 -0
  53. package/dist/cjs/ToggleGroupDemo.cjs +97 -0
  54. package/dist/cjs/TokensDemo.cjs +125 -0
  55. package/dist/cjs/TooltipDemo.cjs +125 -0
  56. package/dist/cjs/UpdateThemeDemo.cjs +81 -0
  57. package/dist/cjs/WebNativeImageDemo.cjs +34 -0
  58. package/dist/cjs/index.cjs +74 -0
  59. package/dist/cjs/tamagui.config.cjs +29 -0
  60. package/dist/cjs/useOnIntersecting.cjs +66 -0
  61. package/package.json +22 -21
  62. package/dist/cjs/AccordionDemo.js +0 -43
  63. package/dist/cjs/AddThemeDemo.js +0 -56
  64. package/dist/cjs/AlertDialogDemo.js +0 -68
  65. package/dist/cjs/AnimationsDemo.js +0 -99
  66. package/dist/cjs/AnimationsEnterDemo.js +0 -55
  67. package/dist/cjs/AnimationsHoverDemo.js +0 -41
  68. package/dist/cjs/AnimationsPresenceDemo.js +0 -102
  69. package/dist/cjs/AnimationsTimingDemo.js +0 -40
  70. package/dist/cjs/AvatarDemo.js +0 -45
  71. package/dist/cjs/BuildAButtonDemo.js +0 -57
  72. package/dist/cjs/ButtonDemo.js +0 -39
  73. package/dist/cjs/CheckboxDemo.js +0 -40
  74. package/dist/cjs/CheckboxHeadlessDemo.js +0 -62
  75. package/dist/cjs/CheckboxUnstyledDemo.js +0 -52
  76. package/dist/cjs/ColorsDemo.js +0 -95
  77. package/dist/cjs/DialogDemo.js +0 -99
  78. package/dist/cjs/FormsDemo.js +0 -57
  79. package/dist/cjs/Grid.js +0 -58
  80. package/dist/cjs/GroupDemo.js +0 -39
  81. package/dist/cjs/HeadingsDemo.js +0 -31
  82. package/dist/cjs/ImageDemo.js +0 -33
  83. package/dist/cjs/InputsDemo.js +0 -46
  84. package/dist/cjs/LabelDemo.js +0 -33
  85. package/dist/cjs/LinearGradientDemo.js +0 -47
  86. package/dist/cjs/ListItemDemo.js +0 -61
  87. package/dist/cjs/LucideIconsDemo.js +0 -72
  88. package/dist/cjs/NewInputsDemo.js +0 -46
  89. package/dist/cjs/PopoverDemo.js +0 -126
  90. package/dist/cjs/ProgressDemo.js +0 -88
  91. package/dist/cjs/RadioGroupDemo.js +0 -36
  92. package/dist/cjs/RadioGroupHeadlessDemo.js +0 -117
  93. package/dist/cjs/RadioGroupUnstyledDemo.js +0 -107
  94. package/dist/cjs/ReplaceThemeDemo.js +0 -58
  95. package/dist/cjs/ScrollViewDemo.js +0 -43
  96. package/dist/cjs/SelectDemo.js +0 -190
  97. package/dist/cjs/SeparatorDemo.js +0 -35
  98. package/dist/cjs/ShapesDemo.js +0 -27
  99. package/dist/cjs/SheetDemo.js +0 -120
  100. package/dist/cjs/SliderDemo.js +0 -34
  101. package/dist/cjs/SpinnerDemo.js +0 -27
  102. package/dist/cjs/StacksDemo.js +0 -93
  103. package/dist/cjs/SwitchDemo.js +0 -56
  104. package/dist/cjs/SwitchHeadlessDemo.js +0 -87
  105. package/dist/cjs/SwitchUnstyledDemo.js +0 -64
  106. package/dist/cjs/TabsAdvancedDemo.js +0 -283
  107. package/dist/cjs/TabsDemo.js +0 -144
  108. package/dist/cjs/TextDemo.js +0 -31
  109. package/dist/cjs/ThemeBuilderDemo.js +0 -149
  110. package/dist/cjs/ThemeInverseDemo.js +0 -56
  111. package/dist/cjs/ToastDemo.js +0 -112
  112. package/dist/cjs/ToastDuplicateDemo.js +0 -64
  113. package/dist/cjs/ToggleGroupDemo.js +0 -63
  114. package/dist/cjs/TokensDemo.js +0 -100
  115. package/dist/cjs/TooltipDemo.js +0 -68
  116. package/dist/cjs/UpdateThemeDemo.js +0 -61
  117. package/dist/cjs/WebNativeImageDemo.js +0 -24
  118. package/dist/cjs/index.js +0 -71
  119. package/dist/cjs/tamagui.config.js +0 -22
  120. package/dist/cjs/useOnIntersecting.js +0 -63
  121. /package/dist/cjs/{AccordionDemo.js.map → AccordionDemo.cjs.map} +0 -0
  122. /package/dist/cjs/{AddThemeDemo.js.map → AddThemeDemo.cjs.map} +0 -0
  123. /package/dist/cjs/{AlertDialogDemo.js.map → AlertDialogDemo.cjs.map} +0 -0
  124. /package/dist/cjs/{AnimationsDemo.js.map → AnimationsDemo.cjs.map} +0 -0
  125. /package/dist/cjs/{AnimationsEnterDemo.js.map → AnimationsEnterDemo.cjs.map} +0 -0
  126. /package/dist/cjs/{AnimationsHoverDemo.js.map → AnimationsHoverDemo.cjs.map} +0 -0
  127. /package/dist/cjs/{AnimationsPresenceDemo.js.map → AnimationsPresenceDemo.cjs.map} +0 -0
  128. /package/dist/cjs/{AnimationsTimingDemo.js.map → AnimationsTimingDemo.cjs.map} +0 -0
  129. /package/dist/cjs/{AvatarDemo.js.map → AvatarDemo.cjs.map} +0 -0
  130. /package/dist/cjs/{BuildAButtonDemo.js.map → BuildAButtonDemo.cjs.map} +0 -0
  131. /package/dist/cjs/{ButtonDemo.js.map → ButtonDemo.cjs.map} +0 -0
  132. /package/dist/cjs/{CardDemo.js.map → CardDemo.cjs.map} +0 -0
  133. /package/dist/cjs/{CheckboxDemo.js.map → CheckboxDemo.cjs.map} +0 -0
  134. /package/dist/cjs/{CheckboxHeadlessDemo.js.map → CheckboxHeadlessDemo.cjs.map} +0 -0
  135. /package/dist/cjs/{CheckboxUnstyledDemo.js.map → CheckboxUnstyledDemo.cjs.map} +0 -0
  136. /package/dist/cjs/{ColorsDemo.js.map → ColorsDemo.cjs.map} +0 -0
  137. /package/dist/cjs/{DialogDemo.js.map → DialogDemo.cjs.map} +0 -0
  138. /package/dist/cjs/{FormsDemo.js.map → FormsDemo.cjs.map} +0 -0
  139. /package/dist/cjs/{Grid.js.map → Grid.cjs.map} +0 -0
  140. /package/dist/cjs/{GroupDemo.js.map → GroupDemo.cjs.map} +0 -0
  141. /package/dist/cjs/{HeadingsDemo.js.map → HeadingsDemo.cjs.map} +0 -0
  142. /package/dist/cjs/{ImageDemo.js.map → ImageDemo.cjs.map} +0 -0
  143. /package/dist/cjs/{InputsDemo.js.map → InputsDemo.cjs.map} +0 -0
  144. /package/dist/cjs/{LabelDemo.js.map → LabelDemo.cjs.map} +0 -0
  145. /package/dist/cjs/{LinearGradientDemo.js.map → LinearGradientDemo.cjs.map} +0 -0
  146. /package/dist/cjs/{ListItemDemo.js.map → ListItemDemo.cjs.map} +0 -0
  147. /package/dist/cjs/{LucideIconsDemo.js.map → LucideIconsDemo.cjs.map} +0 -0
  148. /package/dist/cjs/{NewInputsDemo.js.map → NewInputsDemo.cjs.map} +0 -0
  149. /package/dist/cjs/{PopoverDemo.js.map → PopoverDemo.cjs.map} +0 -0
  150. /package/dist/cjs/{ProgressDemo.js.map → ProgressDemo.cjs.map} +0 -0
  151. /package/dist/cjs/{RadioGroupDemo.js.map → RadioGroupDemo.cjs.map} +0 -0
  152. /package/dist/cjs/{RadioGroupHeadlessDemo.js.map → RadioGroupHeadlessDemo.cjs.map} +0 -0
  153. /package/dist/cjs/{RadioGroupUnstyledDemo.js.map → RadioGroupUnstyledDemo.cjs.map} +0 -0
  154. /package/dist/cjs/{ReplaceThemeDemo.js.map → ReplaceThemeDemo.cjs.map} +0 -0
  155. /package/dist/cjs/{ScrollViewDemo.js.map → ScrollViewDemo.cjs.map} +0 -0
  156. /package/dist/cjs/{SelectDemo.js.map → SelectDemo.cjs.map} +0 -0
  157. /package/dist/cjs/{SeparatorDemo.js.map → SeparatorDemo.cjs.map} +0 -0
  158. /package/dist/cjs/{ShapesDemo.js.map → ShapesDemo.cjs.map} +0 -0
  159. /package/dist/cjs/{SheetDemo.js.map → SheetDemo.cjs.map} +0 -0
  160. /package/dist/cjs/{SliderDemo.js.map → SliderDemo.cjs.map} +0 -0
  161. /package/dist/cjs/{SpinnerDemo.js.map → SpinnerDemo.cjs.map} +0 -0
  162. /package/dist/cjs/{StacksDemo.js.map → StacksDemo.cjs.map} +0 -0
  163. /package/dist/cjs/{SwitchDemo.js.map → SwitchDemo.cjs.map} +0 -0
  164. /package/dist/cjs/{SwitchHeadlessDemo.js.map → SwitchHeadlessDemo.cjs.map} +0 -0
  165. /package/dist/cjs/{SwitchUnstyledDemo.js.map → SwitchUnstyledDemo.cjs.map} +0 -0
  166. /package/dist/cjs/{TabsAdvancedDemo.js.map → TabsAdvancedDemo.cjs.map} +0 -0
  167. /package/dist/cjs/{TabsDemo.js.map → TabsDemo.cjs.map} +0 -0
  168. /package/dist/cjs/{TextDemo.js.map → TextDemo.cjs.map} +0 -0
  169. /package/dist/cjs/{ThemeBuilderDemo.js.map → ThemeBuilderDemo.cjs.map} +0 -0
  170. /package/dist/cjs/{ThemeInverseDemo.js.map → ThemeInverseDemo.cjs.map} +0 -0
  171. /package/dist/cjs/{ToastDemo.js.map → ToastDemo.cjs.map} +0 -0
  172. /package/dist/cjs/{ToastDuplicateDemo.js.map → ToastDuplicateDemo.cjs.map} +0 -0
  173. /package/dist/cjs/{ToggleGroupDemo.js.map → ToggleGroupDemo.cjs.map} +0 -0
  174. /package/dist/cjs/{TokensDemo.js.map → TokensDemo.cjs.map} +0 -0
  175. /package/dist/cjs/{TooltipDemo.js.map → TooltipDemo.cjs.map} +0 -0
  176. /package/dist/cjs/{UpdateThemeDemo.js.map → UpdateThemeDemo.cjs.map} +0 -0
  177. /package/dist/cjs/{WebNativeImageDemo.js.map → WebNativeImageDemo.cjs.map} +0 -0
  178. /package/dist/cjs/{index.js.map → index.cjs.map} +0 -0
  179. /package/dist/cjs/{tamagui.config.js.map → tamagui.config.cjs.map} +0 -0
  180. /package/dist/cjs/{useOnIntersecting.js.map → useOnIntersecting.cjs.map} +0 -0
@@ -0,0 +1,340 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf,
6
+ __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: !0
11
+ });
12
+ },
13
+ __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: !0
28
+ }) : target, mod)),
29
+ __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
30
+ value: !0
31
+ }), mod);
32
+ var TabsAdvancedDemo_exports = {};
33
+ __export(TabsAdvancedDemo_exports, {
34
+ TabsAdvancedDemo: () => TabsAdvancedDemo
35
+ });
36
+ module.exports = __toCommonJS(TabsAdvancedDemo_exports);
37
+ var import_react = __toESM(require("react")),
38
+ import_tamagui = require("tamagui"),
39
+ import_jsx_runtime = require("react/jsx-runtime");
40
+ const demos = ["background", "underline"],
41
+ demosTitle = {
42
+ background: "Background Indicator",
43
+ underline: "Underline Indicator"
44
+ },
45
+ TabsAdvancedDemo = () => {
46
+ const [demoIndex, setDemoIndex] = import_react.default.useState(0),
47
+ demo = demos[demoIndex];
48
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
49
+ children: [demo === "underline" ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(TabsAdvancedUnderline, {}) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(TabsAdvancedBackground, {}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
50
+ alignItems: "center",
51
+ gap: "$4",
52
+ position: "absolute",
53
+ bottom: "$3",
54
+ left: "$4",
55
+ $xxs: {
56
+ display: "none"
57
+ },
58
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Button, {
59
+ size: "$2",
60
+ onPress: () => setDemoIndex(x => (x + 1) % demos.length),
61
+ children: demosTitle[demo]
62
+ })
63
+ })]
64
+ });
65
+ },
66
+ TabsAdvancedBackground = () => {
67
+ const [tabState, setTabState] = import_react.default.useState({
68
+ activeAt: null,
69
+ currentTab: "tab1",
70
+ intentAt: null,
71
+ prevActiveAt: null
72
+ }),
73
+ setCurrentTab = currentTab2 => setTabState({
74
+ ...tabState,
75
+ currentTab: currentTab2
76
+ }),
77
+ setIntentIndicator = intentAt2 => setTabState({
78
+ ...tabState,
79
+ intentAt: intentAt2
80
+ }),
81
+ setActiveIndicator = activeAt2 => setTabState({
82
+ ...tabState,
83
+ prevActiveAt: tabState.activeAt,
84
+ activeAt: activeAt2
85
+ }),
86
+ {
87
+ activeAt,
88
+ intentAt,
89
+ prevActiveAt,
90
+ currentTab
91
+ } = tabState,
92
+ direction = !activeAt || !prevActiveAt || activeAt.x === prevActiveAt.x ? 0 : activeAt.x > prevActiveAt.x ? -1 : 1,
93
+ handleOnInteraction = (type, layout) => {
94
+ type === "select" ? setActiveIndicator(layout) : setIntentIndicator(layout);
95
+ };
96
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Tabs, {
97
+ value: currentTab,
98
+ onValueChange: setCurrentTab,
99
+ orientation: "horizontal",
100
+ size: "$4",
101
+ padding: "$2",
102
+ height: 150,
103
+ flexDirection: "column",
104
+ activationMode: "manual",
105
+ backgroundColor: "$background",
106
+ borderRadius: "$4",
107
+ position: "relative",
108
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
109
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.AnimatePresence, {
110
+ children: intentAt && /* @__PURE__ */(0, import_jsx_runtime.jsx)(TabsRovingIndicator, {
111
+ borderRadius: "$4",
112
+ width: intentAt.width,
113
+ height: intentAt.height,
114
+ x: intentAt.x,
115
+ y: intentAt.y
116
+ })
117
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.AnimatePresence, {
118
+ children: activeAt && /* @__PURE__ */(0, import_jsx_runtime.jsx)(TabsRovingIndicator, {
119
+ borderRadius: "$4",
120
+ theme: "active",
121
+ width: activeAt.width,
122
+ height: activeAt.height,
123
+ x: activeAt.x,
124
+ y: activeAt.y
125
+ })
126
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Tabs.List, {
127
+ disablePassBorderRadius: !0,
128
+ loop: !1,
129
+ "aria-label": "Manage your account",
130
+ gap: "$2",
131
+ backgroundColor: "transparent",
132
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Tabs.Tab, {
133
+ unstyled: !0,
134
+ paddingVertical: "$2",
135
+ paddingHorizontal: "$3",
136
+ value: "tab1",
137
+ onInteraction: handleOnInteraction,
138
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {
139
+ children: "Profile"
140
+ })
141
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Tabs.Tab, {
142
+ unstyled: !0,
143
+ paddingVertical: "$2",
144
+ paddingHorizontal: "$3",
145
+ value: "tab2",
146
+ onInteraction: handleOnInteraction,
147
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {
148
+ children: "Connections"
149
+ })
150
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Tabs.Tab, {
151
+ unstyled: !0,
152
+ paddingVertical: "$2",
153
+ paddingHorizontal: "$3",
154
+ value: "tab3",
155
+ onInteraction: handleOnInteraction,
156
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {
157
+ children: "Notifications"
158
+ })
159
+ })]
160
+ })]
161
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.AnimatePresence, {
162
+ exitBeforeEnter: !0,
163
+ custom: {
164
+ direction
165
+ },
166
+ initial: !1,
167
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(AnimatedYStack, {
168
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Tabs.Content, {
169
+ value: currentTab,
170
+ forceMount: !0,
171
+ flex: 1,
172
+ justifyContent: "center",
173
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.H5, {
174
+ textAlign: "center",
175
+ children: currentTab
176
+ })
177
+ })
178
+ }, currentTab)
179
+ })]
180
+ });
181
+ },
182
+ TabsAdvancedUnderline = () => {
183
+ const [tabState, setTabState] = import_react.default.useState({
184
+ activeAt: null,
185
+ currentTab: "tab1",
186
+ intentAt: null,
187
+ prevActiveAt: null
188
+ }),
189
+ setCurrentTab = currentTab2 => setTabState({
190
+ ...tabState,
191
+ currentTab: currentTab2
192
+ }),
193
+ setIntentIndicator = intentAt2 => setTabState({
194
+ ...tabState,
195
+ intentAt: intentAt2
196
+ }),
197
+ setActiveIndicator = activeAt2 => setTabState({
198
+ ...tabState,
199
+ prevActiveAt: tabState.activeAt,
200
+ activeAt: activeAt2
201
+ }),
202
+ {
203
+ activeAt,
204
+ intentAt,
205
+ prevActiveAt,
206
+ currentTab
207
+ } = tabState,
208
+ direction = !activeAt || !prevActiveAt || activeAt.x === prevActiveAt.x ? 0 : activeAt.x > prevActiveAt.x ? -1 : 1,
209
+ handleOnInteraction = (type, layout) => {
210
+ type === "select" ? setActiveIndicator(layout) : setIntentIndicator(layout);
211
+ };
212
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Tabs, {
213
+ value: currentTab,
214
+ onValueChange: setCurrentTab,
215
+ orientation: "horizontal",
216
+ size: "$4",
217
+ height: 150,
218
+ flexDirection: "column",
219
+ activationMode: "manual",
220
+ backgroundColor: "$background",
221
+ borderRadius: "$4",
222
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
223
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.AnimatePresence, {
224
+ children: intentAt && /* @__PURE__ */(0, import_jsx_runtime.jsx)(TabsRovingIndicator, {
225
+ width: intentAt.width,
226
+ height: "$0.5",
227
+ x: intentAt.x,
228
+ bottom: 0
229
+ })
230
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.AnimatePresence, {
231
+ children: activeAt && /* @__PURE__ */(0, import_jsx_runtime.jsx)(TabsRovingIndicator, {
232
+ theme: "active",
233
+ active: !0,
234
+ width: activeAt.width,
235
+ height: "$0.5",
236
+ x: activeAt.x,
237
+ bottom: 0
238
+ })
239
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Tabs.List, {
240
+ disablePassBorderRadius: !0,
241
+ loop: !1,
242
+ "aria-label": "Manage your account",
243
+ borderBottomLeftRadius: 0,
244
+ borderBottomRightRadius: 0,
245
+ paddingBottom: "$1.5",
246
+ borderColor: "$color3",
247
+ borderBottomWidth: "$0.5",
248
+ backgroundColor: "transparent",
249
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Tabs.Tab, {
250
+ unstyled: !0,
251
+ paddingHorizontal: "$3",
252
+ paddingVertical: "$2",
253
+ value: "tab1",
254
+ onInteraction: handleOnInteraction,
255
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {
256
+ children: "Profile"
257
+ })
258
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Tabs.Tab, {
259
+ unstyled: !0,
260
+ paddingHorizontal: "$3",
261
+ paddingVertical: "$2",
262
+ value: "tab2",
263
+ onInteraction: handleOnInteraction,
264
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {
265
+ children: "Connections"
266
+ })
267
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Tabs.Tab, {
268
+ unstyled: !0,
269
+ paddingHorizontal: "$3",
270
+ paddingVertical: "$2",
271
+ value: "tab3",
272
+ onInteraction: handleOnInteraction,
273
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {
274
+ children: "Notifications"
275
+ })
276
+ })]
277
+ })]
278
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.AnimatePresence, {
279
+ exitBeforeEnter: !0,
280
+ custom: {
281
+ direction
282
+ },
283
+ initial: !1,
284
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(AnimatedYStack, {
285
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Tabs.Content, {
286
+ value: currentTab,
287
+ forceMount: !0,
288
+ flex: 1,
289
+ justifyContent: "center",
290
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.H5, {
291
+ textAlign: "center",
292
+ children: currentTab
293
+ })
294
+ })
295
+ }, currentTab)
296
+ })]
297
+ });
298
+ },
299
+ TabsRovingIndicator = ({
300
+ active,
301
+ ...props
302
+ }) => /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
303
+ position: "absolute",
304
+ backgroundColor: "$color5",
305
+ opacity: 0.7,
306
+ animation: "100ms",
307
+ enterStyle: {
308
+ opacity: 0
309
+ },
310
+ exitStyle: {
311
+ opacity: 0
312
+ },
313
+ ...(active && {
314
+ backgroundColor: "$color8",
315
+ opacity: 0.6
316
+ }),
317
+ ...props
318
+ }),
319
+ AnimatedYStack = (0, import_tamagui.styled)(import_tamagui.YStack, {
320
+ flex: 1,
321
+ x: 0,
322
+ opacity: 1,
323
+ animation: "100ms",
324
+ variants: {
325
+ // 1 = right, 0 = nowhere, -1 = left
326
+ direction: {
327
+ ":number": direction => ({
328
+ enterStyle: {
329
+ x: direction > 0 ? -25 : 25,
330
+ opacity: 0
331
+ },
332
+ exitStyle: {
333
+ zIndex: 0,
334
+ x: direction < 0 ? -25 : 25,
335
+ opacity: 0
336
+ }
337
+ })
338
+ }
339
+ }
340
+ });
@@ -0,0 +1,191 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf,
6
+ __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: !0
11
+ });
12
+ },
13
+ __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: !0
28
+ }) : target, mod)),
29
+ __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
30
+ value: !0
31
+ }), mod);
32
+ var TabsDemo_exports = {};
33
+ __export(TabsDemo_exports, {
34
+ TabsDemo: () => TabsDemo
35
+ });
36
+ module.exports = __toCommonJS(TabsDemo_exports);
37
+ var import_react = __toESM(require("react")),
38
+ import_tamagui = require("tamagui"),
39
+ import_jsx_runtime =
40
+ // web only fix for position relative
41
+ require("react/jsx-runtime");
42
+ const demos = ["horizontal", "vertical"],
43
+ demosTitle = {
44
+ horizontal: "Horizontal",
45
+ vertical: "Vertical"
46
+ };
47
+ function TabsDemo() {
48
+ const [demoIndex, setDemoIndex] = import_react.default.useState(0),
49
+ demo = demos[demoIndex];
50
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
51
+ paddingHorizontal: "$4",
52
+ ...(import_tamagui.isWeb && {
53
+ position: "unset"
54
+ }),
55
+ children: [demo === "horizontal" ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(HorizontalTabs, {}) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(VerticalTabs, {}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
56
+ alignItems: "center",
57
+ space: !0,
58
+ position: "absolute",
59
+ bottom: "$3",
60
+ left: "$4",
61
+ $xxs: {
62
+ display: "none"
63
+ },
64
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Button, {
65
+ size: "$2",
66
+ onPress: () => setDemoIndex(x => (x + 1) % demos.length),
67
+ children: demosTitle[demo]
68
+ })
69
+ })]
70
+ });
71
+ }
72
+ const HorizontalTabs = () => /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Tabs, {
73
+ defaultValue: "tab1",
74
+ orientation: "horizontal",
75
+ flexDirection: "column",
76
+ width: 400,
77
+ height: 150,
78
+ borderRadius: "$4",
79
+ borderWidth: "$0.25",
80
+ overflow: "hidden",
81
+ borderColor: "$borderColor",
82
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Tabs.List, {
83
+ separator: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Separator, {
84
+ vertical: !0
85
+ }),
86
+ disablePassBorderRadius: "bottom",
87
+ "aria-label": "Manage your account",
88
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Tabs.Tab, {
89
+ flex: 1,
90
+ value: "tab1",
91
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {
92
+ fontFamily: "$body",
93
+ children: "Profile"
94
+ })
95
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Tabs.Tab, {
96
+ flex: 1,
97
+ value: "tab2",
98
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {
99
+ fontFamily: "$body",
100
+ children: "Connections"
101
+ })
102
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Tabs.Tab, {
103
+ flex: 1,
104
+ value: "tab3",
105
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {
106
+ fontFamily: "$body",
107
+ children: "Notifications"
108
+ })
109
+ })]
110
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Separator, {}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(TabsContent, {
111
+ value: "tab1",
112
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.H5, {
113
+ children: "Profile"
114
+ })
115
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(TabsContent, {
116
+ value: "tab2",
117
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.H5, {
118
+ children: "Connections"
119
+ })
120
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(TabsContent, {
121
+ value: "tab3",
122
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.H5, {
123
+ children: "Notifications"
124
+ })
125
+ })]
126
+ }),
127
+ VerticalTabs = () => /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Tabs, {
128
+ defaultValue: "tab1",
129
+ flexDirection: "row",
130
+ orientation: "vertical",
131
+ width: 400,
132
+ borderRadius: "$4",
133
+ borderWidth: "$0.25",
134
+ overflow: "hidden",
135
+ borderColor: "$borderColor",
136
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.Tabs.List, {
137
+ disablePassBorderRadius: "end",
138
+ "aria-label": "Manage your account",
139
+ separator: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Separator, {}),
140
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Tabs.Tab, {
141
+ value: "tab1",
142
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {
143
+ children: "Profile"
144
+ })
145
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Tabs.Tab, {
146
+ value: "tab2",
147
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {
148
+ children: "Connections"
149
+ })
150
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Tabs.Tab, {
151
+ value: "tab3",
152
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {
153
+ children: "Notifications"
154
+ })
155
+ })]
156
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Separator, {
157
+ vertical: !0
158
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(TabsContent, {
159
+ value: "tab1",
160
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.H5, {
161
+ textAlign: "center",
162
+ children: "Profile"
163
+ })
164
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(TabsContent, {
165
+ value: "tab2",
166
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.H5, {
167
+ textAlign: "center",
168
+ children: "Connections"
169
+ })
170
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(TabsContent, {
171
+ value: "tab3",
172
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.H5, {
173
+ textAlign: "center",
174
+ children: "Notifications"
175
+ })
176
+ })]
177
+ }),
178
+ TabsContent = props => /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Tabs.Content, {
179
+ backgroundColor: "$background",
180
+ padding: "$2",
181
+ alignItems: "center",
182
+ justifyContent: "center",
183
+ flex: 1,
184
+ borderColor: "$background",
185
+ borderRadius: "$2",
186
+ borderTopLeftRadius: 0,
187
+ borderTopRightRadius: 0,
188
+ borderWidth: "$2",
189
+ ...props,
190
+ children: props.children
191
+ }, "tab3");
@@ -0,0 +1,52 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: !0
9
+ });
10
+ },
11
+ __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ });
16
+ return to;
17
+ };
18
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
+ value: !0
20
+ }), mod);
21
+ var TextDemo_exports = {};
22
+ __export(TextDemo_exports, {
23
+ TextDemo: () => TextDemo
24
+ });
25
+ module.exports = __toCommonJS(TextDemo_exports);
26
+ var import_tamagui = require("tamagui"),
27
+ import_jsx_runtime = require("react/jsx-runtime");
28
+ function TextDemo() {
29
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
30
+ gap: "$2",
31
+ alignItems: "center",
32
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {
33
+ size: "$3",
34
+ children: "SizableText"
35
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
36
+ space: !0,
37
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {
38
+ theme: "alt1",
39
+ size: "$3",
40
+ children: "alt1"
41
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {
42
+ theme: "alt2",
43
+ size: "$3",
44
+ children: "alt2"
45
+ })]
46
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Paragraph, {
47
+ size: "$2",
48
+ fontWeight: "800",
49
+ children: "Paragraph"
50
+ })]
51
+ });
52
+ }