@tamagui/demos 1.14.0 → 1.14.2

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 (481) hide show
  1. package/dist/cjs/AddThemeDemo.js +59 -1
  2. package/dist/cjs/AddThemeDemo.js.map +2 -2
  3. package/dist/cjs/AlertDialogDemo.js +76 -1
  4. package/dist/cjs/AlertDialogDemo.js.map +2 -2
  5. package/dist/cjs/AnimationsDemo.js +113 -1
  6. package/dist/cjs/AnimationsDemo.js.map +2 -2
  7. package/dist/cjs/AnimationsEnterDemo.js +63 -1
  8. package/dist/cjs/AnimationsEnterDemo.js.map +2 -2
  9. package/dist/cjs/AnimationsHoverDemo.js +49 -1
  10. package/dist/cjs/AnimationsHoverDemo.js.map +2 -2
  11. package/dist/cjs/AnimationsPresenceDemo.js +96 -1
  12. package/dist/cjs/AnimationsPresenceDemo.js.map +2 -2
  13. package/dist/cjs/AnimationsTimingDemo.js +49 -1
  14. package/dist/cjs/AnimationsTimingDemo.js.map +2 -2
  15. package/dist/cjs/AvatarDemo.js +53 -1
  16. package/dist/cjs/AvatarDemo.js.map +2 -2
  17. package/dist/cjs/ButtonDemo.js +48 -1
  18. package/dist/cjs/ButtonDemo.js.map +2 -2
  19. package/dist/cjs/CardDemo.js +69 -1
  20. package/dist/cjs/CardDemo.js.map +2 -2
  21. package/dist/cjs/CheckboxDemo.js +44 -1
  22. package/dist/cjs/CheckboxDemo.js.map +2 -2
  23. package/dist/cjs/ColorsDemo.js +112 -1
  24. package/dist/cjs/ColorsDemo.js.map +2 -2
  25. package/dist/cjs/DialogDemo.js +85 -1
  26. package/dist/cjs/DialogDemo.js.map +2 -2
  27. package/dist/cjs/FormsDemo.js +59 -1
  28. package/dist/cjs/FormsDemo.js.map +2 -2
  29. package/dist/cjs/GroupDemo.js +48 -1
  30. package/dist/cjs/GroupDemo.js.map +2 -2
  31. package/dist/cjs/HeadingsDemo.js +39 -1
  32. package/dist/cjs/HeadingsDemo.js.map +2 -2
  33. package/dist/cjs/ImageDemo.js +32 -1
  34. package/dist/cjs/ImageDemo.js.map +2 -2
  35. package/dist/cjs/InputsDemo.js +43 -1
  36. package/dist/cjs/InputsDemo.js.map +2 -2
  37. package/dist/cjs/LabelDemo.js +41 -1
  38. package/dist/cjs/LabelDemo.js.map +2 -2
  39. package/dist/cjs/LinearGradientDemo.js +56 -1
  40. package/dist/cjs/LinearGradientDemo.js.map +2 -2
  41. package/dist/cjs/ListItemDemo.js +70 -1
  42. package/dist/cjs/ListItemDemo.js.map +2 -2
  43. package/dist/cjs/LucideIconsDemo.js +78 -1
  44. package/dist/cjs/LucideIconsDemo.js.map +2 -2
  45. package/dist/cjs/PopoverDemo.js +92 -1
  46. package/dist/cjs/PopoverDemo.js.map +2 -2
  47. package/dist/cjs/ProgressDemo.js +71 -1
  48. package/dist/cjs/ProgressDemo.js.map +2 -2
  49. package/dist/cjs/RadioGroupDemo.js +43 -1
  50. package/dist/cjs/RadioGroupDemo.js.map +2 -2
  51. package/dist/cjs/ScrollViewDemo.js +41 -1
  52. package/dist/cjs/ScrollViewDemo.js.map +2 -2
  53. package/dist/cjs/SelectDemo.js +103 -1
  54. package/dist/cjs/SelectDemo.js.map +2 -2
  55. package/dist/cjs/SeparatorDemo.js +43 -1
  56. package/dist/cjs/SeparatorDemo.js.map +2 -2
  57. package/dist/cjs/ShapesDemo.js +35 -1
  58. package/dist/cjs/ShapesDemo.js.map +2 -2
  59. package/dist/cjs/SheetDemo.js +103 -1
  60. package/dist/cjs/SheetDemo.js.map +2 -2
  61. package/dist/cjs/SliderDemo.js +42 -1
  62. package/dist/cjs/SliderDemo.js.map +2 -2
  63. package/dist/cjs/SpinnerDemo.js +35 -1
  64. package/dist/cjs/SpinnerDemo.js.map +2 -2
  65. package/dist/cjs/StacksDemo.js +81 -1
  66. package/dist/cjs/StacksDemo.js.map +2 -2
  67. package/dist/cjs/SwitchDemo.js +55 -1
  68. package/dist/cjs/SwitchDemo.js.map +2 -2
  69. package/dist/cjs/TabsAdvancedDemo.js +282 -1
  70. package/dist/cjs/TabsAdvancedDemo.js.map +2 -2
  71. package/dist/cjs/TabsDemo.js +146 -1
  72. package/dist/cjs/TabsDemo.js.map +2 -2
  73. package/dist/cjs/TextDemo.js +39 -1
  74. package/dist/cjs/TextDemo.js.map +2 -2
  75. package/dist/cjs/ThemeInverseDemo.js +43 -1
  76. package/dist/cjs/ThemeInverseDemo.js.map +2 -2
  77. package/dist/cjs/ToastDemo.js +128 -1
  78. package/dist/cjs/ToastDemo.js.map +2 -2
  79. package/dist/cjs/ToastDuplicateDemo.js +77 -1
  80. package/dist/cjs/ToastDuplicateDemo.js.map +2 -2
  81. package/dist/cjs/ToggleGroupDemo.js +72 -1
  82. package/dist/cjs/ToggleGroupDemo.js.map +2 -2
  83. package/dist/cjs/TokensDemo.js +110 -1
  84. package/dist/cjs/TokensDemo.js.map +2 -2
  85. package/dist/cjs/TooltipDemo.js +79 -1
  86. package/dist/cjs/TooltipDemo.js.map +2 -2
  87. package/dist/cjs/UpdateThemeDemo.js +79 -1
  88. package/dist/cjs/UpdateThemeDemo.js.map +2 -2
  89. package/dist/cjs/conf.js +28 -1
  90. package/dist/cjs/conf.js.map +2 -2
  91. package/dist/cjs/index.js +159 -1
  92. package/dist/cjs/index.js.map +2 -2
  93. package/dist/cjs/tamagui.config.js +27 -1
  94. package/dist/cjs/tamagui.config.js.map +2 -2
  95. package/dist/cjs/useOnIntersecting.js +92 -1
  96. package/dist/cjs/useOnIntersecting.js.map +2 -2
  97. package/dist/esm/AddThemeDemo.js +35 -1
  98. package/dist/esm/AddThemeDemo.js.map +2 -2
  99. package/dist/esm/AddThemeDemo.mjs +35 -1
  100. package/dist/esm/AddThemeDemo.mjs.map +2 -2
  101. package/dist/esm/AlertDialogDemo.js +52 -1
  102. package/dist/esm/AlertDialogDemo.js.map +2 -2
  103. package/dist/esm/AlertDialogDemo.mjs +52 -1
  104. package/dist/esm/AlertDialogDemo.mjs.map +2 -2
  105. package/dist/esm/AnimationsDemo.js +88 -1
  106. package/dist/esm/AnimationsDemo.js.map +2 -2
  107. package/dist/esm/AnimationsDemo.mjs +88 -1
  108. package/dist/esm/AnimationsDemo.mjs.map +2 -2
  109. package/dist/esm/AnimationsEnterDemo.js +39 -1
  110. package/dist/esm/AnimationsEnterDemo.js.map +2 -2
  111. package/dist/esm/AnimationsEnterDemo.mjs +39 -1
  112. package/dist/esm/AnimationsEnterDemo.mjs.map +2 -2
  113. package/dist/esm/AnimationsHoverDemo.js +25 -1
  114. package/dist/esm/AnimationsHoverDemo.js.map +2 -2
  115. package/dist/esm/AnimationsHoverDemo.mjs +25 -1
  116. package/dist/esm/AnimationsHoverDemo.mjs.map +2 -2
  117. package/dist/esm/AnimationsPresenceDemo.js +61 -1
  118. package/dist/esm/AnimationsPresenceDemo.js.map +2 -2
  119. package/dist/esm/AnimationsPresenceDemo.mjs +61 -1
  120. package/dist/esm/AnimationsPresenceDemo.mjs.map +2 -2
  121. package/dist/esm/AnimationsTimingDemo.js +25 -1
  122. package/dist/esm/AnimationsTimingDemo.js.map +2 -2
  123. package/dist/esm/AnimationsTimingDemo.mjs +25 -1
  124. package/dist/esm/AnimationsTimingDemo.mjs.map +2 -2
  125. package/dist/esm/AvatarDemo.js +29 -1
  126. package/dist/esm/AvatarDemo.js.map +2 -2
  127. package/dist/esm/AvatarDemo.mjs +29 -1
  128. package/dist/esm/AvatarDemo.mjs.map +2 -2
  129. package/dist/esm/ButtonDemo.js +24 -1
  130. package/dist/esm/ButtonDemo.js.map +2 -2
  131. package/dist/esm/ButtonDemo.mjs +24 -1
  132. package/dist/esm/ButtonDemo.mjs.map +2 -2
  133. package/dist/esm/CardDemo.js +45 -1
  134. package/dist/esm/CardDemo.js.map +2 -2
  135. package/dist/esm/CardDemo.mjs +45 -1
  136. package/dist/esm/CardDemo.mjs.map +2 -2
  137. package/dist/esm/CheckboxDemo.js +20 -1
  138. package/dist/esm/CheckboxDemo.js.map +2 -2
  139. package/dist/esm/CheckboxDemo.mjs +20 -1
  140. package/dist/esm/CheckboxDemo.mjs.map +2 -2
  141. package/dist/esm/ColorsDemo.js +97 -1
  142. package/dist/esm/ColorsDemo.js.map +2 -2
  143. package/dist/esm/ColorsDemo.mjs +97 -1
  144. package/dist/esm/ColorsDemo.mjs.map +2 -2
  145. package/dist/esm/DialogDemo.js +73 -1
  146. package/dist/esm/DialogDemo.js.map +2 -2
  147. package/dist/esm/DialogDemo.mjs +73 -1
  148. package/dist/esm/DialogDemo.mjs.map +2 -2
  149. package/dist/esm/FormsDemo.js +35 -1
  150. package/dist/esm/FormsDemo.js.map +2 -2
  151. package/dist/esm/FormsDemo.mjs +35 -1
  152. package/dist/esm/FormsDemo.mjs.map +2 -2
  153. package/dist/esm/GroupDemo.js +24 -1
  154. package/dist/esm/GroupDemo.js.map +2 -2
  155. package/dist/esm/GroupDemo.mjs +24 -1
  156. package/dist/esm/GroupDemo.mjs.map +2 -2
  157. package/dist/esm/HeadingsDemo.js +15 -1
  158. package/dist/esm/HeadingsDemo.js.map +2 -2
  159. package/dist/esm/HeadingsDemo.mjs +15 -1
  160. package/dist/esm/HeadingsDemo.mjs.map +2 -2
  161. package/dist/esm/ImageDemo.js +8 -1
  162. package/dist/esm/ImageDemo.js.map +2 -2
  163. package/dist/esm/ImageDemo.mjs +8 -1
  164. package/dist/esm/ImageDemo.mjs.map +2 -2
  165. package/dist/esm/InputsDemo.js +19 -1
  166. package/dist/esm/InputsDemo.js.map +2 -2
  167. package/dist/esm/InputsDemo.mjs +19 -1
  168. package/dist/esm/InputsDemo.mjs.map +2 -2
  169. package/dist/esm/LabelDemo.js +17 -1
  170. package/dist/esm/LabelDemo.js.map +2 -2
  171. package/dist/esm/LabelDemo.mjs +17 -1
  172. package/dist/esm/LabelDemo.mjs.map +2 -2
  173. package/dist/esm/LinearGradientDemo.js +32 -1
  174. package/dist/esm/LinearGradientDemo.js.map +2 -2
  175. package/dist/esm/LinearGradientDemo.mjs +32 -1
  176. package/dist/esm/LinearGradientDemo.mjs.map +2 -2
  177. package/dist/esm/ListItemDemo.js +46 -1
  178. package/dist/esm/ListItemDemo.js.map +2 -2
  179. package/dist/esm/ListItemDemo.mjs +46 -1
  180. package/dist/esm/ListItemDemo.mjs.map +2 -2
  181. package/dist/esm/LucideIconsDemo.js +44 -1
  182. package/dist/esm/LucideIconsDemo.js.map +2 -2
  183. package/dist/esm/LucideIconsDemo.mjs +44 -1
  184. package/dist/esm/LucideIconsDemo.mjs.map +2 -2
  185. package/dist/esm/PopoverDemo.js +75 -1
  186. package/dist/esm/PopoverDemo.js.map +2 -2
  187. package/dist/esm/PopoverDemo.mjs +75 -1
  188. package/dist/esm/PopoverDemo.mjs.map +2 -2
  189. package/dist/esm/ProgressDemo.js +47 -1
  190. package/dist/esm/ProgressDemo.js.map +2 -2
  191. package/dist/esm/ProgressDemo.mjs +47 -1
  192. package/dist/esm/ProgressDemo.mjs.map +2 -2
  193. package/dist/esm/RadioGroupDemo.js +19 -1
  194. package/dist/esm/RadioGroupDemo.js.map +2 -2
  195. package/dist/esm/RadioGroupDemo.mjs +19 -1
  196. package/dist/esm/RadioGroupDemo.mjs.map +2 -2
  197. package/dist/esm/ScrollViewDemo.js +17 -1
  198. package/dist/esm/ScrollViewDemo.js.map +2 -2
  199. package/dist/esm/ScrollViewDemo.mjs +17 -1
  200. package/dist/esm/ScrollViewDemo.mjs.map +2 -2
  201. package/dist/esm/SelectDemo.js +79 -1
  202. package/dist/esm/SelectDemo.js.map +2 -2
  203. package/dist/esm/SelectDemo.mjs +79 -1
  204. package/dist/esm/SelectDemo.mjs.map +2 -2
  205. package/dist/esm/SeparatorDemo.js +19 -1
  206. package/dist/esm/SeparatorDemo.js.map +2 -2
  207. package/dist/esm/SeparatorDemo.mjs +19 -1
  208. package/dist/esm/SeparatorDemo.mjs.map +2 -2
  209. package/dist/esm/ShapesDemo.js +11 -1
  210. package/dist/esm/ShapesDemo.js.map +2 -2
  211. package/dist/esm/ShapesDemo.mjs +11 -1
  212. package/dist/esm/ShapesDemo.mjs.map +2 -2
  213. package/dist/esm/SheetDemo.js +79 -1
  214. package/dist/esm/SheetDemo.js.map +2 -2
  215. package/dist/esm/SheetDemo.mjs +79 -1
  216. package/dist/esm/SheetDemo.mjs.map +2 -2
  217. package/dist/esm/SliderDemo.js +18 -1
  218. package/dist/esm/SliderDemo.js.map +2 -2
  219. package/dist/esm/SliderDemo.mjs +18 -1
  220. package/dist/esm/SliderDemo.mjs.map +2 -2
  221. package/dist/esm/SpinnerDemo.js +11 -1
  222. package/dist/esm/SpinnerDemo.js.map +2 -2
  223. package/dist/esm/SpinnerDemo.mjs +11 -1
  224. package/dist/esm/SpinnerDemo.mjs.map +2 -2
  225. package/dist/esm/StacksDemo.js +57 -1
  226. package/dist/esm/StacksDemo.js.map +2 -2
  227. package/dist/esm/StacksDemo.mjs +57 -1
  228. package/dist/esm/StacksDemo.mjs.map +2 -2
  229. package/dist/esm/SwitchDemo.js +31 -1
  230. package/dist/esm/SwitchDemo.js.map +2 -2
  231. package/dist/esm/SwitchDemo.mjs +31 -1
  232. package/dist/esm/SwitchDemo.mjs.map +2 -2
  233. package/dist/esm/TabsAdvancedDemo.js +268 -1
  234. package/dist/esm/TabsAdvancedDemo.js.map +2 -2
  235. package/dist/esm/TabsAdvancedDemo.mjs +268 -1
  236. package/dist/esm/TabsAdvancedDemo.mjs.map +2 -2
  237. package/dist/esm/TabsDemo.js +130 -1
  238. package/dist/esm/TabsDemo.js.map +2 -2
  239. package/dist/esm/TabsDemo.mjs +130 -1
  240. package/dist/esm/TabsDemo.mjs.map +2 -2
  241. package/dist/esm/TextDemo.js +15 -1
  242. package/dist/esm/TextDemo.js.map +2 -2
  243. package/dist/esm/TextDemo.mjs +15 -1
  244. package/dist/esm/TextDemo.mjs.map +2 -2
  245. package/dist/esm/ThemeInverseDemo.js +19 -1
  246. package/dist/esm/ThemeInverseDemo.js.map +2 -2
  247. package/dist/esm/ThemeInverseDemo.mjs +19 -1
  248. package/dist/esm/ThemeInverseDemo.mjs.map +2 -2
  249. package/dist/esm/ToastDemo.js +94 -1
  250. package/dist/esm/ToastDemo.js.map +2 -2
  251. package/dist/esm/ToastDemo.mjs +94 -1
  252. package/dist/esm/ToastDemo.mjs.map +2 -2
  253. package/dist/esm/ToastDuplicateDemo.js +43 -1
  254. package/dist/esm/ToastDuplicateDemo.js.map +2 -2
  255. package/dist/esm/ToastDuplicateDemo.mjs +43 -1
  256. package/dist/esm/ToastDuplicateDemo.mjs.map +2 -2
  257. package/dist/esm/ToggleGroupDemo.js +48 -1
  258. package/dist/esm/ToggleGroupDemo.js.map +2 -2
  259. package/dist/esm/ToggleGroupDemo.mjs +48 -1
  260. package/dist/esm/ToggleGroupDemo.mjs.map +2 -2
  261. package/dist/esm/TokensDemo.js +86 -1
  262. package/dist/esm/TokensDemo.js.map +2 -2
  263. package/dist/esm/TokensDemo.mjs +86 -1
  264. package/dist/esm/TokensDemo.mjs.map +2 -2
  265. package/dist/esm/TooltipDemo.js +68 -1
  266. package/dist/esm/TooltipDemo.js.map +2 -2
  267. package/dist/esm/TooltipDemo.mjs +68 -1
  268. package/dist/esm/TooltipDemo.mjs.map +2 -2
  269. package/dist/esm/UpdateThemeDemo.js +53 -1
  270. package/dist/esm/UpdateThemeDemo.js.map +2 -2
  271. package/dist/esm/UpdateThemeDemo.mjs +53 -1
  272. package/dist/esm/UpdateThemeDemo.mjs.map +2 -2
  273. package/dist/esm/conf.js +4 -1
  274. package/dist/esm/conf.js.map +1 -1
  275. package/dist/esm/conf.mjs +4 -1
  276. package/dist/esm/conf.mjs.map +1 -1
  277. package/dist/esm/index.js +91 -1
  278. package/dist/esm/index.js.map +2 -2
  279. package/dist/esm/index.mjs +91 -1
  280. package/dist/esm/index.mjs.map +2 -2
  281. package/dist/esm/tamagui.config.js +5 -1
  282. package/dist/esm/tamagui.config.js.map +2 -2
  283. package/dist/esm/tamagui.config.mjs +5 -1
  284. package/dist/esm/tamagui.config.mjs.map +2 -2
  285. package/dist/esm/useOnIntersecting.js +67 -1
  286. package/dist/esm/useOnIntersecting.js.map +2 -2
  287. package/dist/esm/useOnIntersecting.mjs +67 -1
  288. package/dist/esm/useOnIntersecting.mjs.map +2 -2
  289. package/dist/jsx/AddThemeDemo.js +30 -1
  290. package/dist/jsx/AddThemeDemo.js.map +2 -2
  291. package/dist/jsx/AddThemeDemo.mjs +30 -1
  292. package/dist/jsx/AddThemeDemo.mjs.map +2 -2
  293. package/dist/jsx/AlertDialogDemo.js +44 -1
  294. package/dist/jsx/AlertDialogDemo.js.map +2 -2
  295. package/dist/jsx/AlertDialogDemo.mjs +44 -1
  296. package/dist/jsx/AlertDialogDemo.mjs.map +2 -2
  297. package/dist/jsx/AnimationsDemo.js +80 -1
  298. package/dist/jsx/AnimationsDemo.js.map +2 -2
  299. package/dist/jsx/AnimationsDemo.mjs +80 -1
  300. package/dist/jsx/AnimationsDemo.mjs.map +2 -2
  301. package/dist/jsx/AnimationsEnterDemo.js +34 -1
  302. package/dist/jsx/AnimationsEnterDemo.js.map +2 -2
  303. package/dist/jsx/AnimationsEnterDemo.mjs +34 -1
  304. package/dist/jsx/AnimationsEnterDemo.mjs.map +2 -2
  305. package/dist/jsx/AnimationsHoverDemo.js +20 -1
  306. package/dist/jsx/AnimationsHoverDemo.js.map +2 -2
  307. package/dist/jsx/AnimationsHoverDemo.mjs +20 -1
  308. package/dist/jsx/AnimationsHoverDemo.mjs.map +2 -2
  309. package/dist/jsx/AnimationsPresenceDemo.js +54 -1
  310. package/dist/jsx/AnimationsPresenceDemo.js.map +2 -2
  311. package/dist/jsx/AnimationsPresenceDemo.mjs +54 -1
  312. package/dist/jsx/AnimationsPresenceDemo.mjs.map +2 -2
  313. package/dist/jsx/AnimationsTimingDemo.js +20 -1
  314. package/dist/jsx/AnimationsTimingDemo.js.map +2 -2
  315. package/dist/jsx/AnimationsTimingDemo.mjs +20 -1
  316. package/dist/jsx/AnimationsTimingDemo.mjs.map +2 -2
  317. package/dist/jsx/AvatarDemo.js +22 -1
  318. package/dist/jsx/AvatarDemo.js.map +2 -2
  319. package/dist/jsx/AvatarDemo.mjs +22 -1
  320. package/dist/jsx/AvatarDemo.mjs.map +2 -2
  321. package/dist/jsx/ButtonDemo.js +23 -1
  322. package/dist/jsx/ButtonDemo.js.map +2 -2
  323. package/dist/jsx/ButtonDemo.mjs +23 -1
  324. package/dist/jsx/ButtonDemo.mjs.map +2 -2
  325. package/dist/jsx/CardDemo.js +38 -1
  326. package/dist/jsx/CardDemo.js.map +2 -2
  327. package/dist/jsx/CardDemo.mjs +38 -1
  328. package/dist/jsx/CardDemo.mjs.map +2 -2
  329. package/dist/jsx/CheckboxDemo.js +19 -1
  330. package/dist/jsx/CheckboxDemo.js.map +2 -2
  331. package/dist/jsx/CheckboxDemo.mjs +19 -1
  332. package/dist/jsx/CheckboxDemo.mjs.map +2 -2
  333. package/dist/jsx/ColorsDemo.js +85 -1
  334. package/dist/jsx/ColorsDemo.js.map +2 -2
  335. package/dist/jsx/ColorsDemo.mjs +85 -1
  336. package/dist/jsx/ColorsDemo.mjs.map +2 -2
  337. package/dist/jsx/DialogDemo.js +65 -1
  338. package/dist/jsx/DialogDemo.js.map +2 -2
  339. package/dist/jsx/DialogDemo.mjs +65 -1
  340. package/dist/jsx/DialogDemo.mjs.map +2 -2
  341. package/dist/jsx/FormsDemo.js +30 -1
  342. package/dist/jsx/FormsDemo.js.map +2 -2
  343. package/dist/jsx/FormsDemo.mjs +30 -1
  344. package/dist/jsx/FormsDemo.mjs.map +2 -2
  345. package/dist/jsx/GroupDemo.js +23 -1
  346. package/dist/jsx/GroupDemo.js.map +2 -2
  347. package/dist/jsx/GroupDemo.mjs +23 -1
  348. package/dist/jsx/GroupDemo.mjs.map +2 -2
  349. package/dist/jsx/HeadingsDemo.js +14 -1
  350. package/dist/jsx/HeadingsDemo.js.map +2 -2
  351. package/dist/jsx/HeadingsDemo.mjs +14 -1
  352. package/dist/jsx/HeadingsDemo.mjs.map +2 -2
  353. package/dist/jsx/ImageDemo.js +7 -1
  354. package/dist/jsx/ImageDemo.js.map +2 -2
  355. package/dist/jsx/ImageDemo.mjs +7 -1
  356. package/dist/jsx/ImageDemo.mjs.map +2 -2
  357. package/dist/jsx/InputsDemo.js +18 -1
  358. package/dist/jsx/InputsDemo.js.map +2 -2
  359. package/dist/jsx/InputsDemo.mjs +18 -1
  360. package/dist/jsx/InputsDemo.mjs.map +2 -2
  361. package/dist/jsx/LabelDemo.js +16 -1
  362. package/dist/jsx/LabelDemo.js.map +2 -2
  363. package/dist/jsx/LabelDemo.mjs +16 -1
  364. package/dist/jsx/LabelDemo.mjs.map +2 -2
  365. package/dist/jsx/LinearGradientDemo.js +25 -1
  366. package/dist/jsx/LinearGradientDemo.js.map +2 -2
  367. package/dist/jsx/LinearGradientDemo.mjs +25 -1
  368. package/dist/jsx/LinearGradientDemo.mjs.map +2 -2
  369. package/dist/jsx/ListItemDemo.js +39 -1
  370. package/dist/jsx/ListItemDemo.js.map +2 -2
  371. package/dist/jsx/ListItemDemo.mjs +39 -1
  372. package/dist/jsx/ListItemDemo.mjs.map +2 -2
  373. package/dist/jsx/LucideIconsDemo.js +39 -1
  374. package/dist/jsx/LucideIconsDemo.js.map +2 -2
  375. package/dist/jsx/LucideIconsDemo.mjs +39 -1
  376. package/dist/jsx/LucideIconsDemo.mjs.map +2 -2
  377. package/dist/jsx/PopoverDemo.js +66 -1
  378. package/dist/jsx/PopoverDemo.js.map +2 -2
  379. package/dist/jsx/PopoverDemo.mjs +66 -1
  380. package/dist/jsx/PopoverDemo.mjs.map +2 -2
  381. package/dist/jsx/ProgressDemo.js +42 -1
  382. package/dist/jsx/ProgressDemo.js.map +2 -2
  383. package/dist/jsx/ProgressDemo.mjs +42 -1
  384. package/dist/jsx/ProgressDemo.mjs.map +2 -2
  385. package/dist/jsx/RadioGroupDemo.js +18 -1
  386. package/dist/jsx/RadioGroupDemo.js.map +2 -2
  387. package/dist/jsx/RadioGroupDemo.mjs +18 -1
  388. package/dist/jsx/RadioGroupDemo.mjs.map +2 -2
  389. package/dist/jsx/ScrollViewDemo.js +16 -1
  390. package/dist/jsx/ScrollViewDemo.js.map +2 -2
  391. package/dist/jsx/ScrollViewDemo.mjs +16 -1
  392. package/dist/jsx/ScrollViewDemo.mjs.map +2 -2
  393. package/dist/jsx/SelectDemo.js +72 -1
  394. package/dist/jsx/SelectDemo.js.map +2 -2
  395. package/dist/jsx/SelectDemo.mjs +72 -1
  396. package/dist/jsx/SelectDemo.mjs.map +2 -2
  397. package/dist/jsx/SeparatorDemo.js +18 -1
  398. package/dist/jsx/SeparatorDemo.js.map +2 -2
  399. package/dist/jsx/SeparatorDemo.mjs +18 -1
  400. package/dist/jsx/SeparatorDemo.mjs.map +2 -2
  401. package/dist/jsx/ShapesDemo.js +10 -1
  402. package/dist/jsx/ShapesDemo.js.map +2 -2
  403. package/dist/jsx/ShapesDemo.mjs +10 -1
  404. package/dist/jsx/ShapesDemo.mjs.map +2 -2
  405. package/dist/jsx/SheetDemo.js +65 -1
  406. package/dist/jsx/SheetDemo.js.map +2 -2
  407. package/dist/jsx/SheetDemo.mjs +65 -1
  408. package/dist/jsx/SheetDemo.mjs.map +2 -2
  409. package/dist/jsx/SliderDemo.js +17 -1
  410. package/dist/jsx/SliderDemo.js.map +2 -2
  411. package/dist/jsx/SliderDemo.mjs +17 -1
  412. package/dist/jsx/SliderDemo.mjs.map +2 -2
  413. package/dist/jsx/SpinnerDemo.js +10 -1
  414. package/dist/jsx/SpinnerDemo.js.map +2 -2
  415. package/dist/jsx/SpinnerDemo.mjs +10 -1
  416. package/dist/jsx/SpinnerDemo.mjs.map +2 -2
  417. package/dist/jsx/StacksDemo.js +45 -1
  418. package/dist/jsx/StacksDemo.js.map +2 -2
  419. package/dist/jsx/StacksDemo.mjs +45 -1
  420. package/dist/jsx/StacksDemo.mjs.map +2 -2
  421. package/dist/jsx/SwitchDemo.js +26 -1
  422. package/dist/jsx/SwitchDemo.js.map +2 -2
  423. package/dist/jsx/SwitchDemo.mjs +26 -1
  424. package/dist/jsx/SwitchDemo.mjs.map +2 -2
  425. package/dist/jsx/TabsAdvancedDemo.js +219 -1
  426. package/dist/jsx/TabsAdvancedDemo.js.map +2 -2
  427. package/dist/jsx/TabsAdvancedDemo.mjs +219 -1
  428. package/dist/jsx/TabsAdvancedDemo.mjs.map +2 -2
  429. package/dist/jsx/TabsDemo.js +105 -1
  430. package/dist/jsx/TabsDemo.js.map +2 -2
  431. package/dist/jsx/TabsDemo.mjs +105 -1
  432. package/dist/jsx/TabsDemo.mjs.map +2 -2
  433. package/dist/jsx/TextDemo.js +14 -1
  434. package/dist/jsx/TextDemo.js.map +2 -2
  435. package/dist/jsx/TextDemo.mjs +14 -1
  436. package/dist/jsx/TextDemo.mjs.map +2 -2
  437. package/dist/jsx/ThemeInverseDemo.js +18 -1
  438. package/dist/jsx/ThemeInverseDemo.js.map +2 -2
  439. package/dist/jsx/ThemeInverseDemo.mjs +18 -1
  440. package/dist/jsx/ThemeInverseDemo.mjs.map +2 -2
  441. package/dist/jsx/ToastDemo.js +74 -1
  442. package/dist/jsx/ToastDemo.js.map +2 -2
  443. package/dist/jsx/ToastDemo.mjs +74 -1
  444. package/dist/jsx/ToastDemo.mjs.map +2 -2
  445. package/dist/jsx/ToastDuplicateDemo.js +34 -1
  446. package/dist/jsx/ToastDuplicateDemo.js.map +2 -2
  447. package/dist/jsx/ToastDuplicateDemo.mjs +34 -1
  448. package/dist/jsx/ToastDuplicateDemo.mjs.map +2 -2
  449. package/dist/jsx/ToggleGroupDemo.js +39 -1
  450. package/dist/jsx/ToggleGroupDemo.js.map +2 -2
  451. package/dist/jsx/ToggleGroupDemo.mjs +39 -1
  452. package/dist/jsx/ToggleGroupDemo.mjs.map +2 -2
  453. package/dist/jsx/TokensDemo.js +77 -1
  454. package/dist/jsx/TokensDemo.js.map +2 -2
  455. package/dist/jsx/TokensDemo.mjs +77 -1
  456. package/dist/jsx/TokensDemo.mjs.map +2 -2
  457. package/dist/jsx/TooltipDemo.js +63 -1
  458. package/dist/jsx/TooltipDemo.js.map +2 -2
  459. package/dist/jsx/TooltipDemo.mjs +63 -1
  460. package/dist/jsx/TooltipDemo.mjs.map +2 -2
  461. package/dist/jsx/UpdateThemeDemo.js +48 -1
  462. package/dist/jsx/UpdateThemeDemo.js.map +2 -2
  463. package/dist/jsx/UpdateThemeDemo.mjs +48 -1
  464. package/dist/jsx/UpdateThemeDemo.mjs.map +2 -2
  465. package/dist/jsx/conf.js +4 -1
  466. package/dist/jsx/conf.js.map +1 -1
  467. package/dist/jsx/conf.mjs +4 -1
  468. package/dist/jsx/conf.mjs.map +1 -1
  469. package/dist/jsx/index.js +91 -1
  470. package/dist/jsx/index.js.map +2 -2
  471. package/dist/jsx/index.mjs +91 -1
  472. package/dist/jsx/index.mjs.map +2 -2
  473. package/dist/jsx/tamagui.config.js +5 -1
  474. package/dist/jsx/tamagui.config.js.map +2 -2
  475. package/dist/jsx/tamagui.config.mjs +5 -1
  476. package/dist/jsx/tamagui.config.mjs.map +2 -2
  477. package/dist/jsx/useOnIntersecting.js +67 -1
  478. package/dist/jsx/useOnIntersecting.js.map +2 -2
  479. package/dist/jsx/useOnIntersecting.mjs +67 -1
  480. package/dist/jsx/useOnIntersecting.mjs.map +2 -2
  481. package/package.json +18 -18
