@tamagui/static 2.7.7 → 3.0.0-beta.643.1

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 (329) hide show
  1. package/dist/cjs/check-dep-versions.cjs +355 -0
  2. package/dist/cjs/checkDeps.cjs +302 -0
  3. package/dist/cjs/compiler.cjs +286 -0
  4. package/dist/cjs/compilerHost.cjs +1695 -0
  5. package/dist/cjs/constants.cjs +33 -0
  6. package/dist/cjs/domStructuralPass.cjs +112 -0
  7. package/dist/cjs/exports.cjs +42 -0
  8. package/dist/cjs/extractor/addLocalExports.cjs +64 -0
  9. package/dist/cjs/extractor/bundle.cjs +203 -0
  10. package/dist/cjs/extractor/bundleConfig.cjs +747 -0
  11. package/dist/cjs/extractor/concatClassName.cjs +117 -0
  12. package/dist/cjs/extractor/detectModuleFormat.cjs +54 -0
  13. package/dist/cjs/extractor/esbuildAliasPlugin.cjs +47 -0
  14. package/dist/cjs/extractor/esbuildTsconfigPaths.cjs +92 -0
  15. package/dist/cjs/extractor/getTamaguiConfigPathFromOptionsConfig.cjs +38 -0
  16. package/dist/cjs/extractor/loadTamagui.cjs +344 -0
  17. package/dist/cjs/extractor/regenerateConfig.cjs +161 -0
  18. package/dist/cjs/extractor/watchTamaguiConfig.cjs +64 -0
  19. package/dist/cjs/getPragmaOptions.cjs +67 -0
  20. package/dist/cjs/helpers/memoize.cjs +42 -0
  21. package/dist/cjs/helpers/requireTamaguiCore.cjs +40 -0
  22. package/dist/cjs/index.cjs +34 -0
  23. package/dist/cjs/registerRequire.cjs +220 -0
  24. package/dist/cjs/server.cjs +66 -0
  25. package/dist/cjs/staticEvaluationIgnoredModules.cjs +86 -0
  26. package/dist/cjs/types.cjs +17 -0
  27. package/dist/cjs/zero/artifact.cjs +145 -0
  28. package/dist/cjs/zero/graph.cjs +209 -0
  29. package/dist/cjs/zero/identity.cjs +61 -0
  30. package/dist/cjs/zero/index.cjs +26 -0
  31. package/dist/cjs/zero/islands.cjs +232 -0
  32. package/dist/cjs/zero/options.cjs +163 -0
  33. package/dist/cjs/zero/ownership.cjs +79 -0
  34. package/dist/cjs/zero/theme.cjs +328 -0
  35. package/dist/cjs/zero/transform.cjs +203 -0
  36. package/dist/esm/check-dep-versions.mjs +329 -0
  37. package/dist/esm/check-dep-versions.mjs.map +1 -0
  38. package/dist/esm/checkDeps.mjs +279 -0
  39. package/dist/esm/checkDeps.mjs.map +1 -0
  40. package/dist/esm/compiler.mjs +255 -0
  41. package/dist/esm/compiler.mjs.map +1 -0
  42. package/dist/esm/compilerHost.mjs +1675 -0
  43. package/dist/esm/compilerHost.mjs.map +1 -0
  44. package/dist/esm/constants.mjs +7 -0
  45. package/dist/esm/constants.mjs.map +1 -0
  46. package/dist/esm/domStructuralPass.mjs +92 -0
  47. package/dist/esm/domStructuralPass.mjs.map +1 -0
  48. package/dist/esm/exports.mjs +26 -0
  49. package/dist/esm/extractor/addLocalExports.mjs +44 -0
  50. package/dist/esm/extractor/addLocalExports.mjs.map +1 -0
  51. package/dist/esm/extractor/bundle.mjs +173 -0
  52. package/dist/esm/extractor/bundle.mjs.map +1 -0
  53. package/dist/esm/extractor/bundleConfig.mjs +706 -0
  54. package/dist/esm/extractor/bundleConfig.mjs.map +1 -0
  55. package/dist/esm/extractor/concatClassName.mjs +96 -0
  56. package/dist/esm/extractor/concatClassName.mjs.map +1 -0
  57. package/dist/esm/extractor/detectModuleFormat.mjs +31 -0
  58. package/dist/esm/extractor/detectModuleFormat.mjs.map +1 -0
  59. package/dist/esm/extractor/esbuildAliasPlugin.mjs +26 -0
  60. package/dist/esm/extractor/esbuildAliasPlugin.mjs.map +1 -0
  61. package/dist/esm/extractor/esbuildTsconfigPaths.mjs +63 -0
  62. package/dist/esm/extractor/esbuildTsconfigPaths.mjs.map +1 -0
  63. package/dist/esm/extractor/getTamaguiConfigPathFromOptionsConfig.mjs +18 -0
  64. package/dist/esm/extractor/getTamaguiConfigPathFromOptionsConfig.mjs.map +1 -0
  65. package/dist/esm/extractor/loadTamagui.mjs +306 -0
  66. package/dist/esm/extractor/loadTamagui.mjs.map +1 -0
  67. package/dist/esm/extractor/regenerateConfig.mjs +131 -0
  68. package/dist/esm/extractor/regenerateConfig.mjs.map +1 -0
  69. package/dist/esm/extractor/watchTamaguiConfig.mjs +43 -0
  70. package/dist/esm/extractor/watchTamaguiConfig.mjs.map +1 -0
  71. package/dist/esm/getPragmaOptions.mjs +46 -0
  72. package/dist/esm/getPragmaOptions.mjs.map +1 -0
  73. package/dist/esm/helpers/memoize.mjs +21 -0
  74. package/dist/esm/helpers/memoize.mjs.map +1 -0
  75. package/dist/esm/helpers/requireTamaguiCore.mjs +19 -0
  76. package/dist/esm/helpers/requireTamaguiCore.mjs.map +1 -0
  77. package/dist/esm/index.mjs +8 -0
  78. package/dist/esm/index.mjs.map +1 -0
  79. package/dist/esm/registerRequire.mjs +195 -0
  80. package/dist/esm/registerRequire.mjs.map +1 -0
  81. package/dist/esm/server.mjs +40 -0
  82. package/dist/esm/server.mjs.map +1 -0
  83. package/dist/esm/setup.mjs +0 -0
  84. package/dist/esm/staticEvaluationIgnoredModules.mjs +61 -0
  85. package/dist/esm/staticEvaluationIgnoredModules.mjs.map +1 -0
  86. package/dist/esm/types.mjs +0 -0
  87. package/dist/esm/zero/artifact.mjs +119 -0
  88. package/dist/esm/zero/artifact.mjs.map +1 -0
  89. package/dist/esm/zero/graph.mjs +170 -0
  90. package/dist/esm/zero/graph.mjs.map +1 -0
  91. package/dist/esm/zero/identity.mjs +36 -0
  92. package/dist/esm/zero/identity.mjs.map +1 -0
  93. package/dist/esm/zero/index.mjs +15 -0
  94. package/dist/esm/zero/islands.mjs +197 -0
  95. package/dist/esm/zero/islands.mjs.map +1 -0
  96. package/dist/esm/zero/options.mjs +129 -0
  97. package/dist/esm/zero/options.mjs.map +1 -0
  98. package/dist/esm/zero/ownership.mjs +48 -0
  99. package/dist/esm/zero/ownership.mjs.map +1 -0
  100. package/dist/esm/zero/theme.mjs +303 -0
  101. package/dist/esm/zero/theme.mjs.map +1 -0
  102. package/dist/esm/zero/transform.mjs +177 -0
  103. package/dist/esm/zero/transform.mjs.map +1 -0
  104. package/package.json +33 -43
  105. package/src/check-dep-versions.ts +2 -2
  106. package/src/checkDeps.ts +3 -2
  107. package/src/compiler.ts +425 -0
  108. package/src/compilerHost.ts +3125 -0
  109. package/src/constants.ts +0 -5
  110. package/src/domStructuralPass.ts +170 -0
  111. package/src/exports.ts +3 -6
  112. package/src/extractor/addLocalExports.ts +49 -0
  113. package/src/extractor/bundle.ts +20 -35
  114. package/src/extractor/bundleConfig.ts +334 -187
  115. package/src/extractor/concatClassName.ts +13 -20
  116. package/src/extractor/getTamaguiConfigPathFromOptionsConfig.ts +5 -4
  117. package/src/extractor/loadTamagui.ts +196 -143
  118. package/src/extractor/regenerateConfig.ts +65 -13
  119. package/src/extractor/watchTamaguiConfig.ts +6 -1
  120. package/src/helpers/requireTamaguiCore.ts +6 -1
  121. package/src/registerRequire.ts +94 -132
  122. package/src/staticEvaluationIgnoredModules.ts +74 -0
  123. package/src/types.ts +2 -107
  124. package/src/zero/artifact.ts +142 -0
  125. package/src/zero/graph.ts +359 -0
  126. package/src/zero/identity.ts +73 -0
  127. package/src/zero/index.ts +8 -0
  128. package/src/zero/islands.ts +262 -0
  129. package/src/zero/options.ts +239 -0
  130. package/src/zero/ownership.ts +113 -0
  131. package/src/zero/theme.ts +478 -0
  132. package/src/zero/transform.ts +320 -0
  133. package/types/check-dep-versions.d.ts.map +1 -1
  134. package/types/checkDeps.d.ts.map +1 -1
  135. package/types/compiler.d.ts +117 -0
  136. package/types/compiler.d.ts.map +1 -0
  137. package/types/compilerHost.d.ts +25 -0
  138. package/types/compilerHost.d.ts.map +1 -0
  139. package/types/constants.d.ts +0 -1
  140. package/types/constants.d.ts.map +1 -1
  141. package/types/domStructuralPass.d.ts +3 -0
  142. package/types/domStructuralPass.d.ts.map +1 -0
  143. package/types/exports.d.ts +3 -6
  144. package/types/exports.d.ts.map +1 -1
  145. package/types/extractor/addLocalExports.d.ts +3 -0
  146. package/types/extractor/addLocalExports.d.ts.map +1 -0
  147. package/types/extractor/bundle.d.ts +66 -65
  148. package/types/extractor/bundle.d.ts.map +1 -1
  149. package/types/extractor/bundleConfig.d.ts +19 -4
  150. package/types/extractor/bundleConfig.d.ts.map +1 -1
  151. package/types/extractor/esbuildAliasPlugin.d.ts.map +1 -1
  152. package/types/extractor/getTamaguiConfigPathFromOptionsConfig.d.ts +1 -1
  153. package/types/extractor/getTamaguiConfigPathFromOptionsConfig.d.ts.map +1 -1
  154. package/types/extractor/loadTamagui.d.ts +26 -3
  155. package/types/extractor/loadTamagui.d.ts.map +1 -1
  156. package/types/extractor/regenerateConfig.d.ts +1 -1
  157. package/types/extractor/regenerateConfig.d.ts.map +1 -1
  158. package/types/extractor/watchTamaguiConfig.d.ts.map +1 -1
  159. package/types/getPragmaOptions.d.ts +1 -1
  160. package/types/helpers/memoize.d.ts +1 -1
  161. package/types/helpers/memoize.d.ts.map +1 -1
  162. package/types/helpers/requireTamaguiCore.d.ts.map +1 -1
  163. package/types/index.d.ts.map +1 -1
  164. package/types/registerRequire.d.ts +2 -2
  165. package/types/registerRequire.d.ts.map +1 -1
  166. package/types/staticEvaluationIgnoredModules.d.ts +9 -0
  167. package/types/staticEvaluationIgnoredModules.d.ts.map +1 -0
  168. package/types/types.d.ts +2 -90
  169. package/types/types.d.ts.map +1 -1
  170. package/types/zero/artifact.d.ts +44 -0
  171. package/types/zero/artifact.d.ts.map +1 -0
  172. package/types/zero/graph.d.ts +139 -0
  173. package/types/zero/graph.d.ts.map +1 -0
  174. package/types/zero/identity.d.ts +33 -0
  175. package/types/zero/identity.d.ts.map +1 -0
  176. package/types/zero/index.d.ts +9 -0
  177. package/types/zero/index.d.ts.map +1 -0
  178. package/types/zero/islands.d.ts +56 -0
  179. package/types/zero/islands.d.ts.map +1 -0
  180. package/types/zero/options.d.ts +58 -0
  181. package/types/zero/options.d.ts.map +1 -0
  182. package/types/zero/ownership.d.ts +51 -0
  183. package/types/zero/ownership.d.ts.map +1 -0
  184. package/types/zero/theme.d.ts +83 -0
  185. package/types/zero/theme.d.ts.map +1 -0
  186. package/types/zero/transform.d.ts +53 -0
  187. package/types/zero/transform.d.ts.map +1 -0
  188. package/dist/check-dep-versions.cjs +0 -372
  189. package/dist/checkDeps.cjs +0 -271
  190. package/dist/constants.cjs +0 -51
  191. package/dist/exports.cjs +0 -48
  192. package/dist/extractor/accessSafe.cjs +0 -48
  193. package/dist/extractor/babelParse.cjs +0 -56
  194. package/dist/extractor/buildClassName.cjs +0 -86
  195. package/dist/extractor/bundle.cjs +0 -234
  196. package/dist/extractor/bundleConfig.cjs +0 -729
  197. package/dist/extractor/concatClassName.cjs +0 -129
  198. package/dist/extractor/createEvaluator.cjs +0 -88
  199. package/dist/extractor/createExtractor.cjs +0 -1968
  200. package/dist/extractor/createLogger.cjs +0 -50
  201. package/dist/extractor/detectModuleFormat.cjs +0 -55
  202. package/dist/extractor/ensureImportingConcat.cjs +0 -54
  203. package/dist/extractor/errors.cjs +0 -28
  204. package/dist/extractor/esbuildAliasPlugin.cjs +0 -56
  205. package/dist/extractor/esbuildTsconfigPaths.cjs +0 -108
  206. package/dist/extractor/evaluateAstNode.cjs +0 -128
  207. package/dist/extractor/extractHelpers.cjs +0 -182
  208. package/dist/extractor/extractMediaStyle.cjs +0 -169
  209. package/dist/extractor/extractToClassNames.cjs +0 -475
  210. package/dist/extractor/extractToNative.cjs +0 -369
  211. package/dist/extractor/findTopmostFunction.cjs +0 -43
  212. package/dist/extractor/generatedUid.cjs +0 -58
  213. package/dist/extractor/getPrefixLogs.cjs +0 -31
  214. package/dist/extractor/getPropValueFromAttributes.cjs +0 -85
  215. package/dist/extractor/getSourceModule.cjs +0 -100
  216. package/dist/extractor/getStaticBindingsForScope.cjs +0 -213
  217. package/dist/extractor/getTamaguiConfigPathFromOptionsConfig.cjs +0 -41
  218. package/dist/extractor/hasTopLevelAwait.cjs +0 -62
  219. package/dist/extractor/hoistClassNames.cjs +0 -76
  220. package/dist/extractor/literalToAst.cjs +0 -109
  221. package/dist/extractor/loadFile.cjs +0 -17
  222. package/dist/extractor/loadTamagui.cjs +0 -373
  223. package/dist/extractor/logLines.cjs +0 -43
  224. package/dist/extractor/normalizeTernaries.cjs +0 -100
  225. package/dist/extractor/propsToFontFamilyCache.cjs +0 -42
  226. package/dist/extractor/regenerateConfig.cjs +0 -178
  227. package/dist/extractor/removeUnusedHooks.cjs +0 -108
  228. package/dist/extractor/timer.cjs +0 -52
  229. package/dist/extractor/validHTMLAttributes.cjs +0 -79
  230. package/dist/extractor/watchTamaguiConfig.cjs +0 -70
  231. package/dist/getPragmaOptions.cjs +0 -73
  232. package/dist/helpers/memoize.cjs +0 -45
  233. package/dist/helpers/requireTamaguiCore.cjs +0 -40
  234. package/dist/index.cjs +0 -42
  235. package/dist/registerRequire.cjs +0 -209
  236. package/dist/server.cjs +0 -82
  237. package/dist/types.cjs +0 -18
  238. package/dist/worker.cjs +0 -111
  239. package/src/extractor/accessSafe.ts +0 -22
  240. package/src/extractor/babelParse.ts +0 -38
  241. package/src/extractor/buildClassName.ts +0 -76
  242. package/src/extractor/createEvaluator.ts +0 -82
  243. package/src/extractor/createExtractor.ts +0 -2970
  244. package/src/extractor/createLogger.ts +0 -41
  245. package/src/extractor/ensureImportingConcat.ts +0 -36
  246. package/src/extractor/errors.ts +0 -1
  247. package/src/extractor/evaluateAstNode.ts +0 -136
  248. package/src/extractor/extractHelpers.ts +0 -211
  249. package/src/extractor/extractMediaStyle.ts +0 -194
  250. package/src/extractor/extractToClassNames.ts +0 -733
  251. package/src/extractor/extractToNative.ts +0 -506
  252. package/src/extractor/findTopmostFunction.ts +0 -24
  253. package/src/extractor/generatedUid.ts +0 -41
  254. package/src/extractor/getPrefixLogs.ts +0 -9
  255. package/src/extractor/getPropValueFromAttributes.ts +0 -95
  256. package/src/extractor/getSourceModule.ts +0 -96
  257. package/src/extractor/getStaticBindingsForScope.ts +0 -237
  258. package/src/extractor/hasTopLevelAwait.ts +0 -28
  259. package/src/extractor/hoistClassNames.ts +0 -52
  260. package/src/extractor/literalToAst.ts +0 -85
  261. package/src/extractor/loadFile.ts +0 -17
  262. package/src/extractor/logLines.ts +0 -16
  263. package/src/extractor/normalizeTernaries.ts +0 -89
  264. package/src/extractor/propsToFontFamilyCache.ts +0 -18
  265. package/src/extractor/removeUnusedHooks.ts +0 -83
  266. package/src/extractor/timer.ts +0 -25
  267. package/src/extractor/validHTMLAttributes.ts +0 -52
  268. package/src/worker.ts +0 -142
  269. package/types/extractor/accessSafe.d.ts +0 -3
  270. package/types/extractor/accessSafe.d.ts.map +0 -1
  271. package/types/extractor/babelParse.d.ts +0 -5
  272. package/types/extractor/babelParse.d.ts.map +0 -1
  273. package/types/extractor/buildClassName.d.ts +0 -7
  274. package/types/extractor/buildClassName.d.ts.map +0 -1
  275. package/types/extractor/createEvaluator.d.ts +0 -12
  276. package/types/extractor/createEvaluator.d.ts.map +0 -1
  277. package/types/extractor/createExtractor.d.ts +0 -32
  278. package/types/extractor/createExtractor.d.ts.map +0 -1
  279. package/types/extractor/createLogger.d.ts +0 -3
  280. package/types/extractor/createLogger.d.ts.map +0 -1
  281. package/types/extractor/ensureImportingConcat.d.ts +0 -4
  282. package/types/extractor/ensureImportingConcat.d.ts.map +0 -1
  283. package/types/extractor/errors.d.ts +0 -3
  284. package/types/extractor/errors.d.ts.map +0 -1
  285. package/types/extractor/evaluateAstNode.d.ts +0 -3
  286. package/types/extractor/evaluateAstNode.d.ts.map +0 -1
  287. package/types/extractor/extractHelpers.d.ts +0 -28
  288. package/types/extractor/extractHelpers.d.ts.map +0 -1
  289. package/types/extractor/extractMediaStyle.d.ts +0 -11
  290. package/types/extractor/extractMediaStyle.d.ts.map +0 -1
  291. package/types/extractor/extractToClassNames.d.ts +0 -25
  292. package/types/extractor/extractToClassNames.d.ts.map +0 -1
  293. package/types/extractor/extractToNative.d.ts +0 -13
  294. package/types/extractor/extractToNative.d.ts.map +0 -1
  295. package/types/extractor/findTopmostFunction.d.ts +0 -4
  296. package/types/extractor/findTopmostFunction.d.ts.map +0 -1
  297. package/types/extractor/generatedUid.d.ts +0 -5
  298. package/types/extractor/generatedUid.d.ts.map +0 -1
  299. package/types/extractor/getPrefixLogs.d.ts +0 -3
  300. package/types/extractor/getPrefixLogs.d.ts.map +0 -1
  301. package/types/extractor/getPropValueFromAttributes.d.ts +0 -19
  302. package/types/extractor/getPropValueFromAttributes.d.ts.map +0 -1
  303. package/types/extractor/getSourceModule.d.ts +0 -16
  304. package/types/extractor/getSourceModule.d.ts.map +0 -1
  305. package/types/extractor/getStaticBindingsForScope.d.ts +0 -5
  306. package/types/extractor/getStaticBindingsForScope.d.ts.map +0 -1
  307. package/types/extractor/hasTopLevelAwait.d.ts +0 -2
  308. package/types/extractor/hasTopLevelAwait.d.ts.map +0 -1
  309. package/types/extractor/hoistClassNames.d.ts +0 -6
  310. package/types/extractor/hoistClassNames.d.ts.map +0 -1
  311. package/types/extractor/literalToAst.d.ts +0 -4
  312. package/types/extractor/literalToAst.d.ts.map +0 -1
  313. package/types/extractor/loadFile.d.ts +0 -1
  314. package/types/extractor/loadFile.d.ts.map +0 -1
  315. package/types/extractor/logLines.d.ts +0 -2
  316. package/types/extractor/logLines.d.ts.map +0 -1
  317. package/types/extractor/normalizeTernaries.d.ts +0 -5
  318. package/types/extractor/normalizeTernaries.d.ts.map +0 -1
  319. package/types/extractor/propsToFontFamilyCache.d.ts +0 -4
  320. package/types/extractor/propsToFontFamilyCache.d.ts.map +0 -1
  321. package/types/extractor/removeUnusedHooks.d.ts +0 -3
  322. package/types/extractor/removeUnusedHooks.d.ts.map +0 -1
  323. package/types/extractor/timer.d.ts +0 -5
  324. package/types/extractor/timer.d.ts.map +0 -1
  325. package/types/extractor/validHTMLAttributes.d.ts +0 -52
  326. package/types/extractor/validHTMLAttributes.d.ts.map +0 -1
  327. package/types/worker.d.ts +0 -46
  328. package/types/worker.d.ts.map +0 -1
  329. /package/dist/{setup.cjs → cjs/setup.cjs} +0 -0
