@tamagui/core 1.2.17 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (554) hide show
  1. package/dist/cjs/Tamagui.js +77 -0
  2. package/dist/cjs/Tamagui.js.map +7 -0
  3. package/dist/cjs/addTheme.js +78 -0
  4. package/dist/cjs/addTheme.js.map +7 -0
  5. package/dist/cjs/config.js +91 -0
  6. package/dist/cjs/config.js.map +7 -0
  7. package/dist/cjs/constants/constants.js +49 -0
  8. package/dist/cjs/constants/constants.js.map +7 -0
  9. package/dist/cjs/constants/isDevTools.js +37 -0
  10. package/dist/cjs/constants/isDevTools.js.map +7 -0
  11. package/dist/cjs/contexts/ButtonNestingContext.js +30 -0
  12. package/dist/cjs/contexts/ButtonNestingContext.js.map +7 -0
  13. package/dist/cjs/contexts/FontLanguageContext.js +30 -0
  14. package/dist/cjs/contexts/FontLanguageContext.js.map +7 -0
  15. package/dist/cjs/contexts/TextAncestorContext.js +30 -0
  16. package/dist/cjs/contexts/TextAncestorContext.js.map +7 -0
  17. package/dist/cjs/createComponent.js +991 -0
  18. package/dist/cjs/createComponent.js.map +7 -0
  19. package/dist/cjs/createFont.js +69 -0
  20. package/dist/cjs/createFont.js.map +7 -0
  21. package/dist/cjs/createShorthands.js +31 -0
  22. package/dist/cjs/createShorthands.js.map +7 -0
  23. package/dist/cjs/createTamagui.js +206 -0
  24. package/dist/cjs/createTamagui.js.map +7 -0
  25. package/dist/cjs/createTheme.js +31 -0
  26. package/dist/cjs/createTheme.js.map +7 -0
  27. package/dist/cjs/createTokens.js +39 -0
  28. package/dist/cjs/createTokens.js.map +7 -0
  29. package/dist/cjs/createVariable.js +111 -0
  30. package/dist/cjs/createVariable.js.map +7 -0
  31. package/dist/cjs/createVariables.js +60 -0
  32. package/dist/cjs/createVariables.js.map +7 -0
  33. package/dist/cjs/helpers/RNComponents.js +40 -0
  34. package/dist/cjs/helpers/RNComponents.js.map +7 -0
  35. package/dist/cjs/helpers/ThemeManager.js +234 -0
  36. package/dist/cjs/helpers/ThemeManager.js.map +7 -0
  37. package/dist/cjs/helpers/ThemeManagerContext.js +30 -0
  38. package/dist/cjs/helpers/ThemeManagerContext.js.map +7 -0
  39. package/dist/cjs/helpers/createMediaStyle.js +67 -0
  40. package/dist/cjs/helpers/createMediaStyle.js.map +7 -0
  41. package/dist/cjs/helpers/createPropMapper.js +411 -0
  42. package/dist/cjs/helpers/createPropMapper.js.map +7 -0
  43. package/dist/cjs/helpers/createProxy.js +43 -0
  44. package/dist/cjs/helpers/createProxy.js.map +7 -0
  45. package/dist/cjs/helpers/expandStyle.js +95 -0
  46. package/dist/cjs/helpers/expandStyle.js.map +7 -0
  47. package/dist/cjs/helpers/expandStyles.js +116 -0
  48. package/dist/cjs/helpers/expandStyles.js.map +7 -0
  49. package/dist/cjs/helpers/extendStaticConfig.js +91 -0
  50. package/dist/cjs/helpers/extendStaticConfig.js.map +7 -0
  51. package/dist/cjs/helpers/fixNativeShadow.js +30 -0
  52. package/dist/cjs/helpers/fixNativeShadow.js.map +7 -0
  53. package/dist/cjs/helpers/getAnimationDriver.js +32 -0
  54. package/dist/cjs/helpers/getAnimationDriver.js.map +7 -0
  55. package/dist/cjs/helpers/getExpandedShorthands.js +40 -0
  56. package/dist/cjs/helpers/getExpandedShorthands.js.map +7 -0
  57. package/dist/cjs/helpers/getFontLanguage.js +29 -0
  58. package/dist/cjs/helpers/getFontLanguage.js.map +7 -0
  59. package/dist/cjs/helpers/getSplitStyles.js +848 -0
  60. package/dist/cjs/helpers/getSplitStyles.js.map +7 -0
  61. package/dist/cjs/helpers/getStylesAtomic.js +226 -0
  62. package/dist/cjs/helpers/getStylesAtomic.js.map +7 -0
  63. package/dist/cjs/helpers/getStylesAtomic.native.js +38 -0
  64. package/dist/cjs/helpers/getStylesAtomic.native.js.map +7 -0
  65. package/dist/cjs/helpers/getThemeCSSRules.js +110 -0
  66. package/dist/cjs/helpers/getThemeCSSRules.js.map +7 -0
  67. package/dist/cjs/helpers/getThemeCSSRules.native.js +31 -0
  68. package/dist/cjs/helpers/getThemeCSSRules.native.js.map +7 -0
  69. package/dist/cjs/helpers/getVariantExtras.js +92 -0
  70. package/dist/cjs/helpers/getVariantExtras.js.map +7 -0
  71. package/dist/cjs/helpers/insertStyleRule.js +218 -0
  72. package/dist/cjs/helpers/insertStyleRule.js.map +7 -0
  73. package/dist/cjs/helpers/isObj.js +29 -0
  74. package/dist/cjs/helpers/isObj.js.map +7 -0
  75. package/dist/cjs/helpers/isTamaguiComponent.js +32 -0
  76. package/dist/cjs/helpers/isTamaguiComponent.js.map +7 -0
  77. package/dist/cjs/helpers/isTamaguiElement.js +33 -0
  78. package/dist/cjs/helpers/isTamaguiElement.js.map +7 -0
  79. package/dist/cjs/helpers/matchMedia.js +42 -0
  80. package/dist/cjs/helpers/matchMedia.js.map +7 -0
  81. package/dist/cjs/helpers/matchMedia.native.js +48 -0
  82. package/dist/cjs/helpers/matchMedia.native.js.map +7 -0
  83. package/dist/cjs/helpers/mergeProps.js +54 -0
  84. package/dist/cjs/helpers/mergeProps.js.map +7 -0
  85. package/dist/cjs/helpers/mergeTransform.js +47 -0
  86. package/dist/cjs/helpers/mergeTransform.js.map +7 -0
  87. package/dist/cjs/helpers/normalizeColor.js +71 -0
  88. package/dist/cjs/helpers/normalizeColor.js.map +7 -0
  89. package/dist/cjs/helpers/normalizeValueWithProperty.js +138 -0
  90. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +7 -0
  91. package/dist/cjs/helpers/proxyThemeVariables.js +40 -0
  92. package/dist/cjs/helpers/proxyThemeVariables.js.map +7 -0
  93. package/dist/cjs/helpers/pseudoDescriptors.js +53 -0
  94. package/dist/cjs/helpers/pseudoDescriptors.js.map +7 -0
  95. package/dist/cjs/helpers/registerCSSVariable.js +40 -0
  96. package/dist/cjs/helpers/registerCSSVariable.js.map +7 -0
  97. package/dist/cjs/helpers/themeable.js +62 -0
  98. package/dist/cjs/helpers/themeable.js.map +7 -0
  99. package/dist/cjs/helpers/themes.js +78 -0
  100. package/dist/cjs/helpers/themes.js.map +7 -0
  101. package/dist/cjs/helpers/timer.js +35 -0
  102. package/dist/cjs/helpers/timer.js.map +7 -0
  103. package/dist/cjs/helpers/useShallowSetState.js +59 -0
  104. package/dist/cjs/helpers/useShallowSetState.js.map +7 -0
  105. package/dist/cjs/helpers/warnOnce.js +38 -0
  106. package/dist/cjs/helpers/warnOnce.js.map +7 -0
  107. package/dist/cjs/helpers/withStaticProperties.js +32 -0
  108. package/dist/cjs/helpers/withStaticProperties.js.map +7 -0
  109. package/dist/cjs/hooks/getThemeUnwrapped.js +34 -0
  110. package/dist/cjs/hooks/getThemeUnwrapped.js.map +7 -0
  111. package/dist/cjs/hooks/useId.js +29 -0
  112. package/dist/cjs/hooks/useId.js.map +7 -0
  113. package/dist/cjs/hooks/useIsTouchDevice.js +33 -0
  114. package/dist/cjs/hooks/useIsTouchDevice.js.map +7 -0
  115. package/dist/cjs/hooks/useMedia.js +263 -0
  116. package/dist/cjs/hooks/useMedia.js.map +7 -0
  117. package/dist/cjs/hooks/useSafeRef.js +59 -0
  118. package/dist/cjs/hooks/useSafeRef.js.map +7 -0
  119. package/dist/cjs/hooks/useServerHooks.js +36 -0
  120. package/dist/cjs/hooks/useServerHooks.js.map +7 -0
  121. package/dist/cjs/hooks/useStyle.js +61 -0
  122. package/dist/cjs/hooks/useStyle.js.map +7 -0
  123. package/dist/cjs/hooks/useTheme.js +230 -0
  124. package/dist/cjs/hooks/useTheme.js.map +7 -0
  125. package/dist/cjs/hooks/useThemeName.js +52 -0
  126. package/dist/cjs/hooks/useThemeName.js.map +7 -0
  127. package/dist/cjs/insertFont.js +93 -0
  128. package/dist/cjs/insertFont.js.map +7 -0
  129. package/dist/cjs/setupReactNative.js +51 -0
  130. package/dist/cjs/setupReactNative.js.map +7 -0
  131. package/dist/cjs/static.js +20 -0
  132. package/dist/cjs/static.js.map +7 -0
  133. package/dist/cjs/styled.js +95 -0
  134. package/dist/cjs/styled.js.map +7 -0
  135. package/dist/cjs/types-rnw.js +17 -0
  136. package/dist/cjs/types-rnw.js.map +7 -0
  137. package/dist/cjs/types.js +17 -0
  138. package/dist/cjs/types.js.map +7 -0
  139. package/dist/cjs/updateTheme.js +47 -0
  140. package/dist/cjs/updateTheme.js.map +7 -0
  141. package/dist/cjs/views/FontLanguage.js +41 -0
  142. package/dist/cjs/views/FontLanguage.js.map +7 -0
  143. package/dist/cjs/views/FontLanguage.native.js +35 -0
  144. package/dist/cjs/views/FontLanguage.native.js.map +7 -0
  145. package/dist/cjs/views/FontLanguage.types.js +17 -0
  146. package/dist/cjs/views/FontLanguage.types.js.map +7 -0
  147. package/dist/cjs/views/Slot.js +92 -0
  148. package/dist/cjs/views/Slot.js.map +7 -0
  149. package/dist/cjs/views/Stack.js +38 -0
  150. package/dist/cjs/views/Stack.js.map +7 -0
  151. package/dist/cjs/views/TamaguiProvider.js +90 -0
  152. package/dist/cjs/views/TamaguiProvider.js.map +7 -0
  153. package/dist/cjs/views/Text.js +94 -0
  154. package/dist/cjs/views/Text.js.map +7 -0
  155. package/dist/cjs/views/Theme.js +88 -0
  156. package/dist/cjs/views/Theme.js.map +7 -0
  157. package/dist/cjs/views/ThemeProvider.js +70 -0
  158. package/dist/cjs/views/ThemeProvider.js.map +7 -0
  159. package/dist/esm/Tamagui.js +41 -0
  160. package/dist/esm/Tamagui.js.map +7 -0
  161. package/dist/esm/Tamagui.mjs +41 -0
  162. package/dist/esm/Tamagui.mjs.map +7 -0
  163. package/dist/esm/addTheme.js +54 -0
  164. package/dist/esm/addTheme.js.map +7 -0
  165. package/dist/esm/addTheme.mjs +54 -0
  166. package/dist/esm/addTheme.mjs.map +7 -0
  167. package/dist/esm/config.js +58 -0
  168. package/dist/esm/config.js.map +7 -0
  169. package/dist/esm/config.mjs +58 -0
  170. package/dist/esm/config.mjs.map +7 -0
  171. package/dist/esm/constants/constants.js +22 -0
  172. package/dist/esm/constants/constants.js.map +7 -0
  173. package/dist/esm/constants/constants.mjs +22 -0
  174. package/dist/esm/constants/constants.mjs.map +7 -0
  175. package/dist/esm/constants/isDevTools.js +13 -0
  176. package/dist/esm/constants/isDevTools.js.map +7 -0
  177. package/dist/esm/constants/isDevTools.mjs +13 -0
  178. package/dist/esm/constants/isDevTools.mjs.map +7 -0
  179. package/dist/esm/contexts/ButtonNestingContext.js +6 -0
  180. package/dist/esm/contexts/ButtonNestingContext.js.map +7 -0
  181. package/dist/esm/contexts/ButtonNestingContext.mjs +6 -0
  182. package/dist/esm/contexts/ButtonNestingContext.mjs.map +7 -0
  183. package/dist/esm/contexts/FontLanguageContext.js +6 -0
  184. package/dist/esm/contexts/FontLanguageContext.js.map +7 -0
  185. package/dist/esm/contexts/FontLanguageContext.mjs +6 -0
  186. package/dist/esm/contexts/FontLanguageContext.mjs.map +7 -0
  187. package/dist/esm/contexts/TextAncestorContext.js +6 -0
  188. package/dist/esm/contexts/TextAncestorContext.js.map +7 -0
  189. package/dist/esm/contexts/TextAncestorContext.mjs +6 -0
  190. package/dist/esm/contexts/TextAncestorContext.mjs.map +7 -0
  191. package/dist/esm/createComponent.js +973 -0
  192. package/dist/esm/createComponent.js.map +7 -0
  193. package/dist/esm/createComponent.mjs +973 -0
  194. package/dist/esm/createComponent.mjs.map +7 -0
  195. package/dist/esm/createFont.js +45 -0
  196. package/dist/esm/createFont.js.map +7 -0
  197. package/dist/esm/createFont.mjs +45 -0
  198. package/dist/esm/createFont.mjs.map +7 -0
  199. package/dist/esm/createShorthands.js +7 -0
  200. package/dist/esm/createShorthands.js.map +7 -0
  201. package/dist/esm/createShorthands.mjs +7 -0
  202. package/dist/esm/createShorthands.mjs.map +7 -0
  203. package/dist/esm/createTamagui.js +190 -0
  204. package/dist/esm/createTamagui.js.map +7 -0
  205. package/dist/esm/createTamagui.mjs +190 -0
  206. package/dist/esm/createTamagui.mjs.map +7 -0
  207. package/dist/esm/createTheme.js +7 -0
  208. package/dist/esm/createTheme.js.map +7 -0
  209. package/dist/esm/createTheme.mjs +7 -0
  210. package/dist/esm/createTheme.mjs.map +7 -0
  211. package/dist/esm/createTokens.js +15 -0
  212. package/dist/esm/createTokens.js.map +7 -0
  213. package/dist/esm/createTokens.mjs +15 -0
  214. package/dist/esm/createTokens.mjs.map +7 -0
  215. package/dist/esm/createVariable.js +78 -0
  216. package/dist/esm/createVariable.js.map +7 -0
  217. package/dist/esm/createVariable.mjs +78 -0
  218. package/dist/esm/createVariable.mjs.map +7 -0
  219. package/dist/esm/createVariables.js +35 -0
  220. package/dist/esm/createVariables.js.map +7 -0
  221. package/dist/esm/createVariables.mjs +35 -0
  222. package/dist/esm/createVariables.mjs.map +7 -0
  223. package/dist/esm/helpers/RNComponents.js +16 -0
  224. package/dist/esm/helpers/RNComponents.js.map +7 -0
  225. package/dist/esm/helpers/RNComponents.mjs +16 -0
  226. package/dist/esm/helpers/RNComponents.mjs.map +7 -0
  227. package/dist/esm/helpers/ThemeManager.js +209 -0
  228. package/dist/esm/helpers/ThemeManager.js.map +7 -0
  229. package/dist/esm/helpers/ThemeManager.mjs +209 -0
  230. package/dist/esm/helpers/ThemeManager.mjs.map +7 -0
  231. package/dist/esm/helpers/ThemeManagerContext.js +6 -0
  232. package/dist/esm/helpers/ThemeManagerContext.js.map +7 -0
  233. package/dist/esm/helpers/ThemeManagerContext.mjs +6 -0
  234. package/dist/esm/helpers/ThemeManagerContext.mjs.map +7 -0
  235. package/dist/esm/helpers/createMediaStyle.js +42 -0
  236. package/dist/esm/helpers/createMediaStyle.js.map +7 -0
  237. package/dist/esm/helpers/createMediaStyle.mjs +42 -0
  238. package/dist/esm/helpers/createMediaStyle.mjs.map +7 -0
  239. package/dist/esm/helpers/createPropMapper.js +384 -0
  240. package/dist/esm/helpers/createPropMapper.js.map +7 -0
  241. package/dist/esm/helpers/createPropMapper.mjs +384 -0
  242. package/dist/esm/helpers/createPropMapper.mjs.map +7 -0
  243. package/dist/esm/helpers/createProxy.js +19 -0
  244. package/dist/esm/helpers/createProxy.js.map +7 -0
  245. package/dist/esm/helpers/createProxy.mjs +19 -0
  246. package/dist/esm/helpers/createProxy.mjs.map +7 -0
  247. package/dist/esm/helpers/expandStyle.js +71 -0
  248. package/dist/esm/helpers/expandStyle.js.map +7 -0
  249. package/dist/esm/helpers/expandStyle.mjs +71 -0
  250. package/dist/esm/helpers/expandStyle.mjs.map +7 -0
  251. package/dist/esm/helpers/expandStyles.js +90 -0
  252. package/dist/esm/helpers/expandStyles.js.map +7 -0
  253. package/dist/esm/helpers/expandStyles.mjs +90 -0
  254. package/dist/esm/helpers/expandStyles.mjs.map +7 -0
  255. package/dist/esm/helpers/extendStaticConfig.js +66 -0
  256. package/dist/esm/helpers/extendStaticConfig.js.map +7 -0
  257. package/dist/esm/helpers/extendStaticConfig.mjs +66 -0
  258. package/dist/esm/helpers/extendStaticConfig.mjs.map +7 -0
  259. package/dist/esm/helpers/fixNativeShadow.js +6 -0
  260. package/dist/esm/helpers/fixNativeShadow.js.map +7 -0
  261. package/dist/esm/helpers/fixNativeShadow.mjs +6 -0
  262. package/dist/esm/helpers/fixNativeShadow.mjs.map +7 -0
  263. package/dist/esm/helpers/getAnimationDriver.js +8 -0
  264. package/dist/esm/helpers/getAnimationDriver.js.map +7 -0
  265. package/dist/esm/helpers/getAnimationDriver.mjs +8 -0
  266. package/dist/esm/helpers/getAnimationDriver.mjs.map +7 -0
  267. package/dist/esm/helpers/getExpandedShorthands.js +16 -0
  268. package/dist/esm/helpers/getExpandedShorthands.js.map +7 -0
  269. package/dist/esm/helpers/getExpandedShorthands.mjs +16 -0
  270. package/dist/esm/helpers/getExpandedShorthands.mjs.map +7 -0
  271. package/dist/esm/helpers/getFontLanguage.js +5 -0
  272. package/dist/esm/helpers/getFontLanguage.js.map +7 -0
  273. package/dist/esm/helpers/getFontLanguage.mjs +5 -0
  274. package/dist/esm/helpers/getFontLanguage.mjs.map +7 -0
  275. package/dist/esm/helpers/getSplitStyles.js +847 -0
  276. package/dist/esm/helpers/getSplitStyles.js.map +7 -0
  277. package/dist/esm/helpers/getSplitStyles.mjs +847 -0
  278. package/dist/esm/helpers/getSplitStyles.mjs.map +7 -0
  279. package/dist/esm/helpers/getStylesAtomic.js +200 -0
  280. package/dist/esm/helpers/getStylesAtomic.js.map +7 -0
  281. package/dist/esm/helpers/getStylesAtomic.mjs +200 -0
  282. package/dist/esm/helpers/getStylesAtomic.mjs.map +7 -0
  283. package/dist/esm/helpers/getStylesAtomic.native.js +12 -0
  284. package/dist/esm/helpers/getStylesAtomic.native.js.map +7 -0
  285. package/dist/esm/helpers/getStylesAtomic.native.mjs +12 -0
  286. package/dist/esm/helpers/getStylesAtomic.native.mjs.map +7 -0
  287. package/dist/esm/helpers/getThemeCSSRules.js +86 -0
  288. package/dist/esm/helpers/getThemeCSSRules.js.map +7 -0
  289. package/dist/esm/helpers/getThemeCSSRules.mjs +86 -0
  290. package/dist/esm/helpers/getThemeCSSRules.mjs.map +7 -0
  291. package/dist/esm/helpers/getThemeCSSRules.native.js +7 -0
  292. package/dist/esm/helpers/getThemeCSSRules.native.js.map +7 -0
  293. package/dist/esm/helpers/getThemeCSSRules.native.mjs +7 -0
  294. package/dist/esm/helpers/getThemeCSSRules.native.mjs.map +7 -0
  295. package/dist/esm/helpers/getVariantExtras.js +67 -0
  296. package/dist/esm/helpers/getVariantExtras.js.map +7 -0
  297. package/dist/esm/helpers/getVariantExtras.mjs +67 -0
  298. package/dist/esm/helpers/getVariantExtras.mjs.map +7 -0
  299. package/dist/esm/helpers/insertStyleRule.js +186 -0
  300. package/dist/esm/helpers/insertStyleRule.js.map +7 -0
  301. package/dist/esm/helpers/insertStyleRule.mjs +186 -0
  302. package/dist/esm/helpers/insertStyleRule.mjs.map +7 -0
  303. package/dist/esm/helpers/isObj.js +5 -0
  304. package/dist/esm/helpers/isObj.js.map +7 -0
  305. package/dist/esm/helpers/isObj.mjs +5 -0
  306. package/dist/esm/helpers/isObj.mjs.map +7 -0
  307. package/dist/esm/helpers/isTamaguiComponent.js +8 -0
  308. package/dist/esm/helpers/isTamaguiComponent.js.map +7 -0
  309. package/dist/esm/helpers/isTamaguiComponent.mjs +8 -0
  310. package/dist/esm/helpers/isTamaguiComponent.mjs.map +7 -0
  311. package/dist/esm/helpers/isTamaguiElement.js +9 -0
  312. package/dist/esm/helpers/isTamaguiElement.js.map +7 -0
  313. package/dist/esm/helpers/isTamaguiElement.mjs +9 -0
  314. package/dist/esm/helpers/isTamaguiElement.mjs.map +7 -0
  315. package/dist/esm/helpers/matchMedia.js +17 -0
  316. package/dist/esm/helpers/matchMedia.js.map +7 -0
  317. package/dist/esm/helpers/matchMedia.mjs +17 -0
  318. package/dist/esm/helpers/matchMedia.mjs.map +7 -0
  319. package/dist/esm/helpers/matchMedia.native.js +23 -0
  320. package/dist/esm/helpers/matchMedia.native.js.map +7 -0
  321. package/dist/esm/helpers/matchMedia.native.mjs +23 -0
  322. package/dist/esm/helpers/matchMedia.native.mjs.map +7 -0
  323. package/dist/esm/helpers/mergeProps.js +30 -0
  324. package/dist/esm/helpers/mergeProps.js.map +7 -0
  325. package/dist/esm/helpers/mergeProps.mjs +30 -0
  326. package/dist/esm/helpers/mergeProps.mjs.map +7 -0
  327. package/dist/esm/helpers/mergeTransform.js +21 -0
  328. package/dist/esm/helpers/mergeTransform.js.map +7 -0
  329. package/dist/esm/helpers/mergeTransform.mjs +21 -0
  330. package/dist/esm/helpers/mergeTransform.mjs.map +7 -0
  331. package/dist/esm/helpers/normalizeColor.js +36 -0
  332. package/dist/esm/helpers/normalizeColor.js.map +7 -0
  333. package/dist/esm/helpers/normalizeColor.mjs +36 -0
  334. package/dist/esm/helpers/normalizeColor.mjs.map +7 -0
  335. package/dist/esm/helpers/normalizeValueWithProperty.js +113 -0
  336. package/dist/esm/helpers/normalizeValueWithProperty.js.map +7 -0
  337. package/dist/esm/helpers/normalizeValueWithProperty.mjs +113 -0
  338. package/dist/esm/helpers/normalizeValueWithProperty.mjs.map +7 -0
  339. package/dist/esm/helpers/proxyThemeVariables.js +16 -0
  340. package/dist/esm/helpers/proxyThemeVariables.js.map +7 -0
  341. package/dist/esm/helpers/proxyThemeVariables.mjs +16 -0
  342. package/dist/esm/helpers/proxyThemeVariables.mjs.map +7 -0
  343. package/dist/esm/helpers/pseudoDescriptors.js +29 -0
  344. package/dist/esm/helpers/pseudoDescriptors.js.map +7 -0
  345. package/dist/esm/helpers/pseudoDescriptors.mjs +29 -0
  346. package/dist/esm/helpers/pseudoDescriptors.mjs.map +7 -0
  347. package/dist/esm/helpers/registerCSSVariable.js +14 -0
  348. package/dist/esm/helpers/registerCSSVariable.js.map +7 -0
  349. package/dist/esm/helpers/registerCSSVariable.mjs +14 -0
  350. package/dist/esm/helpers/registerCSSVariable.mjs.map +7 -0
  351. package/dist/esm/helpers/themeable.js +28 -0
  352. package/dist/esm/helpers/themeable.js.map +7 -0
  353. package/dist/esm/helpers/themeable.mjs +28 -0
  354. package/dist/esm/helpers/themeable.mjs.map +7 -0
  355. package/dist/esm/helpers/themes.js +53 -0
  356. package/dist/esm/helpers/themes.js.map +7 -0
  357. package/dist/esm/helpers/themes.mjs +53 -0
  358. package/dist/esm/helpers/themes.mjs.map +7 -0
  359. package/dist/esm/helpers/timer.js +11 -0
  360. package/dist/esm/helpers/timer.js.map +7 -0
  361. package/dist/esm/helpers/timer.mjs +11 -0
  362. package/dist/esm/helpers/timer.mjs.map +7 -0
  363. package/dist/esm/helpers/useShallowSetState.js +35 -0
  364. package/dist/esm/helpers/useShallowSetState.js.map +7 -0
  365. package/dist/esm/helpers/useShallowSetState.mjs +35 -0
  366. package/dist/esm/helpers/useShallowSetState.mjs.map +7 -0
  367. package/dist/esm/helpers/warnOnce.js +14 -0
  368. package/dist/esm/helpers/warnOnce.js.map +7 -0
  369. package/dist/esm/helpers/warnOnce.mjs +14 -0
  370. package/dist/esm/helpers/warnOnce.mjs.map +7 -0
  371. package/dist/esm/helpers/withStaticProperties.js +8 -0
  372. package/dist/esm/helpers/withStaticProperties.js.map +7 -0
  373. package/dist/esm/helpers/withStaticProperties.mjs +8 -0
  374. package/dist/esm/helpers/withStaticProperties.mjs.map +7 -0
  375. package/dist/esm/hooks/getThemeUnwrapped.js +9 -0
  376. package/dist/esm/hooks/getThemeUnwrapped.js.map +7 -0
  377. package/dist/esm/hooks/getThemeUnwrapped.mjs +9 -0
  378. package/dist/esm/hooks/getThemeUnwrapped.mjs.map +7 -0
  379. package/dist/esm/hooks/useId.js +5 -0
  380. package/dist/esm/hooks/useId.js.map +7 -0
  381. package/dist/esm/hooks/useId.mjs +5 -0
  382. package/dist/esm/hooks/useId.mjs.map +7 -0
  383. package/dist/esm/hooks/useIsTouchDevice.js +9 -0
  384. package/dist/esm/hooks/useIsTouchDevice.js.map +7 -0
  385. package/dist/esm/hooks/useIsTouchDevice.mjs +9 -0
  386. package/dist/esm/hooks/useIsTouchDevice.mjs.map +7 -0
  387. package/dist/esm/hooks/useMedia.js +225 -0
  388. package/dist/esm/hooks/useMedia.js.map +7 -0
  389. package/dist/esm/hooks/useMedia.mjs +225 -0
  390. package/dist/esm/hooks/useMedia.mjs.map +7 -0
  391. package/dist/esm/hooks/useSafeRef.js +35 -0
  392. package/dist/esm/hooks/useSafeRef.js.map +7 -0
  393. package/dist/esm/hooks/useSafeRef.mjs +35 -0
  394. package/dist/esm/hooks/useSafeRef.mjs.map +7 -0
  395. package/dist/esm/hooks/useServerHooks.js +11 -0
  396. package/dist/esm/hooks/useServerHooks.js.map +7 -0
  397. package/dist/esm/hooks/useServerHooks.mjs +11 -0
  398. package/dist/esm/hooks/useServerHooks.mjs.map +7 -0
  399. package/dist/esm/hooks/useStyle.js +37 -0
  400. package/dist/esm/hooks/useStyle.js.map +7 -0
  401. package/dist/esm/hooks/useStyle.mjs +37 -0
  402. package/dist/esm/hooks/useStyle.mjs.map +7 -0
  403. package/dist/esm/hooks/useTheme.js +205 -0
  404. package/dist/esm/hooks/useTheme.js.map +7 -0
  405. package/dist/esm/hooks/useTheme.mjs +205 -0
  406. package/dist/esm/hooks/useTheme.mjs.map +7 -0
  407. package/dist/esm/hooks/useThemeName.js +28 -0
  408. package/dist/esm/hooks/useThemeName.js.map +7 -0
  409. package/dist/esm/hooks/useThemeName.mjs +28 -0
  410. package/dist/esm/hooks/useThemeName.mjs.map +7 -0
  411. package/dist/esm/insertFont.js +67 -0
  412. package/dist/esm/insertFont.js.map +7 -0
  413. package/dist/esm/insertFont.mjs +67 -0
  414. package/dist/esm/insertFont.mjs.map +7 -0
  415. package/dist/esm/setupReactNative.js +25 -0
  416. package/dist/esm/setupReactNative.js.map +7 -0
  417. package/dist/esm/setupReactNative.mjs +25 -0
  418. package/dist/esm/setupReactNative.mjs.map +7 -0
  419. package/dist/esm/static.js +3 -0
  420. package/dist/esm/static.js.map +7 -0
  421. package/dist/esm/static.mjs +3 -0
  422. package/dist/esm/static.mjs.map +7 -0
  423. package/dist/esm/styled.js +71 -0
  424. package/dist/esm/styled.js.map +7 -0
  425. package/dist/esm/styled.mjs +71 -0
  426. package/dist/esm/styled.mjs.map +7 -0
  427. package/dist/esm/types-rnw.js +1 -0
  428. package/dist/esm/types-rnw.js.map +7 -0
  429. package/dist/esm/types-rnw.mjs +1 -0
  430. package/dist/esm/types-rnw.mjs.map +7 -0
  431. package/dist/esm/types.js +1 -0
  432. package/dist/esm/types.js.map +7 -0
  433. package/dist/esm/types.mjs +1 -0
  434. package/dist/esm/types.mjs.map +7 -0
  435. package/dist/esm/updateTheme.js +23 -0
  436. package/dist/esm/updateTheme.js.map +7 -0
  437. package/dist/esm/updateTheme.mjs +23 -0
  438. package/dist/esm/updateTheme.mjs.map +7 -0
  439. package/dist/esm/views/FontLanguage.js +17 -0
  440. package/dist/esm/views/FontLanguage.js.map +7 -0
  441. package/dist/esm/views/FontLanguage.mjs +17 -0
  442. package/dist/esm/views/FontLanguage.mjs.map +7 -0
  443. package/dist/esm/views/FontLanguage.native.js +11 -0
  444. package/dist/esm/views/FontLanguage.native.js.map +7 -0
  445. package/dist/esm/views/FontLanguage.native.mjs +11 -0
  446. package/dist/esm/views/FontLanguage.native.mjs.map +7 -0
  447. package/dist/esm/views/FontLanguage.types.js +1 -0
  448. package/dist/esm/views/FontLanguage.types.js.map +7 -0
  449. package/dist/esm/views/FontLanguage.types.mjs +1 -0
  450. package/dist/esm/views/FontLanguage.types.mjs.map +7 -0
  451. package/dist/esm/views/Slot.js +71 -0
  452. package/dist/esm/views/Slot.js.map +7 -0
  453. package/dist/esm/views/Slot.mjs +71 -0
  454. package/dist/esm/views/Slot.mjs.map +7 -0
  455. package/dist/esm/views/Stack.js +14 -0
  456. package/dist/esm/views/Stack.js.map +7 -0
  457. package/dist/esm/views/Stack.mjs +14 -0
  458. package/dist/esm/views/Stack.mjs.map +7 -0
  459. package/dist/esm/views/TamaguiProvider.js +56 -0
  460. package/dist/esm/views/TamaguiProvider.js.map +7 -0
  461. package/dist/esm/views/TamaguiProvider.mjs +56 -0
  462. package/dist/esm/views/TamaguiProvider.mjs.map +7 -0
  463. package/dist/esm/views/Text.js +70 -0
  464. package/dist/esm/views/Text.js.map +7 -0
  465. package/dist/esm/views/Text.mjs +70 -0
  466. package/dist/esm/views/Text.mjs.map +7 -0
  467. package/dist/esm/views/Theme.js +63 -0
  468. package/dist/esm/views/Theme.js.map +7 -0
  469. package/dist/esm/views/Theme.mjs +63 -0
  470. package/dist/esm/views/Theme.mjs.map +7 -0
  471. package/dist/esm/views/ThemeProvider.js +45 -0
  472. package/dist/esm/views/ThemeProvider.js.map +7 -0
  473. package/dist/esm/views/ThemeProvider.mjs +45 -0
  474. package/dist/esm/views/ThemeProvider.mjs.map +7 -0
  475. package/package.json +5 -5
  476. package/types/Tamagui.d.ts.map +1 -0
  477. package/types/addTheme.d.ts.map +1 -0
  478. package/types/config.d.ts.map +1 -0
  479. package/types/constants/constants.d.ts.map +1 -0
  480. package/types/constants/isDevTools.d.ts.map +1 -0
  481. package/types/contexts/ButtonNestingContext.d.ts.map +1 -0
  482. package/types/contexts/FontLanguageContext.d.ts.map +1 -0
  483. package/types/contexts/TextAncestorContext.d.ts.map +1 -0
  484. package/types/createComponent.d.ts.map +1 -0
  485. package/types/createFont.d.ts.map +1 -0
  486. package/types/createShorthands.d.ts.map +1 -0
  487. package/types/createTamagui.d.ts.map +1 -0
  488. package/types/createTheme.d.ts.map +1 -0
  489. package/types/createTokens.d.ts.map +1 -0
  490. package/types/createVariable.d.ts.map +1 -0
  491. package/types/createVariables.d.ts.map +1 -0
  492. package/types/helpers/RNComponents.d.ts.map +1 -0
  493. package/types/helpers/ThemeManager.d.ts.map +1 -0
  494. package/types/helpers/ThemeManagerContext.d.ts.map +1 -0
  495. package/types/helpers/createMediaStyle.d.ts.map +1 -0
  496. package/types/helpers/createPropMapper.d.ts.map +1 -0
  497. package/types/helpers/createProxy.d.ts.map +1 -0
  498. package/types/helpers/expandStyle.d.ts.map +1 -0
  499. package/types/helpers/expandStyles.d.ts.map +1 -0
  500. package/types/helpers/extendStaticConfig.d.ts.map +1 -0
  501. package/types/helpers/fixNativeShadow.d.ts.map +1 -0
  502. package/types/helpers/getAnimationDriver.d.ts.map +1 -0
  503. package/types/helpers/getExpandedShorthands.d.ts.map +1 -0
  504. package/types/helpers/getFontLanguage.d.ts.map +1 -0
  505. package/types/helpers/getSplitStyles.d.ts.map +1 -0
  506. package/types/helpers/getStylesAtomic.d.ts.map +1 -0
  507. package/types/helpers/getStylesAtomic.native.d.ts.map +1 -0
  508. package/types/helpers/getThemeCSSRules.d.ts.map +1 -0
  509. package/types/helpers/getThemeCSSRules.native.d.ts.map +1 -0
  510. package/types/helpers/getVariantExtras.d.ts.map +1 -0
  511. package/types/helpers/insertStyleRule.d.ts.map +1 -0
  512. package/types/helpers/isObj.d.ts.map +1 -0
  513. package/types/helpers/isTamaguiComponent.d.ts.map +1 -0
  514. package/types/helpers/isTamaguiElement.d.ts.map +1 -0
  515. package/types/helpers/matchMedia.d.ts.map +1 -0
  516. package/types/helpers/matchMedia.native.d.ts.map +1 -0
  517. package/types/helpers/mergeProps.d.ts.map +1 -0
  518. package/types/helpers/mergeTransform.d.ts.map +1 -0
  519. package/types/helpers/normalizeColor.d.ts.map +1 -0
  520. package/types/helpers/normalizeValueWithProperty.d.ts.map +1 -0
  521. package/types/helpers/proxyThemeVariables.d.ts.map +1 -0
  522. package/types/helpers/pseudoDescriptors.d.ts.map +1 -0
  523. package/types/helpers/registerCSSVariable.d.ts.map +1 -0
  524. package/types/helpers/themeable.d.ts.map +1 -0
  525. package/types/helpers/themes.d.ts.map +1 -0
  526. package/types/helpers/timer.d.ts.map +1 -0
  527. package/types/helpers/useShallowSetState.d.ts.map +1 -0
  528. package/types/helpers/warnOnce.d.ts.map +1 -0
  529. package/types/helpers/withStaticProperties.d.ts.map +1 -0
  530. package/types/hooks/getThemeUnwrapped.d.ts.map +1 -0
  531. package/types/hooks/useId.d.ts.map +1 -0
  532. package/types/hooks/useIsTouchDevice.d.ts.map +1 -0
  533. package/types/hooks/useMedia.d.ts.map +1 -0
  534. package/types/hooks/useSafeRef.d.ts.map +1 -0
  535. package/types/hooks/useServerHooks.d.ts.map +1 -0
  536. package/types/hooks/useStyle.d.ts.map +1 -0
  537. package/types/hooks/useTheme.d.ts.map +1 -0
  538. package/types/hooks/useThemeName.d.ts.map +1 -0
  539. package/types/insertFont.d.ts.map +1 -0
  540. package/types/setupReactNative.d.ts.map +1 -0
  541. package/types/static.d.ts.map +1 -0
  542. package/types/styled.d.ts.map +1 -0
  543. package/types/types-rnw.d.ts.map +1 -0
  544. package/types/types.d.ts.map +1 -0
  545. package/types/updateTheme.d.ts.map +1 -0
  546. package/types/views/FontLanguage.d.ts.map +1 -0
  547. package/types/views/FontLanguage.native.d.ts.map +1 -0
  548. package/types/views/FontLanguage.types.d.ts.map +1 -0
  549. package/types/views/Slot.d.ts.map +1 -0
  550. package/types/views/Stack.d.ts.map +1 -0
  551. package/types/views/TamaguiProvider.d.ts.map +1 -0
  552. package/types/views/Text.d.ts.map +1 -0
  553. package/types/views/Theme.d.ts.map +1 -0
  554. package/types/views/ThemeProvider.d.ts.map +1 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/createComponent.tsx"],