@@ -1,2 +1,269 @@
1
- import{Fragment as V,jsx as t,jsxs as u}from"react/jsx-runtime";import{useState as f}from"react";import{AnimatePresence as T,Button as C,H5 as $,SizableText as v,Stack as L,Tabs as i,XStack as R,YStack as y,styled as k}from"tamagui";const S=["background","underline"],P={background:"Background Indicator",underline:"Underline Indicator"},D=()=>{const[a,o]=f(0),b=S[a];return u(V,{children:[b==="underline"?t(B,{}):t(z,{}),t(R,{ai:"center",space:!0,pos:"absolute",b:"$3",l:"$4",$xxs:{dsp:"none"},children:t(C,{size:"$2",onPress:()=>o(A=>(A+1)%S.length),children:P[b]})})]})},z=()=>{const[a,o]=f({activeAt:null,currentTab:"tab1",intentAt:null,prevActiveAt:null}),b=n=>o({...a,currentTab:n}),A=n=>o({...a,intentAt:n}),h=n=>o({...a,prevActiveAt:a.activeAt,activeAt:n}),{activeAt:e,intentAt:r,prevActiveAt:l,currentTab:s}=a,c=(()=>!e||!l||e.x===l.x?0:e.x>l.x?-1:1)(),m=c===1?"isLeft":c===-1?"isRight":"defaultFade",p=c===1?"isRight":c===-1?"isLeft":"defaultFade",d=(n,x)=>{n==="select"?h(x):A(x)};return u(i,{value:s,onValueChange:b,orientation:"horizontal",size:"$4",padding:"$2",height:150,flexDirection:"column",activationMode:"manual",backgroundColor:"$background",borderRadius:"$4",position:"relative",children:[u(y,{children:[t(T,{children:r&&t(g,{borderRadius:"$4",width:r.width,height:r.height,x:r.x,y:r.y})}),t(T,{children:e&&t(g,{borderRadius:"$4",theme:"active",width:e.width,height:e.height,x:e.x,y:e.y})}),u(i.List,{disablePassBorderRadius:!0,loop:!1,"aria-label":"Manage your account",space:"$2",backgroundColor:"transparent",children:[t(i.Tab,{unstyled:!0,value:"tab1",onInteraction:d,children:t(v,{children:"Profile"})}),t(i.Tab,{unstyled:!0,value:"tab2",onInteraction:d,children:t(v,{children:"Connections"})}),t(i.Tab,{unstyled:!0,value:"tab3",onInteraction:d,children:t(v,{children:"Notifications"})})]})]}),t(T,{exitBeforeEnter:!0,enterVariant:m,exitVariant:p,children:t(I,{animation:"100ms",x:0,opacity:1,flex:1,children:t(i.Content,{value:s,forceMount:!0,flex:1,justifyContent:"center",children:t($,{textAlign:"center",children:s})})},s)})]})},B=()=>{const[a,o]=f({activeAt:null,currentTab:"tab1",intentAt:null,prevActiveAt:null}),b=n=>o({...a,currentTab:n}),A=n=>o({...a,intentAt:n}),h=n=>o({...a,prevActiveAt:a.activeAt,activeAt:n}),{activeAt:e,intentAt:r,prevActiveAt:l,currentTab:s}=a,c=(()=>!e||!l||e.x===l.x?0:e.x>l.x?-1:1)(),m=c===1?"isLeft":c===-1?"isRight":"defaultFade",p=c===1?"isRight":c===-1?"isLeft":"defaultFade",d=(n,x)=>{n==="select"?h(x):A(x)};return u(i,{value:s,onValueChange:b,orientation:"horizontal",size:"$4",height:150,flexDirection:"column",activationMode:"manual",backgroundColor:"$background",borderRadius:"$4",children:[u(y,{children:[t(T,{children:r&&t(g,{width:r.width,height:"$0.5",x:r.x,bottom:0})}),t(T,{children:e&&t(g,{theme:"active",active:!0,width:e.width,height:"$0.5",x:e.x,bottom:0})}),u(i.List,{disablePassBorderRadius:!0,loop:!1,"aria-label":"Manage your account",borderBottomLeftRadius:0,borderBottomRightRadius:0,paddingBottom:"$1.5",borderColor:"$color3",borderBottomWidth:"$0.5",backgroundColor:"transparent",children:[t(i.Tab,{unstyled:!0,padding:"$5",value:"tab1",onInteraction:d,children:t(v,{children:"Profile"})}),t(i.Tab,{unstyled:!0,padding:"$5",value:"tab2",onInteraction:d,children:t(v,{children:"Connections"})}),t(i.Tab,{unstyled:!0,padding:"$5",value:"tab3",onInteraction:d,children:t(v,{children:"Notifications"})})]})]}),t(T,{exitBeforeEnter:!0,enterVariant:m,exitVariant:p,children:t(I,{animation:"100ms",x:0,opacity:1,flex:1,children:t(i.Content,{value:s,forceMount:!0,flex:1,justifyContent:"center",children:t($,{textAlign:"center",children:s})})},s)})]})},g=k(L,{position:"absolute",backgroundColor:"$color5",opacity:.7,animation:"100ms",enterStyle:{opacity:0},exitStyle:{opacity:0},variants:{active:{true:{backgroundColor:"$color8",opacity:.6}}}}),I=k(y,{variants:{isLeft:{true:{x:-25,opacity:0}},isRight:{true:{x:25,opacity:0}},defaultFade:{true:{opacity:0}}}});export{D as TabsAdvancedDemo};
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ import {
4
+ AnimatePresence,
5
+ Button,
6
+ H5,
7
+ SizableText,
8
+ Stack,
9
+ Tabs,
10
+ XStack,
11
+ YStack,
12
+ styled
13
+ } from "tamagui";
14
+ const demos = ["background", "underline"];
15
+ const demosTitle = {
16
+ background: "Background Indicator",
17
+ underline: "Underline Indicator"
18
+ };
19
+ const TabsAdvancedDemo = () => {
20
+ const [demoIndex, setDemoIndex] = useState(0);
21
+ const demo = demos[demoIndex];
22
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
23
+ demo === "underline" ? /* @__PURE__ */ jsx(TabsAdvancedUnderline, {}) : /* @__PURE__ */ jsx(TabsAdvancedBackground, {}),
24
+ /* @__PURE__ */ jsx(XStack, { ai: "center", space: true, pos: "absolute", b: "$3", l: "$4", $xxs: { dsp: "none" }, children: /* @__PURE__ */ jsx(Button, { size: "$2", onPress: () => setDemoIndex((x) => (x + 1) % demos.length), children: demosTitle[demo] }) })
25
+ ] });
26
+ };
27
+ const TabsAdvancedBackground = () => {
28
+ const [tabState, setTabState] = useState({
29
+ activeAt: null,
30
+ currentTab: "tab1",
31
+ intentAt: null,
32
+ prevActiveAt: null
33
+ });
34
+ const setCurrentTab = (currentTab2) => setTabState({ ...tabState, currentTab: currentTab2 });
35
+ const setIntentIndicator = (intentAt2) => setTabState({ ...tabState, intentAt: intentAt2 });
36
+ const setActiveIndicator = (activeAt2) => setTabState({ ...tabState, prevActiveAt: tabState.activeAt, activeAt: activeAt2 });
37
+ const { activeAt, intentAt, prevActiveAt, currentTab } = tabState;
38
+ const direction = (() => {
39
+ if (!activeAt || !prevActiveAt || activeAt.x === prevActiveAt.x) {
40
+ return 0;
41
+ }
42
+ return activeAt.x > prevActiveAt.x ? -1 : 1;
43
+ })();
44
+ const enterVariant = direction === 1 ? "isLeft" : direction === -1 ? "isRight" : "defaultFade";
45
+ const exitVariant = direction === 1 ? "isRight" : direction === -1 ? "isLeft" : "defaultFade";
46
+ const handleOnInteraction = (type, layout) => {
47
+ if (type === "select") {
48
+ setActiveIndicator(layout);
49
+ } else {
50
+ setIntentIndicator(layout);
51
+ }
52
+ };
53
+ return /* @__PURE__ */ jsxs(
54
+ Tabs,
55
+ {
56
+ value: currentTab,
57
+ onValueChange: setCurrentTab,
58
+ orientation: "horizontal",
59
+ size: "$4",
60
+ padding: "$2",
61
+ height: 150,
62
+ flexDirection: "column",
63
+ activationMode: "manual",
64
+ backgroundColor: "$background",
65
+ borderRadius: "$4",
66
+ position: "relative",
67
+ children: [
68
+ /* @__PURE__ */ jsxs(YStack, { children: [
69
+ /* @__PURE__ */ jsx(AnimatePresence, { children: intentAt && /* @__PURE__ */ jsx(
70
+ TabsRovingIndicator,
71
+ {
72
+ borderRadius: "$4",
73
+ width: intentAt.width,
74
+ height: intentAt.height,
75
+ x: intentAt.x,
76
+ y: intentAt.y
77
+ }
78
+ ) }),
79
+ /* @__PURE__ */ jsx(AnimatePresence, { children: activeAt && /* @__PURE__ */ jsx(
80
+ TabsRovingIndicator,
81
+ {
82
+ borderRadius: "$4",
83
+ theme: "active",
84
+ width: activeAt.width,
85
+ height: activeAt.height,
86
+ x: activeAt.x,
87
+ y: activeAt.y
88
+ }
89
+ ) }),
90
+ /* @__PURE__ */ jsxs(
91
+ Tabs.List,
92
+ {
93
+ disablePassBorderRadius: true,
94
+ loop: false,
95
+ "aria-label": "Manage your account",
96
+ space: "$2",
97
+ backgroundColor: "transparent",
98
+ children: [
99
+ /* @__PURE__ */ jsx(Tabs.Tab, { unstyled: true, value: "tab1", onInteraction: handleOnInteraction, children: /* @__PURE__ */ jsx(SizableText, { children: "Profile" }) }),
100
+ /* @__PURE__ */ jsx(Tabs.Tab, { unstyled: true, value: "tab2", onInteraction: handleOnInteraction, children: /* @__PURE__ */ jsx(SizableText, { children: "Connections" }) }),
101
+ /* @__PURE__ */ jsx(Tabs.Tab, { unstyled: true, value: "tab3", onInteraction: handleOnInteraction, children: /* @__PURE__ */ jsx(SizableText, { children: "Notifications" }) })
102
+ ]
103
+ }
104
+ )
105
+ ] }),
106
+ /* @__PURE__ */ jsx(
107
+ AnimatePresence,
108
+ {
109
+ exitBeforeEnter: true,
110
+ enterVariant,
111
+ exitVariant,
112
+ children: /* @__PURE__ */ jsx(AnimatedYStack, { animation: "100ms", x: 0, opacity: 1, flex: 1, children: /* @__PURE__ */ jsx(Tabs.Content, { value: currentTab, forceMount: true, flex: 1, justifyContent: "center", children: /* @__PURE__ */ jsx(H5, { textAlign: "center", children: currentTab }) }) }, currentTab)
113
+ }
114
+ )
115
+ ]
116
+ }
117
+ );
118
+ };
119
+ const TabsAdvancedUnderline = () => {
120
+ const [tabState, setTabState] = useState({
121
+ activeAt: null,
122
+ currentTab: "tab1",
123
+ intentAt: null,
124
+ prevActiveAt: null
125
+ });
126
+ const setCurrentTab = (currentTab2) => setTabState({ ...tabState, currentTab: currentTab2 });
127
+ const setIntentIndicator = (intentAt2) => setTabState({ ...tabState, intentAt: intentAt2 });
128
+ const setActiveIndicator = (activeAt2) => setTabState({ ...tabState, prevActiveAt: tabState.activeAt, activeAt: activeAt2 });
129
+ const { activeAt, intentAt, prevActiveAt, currentTab } = tabState;
130
+ const direction = (() => {
131
+ if (!activeAt || !prevActiveAt || activeAt.x === prevActiveAt.x) {
132
+ return 0;
133
+ }
134
+ return activeAt.x > prevActiveAt.x ? -1 : 1;
135
+ })();
136
+ const enterVariant = direction === 1 ? "isLeft" : direction === -1 ? "isRight" : "defaultFade";
137
+ const exitVariant = direction === 1 ? "isRight" : direction === -1 ? "isLeft" : "defaultFade";
138
+ const handleOnInteraction = (type, layout) => {
139
+ if (type === "select") {
140
+ setActiveIndicator(layout);
141
+ } else {
142
+ setIntentIndicator(layout);
143
+ }
144
+ };
145
+ return /* @__PURE__ */ jsxs(
146
+ Tabs,
147
+ {
148
+ value: currentTab,
149
+ onValueChange: setCurrentTab,
150
+ orientation: "horizontal",
151
+ size: "$4",
152
+ height: 150,
153
+ flexDirection: "column",
154
+ activationMode: "manual",
155
+ backgroundColor: "$background",
156
+ borderRadius: "$4",
157
+ children: [
158
+ /* @__PURE__ */ jsxs(YStack, { children: [
159
+ /* @__PURE__ */ jsx(AnimatePresence, { children: intentAt && /* @__PURE__ */ jsx(
160
+ TabsRovingIndicator,
161
+ {
162
+ width: intentAt.width,
163
+ height: "$0.5",
164
+ x: intentAt.x,
165
+ bottom: 0
166
+ }
167
+ ) }),
168
+ /* @__PURE__ */ jsx(AnimatePresence, { children: activeAt && /* @__PURE__ */ jsx(
169
+ TabsRovingIndicator,
170
+ {
171
+ theme: "active",
172
+ active: true,
173
+ width: activeAt.width,
174
+ height: "$0.5",
175
+ x: activeAt.x,
176
+ bottom: 0
177
+ }
178
+ ) }),
179
+ /* @__PURE__ */ jsxs(
180
+ Tabs.List,
181
+ {
182
+ disablePassBorderRadius: true,
183
+ loop: false,
184
+ "aria-label": "Manage your account",
185
+ borderBottomLeftRadius: 0,
186
+ borderBottomRightRadius: 0,
187
+ paddingBottom: "$1.5",
188
+ borderColor: "$color3",
189
+ borderBottomWidth: "$0.5",
190
+ backgroundColor: "transparent",
191
+ children: [
192
+ /* @__PURE__ */ jsx(
193
+ Tabs.Tab,
194
+ {
195
+ unstyled: true,
196
+ padding: "$5",
197
+ value: "tab1",
198
+ onInteraction: handleOnInteraction,
199
+ children: /* @__PURE__ */ jsx(SizableText, { children: "Profile" })
200
+ }
201
+ ),
202
+ /* @__PURE__ */ jsx(
203
+ Tabs.Tab,
204
+ {
205
+ unstyled: true,
206
+ padding: "$5",
207
+ value: "tab2",
208
+ onInteraction: handleOnInteraction,
209
+ children: /* @__PURE__ */ jsx(SizableText, { children: "Connections" })
210
+ }
211
+ ),
212
+ /* @__PURE__ */ jsx(
213
+ Tabs.Tab,
214
+ {
215
+ unstyled: true,
216
+ padding: "$5",
217
+ value: "tab3",
218
+ onInteraction: handleOnInteraction,
219
+ children: /* @__PURE__ */ jsx(SizableText, { children: "Notifications" })
220
+ }
221
+ )
222
+ ]
223
+ }
224
+ )
225
+ ] }),
226
+ /* @__PURE__ */ jsx(
227
+ AnimatePresence,
228
+ {
229
+ exitBeforeEnter: true,
230
+ enterVariant,
231
+ exitVariant,
232
+ children: /* @__PURE__ */ jsx(AnimatedYStack, { animation: "100ms", x: 0, opacity: 1, flex: 1, children: /* @__PURE__ */ jsx(Tabs.Content, { value: currentTab, forceMount: true, flex: 1, justifyContent: "center", children: /* @__PURE__ */ jsx(H5, { textAlign: "center", children: currentTab }) }) }, currentTab)
233
+ }
234
+ )
235
+ ]
236
+ }
237
+ );
238
+ };
239
+ const TabsRovingIndicator = styled(Stack, {
240
+ position: "absolute",
241
+ backgroundColor: "$color5",
242
+ opacity: 0.7,
243
+ animation: "100ms",
244
+ enterStyle: {
245
+ opacity: 0
246
+ },
247
+ exitStyle: {
248
+ opacity: 0
249
+ },
250
+ variants: {
251
+ active: {
252
+ true: {
253
+ backgroundColor: "$color8",
254
+ opacity: 0.6
255
+ }
256
+ }
257
+ }
258
+ });
259
+ const AnimatedYStack = styled(YStack, {
260
+ variants: {
261
+ isLeft: { true: { x: -25, opacity: 0 } },
262
+ isRight: { true: { x: 25, opacity: 0 } },
263
+ defaultFade: { true: { opacity: 0 } }
264
+ }
265
+ });
266
+ export {
267
+ TabsAdvancedDemo
268
+ };
2
269
  //# sourceMappingURL=TabsAdvancedDemo.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/TabsAdvancedDemo.tsx"],
