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

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/constants/constants.js +32 -0
  2. package/dist/constants/constants.js.map +7 -0
  3. package/dist/{esm/constants → constants}/platform.js +2 -3
  4. package/dist/constants/platform.js.map +7 -0
  5. package/dist/constants/rnw.js +10 -0
  6. package/dist/constants/rnw.js.map +7 -0
  7. package/dist/constants/styleConstants.js +59 -0
  8. package/dist/constants/styleConstants.js.map +7 -0
  9. package/dist/createComponent.js +395 -0
  10. package/dist/createComponent.js.map +7 -0
  11. package/dist/{esm/createShorthands.js → createShorthands.js} +0 -0
  12. package/dist/createShorthands.js.map +7 -0
  13. package/dist/createTamagui.js +107 -0
  14. package/dist/createTamagui.js.map +7 -0
  15. package/dist/{esm/createTokens.js → createTokens.js} +0 -4
  16. package/dist/createTokens.js.map +7 -0
  17. package/dist/{esm/createVariable.js → createVariable.js} +2 -6
  18. package/dist/createVariable.js.map +7 -0
  19. package/dist/helpers/addStylesUsingClassname.js +28 -0
  20. package/dist/helpers/addStylesUsingClassname.js.map +7 -0
  21. package/dist/{esm/helpers → helpers}/createMediaStyle.js +0 -0
  22. package/dist/{esm/helpers → helpers}/createMediaStyle.js.map +1 -1
  23. package/dist/{esm/helpers → helpers}/createTamaguiProvider.js +20 -2
  24. package/dist/helpers/createTamaguiProvider.js.map +7 -0
  25. package/dist/helpers/extendStaticConfig.js +158 -0
  26. package/dist/helpers/extendStaticConfig.js.map +7 -0
  27. package/dist/helpers/fixNativeShadow.js +38 -0
  28. package/dist/helpers/fixNativeShadow.js.map +7 -0
  29. package/dist/{esm/helpers → helpers}/getSplitStyles.js +40 -43
  30. package/dist/helpers/getSplitStyles.js.map +7 -0
  31. package/dist/{esm/helpers → helpers}/insertStyleRule.js +0 -7
  32. package/dist/helpers/insertStyleRule.js.map +7 -0
  33. package/dist/{esm/helpers → helpers}/matchMedia.js +0 -3
  34. package/dist/helpers/matchMedia.js.map +7 -0
  35. package/dist/{esm/helpers → helpers}/matchMedia.native.js +0 -1
  36. package/dist/{esm/helpers → helpers}/matchMedia.native.js.map +3 -3
  37. package/dist/helpers/setIfChanged.js +17 -0
  38. package/dist/helpers/setIfChanged.js.map +7 -0
  39. package/dist/{esm/helpers → helpers}/themeable.js +1 -1
  40. package/dist/{esm/helpers → helpers}/themeable.js.map +3 -3
  41. package/dist/{esm/hooks → hooks}/useConstant.js +0 -0
  42. package/dist/{esm/hooks → hooks}/useConstant.js.map +1 -1
  43. package/dist/{esm/hooks → hooks}/useFeatures.js +51 -39
  44. package/dist/hooks/useFeatures.js.map +7 -0
  45. package/dist/hooks/useForceUpdate.js +28 -0
  46. package/dist/hooks/useForceUpdate.js.map +7 -0
  47. package/dist/{esm/hooks → hooks}/useMedia.js +18 -20
  48. package/dist/hooks/useMedia.js.map +7 -0
  49. package/dist/{esm/hooks → hooks}/usePressable.js +1 -2
  50. package/dist/{esm/hooks → hooks}/usePressable.js.map +2 -2
  51. package/dist/{esm/hooks → hooks}/useTheme.js +25 -28
  52. package/dist/hooks/useTheme.js.map +7 -0
  53. package/dist/index.cjs +1837 -0
  54. package/dist/index.cjs.map +7 -0
  55. package/dist/{esm/index.js → index.js} +4 -6
  56. package/dist/index.js.map +7 -0
  57. package/dist/{esm/static → static}/postProcessStyles.js +3 -3
  58. package/dist/static/postProcessStyles.js.map +7 -0
  59. package/dist/{esm/static.js → static.js} +1 -6
  60. package/dist/static.js.map +7 -0
  61. package/dist/styled.js +28 -0
  62. package/dist/styled.js.map +7 -0
  63. package/dist/testtypes.js +1 -0
  64. package/dist/{esm/types.js.map → testtypes.js.map} +0 -0
  65. package/dist/{esm/types.js → types.js} +0 -0
  66. package/dist/types.js.map +7 -0
  67. package/dist/{esm/views → views}/Animated.js +0 -0
  68. package/dist/{esm/views → views}/Animated.js.map +3 -3
  69. package/dist/{esm/views → views}/Stack.js +1 -1
  70. package/dist/views/Stack.js.map +7 -0
  71. package/dist/views/Text.js +36 -0
  72. package/dist/views/Text.js.map +7 -0
  73. package/dist/views/TextAncestorContext.js +18 -0
  74. package/dist/views/TextAncestorContext.js.map +7 -0
  75. package/dist/{esm/views → views}/Theme.js +23 -29
  76. package/dist/views/Theme.js.map +7 -0
  77. package/dist/{esm/views → views}/ThemeContext.js +0 -0
  78. package/dist/{esm/views → views}/ThemeContext.js.map +1 -1
  79. package/dist/{esm/views → views}/ThemeInverse.js +1 -0
  80. package/dist/{esm/views → views}/ThemeInverse.js.map +3 -3
  81. package/dist/{esm/views → views}/ThemeManagerContext.js +6 -13
  82. package/dist/views/ThemeManagerContext.js.map +7 -0
  83. package/dist/{esm/views → views}/ThemeProvider.js +10 -10
  84. package/dist/views/ThemeProvider.js.map +7 -0
  85. package/package.json +6 -9
  86. package/dist/cjs/constants/constants.js +0 -50
  87. package/dist/cjs/constants/constants.js.map +0 -7
  88. package/dist/cjs/constants/platform.js +0 -43
  89. package/dist/cjs/constants/platform.js.map +0 -7
  90. package/dist/cjs/constants/pseudos.js +0 -25
  91. package/dist/cjs/constants/pseudos.js.map +0 -7
  92. package/dist/cjs/constants/rnw.js +0 -28
  93. package/dist/cjs/constants/rnw.js.map +0 -7
  94. package/dist/cjs/createComponent.js +0 -529
  95. package/dist/cjs/createComponent.js.map +0 -7
  96. package/dist/cjs/createFont.js +0 -50
  97. package/dist/cjs/createFont.js.map +0 -7
  98. package/dist/cjs/createShorthands.js +0 -16
  99. package/dist/cjs/createShorthands.js.map +0 -7
  100. package/dist/cjs/createTamagui.js +0 -223
  101. package/dist/cjs/createTamagui.js.map +0 -7
  102. package/dist/cjs/createTheme.js +0 -13
  103. package/dist/cjs/createTheme.js.map +0 -7
  104. package/dist/cjs/createTokens.js +0 -55
  105. package/dist/cjs/createTokens.js.map +0 -7
  106. package/dist/cjs/createVariable.js +0 -47
  107. package/dist/cjs/createVariable.js.map +0 -7
  108. package/dist/cjs/helpers/addStylesUsingClassname.js +0 -79
  109. package/dist/cjs/helpers/addStylesUsingClassname.js.map +0 -7
  110. package/dist/cjs/helpers/createMediaStyle.js +0 -56
  111. package/dist/cjs/helpers/createMediaStyle.js.map +0 -7
  112. package/dist/cjs/helpers/createPropMapper.js +0 -197
  113. package/dist/cjs/helpers/createPropMapper.js.map +0 -7
  114. package/dist/cjs/helpers/createTamaguiProvider.js +0 -74
  115. package/dist/cjs/helpers/createTamaguiProvider.js.map +0 -7
  116. package/dist/cjs/helpers/extendStaticConfig.js +0 -82
  117. package/dist/cjs/helpers/extendStaticConfig.js.map +0 -7
  118. package/dist/cjs/helpers/fixNativeShadow.js +0 -14
  119. package/dist/cjs/helpers/fixNativeShadow.js.map +0 -7
  120. package/dist/cjs/helpers/fixNativeShadow.native.js +0 -40
  121. package/dist/cjs/helpers/fixNativeShadow.native.js.map +0 -7
  122. package/dist/cjs/helpers/getSplitStyles.js +0 -180
  123. package/dist/cjs/helpers/getSplitStyles.js.map +0 -7
  124. package/dist/cjs/helpers/getStylesAtomic.js +0 -117
  125. package/dist/cjs/helpers/getStylesAtomic.js.map +0 -7
  126. package/dist/cjs/helpers/getStylesAtomic.native.js +0 -16
  127. package/dist/cjs/helpers/getStylesAtomic.native.js.map +0 -7
  128. package/dist/cjs/helpers/insertStyleRule.js +0 -46
  129. package/dist/cjs/helpers/insertStyleRule.js.map +0 -7
  130. package/dist/cjs/helpers/isObj.js +0 -13
  131. package/dist/cjs/helpers/isObj.js.map +0 -7
  132. package/dist/cjs/helpers/isTamaguiElement.js +0 -33
  133. package/dist/cjs/helpers/isTamaguiElement.js.map +0 -7
  134. package/dist/cjs/helpers/matchMedia.js +0 -24
  135. package/dist/cjs/helpers/matchMedia.js.map +0 -7
  136. package/dist/cjs/helpers/matchMedia.native.js +0 -31
  137. package/dist/cjs/helpers/matchMedia.native.js.map +0 -7
  138. package/dist/cjs/helpers/themeable.js +0 -78
  139. package/dist/cjs/helpers/themeable.js.map +0 -7
  140. package/dist/cjs/helpers/validate.js +0 -82
  141. package/dist/cjs/helpers/validate.js.map +0 -7
  142. package/dist/cjs/hooks/useConstant.js +0 -37
  143. package/dist/cjs/hooks/useConstant.js.map +0 -7
  144. package/dist/cjs/hooks/useFeatures.js +0 -100
  145. package/dist/cjs/hooks/useFeatures.js.map +0 -7
  146. package/dist/cjs/hooks/useMedia.js +0 -207
  147. package/dist/cjs/hooks/useMedia.js.map +0 -7
  148. package/dist/cjs/hooks/usePressable.js +0 -50
  149. package/dist/cjs/hooks/usePressable.js.map +0 -7
  150. package/dist/cjs/hooks/useTheme.js +0 -118
  151. package/dist/cjs/hooks/useTheme.js.map +0 -7
  152. package/dist/cjs/index.js +0 -55
  153. package/dist/cjs/index.js.map +0 -7
  154. package/dist/cjs/static/postProcessStyles.js +0 -40
  155. package/dist/cjs/static/postProcessStyles.js.map +0 -7
  156. package/dist/cjs/static.js +0 -34
  157. package/dist/cjs/static.js.map +0 -7
  158. package/dist/cjs/styled.js +0 -72
  159. package/dist/cjs/styled.js.map +0 -7
  160. package/dist/cjs/types.js +0 -4
  161. package/dist/cjs/types.js.map +0 -7
  162. package/dist/cjs/views/Animated.js +0 -129
  163. package/dist/cjs/views/Animated.js.map +0 -7
  164. package/dist/cjs/views/Stack.js +0 -51
  165. package/dist/cjs/views/Stack.js.map +0 -7
  166. package/dist/cjs/views/Text.js +0 -93
  167. package/dist/cjs/views/Text.js.map +0 -7
  168. package/dist/cjs/views/TextAncestorContext.js +0 -40
  169. package/dist/cjs/views/TextAncestorContext.js.map +0 -7
  170. package/dist/cjs/views/Theme.js +0 -91
  171. package/dist/cjs/views/Theme.js.map +0 -7
  172. package/dist/cjs/views/ThemeContext.js +0 -29
  173. package/dist/cjs/views/ThemeContext.js.map +0 -7
  174. package/dist/cjs/views/ThemeInverse.js +0 -48
  175. package/dist/cjs/views/ThemeInverse.js.map +0 -7
  176. package/dist/cjs/views/ThemeManagerContext.js +0 -84
  177. package/dist/cjs/views/ThemeManagerContext.js.map +0 -7
  178. package/dist/cjs/views/ThemeProvider.js +0 -67
  179. package/dist/cjs/views/ThemeProvider.js.map +0 -7
  180. package/dist/esm/constants/constants.js +0 -14
  181. package/dist/esm/constants/constants.js.map +0 -7
  182. package/dist/esm/constants/platform.js.map +0 -7
  183. package/dist/esm/constants/pseudos.js +0 -18
  184. package/dist/esm/constants/pseudos.js.map +0 -7
  185. package/dist/esm/constants/rnw.js +0 -22
  186. package/dist/esm/constants/rnw.js.map +0 -7
  187. package/dist/esm/createComponent.js +0 -465
  188. package/dist/esm/createComponent.js.map +0 -7
  189. package/dist/esm/createFont.js +0 -28
  190. package/dist/esm/createFont.js.map +0 -7
  191. package/dist/esm/createShorthands.js.map +0 -7
  192. package/dist/esm/createTamagui.js +0 -185
  193. package/dist/esm/createTamagui.js.map +0 -7
  194. package/dist/esm/createTheme.js +0 -7
  195. package/dist/esm/createTheme.js.map +0 -7
  196. package/dist/esm/createTokens.js.map +0 -7
  197. package/dist/esm/createVariable.js.map +0 -7
  198. package/dist/esm/helpers/addStylesUsingClassname.js +0 -57
  199. package/dist/esm/helpers/addStylesUsingClassname.js.map +0 -7
  200. package/dist/esm/helpers/createPropMapper.js +0 -162
  201. package/dist/esm/helpers/createPropMapper.js.map +0 -7
  202. package/dist/esm/helpers/createTamaguiProvider.js.map +0 -7
  203. package/dist/esm/helpers/extendStaticConfig.js +0 -60
  204. package/dist/esm/helpers/extendStaticConfig.js.map +0 -7
  205. package/dist/esm/helpers/fixNativeShadow.js +0 -8
  206. package/dist/esm/helpers/fixNativeShadow.js.map +0 -7
  207. package/dist/esm/helpers/fixNativeShadow.native.js +0 -34
  208. package/dist/esm/helpers/fixNativeShadow.native.js.map +0 -7
  209. package/dist/esm/helpers/getSplitStyles.js.map +0 -7
  210. package/dist/esm/helpers/getStylesAtomic.js +0 -84
  211. package/dist/esm/helpers/getStylesAtomic.js.map +0 -7
  212. package/dist/esm/helpers/getStylesAtomic.native.js +0 -10
  213. package/dist/esm/helpers/getStylesAtomic.native.js.map +0 -7
  214. package/dist/esm/helpers/insertStyleRule.js.map +0 -7
  215. package/dist/esm/helpers/isObj.js +0 -7
  216. package/dist/esm/helpers/isObj.js.map +0 -7
  217. package/dist/esm/helpers/isTamaguiElement.js +0 -11
  218. package/dist/esm/helpers/isTamaguiElement.js.map +0 -7
  219. package/dist/esm/helpers/matchMedia.js.map +0 -7
  220. package/dist/esm/helpers/validate.js +0 -60
  221. package/dist/esm/helpers/validate.js.map +0 -7
  222. package/dist/esm/hooks/useFeatures.js.map +0 -7
  223. package/dist/esm/hooks/useMedia.js.map +0 -7
  224. package/dist/esm/hooks/useTheme.js.map +0 -7
  225. package/dist/esm/index.js.map +0 -7
  226. package/dist/esm/static/postProcessStyles.js.map +0 -7
  227. package/dist/esm/static.js.map +0 -7
  228. package/dist/esm/styled.js +0 -21
  229. package/dist/esm/styled.js.map +0 -7
  230. package/dist/esm/views/Stack.js.map +0 -7
  231. package/dist/esm/views/Text.js +0 -60
  232. package/dist/esm/views/Text.js.map +0 -7
  233. package/dist/esm/views/TextAncestorContext.js +0 -18
  234. package/dist/esm/views/TextAncestorContext.js.map +0 -7
  235. package/dist/esm/views/Theme.js.map +0 -7
  236. package/dist/esm/views/ThemeManagerContext.js.map +0 -7
  237. package/dist/esm/views/ThemeProvider.js.map +0 -7
  238. package/dist/jsx/constants/constants.js +0 -13
  239. package/dist/jsx/constants/platform.js +0 -19
  240. package/dist/jsx/constants/pseudos.js +0 -17
  241. package/dist/jsx/constants/rnw.js +0 -21
  242. package/dist/jsx/createComponent.js +0 -459
  243. package/dist/jsx/createFont.js +0 -27
  244. package/dist/jsx/createShorthands.js +0 -9
  245. package/dist/jsx/createTamagui.js +0 -184
  246. package/dist/jsx/createTheme.js +0 -6
  247. package/dist/jsx/createTokens.js +0 -32
  248. package/dist/jsx/createVariable.js +0 -24
  249. package/dist/jsx/helpers/addStylesUsingClassname.js +0 -56
  250. package/dist/jsx/helpers/createMediaStyle.js +0 -33
  251. package/dist/jsx/helpers/createPropMapper.js +0 -161
  252. package/dist/jsx/helpers/createTamaguiProvider.js +0 -19
  253. package/dist/jsx/helpers/extendStaticConfig.js +0 -59
  254. package/dist/jsx/helpers/fixNativeShadow.js +0 -7
  255. package/dist/jsx/helpers/fixNativeShadow.native.js +0 -33
  256. package/dist/jsx/helpers/getSplitStyles.js +0 -149
  257. package/dist/jsx/helpers/getStylesAtomic.js +0 -83
  258. package/dist/jsx/helpers/getStylesAtomic.native.js +0 -9
  259. package/dist/jsx/helpers/insertStyleRule.js +0 -23
  260. package/dist/jsx/helpers/isObj.js +0 -6
  261. package/dist/jsx/helpers/isTamaguiElement.js +0 -10
  262. package/dist/jsx/helpers/matchMedia.js +0 -17
  263. package/dist/jsx/helpers/matchMedia.native.js +0 -8
  264. package/dist/jsx/helpers/themeable.js +0 -23
  265. package/dist/jsx/helpers/validate.js +0 -59
  266. package/dist/jsx/hooks/useConstant.js +0 -14
  267. package/dist/jsx/hooks/useFeatures.js +0 -57
  268. package/dist/jsx/hooks/useMedia.js +0 -174
  269. package/dist/jsx/hooks/usePressable.js +0 -13
  270. package/dist/jsx/hooks/useTheme.js +0 -96
  271. package/dist/jsx/index.js +0 -31
  272. package/dist/jsx/static/postProcessStyles.js +0 -17
  273. package/dist/jsx/static.js +0 -14
  274. package/dist/jsx/styled.js +0 -20
  275. package/dist/jsx/types.js +0 -0
  276. package/dist/jsx/views/Animated.js +0 -74
  277. package/dist/jsx/views/Stack.js +0 -11
  278. package/dist/jsx/views/Text.js +0 -59
  279. package/dist/jsx/views/TextAncestorContext.js +0 -15
  280. package/dist/jsx/views/Theme.js +0 -63
  281. package/dist/jsx/views/ThemeContext.js +0 -5
  282. package/dist/jsx/views/ThemeInverse.js +0 -22
  283. package/dist/jsx/views/ThemeManagerContext.js +0 -61
  284. package/dist/jsx/views/ThemeProvider.js +0 -39
  285. package/types/constants/constants.d.ts.map +0 -1
  286. package/types/constants/platform.d.ts.map +0 -1
  287. package/types/constants/pseudos.d.ts.map +0 -1
  288. package/types/constants/rnw.d.ts.map +0 -1
  289. package/types/createComponent.d.ts.map +0 -1
  290. package/types/createFont.d.ts.map +0 -1
  291. package/types/createShorthands.d.ts.map +0 -1
  292. package/types/createTamagui.d.ts.map +0 -1
  293. package/types/createTheme.d.ts.map +0 -1
  294. package/types/createTokens.d.ts.map +0 -1
  295. package/types/createVariable.d.ts.map +0 -1
  296. package/types/helpers/addStylesUsingClassname.d.ts.map +0 -1
  297. package/types/helpers/createMediaStyle.d.ts.map +0 -1
  298. package/types/helpers/createPropMapper.d.ts.map +0 -1
  299. package/types/helpers/createTamaguiProvider.d.ts.map +0 -1
  300. package/types/helpers/extendStaticConfig.d.ts.map +0 -1
  301. package/types/helpers/fixNativeShadow.d.ts.map +0 -1
  302. package/types/helpers/fixNativeShadow.native.d.ts.map +0 -1
  303. package/types/helpers/getSplitStyles.d.ts.map +0 -1
  304. package/types/helpers/getStylesAtomic.d.ts.map +0 -1
  305. package/types/helpers/getStylesAtomic.native.d.ts.map +0 -1
  306. package/types/helpers/insertStyleRule.d.ts.map +0 -1
  307. package/types/helpers/isObj.d.ts.map +0 -1
  308. package/types/helpers/isTamaguiElement.d.ts.map +0 -1
  309. package/types/helpers/matchMedia.d.ts.map +0 -1
  310. package/types/helpers/matchMedia.native.d.ts.map +0 -1
  311. package/types/helpers/themeable.d.ts.map +0 -1
  312. package/types/helpers/validate.d.ts.map +0 -1
  313. package/types/hooks/useConstant.d.ts.map +0 -1
  314. package/types/hooks/useFeatures.d.ts.map +0 -1
  315. package/types/hooks/useMedia.d.ts.map +0 -1
  316. package/types/hooks/usePressable.d.ts.map +0 -1
  317. package/types/hooks/useTheme.d.ts.map +0 -1
  318. package/types/index.d.ts.map +0 -1
  319. package/types/static/postProcessStyles.d.ts.map +0 -1
  320. package/types/static.d.ts.map +0 -1
  321. package/types/styled.d.ts.map +0 -1
  322. package/types/types.d.ts.map +0 -1
  323. package/types/views/Animated.d.ts.map +0 -1
  324. package/types/views/Stack.d.ts.map +0 -1
  325. package/types/views/Text.d.ts.map +0 -1
  326. package/types/views/TextAncestorContext.d.ts.map +0 -1
  327. package/types/views/Theme.d.ts.map +0 -1
  328. package/types/views/ThemeContext.d.ts.map +0 -1
  329. package/types/views/ThemeInverse.d.ts.map +0 -1
  330. package/types/views/ThemeManagerContext.d.ts.map +0 -1
  331. package/types/views/ThemeProvider.d.ts.map +0 -1