@@ -0,0 +1,328 @@
1
+
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all) __defProp(target, name, {
8
+ get: all[name],
9
+ enumerable: true
10
+ });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ }
19
+ return to;
20
+ };
21
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
+ var theme_exports = {};
23
+ __export(theme_exports, {
24
+ foldBranches: () => foldBranches,
25
+ lowerStaticTheme: () => lowerStaticTheme,
26
+ readStaticTheme: () => readStaticTheme,
27
+ resolveThemeChain: () => resolveThemeChain
28
+ });
29
+ module.exports = __toCommonJS(theme_exports);
30
+ var import_compiler_core = require("@tamagui/compiler-core");
31
+ var import_helpers = require("@tamagui/helpers");
32
+ var import_web = require("@tamagui/web");
33
+ const MAX_THEME_BRANCHES = 8;
34
+ const LOWERABLE_RESERVED_PROPS = /* @__PURE__ */ new Set([
35
+ "name",
36
+ "reset",
37
+ "contain"
38
+ ]);
39
+ function jsxAttributeName(attribute) {
40
+ const name = (0, import_compiler_core.childNode)(attribute, "name");
41
+ return name && typeof name.name === "string" ? name.name : null;
42
+ }
43
+ function literalOf(node) {
44
+ if (!node) return void 0;
45
+ if (node.type === "Literal" && typeof node.value !== "object") {
46
+ return node.value;
47
+ }
48
+ return void 0;
49
+ }
50
+ function hasSideEffects(node) {
51
+ let found = false;
52
+ (0, import_compiler_core.walkAst)(node, (child) => {
53
+ if (child.type === "CallExpression" || child.type === "OptionalCallExpression" || child.type === "NewExpression" || child.type === "AwaitExpression" || child.type === "YieldExpression" || child.type === "AssignmentExpression" || child.type === "UpdateExpression" || child.type === "TaggedTemplateExpression") {
54
+ found = true;
55
+ }
56
+ });
57
+ return found;
58
+ }
59
+ function readNameOptions(value, source, guards) {
60
+ const literal = literalOf(value);
61
+ if (typeof literal === "string") {
62
+ return [{
63
+ test: guards.length ? guards.join(" && ") : null,
64
+ name: literal
65
+ }];
66
+ }
67
+ if (value.type === "ConditionalExpression") {
68
+ const test = (0, import_compiler_core.childNode)(value, "test");
69
+ const consequent = (0, import_compiler_core.childNode)(value, "consequent");
70
+ const alternate = (0, import_compiler_core.childNode)(value, "alternate");
71
+ if (!test || !consequent || !alternate) return null;
72
+ if (hasSideEffects(test)) return null;
73
+ const testText = source.slice(test.start, test.end).replace(/\s+/g, " ").trim();
74
+ const left = readNameOptions(consequent, source, [...guards, `(${testText})`]);
75
+ const right = readNameOptions(alternate, source, [...guards, `!(${testText})`]);
76
+ if (!left || !right) return null;
77
+ return [...left, ...right];
78
+ }
79
+ return null;
80
+ }
81
+ function foldBranches(branches) {
82
+ const last = branches[branches.length - 1];
83
+ if (new Set(branches.map((branch) => branch.value)).size === 1) return last.value;
84
+ let expression = last.value;
85
+ for (let index = branches.length - 2; index >= 0; index--) {
86
+ const branch = branches[index];
87
+ expression = branch.test === null ? branch.value : `${branch.test} ? ${branch.value} : ${expression}`;
88
+ }
89
+ return expression;
90
+ }
91
+ function resolveThemeChain(chain, rootThemeName, config) {
92
+ let branches = [{
93
+ test: null,
94
+ name: rootThemeName,
95
+ isNew: false
96
+ }];
97
+ for (const node of chain) {
98
+ const next = [];
99
+ for (const parent of branches) {
100
+ for (const option of node.options) {
101
+ const resolved = (0, import_web.resolveThemeName)(parent.name, option.name, node.reset, config.themes);
102
+ const tests = [parent.test, option.test].filter(Boolean);
103
+ next.push({
104
+ test: tests.length ? tests.join(" && ") : null,
105
+ name: resolved ?? parent.name,
106
+ isNew: resolved !== null
107
+ });
108
+ }
109
+ }
110
+ branches = next;
111
+ }
112
+ return branches;
113
+ }
114
+ function readStaticTheme(element, id, source, config) {
115
+ const moduleId = (0, import_compiler_core.resolvedModuleId)(id);
116
+ const violations = [];
117
+ const css = /* @__PURE__ */ new Map();
118
+ const opening = (0, import_compiler_core.childNode)(element, "openingElement");
119
+ const closing = (0, import_compiler_core.childNode)(element, "closingElement");
120
+ const span = (node) => ({
121
+ id: moduleId,
122
+ start: node.start,
123
+ end: node.end
124
+ });
125
+ let options = [{
126
+ test: null,
127
+ name: void 0
128
+ }];
129
+ let reset = false;
130
+ let contain = false;
131
+ const themeKeyProps = {};
132
+ for (const attribute of (0, import_compiler_core.childNodes)(opening, "attributes")) {
133
+ if (attribute.type !== "JSXAttribute") {
134
+ violations.push({
135
+ rule: 1,
136
+ code: "local/unsafe-style-spread",
137
+ span: span(attribute),
138
+ component: "Theme",
139
+ message: (0, import_compiler_core.zeroRuleMessage)(1, { component: "Theme" })
140
+ });
141
+ continue;
142
+ }
143
+ const key = jsxAttributeName(attribute);
144
+ if (!key) continue;
145
+ const rawValue = (0, import_compiler_core.childNode)(attribute, "value");
146
+ const value = rawValue && rawValue.type === "JSXExpressionContainer" ? (0, import_compiler_core.childNode)(rawValue, "expression") : rawValue;
147
+ if (key === "name") {
148
+ const read = value ? readNameOptions(value, source, []) : null;
149
+ if (!read) {
150
+ violations.push({
151
+ rule: 4,
152
+ code: "local/unsupported-target",
153
+ span: span(attribute),
154
+ component: "Theme",
155
+ message: (0, import_compiler_core.zeroRuleMessage)(4, { detail: `the <Theme name> value ${source.slice(attribute.start, attribute.end).replace(/\s+/g, " ").trim()}, which is not a literal theme name or a conditional over literal theme names,` })
156
+ });
157
+ continue;
158
+ }
159
+ options = read;
160
+ continue;
161
+ }
162
+ if (import_helpers.reservedThemeProps[key]) {
163
+ if (!LOWERABLE_RESERVED_PROPS.has(key)) {
164
+ violations.push({
165
+ rule: 4,
166
+ code: "local/unsupported-target",
167
+ span: span(attribute),
168
+ component: "Theme",
169
+ message: (0, import_compiler_core.zeroRuleMessage)(4, { detail: `the <Theme ${key}> prop, which has no compiled form,` })
170
+ });
171
+ continue;
172
+ }
173
+ const literal2 = value ? literalOf(value) : true;
174
+ if (typeof literal2 !== "boolean") {
175
+ violations.push({
176
+ rule: 4,
177
+ code: "local/unsupported-target",
178
+ span: span(attribute),
179
+ component: "Theme",
180
+ message: (0, import_compiler_core.zeroRuleMessage)(4, { detail: `a non-literal <Theme ${key}> value,` })
181
+ });
182
+ continue;
183
+ }
184
+ if (key === "reset") reset = literal2;
185
+ if (key === "contain") contain = literal2;
186
+ continue;
187
+ }
188
+ const literal = value ? literalOf(value) : void 0;
189
+ if (typeof literal !== "string" && typeof literal !== "number") {
190
+ violations.push({
191
+ rule: 3,
192
+ code: "local/dynamic-style-value",
193
+ span: span(attribute),
194
+ component: "Theme",
195
+ message: (0, import_compiler_core.zeroRuleMessage)(3, {
196
+ prop: key,
197
+ component: "Theme",
198
+ detail: value ? "a theme value must be a string or number literal at build time" : "a theme key needs a value"
199
+ })
200
+ });
201
+ continue;
202
+ }
203
+ themeKeyProps[key] = literal;
204
+ }
205
+ if (reset && options.some((option) => option.name !== void 0)) {
206
+ violations.push({
207
+ rule: 4,
208
+ code: "local/unsupported-target",
209
+ span: span(opening),
210
+ component: "Theme",
211
+ message: (0, import_compiler_core.zeroRuleMessage)(4, { detail: "a <Theme> with both name and reset, which cannot mean one theme," })
212
+ });
213
+ }
214
+ if (!closing) {
215
+ violations.push({
216
+ rule: 4,
217
+ code: "local/unsupported-target",
218
+ span: span(element),
219
+ component: "Theme",
220
+ message: (0, import_compiler_core.zeroRuleMessage)(4, { detail: "a self-closing <Theme>, which has no subtree to theme," })
221
+ });
222
+ }
223
+ const issues = [];
224
+ const inlineValues = Object.keys(themeKeyProps).length ? (0, import_web.getInlineValuesFromProps)(themeKeyProps, config, (issue) => issues.push(issue)) : null;
225
+ for (const issue of issues) {
226
+ violations.push({
227
+ rule: 3,
228
+ code: "local/dynamic-style-value",
229
+ span: span(opening),
230
+ component: "Theme",
231
+ message: (0, import_compiler_core.zeroRuleMessage)(3, {
232
+ prop: issue.key,
233
+ component: "Theme",
234
+ detail: issue.message
235
+ })
236
+ });
237
+ }
238
+ const inlineCSS = inlineValues ? (0, import_web.getVariablesCSSRules)(inlineValues, config) : null;
239
+ if (inlineCSS) css.set(inlineCSS.identifier, inlineCSS.rules.join(""));
240
+ if (violations.length) return {
241
+ node: null,
242
+ violations,
243
+ css
244
+ };
245
+ return {
246
+ node: {
247
+ element,
248
+ opening,
249
+ closing,
250
+ options,
251
+ reset,
252
+ contain,
253
+ layer: inlineValues && inlineCSS ? {
254
+ inlineValues,
255
+ inlineClassName: inlineCSS.identifier
256
+ } : null
257
+ },
258
+ violations,
259
+ css
260
+ };
261
+ }
262
+ function lowerStaticTheme(node, chain, rootThemeName, config, id) {
263
+ const moduleId = (0, import_compiler_core.resolvedModuleId)(id);
264
+ const branches = resolveThemeChain(chain, rootThemeName, config);
265
+ if (branches.length > MAX_THEME_BRANCHES) {
266
+ return {
267
+ edits: [],
268
+ violations: [{
269
+ rule: 4,
270
+ code: "local/unsupported-target",
271
+ span: {
272
+ id: moduleId,
273
+ start: node.element.start,
274
+ end: node.element.end
275
+ },
276
+ component: "Theme",
277
+ message: (0, import_compiler_core.zeroRuleMessage)(4, { detail: `a <Theme> chain that enumerates ${branches.length} theme names, past the ${MAX_THEME_BRANCHES} this lowers,` })
278
+ }]
279
+ };
280
+ }
281
+ const inlineClass = node.layer?.inlineClassName ?? "";
282
+ const classBranches = branches.map((branch) => ({
283
+ test: branch.test,
284
+ value: JSON.stringify([
285
+ branch.isNew ? (0, import_helpers.getThemeClassNames)(branch.name) : "",
286
+ "is_Theme",
287
+ inlineClass
288
+ ].filter(Boolean).join(" ").replace(/\s+/g, " ").trim())
289
+ }));
290
+ const baseStyle = node.contain ? `display:"contents",contain:"strict"` : `display:"contents"`;
291
+ const styleBranches = branches.map((branch) => {
292
+ const theme = config.themes[branch.name];
293
+ const color = branch.isNew && theme ? (0, import_web.variableToString)(theme.color) : "";
294
+ return {
295
+ test: branch.test,
296
+ value: color ? `{color:${JSON.stringify(color)},${baseStyle}}` : `{${baseStyle}}`
297
+ };
298
+ });
299
+ const className = foldBranches(classBranches);
300
+ const style = foldBranches(styleBranches);
301
+ const classAttribute = className.startsWith("\"") ? `className=${className}` : `className={${className}}`;
302
+ const edits = [{
303
+ start: node.opening.start,
304
+ end: node.opening.end,
305
+ content: `<span ${classAttribute} style={${style}}>`,
306
+ origin: {
307
+ id: moduleId,
308
+ start: node.opening.start,
309
+ end: node.opening.end
310
+ }
311
+ }];
312
+ if (node.closing) {
313
+ edits.push({
314
+ start: node.closing.start,
315
+ end: node.closing.end,
316
+ content: `</span>`,
317
+ origin: {
318
+ id: moduleId,
319
+ start: node.closing.start,
320
+ end: node.closing.end
321
+ }
322
+ });
323
+ }
324
+ return {
325
+ edits,
326
+ violations: []
327
+ };
328
+ }
@@ -0,0 +1,203 @@
1
+
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all) __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true
12
+ });
13
+ };
14
+ var __copyProps = (to, from, except, desc) => {
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
17
+ get: () => from[key],
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
21
+ return to;
22
+ };
23
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
24
+ value: mod,
25
+ enumerable: true
26
+ }) : target, mod));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var transform_exports = {};
29
+ __export(transform_exports, { transformZeroModule: () => transformZeroModule });
30
+ module.exports = __toCommonJS(transform_exports);
31
+ var import_compiler_core = require("@tamagui/compiler-core");
32
+ var import_node_crypto = require("node:crypto");
33
+ var import_node_path = __toESM(require("node:path"), 1);
34
+ var import_theme = require("./theme.cjs");
35
+ function identifierNameOf(node) {
36
+ return node && node.type === "Identifier" && typeof node.name === "string" ? node.name : null;
37
+ }
38
+ function jsxNameOf(element) {
39
+ const opening = (0, import_compiler_core.childNode)(element, "openingElement");
40
+ if (!opening) return null;
41
+ const name = (0, import_compiler_core.childNode)(opening, "name");
42
+ return name && name.type === "JSXIdentifier" && typeof name.name === "string" ? name.name : null;
43
+ }
44
+ function transformZeroModule(input) {
45
+ const { id, source, config } = input;
46
+ const moduleId = (0, import_compiler_core.resolvedModuleId)(id);
47
+ const program = (0, import_compiler_core.parseModuleAst)(source, id);
48
+ const violations = (0, import_compiler_core.zeroViolationsFromPlan)(input.plan);
49
+ const edits = [];
50
+ const bridges = /* @__PURE__ */ new Map();
51
+ const bridgeCSS = /* @__PURE__ */ new Map();
52
+ let themeLocal = null;
53
+ const islandLocals = /* @__PURE__ */ new Map();
54
+ for (const statement of (0, import_compiler_core.childNodes)(program, "body")) {
55
+ if (statement.type !== "ImportDeclaration") continue;
56
+ const sourceNode = (0, import_compiler_core.childNode)(statement, "source");
57
+ const specifier = sourceNode && typeof sourceNode.value === "string" ? sourceNode.value : null;
58
+ if (!specifier) continue;
59
+ const island = input.resolveIslandLoader(specifier);
60
+ for (const importSpecifier of (0, import_compiler_core.childNodes)(statement, "specifiers")) {
61
+ const local = identifierNameOf((0, import_compiler_core.childNode)(importSpecifier, "local"));
62
+ if (!local) continue;
63
+ if (island) {
64
+ islandLocals.set(local, island.islandId);
65
+ continue;
66
+ }
67
+ if (!input.isTamaguiSpecifier(specifier)) continue;
68
+ const imported = (0, import_compiler_core.childNode)(importSpecifier, "imported");
69
+ if (imported && imported.name === "Theme") themeLocal = local;
70
+ }
71
+ }
72
+ const parents = /* @__PURE__ */ new Map();
73
+ const elements = [];
74
+ (0, import_compiler_core.walkAst)(program, (node, parent) => {
75
+ if (parent) parents.set(node, parent);
76
+ if (node.type === "JSXElement") elements.push(node);
77
+ });
78
+ const themeElements = themeLocal ? elements.filter((element) => jsxNameOf(element) === themeLocal) : [];
79
+ const themeNodes = /* @__PURE__ */ new Map();
80
+ for (const element of themeElements) {
81
+ const read = (0, import_theme.readStaticTheme)(element, id, source, config);
82
+ for (const [identifier, rules] of read.css) bridgeCSS.set(identifier, rules);
83
+ violations.push(...read.violations);
84
+ if (read.node) themeNodes.set(element, read.node);
85
+ }
86
+ const themeChainOf = (element) => {
87
+ const chain = [];
88
+ let cursor = element;
89
+ while (cursor) {
90
+ const node = themeNodes.get(cursor);
91
+ if (node) chain.unshift(node);
92
+ cursor = parents.get(cursor);
93
+ }
94
+ return chain;
95
+ };
96
+ const rootThemeName = Object.keys(config.themes)[0] ?? "light";
97
+ for (const element of themeElements) {
98
+ const node = themeNodes.get(element);
99
+ if (!node) continue;
100
+ const lowered = (0, import_theme.lowerStaticTheme)(node, themeChainOf(element), rootThemeName, config, id);
101
+ violations.push(...lowered.violations);
102
+ edits.push(...lowered.edits);
103
+ }
104
+ const mounts = elements.filter((element) => {
105
+ const name = jsxNameOf(element);
106
+ return !!name && islandLocals.has(name);
107
+ }).sort((left, right) => left.start - right.start);
108
+ const moduleBridgePrefix = (0, import_node_crypto.createHash)("sha256").update(import_node_path.default.relative(input.root, id).replace(/\\/g, "/")).digest("hex").slice(0, 8);
109
+ const loweredRanges = input.plan.edits.filter((edit) => edit.end > edit.start);
110
+ const isOpaqueAncestor = (element) => {
111
+ if (themeNodes.has(element)) return false;
112
+ const name = jsxNameOf(element);
113
+ if (!name || islandLocals.has(name)) return false;
114
+ if (name[0] !== name[0].toUpperCase()) return false;
115
+ const nameNode = (0, import_compiler_core.childNode)((0, import_compiler_core.childNode)(element, "openingElement"), "name");
116
+ return !loweredRanges.some((edit) => edit.start <= nameNode.start && edit.end >= nameNode.end);
117
+ };
118
+ mounts.forEach((element, index) => {
119
+ const islandId = islandLocals.get(jsxNameOf(element));
120
+ let opaque = null;
121
+ for (let cursor = parents.get(element); cursor; cursor = parents.get(cursor)) {
122
+ if (cursor.type === "JSXElement" && isOpaqueAncestor(cursor)) opaque = cursor;
123
+ }
124
+ if (opaque) {
125
+ violations.push({
126
+ rule: 4,
127
+ code: "local/unsupported-target",
128
+ span: {
129
+ id: moduleId,
130
+ start: element.start,
131
+ end: element.end
132
+ },
133
+ component: islandId,
134
+ message: (0, import_compiler_core.zeroIslandThemeMessage)(islandId)
135
+ });
136
+ return;
137
+ }
138
+ const chain = themeChainOf(element);
139
+ const layers = chain.map((node) => node.layer).filter((layer) => !!layer);
140
+ const branches = (0, import_theme.resolveThemeChain)(chain, rootThemeName, config);
141
+ const descriptors = branches.map((branch, branchIndex) => ({
142
+ test: branch.test,
143
+ bridge: {
144
+ id: branches.length === 1 ? `b${moduleBridgePrefix}_${index}` : `b${moduleBridgePrefix}_${index}_${branchIndex}`,
145
+ name: branch.name,
146
+ layers
147
+ }
148
+ }));
149
+ const list = bridges.get(islandId) ?? [];
150
+ for (const descriptor of descriptors) list.push(descriptor.bridge);
151
+ bridges.set(islandId, list);
152
+ const fold = (value) => (0, import_theme.foldBranches)(descriptors.map((descriptor) => ({
153
+ test: descriptor.test,
154
+ value: value(descriptor.bridge)
155
+ })));
156
+ const opening = (0, import_compiler_core.childNode)(element, "openingElement");
157
+ const nameNode = (0, import_compiler_core.childNode)(opening, "name");
158
+ edits.push({
159
+ start: nameNode.end,
160
+ end: nameNode.end,
161
+ content: ` data-tamagui-bridge={${fold((bridge) => JSON.stringify(bridge.id))}} __tamaguiBridge={${fold((bridge) => JSON.stringify(bridge))}}`,
162
+ origin: {
163
+ id: moduleId,
164
+ start: nameNode.start,
165
+ end: nameNode.end
166
+ }
167
+ });
168
+ });
169
+ const erasure = violations.length ? null : (0, import_compiler_core.planZeroErasure)({
170
+ id: moduleId,
171
+ source,
172
+ loweredEdits: [...input.plan.edits, ...edits],
173
+ isTamaguiSpecifier: input.isTamaguiSpecifier,
174
+ islandIdFor: input.resolveIslandModule
175
+ });
176
+ if (erasure) {
177
+ edits.push(...erasure.edits);
178
+ violations.push(...erasure.violations);
179
+ }
180
+ const output = input.mode === "report" ? (0, import_compiler_core.applyLoweredModule)(source, moduleId, input.plan) : violations.length ? {
181
+ changed: false,
182
+ code: source,
183
+ map: null
184
+ } : (0, import_compiler_core.applyLoweredModule)(source, moduleId, {
185
+ id: moduleId,
186
+ sourceHash: input.plan.sourceHash,
187
+ edits: [...input.plan.edits, ...edits]
188
+ });
189
+ return {
190
+ output,
191
+ edits: input.mode === "report" ? [] : edits,
192
+ bridges: input.mode === "report" ? /* @__PURE__ */ new Map() : bridges,
193
+ bridgeCSS: input.mode === "report" ? /* @__PURE__ */ new Map() : bridgeCSS,
194
+ violations,
195
+ erased: {
196
+ modules: erasure?.removedModules ?? [],
197
+ bindings: erasure?.removedBindings ?? [],
198
+ styledDefinitions: erasure?.erasedStyledDefinitions ?? [],
199
+ exports: erasure?.erasedExports ?? []
200
+ },
201
+ rewrittenAnimatedNumberHooks: erasure?.rewrittenAnimatedNumberHooks ?? []
202
+ };
203
+ }