4
4
  "sourcesContent": ["import { useState } from 'react'\nimport {\n AnimatePresence,\n Button,\n H5,\n SizableText,\n Stack,\n TabLayout,\n Tabs,\n TabsTabProps,\n XStack,\n YStack,\n styled,\n} from 'tamagui'\n\nconst demos = ['background', 'underline'] as const\nconst demosTitle: Record<(typeof demos)[number], string> = {\n background: 'Background Indicator',\n underline: 'Underline Indicator',\n}\n\nexport const TabsAdvancedDemo = () => {\n const [demoIndex, setDemoIndex] = useState(0)\n const demo = demos[demoIndex]\n return (\n <>\n {demo === 'underline' ? <TabsAdvancedUnderline /> : <TabsAdvancedBackground />}\n\n <XStack ai=\"center\" space pos=\"absolute\" b=\"$3\" l=\"$4\" $xxs={{ dsp: 'none' }}>\n <Button size=\"$2\" onPress={() => setDemoIndex((x) => (x + 1) % demos.length)}>\n {demosTitle[demo]}\n </Button>\n </XStack>\n </>\n )\n}\n\nconst TabsAdvancedBackground = () => {\n const [tabState, setTabState] = useState<{\n currentTab: string\n /**\n * Layout of the Tab user might intend to select (hovering / focusing)\n */\n intentAt: TabLayout | null\n /**\n * Layout of the Tab user selected\n */\n activeAt: TabLayout | null\n /**\n * Used to get the direction of activation for animating the active indicator\n */\n prevActiveAt: TabLayout | null\n }>({\n activeAt: null,\n currentTab: 'tab1',\n intentAt: null,\n prevActiveAt: null,\n })\n\n const setCurrentTab = (currentTab: string) => setTabState({ ...tabState, currentTab })\n const setIntentIndicator = (intentAt) => setTabState({ ...tabState, intentAt })\n const setActiveIndicator = (activeAt) =>\n setTabState({ ...tabState, prevActiveAt: tabState.activeAt, activeAt })\n const { activeAt, intentAt, prevActiveAt, currentTab } = tabState\n\n /**\n * -1: from left\n * 0: n/a\n * 1: from right\n */\n const direction = (() => {\n if (!activeAt || !prevActiveAt || activeAt.x === prevActiveAt.x) {\n return 0\n }\n return activeAt.x > prevActiveAt.x ? -1 : 1\n })()\n\n const enterVariant =\n direction === 1 ? 'isLeft' : direction === -1 ? 'isRight' : 'defaultFade'\n const exitVariant =\n direction === 1 ? 'isRight' : direction === -1 ? 'isLeft' : 'defaultFade'\n\n const handleOnInteraction: TabsTabProps['onInteraction'] = (type, layout) => {\n if (type === 'select') {\n setActiveIndicator(layout)\n } else {\n setIntentIndicator(layout)\n }\n }\n\n return (\n <Tabs\n value={currentTab}\n onValueChange={setCurrentTab}\n orientation=\"horizontal\"\n size=\"$4\"\n padding=\"$2\"\n height={150}\n flexDirection=\"column\"\n activationMode=\"manual\"\n backgroundColor=\"$background\"\n borderRadius=\"$4\"\n position=\"relative\"\n >\n <YStack>\n <AnimatePresence>\n {intentAt && (\n <TabsRovingIndicator\n borderRadius=\"$4\"\n width={intentAt.width}\n height={intentAt.height}\n x={intentAt.x}\n y={intentAt.y}\n />\n )}\n </AnimatePresence>\n <AnimatePresence>\n {activeAt && (\n <TabsRovingIndicator\n borderRadius=\"$4\"\n theme=\"active\"\n width={activeAt.width}\n height={activeAt.height}\n x={activeAt.x}\n y={activeAt.y}\n />\n )}\n </AnimatePresence>\n\n <Tabs.List\n disablePassBorderRadius\n loop={false}\n aria-label=\"Manage your account\"\n space=\"$2\"\n backgroundColor=\"transparent\"\n >\n <Tabs.Tab unstyled value=\"tab1\" onInteraction={handleOnInteraction}>\n <SizableText>Profile</SizableText>\n </Tabs.Tab>\n <Tabs.Tab unstyled value=\"tab2\" onInteraction={handleOnInteraction}>\n <SizableText>Connections</SizableText>\n </Tabs.Tab>\n <Tabs.Tab unstyled value=\"tab3\" onInteraction={handleOnInteraction}>\n <SizableText>Notifications</SizableText>\n </Tabs.Tab>\n </Tabs.List>\n </YStack>\n\n <AnimatePresence\n exitBeforeEnter\n enterVariant={enterVariant}\n exitVariant={exitVariant}\n >\n <AnimatedYStack key={currentTab} animation=\"100ms\" x={0} opacity={1} flex={1}>\n <Tabs.Content value={currentTab} forceMount flex={1} justifyContent=\"center\">\n <H5 textAlign=\"center\">{currentTab}</H5>\n </Tabs.Content>\n </AnimatedYStack>\n </AnimatePresence>\n </Tabs>\n )\n}\n\nconst TabsAdvancedUnderline = () => {\n const [tabState, setTabState] = useState<{\n currentTab: string\n /**\n * Layout of the Tab user might intend to select (hovering / focusing)\n */\n intentAt: TabLayout | null\n /**\n * Layout of the Tab user selected\n */\n activeAt: TabLayout | null\n /**\n * Used to get the direction of activation for animating the active indicator\n */\n prevActiveAt: TabLayout | null\n }>({\n activeAt: null,\n currentTab: 'tab1',\n intentAt: null,\n prevActiveAt: null,\n })\n\n const setCurrentTab = (currentTab: string) => setTabState({ ...tabState, currentTab })\n const setIntentIndicator = (intentAt) => setTabState({ ...tabState, intentAt })\n const setActiveIndicator = (activeAt) =>\n setTabState({ ...tabState, prevActiveAt: tabState.activeAt, activeAt })\n const { activeAt, intentAt, prevActiveAt, currentTab } = tabState\n\n /**\n * -1: from left\n * 0: n/a\n * 1: from right\n */\n const direction = (() => {\n if (!activeAt || !prevActiveAt || activeAt.x === prevActiveAt.x) {\n return 0\n }\n return activeAt.x > prevActiveAt.x ? -1 : 1\n })()\n\n const enterVariant =\n direction === 1 ? 'isLeft' : direction === -1 ? 'isRight' : 'defaultFade'\n const exitVariant =\n direction === 1 ? 'isRight' : direction === -1 ? 'isLeft' : 'defaultFade'\n\n const handleOnInteraction: TabsTabProps['onInteraction'] = (type, layout) => {\n if (type === 'select') {\n setActiveIndicator(layout)\n } else {\n setIntentIndicator(layout)\n }\n }\n\n return (\n <Tabs\n value={currentTab}\n onValueChange={setCurrentTab}\n orientation=\"horizontal\"\n size=\"$4\"\n height={150}\n flexDirection=\"column\"\n activationMode=\"manual\"\n backgroundColor=\"$background\"\n borderRadius=\"$4\"\n >\n <YStack>\n <AnimatePresence>\n {intentAt && (\n <TabsRovingIndicator\n width={intentAt.width}\n height=\"$0.5\"\n x={intentAt.x}\n bottom={0}\n />\n )}\n </AnimatePresence>\n <AnimatePresence>\n {activeAt && (\n <TabsRovingIndicator\n theme=\"active\"\n active\n width={activeAt.width}\n height=\"$0.5\"\n x={activeAt.x}\n bottom={0}\n />\n )}\n </AnimatePresence>\n <Tabs.List\n disablePassBorderRadius\n loop={false}\n aria-label=\"Manage your account\"\n borderBottomLeftRadius={0}\n borderBottomRightRadius={0}\n paddingBottom=\"$1.5\"\n borderColor=\"$color3\"\n borderBottomWidth=\"$0.5\"\n backgroundColor=\"transparent\"\n >\n <Tabs.Tab\n unstyled\n padding=\"$5\"\n value=\"tab1\"\n onInteraction={handleOnInteraction}\n >\n <SizableText>Profile</SizableText>\n </Tabs.Tab>\n <Tabs.Tab\n unstyled\n padding=\"$5\"\n value=\"tab2\"\n onInteraction={handleOnInteraction}\n >\n <SizableText>Connections</SizableText>\n </Tabs.Tab>\n <Tabs.Tab\n unstyled\n padding=\"$5\"\n value=\"tab3\"\n onInteraction={handleOnInteraction}\n >\n <SizableText>Notifications</SizableText>\n </Tabs.Tab>\n </Tabs.List>\n </YStack>\n\n <AnimatePresence\n exitBeforeEnter\n enterVariant={enterVariant}\n exitVariant={exitVariant}\n >\n <AnimatedYStack key={currentTab} animation=\"100ms\" x={0} opacity={1} flex={1}>\n <Tabs.Content value={currentTab} forceMount flex={1} justifyContent=\"center\">\n <H5 textAlign=\"center\">{currentTab}</H5>\n </Tabs.Content>\n </AnimatedYStack>\n </AnimatePresence>\n </Tabs>\n )\n}\n\nconst TabsRovingIndicator = styled(Stack, {\n position: 'absolute',\n backgroundColor: '$color5',\n opacity: 0.7,\n animation: '100ms',\n enterStyle: {\n opacity: 0,\n },\n exitStyle: {\n opacity: 0,\n },\n variants: {\n active: {\n true: {\n backgroundColor: '$color8',\n opacity: 0.6,\n },\n },\n },\n})\n\nconst AnimatedYStack = styled(YStack, {\n variants: {\n isLeft: { true: { x: -25, opacity: 0 } },\n isRight: { true: { x: 25, opacity: 0 } },\n defaultFade: { true: { opacity: 0 } },\n } as const,\n})\n"],