@@ -0,0 +1,107 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { createVariable, isVariable } from "./createVariable";
4
+ import { createTamaguiProvider } from "./helpers/createTamaguiProvider";
5
+ import { configureMedia } from "./hooks/useMedia";
6
+ let conf;
7
+ const getHasConfigured = /* @__PURE__ */ __name(() => !!conf, "getHasConfigured");
8
+ const getTamaguiConfig = /* @__PURE__ */ __name(() => conf, "getTamaguiConfig");
9
+ const configListeners = new Set();
10
+ const onConfiguredOnce = /* @__PURE__ */ __name((cb) => {
11
+ if (conf) {
12
+ cb(conf);
13
+ } else {
14
+ configListeners.add(cb);
15
+ }
16
+ }, "onConfiguredOnce");
17
+ const THEME_CLASS_PREFIX = `theme--`;
18
+ function createTamagui(config) {
19
+ if (conf) {
20
+ throw new Error(`#000 createTamagui called twice`);
21
+ }
22
+ configureMedia({
23
+ queries: config.media,
24
+ defaultActive: config.mediaQueryDefaultActive
25
+ });
26
+ const themeConfig = (() => {
27
+ let cssRules = [];
28
+ let tokenRule = `html {`;
29
+ const varsByValue = new Map();
30
+ for (const key in config.tokens) {
31
+ for (const skey in config.tokens[key]) {
32
+ const v = config.tokens[key][skey];
33
+ varsByValue[v.val] = v;
34
+ tokenRule += `--${v.name}:${typeof v.val === "number" ? `${v.val}px` : v.val};`;
35
+ }
36
+ }
37
+ cssRules.push(`${tokenRule}
38
+ }`);
39
+ for (const themeName in config.themes) {
40
+ const theme = config.themes[themeName];
41
+ let vars = "";
42
+ for (const themeKey in theme) {
43
+ const val = theme[themeKey];
44
+ const getVariableCSS = /* @__PURE__ */ __name((inv) => {
45
+ const v = varsByValue[inv] ?? inv;
46
+ return isVariable(v) ? `--${themeKey}:var(--${v.name});` : `--${themeKey}:${v};`;
47
+ }, "getVariableCSS");
48
+ vars += getVariableCSS(val);
49
+ if (!isVariable(val)) {
50
+ theme[themeKey] = createVariable({
51
+ name: themeKey,
52
+ val
53
+ });
54
+ }
55
+ }
56
+ cssRules.push(`.${THEME_CLASS_PREFIX}${themeName} {
57
+ ${vars}
58
+ }`);
59
+ }
60
+ Object.freeze(cssRules);
61
+ return {
62
+ cssRules,
63
+ css: cssRules.join("\n")
64
+ };
65
+ })();
66
+ const tokensParsed = {};
67
+ for (const key in config.tokens) {
68
+ tokensParsed[key] = {};
69
+ for (const skey in config.tokens[key]) {
70
+ tokensParsed[key][`$${skey}`] = config.tokens[key][skey];
71
+ }
72
+ }
73
+ const themeParsed = {};
74
+ const firstKey = Object.keys(config.themes)[0];
75
+ for (const key in config.themes[firstKey]) {
76
+ themeParsed[`$${key}`] = config.themes[firstKey][key];
77
+ }
78
+ const next = {
79
+ ...config,
80
+ TamaguiProvider: createTamaguiProvider({
81
+ defaultTheme: "light",
82
+ ...config
83
+ }),
84
+ themeConfig,
85
+ themeParsed,
86
+ tokensParsed
87
+ };
88
+ conf = next;
89
+ if (configListeners.size) {
90
+ configListeners.forEach((cb) => cb(next));
91
+ configListeners.clear();
92
+ }
93
+ return next;
94
+ }
95
+ __name(createTamagui, "createTamagui");
96
+ function getThemeParentClassName(themeName) {
97
+ return `theme-parent ${themeName ? `${THEME_CLASS_PREFIX}${themeName}` : ""}`;
98
+ }
99
+ __name(getThemeParentClassName, "getThemeParentClassName");
100
+ export {
101
+ createTamagui,
102
+ getHasConfigured,
103
+ getTamaguiConfig,
104
+ getThemeParentClassName,
105
+ onConfiguredOnce
106
+ };
107
+ //# sourceMappingURL=createTamagui.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/createTamagui.ts"],
4
+ "sourcesContent": ["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"],
5
+ "mappings": ";;AAAA;AACA;AACA;AAsBA,IAAI;AAEG,MAAM,mBAAmB,6BAAM,CAAC,CAAC,MAAR;AACzB,MAAM,mBAAmB,6BAAM,MAAN;AAGhC,MAAM,kBAAkB,IAAI;AACrB,MAAM,mBAAmB,wBAAC,OAAuB;AACtD,MAAI,MAAM;AACR,OAAG;AAAA,SACE;AACL,oBAAgB,IAAI;AAAA;AAAA,GAJQ;AAQhC,MAAM,qBAAqB;AAEpB,uBACL,QAGU;AACV,MAAI,MAAM;AACR,UAAM,IAAI,MAAM;AAAA;AAGlB,iBAAe;AAAA,IACb,SAAS,OAAO;AAAA,IAChB,eAAe,OAAO;AAAA;AAGxB,QAAM,cAAe,OAAM;AACzB,QAAI,WAAqB;AAGzB,QAAI,YAAY;AAChB,UAAM,cAAc,IAAI;AACxB,eAAW,OAAO,OAAO,QAAQ;AAC/B,iBAAW,QAAQ,OAAO,OAAO,MAAM;AACrC,cAAM,IAAI,OAAO,OAAO,KAAK;AAC7B,oBAAY,EAAE,OAAO;AACrB,qBAAa,KAAK,EAAE,QAAQ,OAAO,EAAE,QAAQ,WAAW,GAAG,EAAE,UAAU,EAAE;AAAA;AAAA;AAG7E,aAAS,KAAK,GAAG;AAAA;AAGjB,eAAW,aAAa,OAAO,QAAQ;AACrC,YAAM,QAAQ,OAAO,OAAO;AAC5B,UAAI,OAAO;AACX,iBAAW,YAAY,OAAO;AAC5B,cAAM,MAAM,MAAM;AAClB,cAAM,iBAAiB,wBAAC,QAAa;AACnC,gBAAM,IAAI,YAAY,QAAQ;AAC9B,iBAAO,WAAW,KAAK,KAAK,kBAAkB,EAAE,WAAW,KAAK,YAAY;AAAA,WAFvD;AAIvB,gBAAQ,eAAe;AAGvB,YAAI,CAAC,WAAW,MAAM;AACpB,gBAAM,YAAY,eAAe;AAAA,YAC/B,MAAM;AAAA,YACN;AAAA;AAAA;AAAA;AAIN,eAAS,KAAK,IAAI,qBAAqB;AAAA,EAAgB;AAAA;AAAA;AAGzD,WAAO,OAAO;AAEd,WAAO;AAAA,MACL;AAAA,MACA,KAAK,SAAS,KAAK;AAAA;AAAA;AAOvB,QAAM,eAAoB;AAC1B,aAAW,OAAO,OAAO,QAAQ;AAC/B,iBAAa,OAAO;AACpB,eAAW,QAAQ,OAAO,OAAO,MAAM;AACrC,mBAAa,KAAK,IAAI,UAAU,OAAO,OAAO,KAAK;AAAA;AAAA;AAKvD,QAAM,cAAmB;AACzB,QAAM,WAAW,OAAO,KAAK,OAAO,QAAQ;AAC5C,aAAW,OAAO,OAAO,OAAO,WAAW;AACzC,gBAAY,IAAI,SAAS,OAAO,OAAO,UAAU;AAAA;AAGnD,QAAM,OAA8B;AAAA,OAC/B;AAAA,IACH,iBAAiB,sBAAsB;AAAA,MACrC,cAAc;AAAA,SACX;AAAA;AAAA,IAEL;AAAA,IACA;AAAA,IACA;AAAA;AAEF,SAAO;AAEP,MAAI,gBAAgB,MAAM;AACxB,oBAAgB,QAAQ,CAAC,OAAO,GAAG;AACnC,oBAAgB;AAAA;AAIlB,SAAO;AAAA;AAhGO;AAmGT,iCAAiC,WAA2B;AACjE,SAAO,gBAAgB,YAAY,GAAG,qBAAqB,cAAc;AAAA;AAD3D;",
6
+ "names": []
7
+ }
@@ -1,11 +1,7 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
  import { createVariable } from "./createVariable";
