@tamagui/core 1.0.0-alpha.38 → 1.0.0-alpha.39

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 (331) hide show
  1. package/dist/cjs/constants/constants.js +50 -0
  2. package/dist/cjs/constants/constants.js.map +7 -0
  3. package/dist/cjs/constants/platform.js +43 -0
  4. package/dist/cjs/constants/platform.js.map +7 -0
  5. package/dist/cjs/constants/pseudos.js +25 -0
  6. package/dist/cjs/constants/pseudos.js.map +7 -0
  7. package/dist/cjs/constants/rnw.js +28 -0
  8. package/dist/cjs/constants/rnw.js.map +7 -0
  9. package/dist/cjs/createComponent.js +529 -0
  10. package/dist/cjs/createComponent.js.map +7 -0
  11. package/dist/cjs/createFont.js +50 -0
  12. package/dist/cjs/createFont.js.map +7 -0
  13. package/dist/cjs/createShorthands.js +16 -0
  14. package/dist/cjs/createShorthands.js.map +7 -0
  15. package/dist/cjs/createTamagui.js +223 -0
  16. package/dist/cjs/createTamagui.js.map +7 -0
  17. package/dist/cjs/createTheme.js +13 -0
  18. package/dist/cjs/createTheme.js.map +7 -0
  19. package/dist/cjs/createTokens.js +55 -0
  20. package/dist/cjs/createTokens.js.map +7 -0
  21. package/dist/cjs/createVariable.js +47 -0
  22. package/dist/cjs/createVariable.js.map +7 -0
  23. package/dist/cjs/helpers/addStylesUsingClassname.js +79 -0
  24. package/dist/cjs/helpers/addStylesUsingClassname.js.map +7 -0
  25. package/dist/cjs/helpers/createMediaStyle.js +56 -0
  26. package/dist/cjs/helpers/createMediaStyle.js.map +7 -0
  27. package/dist/cjs/helpers/createPropMapper.js +197 -0
  28. package/dist/cjs/helpers/createPropMapper.js.map +7 -0
  29. package/dist/cjs/helpers/createTamaguiProvider.js +74 -0
  30. package/dist/cjs/helpers/createTamaguiProvider.js.map +7 -0
  31. package/dist/cjs/helpers/extendStaticConfig.js +82 -0
  32. package/dist/cjs/helpers/extendStaticConfig.js.map +7 -0
  33. package/dist/cjs/helpers/fixNativeShadow.js +14 -0
  34. package/dist/cjs/helpers/fixNativeShadow.js.map +7 -0
  35. package/dist/cjs/helpers/fixNativeShadow.native.js +40 -0
  36. package/dist/cjs/helpers/fixNativeShadow.native.js.map +7 -0
  37. package/dist/cjs/helpers/getSplitStyles.js +180 -0
  38. package/dist/cjs/helpers/getSplitStyles.js.map +7 -0
  39. package/dist/cjs/helpers/getStylesAtomic.js +117 -0
  40. package/dist/cjs/helpers/getStylesAtomic.js.map +7 -0
  41. package/dist/cjs/helpers/getStylesAtomic.native.js +16 -0
  42. package/dist/cjs/helpers/getStylesAtomic.native.js.map +7 -0
  43. package/dist/cjs/helpers/insertStyleRule.js +46 -0
  44. package/dist/cjs/helpers/insertStyleRule.js.map +7 -0
  45. package/dist/cjs/helpers/isObj.js +13 -0
  46. package/dist/cjs/helpers/isObj.js.map +7 -0
  47. package/dist/cjs/helpers/isTamaguiElement.js +33 -0
  48. package/dist/cjs/helpers/isTamaguiElement.js.map +7 -0
  49. package/dist/cjs/helpers/matchMedia.js +24 -0
  50. package/dist/cjs/helpers/matchMedia.js.map +7 -0
  51. package/dist/cjs/helpers/matchMedia.native.js +31 -0
  52. package/dist/cjs/helpers/matchMedia.native.js.map +7 -0
  53. package/dist/cjs/helpers/themeable.js +78 -0
  54. package/dist/cjs/helpers/themeable.js.map +7 -0
  55. package/dist/cjs/helpers/validate.js +82 -0
  56. package/dist/cjs/helpers/validate.js.map +7 -0
  57. package/dist/cjs/hooks/useConstant.js +37 -0
  58. package/dist/cjs/hooks/useConstant.js.map +7 -0
  59. package/dist/cjs/hooks/useFeatures.js +100 -0
  60. package/dist/cjs/hooks/useFeatures.js.map +7 -0
  61. package/dist/cjs/hooks/useMedia.js +207 -0
  62. package/dist/cjs/hooks/useMedia.js.map +7 -0
  63. package/dist/cjs/hooks/usePressable.js +50 -0
  64. package/dist/cjs/hooks/usePressable.js.map +7 -0
  65. package/dist/cjs/hooks/useTheme.js +118 -0
  66. package/dist/cjs/hooks/useTheme.js.map +7 -0
  67. package/dist/cjs/index.js +55 -0
  68. package/dist/cjs/index.js.map +7 -0
  69. package/dist/cjs/static/postProcessStyles.js +40 -0
  70. package/dist/cjs/static/postProcessStyles.js.map +7 -0
  71. package/dist/cjs/static.js +34 -0
  72. package/dist/cjs/static.js.map +7 -0
  73. package/dist/cjs/styled.js +72 -0
  74. package/dist/cjs/styled.js.map +7 -0
  75. package/dist/cjs/types.js +4 -0
  76. package/dist/cjs/types.js.map +7 -0
  77. package/dist/cjs/views/Animated.js +129 -0
  78. package/dist/cjs/views/Animated.js.map +7 -0
  79. package/dist/cjs/views/Stack.js +51 -0
  80. package/dist/cjs/views/Stack.js.map +7 -0
  81. package/dist/cjs/views/Text.js +93 -0
  82. package/dist/cjs/views/Text.js.map +7 -0
  83. package/dist/cjs/views/TextAncestorContext.js +40 -0
  84. package/dist/cjs/views/TextAncestorContext.js.map +7 -0
  85. package/dist/cjs/views/Theme.js +91 -0
  86. package/dist/cjs/views/Theme.js.map +7 -0
  87. package/dist/cjs/views/ThemeContext.js +29 -0
  88. package/dist/cjs/views/ThemeContext.js.map +7 -0
  89. package/dist/cjs/views/ThemeInverse.js +48 -0
  90. package/dist/cjs/views/ThemeInverse.js.map +7 -0
  91. package/dist/cjs/views/ThemeManagerContext.js +84 -0
  92. package/dist/cjs/views/ThemeManagerContext.js.map +7 -0
  93. package/dist/cjs/views/ThemeProvider.js +67 -0
  94. package/dist/cjs/views/ThemeProvider.js.map +7 -0
  95. package/dist/esm/constants/constants.js +14 -0
  96. package/dist/esm/constants/constants.js.map +7 -0
  97. package/dist/{constants → esm/constants}/platform.js +3 -2
  98. package/dist/esm/constants/platform.js.map +7 -0
  99. package/dist/esm/constants/pseudos.js +18 -0
  100. package/dist/esm/constants/pseudos.js.map +7 -0
  101. package/dist/esm/constants/rnw.js +22 -0
  102. package/dist/esm/constants/rnw.js.map +7 -0
  103. package/dist/esm/createComponent.js +465 -0
  104. package/dist/esm/createComponent.js.map +7 -0
  105. package/dist/esm/createFont.js +28 -0
  106. package/dist/esm/createFont.js.map +7 -0
  107. package/dist/{createShorthands.js → esm/createShorthands.js} +0 -0
  108. package/dist/esm/createShorthands.js.map +7 -0
  109. package/dist/esm/createTamagui.js +185 -0
  110. package/dist/esm/createTamagui.js.map +7 -0
  111. package/dist/esm/createTheme.js +7 -0
  112. package/dist/esm/createTheme.js.map +7 -0
  113. package/dist/{createTokens.js → esm/createTokens.js} +4 -0
  114. package/dist/esm/createTokens.js.map +7 -0
  115. package/dist/{createVariable.js → esm/createVariable.js} +6 -2
  116. package/dist/esm/createVariable.js.map +7 -0
  117. package/dist/esm/helpers/addStylesUsingClassname.js +57 -0
  118. package/dist/esm/helpers/addStylesUsingClassname.js.map +7 -0
  119. package/dist/{helpers → esm/helpers}/createMediaStyle.js +0 -0
  120. package/dist/{helpers → esm/helpers}/createMediaStyle.js.map +1 -1
  121. package/dist/esm/helpers/createPropMapper.js +162 -0
  122. package/dist/esm/helpers/createPropMapper.js.map +7 -0
  123. package/dist/{helpers → esm/helpers}/createTamaguiProvider.js +2 -20
  124. package/dist/esm/helpers/createTamaguiProvider.js.map +7 -0
  125. package/dist/esm/helpers/extendStaticConfig.js +60 -0
  126. package/dist/esm/helpers/extendStaticConfig.js.map +7 -0
  127. package/dist/esm/helpers/fixNativeShadow.js +8 -0
  128. package/dist/esm/helpers/fixNativeShadow.js.map +7 -0
  129. package/dist/esm/helpers/fixNativeShadow.native.js +34 -0
  130. package/dist/esm/helpers/fixNativeShadow.native.js.map +7 -0
  131. package/dist/{helpers → esm/helpers}/getSplitStyles.js +43 -40
  132. package/dist/esm/helpers/getSplitStyles.js.map +7 -0
  133. package/dist/esm/helpers/getStylesAtomic.js +84 -0
  134. package/dist/esm/helpers/getStylesAtomic.js.map +7 -0
  135. package/dist/esm/helpers/getStylesAtomic.native.js +10 -0
  136. package/dist/esm/helpers/getStylesAtomic.native.js.map +7 -0
  137. package/dist/{helpers → esm/helpers}/insertStyleRule.js +7 -0
  138. package/dist/esm/helpers/insertStyleRule.js.map +7 -0
  139. package/dist/esm/helpers/isObj.js +7 -0
  140. package/dist/esm/helpers/isObj.js.map +7 -0
  141. package/dist/esm/helpers/isTamaguiElement.js +11 -0
  142. package/dist/esm/helpers/isTamaguiElement.js.map +7 -0
  143. package/dist/{helpers → esm/helpers}/matchMedia.js +3 -0
  144. package/dist/esm/helpers/matchMedia.js.map +7 -0
  145. package/dist/{helpers → esm/helpers}/matchMedia.native.js +1 -0
  146. package/dist/{helpers → esm/helpers}/matchMedia.native.js.map +3 -3
  147. package/dist/{helpers → esm/helpers}/themeable.js +1 -1
  148. package/dist/{helpers → esm/helpers}/themeable.js.map +3 -3
  149. package/dist/esm/helpers/validate.js +60 -0
  150. package/dist/esm/helpers/validate.js.map +7 -0
  151. package/dist/{hooks → esm/hooks}/useConstant.js +0 -0
  152. package/dist/{hooks → esm/hooks}/useConstant.js.map +1 -1
  153. package/dist/{hooks → esm/hooks}/useFeatures.js +39 -51
  154. package/dist/esm/hooks/useFeatures.js.map +7 -0
  155. package/dist/{hooks → esm/hooks}/useMedia.js +20 -18
  156. package/dist/esm/hooks/useMedia.js.map +7 -0
  157. package/dist/{hooks → esm/hooks}/usePressable.js +2 -1
  158. package/dist/{hooks → esm/hooks}/usePressable.js.map +2 -2
  159. package/dist/{hooks → esm/hooks}/useTheme.js +28 -25
  160. package/dist/esm/hooks/useTheme.js.map +7 -0
  161. package/dist/{index.js → esm/index.js} +6 -4
  162. package/dist/esm/index.js.map +7 -0
  163. package/dist/{static → esm/static}/postProcessStyles.js +3 -3
  164. package/dist/esm/static/postProcessStyles.js.map +7 -0
  165. package/dist/{static.js → esm/static.js} +6 -1
  166. package/dist/esm/static.js.map +7 -0
  167. package/dist/esm/styled.js +21 -0
  168. package/dist/esm/styled.js.map +7 -0
  169. package/dist/{types.js → esm/types.js} +0 -0
  170. package/dist/{types.js.map → esm/types.js.map} +0 -0
  171. package/dist/{views → esm/views}/Animated.js +0 -0
  172. package/dist/{views → esm/views}/Animated.js.map +3 -3
  173. package/dist/{views → esm/views}/Stack.js +1 -1
  174. package/dist/esm/views/Stack.js.map +7 -0
  175. package/dist/esm/views/Text.js +60 -0
  176. package/dist/esm/views/Text.js.map +7 -0
  177. package/dist/esm/views/TextAncestorContext.js +18 -0
  178. package/dist/esm/views/TextAncestorContext.js.map +7 -0
  179. package/dist/{views → esm/views}/Theme.js +29 -23
  180. package/dist/esm/views/Theme.js.map +7 -0
  181. package/dist/{views → esm/views}/ThemeContext.js +0 -0
  182. package/dist/{views → esm/views}/ThemeContext.js.map +1 -1
  183. package/dist/{views → esm/views}/ThemeInverse.js +0 -1
  184. package/dist/{views → esm/views}/ThemeInverse.js.map +3 -3
  185. package/dist/{views → esm/views}/ThemeManagerContext.js +13 -6
  186. package/dist/esm/views/ThemeManagerContext.js.map +7 -0
  187. package/dist/{views → esm/views}/ThemeProvider.js +10 -10
  188. package/dist/esm/views/ThemeProvider.js.map +7 -0
  189. package/dist/jsx/constants/constants.js +13 -0
  190. package/dist/jsx/constants/platform.js +19 -0
  191. package/dist/jsx/constants/pseudos.js +17 -0
  192. package/dist/jsx/constants/rnw.js +21 -0
  193. package/dist/jsx/createComponent.js +459 -0
  194. package/dist/jsx/createFont.js +27 -0
  195. package/dist/jsx/createShorthands.js +9 -0
  196. package/dist/jsx/createTamagui.js +184 -0
  197. package/dist/jsx/createTheme.js +6 -0
  198. package/dist/jsx/createTokens.js +32 -0
  199. package/dist/jsx/createVariable.js +24 -0
  200. package/dist/jsx/helpers/addStylesUsingClassname.js +56 -0
  201. package/dist/jsx/helpers/createMediaStyle.js +33 -0
  202. package/dist/jsx/helpers/createPropMapper.js +161 -0
  203. package/dist/jsx/helpers/createTamaguiProvider.js +19 -0
  204. package/dist/jsx/helpers/extendStaticConfig.js +59 -0
  205. package/dist/jsx/helpers/fixNativeShadow.js +7 -0
  206. package/dist/jsx/helpers/fixNativeShadow.native.js +33 -0
  207. package/dist/jsx/helpers/getSplitStyles.js +149 -0
  208. package/dist/jsx/helpers/getStylesAtomic.js +83 -0
  209. package/dist/jsx/helpers/getStylesAtomic.native.js +9 -0
  210. package/dist/jsx/helpers/insertStyleRule.js +23 -0
  211. package/dist/jsx/helpers/isObj.js +6 -0
  212. package/dist/jsx/helpers/isTamaguiElement.js +10 -0
  213. package/dist/jsx/helpers/matchMedia.js +17 -0
  214. package/dist/jsx/helpers/matchMedia.native.js +8 -0
  215. package/dist/jsx/helpers/themeable.js +23 -0
  216. package/dist/jsx/helpers/validate.js +59 -0
  217. package/dist/jsx/hooks/useConstant.js +14 -0
  218. package/dist/jsx/hooks/useFeatures.js +57 -0
  219. package/dist/jsx/hooks/useMedia.js +174 -0
  220. package/dist/jsx/hooks/usePressable.js +13 -0
  221. package/dist/jsx/hooks/useTheme.js +96 -0
  222. package/dist/jsx/index.js +31 -0
  223. package/dist/jsx/static/postProcessStyles.js +17 -0
  224. package/dist/jsx/static.js +14 -0
  225. package/dist/jsx/styled.js +20 -0
  226. package/dist/jsx/types.js +0 -0
  227. package/dist/jsx/views/Animated.js +74 -0
  228. package/dist/jsx/views/Stack.js +11 -0
  229. package/dist/jsx/views/Text.js +59 -0
  230. package/dist/jsx/views/TextAncestorContext.js +15 -0
  231. package/dist/jsx/views/Theme.js +63 -0
  232. package/dist/jsx/views/ThemeContext.js +5 -0
  233. package/dist/jsx/views/ThemeInverse.js +22 -0
  234. package/dist/jsx/views/ThemeManagerContext.js +61 -0
  235. package/dist/jsx/views/ThemeProvider.js +39 -0
  236. package/package.json +6 -6
  237. package/types/constants/constants.d.ts.map +1 -0
  238. package/types/constants/platform.d.ts.map +1 -0
  239. package/types/constants/pseudos.d.ts.map +1 -0
  240. package/types/constants/rnw.d.ts.map +1 -0
  241. package/types/createComponent.d.ts.map +1 -0
  242. package/types/createFont.d.ts.map +1 -0
  243. package/types/createShorthands.d.ts.map +1 -0
  244. package/types/createTamagui.d.ts.map +1 -0
  245. package/types/createTheme.d.ts.map +1 -0
  246. package/types/createTokens.d.ts.map +1 -0
  247. package/types/createVariable.d.ts.map +1 -0
  248. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -0
  249. package/types/helpers/createMediaStyle.d.ts.map +1 -0
  250. package/types/helpers/createPropMapper.d.ts.map +1 -0
  251. package/types/helpers/createTamaguiProvider.d.ts.map +1 -0
  252. package/types/helpers/extendStaticConfig.d.ts.map +1 -0
  253. package/types/helpers/fixNativeShadow.d.ts.map +1 -0
  254. package/types/helpers/fixNativeShadow.native.d.ts.map +1 -0
  255. package/types/helpers/getSplitStyles.d.ts.map +1 -0
  256. package/types/helpers/getStylesAtomic.d.ts.map +1 -0
  257. package/types/helpers/getStylesAtomic.native.d.ts.map +1 -0
  258. package/types/helpers/insertStyleRule.d.ts.map +1 -0
  259. package/types/helpers/isObj.d.ts.map +1 -0
  260. package/types/helpers/isTamaguiElement.d.ts.map +1 -0
  261. package/types/helpers/matchMedia.d.ts.map +1 -0
  262. package/types/helpers/matchMedia.native.d.ts.map +1 -0
  263. package/types/helpers/themeable.d.ts.map +1 -0
  264. package/types/helpers/validate.d.ts.map +1 -0
  265. package/types/hooks/useConstant.d.ts.map +1 -0
  266. package/types/hooks/useFeatures.d.ts.map +1 -0
  267. package/types/hooks/useMedia.d.ts.map +1 -0
  268. package/types/hooks/usePressable.d.ts.map +1 -0
  269. package/types/hooks/useTheme.d.ts.map +1 -0
  270. package/types/index.d.ts.map +1 -0
  271. package/types/static/postProcessStyles.d.ts.map +1 -0
  272. package/types/static.d.ts.map +1 -0
  273. package/types/styled.d.ts.map +1 -0
  274. package/types/types.d.ts.map +1 -0
  275. package/types/views/Animated.d.ts.map +1 -0
  276. package/types/views/Stack.d.ts.map +1 -0
  277. package/types/views/Text.d.ts.map +1 -0
  278. package/types/views/TextAncestorContext.d.ts.map +1 -0
  279. package/types/views/Theme.d.ts.map +1 -0
  280. package/types/views/ThemeContext.d.ts.map +1 -0
  281. package/types/views/ThemeInverse.d.ts.map +1 -0
  282. package/types/views/ThemeManagerContext.d.ts.map +1 -0
  283. package/types/views/ThemeProvider.d.ts.map +1 -0
  284. package/dist/constants/constants.js +0 -32
  285. package/dist/constants/constants.js.map +0 -7
  286. package/dist/constants/platform.js.map +0 -7
  287. package/dist/constants/rnw.js +0 -10
  288. package/dist/constants/rnw.js.map +0 -7
  289. package/dist/constants/styleConstants.js +0 -59
  290. package/dist/constants/styleConstants.js.map +0 -7
  291. package/dist/createComponent.js +0 -395
  292. package/dist/createComponent.js.map +0 -7
  293. package/dist/createShorthands.js.map +0 -7
  294. package/dist/createTamagui.js +0 -107
  295. package/dist/createTamagui.js.map +0 -7
  296. package/dist/createTokens.js.map +0 -7
  297. package/dist/createVariable.js.map +0 -7
  298. package/dist/helpers/addStylesUsingClassname.js +0 -28
  299. package/dist/helpers/addStylesUsingClassname.js.map +0 -7
  300. package/dist/helpers/createTamaguiProvider.js.map +0 -7
  301. package/dist/helpers/extendStaticConfig.js +0 -158
  302. package/dist/helpers/extendStaticConfig.js.map +0 -7
  303. package/dist/helpers/fixNativeShadow.js +0 -38
  304. package/dist/helpers/fixNativeShadow.js.map +0 -7
  305. package/dist/helpers/getSplitStyles.js.map +0 -7
  306. package/dist/helpers/insertStyleRule.js.map +0 -7
  307. package/dist/helpers/matchMedia.js.map +0 -7
  308. package/dist/helpers/setIfChanged.js +0 -17
  309. package/dist/helpers/setIfChanged.js.map +0 -7
  310. package/dist/hooks/useFeatures.js.map +0 -7
  311. package/dist/hooks/useForceUpdate.js +0 -28
  312. package/dist/hooks/useForceUpdate.js.map +0 -7
  313. package/dist/hooks/useMedia.js.map +0 -7
  314. package/dist/hooks/useTheme.js.map +0 -7
  315. package/dist/index.cjs +0 -1837
  316. package/dist/index.cjs.map +0 -7
  317. package/dist/index.js.map +0 -7
  318. package/dist/static/postProcessStyles.js.map +0 -7
  319. package/dist/static.js.map +0 -7
  320. package/dist/styled.js +0 -28
  321. package/dist/styled.js.map +0 -7
  322. package/dist/testtypes.js +0 -1
  323. package/dist/testtypes.js.map +0 -7
  324. package/dist/views/Stack.js.map +0 -7
  325. package/dist/views/Text.js +0 -36
  326. package/dist/views/Text.js.map +0 -7
  327. package/dist/views/TextAncestorContext.js +0 -18
  328. package/dist/views/TextAncestorContext.js.map +0 -7
  329. package/dist/views/Theme.js.map +0 -7
  330. package/dist/views/ThemeManagerContext.js.map +0 -7
  331. package/dist/views/ThemeProvider.js.map +0 -7
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/index.ts", "../src/createComponent.tsx", "../src/constants/constants.ts", "../src/constants/platform.ts", "../src/constants/rnw.tsx", "../src/constants/styleConstants.tsx", "../src/createVariable.ts", "../src/helpers/createTamaguiProvider.tsx", "../src/views/TextAncestorContext.tsx", "../src/views/ThemeProvider.tsx", "../src/views/Theme.tsx", "../src/hooks/useConstant.tsx", "../src/views/ThemeContext.tsx", "../src/views/ThemeManagerContext.tsx", "../src/hooks/useMedia.tsx", "../src/helpers/matchMedia.ts", "../src/hooks/useForceUpdate.tsx", "../src/createTamagui.ts", "../src/helpers/addStylesUsingClassname.tsx", "../src/helpers/insertStyleRule.tsx", "../src/helpers/extendStaticConfig.ts", "../src/helpers/getSplitStyles.tsx", "../src/helpers/createMediaStyle.ts", "../src/helpers/fixNativeShadow.tsx", "../src/helpers/setIfChanged.tsx", "../src/hooks/useFeatures.tsx", "../src/hooks/usePressable.tsx", "../src/createShorthands.ts", "../src/createTokens.ts", "../src/views/Stack.tsx", "../src/views/Text.tsx", "../src/styled.ts", "../src/helpers/themeable.tsx", "../src/views/ThemeInverse.tsx", "../src/hooks/useTheme.tsx", "../src/views/Animated.tsx"],
4
- "sourcesContent": ["export * from './createComponent'\nexport * from './createShorthands'\nexport * from './createTamagui'\nexport { createTokens } from './createTokens'\nexport * from './createVariable'\nexport * from './styled'\nexport * from './types'\n\nexport * from './constants/constants'\nexport * from './constants/platform'\nexport * from './constants/rnw'\nexport * from './constants/styleConstants'\n\nexport * from './helpers/extendStaticConfig'\nexport * from './helpers/matchMedia'\nexport * from './helpers/setIfChanged'\nexport * from './helpers/themeable'\n\nexport * from './hooks/useConstant'\nexport * from './hooks/useForceUpdate'\nexport * from './hooks/useMedia'\nexport * from './hooks/useTheme'\n\nexport * from './views/Animated'\nexport * from './views/Stack'\nexport * from './views/Text'\nexport * from './views/Theme'\nexport * from './views/ThemeInverse'\nexport * from './views/ThemeProvider'\nexport * from './views/TextAncestorContext'\n", "import { concatClassName, stylePropsView } from '@tamagui/helpers'\nimport React, {\n Children,\n Fragment,\n createElement,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport { View, ViewStyle } from 'react-native'\n\nimport { stackDefaultStyles } from './constants/constants'\nimport { isTouchDevice, isWeb } from './constants/platform'\nimport { rnw } from './constants/rnw'\nimport { cssText, disabledStyle, textStyles, viewStyles } from './constants/styleConstants'\nimport { onConfiguredOnce } from './createTamagui'\nimport { addStylesUsingClassname } from './helpers/addStylesUsingClassname'\nimport { parseStaticConfig } from './helpers/extendStaticConfig'\nimport { SplitStyles, getSplitStyles } from './helpers/getSplitStyles'\nimport { setIfChanged } from './helpers/setIfChanged'\nimport { useFeatures } from './hooks/useFeatures'\nimport { useForceUpdate } from './hooks/useForceUpdate'\nimport { usePressable } from './hooks/usePressable'\nimport { StaticComponent, StaticConfig, StaticConfigParsed } from './types'\nimport { TextAncestorContext } from './views/TextAncestorContext'\nimport { ThemeManagerContext } from './views/ThemeManagerContext'\nimport { TamaguiInternalConfig } from '.'\n\nexport const mouseUps = new Set<Function>()\n\nif (typeof document !== 'undefined') {\n document.addEventListener('mouseup', () => {\n mouseUps.forEach((x) => x())\n mouseUps.clear()\n })\n}\n\ntype DefaultProps = {}\n\nexport function createComponent<A extends Object = DefaultProps>(\n configIn: Partial<StaticConfig> | StaticConfigParsed\n) {\n let staticConfig: StaticConfigParsed\n if ('parsed' in configIn) {\n staticConfig = configIn\n } else {\n staticConfig = parseStaticConfig(configIn)\n }\n\n const { defaultProps, Component, validStyles, isText } = staticConfig\n const validStyleProps = validStyles ?? stylePropsView\n\n // split out default styles vs props so we can assign it to component.defaultProps\n let splitDefaults: SplitStyles\n let tamaguiConfig: TamaguiInternalConfig\n let defaultsClassName = ''\n\n onConfiguredOnce((conf) => {\n tamaguiConfig = conf\n splitDefaults = getSplitStyles(defaultProps, staticConfig, conf)\n if (splitDefaults.classNames) {\n defaultsClassName += splitDefaults.classNames + ' '\n }\n if (splitDefaults.style) {\n defaultsClassName += addStylesUsingClassname([splitDefaults.style])\n }\n })\n\n const component = forwardRef<View, A>((props: any, forwardedRef) => {\n const {\n tag,\n hitSlop,\n children,\n pointerEvents,\n onPress,\n onPressIn,\n onPressOut,\n onHoverIn,\n onHoverOut,\n spacing,\n disabled,\n onMouseEnter,\n onMouseLeave,\n hrefAttrs,\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n onMouseDown,\n onClick,\n // TODO feature load layou hook\n onLayout,\n } = props\n\n const forceUpdate = useForceUpdate()\n const features = useFeatures(props, { forceUpdate })\n const manager = useContext(ThemeManagerContext)\n const [state, set_] = useState(() => ({\n hover: false,\n press: false,\n pressIn: false,\n theme: manager.name,\n }))\n const set = setIfChanged.bind(null, set_)\n\n // from react-native-web\n if (process.env.NODE_ENV !== 'production' && !isText && isWeb) {\n Children.toArray(props.children).forEach((item) => {\n if (typeof item === 'string') {\n console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`)\n }\n })\n }\n\n // from react-native-web\n const hasTextAncestor = useContext(TextAncestorContext)\n const hostRef = useRef(null)\n\n if (isWeb) {\n // from react-native-web\n rnw.useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n })\n }\n\n const isTracking = useRef(false)\n\n // TODO only handles tracking for re-renders i think now since conversion can be entirely done in splitprops\n // const varToVal = (value: string) => {\n // // TODO convert back to theme variable\n // isTracking.current = true\n // // TODO run over this, can likely remove\n // if (value && manager.theme && typeof manager.theme[value] !== 'undefined') {\n // return manager.theme[value]\n // }\n // return value\n // }\n\n const { viewProps, psuedos, style, classNames } = getSplitStyles(\n props,\n staticConfig,\n tamaguiConfig\n )\n\n // hasEverHadEvents prevents repareting if you remove onPress or similar...\n const internal = useRef<{ isMounted: boolean; hasEverHadEvents?: boolean }>()\n if (!internal.current) {\n internal.current = {\n isMounted: true,\n }\n }\n\n useEffect(() => {\n internal.current!.isMounted = true\n const dispose = manager?.onChangeTheme((name) => {\n if (isTracking.current) {\n set({ theme: name })\n }\n })\n return () => {\n dispose()\n mouseUps.delete(unPress)\n isTracking.current = false\n internal.current!.isMounted = false\n }\n }, [manager])\n\n // default to component\n const element = isWeb\n ? !Component || typeof Component === 'string'\n ? // default to tag, fallback to component (when both strings)\n tag || Component\n : Component\n : Component\n const ReactView = !isWeb ? View : element || (hasTextAncestor ? 'span' : 'div')\n const ReactText = !isWeb ? Text : element || 'span'\n // TODO handle onLayout\n const ViewComponent = isText ? ReactText : ReactView\n\n const numberOfLines = props['numberOfLines']\n const selectable = props['selectable']\n\n const styles = [\n hasTextAncestor ? viewStyles.inline : null,\n // from react-native-web\n ...(isWeb && isText\n ? [\n // TODO MOVE TO VARIANTS\n numberOfLines != null && numberOfLines > 1 && { WebkitLineClamp: numberOfLines },\n selectable === true && textStyles.selectable,\n selectable === false && textStyles.notSelectable,\n onPress && textStyles.pressable,\n ]\n : []),\n style,\n !isTouchDevice && !disabled && psuedos && state.hover ? psuedos.hoverStyle || null : null,\n !disabled && psuedos && state.press ? psuedos.pressStyle || null : null,\n disabled ? disabledStyle : null,\n ]\n\n const stylesClassNames = addStylesUsingClassname(styles)\n\n const classList = staticConfig.isText\n ? [\n defaultsClassName,\n // TODO MOVE TO VARIANTS\n hasTextAncestor === true && cssText.textHasAncestor,\n numberOfLines === 1 && cssText.textOneLine,\n numberOfLines != null && numberOfLines > 1 && cssText.textMultiLine,\n props.className,\n classNames,\n stylesClassNames,\n ]\n : [defaultsClassName, props.className, classNames, stylesClassNames]\n\n const supportedProps: any = viewProps //{ ...viewProps }\n\n if (isWeb) {\n const classListFlat = classList.flat().filter(Boolean).join(' ')\n const className = concatClassName(classListFlat)\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n // prettier-ignore\n console.log('className', { styles, stylesClassNames, classList, classListFlat, className })\n }\n }\n supportedProps.className = className\n } else {\n // TODO\n supportedProps.style = classList\n }\n\n if (pointerEvents) {\n supportedProps.pointerEvents = pointerEvents\n }\n\n if (isWeb) {\n // from react-native-web\n const platformMethodsRef = rnw.usePlatformMethods(supportedProps)\n const setRef = rnw.useMergeRefs(hostRef, platformMethodsRef, forwardedRef)\n supportedProps.ref = setRef\n if (props.href != null && hrefAttrs != null) {\n const { download, rel, target } = hrefAttrs\n if (download != null) {\n supportedProps.download = download\n }\n if (rel != null) {\n supportedProps.rel = rel\n }\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target\n }\n }\n } else {\n if (forwardedRef) {\n supportedProps.ref = forwardedRef\n }\n }\n\n const createEl = createElement //isWeb ? rnw.createElement : createElement\n\n //\n // TODO\n //\n // all these press events can be moved into a component that optionally renders if shouldAttach is true\n // and then calls back with props. this would do a few things:\n // 1. isolate logic for all pseudo press/hover stuff into one area more nicely\n // 2. a lot less hooks would be rendered on average\n // 3. should then let us use usePressability on web (should make ViewComponent a View if string)\n //\n //\n // see how framer motion does this:\n // https://github.com/framer/motion/blob/1d1eb5fd2bc712658a83a7881a3adb68ac56a242/src/motion/features/use-features.tsx#L16\n //\n\n const attachPress = !!((psuedos && psuedos.pressStyle) || onPress || onPressOut || onPressIn)\n const attachHover =\n isWeb &&\n !isTouchDevice &&\n !!((psuedos && psuedos.hoverStyle) || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave)\n\n // check presence to prevent reparenting bugs, allows for onPress={x ? function : undefined} usage\n // while avoiding reparenting...\n // once proper reparenting is supported, we can remove this and use that...\n const shouldAttach =\n internal.current.hasEverHadEvents ||\n attachPress ||\n attachHover ||\n 'pressStyle' in props ||\n 'onPress' in props ||\n 'onPressIn' in props ||\n 'onPressOut' in props ||\n (isWeb &&\n ('hoverStyle' in props ||\n 'onHoverIn' in props ||\n 'onHoverOut' in props ||\n 'onMouseEnter' in props ||\n 'onMouseLeave' in props))\n\n // never remove events as we wrap in a div (for now, may be able to remove..)\n if (shouldAttach) {\n internal.current.hasEverHadEvents = true\n }\n\n const unPress = useCallback(() => {\n if (!internal.current!.isMounted) return\n set({\n press: false,\n pressIn: false,\n })\n }, [])\n\n const events = shouldAttach\n ? {\n ...(!isWeb && {\n // non web\n onPressOut: (e) => {\n unPress()\n onPressOut?.(e)\n },\n }),\n ...(isWeb &&\n !isTouchDevice && {\n onMouseEnter:\n attachHover || attachPress\n ? (e) => {\n let next: Partial<typeof state> = {}\n if (attachHover) {\n next.hover = true\n }\n if (state.pressIn) {\n next.press = true\n }\n if (Object.keys(next).length) {\n set(next)\n }\n onHoverIn?.(e)\n onMouseEnter?.(e)\n }\n : undefined,\n onMouseLeave:\n attachHover || attachPress\n ? (e) => {\n let next: Partial<typeof state> = {}\n mouseUps.add(unPress)\n if (attachHover) {\n next.hover = false\n }\n if (state.pressIn) {\n next.press = false\n next.pressIn = false\n }\n if (Object.keys(next).length) {\n set(next)\n }\n onHoverOut?.(e)\n onMouseLeave?.(e)\n }\n : undefined,\n }),\n onMouseDown: attachPress\n ? (e) => {\n set({\n press: true,\n pressIn: true,\n })\n onPressIn?.(e)\n onMouseDown?.(e)\n }\n : (onPressIn as any),\n onClick: attachPress\n ? (e) => {\n e.preventDefault()\n unPress()\n onPressOut?.(e)\n onPress?.(e)\n onClick?.(e)\n }\n : (onPressOut as any),\n }\n : null\n\n if (events) {\n if (typeof ViewComponent !== 'string') {\n // TODO once we do the above we can then rely entirely on pressStyle returned here isntead of above pressStyle logic\n const [pressProps] = usePressable({\n disabled,\n hitSlop,\n onPressIn: events.onMouseDown,\n onPressOut: events.onPressOut,\n onPress,\n })\n Object.assign(supportedProps, pressProps)\n } else {\n Object.assign(supportedProps, events)\n }\n }\n\n const spacedChildrenEl = spacedChildren({\n children,\n spacing,\n flexDirection: props.flexDirection || defaultProps?.flexDirection,\n })\n\n let content = createEl(ViewComponent, supportedProps, spacedChildrenEl)\n\n const shouldWrapTextAncestor = isWeb && staticConfig.isText && !hasTextAncestor\n if (shouldWrapTextAncestor) {\n // from react-native-web\n // @ts-ignore\n content = createElement(TextAncestorContext.Provider, { value: true }, content)\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n supportedProps['debug'] = true\n console.log(' \uD83C\uDF51 props in: ', props)\n console.log(' \uD83C\uDF51 props out: ', supportedProps)\n // prettier-ignore\n console.log(' \uD83C\uDF51 other: ', { ViewComponent, viewProps, styles, psuedos, createEl, content, spacedChildrenEl, staticConfig, splitDefaults, tamaguiConfig })\n }\n }\n\n return (\n <>\n {features}\n {content}\n </>\n )\n })\n\n const config: StaticConfig = {\n validStyles: validStyleProps,\n ...staticConfig,\n // TODO shouldnt need this spread / disbaled / fullscreen\n validPropsExtra: {\n ...staticConfig.validPropsExtra,\n disabled: true,\n fullscreen: true,\n },\n }\n component['staticConfig'] = config\n\n return component as any as StaticComponent<A, void>\n}\n\n// dont used styled() here to avoid circular deps\n// keep inline to avoid circular deps\n\nexport const Spacer = createComponent({\n defaultProps: stackDefaultStyles,\n variants: {\n size: {\n '...size': (size, { tokens }) => {\n return {\n width: tokens.size[size] ?? size,\n height: tokens.size[size] ?? size,\n }\n },\n },\n direction: {\n horizontal: {\n height: 0,\n },\n vertical: {\n width: 0,\n },\n },\n },\n})\n\nexport function spacedChildren({\n children,\n spacing,\n flexDirection,\n}: {\n children: any\n spacing?: any\n flexDirection?: ViewStyle['flexDirection']\n}) {\n if (!spacing) {\n return children\n }\n const next: any[] = []\n const childrenList = Children.toArray(children)\n const len = childrenList.length\n if (len === 1) {\n return children\n }\n const spacer = (\n <Spacer\n // @ts-ignore TODO\n direction={\n flexDirection === 'row' || flexDirection === 'row-reverse' ? 'horizontal' : 'vertical'\n }\n size={spacing}\n />\n )\n for (const [index, child] of childrenList.entries()) {\n next.push(child)\n if (index === len - 1) {\n break\n }\n const key = `${child?.['key'] ?? index}`\n next.push(createElement(Fragment, { key: key + '_spacer' }, spacer))\n }\n return next\n}\n", "import { stylePropsTextOnly, validStyles } from '@tamagui/helpers'\n\nimport { isWeb } from './platform'\n\nexport const webOnlySpecificStyleKeys = {\n userSelect: true,\n textOverflow: true,\n whiteSpace: true,\n wordWrap: true,\n selectable: true,\n cursor: true,\n}\n\nexport const validStylesText = {\n ...validStyles,\n ...stylePropsTextOnly,\n ...(isWeb && {\n ...webOnlySpecificStyleKeys,\n }),\n}\n\nexport const stackDefaultStyles = {\n alignItems: 'stretch',\n flexShrink: 0,\n // more accurately match react-native defaults on web\n ...(isWeb && {\n display: 'flex',\n flexBasis: 'auto',\n boxSizing: 'border-box',\n }),\n}\n", "// dont import things (why?)\n\nimport { useEffect, useLayoutEffect } from 'react'\nimport { Platform } from 'react-native'\n\nexport const isWeb = process.env.TARGET !== 'native' || Platform.OS === 'web'\nexport const isSSR = isWeb && typeof window === 'undefined'\n\nexport const useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect\n\nexport const isWebIOS =\n isWeb &&\n typeof window !== 'undefined' &&\n (/iPad|iPhone|iPod/.test(navigator.platform) ||\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) &&\n !window['MSStream']\n\nexport const isChrome = typeof navigator !== 'undefined' && /Chrome/.test(navigator.userAgent || '')\n\nexport const supportsTouchWeb = typeof window !== 'undefined' && 'ontouchstart' in window\nexport const isTouchDevice = !isWeb || supportsTouchWeb\n", "import { isWeb } from './platform'\n\nconst loadRNW = process.env.IS_STATIC !== 'is_static' && isWeb\n\nconst interopRequire = (src: any) => ('default' in src ? src.default : src)\n\nexport const rnw: any | null = loadRNW ? interopRequire(require('react-native-web').TamaguiExports) : null\n", "import { StyleSheet } from 'react-native'\n\nimport { isWeb } from './platform'\nimport { rnw } from './rnw'\n\nexport const cssTextStyles = {\n text: {\n display: isWeb ? 'inline' : 'flex',\n boxSizing: 'border-box',\n fontFamily: 'System',\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n },\n textHasAncestor: {\n color: 'inherit',\n font: 'inherit',\n whiteSpace: 'inherit',\n },\n textOneLine: {\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n textMultiLine: {\n display: '-webkit-box',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n WebkitBoxOrient: 'vertical',\n },\n}\n\nexport const cssText = isWeb ? rnw?.css.create(cssTextStyles) : {}\n\nexport const disabledStyle = {\n pointerEvents: 'none',\n userSelect: 'none',\n} as const\n\nexport const viewStyles = StyleSheet.create({\n inline: isWeb\n ? {\n display: 'inline-flex' as any,\n }\n : {},\n})\n\nexport const textStyles = isWeb\n ? StyleSheet.create({\n notSelectable: {\n // @ts-ignore\n userSelect: 'none',\n },\n selectable: {\n // @ts-ignore\n userSelect: 'text',\n },\n pressable: {\n // @ts-ignore\n cursor: 'pointer',\n },\n })\n : {}\n", "export class Variable {\n val: string\n name: string\n variable: string\n constructor({ val, name }: VariableIn) {\n this.val = typeof val === 'string' ? val : `${val}px`\n this.name = name\n this.variable = `var(--${name})`\n }\n}\n\ntype VariableIn = { val: string | number; name: string }\n\nexport const createVariable = (props: VariableIn) => new Variable(props)\n\nexport function isVariable(v: Variable | any): v is Variable {\n return v instanceof Variable\n}\n", "import { OverlayProvider } from '@react-native-aria/overlays'\nimport * as React from 'react'\nimport { Platform } from 'react-native'\nimport {\n Metrics,\n SafeAreaProvider,\n initialWindowMetrics as defaultInitialWindowMetrics,\n} from 'react-native-safe-area-context'\n\nimport { TamaguiProviderProps } from '../types'\nimport { TextAncestorProvider } from '../views/TextAncestorContext'\nimport { ThemeProvider, ThemeProviderProps } from '../views/ThemeProvider'\n\nexport function createTamaguiProvider(themeProps: ThemeProviderProps) {\n let defaultMetrics: Metrics | null = null\n return function TamaguiProvider({\n initialWindowMetrics,\n fallback,\n children,\n ...themePropsProvider\n }: TamaguiProviderProps) {\n if (!initialWindowMetrics && !defaultMetrics) {\n defaultMetrics = Platform.select({\n web: {\n frame: { x: 0, y: 0, width: 0, height: 0 },\n insets: { top: 0, left: 0, right: 0, bottom: 0 },\n },\n default: defaultInitialWindowMetrics,\n })\n }\n return (\n <TextAncestorProvider>\n <OverlayProvider>\n <SafeAreaProvider initialMetrics={initialWindowMetrics ?? defaultMetrics}>\n <ThemeProvider {...themeProps} {...themePropsProvider}>\n <React.Suspense fallback={fallback || null}>{children}</React.Suspense>\n </ThemeProvider>\n </SafeAreaProvider>\n </OverlayProvider>\n </TextAncestorProvider>\n )\n }\n}\n", "import React from 'react'\n\nimport { rnw } from '../constants/rnw'\n\nexport const TextAncestorContext = rnw?.TextAncestorContext\n\nexport const TextAncestorProvider = (props) => {\n if (TextAncestorContext) {\n return <TextAncestorContext.Provider value={false}>{props.children}</TextAncestorContext.Provider>\n }\n return props.children\n}\n", "import React, { useMemo } from 'react'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { getHasConfigured, getThemeParentClassName } from '../createTamagui'\nimport { ThemeName, Themes } from '../types'\nimport { Theme } from './Theme'\nimport { ThemeContext } from './ThemeContext'\n\nexport type ThemeProviderProps = {\n themes: any\n defaultTheme: string\n disableRootThemeClass?: boolean\n children?: any\n}\n\nexport const GET_DEFAULT_THEME = '___TGUI'\n\nexport const ThemeProvider = (props: ThemeProviderProps) => {\n if (!getHasConfigured()) {\n throw new Error(`Missing configureThemes() call, add to your root file`)\n }\n\n // ensure theme is attached to root body node as well to work with modals by default\n useIsomorphicLayoutEffect(() => {\n if (props.disableRootThemeClass) {\n return\n }\n if (typeof document !== 'undefined') {\n const cns = getThemeParentClassName(`${props.defaultTheme}`).split(' ')\n cns.forEach((cn) => document.body.classList.add(cn))\n return () => {\n cns.forEach((cn) => document.body.classList.remove(cn))\n }\n }\n }, [])\n\n return (\n <ThemeContext.Provider\n value={useMemo(() => {\n console.log('wut are', props.themes)\n return new Proxy(props.themes, {\n get(target, key) {\n if (key === GET_DEFAULT_THEME) return props.defaultTheme\n return Reflect.get(target, key)\n },\n })\n }, [props.themes])}\n >\n <Theme name={props.defaultTheme} disableThemeClass={props.disableRootThemeClass}>\n {props.children}\n </Theme>\n </ThemeContext.Provider>\n )\n}\n", "import React, { useContext, useState } from 'react'\n\nimport { isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { getThemeParentClassName } from '../createTamagui'\nimport { useConstant } from '../hooks/useConstant'\nimport { ThemeName, Themes } from '../types'\nimport { ThemeContext } from './ThemeContext'\nimport { ThemeManager, ThemeManagerContext } from './ThemeManagerContext'\n\nexport type ThemeProps = {\n disableThemeClass?: boolean\n name: ThemeName | null\n children?: any\n}\n\nexport const Theme = (props: ThemeProps) => {\n const parent = useContext(ThemeManagerContext)\n const themes = useContext(ThemeContext)\n const [parentName, setParentName] = useState(parent.name || 'light')\n const { name, theme } = getTheme(props.name as string, parentName, themes)\n const themeManager = useConstant<ThemeManager>(() => {\n const manager = new ThemeManager()\n if (name) {\n manager.setActiveTheme(name, themes[name])\n }\n return manager\n })\n\n useIsomorphicLayoutEffect(() => {\n themeManager.setActiveTheme(name, theme)\n return parent.onChangeTheme((next) => {\n if (next) {\n themeManager.setActiveTheme(next, themes[next])\n setParentName(next)\n }\n })\n }, [themes, name])\n\n if (!name) {\n return props.children\n }\n\n const contents = themeManager ? (\n <ThemeManagerContext.Provider value={themeManager}>{props.children}</ThemeManagerContext.Provider>\n ) : (\n props.children\n )\n\n if (isWeb) {\n if (props.disableThemeClass) {\n return contents\n }\n return (\n <div\n className={getThemeParentClassName(name)}\n // in order to provide currentColor, set color by default\n // @ts-ignore TODO\n style={{ display: 'contents', color: themes[name]?.['color'] }}\n >\n {contents}\n </div>\n )\n }\n\n return contents\n}\n\n// this will get the theme, but if there is none, will try and find a \"parent matching\" theme:\n// so if you parent theme name is \"light\", and you pass in \"purple\" and there's no purple theme,\n// this will check if \"purple-light\" exists and if so use that.\nfunction getTheme(name: string, parentName: string, themes: Themes) {\n let fullName = name || parentName || ''\n let nextTheme = themes[fullName]\n if (name && !nextTheme) {\n const themeSchemeName = `${fullName}-${parentName}`\n if (themes[themeSchemeName]) {\n fullName = themeSchemeName\n nextTheme = themes[themeSchemeName]\n }\n }\n return { name: fullName, theme: nextTheme }\n}\n", "import { useRef } from 'react'\n\ntype ResultBox<T> = { v: T }\nexport function useConstant<T>(fn: () => T): T {\n const ref = useRef<ResultBox<T>>()\n if (!ref.current) {\n ref.current = { v: fn() }\n }\n return ref.current.v\n}\n", "import { createContext } from 'react'\n\nimport { Themes } from '../types'\n\nexport const ThemeContext = createContext<Themes>(null as any)\n", "import { createContext } from 'react'\n\nexport class ThemeManager {\n name: string | null = 'light'\n keys = new Map<any, Set<string>>()\n listeners = new Map<any, Function>()\n callbacks = new Set<Function>()\n theme = null\n\n setActiveTheme(name: string | null, theme?: any) {\n if (name === this.name) return\n this.name = name\n this.theme = theme\n this.update()\n }\n\n track(uuid: any, keys: Set<string>) {\n if (!this.name) return\n this.keys.set(uuid, keys)\n }\n\n update() {\n if (!this.name) {\n this.keys.clear()\n }\n for (const [uuid, keys] of this.keys.entries()) {\n if (keys.size) {\n this.listeners.get(uuid)?.()\n }\n }\n this.callbacks.forEach((cb) => cb(this.name))\n }\n\n onChangeTheme(cb: (name: string | null) => void) {\n this.callbacks.add(cb)\n return () => {\n this.callbacks.delete(cb)\n }\n }\n\n onUpdate(uuid: any, cb: Function) {\n this.listeners.set(uuid, cb)\n return () => {\n this.listeners.delete(uuid)\n this.keys.delete(uuid)\n }\n }\n}\n\nexport const ThemeManagerContext = createContext<ThemeManager>(new ThemeManager())\n", "import { useRef } from 'react'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { matchMedia } from '../helpers/matchMedia'\nimport {\n ConfigureMediaQueryOptions,\n MediaQueries,\n MediaQueryObject,\n MediaQueryState,\n} from '../types'\nimport { useConstant } from './useConstant'\nimport { useForceUpdate } from './useForceUpdate'\n\n// For now disabled customization of media queries, but a lot of the initial steps are in place\n\nexport const mediaState: { [key in keyof MediaQueryState]: boolean } = {} as any\nconst mediaQueryListeners: { [key: string]: Set<Function> } = {}\n\nexport const addMediaQueryListener = (key: string, cb: any) => {\n mediaQueryListeners[key] = mediaQueryListeners[key] || new Set()\n mediaQueryListeners[key].add(cb)\n}\n\nexport const removeMediaQueryListener = (key: string, cb: any) => {\n mediaQueryListeners[key].delete(cb)\n}\n\nlet hasConfigured = false\nlet mediaQueryConfigObject: MediaQueries | null = null\n\nexport const mediaQueryConfig = new Proxy<MediaQueries>({} as any, {\n get(target, key) {\n if (!mediaQueryConfigObject) {\n throw new Error(`Be sure to run configureMedia before accessing mediaQueryConfig`)\n }\n return Reflect.get(mediaQueryConfigObject, key)\n },\n ownKeys() {\n if (!mediaQueryConfigObject) {\n throw new Error(`Be sure to run configureMedia before accessing mediaQueryConfig`)\n }\n return Object.keys(mediaQueryConfigObject)\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n }\n },\n})\n\nexport const getMedia = () => {\n if (!hasConfigured) {\n throw new Error(`not configured yet`)\n }\n return mediaState\n}\n\nexport const configureMedia = ({\n queries,\n defaultActive = ['sm', 'xs'],\n}: ConfigureMediaQueryOptions = {}) => {\n if (hasConfigured) {\n console.warn(\n `Already configured mediaQueries once (you may have called getMedia() before configureMedia())`\n )\n return\n }\n hasConfigured = true\n if (queries) mediaQueryConfigObject = queries\n\n // setup\n for (const key in queries) {\n const str = mediaObjectToString(queries[key])\n try {\n const getMatch = () => matchMedia(str)\n const match = getMatch()\n if (!match || typeof match.addListener !== 'function') {\n // caught below\n throw new Error('\u26A0\uFE0F No match (seeing this in RN sometimes)')\n }\n mediaState[key] = !!match.matches\n match.addListener(() => {\n const next = !!getMatch().matches\n if (next === mediaState[key]) return\n mediaState[key] = next\n const listeners = mediaQueryListeners[key]\n if (listeners?.size) {\n for (const cb of [...listeners]) {\n cb()\n }\n }\n })\n } catch (err: any) {\n console.error('Error running media query', str, err.message, err.stack)\n const isDefaultActive = defaultActive?.includes(key as any) ?? true\n mediaState[key] = isDefaultActive\n }\n }\n}\n\ntype UseMediaState = {\n selections: { [key: string]: boolean }\n nextSelections: { [key: string]: boolean }\n isRendering: boolean\n isUnmounted: boolean\n}\n\nexport const useMedia = () => {\n const forceUpdate = useForceUpdate()\n const state = useRef() as React.MutableRefObject<UseMediaState>\n if (!state.current) {\n state.current = {\n selections: {},\n nextSelections: {},\n isUnmounted: false,\n isRendering: true,\n }\n }\n state.current.isRendering = true\n\n // track usage\n useIsomorphicLayoutEffect(() => {\n const st = state.current\n st.isRendering = false\n // delete old\n for (const key in st.selections) {\n if (!(key in st.nextSelections)) {\n removeMediaQueryListener(key, forceUpdate)\n }\n }\n // add new\n for (const key in st.nextSelections) {\n if (!(key in st.selections)) {\n addMediaQueryListener(key, forceUpdate)\n }\n }\n })\n\n // unmount\n useIsomorphicLayoutEffect(() => {\n return () => {\n const st = state.current\n st.isUnmounted = true\n const allKeys = {\n ...st.selections,\n ...st.nextSelections,\n }\n for (const key in allKeys) {\n removeMediaQueryListener(key, forceUpdate)\n }\n }\n }, [])\n\n return useConstant(() => {\n const st = state.current\n return new Proxy(mediaState, {\n get(target, key: string) {\n if (!(key in mediaState)) {\n return Reflect.get(target, key)\n }\n if (!st.isUnmounted) {\n if (st.isRendering) {\n st.nextSelections[key] = true\n }\n }\n if (key in mediaState) {\n return mediaState[key]\n }\n return Reflect.get(mediaState, key)\n },\n })\n })\n}\n\nfunction camelToHyphen(str: string) {\n return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`).toLowerCase()\n}\n\nexport function mediaObjectToString(query: string | MediaQueryObject) {\n if (typeof query === 'string') {\n return query\n }\n return Object.entries(query)\n .map(([feature, value]) => {\n feature = camelToHyphen(feature)\n if (typeof value === 'string') {\n return `(${feature}: ${value})`\n }\n if (typeof value === 'number' && /[height|width]$/.test(feature)) {\n value = `${value}px`\n }\n return `(${feature}: ${value})`\n })\n .join(' and ')\n}\n", "export const matchMedia =\n (typeof window !== 'undefined' && window.matchMedia) ||\n (function matchMediaFallback(query: string) {\n return {\n addListener() {},\n removeListener() {},\n matches: false,\n }\n } as any)\n", "import { useEffect, useRef, useState } from 'react'\n\n// ensures no updates after unmount\n\nexport function useForceUpdate() {\n const setState = useState(0)[1]\n const internal = useRef<{ update: Function; isMounted: boolean }>()\n if (!internal.current) {\n internal.current = {\n isMounted: true,\n update: () => {\n if (internal.current!.isMounted) {\n setState(Math.random())\n }\n },\n }\n }\n\n useEffect(() => {\n return () => {\n internal.current!.isMounted = false\n }\n }, [])\n\n return internal.current.update\n}\n", "import { Variable, createVariable, isVariable } from './createVariable'\nimport { createTamaguiProvider } from './helpers/createTamaguiProvider'\nimport { configureMedia } from './hooks/useMedia'\nimport {\n CreateTamaguiConfig,\n GenericTamaguiConfig,\n MediaQueryKey,\n TamaguiInternalConfig,\n TamaguiProviderProps,\n} from './types'\n\nexport type CreateTamaguiProps = TamaguiProviderProps &\n // we omit and re-declare it because we need to allow instantation types to be flexible\n // user then re-defines the types after createTamagui returns the typed object they want\n Omit<GenericTamaguiConfig, 'themes'> & {\n themes: {\n [key: string]: {\n [key: string]: string | number | Variable\n }\n }\n // for ssr/native, will default to active\n mediaQueryDefaultActive?: MediaQueryKey[]\n }\n\nlet conf: TamaguiInternalConfig | null\n\nexport const getHasConfigured = () => !!conf\nexport const getTamaguiConfig = () => conf!\n\ntype ConfigListener = (conf: TamaguiInternalConfig) => void\nconst configListeners = new Set<ConfigListener>()\nexport const onConfiguredOnce = (cb: ConfigListener) => {\n if (conf) {\n cb(conf)\n } else {\n configListeners.add(cb)\n }\n}\n\nconst THEME_CLASS_PREFIX = `theme--`\n\nexport function createTamagui<Conf extends CreateTamaguiProps>(\n config: Conf\n): Conf extends CreateTamaguiConfig<infer A, infer B, infer C, infer D>\n ? TamaguiInternalConfig<A, B, C, D>\n : unknown {\n if (conf) {\n throw new Error(`#000 createTamagui called twice`)\n }\n\n configureMedia({\n queries: config.media as any,\n defaultActive: config.mediaQueryDefaultActive,\n })\n\n const themeConfig = (() => {\n let cssRules: string[] = []\n\n // tokens\n let tokenRule = `html {`\n const varsByValue = new Map<string, Variable>()\n for (const key in config.tokens) {\n for (const skey in config.tokens[key]) {\n const v = config.tokens[key][skey]\n varsByValue[v.val] = v\n tokenRule += `--${v.name}:${typeof v.val === 'number' ? `${v.val}px` : v.val};`\n }\n }\n cssRules.push(`${tokenRule}\\n}`)\n\n // themes\n for (const themeName in config.themes) {\n const theme = config.themes[themeName]\n let vars = ''\n for (const themeKey in theme) {\n const val = theme[themeKey]\n const getVariableCSS = (inv: any) => {\n const v = varsByValue[inv] ?? inv\n return isVariable(v) ? `--${themeKey}:var(--${v.name});` : `--${themeKey}:${v};`\n }\n vars += getVariableCSS(val)\n // TODO sanity check is necessary\n // make everything a variable that gets put into css\n if (!isVariable(val)) {\n theme[themeKey] = createVariable({\n name: themeKey,\n val,\n })\n }\n }\n cssRules.push(`.${THEME_CLASS_PREFIX}${themeName} {\\n${vars}\\n}`)\n }\n\n Object.freeze(cssRules)\n\n return {\n cssRules,\n css: cssRules.join('\\n'),\n }\n })()\n\n // faster lookups\n // 1. token keys become $keys to match input\n // 2. merge in theme tokens\n const tokensParsed: any = {}\n for (const key in config.tokens) {\n tokensParsed[key] = {}\n for (const skey in config.tokens[key]) {\n tokensParsed[key][`$${skey}`] = config.tokens[key][skey]\n }\n }\n // all themes should match key and we just need variable name\n // TODO once w react native we'd want to have a reverse lookup back to value\n const themeParsed: any = {}\n const firstKey = Object.keys(config.themes)[0]\n for (const key in config.themes[firstKey]) {\n themeParsed[`$${key}`] = config.themes[firstKey][key]\n }\n\n const next: TamaguiInternalConfig = {\n ...config,\n TamaguiProvider: createTamaguiProvider({\n defaultTheme: 'light',\n ...config,\n }),\n themeConfig,\n themeParsed,\n tokensParsed,\n }\n conf = next\n\n if (configListeners.size) {\n configListeners.forEach((cb) => cb(next))\n configListeners.clear()\n }\n\n // @ts-expect-error\n return next\n}\n\nexport function getThemeParentClassName(themeName?: string | null) {\n return `theme-parent ${themeName ? `${THEME_CLASS_PREFIX}${themeName}` : ''}`\n}\n\n// insertSheet() {\n// // TODO use new react method of inserting\n// const tag = createStyleTag()\n// for (const rule of cssRules) {\n// tag?.sheet?.insertRule(rule)\n// }\n// },\n\n// function createStyleTag(): HTMLStyleElement | null {\n// if (typeof document === 'undefined') {\n// return null\n// }\n// const tag = document.createElement('style')\n// tag.className = 'tamagui-css-vars'\n// tag.setAttribute('type', 'text/css')\n// tag.appendChild(document.createTextNode(''))\n// if (!document.head) {\n// throw new Error('expected head')\n// }\n// document.head.appendChild(tag)\n// return tag\n// }\n", "import { getStylesAtomic } from '@tamagui/helpers'\n\nimport { insertStyleRule } from './insertStyleRule'\n\nlet added = {}\n\n// TODO use react method for insertings\n\nexport function addStylesUsingClassname(styles: any[]) {\n let className = ''\n for (const style of styles.flat()) {\n if (!style) continue\n for (const { identifier, rules } of getStylesAtomic(style)) {\n className += ` ${identifier}`\n if (added[identifier]) {\n continue\n }\n added[identifier] = true\n for (const rule of rules) {\n insertStyleRule(rule)\n }\n }\n }\n return className\n}\n", "export function insertStyleRule(rule: string) {\n if (typeof window === 'undefined') {\n return\n }\n const sheet = window.document.styleSheets[0]\n if (!sheet) {\n return\n }\n sheet.insertRule(rule, sheet.cssRules.length)\n}\n", "import { getTamaguiConfig } from '../createTamagui'\nimport { isVariable } from '../createVariable'\nimport { StaticComponent, StaticConfig, StaticConfigParsed, TamaguiInternalConfig } from '../types'\n\nexport function extendStaticConfig(\n Component: StaticComponent | React.Component<any>,\n config: StaticConfig = {}\n): StaticConfigParsed | null {\n if (process.env.TARGET === 'client') {\n return null\n }\n const a = Component as any\n if (!a.staticConfig) {\n a.staticConfig = {}\n // throw new Error(`No static config: ${a} ${JSON.stringify(config)}`)\n }\n return parseStaticConfig({\n // dont extend veriants? may want to but need to do typings... in styled()\n variants: config.variants,\n isText: config.isText || a.staticConfig.isText || false,\n neverFlatten: config.neverFlatten ?? a.staticConfig.neverFlatten,\n ensureOverriddenProp: config.ensureOverriddenProp ?? a.staticConfig.ensureOverriddenProp,\n validStyles: {\n ...a.staticConfig.validStyles,\n ...config.validStyles,\n },\n validPropsExtra: {\n ...a.staticConfig.validPropsExtra,\n ...config.validPropsExtra,\n },\n defaultProps: {\n ...a.staticConfig.defaultProps,\n ...config.defaultProps,\n },\n })\n}\n\nexport function parseStaticConfig(c: StaticConfig): StaticConfigParsed {\n const variants = c.variants\n let variantsParsed\n return {\n ...c,\n parsed: true,\n // @ts-ignore\n propMapper(key: string, value: any, theme: any) {\n const conf = getTamaguiConfig()\n if (!conf) {\n console.trace('err')\n return\n }\n if (variants && !variantsParsed) {\n variantsParsed = parseVariants(variants, conf)\n }\n\n // expand variants\n const variant = variantsParsed?.[key]\n if (variant) {\n const tokenKey = typeof value === 'string' && value[0] === '$' ? value.slice(1) : value\n const val = variant[tokenKey] ?? value\n if (typeof val !== 'undefined') {\n if (typeof val === 'function') {\n const res = val(tokenKey, conf)\n if (res) {\n for (const key in res) {\n const finalKey = conf.shorthands[key] || key\n if (key !== finalKey) {\n delete res[key]\n }\n const resVal = isVariable(res[key]) ? res[key].variable : res[key]\n const finalValue = resVal[0] === '$' ? getToken(finalKey, resVal, conf) : value\n console.log('dun', finalKey, finalValue)\n res[finalKey] = finalValue\n }\n }\n // handle shorthands?\n console.warn('no res', res)\n return res\n }\n // handle shorthands?\n console.warn('this should probably just be an obj', val)\n return val\n }\n }\n\n let shouldReturn = false\n\n // handle shorthands\n if (conf.shorthands[key]) {\n shouldReturn = true\n key = conf.shorthands[key]\n }\n\n if (value && value[0] === '$') {\n shouldReturn = true\n value = getToken(key, value, conf)\n }\n\n if (shouldReturn) {\n return {\n [key]: value,\n }\n }\n },\n }\n}\n\nconst getToken = (\n key: string,\n value: string,\n { tokensParsed, themeParsed }: TamaguiInternalConfig\n) => {\n if (themeParsed[value]) {\n return themeParsed[value].variable\n }\n for (const cat in tokenCategories) {\n if (tokenCategories[cat][key]) {\n const res = tokensParsed[cat][value]\n if (res) {\n return res.variable\n } else {\n return themeParsed[value].variable\n }\n }\n }\n return tokensParsed.space[key]?.[value].variable ?? value\n}\n\n// just specificy the least costly, all else go to `space` (most keys - we can exclude)\n\nconst tokenCategories = {\n size: {\n width: true,\n height: true,\n minWidth: true,\n minHeight: true,\n maxWidth: true,\n maxHeight: true,\n },\n font: {\n fontFamily: true,\n },\n fontSize: {\n fontSize: true,\n },\n lineHeight: {\n lineHeight: true,\n },\n color: {\n color: true,\n backgroundColor: true,\n borderColor: true,\n borderBottomColor: true,\n borderTopColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n },\n}\n\nfunction parseVariants(variants: any, conf: TamaguiInternalConfig) {\n return Object.keys(variants).reduce((acc, key) => {\n acc[key] = Object.keys(variants[key]).reduce((vacc, vkey) => {\n if (vkey.startsWith('...')) {\n const tokenKey = vkey.slice(3)\n const tokens = conf.tokens[tokenKey]\n for (const tkey in tokens) {\n vacc[tkey] = variants[key][vkey]\n }\n // explode\n // acc[vkey] = variants[key][vkey]\n } else {\n vacc[vkey] = variants[key][vkey]\n }\n return vacc\n }, {})\n return acc\n }, {})\n}\n", "import { getStylesAtomic, stylePropsText, stylePropsTransform, validStyles } from '@tamagui/helpers'\nimport { ViewProps, ViewStyle } from 'react-native'\n\nimport { isWeb } from '../constants/platform'\nimport { getMedia, mediaQueryConfig } from '../hooks/useMedia'\nimport { StaticConfigParsed, TamaguiInternalConfig } from '../types'\nimport { createMediaStyle } from './createMediaStyle'\nimport { fixNativeShadow } from './fixNativeShadow'\nimport { insertStyleRule } from './insertStyleRule'\n\nexport type SplitStyles = ReturnType<typeof getSplitStyles>\n\nexport const getSplitStyles = (\n props: { [key: string]: any },\n staticConfig: StaticConfigParsed,\n internalConfig: TamaguiInternalConfig\n) => {\n const validStyleProps = staticConfig.isText ? stylePropsText : validStyles\n const viewProps: ViewProps = {}\n const style: any[] = []\n let psuedos: { hoverStyle?: ViewStyle; pressStyle?: ViewStyle } | null = null\n let cur: ViewStyle | null = null\n let classNames: string[] | null = null\n for (const keyInit in props) {\n // be sure to sync next few lines below to getSubStyle (*1)\n const valInit = props[keyInit]\n\n // media\n if (keyInit[0] === '$') {\n const mediaKey = keyInit.slice(1)\n\n if (!mediaQueryConfig[mediaKey]) {\n // this isn't a media key, pass through\n viewProps[keyInit] = valInit\n continue\n }\n\n // dont check if media is active, we just apply *all* media styles\n // we combine the media props on top regular props, could proxy this\n // TODO test proxy here instead of merge\n const mediaProps = { ...props, ...valInit }\n // TODO media + hover\n const mediaStyle = getSubStyle(valInit, mediaProps, staticConfig, internalConfig)\n const mediaStyles = getStylesAtomic(mediaStyle)\n for (const style of mediaStyles) {\n const out = createMediaStyle(style, mediaKey, mediaQueryConfig)\n classNames = classNames || []\n classNames.push(out.identifier)\n insertStyleRule(out.styleRule)\n if (process.env.NODE_ENV === 'development') {\n if (props['debug'])\n console.log('mediaProp', style.identifier, out, mediaProps, mediaStyle, mediaStyles)\n }\n }\n continue\n }\n\n // pseudo\n const isPseudo =\n keyInit === 'hoverStyle' || keyInit === 'pressStyle' || keyInit === 'focusStyle'\n if (isPseudo) {\n if (!valInit) continue\n psuedos = psuedos || {}\n psuedos[keyInit] = getSubStyle(valInit, props, staticConfig, internalConfig)\n continue\n }\n\n const out = staticConfig.propMapper(keyInit, valInit, props)\n const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out)\n for (const [key, val] of expanded) {\n // const val = valueMap(valInit) ?? valInit\n const keyFirstChar = key[0]\n if (key === 'style' || (keyFirstChar === '_' && key.startsWith('_style'))) {\n if (cur) {\n // process last\n fixNativeShadow(cur, true)\n style.push(cur)\n cur = null\n }\n fixNativeShadow(val, true)\n style.push(val)\n continue\n }\n // expand flex so it merged with flexShrink etc properly\n if (key === 'flex') {\n cur = cur || {}\n // see spec for flex shorthand https://developer.mozilla.org/en-US/docs/Web/CSS/flex\n Object.assign(cur, {\n flexGrow: val,\n flexShrink: 1,\n })\n continue\n }\n if (!isWeb && key === 'pointerEvents') {\n viewProps[key] = val\n continue\n }\n if (validStyleProps[key]) {\n // transforms\n if (key in stylePropsTransform) {\n cur = cur || {}\n mergeTransform(cur, key, val)\n continue\n }\n cur = cur || {}\n cur[key] = val\n continue\n }\n // TODO this blacklist should be configurable + better set up\n if (!blacklistProps[key]) {\n viewProps[key] = val\n }\n }\n }\n // push last style\n if (cur) {\n fixNativeShadow(cur, true)\n style.push(cur)\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n console.log(' style debug:', { props, viewProps, style }, getMedia())\n }\n }\n\n return {\n viewProps,\n style,\n psuedos,\n classNames,\n }\n}\n\nconst getSubStyle = (\n styleIn: Object,\n props: any,\n staticConfig: StaticConfigParsed,\n internalConfig: TamaguiInternalConfig\n): ViewStyle => {\n const styleOut: ViewStyle = {}\n for (const key in styleIn) {\n // be sure to sync next few lines below to loop above (*1)\n const val = styleIn[key]\n const out = staticConfig.propMapper(key, val, props)\n const expanded = out === true || !out ? [[key, val]] : Object.entries(out)\n for (const [skey, sval] of expanded) {\n // const sval = valueMap(valInit)\n if (skey in stylePropsTransform) {\n mergeTransform(styleOut, skey, sval)\n } else {\n styleOut[skey] = sval\n }\n }\n }\n fixNativeShadow(styleOut, true)\n return styleOut\n}\n\n// temp\nconst blacklistProps = {\n debug: true,\n onPress: true,\n spacing: true,\n hitSlop: true,\n ...validStyles,\n ...stylePropsText,\n}\n\nconst mapTransformKeys = {\n x: 'translateX',\n y: 'translateY',\n}\n\nconst mergeTransform = (obj: ViewStyle, key: string, val: any) => {\n const transform = obj.transform\n ? Array.isArray(obj.transform)\n ? obj.transform\n : [obj.transform]\n : []\n // @ts-expect-error\n transform.push({ [mapTransformKeys[key] || key]: val })\n obj.transform = transform\n}\n\n// TODO move otu\nconst fullscreenStyle = {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n} as const\n", "import { StyleObject } from '@tamagui/helpers'\n\nimport { mediaObjectToString } from '../hooks/useMedia'\nimport { MediaQueries } from '../types'\n\n// TODO have this be used by extractMediaStyle in tamagui static\n\n// not synced to static/constants for now\nexport const MEDIA_SEP = '_'\n\nexport const createMediaStyle = (\n { identifier, rules }: StyleObject,\n mediaKey: string,\n mediaQueries: MediaQueries,\n negate?: boolean,\n importance = 0\n) => {\n const mediaKeys = Object.keys(mediaQueries)\n const mediaKeyPrecendence = mediaKeys.reduce((acc, cur, i) => {\n acc[cur] = new Array(importance + 1).fill(':root').join('')\n return acc\n }, {})\n const negKey = negate ? '0' : ''\n const ogPrefix = identifier.slice(0, identifier.indexOf('-') + 1)\n const nextIdentifier = `${identifier.replace(\n ogPrefix,\n `${ogPrefix}${MEDIA_SEP}${mediaKey}${negKey}${MEDIA_SEP}`\n )}`\n const screenStr = negate ? 'not all' : 'screen'\n const mediaSelector = mediaObjectToString(mediaQueries[mediaKey])\n const mediaQuery = `${screenStr} and ${mediaSelector}`\n const precendencePrefix = mediaKeyPrecendence[mediaKey]\n const styleInner = rules[0].replace(identifier, nextIdentifier)\n // combines media queries if they already exist\n let styleRule = ''\n if (styleInner.includes('@media')) {\n // combine\n styleRule = styleInner.replace('{', ` and ${mediaQuery} {`)\n } else {\n styleRule = `@media ${mediaQuery} { ${precendencePrefix} ${styleInner} }`\n }\n return {\n styleRule,\n identifier: nextIdentifier,\n }\n}\n", "export const defaultShadowOffset = {\n width: 0,\n height: 0,\n}\n\nconst matchRgba = /rgba\\(\\s*([\\d\\.]{1,})\\s*,\\s*([\\d\\.]{1,})\\s*,\\s*([\\d\\.]{1,})\\s*,\\s*([\\d\\.]{1,})\\s*\\)$/\n\n// used by both expansion and inline, be careful\nexport function fixNativeShadow(props: any, merge = false) {\n let res = merge ? props : {}\n if (props.shadowColor) {\n res.shadowColor = props.shadowColor\n if (!('shadowOffset' in props)) {\n res.shadowOffset = defaultShadowOffset\n }\n if (!('shadowOpacity' in props)) {\n res.shadowOpacity = 1\n const color = String(res.shadowColor).trim()\n if (color[0] === 'r' && color[3] === 'a') {\n const [_, r, g, b, a] = color.match(matchRgba) ?? []\n if (typeof a !== 'string') {\n console.warn('non valid rgba', color)\n return props\n }\n res.shadowColor = `rgb(${r},${g},${b})`\n res.shadowOpacity = +a\n } else {\n res.shadowOpacity = 1\n }\n }\n }\n return res\n}\n", "import { isEqual } from '@dish/fast-compare'\n\nexport const setIfChanged = (setter: any, next: Object) => {\n setter((prev) => {\n console.log('should test if this is the right way to check, merge objects??')\n const n = { ...prev, ...next }\n if (isEqual(prev, n)) {\n return prev\n }\n return n\n })\n}\n", "import React from 'react'\n\nimport { isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { addMediaQueryListener, removeMediaQueryListener } from './useMedia'\n\n// only needed on native\n// dynamic loading of features to avoid heavy views\n\nconst createDefinition = ({ Component, propNames }: { Component; propNames: string[] }) => ({\n isEnabled: (props: any) => propNames.some((name) => !!props[name]),\n Component,\n})\n\nconst mediaQueryPropNames = [\n '$xs',\n '$sm',\n '$md',\n '$lg',\n '$xl',\n '$xxl',\n '$pointerCoarse',\n '$hoverNone',\n '$tall',\n '$short',\n '$gtSm',\n '$notXs',\n '$gtMd',\n '$gtLg',\n]\n\nconst featureDefinitions = {\n measureLayout: createDefinition({\n Component: (props) => {\n console.log('measure', props)\n return null\n },\n propNames: ['onLayout'],\n }),\n\n // will update the parent whenever media query changes\n mediaQuery: createDefinition({\n Component: (props) => {\n if (isWeb) {\n // no need for media queries are inserted and run in css\n return\n }\n\n const keys = mediaQueryPropNames.flatMap((x) => (x in props ? x.slice(1) : []))\n useIsomorphicLayoutEffect(() => {\n for (const key of keys) {\n addMediaQueryListener(key, props._utils.forceUpdate)\n }\n return () => {\n for (const key of keys) {\n removeMediaQueryListener(key, props._utils.forceUpdate)\n }\n }\n }, [keys.join(',')])\n return null\n },\n propNames: mediaQueryPropNames,\n }),\n}\n\nconst featureNames = Object.keys(featureDefinitions)\nconst numFeatures = featureNames.length\n\nexport const useFeatures = (props: any, utils?: { forceUpdate?: Function }) => {\n const features: JSX.Element[] = []\n for (let i = 0; i < numFeatures; i++) {\n const name = featureNames[i]\n const { isEnabled, Component } = featureDefinitions[name] as any //FeatureDefinition\n if (isEnabled(props) && Component) {\n features.push(<Component key={name} {...props} _utils={utils} />)\n }\n }\n return features\n}\n", "import { Pressable, PressableProps } from 'react-native'\n\nconst getPressable = Pressable?.['type']?.['render']\n\nexport const usePressable = (props: PressableProps) => {\n const out = getPressable(props)\n const { children, style, ...pressableProps } = out.props\n return [pressableProps, style] as const\n}\n", "import { GenericShorthands } from './types'\n\n// type helper\n\nexport function createShorthands<A extends Record<string, string>>(shorthands: A): A {\n return Object.freeze(shorthands) as any\n}\n", "import { Variable, createVariable } from './createVariable'\nimport { CreateTokens } from './types'\n\n// tokens.color.dark.red ===>{ var: `color-dark-red`, val: '' }\n\nexport function createTokens(tokens: CreateTokens) {\n return setupTokens(tokens)\n}\n\nfunction setupTokens(tokens: any) {\n return mapTokensToVariables(tokens)\n}\n\nexport const mapTokensToVariables = (\n tokens: CreateTokens,\n parentPath = ''\n): CreateTokens<Variable> => {\n const res = {}\n for (const key in tokens) {\n const val = tokens[key]\n const name = parentPath ? `${parentPath}-${key}` : key\n if (val && typeof val === 'object') {\n res[key] = mapTokensToVariables(tokens[key], name)\n } else {\n res[key] = createVariable({ val, name })\n }\n }\n // @ts-expect-error\n return res\n}\n", "import { stackDefaultStyles } from '../constants/constants'\nimport { createComponent } from '../createComponent'\nimport { styled } from '../styled'\nimport { StackProps, StaticComponent } from '../types'\n\nexport const Stack = createComponent<StackProps>({\n defaultProps: {\n ...stackDefaultStyles,\n flexDirection: 'row',\n },\n})\n\n// test types\n// export const YStack = styled(Stack, {\n// flexDirection: 'column',\n// })\n// // test types\n// const x00 = <Stack missing={0} /> // should err\n// const x0 = <YStack missing={0} /> // should err\n// const x1 = (props: StackProps) => <YStack {...props} />\n// type ys = typeof YStack\n// type ysv = ys extends StaticComponent<any, infer V> ? V : unknown\n", "import { validStylesText } from '../constants/constants'\nimport { isWeb } from '../constants/platform'\nimport { cssTextStyles } from '../constants/styleConstants'\nimport { createComponent } from '../createComponent'\nimport { TextProps } from '../types'\n\nexport const Text = createComponent<TextProps>({\n isText: true,\n // TODO color: '$color'\n // TODO defaultProps add tamagui-text className if we want nice escape hatch\n // defaultProps: isWeb\n // ? {\n // // inline-block fixed transforms not working on web\n // // but inline is necessary for text nesting (italic, bold etc)\n // display: 'inline' as any,\n // }\n // : {},\n defaultProps: cssTextStyles.text,\n // shorthands: {\n // textDecorationDistance: 'textUnderlineOffset'\n // },\n variants: {\n selectable: {\n true: {\n userSelect: 'text',\n },\n },\n ellipse: {\n true: isWeb\n ? {\n display: 'inline-block',\n maxWidth: '100%',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }\n : {\n numberOfLines: 1,\n lineBreakMode: 'clip',\n },\n },\n },\n deoptProps: new Set(isWeb ? [''] : ['ellipse']),\n validPropsExtra: {\n // ellipse: true,\n textUnderlineOffset: true,\n },\n validStyles: validStylesText,\n})\n", "import { createComponent } from './createComponent'\nimport { extendStaticConfig } from './helpers/extendStaticConfig'\nimport { StaticComponent, StaticConfig, TamaguiConfig, Tokens } from './types'\nimport { Stack } from './views/Stack'\nimport { Text } from './views/Text'\n\ntype GetProps<A> = A extends StaticComponent<infer Props>\n ? Props\n : A extends React.Component<infer Props>\n ? Props\n : {}\n\nexport function styled<\n A extends StaticComponent<any> | React.Component<any>,\n Variants extends void | {\n [key: string]: {\n [key: string]:\n | Partial<GetProps<A>>\n | ((val: any, config: TamaguiConfig) => Partial<GetProps<A>>)\n }\n }\n>(\n Component: A,\n {\n variants,\n ...defaultProps\n }: GetProps<A> & {\n variants?: Variants\n }\n) {\n const staticConfig = Component?.['staticConfig'] as StaticConfig | undefined\n const ParentComponent = staticConfig ? (staticConfig.isText ? Text : Stack) : Component\n const config = extendStaticConfig(ParentComponent, {\n variants,\n defaultProps,\n })\n const component = createComponent(config!) // error is good here its on init\n Object.defineProperty(component, 'name', {\n value: `styled(${typeof Component === 'string' ? Component : Component.constructor.name})`,\n writable: false,\n })\n\n type VariantProps = Variants extends void\n ? unknown\n : {\n // ensure variants actually defined\n [key in keyof Variants]?: keyof Variants[keyof Variants] extends `...${infer VariantSpread}`\n ? VariantSpread extends keyof Tokens\n ? keyof Tokens[VariantSpread]\n : unknown\n : keyof Variants[keyof Variants]\n }\n\n return component as StaticComponent<GetProps<A> & VariantProps, VariantProps>\n}\n", "import React, { ReactElement, forwardRef } from 'react'\n\nimport { Theme } from '../views/Theme'\nimport { ThemeInverse } from '../views/ThemeInverse'\n\nexport type ThemeableProps = {\n theme?: string | null\n themeInverse?: boolean\n}\n\nexport const themeable: ThemeableHOC = function graphql<\n R extends ReactElement<any, any> | null,\n P extends ThemeableProps = {}\n>(component: (props: P) => R) {\n const withThemeComponent = forwardRef(function WithTheme({ themeInverse, ...rest }: P, ref) {\n const el = React.createElement(component, { ...rest, ref } as any) as R\n if (themeInverse) {\n return (<ThemeInverse>{el}</ThemeInverse>) as R\n }\n if (rest.theme) {\n // @ts-ignore\n return (<Theme name={rest.theme || null}>{el}</Theme>) as R\n }\n return el\n })\n\n const withTheme: {\n (props: P): R\n displayName: string\n } = withThemeComponent as any\n\n withTheme.displayName = `Themed(${(component as any)?.displayName || (component as any)?.name || 'Anonymous'})`\n\n return withTheme\n}\n\nexport interface ThemeableHOC {\n <R extends ReactElement<any, any> | null, P extends ThemeableProps = {}>(component: (props: P) => R): (\n props: P\n ) => R\n}\n", "import React from 'react'\n\nimport { useDefaultThemeName, useThemeName } from '../hooks/useTheme'\nimport { Theme } from './Theme'\n\ntype StringRecord = { [key: string]: string }\n\nlet inversions: StringRecord = {\n light: 'dark',\n dark: 'light',\n}\n\nexport function setThemeInversions(next: StringRecord) {\n inversions = next\n}\n\nexport const ThemeInverse = (props: { children: any }) => {\n const themeName = useThemeName()\n const defaultTheme = useDefaultThemeName()\n const name = inversions[themeName] || inversions[defaultTheme] || null\n console.log('todo fixme invert', { themeName, defaultTheme, next: name })\n return <Theme name={name}>{props.children}</Theme>\n}\n", "import { isEqual } from '@dish/fast-compare'\nimport React, { useContext, useEffect, useMemo, useRef, useState } from 'react'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { ThemeName } from '../types'\nimport { ThemeContext } from '../views/ThemeContext'\nimport { ThemeManagerContext } from '../views/ThemeManagerContext'\nimport { GET_DEFAULT_THEME } from '../views/ThemeProvider'\nimport { useForceUpdate } from './useForceUpdate'\n\ntype UseThemeState = {\n uuid: Object\n keys: Set<string>\n isRendering: boolean\n}\n\nexport const useThemeName = () => {\n const parent = useContext(ThemeManagerContext)\n const [name, setName] = useState(parent.name)\n useEffect(() => {\n return parent.onChangeTheme((next) => {\n setName((prev) => {\n if (prev === next) return prev\n return next\n })\n })\n }, [parent])\n return name || 'light'\n}\n\nexport const useDefaultThemeName = () => {\n return useContext(ThemeContext)[GET_DEFAULT_THEME] as any as ThemeName\n}\n\nexport const useTheme = () => {\n const forceUpdate = useForceUpdate()\n const manager = useContext(ThemeManagerContext)\n const themes = useContext(ThemeContext)\n const state = useRef() as React.MutableRefObject<UseThemeState>\n if (!state.current) {\n state.current = {\n uuid: {},\n keys: new Set(),\n isRendering: true,\n }\n }\n state.current.isRendering = true\n\n // track usage\n useIsomorphicLayoutEffect(() => {\n const st = state.current\n st.isRendering = false\n if (!isEqual(st.keys, manager.keys.get(st.uuid))) {\n manager.track(st.uuid, st.keys)\n }\n })\n\n useEffect(() => {\n return manager.onUpdate(state.current.uuid, forceUpdate)\n }, [])\n\n const theme = (manager.name ? themes[manager.name] : themes.light) ?? themes.light\n\n return useMemo(\n () => {\n return new Proxy(theme, {\n get(_, key: string) {\n const name = manager.name\n if (!name) {\n return Reflect.get(_, key)\n }\n let activeTheme = themes[name]\n if (!activeTheme) {\n console.error('No theme by name', name, 'only:', themes, 'keeping current theme')\n activeTheme = theme\n }\n const val = activeTheme[key]\n if (process.env.NODE_ENV === 'development') {\n if (typeof val === 'undefined') {\n if (typeof key === 'string') {\n try {\n if (!activeTheme) {\n throw new Error(`No theme! ${name} in ${Object.keys(themes)}`)\n }\n if (!val) {\n throw new Error(\n `No theme value \"${String(key)}\" in: ${Object.keys(activeTheme)}`\n )\n }\n } catch (err: any) {\n // no need to destroy rendering ever\n console.error(err.message, err.stack)\n }\n }\n }\n return Reflect.get(_, key)\n }\n if (state.current.isRendering) {\n state.current.keys.add(key)\n }\n return val\n },\n })\n },\n [\n /* if concurrent mode wanted put manager.name here */\n ]\n )\n}\n", "import React, { useMemo } from 'react'\nimport {\n Animated,\n PerpectiveTransform,\n RotateTransform,\n RotateXTransform,\n RotateYTransform,\n RotateZTransform,\n ScaleTransform,\n ScaleXTransform,\n ScaleYTransform,\n SkewXTransform,\n SkewYTransform,\n TranslateXTransform,\n TranslateYTransform,\n} from 'react-native'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { useConstant } from '../hooks/useConstant'\nimport { StackProps } from '../types'\nimport { Stack } from './Stack'\n\nconst defaultAnimation = {\n from: {\n opacity: 0,\n translateY: 12,\n },\n to: {\n opacity: 1,\n translateY: 0,\n },\n}\n\ntype AnimatableProps = Partial<\n Pick<StackProps, 'backgroundColor' | 'borderColor' | 'opacity'> &\n PerpectiveTransform &\n RotateTransform &\n RotateXTransform &\n RotateYTransform &\n RotateZTransform &\n ScaleTransform &\n ScaleXTransform &\n ScaleYTransform &\n TranslateXTransform &\n TranslateYTransform &\n SkewXTransform &\n SkewYTransform\n>\n\nconst styleKeys = {\n opacity: true,\n backgroundColor: true,\n borderColor: true,\n}\n\nexport type AnimatedStackProps = StackProps & {\n animateState?: 'in' | 'out'\n velocity?: number\n animation?: {\n from: AnimatableProps\n to: AnimatableProps\n }\n}\n\nexport const AnimatedStack = ({\n animateState = 'in',\n animation = defaultAnimation,\n velocity = 6,\n children,\n animated,\n ...props\n}: AnimatedStackProps) => {\n const driver = useConstant(() => {\n return new Animated.Value(0)\n })\n\n const animatedProps = useMemo(() => {\n if (!animated) {\n return null\n }\n\n const styleProps = {}\n const transform: any = []\n\n for (const key in animation.from) {\n const fromVal = animation.from[key]\n const toVal = animation.to[key]\n const interpolatedVal = driver.interpolate({\n inputRange: [0, 1],\n outputRange: [fromVal, toVal],\n })\n if (styleKeys[key]) {\n styleProps[key] = interpolatedVal\n } else {\n transform.push({\n [key]: interpolatedVal,\n })\n }\n }\n return { transform, ...styleProps }\n }, [animated, animateState])\n\n useIsomorphicLayoutEffect(() => {\n if (!animated) {\n return\n }\n Animated.spring(driver, {\n useNativeDriver: true,\n velocity,\n toValue: animateState === 'in' ? 1 : 0,\n }).start()\n }, [animated, animateState])\n\n const childrenMemo = useMemo(() => children, [children])\n\n return (\n // @ts-ignore\n <Stack animated={animated} {...props} {...animatedProps}>\n {childrenMemo}\n </Stack>\n )\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
package/dist/index.js.map DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/index.ts"],
4
- "sourcesContent": ["export * from './createComponent'\nexport * from './createShorthands'\nexport * from './createTamagui'\nexport { createTokens } from './createTokens'\nexport * from './createVariable'\nexport * from './styled'\nexport * from './types'\n\nexport * from './constants/constants'\nexport * from './constants/platform'\nexport * from './constants/rnw'\nexport * from './constants/styleConstants'\n\nexport * from './helpers/extendStaticConfig'\nexport * from './helpers/matchMedia'\nexport * from './helpers/setIfChanged'\nexport * from './helpers/themeable'\n\nexport * from './hooks/useConstant'\nexport * from './hooks/useForceUpdate'\nexport * from './hooks/useMedia'\nexport * from './hooks/useTheme'\n\nexport * from './views/Animated'\nexport * from './views/Stack'\nexport * from './views/Text'\nexport * from './views/Theme'\nexport * from './views/ThemeInverse'\nexport * from './views/ThemeProvider'\nexport * from './views/TextAncestorContext'\n"],
5
- "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/static/postProcessStyles.tsx"],
4
- "sourcesContent": ["import { getSplitStyles } from '../helpers/getSplitStyles'\nimport { StaticConfigParsed, TamaguiInternalConfig } from '../types'\n\n// used only by static extractor\n\nexport const postProcessStyles = (\n inStyles: any,\n staticConfig: StaticConfigParsed,\n tamaguiConfig: TamaguiInternalConfig\n) => {\n const { style, viewProps, psuedos, classNames } = getSplitStyles(inStyles, staticConfig, tamaguiConfig)\n // flattening\n const next = {}\n for (const s of style) {\n if (!s) continue\n Object.assign(next, s)\n }\n Object.assign(next, psuedos)\n return { style: next, viewProps, classNames }\n}\n"],
5
- "mappings": ";;AAAA;AAKO,MAAM,oBAAoB,wBAC/B,UACA,cACA,kBACG;AACH,QAAM,EAAE,OAAO,WAAW,SAAS,eAAe,eAAe,UAAU,cAAc;AAEzF,QAAM,OAAO;AACb,aAAW,KAAK,OAAO;AACrB,QAAI,CAAC;AAAG;AACR,WAAO,OAAO,MAAM;AAAA;AAEtB,SAAO,OAAO,MAAM;AACpB,SAAO,EAAE,OAAO,MAAM,WAAW;AAAA,GAbF;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/static.ts"],
4
- "sourcesContent": ["// only stuff that gets extracted or needed by tamagui-static\n\nexport * from './styled'\nexport * from './createComponent'\nexport * from './constants/styleConstants'\nexport * from './constants/constants'\n\nexport * from './hooks/useMedia'\nexport * from './hooks/useTheme'\n\nexport * from './helpers/getSplitStyles'\nexport * from '@tamagui/helpers'\n\n// -- below exports are only bundled compile-time --\n\nexport * from './static/postProcessStyles'\n"],
5
- "mappings": "AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAIA;",
6
- "names": []
7
- }
package/dist/styled.js DELETED
@@ -1,28 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { createComponent } from "./createComponent";
4
- import { extendStaticConfig } from "./helpers/extendStaticConfig";
5
- import { Stack } from "./views/Stack";
6
- import { Text } from "./views/Text";
7
- function styled(Component, {
8
- variants,
9
- ...defaultProps
10
- }) {
11
- const staticConfig = Component?.["staticConfig"];
12
- const ParentComponent = staticConfig ? staticConfig.isText ? Text : Stack : Component;
13
- const config = extendStaticConfig(ParentComponent, {
14
- variants,
15
- defaultProps
16
- });
17
- const component = createComponent(config);
18
- Object.defineProperty(component, "name", {
19
- value: `styled(${typeof Component === "string" ? Component : Component.constructor.name})`,
20
- writable: false
21
- });
22
- return component;
23
- }
24
- __name(styled, "styled");
25
- export {
26
- styled
27
- };
28
- //# sourceMappingURL=styled.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/styled.ts"],
4
- "sourcesContent": ["import { createComponent } from './createComponent'\nimport { extendStaticConfig } from './helpers/extendStaticConfig'\nimport { StaticComponent, StaticConfig, TamaguiConfig, Tokens } from './types'\nimport { Stack } from './views/Stack'\nimport { Text } from './views/Text'\n\ntype GetProps<A> = A extends StaticComponent<infer Props>\n ? Props\n : A extends React.Component<infer Props>\n ? Props\n : {}\n\nexport function styled<\n A extends StaticComponent<any> | React.Component<any>,\n Variants extends void | {\n [key: string]: {\n [key: string]:\n | Partial<GetProps<A>>\n | ((val: any, config: TamaguiConfig) => Partial<GetProps<A>>)\n }\n }\n>(\n Component: A,\n {\n variants,\n ...defaultProps\n }: GetProps<A> & {\n variants?: Variants\n }\n) {\n const staticConfig = Component?.['staticConfig'] as StaticConfig | undefined\n const ParentComponent = staticConfig ? (staticConfig.isText ? Text : Stack) : Component\n const config = extendStaticConfig(ParentComponent, {\n variants,\n defaultProps,\n })\n const component = createComponent(config!) // error is good here its on init\n Object.defineProperty(component, 'name', {\n value: `styled(${typeof Component === 'string' ? Component : Component.constructor.name})`,\n writable: false,\n })\n\n type VariantProps = Variants extends void\n ? unknown\n : {\n // ensure variants actually defined\n [key in keyof Variants]?: keyof Variants[keyof Variants] extends `...${infer VariantSpread}`\n ? VariantSpread extends keyof Tokens\n ? keyof Tokens[VariantSpread]\n : unknown\n : keyof Variants[keyof Variants]\n }\n\n return component as StaticComponent<GetProps<A> & VariantProps, VariantProps>\n}\n"],
5
- "mappings": ";;AAAA;AACA;AAEA;AACA;AAQO,gBAUL,WACA;AAAA,EACE;AAAA,KACG;AAAA,GAIL;AACA,QAAM,eAAe,YAAY;AACjC,QAAM,kBAAkB,eAAgB,aAAa,SAAS,OAAO,QAAS;AAC9E,QAAM,SAAS,mBAAmB,iBAAiB;AAAA,IACjD;AAAA,IACA;AAAA;AAEF,QAAM,YAAY,gBAAgB;AAClC,SAAO,eAAe,WAAW,QAAQ;AAAA,IACvC,OAAO,UAAU,OAAO,cAAc,WAAW,YAAY,UAAU,YAAY;AAAA,IACnF,UAAU;AAAA;AAcZ,SAAO;AAAA;AAzCO;",
6
- "names": []
7
- }
package/dist/testtypes.js DELETED
@@ -1 +0,0 @@
1
- //# sourceMappingURL=testTypes.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/views/Stack.tsx"],
4
- "sourcesContent": ["import { stackDefaultStyles } from '../constants/constants'\nimport { createComponent } from '../createComponent'\nimport { styled } from '../styled'\nimport { StackProps, StaticComponent } from '../types'\n\nexport const Stack = createComponent<StackProps>({\n defaultProps: {\n ...stackDefaultStyles,\n flexDirection: 'row',\n },\n})\n\n// test types\n// export const YStack = styled(Stack, {\n// flexDirection: 'column',\n// })\n// // test types\n// const x00 = <Stack missing={0} /> // should err\n// const x0 = <YStack missing={0} /> // should err\n// const x1 = (props: StackProps) => <YStack {...props} />\n// type ys = typeof YStack\n// type ysv = ys extends StaticComponent<any, infer V> ? V : unknown\n"],
5
- "mappings": "AAAA;AACA;AAIO,MAAM,QAAQ,gBAA4B;AAAA,EAC/C,cAAc;AAAA,OACT;AAAA,IACH,eAAe;AAAA;AAAA;",
6
- "names": []
7
- }
@@ -1,36 +0,0 @@
1
- import { validStylesText } from "../constants/constants";
2
- import { isWeb } from "../constants/platform";
3
- import { cssTextStyles } from "../constants/styleConstants";
4
- import { createComponent } from "../createComponent";
5
- const Text = createComponent({
6
- isText: true,
7
- defaultProps: cssTextStyles.text,
8
- variants: {
9
- selectable: {
10
- true: {
11
- userSelect: "text"
12
- }
13
- },
14
- ellipse: {
15
- true: isWeb ? {
16
- display: "inline-block",
17
- maxWidth: "100%",
18
- whiteSpace: "nowrap",
19
- overflow: "hidden",
20
- textOverflow: "ellipsis"
21
- } : {
22
- numberOfLines: 1,
23
- lineBreakMode: "clip"
24
- }
25
- }
26
- },
27
- deoptProps: new Set(isWeb ? [""] : ["ellipse"]),
28
- validPropsExtra: {
29
- textUnderlineOffset: true
30
- },
31
- validStyles: validStylesText
32
- });
33
- export {
34
- Text
35
- };
36
- //# sourceMappingURL=Text.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/views/Text.tsx"],
4
- "sourcesContent": ["import { validStylesText } from '../constants/constants'\nimport { isWeb } from '../constants/platform'\nimport { cssTextStyles } from '../constants/styleConstants'\nimport { createComponent } from '../createComponent'\nimport { TextProps } from '../types'\n\nexport const Text = createComponent<TextProps>({\n isText: true,\n // TODO color: '$color'\n // TODO defaultProps add tamagui-text className if we want nice escape hatch\n // defaultProps: isWeb\n // ? {\n // // inline-block fixed transforms not working on web\n // // but inline is necessary for text nesting (italic, bold etc)\n // display: 'inline' as any,\n // }\n // : {},\n defaultProps: cssTextStyles.text,\n // shorthands: {\n // textDecorationDistance: 'textUnderlineOffset'\n // },\n variants: {\n selectable: {\n true: {\n userSelect: 'text',\n },\n },\n ellipse: {\n true: isWeb\n ? {\n display: 'inline-block',\n maxWidth: '100%',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }\n : {\n numberOfLines: 1,\n lineBreakMode: 'clip',\n },\n },\n },\n deoptProps: new Set(isWeb ? [''] : ['ellipse']),\n validPropsExtra: {\n // ellipse: true,\n textUnderlineOffset: true,\n },\n validStyles: validStylesText,\n})\n"],
5
- "mappings": "AAAA;AACA;AACA;AACA;AAGO,MAAM,OAAO,gBAA2B;AAAA,EAC7C,QAAQ;AAAA,EAUR,cAAc,cAAc;AAAA,EAI5B,UAAU;AAAA,IACR,YAAY;AAAA,MACV,MAAM;AAAA,QACJ,YAAY;AAAA;AAAA;AAAA,IAGhB,SAAS;AAAA,MACP,MAAM,QACF;AAAA,QACE,SAAS;AAAA,QACT,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,cAAc;AAAA,UAEhB;AAAA,QACE,eAAe;AAAA,QACf,eAAe;AAAA;AAAA;AAAA;AAAA,EAIzB,YAAY,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC;AAAA,EACpC,iBAAiB;AAAA,IAEf,qBAAqB;AAAA;AAAA,EAEvB,aAAa;AAAA;",
6
- "names": []
7
- }
@@ -1,18 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import React from "react";
4
- import { rnw } from "../constants/rnw";
5
- const TextAncestorContext = rnw?.TextAncestorContext;
6
- const TextAncestorProvider = /* @__PURE__ */ __name((props) => {
7
- if (TextAncestorContext) {
8
- return /* @__PURE__ */ React.createElement(TextAncestorContext.Provider, {
9
- value: false
10
- }, props.children);
11
- }
12
- return props.children;
13
- }, "TextAncestorProvider");
14
- export {
15
- TextAncestorContext,
16
- TextAncestorProvider
17
- };
18
- //# sourceMappingURL=TextAncestorContext.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/views/TextAncestorContext.tsx"],
4
- "sourcesContent": ["import React from 'react'\n\nimport { rnw } from '../constants/rnw'\n\nexport const TextAncestorContext = rnw?.TextAncestorContext\n\nexport const TextAncestorProvider = (props) => {\n if (TextAncestorContext) {\n return <TextAncestorContext.Provider value={false}>{props.children}</TextAncestorContext.Provider>\n }\n return props.children\n}\n"],
5
- "mappings": ";;AAAA;AAEA;AAEO,MAAM,sBAAsB,KAAK;AAEjC,MAAM,uBAAuB,wBAAC,UAAU;AAC7C,MAAI,qBAAqB;AACvB,WAAO,oCAAC,oBAAoB,UAArB;AAAA,MAA8B,OAAO;AAAA,OAAQ,MAAM;AAAA;AAE5D,SAAO,MAAM;AAAA,GAJqB;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/views/Theme.tsx"],
4
- "sourcesContent": ["import React, { useContext, useState } from 'react'\n\nimport { isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { getThemeParentClassName } from '../createTamagui'\nimport { useConstant } from '../hooks/useConstant'\nimport { ThemeName, Themes } from '../types'\nimport { ThemeContext } from './ThemeContext'\nimport { ThemeManager, ThemeManagerContext } from './ThemeManagerContext'\n\nexport type ThemeProps = {\n disableThemeClass?: boolean\n name: ThemeName | null\n children?: any\n}\n\nexport const Theme = (props: ThemeProps) => {\n const parent = useContext(ThemeManagerContext)\n const themes = useContext(ThemeContext)\n const [parentName, setParentName] = useState(parent.name || 'light')\n const { name, theme } = getTheme(props.name as string, parentName, themes)\n const themeManager = useConstant<ThemeManager>(() => {\n const manager = new ThemeManager()\n if (name) {\n manager.setActiveTheme(name, themes[name])\n }\n return manager\n })\n\n useIsomorphicLayoutEffect(() => {\n themeManager.setActiveTheme(name, theme)\n return parent.onChangeTheme((next) => {\n if (next) {\n themeManager.setActiveTheme(next, themes[next])\n setParentName(next)\n }\n })\n }, [themes, name])\n\n if (!name) {\n return props.children\n }\n\n const contents = themeManager ? (\n <ThemeManagerContext.Provider value={themeManager}>{props.children}</ThemeManagerContext.Provider>\n ) : (\n props.children\n )\n\n if (isWeb) {\n if (props.disableThemeClass) {\n return contents\n }\n return (\n <div\n className={getThemeParentClassName(name)}\n // in order to provide currentColor, set color by default\n // @ts-ignore TODO\n style={{ display: 'contents', color: themes[name]?.['color'] }}\n >\n {contents}\n </div>\n )\n }\n\n return contents\n}\n\n// this will get the theme, but if there is none, will try and find a \"parent matching\" theme:\n// so if you parent theme name is \"light\", and you pass in \"purple\" and there's no purple theme,\n// this will check if \"purple-light\" exists and if so use that.\nfunction getTheme(name: string, parentName: string, themes: Themes) {\n let fullName = name || parentName || ''\n let nextTheme = themes[fullName]\n if (name && !nextTheme) {\n const themeSchemeName = `${fullName}-${parentName}`\n if (themes[themeSchemeName]) {\n fullName = themeSchemeName\n nextTheme = themes[themeSchemeName]\n }\n }\n return { name: fullName, theme: nextTheme }\n}\n"],
5
- "mappings": ";;AAAA;AAEA;AACA;AACA;AAEA;AACA;AAQO,MAAM,QAAQ,wBAAC,UAAsB;AAC1C,QAAM,SAAS,WAAW;AAC1B,QAAM,SAAS,WAAW;AAC1B,QAAM,CAAC,YAAY,iBAAiB,SAAS,OAAO,QAAQ;AAC5D,QAAM,EAAE,MAAM,UAAU,SAAS,MAAM,MAAgB,YAAY;AACnE,QAAM,eAAe,YAA0B,MAAM;AACnD,UAAM,UAAU,IAAI;AACpB,QAAI,MAAM;AACR,cAAQ,eAAe,MAAM,OAAO;AAAA;AAEtC,WAAO;AAAA;AAGT,4BAA0B,MAAM;AAC9B,iBAAa,eAAe,MAAM;AAClC,WAAO,OAAO,cAAc,CAAC,SAAS;AACpC,UAAI,MAAM;AACR,qBAAa,eAAe,MAAM,OAAO;AACzC,sBAAc;AAAA;AAAA;AAAA,KAGjB,CAAC,QAAQ;AAEZ,MAAI,CAAC,MAAM;AACT,WAAO,MAAM;AAAA;AAGf,QAAM,WAAW,eACf,oCAAC,oBAAoB,UAArB;AAAA,IAA8B,OAAO;AAAA,KAAe,MAAM,YAE1D,MAAM;AAGR,MAAI,OAAO;AACT,QAAI,MAAM,mBAAmB;AAC3B,aAAO;AAAA;AAET,WACE,oCAAC,OAAD;AAAA,MACE,WAAW,wBAAwB;AAAA,MAGnC,OAAO,EAAE,SAAS,YAAY,OAAO,OAAO,QAAQ;AAAA,OAEnD;AAAA;AAKP,SAAO;AAAA,GAjDY;AAuDrB,kBAAkB,MAAc,YAAoB,QAAgB;AAClE,MAAI,WAAW,QAAQ,cAAc;AACrC,MAAI,YAAY,OAAO;AACvB,MAAI,QAAQ,CAAC,WAAW;AACtB,UAAM,kBAAkB,GAAG,YAAY;AACvC,QAAI,OAAO,kBAAkB;AAC3B,iBAAW;AACX,kBAAY,OAAO;AAAA;AAAA;AAGvB,SAAO,EAAE,MAAM,UAAU,OAAO;AAAA;AAVzB;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/views/ThemeManagerContext.tsx"],
4
- "sourcesContent": ["import { createContext } from 'react'\n\nexport class ThemeManager {\n name: string | null = 'light'\n keys = new Map<any, Set<string>>()\n listeners = new Map<any, Function>()\n callbacks = new Set<Function>()\n theme = null\n\n setActiveTheme(name: string | null, theme?: any) {\n if (name === this.name) return\n this.name = name\n this.theme = theme\n this.update()\n }\n\n track(uuid: any, keys: Set<string>) {\n if (!this.name) return\n this.keys.set(uuid, keys)\n }\n\n update() {\n if (!this.name) {\n this.keys.clear()\n }\n for (const [uuid, keys] of this.keys.entries()) {\n if (keys.size) {\n this.listeners.get(uuid)?.()\n }\n }\n this.callbacks.forEach((cb) => cb(this.name))\n }\n\n onChangeTheme(cb: (name: string | null) => void) {\n this.callbacks.add(cb)\n return () => {\n this.callbacks.delete(cb)\n }\n }\n\n onUpdate(uuid: any, cb: Function) {\n this.listeners.set(uuid, cb)\n return () => {\n this.listeners.delete(uuid)\n this.keys.delete(uuid)\n }\n }\n}\n\nexport const ThemeManagerContext = createContext<ThemeManager>(new ThemeManager())\n"],
5
- "mappings": ";;AAAA;AAEO,mBAAmB;AAAA,EAAnB,cAFP;AAGE,gBAAsB;AACtB,gBAAO,IAAI;AACX,qBAAY,IAAI;AAChB,qBAAY,IAAI;AAChB,iBAAQ;AAAA;AAAA,EAER,eAAe,MAAqB,OAAa;AAC/C,QAAI,SAAS,KAAK;AAAM;AACxB,SAAK,OAAO;AACZ,SAAK,QAAQ;AACb,SAAK;AAAA;AAAA,EAGP,MAAM,MAAW,MAAmB;AAClC,QAAI,CAAC,KAAK;AAAM;AAChB,SAAK,KAAK,IAAI,MAAM;AAAA;AAAA,EAGtB,SAAS;AACP,QAAI,CAAC,KAAK,MAAM;AACd,WAAK,KAAK;AAAA;AAEZ,eAAW,CAAC,MAAM,SAAS,KAAK,KAAK,WAAW;AAC9C,UAAI,KAAK,MAAM;AACb,aAAK,UAAU,IAAI;AAAA;AAAA;AAGvB,SAAK,UAAU,QAAQ,CAAC,OAAO,GAAG,KAAK;AAAA;AAAA,EAGzC,cAAc,IAAmC;AAC/C,SAAK,UAAU,IAAI;AACnB,WAAO,MAAM;AACX,WAAK,UAAU,OAAO;AAAA;AAAA;AAAA,EAI1B,SAAS,MAAW,IAAc;AAChC,SAAK,UAAU,IAAI,MAAM;AACzB,WAAO,MAAM;AACX,WAAK,UAAU,OAAO;AACtB,WAAK,KAAK,OAAO;AAAA;AAAA;AAAA;AA1ChB;AA+CA,MAAM,sBAAsB,cAA4B,IAAI;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/views/ThemeProvider.tsx"],
4
- "sourcesContent": ["import React, { useMemo } from 'react'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { getHasConfigured, getThemeParentClassName } from '../createTamagui'\nimport { ThemeName, Themes } from '../types'\nimport { Theme } from './Theme'\nimport { ThemeContext } from './ThemeContext'\n\nexport type ThemeProviderProps = {\n themes: any\n defaultTheme: string\n disableRootThemeClass?: boolean\n children?: any\n}\n\nexport const GET_DEFAULT_THEME = '___TGUI'\n\nexport const ThemeProvider = (props: ThemeProviderProps) => {\n if (!getHasConfigured()) {\n throw new Error(`Missing configureThemes() call, add to your root file`)\n }\n\n // ensure theme is attached to root body node as well to work with modals by default\n useIsomorphicLayoutEffect(() => {\n if (props.disableRootThemeClass) {\n return\n }\n if (typeof document !== 'undefined') {\n const cns = getThemeParentClassName(`${props.defaultTheme}`).split(' ')\n cns.forEach((cn) => document.body.classList.add(cn))\n return () => {\n cns.forEach((cn) => document.body.classList.remove(cn))\n }\n }\n }, [])\n\n return (\n <ThemeContext.Provider\n value={useMemo(() => {\n console.log('wut are', props.themes)\n return new Proxy(props.themes, {\n get(target, key) {\n if (key === GET_DEFAULT_THEME) return props.defaultTheme\n return Reflect.get(target, key)\n },\n })\n }, [props.themes])}\n >\n <Theme name={props.defaultTheme} disableThemeClass={props.disableRootThemeClass}>\n {props.children}\n </Theme>\n </ThemeContext.Provider>\n )\n}\n"],
5
- "mappings": ";;AAAA;AAEA;AACA;AAEA;AACA;AASO,MAAM,oBAAoB;AAE1B,MAAM,gBAAgB,wBAAC,UAA8B;AAC1D,MAAI,CAAC,oBAAoB;AACvB,UAAM,IAAI,MAAM;AAAA;AAIlB,4BAA0B,MAAM;AAC9B,QAAI,MAAM,uBAAuB;AAC/B;AAAA;AAEF,QAAI,OAAO,aAAa,aAAa;AACnC,YAAM,MAAM,wBAAwB,GAAG,MAAM,gBAAgB,MAAM;AACnE,UAAI,QAAQ,CAAC,OAAO,SAAS,KAAK,UAAU,IAAI;AAChD,aAAO,MAAM;AACX,YAAI,QAAQ,CAAC,OAAO,SAAS,KAAK,UAAU,OAAO;AAAA;AAAA;AAAA,KAGtD;AAEH,SACE,oCAAC,aAAa,UAAd;AAAA,IACE,OAAO,QAAQ,MAAM;AACnB,cAAQ,IAAI,WAAW,MAAM;AAC7B,aAAO,IAAI,MAAM,MAAM,QAAQ;AAAA,QAC7B,IAAI,QAAQ,KAAK;AACf,cAAI,QAAQ;AAAmB,mBAAO,MAAM;AAC5C,iBAAO,QAAQ,IAAI,QAAQ;AAAA;AAAA;AAAA,OAG9B,CAAC,MAAM;AAAA,KAEV,oCAAC,OAAD;AAAA,IAAO,MAAM,MAAM;AAAA,IAAc,mBAAmB,MAAM;AAAA,KACvD,MAAM;AAAA,GAhCc;",
6
- "names": []
7
- }