5
- "mappings": "AAyBI,mBAAAA,EAC0B,OAAAC,EAD1B,QAAAC,MAAA,oBAzBJ,OAAS,YAAAC,MAAgB,QACzB,OACE,mBAAAC,EACA,UAAAC,EACA,MAAAC,EACA,eAAAC,EACA,SAAAC,EAEA,QAAAC,EAEA,UAAAC,EACA,UAAAC,EACA,UAAAC,MACK,UAEP,MAAMC,EAAQ,CAAC,aAAc,WAAW,EAClCC,EAAqD,CACzD,WAAY,uBACZ,UAAW,qBACb,EAEaC,EAAmB,IAAM,CACpC,KAAM,CAACC,EAAWC,CAAY,EAAId,EAAS,CAAC,EACtCe,EAAOL,EAAMG,CAAS,EAC5B,OACEd,EAAAF,EAAA,CACG,UAAAkB,IAAS,YAAcjB,EAACkB,EAAA,EAAsB,EAAKlB,EAACmB,EAAA,EAAuB,EAE5EnB,EAACS,EAAA,CAAO,GAAG,SAAS,MAAK,GAAC,IAAI,WAAW,EAAE,KAAK,EAAE,KAAK,KAAM,CAAE,IAAK,MAAO,EACzE,SAAAT,EAACI,EAAA,CAAO,KAAK,KAAK,QAAS,IAAMY,EAAcI,IAAOA,EAAI,GAAKR,EAAM,MAAM,EACxE,SAAAC,EAAWI,CAAI,EAClB,EACF,GACF,CAEJ,EAEME,EAAyB,IAAM,CACnC,KAAM,CAACE,EAAUC,CAAW,EAAIpB,EAc7B,CACD,SAAU,KACV,WAAY,OACZ,SAAU,KACV,aAAc,IAChB,CAAC,EAEKqB,EAAiBC,GAAuBF,EAAY,CAAE,GAAGD,EAAU,WAAAG,CAAW,CAAC,EAC/EC,EAAsBC,GAAaJ,EAAY,CAAE,GAAGD,EAAU,SAAAK,CAAS,CAAC,EACxEC,EAAsBC,GAC1BN,EAAY,CAAE,GAAGD,EAAU,aAAcA,EAAS,SAAU,SAAAO,CAAS,CAAC,EAClE,CAAE,SAAAA,EAAU,SAAAF,EAAU,aAAAG,EAAc,WAAAL,CAAW,EAAIH,EAOnDS,GAAa,IACb,CAACF,GAAY,CAACC,GAAgBD,EAAS,IAAMC,EAAa,EACrD,EAEFD,EAAS,EAAIC,EAAa,EAAI,GAAK,GACzC,EAEGE,EACJD,IAAc,EAAI,SAAWA,IAAc,GAAK,UAAY,cACxDE,EACJF,IAAc,EAAI,UAAYA,IAAc,GAAK,SAAW,cAExDG,EAAqD,CAACC,EAAMC,IAAW,CACvED,IAAS,SACXP,EAAmBQ,CAAM,EAEzBV,EAAmBU,CAAM,CAE7B,EAEA,OACElC,EAACO,EAAA,CACC,MAAOgB,EACP,cAAeD,EACf,YAAY,aACZ,KAAK,KACL,QAAQ,KACR,OAAQ,IACR,cAAc,SACd,eAAe,SACf,gBAAgB,cAChB,aAAa,KACb,SAAS,WAET,UAAAtB,EAACS,EAAA,CACC,UAAAV,EAACG,EAAA,CACE,SAAAuB,GACC1B,EAACoC,EAAA,CACC,aAAa,KACb,MAAOV,EAAS,MAChB,OAAQA,EAAS,OACjB,EAAGA,EAAS,EACZ,EAAGA,EAAS,EACd,EAEJ,EACA1B,EAACG,EAAA,CACE,SAAAyB,GACC5B,EAACoC,EAAA,CACC,aAAa,KACb,MAAM,SACN,MAAOR,EAAS,MAChB,OAAQA,EAAS,OACjB,EAAGA,EAAS,EACZ,EAAGA,EAAS,EACd,EAEJ,EAEA3B,EAACO,EAAK,KAAL,CACC,wBAAuB,GACvB,KAAM,GACN,aAAW,sBACX,MAAM,KACN,gBAAgB,cAEhB,UAAAR,EAACQ,EAAK,IAAL,CAAS,SAAQ,GAAC,MAAM,OAAO,cAAeyB,EAC7C,SAAAjC,EAACM,EAAA,CAAY,mBAAO,EACtB,EACAN,EAACQ,EAAK,IAAL,CAAS,SAAQ,GAAC,MAAM,OAAO,cAAeyB,EAC7C,SAAAjC,EAACM,EAAA,CAAY,uBAAW,EAC1B,EACAN,EAACQ,EAAK,IAAL,CAAS,SAAQ,GAAC,MAAM,OAAO,cAAeyB,EAC7C,SAAAjC,EAACM,EAAA,CAAY,yBAAa,EAC5B,GACF,GACF,EAEAN,EAACG,EAAA,CACC,gBAAe,GACf,aAAc4B,EACd,YAAaC,EAEb,SAAAhC,EAACqC,EAAA,CAAgC,UAAU,QAAQ,EAAG,EAAG,QAAS,EAAG,KAAM,EACzE,SAAArC,EAACQ,EAAK,QAAL,CAAa,MAAOgB,EAAY,WAAU,GAAC,KAAM,EAAG,eAAe,SAClE,SAAAxB,EAACK,EAAA,CAAG,UAAU,SAAU,SAAAmB,EAAW,EACrC,GAHmBA,CAIrB,EACF,GACF,CAEJ,EAEMN,EAAwB,IAAM,CAClC,KAAM,CAACG,EAAUC,CAAW,EAAIpB,EAc7B,CACD,SAAU,KACV,WAAY,OACZ,SAAU,KACV,aAAc,IAChB,CAAC,EAEKqB,EAAiBC,GAAuBF,EAAY,CAAE,GAAGD,EAAU,WAAAG,CAAW,CAAC,EAC/EC,EAAsBC,GAAaJ,EAAY,CAAE,GAAGD,EAAU,SAAAK,CAAS,CAAC,EACxEC,EAAsBC,GAC1BN,EAAY,CAAE,GAAGD,EAAU,aAAcA,EAAS,SAAU,SAAAO,CAAS,CAAC,EAClE,CAAE,SAAAA,EAAU,SAAAF,EAAU,aAAAG,EAAc,WAAAL,CAAW,EAAIH,EAOnDS,GAAa,IACb,CAACF,GAAY,CAACC,GAAgBD,EAAS,IAAMC,EAAa,EACrD,EAEFD,EAAS,EAAIC,EAAa,EAAI,GAAK,GACzC,EAEGE,EACJD,IAAc,EAAI,SAAWA,IAAc,GAAK,UAAY,cACxDE,EACJF,IAAc,EAAI,UAAYA,IAAc,GAAK,SAAW,cAExDG,EAAqD,CAACC,EAAMC,IAAW,CACvED,IAAS,SACXP,EAAmBQ,CAAM,EAEzBV,EAAmBU,CAAM,CAE7B,EAEA,OACElC,EAACO,EAAA,CACC,MAAOgB,EACP,cAAeD,EACf,YAAY,aACZ,KAAK,KACL,OAAQ,IACR,cAAc,SACd,eAAe,SACf,gBAAgB,cAChB,aAAa,KAEb,UAAAtB,EAACS,EAAA,CACC,UAAAV,EAACG,EAAA,CACE,SAAAuB,GACC1B,EAACoC,EAAA,CACC,MAAOV,EAAS,MAChB,OAAO,OACP,EAAGA,EAAS,EACZ,OAAQ,EACV,EAEJ,EACA1B,EAACG,EAAA,CACE,SAAAyB,GACC5B,EAACoC,EAAA,CACC,MAAM,SACN,OAAM,GACN,MAAOR,EAAS,MAChB,OAAO,OACP,EAAGA,EAAS,EACZ,OAAQ,EACV,EAEJ,EACA3B,EAACO,EAAK,KAAL,CACC,wBAAuB,GACvB,KAAM,GACN,aAAW,sBACX,uBAAwB,EACxB,wBAAyB,EACzB,cAAc,OACd,YAAY,UACZ,kBAAkB,OAClB,gBAAgB,cAEhB,UAAAR,EAACQ,EAAK,IAAL,CACC,SAAQ,GACR,QAAQ,KACR,MAAM,OACN,cAAeyB,EAEf,SAAAjC,EAACM,EAAA,CAAY,mBAAO,EACtB,EACAN,EAACQ,EAAK,IAAL,CACC,SAAQ,GACR,QAAQ,KACR,MAAM,OACN,cAAeyB,EAEf,SAAAjC,EAACM,EAAA,CAAY,uBAAW,EAC1B,EACAN,EAACQ,EAAK,IAAL,CACC,SAAQ,GACR,QAAQ,KACR,MAAM,OACN,cAAeyB,EAEf,SAAAjC,EAACM,EAAA,CAAY,yBAAa,EAC5B,GACF,GACF,EAEAN,EAACG,EAAA,CACC,gBAAe,GACf,aAAc4B,EACd,YAAaC,EAEb,SAAAhC,EAACqC,EAAA,CAAgC,UAAU,QAAQ,EAAG,EAAG,QAAS,EAAG,KAAM,EACzE,SAAArC,EAACQ,EAAK,QAAL,CAAa,MAAOgB,EAAY,WAAU,GAAC,KAAM,EAAG,eAAe,SAClE,SAAAxB,EAACK,EAAA,CAAG,UAAU,SAAU,SAAAmB,EAAW,EACrC,GAHmBA,CAIrB,EACF,GACF,CAEJ,EAEMY,EAAsBzB,EAAOJ,EAAO,CACxC,SAAU,WACV,gBAAiB,UACjB,QAAS,GACT,UAAW,QACX,WAAY,CACV,QAAS,CACX,EACA,UAAW,CACT,QAAS,CACX,EACA,SAAU,CACR,OAAQ,CACN,KAAM,CACJ,gBAAiB,UACjB,QAAS,EACX,CACF,CACF,CACF,CAAC,EAEK8B,EAAiB1B,EAAOD,EAAQ,CACpC,SAAU,CACR,OAAQ,CAAE,KAAM,CAAE,EAAG,IAAK,QAAS,CAAE,CAAE,EACvC,QAAS,CAAE,KAAM,CAAE,EAAG,GAAI,QAAS,CAAE,CAAE,EACvC,YAAa,CAAE,KAAM,CAAE,QAAS,CAAE,CAAE,CACtC,CACF,CAAC",
6
- "names": ["Fragment", "jsx", "jsxs", "useState", "AnimatePresence", "Button", "H5", "SizableText", "Stack", "Tabs", "XStack", "YStack", "styled", "demos", "demosTitle", "TabsAdvancedDemo", "demoIndex", "setDemoIndex", "demo", "TabsAdvancedUnderline", "TabsAdvancedBackground", "x", "tabState", "setTabState", "setCurrentTab", "currentTab", "setIntentIndicator", "intentAt", "setActiveIndicator", "activeAt", "prevActiveAt", "direction", "enterVariant", "exitVariant", "handleOnInteraction", "type", "layout", "TabsRovingIndicator", "AnimatedYStack"]
5
+ "mappings": "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",
6
+ "names": ["currentTab", "intentAt", "activeAt"]
7
7
  }