4
- import { validateTokens } from "./helpers/validate";
5
4
  function createTokens(tokens) {
6
- if (process.env.NODE_ENV === "development") {
7
- validateTokens(tokens);
8
- }
9
5
  return setupTokens(tokens);
10
6
  }
11
7
  __name(createTokens, "createTokens");
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/createTokens.ts"],
4
+ "sourcesContent": ["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"],
5
+ "mappings": ";;AAAA;AAKO,sBAAsB,QAAsB;AACjD,SAAO,YAAY;AAAA;AADL;AAIhB,qBAAqB,QAAa;AAChC,SAAO,qBAAqB;AAAA;AADrB;AAIF,MAAM,uBAAuB,wBAClC,QACA,aAAa,OACc;AAC3B,QAAM,MAAM;AACZ,aAAW,OAAO,QAAQ;AACxB,UAAM,MAAM,OAAO;AACnB,UAAM,OAAO,aAAa,GAAG,cAAc,QAAQ;AACnD,QAAI,OAAO,OAAO,QAAQ,UAAU;AAClC,UAAI,OAAO,qBAAqB,OAAO,MAAM;AAAA,WACxC;AACL,UAAI,OAAO,eAAe,EAAE,KAAK;AAAA;AAAA;AAIrC,SAAO;AAAA,GAf2B;",
6
+ "names": []
7
+ }
@@ -1,14 +1,10 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { isWeb } from "./constants/platform";
4
3
  class Variable {
5
4
  constructor({ val, name }) {
6
- this.val = val;
5
+ this.val = typeof val === "string" ? val : `${val}px`;
7
6
  this.name = name;
8
- this.variable = isWeb ? `var(--${name})` : this.val;
9
- }
10
- toString() {
11
- return `${isWeb ? this.variable : this.val}`;
7
+ this.variable = `var(--${name})`;
12
8
  }
13
9
  }