4
+ "sourcesContent": ["import { useComposedRefs } from '@tamagui/compose-refs'\nimport {\n isClient,\n isRSC,\n isServer,\n isWeb,\n useIsomorphicLayoutEffect,\n} from '@tamagui/constants'\nimport {\n composeEventHandlers,\n stylePropsView,\n validPseudoKeys,\n validStyles,\n} from '@tamagui/helpers'\nimport { useResponderEvents } from '@tamagui/react-native-use-responder-events'\nimport React, {\n Children,\n Fragment,\n RefObject,\n createElement,\n forwardRef,\n memo,\n useCallback,\n useContext,\n useEffect,\n useRef,\n} from 'react'\n\nimport { onConfiguredOnce } from './config'\nimport { stackDefaultStyles } from './constants/constants'\nimport { FontLanguageContext } from './contexts/FontLanguageContext'\nimport { TextAncestorContext } from './contexts/TextAncestorContext'\nimport { didGetVariableValue, setDidGetVariableValue } from './createVariable'\nimport { extendStaticConfig, parseStaticConfig } from './helpers/extendStaticConfig'\nimport { getRect } from './helpers/getRect'\nimport { useSplitStyles } from './helpers/getSplitStyles'\nimport { getAllSelectors } from './helpers/insertStyleRule'\nimport { mergeProps } from './helpers/mergeProps'\nimport { proxyThemeVariables } from './helpers/proxyThemeVariables'\nimport { useShallowSetState } from './helpers/useShallowSetState'\nimport { measureLayout, useElementLayout } from './hooks/useElementLayout'\nimport { setMediaShouldUpdate, useMedia } from './hooks/useMedia'\nimport { useServerRef, useServerState } from './hooks/useServerHooks'\nimport { useThemeWithState } from './hooks/useTheme'\nimport {\n DebugProp,\n SpaceDirection,\n SpaceTokens,\n SpacerProps,\n StaticConfig,\n StaticConfigParsed,\n StylableComponent,\n TamaguiComponent,\n TamaguiComponentState,\n TamaguiConfig,\n TamaguiElement,\n TamaguiInternalConfig,\n UseAnimationHook,\n UseAnimationProps,\n} from './types'\nimport { usePressability } from './vendor/Pressability'\nimport { Slot, mergeEvent } from './views/Slot'\nimport { useThemedChildren } from './views/Theme'\n\n// let t\n// import { timer } from '@tamagui/timer'\n// if (true || process.env.ANALYZE) {\n// t = require().timer()\n// setTimeout(() => {\n// const out = t.print()\n// if (isClient) {\n// alert(out)\n// }\n// }, 2000)\n// }\n\n// this appears to fix expo / babel not picking this up sometimes? really odd\nprocess.env.TAMAGUI_TARGET\n\nexport const defaultComponentState: TamaguiComponentState = {\n hover: false,\n press: false,\n pressIn: false,\n focus: false,\n unmounted: true,\n}\n\nconst defaultComponentStateMounted: TamaguiComponentState = {\n ...defaultComponentState,\n unmounted: false,\n}\n\n/**\n * All things that need one-time setup after createTamagui is called\n */\nlet tamaguiConfig: TamaguiInternalConfig\nlet AnimatedText: any\nlet AnimatedView: any\nlet initialTheme: any\n\nexport const mouseUps = new Set<Function>()\nif (typeof document !== 'undefined') {\n const cancelTouches = () => {\n mouseUps.forEach((x) => x())\n mouseUps.clear()\n }\n addEventListener('mouseup', cancelTouches)\n addEventListener('touchend', cancelTouches)\n addEventListener('touchcancel', cancelTouches)\n}\n\n// mutates\nfunction mergeShorthands(\n { defaultProps }: StaticConfigParsed,\n { shorthands }: TamaguiConfig\n) {\n // they are defined in correct order already { ...parent, ...child }\n for (const key of Object.keys(defaultProps)) {\n defaultProps[shorthands[key] || key] = defaultProps[key]\n }\n}\n\n/**\n * Only on native do we need the actual underlying View/Text\n * On the web we avoid react-native altogether in core.\n */\nlet BaseText: any\nlet BaseView: any\nif (process.env.TAMAGUI_TARGET === 'native') {\n const native = require('react-native')\n BaseText = native.Text || native.default.Text\n BaseView = native.View || native.default.View\n}\n\nexport function createComponent<\n ComponentPropTypes extends Object = {},\n Ref = TamaguiElement,\n BaseProps = never\n>(\n configIn: Partial<StaticConfig> | StaticConfigParsed,\n ParentComponent?: StylableComponent\n) {\n const staticConfig = (() => {\n const next = extendStaticConfig(configIn, ParentComponent)\n if ('parsed' in next) {\n return next\n } else {\n return parseStaticConfig(next)\n }\n })()\n\n const defaultComponentClassName = `is_${staticConfig.componentName}`\n let tamaguiDefaultProps: any\n let defaultTag: string | undefined\n\n // see onConfiguredOnce below which attaches a name then to this component\n const component = forwardRef<Ref, ComponentPropTypes>((propsIn: any, forwardedRef) => {\n // test only\n if (process.env.NODE_ENV === 'test') {\n if (propsIn['data-test-renders']) {\n propsIn['data-test-renders']['current'] ??= 0\n propsIn['data-test-renders']['current'] += 1\n }\n }\n // const time = t.start({ quiet: true })\n\n // React inserts default props after your props for some reason...\n // order important so we do loops, you can't just spread because JS does weird things\n let props: any\n if (tamaguiDefaultProps && !propsIn.asChild) {\n props = mergeProps(tamaguiDefaultProps, propsIn)[0]\n } else {\n props = propsIn\n }\n\n const debugProp = props['debug'] as DebugProp\n const { Component, isText, isZStack } = staticConfig\n const componentName = props.componentName || staticConfig.componentName\n const componentClassName = props.asChild\n ? ''\n : props.componentName\n ? `is_${props.componentName}`\n : defaultComponentClassName\n\n /**\n * Component state for tracking animations, pseudos\n */\n const animationsConfig = tamaguiConfig.animations\n const useAnimations = animationsConfig?.useAnimations as UseAnimationHook | undefined\n const avoidClassesWhileAnimating = animationsConfig.isReactNative\n const hasEnterStyle = !!props.enterStyle\n const needsMount = Boolean(\n (isWeb ? isClient : true) && (hasEnterStyle || props.animation)\n )\n const states = useServerState<TamaguiComponentState>(\n needsMount ? defaultComponentState! : defaultComponentStateMounted!\n )\n\n const state = propsIn.forceStyle\n ? { ...states[0], [propsIn.forceStyle]: true }\n : states[0]\n const setState = states[1]\n const setStateShallow = useShallowSetState(setState, debugProp, componentName)\n\n // conditional but if ever true stays true\n // [animated, inversed]\n const stateRef = useRef(\n undefined as any as {\n hasAnimated?: boolean\n themeShallow?: boolean\n didAccessThemeVariableValue?: boolean\n }\n )\n stateRef.current ??= {}\n\n const isAnimated = (() => {\n const next = !!(useAnimations && props.animation)\n if (next && !stateRef.current.hasAnimated) {\n stateRef.current.hasAnimated = true\n }\n return next || stateRef.current.hasAnimated\n })()\n\n const usePresence = tamaguiConfig.animations?.usePresence\n const presence = !isRSC && isAnimated ? usePresence() : null\n\n // set enter/exit variants onto our new props object\n if (isAnimated && presence) {\n const presenceState = presence[2]\n if (presenceState) {\n if (state.unmounted && presenceState.enterVariant) {\n props[presenceState.enterVariant] = true\n }\n if (!presenceState.isPresent && presenceState.exitVariant) {\n props[presenceState.exitVariant] = true\n }\n }\n }\n\n const isReactNative = Boolean(\n staticConfig.isReactNative || (isAnimated && tamaguiConfig.animations.isReactNative)\n )\n\n if (process.env.NODE_ENV === 'development') {\n if (debugProp) {\n // prettier-ignore\n const name = `${componentName || Component?.displayName || Component?.name || '[Unnamed Component]'}`\n const type = isReactNative ? '(rnw)' : ''\n const dataIs = propsIn['data-is'] || ''\n const banner = `${name}${dataIs ? ` ${dataIs}` : ''} ${type}`\n console.group(`%c ${banner}`, 'background: yellow;')\n if (!isServer) {\n console.log('state', state)\n }\n }\n }\n\n const shouldAvoidClasses =\n !isWeb ||\n !!(props.animation && avoidClassesWhileAnimating) ||\n !staticConfig.acceptsClassName\n const shouldForcePseudo = !!propsIn.forceStyle\n const noClassNames = shouldAvoidClasses || shouldForcePseudo\n\n const themeState = useThemeWithState({\n name: props.theme,\n componentName,\n reset: props.reset,\n inverse: props.themeInverse,\n // @ts-expect-error\n disable: props['data-themeable'],\n debug: props.debug,\n shouldUpdate: () => !!stateRef.current.didAccessThemeVariableValue,\n })!\n\n const hasTextAncestor = !!(isWeb && isText ? useContext(TextAncestorContext) : false)\n const languageContext = isRSC ? null : useContext(FontLanguageContext)\n const isDisabled = props.disabled ?? props.accessibilityState?.disabled\n\n const isTaggable = !Component || typeof Component === 'string'\n // default to tag, fallback to component (when both strings)\n const element = isWeb\n ? isTaggable\n ? props.tag || defaultTag || Component\n : Component\n : Component\n\n const BaseTextComponent = BaseText || element || 'span'\n const BaseViewComponent = BaseView || element || (hasTextAncestor ? 'span' : 'div')\n let elementType = isText\n ? (isAnimated ? AnimatedText : null) || BaseTextComponent\n : (isAnimated ? AnimatedView : null) || BaseViewComponent\n\n elementType = Component || elementType\n const isStringElement = typeof elementType === 'string'\n\n const isExiting = presence?.[0] === false\n\n const mediaState = useMedia(\n // @ts-ignore, we just pass a stable object so we can get it later with\n // should match to the one used in `setMediaShouldUpdate` below\n stateRef,\n debugProp ? { props, staticConfig } : null\n )\n\n setDidGetVariableValue(false)\n\n const splitStyles = useSplitStyles(\n props,\n staticConfig,\n themeState.theme,\n {\n ...state,\n mediaState,\n noClassNames,\n dynamicStylesInline: noClassNames,\n hasTextAncestor,\n resolveVariablesAs: 'auto',\n isExiting,\n },\n null,\n languageContext || undefined,\n elementType,\n debugProp\n )\n\n // only listen for changes if we are using raw theme values or media space, or dynamic media (native)\n // array = space media breakpoints\n const isMediaSpaced = Array.isArray(splitStyles.hasMedia)\n const shouldListenForMedia =\n didGetVariableValue() ||\n isMediaSpaced ||\n (noClassNames && splitStyles.hasMedia === true)\n\n setMediaShouldUpdate(stateRef, {\n enabled: shouldListenForMedia,\n keys: noClassNames && isMediaSpaced ? (splitStyles.hasMedia as any) : null,\n })\n\n const hostRef = useServerRef<TamaguiElement>(null)\n\n // animation setup\n const isAnimatedReactNativeWeb = isAnimated && avoidClassesWhileAnimating\n\n if (process.env.NODE_ENV === 'development') {\n if (!process.env.TAMAGUI_TARGET) {\n console.error(\n `No process.env.TAMAGUI_TARGET set, please set it to \"native\" or \"web\".`\n )\n }\n\n if (debugProp) {\n console.groupCollapsed('props')\n // prettier-ignore\n console.log('props in', propsIn, 'mapped to', props, 'in order', Object.keys(props))\n console.log('splitStyles', splitStyles)\n // eslint-disable-next-line no-console\n console.log('shouldListenForMedia', shouldListenForMedia)\n // eslint-disable-next-line no-console\n console.log('className', Object.values(splitStyles.classNames))\n if (isClient) {\n console.log('ref', hostRef, '(click to view)')\n }\n console.groupEnd()\n if (debugProp === 'break') {\n // rome-ignore lint/suspicious/noDebugger: ok\n debugger\n }\n }\n }\n\n const {\n viewProps: viewPropsIn,\n pseudos,\n style: splitStylesStyle,\n classNames,\n space,\n } = splitStyles\n\n const propsWithAnimation = props as UseAnimationProps\n\n // once you set animation prop don't remove it, you can set to undefined/false\n // reason is animations are heavy - no way around it, and must be run inline here (\uD83D\uDE45 loading as a sub-component)\n let animationStyles: any\n if (!isRSC && isAnimated && useAnimations) {\n const animations = useAnimations({\n props: propsWithAnimation,\n style: splitStylesStyle,\n presence,\n state,\n pseudos: pseudos || null,\n onDidAnimate: props.onDidAnimate,\n hostRef,\n staticConfig,\n })\n if (animations) {\n animationStyles = animations.style\n }\n }\n\n const {\n hitSlop,\n asChild,\n children,\n onPress,\n onPressIn,\n onPressOut,\n onHoverIn,\n onHoverOut,\n themeShallow,\n spaceDirection: _spaceDirection,\n disabled: disabledProp,\n onMouseUp,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n hrefAttrs,\n separator,\n // ignore from here on out\n forceStyle: _forceStyle,\n // @ts-ignore for next/link compat etc\n onClick,\n theme: _themeProp,\n // @ts-ignore\n defaultVariants,\n\n ...nonTamaguiProps\n } = viewPropsIn\n\n const disabled =\n (props.accessibilityState != null && props.accessibilityState.disabled === true) ||\n props.accessibilityDisabled\n\n // these can ultimately be for DOM, react-native-web views, or animated views\n // so the type is pretty loose\n let viewProps: Record<string, any>\n\n // if react-native-web view just pass all props down\n if (process.env.TAMAGUI_TARGET === 'web' && !isReactNative) {\n // otherwise replicate react-native-web functionality\n const {\n // event props\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 // android\n collapsable,\n focusable,\n\n // deprecated,\n accessible,\n accessibilityDisabled,\n\n onLayout,\n\n ...webProps\n } = nonTamaguiProps\n\n viewProps = webProps\n\n if (!isRSC) {\n usePlatformMethods(hostRef as RefObject<Element>)\n\n useElementLayout(hostRef as RefObject<Element>, onLayout as any)\n\n 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 } as any)\n }\n\n if (props.href !== undefined && hrefAttrs !== undefined) {\n const { download, rel, target } = hrefAttrs\n if (download != null) {\n viewProps.download = download\n }\n if (rel != null) {\n viewProps.rel = rel\n }\n if (typeof target === 'string') {\n viewProps.target = target.charAt(0) !== '_' ? `_${target}` : target\n }\n }\n\n // FOCUS\n // \"focusable\" indicates that an element may be a keyboard tab-stop.\n const _focusable = focusable !== undefined ? focusable : accessible\n const role = viewProps.role\n if (_focusable === false) {\n viewProps.tabIndex = '-1'\n }\n if (\n // These native elements are focusable by default\n elementType === 'a' ||\n elementType === 'button' ||\n elementType === 'input' ||\n elementType === 'select' ||\n elementType === 'textarea'\n ) {\n if (_focusable === false || accessibilityDisabled === true) {\n viewProps.tabIndex = '-1'\n }\n } else if (\n // These roles are made focusable by default\n role === 'button' ||\n role === 'checkbox' ||\n role === 'link' ||\n role === 'radio' ||\n role === 'textbox' ||\n role === 'switch'\n ) {\n if (_focusable !== false) {\n viewProps.tabIndex = '0'\n }\n }\n // Everything else must explicitly set the prop\n if (_focusable === true) {\n viewProps.tabIndex = '0'\n }\n } else {\n viewProps = nonTamaguiProps\n }\n\n viewProps.ref = useComposedRefs(hostRef as any, forwardedRef)\n\n if (process.env.NODE_ENV === 'development' && !isText && isWeb) {\n Children.toArray(props.children).forEach((item) => {\n // allow newlines because why not its annoying with mdx\n if (typeof item === 'string' && item !== '\\n') {\n console.error(\n `Unexpected text node: ${item}. A text node cannot be a child of a <View>.`\n )\n }\n })\n }\n\n const unPress = useCallback(() => {\n setStateShallow({\n press: false,\n pressIn: false,\n })\n }, [setStateShallow])\n\n if (isWeb) {\n useEffect(() => {\n return () => {\n mouseUps.delete(unPress)\n }\n }, [])\n }\n\n const shouldSetMounted = needsMount && state.unmounted\n useEffect(() => {\n if (!shouldSetMounted) return\n if (state.unmounted === true && needsMount) {\n setStateShallow({\n unmounted: false,\n })\n return\n }\n\n setStateShallow({\n unmounted: false,\n })\n }, [shouldSetMounted, state.unmounted])\n\n let styles: Record<string, any>[]\n\n if (isStringElement && shouldAvoidClasses && !shouldForcePseudo) {\n styles = {\n ...(animationStyles ?? splitStylesStyle),\n }\n } else {\n styles = [animationStyles ?? splitStylesStyle]\n\n // ugly but for now...\n if (shouldForcePseudo) {\n const next = {}\n styles.forEach((style) => Object.assign(next, style))\n // @ts-ignore\n Object.assign(splitStyles.style, next)\n }\n }\n\n let fontFamily = isText\n ? splitStyles.fontFamily || staticConfig.defaultProps.fontFamily\n : null\n if (fontFamily && fontFamily[0] === '$') {\n fontFamily = fontFamily.slice(1)\n }\n const fontFamilyClassName = fontFamily ? `font_${fontFamily}` : ''\n\n const classList = [\n hasEnterStyle && ((state.unmounted && needsMount) || !isClient)\n ? 't_will-mount'\n : '',\n componentName ? componentClassName : '',\n fontFamilyClassName,\n classNames ? Object.values(classNames).join(' ') : '',\n ]\n\n const className = classList.join(' ')\n\n if (process.env.TAMAGUI_TARGET === 'web') {\n const style = animationStyles ?? splitStyles.style\n\n if (isAnimatedReactNativeWeb) {\n viewProps.style = style\n } else if (isReactNative) {\n const rnwStyle = { $$css: true }\n for (const name of className.split(' ')) {\n rnwStyle[name] = name\n }\n viewProps.style = [rnwStyle, ...(Array.isArray(style) ? style : [style])]\n\n if (process.env.NODE_ENV === 'development') {\n // turn debug data- props into dataSet in dev mode\n Object.keys(viewProps).forEach((key) => {\n if (key.startsWith('data-')) {\n viewProps.dataSet ??= {}\n viewProps.dataSet[key.replace('data-', '')] = viewProps[key]\n delete viewProps[key]\n }\n })\n }\n } else {\n viewProps.className = className\n viewProps.style = style\n }\n }\n\n if (process.env.TAMAGUI_TARGET === 'native') {\n // swap out the right family based on weight/style\n if (splitStyles.fontFamily) {\n const faceInfo = tamaguiConfig.fontsParsed[splitStyles.fontFamily]?.face\n if (faceInfo) {\n const [weight, style] = (() => {\n let weight: string | undefined\n let style: string | undefined\n for (let i = styles.length; i >= 0; i--) {\n weight ??= styles[i]?.fontWeight\n style ??= styles[i]?.fontStyle\n }\n return [weight || '400', style || 'normal'] as const\n })()\n const overrideFace = faceInfo[weight]?.[style]?.val\n if (overrideFace) {\n for (const style of styles) {\n if (style?.fontFamily) {\n style.fontFamily = overrideFace\n style.fontWeight = undefined\n style.fontStyle = undefined\n }\n }\n }\n }\n }\n\n // assign styles\n viewProps.style = styles\n }\n\n const runtimePressStyle = !disabled && noClassNames && pseudos?.pressStyle\n const attachPress = Boolean(\n runtimePressStyle || onPress || onPressOut || onPressIn || onClick\n )\n const runtimeHoverStyle = !disabled && noClassNames && pseudos?.hoverStyle\n const isHoverable =\n isWeb &&\n !!(runtimeHoverStyle || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave)\n\n const handlesPressEvents = !(isWeb || asChild)\n\n // check presence rather than value to prevent reparenting bugs\n // allows for onPress={x ? function : undefined} without re-ordering dom\n const shouldAttach = Boolean(\n attachPress ||\n isHoverable ||\n (noClassNames && 'pressStyle' in props) ||\n (isWeb && noClassNames && 'hoverStyle' in props)\n )\n\n const events =\n shouldAttach && !isRSC && !isDisabled && !asChild\n ? {\n onPressOut: attachPress\n ? (e) => {\n unPress()\n onPressOut?.(e)\n onMouseUp?.(e)\n }\n : undefined,\n ...(isHoverable && {\n onMouseEnter: isHoverable\n ? (e) => {\n const next: Partial<typeof state> = {}\n if (isHoverable) {\n next.hover = true\n }\n if (state.pressIn) {\n next.press = true\n }\n if (isHoverable || state.pressIn) {\n setStateShallow(next)\n }\n onHoverIn?.(e)\n onMouseEnter?.(e)\n }\n : undefined,\n onMouseLeave: isHoverable\n ? (e) => {\n const next: Partial<typeof state> = {}\n mouseUps.add(unPress)\n if (isHoverable) {\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 setStateShallow(next)\n }\n onHoverOut?.(e)\n onMouseLeave?.(e)\n }\n : undefined,\n }),\n onPressIn: attachPress\n ? (e) => {\n setStateShallow({\n press: true,\n pressIn: true,\n hover: false,\n })\n onPressIn?.(e)\n onMouseDown?.(e)\n if (isWeb) {\n mouseUps.add(unPress)\n }\n }\n : undefined,\n onPress: attachPress\n ? (e) => {\n unPress()\n // @ts-ignore\n onClick?.(e)\n onPress?.(e)\n }\n : undefined,\n\n // replicating TouchableWithoutFeedback\n ...(!isWeb && {\n cancelable: !props.rejectResponderTermination,\n disabled: isDisabled,\n hitSlop: props.hitSlop,\n delayLongPress: props.delayLongPress,\n delayPressIn: props.delayPressIn,\n delayPressOut: props.delayPressOut,\n focusable: viewProps.focusable ?? true,\n minPressDuration: 0,\n }),\n }\n : null\n\n // EVENTS native\n if (process.env.TAMAGUI_TARGET === 'native') {\n // add focus events\n const attachFocus = !!pseudos?.focusStyle\n if (attachFocus) {\n viewProps.onFocus = mergeEvent(viewProps.onFocus, () => {\n setStateShallow({ focus: true })\n })\n viewProps.onBlur = mergeEvent(viewProps.onBlur, () => {\n setStateShallow({ focus: false })\n })\n }\n\n // use Pressability to get smooth unPress when you press + hold + move out\n // only ever create once, use .configure() to update later\n const pressability = usePressability(events ? { ...events, hitSlop } : {})\n if (attachPress && events) {\n for (const key in pressability) {\n const og = props[key]\n const val = pressability[key]\n viewProps[key] =\n og && !dontComposePressabilityKeys[key] ? composeEventHandlers(og, val) : val\n }\n }\n }\n\n const shouldReset = !!(themeShallow && themeState.isNewTheme)\n if (shouldReset) {\n stateRef.current.themeShallow = true\n }\n\n let content =\n !children || asChild\n ? children\n : spacedChildren({\n separator,\n children,\n space,\n direction: props.spaceDirection || 'both',\n isZStack,\n debug: debugProp,\n })\n\n if (asChild) {\n elementType = Slot\n viewProps = {\n ...viewProps,\n onPress,\n onPressIn,\n onPressOut,\n }\n }\n\n content = createElement(elementType, viewProps, content)\n\n content = useThemedChildren(themeState, content, {\n shallow: stateRef.current.themeShallow,\n })\n\n if (process.env.TAMAGUI_TARGET === 'web') {\n if (events || isAnimatedReactNativeWeb) {\n content = (\n <span\n className={`${isAnimatedReactNativeWeb ? className : ''} _dsp_contents`}\n {...(events && {\n onMouseEnter: events.onMouseEnter,\n onMouseLeave: events.onMouseLeave,\n onClick: events.onPress,\n onMouseDown: events.onPressIn,\n onMouseUp: events.onPressOut,\n onTouchStart: events.onPressIn,\n onTouchEnd: events.onPressOut,\n })}\n >\n {content}\n </span>\n )\n }\n }\n\n if (process.env.NODE_ENV === 'development' && process.env.DEBUG !== 'tamagui') {\n if (debugProp) {\n const element = typeof elementType === 'string' ? elementType : 'Component'\n console.groupCollapsed(`render <${element} /> with props`, viewProps)\n for (const key in viewProps) {\n console.log(key, viewProps[key])\n }\n console.log('children', content)\n console.groupEnd()\n if (typeof window !== 'undefined') {\n // prettier-ignore\n console.log({ state, themeState, isAnimated, isAnimatedReactNativeWeb, tamaguiDefaultProps, viewProps, splitStyles, animationStyles, handlesPressEvents, isStringElement, classNamesIn: props.className?.split(' '), classNamesOut: viewProps.className?.split(' '), events, shouldAttach, styles, pseudos, content, shouldAvoidClasses, avoidClasses: avoidClassesWhileAnimating, animation: props.animation, style: splitStylesStyle, staticConfig, tamaguiConfig, shouldForcePseudo, classNamesFull: Object.fromEntries(Object.entries(classNames).map(([k, v]) => [v, getAllSelectors()[v]])) })\n }\n console.groupEnd()\n }\n }\n\n return content\n })\n\n if (staticConfig.componentName) {\n component.displayName = staticConfig.componentName\n }\n\n onConfiguredOnce((conf) => {\n // one time only setup\n if (!tamaguiConfig) {\n tamaguiConfig = conf\n\n if (tamaguiConfig.animations) {\n AnimatedText = tamaguiConfig.animations.Text\n AnimatedView = tamaguiConfig.animations.View\n }\n\n if (!initialTheme) {\n const next = conf.themes[Object.keys(conf.themes)[0]]\n initialTheme = proxyThemeVariables(next)\n if (process.env.NODE_ENV === 'development') {\n if (!initialTheme) {\n console.log('Warning: Missing theme')\n }\n }\n }\n }\n\n // per-component setup\n // do this to make sure shorthands don't duplicate with.. longhands\n mergeShorthands(staticConfig, tamaguiConfig)\n\n let defaultPropsIn = staticConfig.defaultProps || {}\n\n // because we run createTamagui after styled() defs, have to do some work here\n // gather defaults props one time and merge downwards\n // find last unprocessed and process\n const parentNames = [...(staticConfig.parentNames || []), staticConfig.componentName]\n\n if (tamaguiConfig.defaultProps && parentNames && staticConfig.componentName) {\n defaultPropsIn = mergeConfigDefaultProps(\n staticConfig.componentName,\n defaultPropsIn,\n tamaguiConfig.defaultProps,\n parentNames,\n tamaguiConfig\n )\n }\n\n const debug = defaultPropsIn['debug']\n\n // remove all classNames\n const [ourProps, ourClassNames] = mergeProps(defaultPropsIn, {})\n\n if (ourProps.tag) {\n defaultTag = ourProps.tag\n }\n\n const noClassNames = !staticConfig.acceptsClassName\n const { name, variants, defaultVariants, ...restProps } = ourProps\n\n // must preserve prop order\n // leave out className because we handle that already with initialSplitStyles.classNames\n // otherwise it confuses variant functions getting className props\n const [defaults, defaultsClassnames] = mergeProps(component.defaultProps as any, {\n ...defaultVariants,\n ...restProps,\n })\n\n // split - keep variables on props to be processed using theme values at runtime (native)\n if (!isWeb) {\n for (const key in staticConfig.defaultProps) {\n const val = staticConfig.defaultProps[key]\n if (validPseudoKeys[key]) continue\n defaults[key] = val\n }\n }\n\n // set to global\n tamaguiDefaultProps = defaults\n\n // add debug logs\n if (process.env.NODE_ENV === 'development' && debug) {\n if (process.env.IS_STATIC !== 'is_static') {\n console.log(`\uD83D\uDC1B [${staticConfig.componentName || 'Component'}]`, {\n staticConfig,\n tamaguiDefaultProps,\n defaults,\n defaultPropsIn,\n defaultPropsKeyOrder: Object.keys(staticConfig.defaultProps),\n defaultPropsInKeyOrder: Object.keys(defaultPropsIn).map((k) => [\n k,\n defaultPropsIn[k],\n ]),\n ourProps,\n ourClassNames,\n defaultsClassnames,\n defaultTag,\n noClassNames,\n })\n }\n }\n })\n\n let res: TamaguiComponent<ComponentPropTypes, Ref, BaseProps> = component as any\n\n if (configIn.memo) {\n res = memo(res) as any\n }\n\n res.staticConfig = {\n validStyles: staticConfig.validStyles || stylePropsView,\n ...staticConfig,\n }\n\n // res.extractable HoC\n res.extractable = (Component: any, conf?: Partial<StaticConfig>) => {\n Component.staticConfig = extendStaticConfig(\n {\n Component,\n ...conf,\n neverFlatten: true,\n defaultProps: {\n ...Component.defaultProps,\n ...conf?.defaultProps,\n },\n },\n res\n )\n return Component\n }\n\n return res\n}\n\n// for elements to avoid spacing\nexport const Unspaced = (props: { children?: any }) => {\n return props.children\n}\nUnspaced['isUnspaced'] = true\n\n// dont used styled() here to avoid circular deps\n// keep inline to avoid circular deps\n\nexport const Spacer = createComponent<SpacerProps>({\n acceptsClassName: true,\n memo: true,\n componentName: 'Spacer',\n validStyles,\n\n defaultProps: {\n ...stackDefaultStyles,\n // avoid nesting issues\n tag: 'span',\n size: true,\n pointerEvents: 'none',\n },\n\n variants: {\n size: {\n '...size': (size, { tokens }) => {\n size = size === true ? '$true' : size\n const sizePx = tokens.space[size] ?? size\n return {\n width: sizePx,\n height: sizePx,\n minWidth: sizePx,\n minHeight: sizePx,\n }\n },\n },\n\n flex: {\n true: {\n flexGrow: 1,\n },\n },\n\n direction: {\n horizontal: {\n height: 0,\n minHeight: 0,\n },\n vertical: {\n width: 0,\n minWidth: 0,\n },\n both: {},\n },\n } as const,\n})\n\nexport type SpacedChildrenProps = {\n isZStack?: boolean\n children?: React.ReactNode\n space?: SpaceTokens | number | null\n spaceFlex?: boolean | number\n direction?: SpaceDirection\n separator?: React.ReactNode\n debug?: DebugProp\n}\n\nexport function spacedChildren(props: SpacedChildrenProps) {\n const { isZStack, children, space, direction, spaceFlex, separator } = props\n const hasSpace = !!(space || spaceFlex)\n const hasSeparator = !(separator === undefined || separator === null)\n if (!(hasSpace || hasSeparator || isZStack)) {\n return children\n }\n\n const childrenList = Children.toArray(children)\n\n const len = childrenList.length\n if (len <= 1 && !isZStack && !childrenList[0]?.['type']?.['shouldForwardSpace']) {\n return childrenList\n }\n\n const final: React.ReactNode[] = []\n for (let [index, child] of childrenList.entries()) {\n const isEmpty =\n child === null ||\n child === undefined ||\n (Array.isArray(child) && child.length === 0)\n\n // forward space\n if (!isEmpty && React.isValidElement(child) && child.type?.['shouldForwardSpace']) {\n child = React.cloneElement(child, {\n space,\n spaceFlex,\n separator,\n key: child.key,\n } as any)\n }\n\n // push them all, but wrap some in Fragment\n if (isEmpty || !child || (child['key'] && !isZStack)) {\n final.push(child)\n } else {\n final.push(\n <Fragment key={index}>\n {isZStack ? <AbsoluteFill>{child}</AbsoluteFill> : child}\n </Fragment>\n )\n }\n\n // first child unspaced avoid insert space\n if (isUnspaced(child) && index === 0) continue\n // no spacing on ZStack\n if (isZStack) continue\n\n const next = childrenList[index + 1]\n\n if (next && !isUnspaced(next)) {\n if (separator) {\n if (hasSpace) {\n final.push(\n createSpacer({\n key: `_${index}_00tmgui`,\n direction,\n space,\n spaceFlex,\n })\n )\n }\n final.push(\n React.isValidElement(separator)\n ? React.cloneElement(separator, { key: `sep_${index}` })\n : separator\n )\n if (hasSpace) {\n final.push(\n createSpacer({\n key: `_${index}01tmgui`,\n direction,\n space,\n spaceFlex,\n })\n )\n }\n } else {\n final.push(\n createSpacer({\n key: `_${index}02tmgui`,\n direction,\n space,\n spaceFlex,\n })\n )\n }\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (props.debug) {\n console.log(` Spaced children`, final, props)\n }\n }\n\n return final\n}\n\ntype CreateSpacerProps = SpacedChildrenProps & { key: string }\n\nfunction createSpacer({ key, direction, space, spaceFlex }: CreateSpacerProps) {\n return (\n // @ts-ignore this one blew up but the types seem better\n <Spacer\n key={key}\n size={space}\n direction={direction}\n {...(typeof spaceFlex !== 'undefined' && {\n flex: spaceFlex === true ? 1 : spaceFlex === false ? 0 : spaceFlex,\n })}\n />\n )\n}\n\nfunction isUnspaced(child: React.ReactNode) {\n // console.log('unspaced?', child, getMedia())\n return child?.['type']?.['isVisuallyHidden'] || child?.['type']?.['isUnspaced']\n}\n\nconst DefaultProps = new Map()\n\nfunction mergeConfigDefaultProps(\n name: string,\n props: Record<string, any>,\n configDefaults: Record<string, Object>,\n parentNames: (string | undefined)[],\n conf: TamaguiInternalConfig\n) {\n const len = parentNames.length\n let prev\n\n for (let i = 0; i < len; i++) {\n const n = parentNames[i]\n if (!n) continue\n if (DefaultProps.has(n)) {\n prev = DefaultProps.get(n)\n continue\n }\n const props = configDefaults[n]\n if (!props) {\n if (prev) {\n DefaultProps.set(n, prev)\n }\n continue\n }\n prev = mergeProps(prev || {}, props, false, conf.inverseShorthands)[0]\n DefaultProps.set(n, prev)\n }\n\n // overwrite the user defined defaults on top of internal defined defaults\n const ourDefaultsMerged = DefaultProps.get(name)\n if (ourDefaultsMerged) {\n return mergeProps(props, ourDefaultsMerged, false, conf.inverseShorthands)[0]\n }\n return props\n}\n\n// react native compat (web only)\nfunction usePlatformMethods(hostRef: RefObject<Element>) {\n useIsomorphicLayoutEffect(() => {\n const node = hostRef.current\n if (!node) return\n // @ts-ignore\n node.measure = (callback) => measureLayout(node, null, callback)\n // @ts-ignore\n node.measureLayout = (relativeToNode, success) =>\n measureLayout(node as HTMLElement, relativeToNode, success)\n // @ts-ignore\n node.measureInWindow = (callback) => {\n if (!node) return\n setTimeout(() => {\n const { height, left, top, width } = getRect(node as HTMLElement)!\n callback(left, top, width, height)\n }, 0)\n }\n }, [hostRef])\n}\n\nconst AbsoluteFill: any = createComponent({\n componentName: 'AbsoluteFill',\n defaultProps: {\n ...stackDefaultStyles,\n flexDirection: 'column',\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n pointerEvents: 'box-none',\n },\n})\n\nconst dontComposePressabilityKeys = {\n onClick: true,\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["_a", "_b", "weight", "style", "element", "props"]
7
+ }
@@ -0,0 +1,45 @@
1
+ const fontWeights = [
2
+ "100",
3
+ "200",
4
+ "300",
5
+ "400",
6
+ "500",
7
+ "600",
8
+ "700",
9
+ "800",
10
+ "900"
11
+ ];
12
+ const processSection = (section, keys, defaultValue) => {
13
+ if (typeof section === "string")
14
+ return section;
15
+ const sectionKeys = Object.keys(section);
16
+ let fillValue = section[sectionKeys[0]];
17
+ return Object.fromEntries(
18
+ [.../* @__PURE__ */ new Set([...keys, ...sectionKeys])].map((key) => {
19
+ const value = section[key] ?? defaultValue ?? fillValue;
20
+ fillValue = value;
21
+ defaultValue = value;
22
+ return [key, value];
23
+ })
24
+ );
25
+ };
26
+ const createFont = (font) => {
27
+ const sizeKeys = Object.keys(font.size);
28
+ const processedFont = Object.fromEntries(
29
+ Object.entries(font).map(([key, section]) => {
30
+ return [
31
+ key,
32
+ processSection(
33
+ section,
34
+ key === "face" ? fontWeights : sizeKeys,
35
+ key === "face" ? { normal: font.family } : void 0
36
+ )
37
+ ];
38
+ })
39
+ );
40
+ return Object.freeze(processedFont);
41
+ };
42
+ export {
43
+ createFont
44
+ };
45
+ //# sourceMappingURL=createFont.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/createFont.ts"],
4
+ "sourcesContent": ["import { FontWeightSteps, GenericFont } from './types'\n\nconst fontWeights: FontWeightSteps[] = [\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n]\n\nconst processSection = <T>(\n section: string | Record<string, T>,\n keys: string[],\n defaultValue?: any\n): string | Record<string, T> => {\n if (typeof section === 'string') return section\n\n const sectionKeys = Object.keys(section)\n let fillValue = section[sectionKeys[0]]\n\n return Object.fromEntries(\n [...new Set([...keys, ...sectionKeys])].map((key) => {\n const value = section[key] ?? defaultValue ?? fillValue\n fillValue = value\n defaultValue = value\n return [key, value]\n })\n )\n}\n\nexport const createFont = <A extends GenericFont>(font: A): A => {\n const sizeKeys = Object.keys(font.size)\n const processedFont = Object.fromEntries(\n Object.entries(font).map(([key, section]) => {\n return [\n key,\n processSection(\n section as any,\n key === 'face' ? fontWeights : sizeKeys,\n key === 'face' ? { normal: font.family } : undefined\n ),\n ]\n })\n )\n return Object.freeze(processedFont) as A\n}\n"],
5
+ "mappings": "AAEA,MAAM,cAAiC;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,MAAM,iBAAiB,CACrB,SACA,MACA,iBAC+B;AAC/B,MAAI,OAAO,YAAY;AAAU,WAAO;AAExC,QAAM,cAAc,OAAO,KAAK,OAAO;AACvC,MAAI,YAAY,QAAQ,YAAY,CAAC,CAAC;AAEtC,SAAO,OAAO;AAAA,IACZ,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ;AACnD,YAAM,QAAQ,QAAQ,GAAG,KAAK,gBAAgB;AAC9C,kBAAY;AACZ,qBAAe;AACf,aAAO,CAAC,KAAK,KAAK;AAAA,IACpB,CAAC;AAAA,EACH;AACF;AAEO,MAAM,aAAa,CAAwB,SAAe;AAC/D,QAAM,WAAW,OAAO,KAAK,KAAK,IAAI;AACtC,QAAM,gBAAgB,OAAO;AAAA,IAC3B,OAAO,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,OAAO,MAAM;AAC3C,aAAO;AAAA,QACL;AAAA,QACA;AAAA,UACE;AAAA,UACA,QAAQ,SAAS,cAAc;AAAA,UAC/B,QAAQ,SAAS,EAAE,QAAQ,KAAK,OAAO,IAAI;AAAA,QAC7C;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO,OAAO,OAAO,aAAa;AACpC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,45 @@
1
+ const fontWeights = [
2
+ "100",
3
+ "200",
4
+ "300",
5
+ "400",
6
+ "500",
7
+ "600",
8
+ "700",
9
+ "800",
10
+ "900"
11
+ ];
12
+ const processSection = (section, keys, defaultValue) => {
13
+ if (typeof section === "string")
14
+ return section;
15
+ const sectionKeys = Object.keys(section);
16
+ let fillValue = section[sectionKeys[0]];
17
+ return Object.fromEntries(
18
+ [.../* @__PURE__ */ new Set([...keys, ...sectionKeys])].map((key) => {
19
+ const value = section[key] ?? defaultValue ?? fillValue;
20
+ fillValue = value;
21
+ defaultValue = value;
22
+ return [key, value];
23
+ })
24
+ );
25
+ };
26
+ const createFont = (font) => {
27
+ const sizeKeys = Object.keys(font.size);
28
+ const processedFont = Object.fromEntries(
29
+ Object.entries(font).map(([key, section]) => {
30
+ return [
31
+ key,
32
+ processSection(
33
+ section,
34
+ key === "face" ? fontWeights : sizeKeys,
35
+ key === "face" ? { normal: font.family } : void 0
36
+ )
37
+ ];
38
+ })
39
+ );
40
+ return Object.freeze(processedFont);
41
+ };
42
+ export {
43
+ createFont
44
+ };
45
+ //# sourceMappingURL=createFont.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/createFont.ts"],
4
+ "sourcesContent": ["import { FontWeightSteps, GenericFont } from './types'\n\nconst fontWeights: FontWeightSteps[] = [\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n]\n\nconst processSection = <T>(\n section: string | Record<string, T>,\n keys: string[],\n defaultValue?: any\n): string | Record<string, T> => {\n if (typeof section === 'string') return section\n\n const sectionKeys = Object.keys(section)\n let fillValue = section[sectionKeys[0]]\n\n return Object.fromEntries(\n [...new Set([...keys, ...sectionKeys])].map((key) => {\n const value = section[key] ?? defaultValue ?? fillValue\n fillValue = value\n defaultValue = value\n return [key, value]\n })\n )\n}\n\nexport const createFont = <A extends GenericFont>(font: A): A => {\n const sizeKeys = Object.keys(font.size)\n const processedFont = Object.fromEntries(\n Object.entries(font).map(([key, section]) => {\n return [\n key,\n processSection(\n section as any,\n key === 'face' ? fontWeights : sizeKeys,\n key === 'face' ? { normal: font.family } : undefined\n ),\n ]\n })\n )\n return Object.freeze(processedFont) as A\n}\n"],
5
+ "mappings": "AAEA,MAAM,cAAiC;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,MAAM,iBAAiB,CACrB,SACA,MACA,iBAC+B;AAC/B,MAAI,OAAO,YAAY;AAAU,WAAO;AAExC,QAAM,cAAc,OAAO,KAAK,OAAO;AACvC,MAAI,YAAY,QAAQ,YAAY,CAAC,CAAC;AAEtC,SAAO,OAAO;AAAA,IACZ,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ;AACnD,YAAM,QAAQ,QAAQ,GAAG,KAAK,gBAAgB;AAC9C,kBAAY;AACZ,qBAAe;AACf,aAAO,CAAC,KAAK,KAAK;AAAA,IACpB,CAAC;AAAA,EACH;AACF;AAEO,MAAM,aAAa,CAAwB,SAAe;AAC/D,QAAM,WAAW,OAAO,KAAK,KAAK,IAAI;AACtC,QAAM,gBAAgB,OAAO;AAAA,IAC3B,OAAO,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,OAAO,MAAM;AAC3C,aAAO;AAAA,QACL;AAAA,QACA;AAAA,UACE;AAAA,UACA,QAAQ,SAAS,cAAc;AAAA,UAC/B,QAAQ,SAAS,EAAE,QAAQ,KAAK,OAAO,IAAI;AAAA,QAC7C;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO,OAAO,OAAO,aAAa;AACpC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ function createShorthands(shorthands) {
2
+ return Object.freeze(shorthands);
3
+ }
4
+ export {
5
+ createShorthands
6
+ };
7
+ //# sourceMappingURL=createShorthands.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/createShorthands.ts"],
4
+ "sourcesContent": ["import { CreateShorthands } from './types'\n\n// just a type helper util\n\nexport function createShorthands<A extends CreateShorthands>(shorthands: A): A {\n return Object.freeze(shorthands) as any\n}\n"],
5
+ "mappings": "AAIO,SAAS,iBAA6C,YAAkB;AAC7E,SAAO,OAAO,OAAO,UAAU;AACjC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ function createShorthands(shorthands) {
2
+ return Object.freeze(shorthands);
3
+ }
4
+ export {
5
+ createShorthands
6
+ };
7
+ //# sourceMappingURL=createShorthands.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/createShorthands.ts"],
4
+ "sourcesContent": ["import { CreateShorthands } from './types'\n\n// just a type helper util\n\nexport function createShorthands<A extends CreateShorthands>(shorthands: A): A {\n return Object.freeze(shorthands) as any\n}\n"],
5
+ "mappings": "AAIO,SAAS,iBAA6C,YAAkB;AAC7E,SAAO,OAAO,OAAO,UAAU;AACjC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,190 @@
1
+ import { isRSC, isWeb } from "@tamagui/constants";
2
+ import { configListeners, setConfig } from "./config";
3
+ import { createVariables, tokensKeysOrdered } from "./createVariables";
4
+ import { getThemeCSSRules } from "./helpers/getThemeCSSRules";
5
+ import {
6
+ getAllRules,
7
+ listenForSheetChanges,
8
+ scanAllSheets
9
+ } from "./helpers/insertStyleRule";
10
+ import {
11
+ registerCSSVariable,
12
+ tokensValueToVariable,
13
+ variableToCSS
14
+ } from "./helpers/registerCSSVariable";
15
+ import { ensureThemeVariable, proxyThemeToParents } from "./helpers/themes";
16
+ import { configureMedia } from "./hooks/useMedia";
17
+ import { parseFont, registerFontVariables } from "./insertFont";
18
+ import { Tamagui } from "./Tamagui";
19
+ const createdConfigs = /* @__PURE__ */ new WeakMap();
20
+ function createTamagui(configIn) {
21
+ var _a;
22
+ if (createdConfigs.has(configIn)) {
23
+ return configIn;
24
+ }
25
+ if (process.env.NODE_ENV === "development") {
26
+ if (!configIn.tokens) {
27
+ throw new Error("Must define tokens");
28
+ }
29
+ if (!configIn.themes) {
30
+ throw new Error("Must define themes");
31
+ }
32
+ if (!configIn.fonts) {
33
+ throw new Error("Must define fonts");
34
+ }
35
+ }
36
+ scanAllSheets();
37
+ listenForSheetChanges();
38
+ const fontTokens = Object.fromEntries(
39
+ Object.entries(configIn.fonts).map(([k, v]) => {
40
+ return [k, createVariables(v, "f", true)];
41
+ })
42
+ );
43
+ const fontsParsed = (() => {
44
+ const res = {};
45
+ for (const familyName in fontTokens) {
46
+ res[`$${familyName}`] = parseFont(fontTokens[familyName]);
47
+ }
48
+ return res;
49
+ })();
50
+ const themeConfig = (() => {
51
+ const themes = { ...configIn.themes };
52
+ const cssRuleSets = [];
53
+ if (isWeb) {
54
+ let declarationsToRuleSet2 = function(decs, selector = "") {
55
+ return `:root${selector} {${sep}${[...decs].join(`;${sep}`)}${sep}}`;
56
+ };
57
+ var declarationsToRuleSet = declarationsToRuleSet2;
58
+ const declarations = [];
59
+ const fontDeclarations = {};
60
+ for (const key in configIn.tokens) {
61
+ for (const skey in configIn.tokens[key]) {
62
+ const val = configIn.tokens[key][skey];
63
+ registerCSSVariable(val);
64
+ declarations.push(variableToCSS(val));
65
+ }
66
+ }
67
+ for (const key in fontsParsed) {
68
+ const fontParsed = fontsParsed[key];
69
+ const [name, language] = key.includes("_") ? key.split("_") : [key];
70
+ const fontVars = registerFontVariables(fontParsed);
71
+ fontDeclarations[key] = {
72
+ name: name.slice(1),
73
+ declarations: fontVars,
74
+ language
75
+ };
76
+ }
77
+ const sep = process.env.NODE_ENV === "development" ? configIn.cssStyleSeparator || " " : "";
78
+ cssRuleSets.push(declarationsToRuleSet2(declarations));
79
+ if (fontDeclarations) {
80
+ for (const key in fontDeclarations) {
81
+ const { name, declarations: declarations2, language = "default" } = fontDeclarations[key];
82
+ const fontSelector = `.font_${name}`;
83
+ const langSelector = `:root .t_lang-${name}-${language} ${fontSelector}`;
84
+ const selectors = language === "default" ? ` ${fontSelector}, ${langSelector}` : langSelector;
85
+ const specificRuleSet = declarationsToRuleSet2(declarations2, selectors);
86
+ cssRuleSets.push(specificRuleSet);
87
+ }
88
+ }
89
+ }
90
+ const dedupedThemes = {};
91
+ const existing = /* @__PURE__ */ new WeakMap();
92
+ for (const themeName in themes) {
93
+ const rawTheme = themes[themeName];
94
+ if (existing.has(rawTheme)) {
95
+ const e = existing.get(rawTheme);
96
+ themes[themeName] = e.theme;
97
+ e.names.push(themeName);
98
+ continue;
99
+ }
100
+ const theme = { ...rawTheme };
101
+ for (const key in theme) {
102
+ ensureThemeVariable(theme, key);
103
+ }
104
+ themes[themeName] = theme;
105
+ dedupedThemes[themeName] = {
106
+ names: [themeName],
107
+ theme
108
+ };
109
+ existing.set(rawTheme, dedupedThemes[themeName]);
110
+ }
111
+ let themeRuleSets = [];
112
+ if (isWeb || isRSC) {
113
+ for (const themeName in dedupedThemes) {
114
+ themeRuleSets = [
115
+ ...themeRuleSets,
116
+ ...getThemeCSSRules({
117
+ config: configIn,
118
+ themeName,
119
+ ...dedupedThemes[themeName]
120
+ })
121
+ ];
122
+ }
123
+ }
124
+ for (const themeName in themes) {
125
+ themes[themeName] = proxyThemeToParents(themeName, themes[themeName], themes);
126
+ }
127
+ tokensValueToVariable.clear();
128
+ return {
129
+ themes,
130
+ cssRuleSets,
131
+ themeRuleSets
132
+ };
133
+ })();
134
+ const tokensParsed = Object.fromEntries(
135
+ Object.entries(configIn.tokens).map(([k, v]) => {
136
+ const val = Object.fromEntries(Object.entries(v).map(([k2, v2]) => [`$${k2}`, v2]));
137
+ tokensKeysOrdered.set(val, tokensKeysOrdered.get(v));
138
+ return [k, val];
139
+ })
140
+ );
141
+ const shorthands = configIn.shorthands || {};
142
+ const config = {
143
+ fontLanguages: [],
144
+ animations: {},
145
+ media: {},
146
+ ...configIn,
147
+ // already processed by createTokens()
148
+ tokens: configIn.tokens,
149
+ // vite made this into a function if it wasn't set
150
+ shorthands: { ...shorthands },
151
+ inverseShorthands: shorthands ? Object.fromEntries(Object.entries(shorthands).map(([k, v]) => [v, k])) : {},
152
+ themes: themeConfig.themes,
153
+ fontsParsed,
154
+ themeConfig,
155
+ tokensParsed,
156
+ parsed: true,
157
+ getCSS: (separator = "\n") => {
158
+ return `
159
+ ._ovs-contain {overscroll-behavior:contain;}
160
+ .t_unmounted .t_will-mount {opacity:0;visibility:hidden;}
161
+ .is_Text .is_Text {display:inline-flex;}
162
+ ._dsp_contents {display:contents;}
163
+ ${themeConfig.cssRuleSets.join(separator)}
164
+ ${themeConfig.themeRuleSets.join(separator)}
165
+ ${getAllRules().join(separator)}`;
166
+ }
167
+ // const tokens = [...getToken(tokens.size[0])]
168
+ // .spacer-sm + ._dsp_contents._dsp-sm-hidden { margin-left: -var(--${}) }
169
+ };
170
+ configureMedia(config);
171
+ setConfig(config);
172
+ if (configListeners.size) {
173
+ configListeners.forEach((cb) => cb(config));
174
+ configListeners.clear();
175
+ }
176
+ createdConfigs.set(config, true);
177
+ if (process.env.NODE_ENV === "development") {
178
+ if ((_a = process.env.DEBUG) == null ? void 0 : _a.startsWith("tamagui")) {
179
+ console.log("Tamagui config:", config);
180
+ }
181
+ if (!globalThis["Tamagui"]) {
182
+ globalThis["Tamagui"] = Tamagui;
183
+ }
184
+ }
185
+ return config;
186
+ }
187
+ export {
188
+ createTamagui
189
+ };
190
+ //# sourceMappingURL=createTamagui.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/createTamagui.ts"],
4
+ "sourcesContent": ["import { isRSC, isWeb } from '@tamagui/constants'\n\nimport { configListeners, setConfig } from './config'\nimport { createVariables, tokensKeysOrdered } from './createVariables'\nimport { getThemeCSSRules } from './helpers/getThemeCSSRules'\nimport {\n getAllRules,\n listenForSheetChanges,\n scanAllSheets,\n} from './helpers/insertStyleRule'\nimport {\n registerCSSVariable,\n tokensValueToVariable,\n variableToCSS,\n} from './helpers/registerCSSVariable'\nimport { ensureThemeVariable, proxyThemeToParents } from './helpers/themes'\nimport { configureMedia } from './hooks/useMedia'\nimport { parseFont, registerFontVariables } from './insertFont'\nimport { Tamagui } from './Tamagui'\nimport {\n CreateTamaguiProps,\n InferTamaguiConfig,\n TamaguiInternalConfig,\n ThemeParsed,\n} from './types'\n\n// config is re-run by the @tamagui/static, dont double validate\nconst createdConfigs = new WeakMap<any, boolean>()\n\nexport function createTamagui<Conf extends CreateTamaguiProps>(\n configIn: Conf\n): InferTamaguiConfig<Conf> {\n if (createdConfigs.has(configIn)) {\n return configIn as any\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (!configIn.tokens) {\n throw new Error('Must define tokens')\n }\n if (!configIn.themes) {\n throw new Error('Must define themes')\n }\n if (!configIn.fonts) {\n throw new Error('Must define fonts')\n }\n }\n\n scanAllSheets()\n listenForSheetChanges()\n\n const fontTokens = Object.fromEntries(\n Object.entries(configIn.fonts!).map(([k, v]) => {\n return [k, createVariables(v, 'f', true)]\n })\n )\n\n const fontsParsed = (() => {\n const res = {} as typeof fontTokens\n for (const familyName in fontTokens) {\n res[`$${familyName}`] = parseFont(fontTokens[familyName])\n }\n return res!\n })()\n\n const themeConfig = (() => {\n const themes = { ...configIn.themes }\n const cssRuleSets: string[] = []\n\n if (isWeb) {\n const declarations: string[] = []\n const fontDeclarations: Record<\n string,\n { name: string; declarations: string[]; language?: string }\n > = {}\n\n for (const key in configIn.tokens) {\n for (const skey in configIn.tokens[key]) {\n const val = configIn.tokens[key][skey]\n registerCSSVariable(val)\n declarations.push(variableToCSS(val))\n }\n }\n\n for (const key in fontsParsed) {\n const fontParsed = fontsParsed[key]\n const [name, language] = key.includes('_') ? key.split('_') : [key]\n const fontVars = registerFontVariables(fontParsed)\n fontDeclarations[key] = {\n name: name.slice(1),\n declarations: fontVars,\n language,\n }\n }\n\n const sep =\n process.env.NODE_ENV === 'development' ? configIn.cssStyleSeparator || ' ' : ''\n\n function declarationsToRuleSet(decs: string[], selector = '') {\n return `:root${selector} {${sep}${[...decs].join(`;${sep}`)}${sep}}`\n }\n\n // non-font\n cssRuleSets.push(declarationsToRuleSet(declarations))\n\n // fonts\n if (fontDeclarations) {\n for (const key in fontDeclarations) {\n const { name, declarations, language = 'default' } = fontDeclarations[key]\n const fontSelector = `.font_${name}`\n const langSelector = `:root .t_lang-${name}-${language} ${fontSelector}`\n const selectors =\n language === 'default' ? ` ${fontSelector}, ${langSelector}` : langSelector\n const specificRuleSet = declarationsToRuleSet(declarations, selectors)\n cssRuleSets.push(specificRuleSet)\n }\n }\n }\n\n // dedupe themes to avoid duplicate CSS generation\n type DedupedTheme = {\n names: string[]\n theme: ThemeParsed\n }\n const dedupedThemes: {\n [key: string]: DedupedTheme\n } = {}\n const existing = new WeakMap<ThemeParsed, DedupedTheme>()\n\n // first, de-dupe and parse them\n for (const themeName in themes) {\n const rawTheme = themes[themeName] as ThemeParsed\n\n // if existing, avoid\n if (existing.has(rawTheme)) {\n const e = existing.get(rawTheme)!\n themes[themeName] = e.theme\n e.names.push(themeName)\n continue\n }\n\n // ensure each theme object unique for dedupe\n const theme = { ...rawTheme }\n // parse into variables\n for (const key in theme) {\n // make sure properly names theme variables\n ensureThemeVariable(theme, key)\n }\n themes[themeName] = theme\n\n // set deduped\n dedupedThemes[themeName] = {\n names: [themeName],\n theme,\n }\n\n existing.set(rawTheme, dedupedThemes[themeName])\n }\n\n // then, generate CSS from de-duped\n let themeRuleSets: string[] = []\n\n if (isWeb || isRSC) {\n for (const themeName in dedupedThemes) {\n themeRuleSets = [\n ...themeRuleSets,\n ...getThemeCSSRules({\n config: configIn,\n themeName,\n ...dedupedThemes[themeName],\n }),\n ]\n }\n }\n\n // proxy upwards to get parent variables (themes are subset going down)\n for (const themeName in themes) {\n themes[themeName] = proxyThemeToParents(themeName, themes[themeName], themes)\n }\n\n tokensValueToVariable.clear()\n\n return {\n themes,\n cssRuleSets,\n themeRuleSets,\n }\n })()\n\n // faster $lookups\n const tokensParsed: any = Object.fromEntries(\n Object.entries(configIn.tokens).map(([k, v]) => {\n const val = Object.fromEntries(Object.entries(v).map(([k, v]) => [`$${k}`, v]))\n tokensKeysOrdered.set(val, tokensKeysOrdered.get(v))\n return [k, val]\n })\n )\n\n const shorthands = configIn.shorthands || {}\n\n const config: TamaguiInternalConfig = {\n fontLanguages: [],\n animations: {} as any,\n media: {},\n ...configIn,\n // already processed by createTokens()\n tokens: configIn.tokens as any,\n // vite made this into a function if it wasn't set\n shorthands: { ...shorthands },\n inverseShorthands: shorthands\n ? Object.fromEntries(Object.entries(shorthands).map(([k, v]) => [v, k]))\n : {},\n themes: themeConfig.themes as any,\n fontsParsed,\n themeConfig,\n tokensParsed,\n parsed: true,\n getCSS: (separator = '\\n') => {\n return `\n._ovs-contain {overscroll-behavior:contain;}\n.t_unmounted .t_will-mount {opacity:0;visibility:hidden;}\n.is_Text .is_Text {display:inline-flex;}\n._dsp_contents {display:contents;}\n${themeConfig.cssRuleSets.join(separator)}\n${themeConfig.themeRuleSets.join(separator)}\n${getAllRules().join(separator)}`\n },\n // const tokens = [...getToken(tokens.size[0])]\n // .spacer-sm + ._dsp_contents._dsp-sm-hidden { margin-left: -var(--${}) }\n }\n\n configureMedia(config)\n setConfig(config)\n\n if (configListeners.size) {\n configListeners.forEach((cb) => cb(config))\n configListeners.clear()\n }\n\n createdConfigs.set(config, true)\n\n if (process.env.NODE_ENV === 'development') {\n if (process.env.DEBUG?.startsWith('tamagui')) {\n // eslint-disable-next-line no-console\n console.log('Tamagui config:', config)\n }\n if (!globalThis['Tamagui']) {\n globalThis['Tamagui'] = Tamagui\n }\n }\n\n return config as any\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["declarationsToRuleSet", "declarations", "k", "v"]
7
+ }