@@ -1,2 +1,269 @@
1
- import{Fragment as V,jsx as t,jsxs as u}from"react/jsx-runtime";import{useState as f}from"react";import{AnimatePresence as T,Button as C,H5 as $,SizableText as v,Stack as L,Tabs as i,XStack as R,YStack as y,styled as k}from"tamagui";const S=["background","underline"],P={background:"Background Indicator",underline:"Underline Indicator"},D=()=>{const[a,o]=f(0),b=S[a];return u(V,{children:[b==="underline"?t(B,{}):t(z,{}),t(R,{ai:"center",space:!0,pos:"absolute",b:"$3",l:"$4",$xxs:{dsp:"none"},children:t(C,{size:"$2",onPress:()=>o(A=>(A+1)%S.length),children:P[b]})})]})},z=()=>{const[a,o]=f({activeAt:null,currentTab:"tab1",intentAt:null,prevActiveAt:null}),b=n=>o({...a,currentTab:n}),A=n=>o({...a,intentAt:n}),h=n=>o({...a,prevActiveAt:a.activeAt,activeAt:n}),{activeAt:e,intentAt:r,prevActiveAt:l,currentTab:s}=a,c=(()=>!e||!l||e.x===l.x?0:e.x>l.x?-1:1)(),m=c===1?"isLeft":c===-1?"isRight":"defaultFade",p=c===1?"isRight":c===-1?"isLeft":"defaultFade",d=(n,x)=>{n==="select"?h(x):A(x)};return u(i,{value:s,onValueChange:b,orientation:"horizontal",size:"$4",padding:"$2",height:150,flexDirection:"column",activationMode:"manual",backgroundColor:"$background",borderRadius:"$4",position:"relative",children:[u(y,{children:[t(T,{children:r&&t(g,{borderRadius:"$4",width:r.width,height:r.height,x:r.x,y:r.y})}),t(T,{children:e&&t(g,{borderRadius:"$4",theme:"active",width:e.width,height:e.height,x:e.x,y:e.y})}),u(i.List,{disablePassBorderRadius:!0,loop:!1,"aria-label":"Manage your account",space:"$2",backgroundColor:"transparent",children:[t(i.Tab,{unstyled:!0,value:"tab1",onInteraction:d,children:t(v,{children:"Profile"})}),t(i.Tab,{unstyled:!0,value:"tab2",onInteraction:d,children:t(v,{children:"Connections"})}),t(i.Tab,{unstyled:!0,value:"tab3",onInteraction:d,children:t(v,{children:"Notifications"})})]})]}),t(T,{exitBeforeEnter:!0,enterVariant:m,exitVariant:p,children:t(I,{animation:"100ms",x:0,opacity:1,flex:1,children:t(i.Content,{value:s,forceMount:!0,flex:1,justifyContent:"center",children:t($,{textAlign:"center",children:s})})},s)})]})},B=()=>{const[a,o]=f({activeAt:null,currentTab:"tab1",intentAt:null,prevActiveAt:null}),b=n=>o({...a,currentTab:n}),A=n=>o({...a,intentAt:n}),h=n=>o({...a,prevActiveAt:a.activeAt,activeAt:n}),{activeAt:e,intentAt:r,prevActiveAt:l,currentTab:s}=a,c=(()=>!e||!l||e.x===l.x?0:e.x>l.x?-1:1)(),m=c===1?"isLeft":c===-1?"isRight":"defaultFade",p=c===1?"isRight":c===-1?"isLeft":"defaultFade",d=(n,x)=>{n==="select"?h(x):A(x)};return u(i,{value:s,onValueChange:b,orientation:"horizontal",size:"$4",height:150,flexDirection:"column",activationMode:"manual",backgroundColor:"$background",borderRadius:"$4",children:[u(y,{children:[t(T,{children:r&&t(g,{width:r.width,height:"$0.5",x:r.x,bottom:0})}),t(T,{children:e&&t(g,{theme:"active",active:!0,width:e.width,height:"$0.5",x:e.x,bottom:0})}),u(i.List,{disablePassBorderRadius:!0,loop:!1,"aria-label":"Manage your account",borderBottomLeftRadius:0,borderBottomRightRadius:0,paddingBottom:"$1.5",borderColor:"$color3",borderBottomWidth:"$0.5",backgroundColor:"transparent",children:[t(i.Tab,{unstyled:!0,padding:"$5",value:"tab1",onInteraction:d,children:t(v,{children:"Profile"})}),t(i.Tab,{unstyled:!0,padding:"$5",value:"tab2",onInteraction:d,children:t(v,{children:"Connections"})}),t(i.Tab,{unstyled:!0,padding:"$5",value:"tab3",onInteraction:d,children:t(v,{children:"Notifications"})})]})]}),t(T,{exitBeforeEnter:!0,enterVariant:m,exitVariant:p,children:t(I,{animation:"100ms",x:0,opacity:1,flex:1,children:t(i.Content,{value:s,forceMount:!0,flex:1,justifyContent:"center",children:t($,{textAlign:"center",children:s})})},s)})]})},g=k(L,{position:"absolute",backgroundColor:"$color5",opacity:.7,animation:"100ms",enterStyle:{opacity:0},exitStyle:{opacity:0},variants:{active:{true:{backgroundColor:"$color8",opacity:.6}}}}),I=k(y,{variants:{isLeft:{true:{x:-25,opacity:0}},isRight:{true:{x:25,opacity:0}},defaultFade:{true:{opacity:0}}}});export{D as TabsAdvancedDemo};
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ import {
4
+ AnimatePresence,
5
+ Button,
6
+ H5,
7
+ SizableText,
8
+ Stack,
9
+ Tabs,
10
+ XStack,
11
+ YStack,
12
+ styled
13
+ } from "tamagui";
14
+ const demos = ["background", "underline"];
15
+ const demosTitle = {
16
+ background: "Background Indicator",
17
+ underline: "Underline Indicator"
18
+ };
19
+ const TabsAdvancedDemo = () => {
20
+ const [demoIndex, setDemoIndex] = useState(0);
21
+ const demo = demos[demoIndex];
22
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
23
+ demo === "underline" ? /* @__PURE__ */ jsx(TabsAdvancedUnderline, {}) : /* @__PURE__ */ jsx(TabsAdvancedBackground, {}),
24
+ /* @__PURE__ */ jsx(XStack, { ai: "center", space: true, pos: "absolute", b: "$3", l: "$4", $xxs: { dsp: "none" }, children: /* @__PURE__ */ jsx(Button, { size: "$2", onPress: () => setDemoIndex((x) => (x + 1) % demos.length), children: demosTitle[demo] }) })
25
+ ] });
26
+ };
27
+ const TabsAdvancedBackground = () => {
28
+ const [tabState, setTabState] = useState({
29
+ activeAt: null,
30
+ currentTab: "tab1",
31
+ intentAt: null,
32
+ prevActiveAt: null
33
+ });
34
+ const setCurrentTab = (currentTab2) => setTabState({ ...tabState, currentTab: currentTab2 });
35
+ const setIntentIndicator = (intentAt2) => setTabState({ ...tabState, intentAt: intentAt2 });
36
+ const setActiveIndicator = (activeAt2) => setTabState({ ...tabState, prevActiveAt: tabState.activeAt, activeAt: activeAt2 });
37
+ const { activeAt, intentAt, prevActiveAt, currentTab } = tabState;
38
+ const direction = (() => {
39
+ if (!activeAt || !prevActiveAt || activeAt.x === prevActiveAt.x) {
40
+ return 0;
41
+ }
42
+ return activeAt.x > prevActiveAt.x ? -1 : 1;
43
+ })();
44
+ const enterVariant = direction === 1 ? "isLeft" : direction === -1 ? "isRight" : "defaultFade";
45
+ const exitVariant = direction === 1 ? "isRight" : direction === -1 ? "isLeft" : "defaultFade";
46
+ const handleOnInteraction = (type, layout) => {
47
+ if (type === "select") {
48
+ setActiveIndicator(layout);
49
+ } else {
50
+ setIntentIndicator(layout);
51
+ }
52
+ };
53
+ return /* @__PURE__ */ jsxs(
54
+ Tabs,
55
+ {
56
+ value: currentTab,
57
+ onValueChange: setCurrentTab,
58
+ orientation: "horizontal",
59
+ size: "$4",
60
+ padding: "$2",
61
+ height: 150,
62
+ flexDirection: "column",
63
+ activationMode: "manual",
64
+ backgroundColor: "$background",
65
+ borderRadius: "$4",
66
+ position: "relative",
67
+ children: [
68
+ /* @__PURE__ */ jsxs(YStack, { children: [
69
+ /* @__PURE__ */ jsx(AnimatePresence, { children: intentAt && /* @__PURE__ */ jsx(
70
+ TabsRovingIndicator,
71
+ {
72
+ borderRadius: "$4",
73
+ width: intentAt.width,
74
+ height: intentAt.height,
75
+ x: intentAt.x,
76
+ y: intentAt.y
77
+ }
78
+ ) }),
79
+ /* @__PURE__ */ jsx(AnimatePresence, { children: activeAt && /* @__PURE__ */ jsx(
80
+ TabsRovingIndicator,
81
+ {
82
+ borderRadius: "$4",
83
+ theme: "active",
84
+ width: activeAt.width,
85
+ height: activeAt.height,
86
+ x: activeAt.x,
87
+ y: activeAt.y
88
+ }
89
+ ) }),
90
+ /* @__PURE__ */ jsxs(
91
+ Tabs.List,
92
+ {
93
+ disablePassBorderRadius: true,
94
+ loop: false,
95
+ "aria-label": "Manage your account",
96
+ space: "$2",
97
+ backgroundColor: "transparent",
98
+ children: [
99
+ /* @__PURE__ */ jsx(Tabs.Tab, { unstyled: true, value: "tab1", onInteraction: handleOnInteraction, children: /* @__PURE__ */ jsx(SizableText, { children: "Profile" }) }),
100
+ /* @__PURE__ */ jsx(Tabs.Tab, { unstyled: true, value: "tab2", onInteraction: handleOnInteraction, children: /* @__PURE__ */ jsx(SizableText, { children: "Connections" }) }),
101
+ /* @__PURE__ */ jsx(Tabs.Tab, { unstyled: true, value: "tab3", onInteraction: handleOnInteraction, children: /* @__PURE__ */ jsx(SizableText, { children: "Notifications" }) })
102
+ ]
103
+ }
104
+ )
105
+ ] }),
106
+ /* @__PURE__ */ jsx(
107
+ AnimatePresence,
108
+ {
109
+ exitBeforeEnter: true,
110
+ enterVariant,
111
+ exitVariant,
112
+ children: /* @__PURE__ */ jsx(AnimatedYStack, { animation: "100ms", x: 0, opacity: 1, flex: 1, children: /* @__PURE__ */ jsx(Tabs.Content, { value: currentTab, forceMount: true, flex: 1, justifyContent: "center", children: /* @__PURE__ */ jsx(H5, { textAlign: "center", children: currentTab }) }) }, currentTab)
113
+ }
114
+ )
115
+ ]
116
+ }
117
+ );
118
+ };
119
+ const TabsAdvancedUnderline = () => {
120
+ const [tabState, setTabState] = useState({
121
+ activeAt: null,
122
+ currentTab: "tab1",
123
+ intentAt: null,
124
+ prevActiveAt: null
125
+ });
126
+ const setCurrentTab = (currentTab2) => setTabState({ ...tabState, currentTab: currentTab2 });
127
+ const setIntentIndicator = (intentAt2) => setTabState({ ...tabState, intentAt: intentAt2 });
128
+ const setActiveIndicator = (activeAt2) => setTabState({ ...tabState, prevActiveAt: tabState.activeAt, activeAt: activeAt2 });
129
+ const { activeAt, intentAt, prevActiveAt, currentTab } = tabState;
130
+ const direction = (() => {
131
+ if (!activeAt || !prevActiveAt || activeAt.x === prevActiveAt.x) {
132
+ return 0;
133
+ }
134
+ return activeAt.x > prevActiveAt.x ? -1 : 1;
135
+ })();
136
+ const enterVariant = direction === 1 ? "isLeft" : direction === -1 ? "isRight" : "defaultFade";
137
+ const exitVariant = direction === 1 ? "isRight" : direction === -1 ? "isLeft" : "defaultFade";
138
+ const handleOnInteraction = (type, layout) => {
139
+ if (type === "select") {
140
+ setActiveIndicator(layout);
141
+ } else {
142
+ setIntentIndicator(layout);
143
+ }
144
+ };
145
+ return /* @__PURE__ */ jsxs(
146
+ Tabs,
147
+ {
148
+ value: currentTab,
149
+ onValueChange: setCurrentTab,
150
+ orientation: "horizontal",
151
+ size: "$4",
152
+ height: 150,
153
+ flexDirection: "column",
154
+ activationMode: "manual",
155
+ backgroundColor: "$background",
156
+ borderRadius: "$4",
157
+ children: [
158
+ /* @__PURE__ */ jsxs(YStack, { children: [
159
+ /* @__PURE__ */ jsx(AnimatePresence, { children: intentAt && /* @__PURE__ */ jsx(
160
+ TabsRovingIndicator,
161
+ {
162
+ width: intentAt.width,
163
+ height: "$0.5",
164
+ x: intentAt.x,
165
+ bottom: 0
166
+ }
167
+ ) }),
168
+ /* @__PURE__ */ jsx(AnimatePresence, { children: activeAt && /* @__PURE__ */ jsx(
169
+ TabsRovingIndicator,
170
+ {
171
+ theme: "active",
172
+ active: true,
173
+ width: activeAt.width,
174
+ height: "$0.5",
175
+ x: activeAt.x,
176
+ bottom: 0
177
+ }
178
+ ) }),
179
+ /* @__PURE__ */ jsxs(
180
+ Tabs.List,
181
+ {
182
+ disablePassBorderRadius: true,
183
+ loop: false,
184
+ "aria-label": "Manage your account",
185
+ borderBottomLeftRadius: 0,
186
+ borderBottomRightRadius: 0,
187
+ paddingBottom: "$1.5",
188
+ borderColor: "$color3",
189
+ borderBottomWidth: "$0.5",
190
+ backgroundColor: "transparent",
191
+ children: [
192
+ /* @__PURE__ */ jsx(
193
+ Tabs.Tab,
194
+ {
195
+ unstyled: true,
196
+ padding: "$5",
197
+ value: "tab1",
198
+ onInteraction: handleOnInteraction,
199
+ children: /* @__PURE__ */ jsx(SizableText, { children: "Profile" })
200
+ }
201
+ ),
202
+ /* @__PURE__ */ jsx(
203
+ Tabs.Tab,
204
+ {
205
+ unstyled: true,
206
+ padding: "$5",
207
+ value: "tab2",
208
+ onInteraction: handleOnInteraction,
209
+ children: /* @__PURE__ */ jsx(SizableText, { children: "Connections" })
210
+ }
211
+ ),
212
+ /* @__PURE__ */ jsx(
213
+ Tabs.Tab,
214
+ {
215
+ unstyled: true,
216
+ padding: "$5",
217
+ value: "tab3",
218
+ onInteraction: handleOnInteraction,
219
+ children: /* @__PURE__ */ jsx(SizableText, { children: "Notifications" })
220
+ }
221
+ )
222
+ ]
223
+ }
224
+ )
225
+ ] }),
226
+ /* @__PURE__ */ jsx(
227
+ AnimatePresence,
228
+ {
229
+ exitBeforeEnter: true,
230
+ enterVariant,
231
+ exitVariant,
232
+ children: /* @__PURE__ */ jsx(AnimatedYStack, { animation: "100ms", x: 0, opacity: 1, flex: 1, children: /* @__PURE__ */ jsx(Tabs.Content, { value: currentTab, forceMount: true, flex: 1, justifyContent: "center", children: /* @__PURE__ */ jsx(H5, { textAlign: "center", children: currentTab }) }) }, currentTab)
233
+ }
234
+ )
235
+ ]
236
+ }
237
+ );
238
+ };
239
+ const TabsRovingIndicator = styled(Stack, {
240
+ position: "absolute",
241
+ backgroundColor: "$color5",
242
+ opacity: 0.7,
243
+ animation: "100ms",
244
+ enterStyle: {
245
+ opacity: 0
246
+ },
247
+ exitStyle: {
248
+ opacity: 0
249
+ },
250
+ variants: {
251
+ active: {
252
+ true: {
253
+ backgroundColor: "$color8",
254
+ opacity: 0.6
255
+ }
256
+ }
257
+ }
258
+ });
259
+ const AnimatedYStack = styled(YStack, {
260
+ variants: {
261
+ isLeft: { true: { x: -25, opacity: 0 } },
262
+ isRight: { true: { x: 25, opacity: 0 } },
263
+ defaultFade: { true: { opacity: 0 } }
264
+ }
265
+ });
266
+ export {
267
+ TabsAdvancedDemo
268
+ };
2
269
  //# sourceMappingURL=TabsAdvancedDemo.mjs.map