14
10
  __name(Variable, "Variable");
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/createVariable.ts"],
4
+ "sourcesContent": ["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"],
5
+ "mappings": ";;AAAO,eAAe;AAAA,EAIpB,YAAY,EAAE,KAAK,QAAoB;AACrC,SAAK,MAAM,OAAO,QAAQ,WAAW,MAAM,GAAG;AAC9C,SAAK,OAAO;AACZ,SAAK,WAAW,SAAS;AAAA;AAAA;AAPtB;AAaA,MAAM,iBAAiB,wBAAC,UAAsB,IAAI,SAAS,QAApC;AAEvB,oBAAoB,GAAkC;AAC3D,SAAO,aAAa;AAAA;AADN;",
6
+ "names": []
7
+ }
@@ -0,0 +1,28 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { getStylesAtomic } from "@tamagui/helpers";
4
+ import { insertStyleRule } from "./insertStyleRule";
5
+ let added = {};
6
+ function addStylesUsingClassname(styles) {
7
+ let className = "";
8
+ for (const style of styles.flat()) {
9
+ if (!style)
10
+ continue;
11
+ for (const { identifier, rules } of getStylesAtomic(style)) {
12
+ className += ` ${identifier}`;
13
+ if (added[identifier]) {
14
+ continue;
15
+ }
16
+ added[identifier] = true;
17
+ for (const rule of rules) {
18
+ insertStyleRule(rule);
19
+ }
20
+ }
21
+ }
22
+ return className;
23
+ }
24
+ __name(addStylesUsingClassname, "addStylesUsingClassname");
25
+ export {
26
+ addStylesUsingClassname
27
+ };
28
+ //# sourceMappingURL=addStylesUsingClassname.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/helpers/addStylesUsingClassname.tsx"],
4
+ "sourcesContent": ["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"],
5
+ "mappings": ";;AAAA;AAEA;AAEA,IAAI,QAAQ;AAIL,iCAAiC,QAAe;AACrD,MAAI,YAAY;AAChB,aAAW,SAAS,OAAO,QAAQ;AACjC,QAAI,CAAC;AAAO;AACZ,eAAW,EAAE,YAAY,WAAW,gBAAgB,QAAQ;AAC1D,mBAAa,IAAI;AACjB,UAAI,MAAM,aAAa;AACrB;AAAA;AAEF,YAAM,cAAc;AACpB,iBAAW,QAAQ,OAAO;AACxB,wBAAgB;AAAA;AAAA;AAAA;AAItB,SAAO;AAAA;AAfO;",
6
+ "names": []
7
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/helpers/createMediaStyle.ts"],
3
+ "sources": ["../../src/helpers/createMediaStyle.ts"],
4
4
  "sourcesContent": ["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"],
5
5
  "mappings": ";;AAEA;AAMO,MAAM,YAAY;AAElB,MAAM,mBAAmB,wBAC9B,EAAE,YAAY,SACd,UACA,cACA,QACA,aAAa,MACV;AACH,QAAM,YAAY,OAAO,KAAK;AAC9B,QAAM,sBAAsB,UAAU,OAAO,CAAC,KAAK,KAAK,MAAM;AAC5D,QAAI,OAAO,IAAI,MAAM,aAAa,GAAG,KAAK,SAAS,KAAK;AACxD,WAAO;AAAA,KACN;AACH,QAAM,SAAS,SAAS,MAAM;AAC9B,QAAM,WAAW,WAAW,MAAM,GAAG,WAAW,QAAQ,OAAO;AAC/D,QAAM,iBAAiB,GAAG,WAAW,QACnC,UACA,GAAG,WAAW,YAAY,WAAW,SAAS;AAEhD,QAAM,YAAY,SAAS,YAAY;AACvC,QAAM,gBAAgB,oBAAoB,aAAa;AACvD,QAAM,aAAa,GAAG,iBAAiB;AACvC,QAAM,oBAAoB,oBAAoB;AAC9C,QAAM,aAAa,MAAM,GAAG,QAAQ,YAAY;AAEhD,MAAI,YAAY;AAChB,MAAI,WAAW,SAAS,WAAW;AAEjC,gBAAY,WAAW,QAAQ,KAAK,QAAQ;AAAA,SACvC;AACL,gBAAY,UAAU,gBAAgB,qBAAqB;AAAA;AAE7D,SAAO;AAAA,IACL;AAAA,IACA,YAAY;AAAA;AAAA,GAjCgB;",
6
6
  "names": []
@@ -1,21 +1,39 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { OverlayProvider } from "@react-native-aria/overlays";
3
4
  import * as React from "react";
5
+ import { Platform } from "react-native";
6
+ import {
7
+ SafeAreaProvider,
8
+ initialWindowMetrics as defaultInitialWindowMetrics
9
+ } from "react-native-safe-area-context";
4
10
  import { TextAncestorProvider } from "../views/TextAncestorContext";
5
11
  import { ThemeProvider } from "../views/ThemeProvider";
6
12
  function createTamaguiProvider(themeProps) {
13
+ let defaultMetrics = null;
7
14
  return /* @__PURE__ */ __name(function TamaguiProvider({
8
15
  initialWindowMetrics,
9
16
  fallback,
10
17
  children,
11
18
  ...themePropsProvider
12
19
  }) {
13
- return /* @__PURE__ */ React.createElement(TextAncestorProvider, null, /* @__PURE__ */ React.createElement(ThemeProvider, {
20
+ if (!initialWindowMetrics && !defaultMetrics) {
21
+ defaultMetrics = Platform.select({
22
+ web: {
23
+ frame: { x: 0, y: 0, width: 0, height: 0 },
24
+ insets: { top: 0, left: 0, right: 0, bottom: 0 }
25
+ },
26
+ default: defaultInitialWindowMetrics
27
+ });
28
+ }
29
+ return /* @__PURE__ */ React.createElement(TextAncestorProvider, null, /* @__PURE__ */ React.createElement(OverlayProvider, null, /* @__PURE__ */ React.createElement(SafeAreaProvider, {
30
+ initialMetrics: initialWindowMetrics ?? defaultMetrics
31
+ }, /* @__PURE__ */ React.createElement(ThemeProvider, {
14
32
  ...themeProps,
15
33
  ...themePropsProvider
16
34
  }, /* @__PURE__ */ React.createElement(React.Suspense, {
17
35
  fallback: fallback || null
18
- }, children)));
36
+ }, children)))));
19
37
  }, "TamaguiProvider");
20
38
  }
21
39
  __name(createTamaguiProvider, "createTamaguiProvider");
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/helpers/createTamaguiProvider.tsx"],
4
+ "sourcesContent": ["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"],
5
+ "mappings": ";;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAOA;AACA;AAEO,+BAA+B,YAAgC;AACpE,MAAI,iBAAiC;AACrC,SAAO,gDAAyB;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,OACG;AAAA,KACoB;AACvB,QAAI,CAAC,wBAAwB,CAAC,gBAAgB;AAC5C,uBAAiB,SAAS,OAAO;AAAA,QAC/B,KAAK;AAAA,UACH,OAAO,EAAE,GAAG,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ;AAAA,UACvC,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ;AAAA;AAAA,QAE/C,SAAS;AAAA;AAAA;AAGb,WACE,oCAAC,sBAAD,MACE,oCAAC,iBAAD,MACE,oCAAC,kBAAD;AAAA,MAAkB,gBAAgB,wBAAwB;AAAA,OACxD,oCAAC,eAAD;AAAA,SAAmB;AAAA,SAAgB;AAAA,OACjC,oCAAC,MAAM,UAAP;AAAA,MAAgB,UAAU,YAAY;AAAA,OAAO;AAAA,KApBlD;AAAA;AAFO;",
6
+ "names": []
7
+ }
@@ -0,0 +1,158 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { getTamaguiConfig } from "../createTamagui";
4
+ import { isVariable } from "../createVariable";
5
+ function extendStaticConfig(Component, config = {}) {
6
+ if (process.env.TARGET === "client") {
7
+ return null;
8
+ }
9
+ const a = Component;
10
+ if (!a.staticConfig) {
11
+ a.staticConfig = {};
12
+ }
13
+ return parseStaticConfig({
14
+ variants: config.variants,
15
+ isText: config.isText || a.staticConfig.isText || false,
16
+ neverFlatten: config.neverFlatten ?? a.staticConfig.neverFlatten,
17
+ ensureOverriddenProp: config.ensureOverriddenProp ?? a.staticConfig.ensureOverriddenProp,
18
+ validStyles: {
19
+ ...a.staticConfig.validStyles,
20
+ ...config.validStyles
21
+ },
22
+ validPropsExtra: {
23
+ ...a.staticConfig.validPropsExtra,
24
+ ...config.validPropsExtra
25
+ },
26
+ defaultProps: {
27
+ ...a.staticConfig.defaultProps,
28
+ ...config.defaultProps
29
+ }
30
+ });
31
+ }
32
+ __name(extendStaticConfig, "extendStaticConfig");
33
+ function parseStaticConfig(c) {
34
+ const variants = c.variants;
35
+ let variantsParsed;
36
+ return {
37
+ ...c,
38
+ parsed: true,
39
+ propMapper(key, value, theme) {
40
+ const conf = getTamaguiConfig();
41
+ if (!conf) {
42
+ console.trace("err");
43
+ return;
44
+ }
45
+ if (variants && !variantsParsed) {
46
+ variantsParsed = parseVariants(variants, conf);
47
+ }
48
+ const variant = variantsParsed?.[key];
49
+ if (variant) {
50
+ const tokenKey = typeof value === "string" && value[0] === "$" ? value.slice(1) : value;
51
+ const val = variant[tokenKey] ?? value;
52
+ if (typeof val !== "undefined") {
53
+ if (typeof val === "function") {
54
+ const res = val(tokenKey, conf);
55
+ if (res) {
56
+ for (const key2 in res) {
57
+ const finalKey = conf.shorthands[key2] || key2;
58
+ if (key2 !== finalKey) {
59
+ delete res[key2];
60
+ }
61
+ const resVal = isVariable(res[key2]) ? res[key2].variable : res[key2];
62
+ const finalValue = resVal[0] === "$" ? getToken(finalKey, resVal, conf) : value;
63
+ console.log("dun", finalKey, finalValue);
64
+ res[finalKey] = finalValue;
65
+ }
66
+ }
67
+ console.warn("no res", res);
68
+ return res;
69
+ }
70
+ console.warn("this should probably just be an obj", val);
71
+ return val;
72
+ }
73
+ }
74
+ let shouldReturn = false;
75
+ if (conf.shorthands[key]) {
76
+ shouldReturn = true;
77
+ key = conf.shorthands[key];
78
+ }
79
+ if (value && value[0] === "$") {
80
+ shouldReturn = true;
81
+ value = getToken(key, value, conf);
82
+ }
83
+ if (shouldReturn) {
84
+ return {
85
+ [key]: value
86
+ };
87
+ }
88
+ }
89
+ };
90
+ }
91
+ __name(parseStaticConfig, "parseStaticConfig");
92
+ const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed, themeParsed }) => {
93
+ if (themeParsed[value]) {
94
+ return themeParsed[value].variable;
95
+ }
96
+ for (const cat in tokenCategories) {
97
+ if (tokenCategories[cat][key]) {
98
+ const res = tokensParsed[cat][value];
99
+ if (res) {
100
+ return res.variable;
101
+ } else {
102
+ return themeParsed[value].variable;
103
+ }
104
+ }
105
+ }
106
+ return tokensParsed.space[key]?.[value].variable ?? value;
107
+ }, "getToken");
108
+ const tokenCategories = {
109
+ size: {
110
+ width: true,
111
+ height: true,
112
+ minWidth: true,
113
+ minHeight: true,
114
+ maxWidth: true,
115
+ maxHeight: true
116
+ },
117
+ font: {
118
+ fontFamily: true
119
+ },
120
+ fontSize: {
121
+ fontSize: true
122
+ },
123
+ lineHeight: {
124
+ lineHeight: true
125
+ },
126
+ color: {
127
+ color: true,
128
+ backgroundColor: true,
129
+ borderColor: true,
130
+ borderBottomColor: true,
131
+ borderTopColor: true,
132
+ borderLeftColor: true,
133
+ borderRightColor: true
134
+ }
135
+ };
136
+ function parseVariants(variants, conf) {
137
+ return Object.keys(variants).reduce((acc, key) => {
138
+ acc[key] = Object.keys(variants[key]).reduce((vacc, vkey) => {
139
+ if (vkey.startsWith("...")) {
140
+ const tokenKey = vkey.slice(3);
141
+ const tokens = conf.tokens[tokenKey];
142
+ for (const tkey in tokens) {
143
+ vacc[tkey] = variants[key][vkey];
144
+ }
145
+ } else {
146
+ vacc[vkey] = variants[key][vkey];
147
+ }
148
+ return vacc;
149
+ }, {});
150
+ return acc;
151
+ }, {});
152
+ }
153
+ __name(parseVariants, "parseVariants");
154
+ export {
155
+ extendStaticConfig,
156
+ parseStaticConfig
157
+ };
158
+ //# sourceMappingURL=extendStaticConfig.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/helpers/extendStaticConfig.ts"],
4
+ "sourcesContent": ["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"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,38 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ const defaultShadowOffset = {
4
+ width: 0,
5
+ height: 0
6
+ };
7
+ const matchRgba = /rgba\(\s*([\d\.]{1,})\s*,\s*([\d\.]{1,})\s*,\s*([\d\.]{1,})\s*,\s*([\d\.]{1,})\s*\)$/;
8
+ function fixNativeShadow(props, merge = false) {
9
+ let res = merge ? props : {};
10
+ if (props.shadowColor) {
11
+ res.shadowColor = props.shadowColor;
12
+ if (!("shadowOffset" in props)) {
13
+ res.shadowOffset = defaultShadowOffset;
14
+ }
15
+ if (!("shadowOpacity" in props)) {
16
+ res.shadowOpacity = 1;
17
+ const color = String(res.shadowColor).trim();
18
+ if (color[0] === "r" && color[3] === "a") {
19
+ const [_, r, g, b, a] = color.match(matchRgba) ?? [];
20
+ if (typeof a !== "string") {
21
+ console.warn("non valid rgba", color);
22
+ return props;
23
+ }
24
+ res.shadowColor = `rgb(${r},${g},${b})`;
25
+ res.shadowOpacity = +a;
26
+ } else {
27
+ res.shadowOpacity = 1;
28
+ }
29
+ }
30
+ }
31
+ return res;
32
+ }
33
+ __name(fixNativeShadow, "fixNativeShadow");
34
+ export {
35
+ defaultShadowOffset,
36
+ fixNativeShadow
37
+ };
38
+ //# sourceMappingURL=fixNativeShadow.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/helpers/fixNativeShadow.tsx"],
4
+ "sourcesContent": ["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"],
5
+ "mappings": ";;AAAO,MAAM,sBAAsB;AAAA,EACjC,OAAO;AAAA,EACP,QAAQ;AAAA;AAGV,MAAM,YAAY;AAGX,yBAAyB,OAAY,QAAQ,OAAO;AACzD,MAAI,MAAM,QAAQ,QAAQ;AAC1B,MAAI,MAAM,aAAa;AACrB,QAAI,cAAc,MAAM;AACxB,QAAI,CAAE,mBAAkB,QAAQ;AAC9B,UAAI,eAAe;AAAA;AAErB,QAAI,CAAE,oBAAmB,QAAQ;AAC/B,UAAI,gBAAgB;AACpB,YAAM,QAAQ,OAAO,IAAI,aAAa;AACtC,UAAI,MAAM,OAAO,OAAO,MAAM,OAAO,KAAK;AACxC,cAAM,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK,MAAM,MAAM,cAAc;AAClD,YAAI,OAAO,MAAM,UAAU;AACzB,kBAAQ,KAAK,kBAAkB;AAC/B,iBAAO;AAAA;AAET,YAAI,cAAc,OAAO,KAAK,KAAK;AACnC,YAAI,gBAAgB,CAAC;AAAA,aAChB;AACL,YAAI,gBAAgB;AAAA;AAAA;AAAA;AAI1B,SAAO;AAAA;AAvBO;",
6
+ "names": []
7
+ }