@tamagui/core 1.0.1-beta.140 → 1.0.1-beta.143

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 (561) hide show
  1. package/dist/cjs/Tamagui.js +2 -2
  2. package/dist/cjs/Tamagui.js.map +2 -2
  3. package/dist/cjs/addTheme.js +28 -22
  4. package/dist/cjs/addTheme.js.map +2 -2
  5. package/dist/cjs/conf.js +0 -0
  6. package/dist/cjs/conf.js.map +0 -0
  7. package/dist/cjs/config.js +75 -0
  8. package/dist/cjs/config.js.map +7 -0
  9. package/dist/cjs/constants/constants.js +0 -0
  10. package/dist/cjs/constants/constants.js.map +0 -0
  11. package/dist/cjs/constants/platform.js +7 -1
  12. package/dist/cjs/constants/platform.js.map +2 -2
  13. package/dist/cjs/constants/platform.native.js +62 -0
  14. package/dist/cjs/constants/platform.native.js.map +7 -0
  15. package/dist/cjs/contexts/ButtonInsideButtonContext.js +0 -0
  16. package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +0 -0
  17. package/dist/cjs/contexts/FontLanguageContext.js +0 -0
  18. package/dist/cjs/contexts/FontLanguageContext.js.map +0 -0
  19. package/dist/cjs/contexts/TextAncestorContext.js +0 -0
  20. package/dist/cjs/contexts/TextAncestorContext.js.map +0 -0
  21. package/dist/cjs/contexts/ThemeContext.js +0 -0
  22. package/dist/cjs/contexts/ThemeContext.js.map +0 -0
  23. package/dist/cjs/createComponent.js +77 -71
  24. package/dist/cjs/createComponent.js.map +2 -2
  25. package/dist/cjs/createComponent.server.js +431 -0
  26. package/dist/cjs/createComponent.server.js.map +7 -0
  27. package/dist/cjs/createFont.js +0 -0
  28. package/dist/cjs/createFont.js.map +0 -0
  29. package/dist/cjs/createShorthands.js +0 -0
  30. package/dist/cjs/createShorthands.js.map +0 -0
  31. package/dist/cjs/createTamagui.js +31 -32
  32. package/dist/cjs/createTamagui.js.map +2 -2
  33. package/dist/cjs/createTheme.js +0 -0
  34. package/dist/cjs/createTheme.js.map +0 -0
  35. package/dist/cjs/createTokens.js +0 -0
  36. package/dist/cjs/createTokens.js.map +0 -0
  37. package/dist/cjs/createVariable.js +21 -35
  38. package/dist/cjs/createVariable.js.map +2 -2
  39. package/dist/cjs/createVariables.js +5 -2
  40. package/dist/cjs/createVariables.js.map +2 -2
  41. package/dist/cjs/helpers/RNComponents.js +11 -11
  42. package/dist/cjs/helpers/RNComponents.js.map +2 -2
  43. package/dist/cjs/helpers/ThemeManager.js +7 -9
  44. package/dist/cjs/helpers/ThemeManager.js.map +2 -2
  45. package/dist/cjs/helpers/areEqualSets.js +0 -0
  46. package/dist/cjs/helpers/areEqualSets.js.map +0 -0
  47. package/dist/cjs/helpers/assignNativePropsToWeb.js +0 -1
  48. package/dist/cjs/helpers/assignNativePropsToWeb.js.map +2 -2
  49. package/dist/cjs/helpers/assignNativePropsToWeb.native.js +0 -0
  50. package/dist/cjs/helpers/assignNativePropsToWeb.native.js.map +0 -0
  51. package/dist/cjs/helpers/calc.js +0 -0
  52. package/dist/cjs/helpers/calc.js.map +0 -0
  53. package/dist/cjs/helpers/createMediaStyle.js +0 -0
  54. package/dist/cjs/helpers/createMediaStyle.js.map +0 -0
  55. package/dist/cjs/helpers/createPropMapper.js +3 -3
  56. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  57. package/dist/cjs/helpers/createShallowUpdate.js +0 -0
  58. package/dist/cjs/helpers/createShallowUpdate.js.map +0 -0
  59. package/dist/cjs/helpers/cssHash.js +0 -0
  60. package/dist/cjs/helpers/cssHash.js.map +0 -0
  61. package/dist/cjs/helpers/expandStyle.js +0 -0
  62. package/dist/cjs/helpers/expandStyle.js.map +0 -0
  63. package/dist/cjs/helpers/expandStyles.js +4 -4
  64. package/dist/cjs/helpers/expandStyles.js.map +2 -2
  65. package/dist/cjs/helpers/extendStaticConfig.js +0 -0
  66. package/dist/cjs/helpers/extendStaticConfig.js.map +0 -0
  67. package/dist/cjs/helpers/fixNativeShadow.js +0 -0
  68. package/dist/cjs/helpers/fixNativeShadow.js.map +0 -0
  69. package/dist/cjs/{Pressability.js → helpers/getAnimationDriver.js} +10 -10
  70. package/dist/cjs/helpers/getAnimationDriver.js.map +7 -0
  71. package/dist/cjs/helpers/getExpandedShorthands.js +3 -3
  72. package/dist/cjs/helpers/getExpandedShorthands.js.map +2 -2
  73. package/dist/cjs/helpers/getFont.js +1 -1
  74. package/dist/cjs/helpers/getFont.js.map +2 -2
  75. package/dist/cjs/helpers/getFontLanguage.js +0 -0
  76. package/dist/cjs/helpers/getFontLanguage.js.map +0 -0
  77. package/dist/cjs/helpers/getSize.js +2 -2
  78. package/dist/cjs/helpers/getSize.js.map +2 -2
  79. package/dist/cjs/helpers/getSplitStyles.js +12 -13
  80. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  81. package/dist/cjs/helpers/getStackSize.js +0 -0
  82. package/dist/cjs/helpers/getStackSize.js.map +0 -0
  83. package/dist/cjs/helpers/getStylesAtomic.js +6 -4
  84. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  85. package/dist/cjs/helpers/getStylesAtomic.native.js +0 -0
  86. package/dist/cjs/helpers/getStylesAtomic.native.js.map +0 -0
  87. package/dist/cjs/helpers/getThemeCSSRules.js +0 -0
  88. package/dist/cjs/helpers/getThemeCSSRules.js.map +0 -0
  89. package/dist/cjs/helpers/getThemeCSSRules.native.js +0 -0
  90. package/dist/cjs/helpers/getThemeCSSRules.native.js.map +0 -0
  91. package/dist/cjs/helpers/getVariantExtras.js +2 -2
  92. package/dist/cjs/helpers/getVariantExtras.js.map +2 -2
  93. package/dist/cjs/helpers/insertStyleRule.js +0 -0
  94. package/dist/cjs/helpers/insertStyleRule.js.map +0 -0
  95. package/dist/cjs/helpers/isObj.js +0 -0
  96. package/dist/cjs/helpers/isObj.js.map +0 -0
  97. package/dist/cjs/helpers/isTamaguiComponent.js +0 -0
  98. package/dist/cjs/helpers/isTamaguiComponent.js.map +0 -0
  99. package/dist/cjs/helpers/isTamaguiElement.js +0 -0
  100. package/dist/cjs/helpers/isTamaguiElement.js.map +0 -0
  101. package/dist/cjs/helpers/matchMedia.js +0 -0
  102. package/dist/cjs/helpers/matchMedia.js.map +0 -0
  103. package/dist/cjs/helpers/matchMedia.native.js +0 -0
  104. package/dist/cjs/helpers/matchMedia.native.js.map +0 -0
  105. package/dist/cjs/helpers/mergeProps.js +0 -0
  106. package/dist/cjs/helpers/mergeProps.js.map +0 -0
  107. package/dist/cjs/helpers/mergeTransform.js +0 -0
  108. package/dist/cjs/helpers/mergeTransform.js.map +0 -0
  109. package/dist/cjs/helpers/normalizeColor.js +2 -2
  110. package/dist/cjs/helpers/normalizeColor.js.map +2 -2
  111. package/dist/cjs/helpers/normalizeValueWithProperty.js +0 -0
  112. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +2 -2
  113. package/dist/cjs/helpers/proxyThemeVariables.js +0 -0
  114. package/dist/cjs/helpers/proxyThemeVariables.js.map +0 -0
  115. package/dist/cjs/helpers/pseudoDescriptors.js +0 -0
  116. package/dist/cjs/helpers/pseudoDescriptors.js.map +0 -0
  117. package/dist/cjs/helpers/registerCSSVariable.js +0 -0
  118. package/dist/cjs/helpers/registerCSSVariable.js.map +2 -2
  119. package/dist/cjs/helpers/startTransition.js +0 -0
  120. package/dist/cjs/helpers/startTransition.js.map +0 -0
  121. package/dist/cjs/helpers/themeable.js +0 -0
  122. package/dist/cjs/helpers/themeable.js.map +0 -0
  123. package/dist/cjs/helpers/themes.js +0 -0
  124. package/dist/cjs/helpers/themes.js.map +0 -0
  125. package/dist/cjs/helpers/useAnimationDriver.js +2 -0
  126. package/dist/cjs/{defaultComponentState.js.map → helpers/useAnimationDriver.js.map} +0 -0
  127. package/dist/cjs/helpers/validate.js +0 -0
  128. package/dist/cjs/helpers/validate.js.map +0 -0
  129. package/dist/cjs/helpers/withStaticProperties.js +0 -0
  130. package/dist/cjs/helpers/withStaticProperties.js.map +0 -0
  131. package/dist/cjs/hooks/getThemeUnwrapped.js +2 -0
  132. package/dist/cjs/hooks/getThemeUnwrapped.js.map +2 -2
  133. package/dist/cjs/hooks/useAnimationDriver.js +2 -0
  134. package/dist/{esm/defaultComponentState.js.map → cjs/hooks/useAnimationDriver.js.map} +0 -0
  135. package/dist/cjs/hooks/useConstant.js +3 -0
  136. package/dist/cjs/hooks/useConstant.js.map +2 -2
  137. package/dist/cjs/hooks/useFeatures.js +10 -2
  138. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  139. package/dist/cjs/hooks/useId.js +0 -0
  140. package/dist/cjs/hooks/useId.js.map +0 -0
  141. package/dist/cjs/hooks/useIsMounted.js +0 -0
  142. package/dist/cjs/hooks/useIsMounted.js.map +0 -0
  143. package/dist/cjs/hooks/useIsSSR.js +2 -2
  144. package/dist/cjs/hooks/useIsSSR.js.map +2 -2
  145. package/dist/cjs/hooks/useIsTouchDevice.js +0 -0
  146. package/dist/cjs/hooks/useIsTouchDevice.js.map +0 -0
  147. package/dist/cjs/hooks/useMedia.js +0 -0
  148. package/dist/cjs/hooks/useMedia.js.map +0 -0
  149. package/dist/cjs/hooks/usePressable.js +0 -0
  150. package/dist/cjs/hooks/usePressable.js.map +0 -0
  151. package/dist/cjs/hooks/useSafeRef.js +0 -0
  152. package/dist/cjs/hooks/useSafeRef.js.map +0 -0
  153. package/dist/cjs/{helpers/nativeGestureHandler.native.js → hooks/useServerContext.js} +8 -6
  154. package/dist/cjs/hooks/useServerContext.js.map +7 -0
  155. package/dist/cjs/{ThemeContext.js → hooks/useServerHooks.js} +13 -7
  156. package/dist/cjs/hooks/useServerHooks.js.map +7 -0
  157. package/dist/cjs/hooks/useTheme.js +72 -44
  158. package/dist/cjs/hooks/useTheme.js.map +2 -2
  159. package/dist/cjs/hooks/useUnmountEffect.js +0 -0
  160. package/dist/cjs/hooks/useUnmountEffect.js.map +0 -0
  161. package/dist/cjs/index.js +8 -6
  162. package/dist/cjs/index.js.map +2 -2
  163. package/dist/cjs/{Pressability.native.js → injectStyles.js} +18 -10
  164. package/dist/cjs/injectStyles.js.map +7 -0
  165. package/dist/cjs/insertFont.js +2 -2
  166. package/dist/cjs/insertFont.js.map +2 -2
  167. package/dist/cjs/static.js +0 -0
  168. package/dist/cjs/static.js.map +0 -0
  169. package/dist/cjs/styled.js +11 -1
  170. package/dist/cjs/styled.js.map +2 -2
  171. package/dist/cjs/types-rnw.js +0 -0
  172. package/dist/cjs/types-rnw.js.map +0 -0
  173. package/dist/cjs/types.js +0 -0
  174. package/dist/cjs/types.js.map +1 -1
  175. package/dist/cjs/updateTheme.js +0 -0
  176. package/dist/cjs/updateTheme.js.map +0 -0
  177. package/dist/cjs/vendor/Pressability.js +0 -0
  178. package/dist/cjs/vendor/Pressability.js.map +0 -0
  179. package/dist/cjs/vendor/Pressability.native.js +0 -0
  180. package/dist/cjs/vendor/Pressability.native.js.map +0 -0
  181. package/dist/cjs/views/FontLanguage.js +0 -0
  182. package/dist/cjs/views/FontLanguage.js.map +0 -0
  183. package/dist/cjs/views/FontLanguage.native.js +0 -0
  184. package/dist/cjs/views/FontLanguage.native.js.map +0 -0
  185. package/dist/cjs/views/FontLanguage.types.js +0 -0
  186. package/dist/cjs/views/FontLanguage.types.js.map +0 -0
  187. package/dist/cjs/views/Slot.js +0 -0
  188. package/dist/cjs/views/Slot.js.map +0 -0
  189. package/dist/cjs/views/Stack.js +0 -0
  190. package/dist/cjs/views/Stack.js.map +0 -0
  191. package/dist/cjs/{helpers/createTamaguiProvider.js → views/TamaguiProvider.js} +41 -37
  192. package/dist/cjs/views/TamaguiProvider.js.map +7 -0
  193. package/dist/cjs/views/Text.js +0 -0
  194. package/dist/cjs/views/Text.js.map +0 -0
  195. package/dist/cjs/views/Theme.js +4 -3
  196. package/dist/cjs/views/Theme.js.map +2 -2
  197. package/dist/cjs/views/ThemeInverse.js +0 -0
  198. package/dist/cjs/views/ThemeInverse.js.map +0 -0
  199. package/dist/cjs/views/ThemeProvider.js +10 -6
  200. package/dist/cjs/views/ThemeProvider.js.map +2 -2
  201. package/dist/cjs/views/ThemeReset.js +0 -0
  202. package/dist/cjs/views/ThemeReset.js.map +0 -0
  203. package/dist/esm/Tamagui.js +1 -1
  204. package/dist/esm/Tamagui.js.map +1 -1
  205. package/dist/esm/addTheme.js +27 -21
  206. package/dist/esm/addTheme.js.map +2 -2
  207. package/dist/esm/conf.js +0 -0
  208. package/dist/esm/conf.js.map +0 -0
  209. package/dist/esm/config.js +43 -0
  210. package/dist/esm/config.js.map +7 -0
  211. package/dist/esm/constants/constants.js +0 -0
  212. package/dist/esm/constants/constants.js.map +0 -0
  213. package/dist/esm/constants/platform.js +5 -1
  214. package/dist/esm/constants/platform.js.map +2 -2
  215. package/dist/esm/constants/platform.native.js +28 -0
  216. package/dist/esm/constants/platform.native.js.map +7 -0
  217. package/dist/esm/contexts/ButtonInsideButtonContext.js +0 -0
  218. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +0 -0
  219. package/dist/esm/contexts/FontLanguageContext.js +0 -0
  220. package/dist/esm/contexts/FontLanguageContext.js.map +0 -0
  221. package/dist/esm/contexts/TextAncestorContext.js +0 -0
  222. package/dist/esm/contexts/TextAncestorContext.js.map +0 -0
  223. package/dist/esm/contexts/ThemeContext.js +0 -0
  224. package/dist/esm/contexts/ThemeContext.js.map +0 -0
  225. package/dist/esm/createComponent.js +77 -73
  226. package/dist/esm/createComponent.js.map +2 -2
  227. package/dist/esm/createComponent.server.js +408 -0
  228. package/dist/esm/createComponent.server.js.map +7 -0
  229. package/dist/esm/createFont.js +0 -0
  230. package/dist/esm/createFont.js.map +0 -0
  231. package/dist/esm/createShorthands.js +0 -0
  232. package/dist/esm/createShorthands.js.map +0 -0
  233. package/dist/esm/createTamagui.js +30 -31
  234. package/dist/esm/createTamagui.js.map +2 -2
  235. package/dist/esm/createTheme.js +0 -0
  236. package/dist/esm/createTheme.js.map +0 -0
  237. package/dist/esm/createTokens.js +0 -0
  238. package/dist/esm/createTokens.js.map +0 -0
  239. package/dist/esm/createVariable.js +19 -33
  240. package/dist/esm/createVariable.js.map +2 -2
  241. package/dist/esm/createVariables.js +5 -2
  242. package/dist/esm/createVariables.js.map +2 -2
  243. package/dist/esm/helpers/RNComponents.js +11 -8
  244. package/dist/esm/helpers/RNComponents.js.map +2 -2
  245. package/dist/esm/helpers/ThemeManager.js +6 -8
  246. package/dist/esm/helpers/ThemeManager.js.map +2 -2
  247. package/dist/esm/helpers/areEqualSets.js +0 -0
  248. package/dist/esm/helpers/areEqualSets.js.map +0 -0
  249. package/dist/esm/helpers/assignNativePropsToWeb.js +0 -1
  250. package/dist/esm/helpers/assignNativePropsToWeb.js.map +2 -2
  251. package/dist/esm/helpers/assignNativePropsToWeb.native.js +0 -0
  252. package/dist/esm/helpers/assignNativePropsToWeb.native.js.map +0 -0
  253. package/dist/esm/helpers/calc.js +0 -0
  254. package/dist/esm/helpers/calc.js.map +0 -0
  255. package/dist/esm/helpers/createMediaStyle.js +0 -0
  256. package/dist/esm/helpers/createMediaStyle.js.map +0 -0
  257. package/dist/esm/helpers/createPropMapper.js +2 -2
  258. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  259. package/dist/esm/helpers/createShallowUpdate.js +0 -0
  260. package/dist/esm/helpers/createShallowUpdate.js.map +0 -0
  261. package/dist/esm/helpers/cssHash.js +0 -0
  262. package/dist/esm/helpers/cssHash.js.map +0 -0
  263. package/dist/esm/helpers/expandStyle.js +0 -0
  264. package/dist/esm/helpers/expandStyle.js.map +0 -0
  265. package/dist/esm/helpers/expandStyles.js +3 -3
  266. package/dist/esm/helpers/expandStyles.js.map +2 -2
  267. package/dist/esm/helpers/extendStaticConfig.js +0 -0
  268. package/dist/esm/helpers/extendStaticConfig.js.map +0 -0
  269. package/dist/esm/helpers/fixNativeShadow.js +0 -0
  270. package/dist/esm/helpers/fixNativeShadow.js.map +0 -0
  271. package/dist/esm/helpers/getAnimationDriver.js +8 -0
  272. package/dist/esm/helpers/getAnimationDriver.js.map +7 -0
  273. package/dist/esm/helpers/getExpandedShorthands.js +2 -2
  274. package/dist/esm/helpers/getExpandedShorthands.js.map +2 -2
  275. package/dist/esm/helpers/getFont.js +1 -1
  276. package/dist/esm/helpers/getFont.js.map +2 -2
  277. package/dist/esm/helpers/getFontLanguage.js +0 -0
  278. package/dist/esm/helpers/getFontLanguage.js.map +0 -0
  279. package/dist/esm/helpers/getSize.js +1 -1
  280. package/dist/esm/helpers/getSize.js.map +1 -1
  281. package/dist/esm/helpers/getSplitStyles.js +12 -13
  282. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  283. package/dist/esm/helpers/getStackSize.js +0 -0
  284. package/dist/esm/helpers/getStackSize.js.map +0 -0
  285. package/dist/esm/helpers/getStylesAtomic.js +5 -3
  286. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  287. package/dist/esm/helpers/getStylesAtomic.native.js +0 -0
  288. package/dist/esm/helpers/getStylesAtomic.native.js.map +0 -0
  289. package/dist/esm/helpers/getThemeCSSRules.js +0 -0
  290. package/dist/esm/helpers/getThemeCSSRules.js.map +0 -0
  291. package/dist/esm/helpers/getThemeCSSRules.native.js +0 -0
  292. package/dist/esm/helpers/getThemeCSSRules.native.js.map +0 -0
  293. package/dist/esm/helpers/getVariantExtras.js +1 -1
  294. package/dist/esm/helpers/getVariantExtras.js.map +1 -1
  295. package/dist/esm/helpers/insertStyleRule.js +0 -0
  296. package/dist/esm/helpers/insertStyleRule.js.map +0 -0
  297. package/dist/esm/helpers/isObj.js +0 -0
  298. package/dist/esm/helpers/isObj.js.map +0 -0
  299. package/dist/esm/helpers/isTamaguiComponent.js +0 -0
  300. package/dist/esm/helpers/isTamaguiComponent.js.map +0 -0
  301. package/dist/esm/helpers/isTamaguiElement.js +0 -0
  302. package/dist/esm/helpers/isTamaguiElement.js.map +0 -0
  303. package/dist/esm/helpers/matchMedia.js +0 -0
  304. package/dist/esm/helpers/matchMedia.js.map +0 -0
  305. package/dist/esm/helpers/matchMedia.native.js +0 -0
  306. package/dist/esm/helpers/matchMedia.native.js.map +0 -0
  307. package/dist/esm/helpers/mergeProps.js +0 -0
  308. package/dist/esm/helpers/mergeProps.js.map +0 -0
  309. package/dist/esm/helpers/mergeTransform.js +0 -0
  310. package/dist/esm/helpers/mergeTransform.js.map +0 -0
  311. package/dist/esm/helpers/normalizeColor.js +1 -1
  312. package/dist/esm/helpers/normalizeColor.js.map +1 -1
  313. package/dist/esm/helpers/normalizeValueWithProperty.js +0 -0
  314. package/dist/esm/helpers/normalizeValueWithProperty.js.map +2 -2
  315. package/dist/esm/helpers/proxyThemeVariables.js +0 -0
  316. package/dist/esm/helpers/proxyThemeVariables.js.map +0 -0
  317. package/dist/esm/helpers/pseudoDescriptors.js +0 -0
  318. package/dist/esm/helpers/pseudoDescriptors.js.map +0 -0
  319. package/dist/esm/helpers/registerCSSVariable.js +0 -0
  320. package/dist/esm/helpers/registerCSSVariable.js.map +2 -2
  321. package/dist/esm/helpers/startTransition.js +0 -0
  322. package/dist/esm/helpers/startTransition.js.map +0 -0
  323. package/dist/esm/helpers/themeable.js +0 -0
  324. package/dist/esm/helpers/themeable.js.map +0 -0
  325. package/dist/esm/helpers/themes.js +0 -0
  326. package/dist/esm/helpers/themes.js.map +0 -0
  327. package/dist/esm/helpers/useAnimationDriver.js +1 -0
  328. package/dist/esm/helpers/useAnimationDriver.js.map +7 -0
  329. package/dist/esm/helpers/validate.js +0 -0
  330. package/dist/esm/helpers/validate.js.map +0 -0
  331. package/dist/esm/helpers/withStaticProperties.js +0 -0
  332. package/dist/esm/helpers/withStaticProperties.js.map +0 -0
  333. package/dist/esm/hooks/getThemeUnwrapped.js +2 -0
  334. package/dist/esm/hooks/getThemeUnwrapped.js.map +2 -2
  335. package/dist/esm/hooks/useAnimationDriver.js +1 -0
  336. package/dist/esm/hooks/useAnimationDriver.js.map +7 -0
  337. package/dist/esm/hooks/useConstant.js +4 -1
  338. package/dist/esm/hooks/useConstant.js.map +2 -2
  339. package/dist/esm/hooks/useFeatures.js +9 -1
  340. package/dist/esm/hooks/useFeatures.js.map +2 -2
  341. package/dist/esm/hooks/useId.js +0 -0
  342. package/dist/esm/hooks/useId.js.map +0 -0
  343. package/dist/esm/hooks/useIsMounted.js +0 -0
  344. package/dist/esm/hooks/useIsMounted.js.map +0 -0
  345. package/dist/esm/hooks/useIsSSR.js +4 -4
  346. package/dist/esm/hooks/useIsSSR.js.map +2 -2
  347. package/dist/esm/hooks/useIsTouchDevice.js +0 -0
  348. package/dist/esm/hooks/useIsTouchDevice.js.map +0 -0
  349. package/dist/esm/hooks/useMedia.js +0 -0
  350. package/dist/esm/hooks/useMedia.js.map +0 -0
  351. package/dist/esm/hooks/usePressable.js +0 -0
  352. package/dist/esm/hooks/usePressable.js.map +0 -0
  353. package/dist/esm/hooks/useSafeRef.js +0 -0
  354. package/dist/esm/hooks/useSafeRef.js.map +0 -0
  355. package/dist/esm/hooks/useServerContext.js +4 -0
  356. package/dist/esm/hooks/useServerContext.js.map +7 -0
  357. package/dist/esm/hooks/useServerHooks.js +11 -0
  358. package/dist/esm/hooks/useServerHooks.js.map +7 -0
  359. package/dist/esm/hooks/useTheme.js +73 -45
  360. package/dist/esm/hooks/useTheme.js.map +2 -2
  361. package/dist/esm/hooks/useUnmountEffect.js +0 -0
  362. package/dist/esm/hooks/useUnmountEffect.js.map +0 -0
  363. package/dist/esm/index.js +3 -1
  364. package/dist/esm/index.js.map +2 -2
  365. package/dist/esm/injectStyles.js +16 -0
  366. package/dist/esm/injectStyles.js.map +7 -0
  367. package/dist/esm/insertFont.js +1 -1
  368. package/dist/esm/insertFont.js.map +1 -1
  369. package/dist/esm/static.js +0 -0
  370. package/dist/esm/static.js.map +0 -0
  371. package/dist/esm/styled.js +11 -1
  372. package/dist/esm/styled.js.map +2 -2
  373. package/dist/esm/types-rnw.js +0 -0
  374. package/dist/esm/types-rnw.js.map +0 -0
  375. package/dist/esm/types.js +0 -0
  376. package/dist/esm/types.js.map +0 -0
  377. package/dist/esm/updateTheme.js +0 -0
  378. package/dist/esm/updateTheme.js.map +0 -0
  379. package/dist/esm/vendor/Pressability.js +0 -0
  380. package/dist/esm/vendor/Pressability.js.map +0 -0
  381. package/dist/esm/vendor/Pressability.native.js +0 -0
  382. package/dist/esm/vendor/Pressability.native.js.map +0 -0
  383. package/dist/esm/views/FontLanguage.js +0 -0
  384. package/dist/esm/views/FontLanguage.js.map +0 -0
  385. package/dist/esm/views/FontLanguage.native.js +0 -0
  386. package/dist/esm/views/FontLanguage.native.js.map +0 -0
  387. package/dist/esm/views/FontLanguage.types.js +0 -0
  388. package/dist/esm/views/FontLanguage.types.js.map +0 -0
  389. package/dist/esm/views/Slot.js +0 -0
  390. package/dist/esm/views/Slot.js.map +0 -0
  391. package/dist/esm/views/Stack.js +0 -0
  392. package/dist/esm/views/Stack.js.map +0 -0
  393. package/dist/esm/views/TamaguiProvider.js +46 -0
  394. package/dist/esm/views/TamaguiProvider.js.map +7 -0
  395. package/dist/esm/views/Text.js +0 -0
  396. package/dist/esm/views/Text.js.map +0 -0
  397. package/dist/esm/views/Theme.js +4 -3
  398. package/dist/esm/views/Theme.js.map +2 -2
  399. package/dist/esm/views/ThemeInverse.js +0 -0
  400. package/dist/esm/views/ThemeInverse.js.map +0 -0
  401. package/dist/esm/views/ThemeProvider.js +10 -6
  402. package/dist/esm/views/ThemeProvider.js.map +2 -2
  403. package/dist/esm/views/ThemeReset.js +0 -0
  404. package/dist/esm/views/ThemeReset.js.map +0 -0
  405. package/package.json +36 -14
  406. package/src/Tamagui.ts +44 -0
  407. package/src/addTheme.ts +66 -0
  408. package/src/config.ts +38 -0
  409. package/src/constants/constants.ts +15 -0
  410. package/src/constants/platform.native.ts +14 -0
  411. package/src/constants/platform.ts +24 -0
  412. package/src/contexts/ButtonInsideButtonContext.tsx +3 -0
  413. package/src/contexts/FontLanguageContext.tsx +5 -0
  414. package/src/contexts/TextAncestorContext.tsx +10 -0
  415. package/src/contexts/ThemeContext.tsx +5 -0
  416. package/src/createComponent.tsx +1338 -0
  417. package/src/createFont.ts +26 -0
  418. package/src/createShorthands.ts +5 -0
  419. package/src/createTamagui.ts +232 -0
  420. package/src/createTheme.ts +13 -0
  421. package/src/createTokens.ts +35 -0
  422. package/src/createVariable.ts +77 -0
  423. package/src/createVariables.ts +42 -0
  424. package/src/helpers/RNComponents.tsx +14 -0
  425. package/src/helpers/ThemeManager.tsx +229 -0
  426. package/src/helpers/areEqualSets.tsx +9 -0
  427. package/src/helpers/assignNativePropsToWeb.native.tsx +1 -0
  428. package/src/helpers/assignNativePropsToWeb.tsx +178 -0
  429. package/src/helpers/calc.ts +65 -0
  430. package/src/helpers/createMediaStyle.ts +48 -0
  431. package/src/helpers/createPropMapper.ts +457 -0
  432. package/src/helpers/createShallowUpdate.tsx +20 -0
  433. package/src/helpers/cssHash.ts +28 -0
  434. package/src/helpers/expandStyle.ts +81 -0
  435. package/src/helpers/expandStyles.ts +105 -0
  436. package/src/helpers/extendStaticConfig.ts +76 -0
  437. package/src/helpers/fixNativeShadow.tsx +2 -0
  438. package/src/helpers/getAnimationDriver.tsx +5 -0
  439. package/src/helpers/getExpandedShorthands.ts +15 -0
  440. package/src/helpers/getFont.tsx +40 -0
  441. package/src/helpers/getFontLanguage.ts +2 -0
  442. package/src/helpers/getSize.ts +22 -0
  443. package/src/helpers/getSplitStyles.tsx +685 -0
  444. package/src/helpers/getStackSize.ts +22 -0
  445. package/src/helpers/getStylesAtomic.native.ts +3 -0
  446. package/src/helpers/getStylesAtomic.ts +292 -0
  447. package/src/helpers/getThemeCSSRules.native.ts +3 -0
  448. package/src/helpers/getThemeCSSRules.ts +105 -0
  449. package/src/helpers/getVariantExtras.tsx +83 -0
  450. package/src/helpers/insertStyleRule.tsx +150 -0
  451. package/src/helpers/isObj.ts +1 -0
  452. package/src/helpers/isTamaguiComponent.tsx +15 -0
  453. package/src/helpers/isTamaguiElement.tsx +14 -0
  454. package/src/helpers/matchMedia.native.ts +6 -0
  455. package/src/helpers/matchMedia.ts +16 -0
  456. package/src/helpers/mergeProps.ts +56 -0
  457. package/src/helpers/mergeTransform.ts +14 -0
  458. package/src/helpers/normalizeColor.ts +53 -0
  459. package/src/helpers/normalizeValueWithProperty.ts +78 -0
  460. package/src/helpers/proxyThemeVariables.tsx +13 -0
  461. package/src/helpers/pseudoDescriptors.ts +18 -0
  462. package/src/helpers/registerCSSVariable.ts +11 -0
  463. package/src/helpers/startTransition.ts +4 -0
  464. package/src/helpers/themeable.tsx +45 -0
  465. package/src/helpers/themes.ts +69 -0
  466. package/src/helpers/validate.ts +80 -0
  467. package/src/helpers/withStaticProperties.tsx +7 -0
  468. package/src/hooks/getThemeUnwrapped.tsx +8 -0
  469. package/src/hooks/useConstant.tsx +19 -0
  470. package/src/hooks/useFeatures.tsx +289 -0
  471. package/src/hooks/useId.tsx +1 -0
  472. package/src/hooks/useIsMounted.ts +17 -0
  473. package/src/hooks/useIsSSR.tsx +20 -0
  474. package/src/hooks/useIsTouchDevice.tsx +21 -0
  475. package/src/hooks/useMedia.tsx +167 -0
  476. package/src/hooks/usePressable.tsx +9 -0
  477. package/src/hooks/useSafeRef.ts +50 -0
  478. package/src/hooks/useServerHooks.tsx +13 -0
  479. package/src/hooks/useTheme.tsx +264 -0
  480. package/src/hooks/useUnmountEffect.ts +5 -0
  481. package/src/index.ts +80 -0
  482. package/src/injectStyles.ts +20 -0
  483. package/src/insertFont.ts +69 -0
  484. package/src/static.ts +15 -0
  485. package/src/styled.tsx +149 -0
  486. package/src/types-rnw.tsx +162 -0
  487. package/src/types.tsx +1267 -0
  488. package/src/updateTheme.ts +23 -0
  489. package/src/vendor/Pressability.native.tsx +3 -0
  490. package/src/vendor/Pressability.tsx +2 -0
  491. package/src/views/FontLanguage.native.tsx +9 -0
  492. package/src/views/FontLanguage.tsx +18 -0
  493. package/src/views/FontLanguage.types.ts +13 -0
  494. package/src/views/Slot.tsx +152 -0
  495. package/src/views/Stack.tsx +24 -0
  496. package/src/views/TamaguiProvider.tsx +57 -0
  497. package/src/views/Text.tsx +79 -0
  498. package/src/views/Theme.tsx +72 -0
  499. package/src/views/ThemeInverse.tsx +33 -0
  500. package/src/views/ThemeProvider.tsx +62 -0
  501. package/src/views/ThemeReset.tsx +43 -0
  502. package/types/conf.d.ts +1 -1
  503. package/types/config.d.ts +27 -0
  504. package/types/constants/platform.d.ts +3 -2
  505. package/types/constants/platform.native.d.ts +13 -0
  506. package/types/createComponent.server.d.ts +36 -0
  507. package/types/createTamagui.d.ts +1 -1
  508. package/types/createTheme.d.ts +1 -1
  509. package/types/createVariable.d.ts +15 -12
  510. package/types/helpers/RNComponents.d.ts +1 -1
  511. package/types/helpers/ThemeManager.d.ts +2 -8
  512. package/types/helpers/getAnimationDriver.d.ts +6 -0
  513. package/types/helpers/registerCSSVariable.d.ts +2 -2
  514. package/types/helpers/useAnimationDriver.d.ts +1 -0
  515. package/types/hooks/useAnimationDriver.d.ts +1 -0
  516. package/types/hooks/useServerContext.d.ts +2 -0
  517. package/types/hooks/useServerHooks.d.ts +4 -0
  518. package/types/hooks/useTheme.d.ts +5 -21
  519. package/types/index.d.ts +3 -1
  520. package/types/injectStyles.d.ts +7 -0
  521. package/types/types.d.ts +24 -1
  522. package/types/views/TamaguiProvider.d.ts +4 -0
  523. package/types/views/ThemeProvider.d.ts +0 -1
  524. package/dist/cjs/Pressability.js.map +0 -7
  525. package/dist/cjs/Pressability.native.js.map +0 -7
  526. package/dist/cjs/ThemeContext.js.map +0 -7
  527. package/dist/cjs/ThemeManager.js +0 -211
  528. package/dist/cjs/ThemeManager.js.map +0 -7
  529. package/dist/cjs/defaultComponentState.js +0 -2
  530. package/dist/cjs/ensureThemeVariable.js +0 -152
  531. package/dist/cjs/ensureThemeVariable.js.map +0 -7
  532. package/dist/cjs/helpers/createTamaguiProvider.js.map +0 -7
  533. package/dist/cjs/helpers/ensureThemeVariable.js +0 -152
  534. package/dist/cjs/helpers/ensureThemeVariable.js.map +0 -7
  535. package/dist/cjs/helpers/nativeGestureHandler.native.js.map +0 -7
  536. package/dist/cjs/loadTheme.js +0 -64
  537. package/dist/cjs/loadTheme.js.map +0 -7
  538. package/dist/cjs/views/TextAncestorContext.js +0 -44
  539. package/dist/cjs/views/TextAncestorContext.js.map +0 -7
  540. package/dist/esm/Pressability.js +0 -7
  541. package/dist/esm/Pressability.js.map +0 -7
  542. package/dist/esm/Pressability.native.js +0 -7
  543. package/dist/esm/Pressability.native.js.map +0 -7
  544. package/dist/esm/ThemeContext.js +0 -6
  545. package/dist/esm/ThemeContext.js.map +0 -7
  546. package/dist/esm/ThemeManager.js +0 -185
  547. package/dist/esm/ThemeManager.js.map +0 -7
  548. package/dist/esm/defaultComponentState.js +0 -1
  549. package/dist/esm/ensureThemeVariable.js +0 -125
  550. package/dist/esm/ensureThemeVariable.js.map +0 -7
  551. package/dist/esm/helpers/createTamaguiProvider.js +0 -42
  552. package/dist/esm/helpers/createTamaguiProvider.js.map +0 -7
  553. package/dist/esm/helpers/ensureThemeVariable.js +0 -125
  554. package/dist/esm/helpers/ensureThemeVariable.js.map +0 -7
  555. package/dist/esm/helpers/nativeGestureHandler.native.js +0 -2
  556. package/dist/esm/helpers/nativeGestureHandler.native.js.map +0 -7
  557. package/dist/esm/loadTheme.js +0 -40
  558. package/dist/esm/loadTheme.js.map +0 -7
  559. package/dist/esm/views/TextAncestorContext.js +0 -15
  560. package/dist/esm/views/TextAncestorContext.js.map +0 -7
  561. package/types/helpers/createTamaguiProvider.d.ts +0 -3
@@ -28,21 +28,26 @@ __export(useTheme_exports, {
28
28
  module.exports = __toCommonJS(useTheme_exports);
29
29
  var import_use_force_update = require("@tamagui/use-force-update");
30
30
  var import_react = require("react");
31
- var import_conf = require("../conf");
31
+ var import_config = require("../config");
32
32
  var import_platform = require("../constants/platform");
33
33
  var import_ThemeContext = require("../contexts/ThemeContext");
34
34
  var import_areEqualSets = require("../helpers/areEqualSets");
35
35
  var import_ThemeManager = require("../helpers/ThemeManager");
36
36
  var import_getThemeUnwrapped = require("./getThemeUnwrapped");
37
37
  var import_useConstant = require("./useConstant");
38
+ var import_useServerHooks = require("./useServerHooks");
38
39
  const useTheme = (themeName, componentName, props, forceUpdate) => {
40
+ if (import_platform.isRSC) {
41
+ const config = (0, import_config.getConfig)();
42
+ return getThemeProxied(config.themes[config.defaultTheme], config.defaultTheme);
43
+ }
39
44
  const { name, theme, themes, themeManager, className } = useChangeThemeEffect(themeName, componentName, props, forceUpdate);
40
45
  if (process.env.NODE_ENV === "development") {
41
46
  if ((props == null ? void 0 : props.debug) === "verbose") {
42
47
  console.log(" \u{1F539} useTheme", { themeName, componentName, name, className });
43
48
  }
44
49
  }
45
- const state = (0, import_react.useRef)();
50
+ const state = (0, import_useServerHooks.useServerRef)();
46
51
  if (!state.current) {
47
52
  state.current = {
48
53
  uuid: {},
@@ -64,52 +69,54 @@ const useTheme = (themeName, componentName, props, forceUpdate) => {
64
69
  if (process.env.NODE_ENV === "development") {
65
70
  console.warn("No theme with name", themeName);
66
71
  }
67
- return themes[(0, import_conf.getConfig)().defaultTheme || "light"];
72
+ return themes[(0, import_config.getConfig)().defaultTheme || "light"];
68
73
  }
69
74
  return (0, import_react.useMemo)(() => {
70
- return new Proxy(theme, {
71
- has(_, key) {
72
- if (typeof key === "string") {
73
- if (key[0] === "$") {
74
- key = key.slice(1);
75
- }
76
- }
77
- return Reflect.has(theme, key);
78
- },
79
- get(_, key) {
80
- if (key === import_getThemeUnwrapped.GetThemeUnwrapped) {
81
- return theme;
82
- }
83
- if (key === GetThemeManager) {
84
- return themeManager;
85
- }
86
- if (key === "name") {
87
- return name;
88
- }
89
- if (key === "className") {
90
- return className;
91
- }
92
- if (!name || key === "__proto__" || typeof key === "symbol" || key === "$typeof") {
93
- return Reflect.get(_, key);
94
- }
95
- if (!themeManager) {
96
- console.error("No themeManager");
97
- return;
98
- }
99
- if (key[0] === "$") {
100
- key = key.slice(1);
101
- }
75
+ return getThemeProxied(theme, name, className, themeManager, state, debugProp);
76
+ }, [theme, name, themeManager, className, debugProp]);
77
+ };
78
+ function getThemeProxied(theme, name, className, themeManager, state, debugProp) {
79
+ return new Proxy(theme, {
80
+ has(_, key) {
81
+ if (typeof key === "string" && key[0] === "$") {
82
+ key = key.slice(1);
83
+ }
84
+ return Reflect.has(theme, key);
85
+ },
86
+ get(_, key) {
87
+ if (key === import_getThemeUnwrapped.GetThemeUnwrapped) {
88
+ return theme;
89
+ }
90
+ if (key === GetThemeManager) {
91
+ return themeManager;
92
+ }
93
+ if (key === "name") {
94
+ return name;
95
+ }
96
+ if (key === "className") {
97
+ return className;
98
+ }
99
+ if (!name || key === "__proto__" || typeof key === "symbol" || key === "$typeof") {
100
+ return Reflect.get(_, key);
101
+ }
102
+ if (key[0] === "$") {
103
+ key = key.slice(1);
104
+ }
105
+ if (!themeManager) {
106
+ return theme[key];
107
+ }
108
+ if (state) {
102
109
  if (state.current.isRendering && !state.current.keys.has(key)) {
103
110
  state.current.keys.add(key);
104
111
  if (process.env.NODE_ENV === "development" && debugProp === "verbose") {
105
112
  console.log(" \u{1F538} tracking theme", key);
106
113
  }
107
114
  }
108
- return themeManager.getValue(key);
109
115
  }
110
- });
111
- }, [name, theme, componentName, className, debugProp]);
112
- };
116
+ return themeManager.getValue(key);
117
+ }
118
+ });
119
+ }
113
120
  const GetThemeManager = Symbol();
114
121
  const getThemeManager = (theme) => {
115
122
  if (!theme)
@@ -117,6 +124,10 @@ const getThemeManager = (theme) => {
117
124
  return theme[GetThemeManager];
118
125
  };
119
126
  const useThemeName = (opts) => {
127
+ if (import_platform.isRSC) {
128
+ const config = (0, import_config.getConfig)();
129
+ return config.defaultTheme || "light";
130
+ }
120
131
  const parent = (0, import_react.useContext)(import_ThemeManager.ThemeManagerContext);
121
132
  const [name, setName] = (0, import_react.useState)((parent == null ? void 0 : parent.name) || "");
122
133
  (0, import_platform.useIsomorphicLayoutEffect)(() => {
@@ -137,19 +148,36 @@ const useDefaultThemeName = () => {
137
148
  };
138
149
  const activeThemeManagers = /* @__PURE__ */ new Set();
139
150
  const useChangeThemeEffect = (name, componentName, props, forceUpdateProp) => {
151
+ const { themes } = (0, import_config.getConfig)();
152
+ if (import_platform.isRSC) {
153
+ const parentManager2 = new import_ThemeManager.ThemeManager("light", themes.light);
154
+ const next2 = parentManager2.getNextTheme({
155
+ name,
156
+ componentName,
157
+ themes,
158
+ reset: props == null ? void 0 : props.reset
159
+ });
160
+ return {
161
+ ...next2,
162
+ themes,
163
+ themeManager: null
164
+ };
165
+ }
140
166
  const debug = props && props["debug"];
141
167
  const parentManager = (0, import_react.useContext)(import_ThemeManager.ThemeManagerContext) || import_ThemeManager.emptyManager;
142
- const { themes } = (0, import_react.useContext)(import_ThemeContext.ThemeContext);
143
168
  const reset = (props == null ? void 0 : props.reset) || false;
144
- const getThemeProps = { name, componentName, themes, reset };
169
+ const getThemeProps = {
170
+ name,
171
+ componentName,
172
+ themes,
173
+ reset
174
+ };
145
175
  const next = parentManager.getNextTheme(getThemeProps, debug);
146
176
  const forceUpdate = forceUpdateProp || (0, import_use_force_update.useForceUpdate)();
147
177
  const themeManager = (0, import_useConstant.useConstant)(() => {
148
- if (!next)
149
- return null;
150
178
  return new import_ThemeManager.ThemeManager(next.name, next.theme, parentManager, reset);
151
179
  });
152
- if (!import_platform.isWeb || typeof document !== "undefined") {
180
+ if (!import_platform.isSSR) {
153
181
  (0, import_react.useLayoutEffect)(() => {
154
182
  if (!themeManager)
155
183
  return;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useTheme.tsx"],
4
- "sourcesContent": ["import { useForceUpdate } from '@tamagui/use-force-update'\nimport React, { useContext, useLayoutEffect, useMemo, useRef, useState } from 'react'\n\nimport { getConfig } from '../conf'\nimport { isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { ThemeContext } from '../contexts/ThemeContext'\nimport { areEqualSets } from '../helpers/areEqualSets'\nimport {\n GetNextThemeProps,\n ThemeManager,\n ThemeManagerContext,\n emptyManager,\n} from '../helpers/ThemeManager'\nimport { ThemeName, ThemeObject } from '../types'\nimport { GetThemeUnwrapped } from './getThemeUnwrapped'\nimport { useConstant } from './useConstant'\n\nexport type ThemeProps = {\n className?: string\n disableThemeClass?: boolean\n name: Exclude<ThemeName, number> | null\n componentName?: string\n children?: any\n reset?: boolean\n debug?: boolean | 'verbose'\n}\n\ntype UseThemeState = {\n uuid: Object\n keys: Set<string>\n isRendering: boolean\n}\n\nexport const useTheme = (\n themeName?: string | null,\n componentName?: string,\n props?: ThemeProps,\n forceUpdate?: any\n): ThemeObject => {\n const { name, theme, themes, themeManager, className } = useChangeThemeEffect(\n themeName,\n componentName,\n props,\n forceUpdate\n )\n\n if (process.env.NODE_ENV === 'development') {\n if (props?.debug === 'verbose') {\n // eslint-disable-next-line no-console\n console.log(' \uD83D\uDD39 useTheme', { themeName, componentName, name, className })\n }\n }\n\n const state = useRef() as React.MutableRefObject<UseThemeState>\n if (!state.current) {\n state.current = {\n uuid: {},\n keys: new Set(),\n isRendering: true,\n }\n }\n state.current.isRendering = true\n\n // track usage\n useIsomorphicLayoutEffect(() => {\n const st = state.current\n st.isRendering = false\n const cur = themeManager?.keys.get(st.uuid)\n if (!cur || !areEqualSets(st.keys, cur)) {\n themeManager?.track(st.uuid, st.keys)\n }\n })\n\n const debugProp = props && props['debug']\n\n if (!theme) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('No theme with name', themeName)\n }\n return themes[getConfig().defaultTheme || 'light']\n }\n\n return useMemo(() => {\n return new Proxy(theme, {\n has(_, key) {\n if (typeof key === 'string') {\n if (key[0] === '$') {\n key = key.slice(1)\n }\n }\n return Reflect.has(theme, key)\n },\n get(_, key) {\n if (key === GetThemeUnwrapped) {\n return theme\n }\n if (key === GetThemeManager) {\n return themeManager\n }\n if (key === 'name') {\n return name\n }\n if (key === 'className') {\n return className\n }\n if (!name || key === '__proto__' || typeof key === 'symbol' || key === '$typeof') {\n return Reflect.get(_, key)\n }\n if (!themeManager) {\n console.error('No themeManager')\n return\n }\n // auto convert variables to plain\n if (key[0] === '$') {\n key = key.slice(1)\n }\n if (state.current.isRendering && !state.current.keys.has(key)) {\n state.current.keys.add(key)\n if (process.env.NODE_ENV === 'development' && debugProp === 'verbose') {\n console.log(' \uD83D\uDD38 tracking theme', key)\n }\n }\n return themeManager.getValue(key)\n },\n })\n }, [name, theme, componentName, className, debugProp])\n}\n\nconst GetThemeManager = Symbol()\n\nexport const getThemeManager = (theme: any): ThemeManager | undefined => {\n if (!theme) return\n return theme[GetThemeManager]\n}\n\nexport const useThemeName = (opts?: { parent?: true }) => {\n const parent = useContext(ThemeManagerContext)\n const [name, setName] = useState(parent?.name || '')\n\n useIsomorphicLayoutEffect(() => {\n if (!parent) return\n return parent.onChangeTheme((next, manager) => {\n const name = opts?.parent ? manager.parentName || next : next\n if (!name) return\n setName(name)\n })\n }, [parent])\n\n return name\n}\n\nexport const useDefaultThemeName = () => {\n return useContext(ThemeContext)?.defaultTheme\n}\n\nexport const activeThemeManagers = new Set<ThemeManager>()\n\nexport const useChangeThemeEffect = (\n name?: string | null,\n componentName?: string,\n props?: ThemeProps,\n forceUpdateProp?: any\n) => {\n const debug = props && props['debug']\n const parentManager = useContext(ThemeManagerContext) || emptyManager\n const { themes } = useContext(ThemeContext)!\n const reset = props?.reset || false\n const getThemeProps: GetNextThemeProps = { name, componentName, themes, reset }\n const next = parentManager.getNextTheme(getThemeProps, debug)\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const forceUpdate = forceUpdateProp || useForceUpdate()\n\n const themeManager = useConstant<ThemeManager | null>(() => {\n if (!next) return null\n return new ThemeManager(next.name, next.theme, parentManager, reset)\n })\n\n // if not SSR\n if (!isWeb || typeof document !== 'undefined') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useLayoutEffect(() => {\n if (!themeManager) return\n\n activeThemeManagers.add(themeManager)\n\n if (next?.name) {\n themeManager.update(next)\n }\n\n const disposeParentOnChange = parentManager.onChangeTheme(() => {\n const next = parentManager.getNextTheme(getThemeProps, debug)\n if (!next) return\n if (themeManager.update(next)) {\n forceUpdate()\n }\n })\n\n return () => {\n activeThemeManagers.delete(themeManager)\n disposeParentOnChange()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [themes, name, componentName, debug, next?.name])\n }\n\n return {\n ...(parentManager && {\n name: parentManager.name,\n theme: parentManager.theme,\n }),\n ...next,\n themes,\n themeManager,\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { useForceUpdate } from '@tamagui/use-force-update'\nimport React, { useContext, useLayoutEffect, useMemo, useRef, useState } from 'react'\n\nimport { getConfig } from '../config'\nimport { isRSC, isSSR, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { ThemeContext } from '../contexts/ThemeContext'\nimport { areEqualSets } from '../helpers/areEqualSets'\nimport {\n GetNextThemeProps,\n ThemeManager,\n ThemeManagerContext,\n emptyManager,\n} from '../helpers/ThemeManager'\nimport { ThemeName, ThemeObject } from '../types'\nimport { GetThemeUnwrapped } from './getThemeUnwrapped'\nimport { useConstant } from './useConstant'\nimport { useServerRef } from './useServerHooks'\n\nexport interface ThemeProps {\n className?: string\n disableThemeClass?: boolean\n name: Exclude<ThemeName, number> | null\n componentName?: string\n children?: any\n reset?: boolean\n debug?: boolean | 'verbose'\n}\n\ninterface UseThemeState {\n uuid: Object\n keys: Set<string>\n isRendering: boolean\n}\n\nexport const useTheme = (\n themeName?: string | null,\n componentName?: string,\n props?: ThemeProps,\n forceUpdate?: any\n): ThemeObject => {\n // TODO this can use useChangeThemeEffect almost ready\n if (isRSC) {\n const config = getConfig()\n // @ts-ignore\n return getThemeProxied(config.themes[config.defaultTheme], config.defaultTheme)\n }\n\n const { name, theme, themes, themeManager, className } = useChangeThemeEffect(\n themeName,\n componentName,\n props,\n forceUpdate\n )\n\n if (process.env.NODE_ENV === 'development') {\n if (props?.debug === 'verbose') {\n // eslint-disable-next-line no-console\n console.log(' \uD83D\uDD39 useTheme', { themeName, componentName, name, className })\n }\n }\n\n const state = useServerRef() as React.MutableRefObject<UseThemeState>\n if (!state.current) {\n state.current = {\n uuid: {},\n keys: new Set(),\n isRendering: true,\n }\n }\n state.current.isRendering = true\n\n // track usage\n useIsomorphicLayoutEffect(() => {\n const st = state.current\n st.isRendering = false\n const cur = themeManager?.keys.get(st.uuid)\n if (!cur || !areEqualSets(st.keys, cur)) {\n themeManager?.track(st.uuid, st.keys)\n }\n })\n\n const debugProp = props && props['debug']\n\n if (!theme) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('No theme with name', themeName)\n }\n return themes[getConfig().defaultTheme || 'light']\n }\n\n return useMemo(() => {\n return getThemeProxied(theme, name, className, themeManager, state, debugProp)\n }, [theme, name, themeManager, className, debugProp])\n}\n\nfunction getThemeProxied(\n theme: any,\n name: string,\n className?: string,\n themeManager?: ThemeManager | null,\n state?: React.MutableRefObject<UseThemeState>,\n debugProp?: boolean | 'verbose'\n) {\n return new Proxy(theme, {\n has(_, key) {\n if (typeof key === 'string' && key[0] === '$') {\n key = key.slice(1)\n }\n return Reflect.has(theme, key)\n },\n get(_, key) {\n if (key === GetThemeUnwrapped) {\n return theme\n }\n if (key === GetThemeManager) {\n return themeManager\n }\n if (key === 'name') {\n return name\n }\n if (key === 'className') {\n return className\n }\n if (!name || key === '__proto__' || typeof key === 'symbol' || key === '$typeof') {\n return Reflect.get(_, key)\n }\n // auto convert variables to plain\n if (key[0] === '$') {\n key = key.slice(1)\n }\n if (!themeManager) {\n return theme[key]\n }\n if (state) {\n if (state.current.isRendering && !state.current.keys.has(key)) {\n state.current.keys.add(key)\n if (process.env.NODE_ENV === 'development' && debugProp === 'verbose') {\n // eslint-disable-next-line no-console\n console.log(' \uD83D\uDD38 tracking theme', key)\n }\n }\n }\n return themeManager.getValue(key)\n },\n })\n}\n\nconst GetThemeManager = Symbol()\n\nexport const getThemeManager = (theme: any): ThemeManager | undefined => {\n if (!theme) return\n return theme[GetThemeManager]\n}\n\nexport const useThemeName = (opts?: { parent?: true }) => {\n if (isRSC) {\n const config = getConfig()\n return config.defaultTheme || 'light'\n }\n const parent = useContext(ThemeManagerContext)\n const [name, setName] = useState(parent?.name || '')\n\n useIsomorphicLayoutEffect(() => {\n if (!parent) return\n return parent.onChangeTheme((next, manager) => {\n const name = opts?.parent ? manager.parentName || next : next\n if (!name) return\n setName(name)\n })\n }, [parent])\n\n return name\n}\n\nexport const useDefaultThemeName = () => {\n return useContext(ThemeContext)?.defaultTheme\n}\n\nexport const activeThemeManagers = new Set<ThemeManager>()\n\nexport const useChangeThemeEffect = (\n name?: string | null,\n componentName?: string,\n props?: ThemeProps,\n forceUpdateProp?: any\n): {\n themes: Record<string, ThemeObject>\n themeManager: ThemeManager | null\n name: string\n theme: ThemeObject | null\n className?: string\n} => {\n const { themes } = getConfig()\n if (isRSC) {\n // we need context working for this to work well\n const parentManager = new ThemeManager('light', themes.light)\n const next = parentManager.getNextTheme({\n name,\n componentName,\n themes,\n reset: props?.reset,\n })\n return {\n ...next,\n themes,\n themeManager: null,\n }\n }\n const debug = props && props['debug']\n const parentManager = useContext(ThemeManagerContext) || emptyManager\n const reset = props?.reset || false\n const getThemeProps: GetNextThemeProps = {\n name,\n componentName,\n themes,\n reset,\n }\n const next = parentManager.getNextTheme(getThemeProps, debug)\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const forceUpdate = forceUpdateProp || useForceUpdate()\n\n const themeManager = useConstant<ThemeManager | null>(() => {\n return new ThemeManager(next.name, next.theme, parentManager, reset)\n })\n\n // if not SSR\n if (!isSSR) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useLayoutEffect(() => {\n if (!themeManager) return\n\n activeThemeManagers.add(themeManager)\n\n if (next?.name) {\n themeManager.update(next)\n }\n\n const disposeParentOnChange = parentManager.onChangeTheme(() => {\n const next = parentManager.getNextTheme(getThemeProps, debug)\n if (!next) return\n if (themeManager.update(next)) {\n forceUpdate()\n }\n })\n\n return () => {\n activeThemeManagers.delete(themeManager)\n disposeParentOnChange()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [themes, name, componentName, debug, next?.name])\n }\n\n return {\n ...(parentManager && {\n name: parentManager.name,\n theme: parentManager.theme,\n }),\n ...next,\n themes,\n themeManager,\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
File without changes
File without changes
package/dist/cjs/index.js CHANGED
@@ -24,15 +24,15 @@ __export(src_exports, {
24
24
  addMediaQueryListener: () => import_useMedia.addMediaQueryListener,
25
25
  configureMedia: () => import_useMedia.configureMedia,
26
26
  createDOMProps: () => import_rnw.createDOMProps,
27
- getConfig: () => import_conf.getConfig,
28
- getHasConfigured: () => import_conf.getHasConfigured,
27
+ getConfig: () => import_config.getConfig,
28
+ getHasConfigured: () => import_config.getHasConfigured,
29
29
  getMedia: () => import_useMedia.getMedia,
30
- getThemes: () => import_conf.getThemes,
31
- getTokens: () => import_conf.getTokens,
30
+ getThemes: () => import_config.getThemes,
31
+ getTokens: () => import_config.getTokens,
32
32
  mediaObjectToString: () => import_useMedia.mediaObjectToString,
33
33
  mediaQueryConfig: () => import_useMedia.mediaQueryConfig,
34
34
  mediaState: () => import_useMedia.mediaState,
35
- onConfiguredOnce: () => import_conf.onConfiguredOnce,
35
+ onConfiguredOnce: () => import_config.onConfiguredOnce,
36
36
  removeMediaQueryListener: () => import_useMedia.removeMediaQueryListener,
37
37
  useMedia: () => import_useMedia.useMedia
38
38
  });
@@ -51,7 +51,7 @@ __reExport(src_exports, require("./addTheme"), module.exports);
51
51
  __reExport(src_exports, require("./updateTheme"), module.exports);
52
52
  __reExport(src_exports, require("./styled"), module.exports);
53
53
  __reExport(src_exports, require("./types"), module.exports);
54
- var import_conf = require("./conf");
54
+ var import_config = require("./config");
55
55
  __reExport(src_exports, require("./constants/constants"), module.exports);
56
56
  __reExport(src_exports, require("./constants/platform"), module.exports);
57
57
  var import_rnw = require("@tamagui/rnw");
@@ -59,6 +59,7 @@ __reExport(src_exports, require("./helpers/calc"), module.exports);
59
59
  __reExport(src_exports, require("./helpers/createShallowUpdate"), module.exports);
60
60
  __reExport(src_exports, require("./helpers/getStackSize"), module.exports);
61
61
  __reExport(src_exports, require("./helpers/getVariantExtras"), module.exports);
62
+ __reExport(src_exports, require("./helpers/getAnimationDriver"), module.exports);
62
63
  __reExport(src_exports, require("./helpers/getExpandedShorthands"), module.exports);
63
64
  __reExport(src_exports, require("./helpers/getSize"), module.exports);
64
65
  __reExport(src_exports, require("./helpers/getSplitStyles"), module.exports);
@@ -94,6 +95,7 @@ __reExport(src_exports, require("./views/ThemeInverse"), module.exports);
94
95
  __reExport(src_exports, require("./views/ThemeProvider"), module.exports);
95
96
  __reExport(src_exports, require("./views/ThemeReset"), module.exports);
96
97
  __reExport(src_exports, require("./views/FontLanguage"), module.exports);
98
+ __reExport(src_exports, require("./views/TamaguiProvider"), module.exports);
97
99
  __reExport(src_exports, require("@tamagui/use-force-update"), module.exports);
98
100
  __reExport(src_exports, require("@tamagui/use-event"), module.exports);
99
101
  __reExport(src_exports, require("@tamagui/helpers"), module.exports);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["export * from './Tamagui'\nexport * from './createComponent'\nexport * from './createShorthands'\nexport * from './createTheme'\nexport * from './createTamagui'\nexport * from './createFont'\nexport * from './createTokens'\nexport * from './createVariable'\nexport * from './createVariables'\nexport * from './insertFont'\nexport * from './addTheme'\nexport * from './updateTheme'\nexport * from './styled'\nexport * from './types'\n\n// for type portability\nexport type { RNWTextProps, RNWViewProps } from './types-rnw'\nexport { getHasConfigured, getConfig, getThemes, getTokens, onConfiguredOnce } from './conf'\n\nexport * from './constants/constants'\nexport * from './constants/platform'\nexport { createDOMProps } from '@tamagui/rnw'\n\nexport * from './helpers/calc'\nexport * from './helpers/createShallowUpdate'\nexport * from './helpers/getStackSize'\nexport * from './helpers/getVariantExtras'\nexport * from './helpers/getExpandedShorthands'\nexport * from './helpers/getSize'\nexport * from './helpers/getSplitStyles'\nexport * from './helpers/getStylesAtomic'\nexport * from './helpers/pseudoDescriptors'\nexport * from './helpers/mergeProps'\nexport * from './helpers/expandStyles'\nexport * from './helpers/getFont'\nexport * from './helpers/isObj'\nexport * from './helpers/isTamaguiElement'\nexport * from './helpers/isTamaguiComponent'\nexport * from './helpers/matchMedia'\nexport * from './helpers/startTransition'\nexport * from './helpers/themeable'\nexport * from './helpers/withStaticProperties'\n\nexport * from './contexts/ButtonInsideButtonContext'\n\nexport * from './hooks/useConstant'\nexport * from './hooks/useId'\nexport * from './hooks/useIsMounted'\nexport * from './hooks/useIsTouchDevice'\nexport {\n configureMedia,\n getMedia,\n mediaState,\n useMedia,\n mediaObjectToString,\n addMediaQueryListener,\n removeMediaQueryListener,\n mediaQueryConfig,\n} from './hooks/useMedia'\nexport * from './hooks/usePressable'\nexport * from './hooks/useTheme'\nexport * from './hooks/useIsSSR'\nexport * from './hooks/useUnmountEffect'\nexport * from './hooks/useSafeRef'\n\nexport * from './views/Slot'\nexport * from './views/Stack'\nexport * from './views/Text'\nexport { TextAncestorProvider, TextAncestorContext } from './contexts/TextAncestorContext'\nexport * from './views/Theme'\nexport * from './views/ThemeInverse'\nexport * from './views/ThemeProvider'\nexport * from './views/ThemeReset'\nexport * from './views/FontLanguage'\n\nexport * from '@tamagui/use-force-update'\nexport * from '@tamagui/use-event'\nexport * from '@tamagui/helpers'\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAc,sBAAd;AACA,wBAAc,8BADd;AAEA,wBAAc,+BAFd;AAGA,wBAAc,0BAHd;AAIA,wBAAc,4BAJd;AAKA,wBAAc,yBALd;AAMA,wBAAc,2BANd;AAOA,wBAAc,6BAPd;AAQA,wBAAc,8BARd;AASA,wBAAc,yBATd;AAUA,wBAAc,uBAVd;AAWA,wBAAc,0BAXd;AAYA,wBAAc,qBAZd;AAaA,wBAAc,oBAbd;AAiBA,kBAAoF;AAEpF,wBAAc,kCAnBd;AAoBA,wBAAc,iCApBd;AAqBA,iBAA+B;AAE/B,wBAAc,2BAvBd;AAwBA,wBAAc,0CAxBd;AAyBA,wBAAc,mCAzBd;AA0BA,wBAAc,uCA1Bd;AA2BA,wBAAc,4CA3Bd;AA4BA,wBAAc,8BA5Bd;AA6BA,wBAAc,qCA7Bd;AA8BA,wBAAc,sCA9Bd;AA+BA,wBAAc,wCA/Bd;AAgCA,wBAAc,iCAhCd;AAiCA,wBAAc,mCAjCd;AAkCA,wBAAc,8BAlCd;AAmCA,wBAAc,4BAnCd;AAoCA,wBAAc,uCApCd;AAqCA,wBAAc,yCArCd;AAsCA,wBAAc,iCAtCd;AAuCA,wBAAc,sCAvCd;AAwCA,wBAAc,gCAxCd;AAyCA,wBAAc,2CAzCd;AA2CA,wBAAc,iDA3Cd;AA6CA,wBAAc,gCA7Cd;AA8CA,wBAAc,0BA9Cd;AA+CA,wBAAc,iCA/Cd;AAgDA,wBAAc,qCAhDd;AAiDA,sBASO;AACP,wBAAc,iCA3Dd;AA4DA,wBAAc,6BA5Dd;AA6DA,wBAAc,6BA7Dd;AA8DA,wBAAc,qCA9Dd;AA+DA,wBAAc,+BA/Dd;AAiEA,wBAAc,yBAjEd;AAkEA,wBAAc,0BAlEd;AAmEA,wBAAc,yBAnEd;AAoEA,iCAA0D;AAC1D,wBAAc,0BArEd;AAsEA,wBAAc,iCAtEd;AAuEA,wBAAc,kCAvEd;AAwEA,wBAAc,+BAxEd;AAyEA,wBAAc,iCAzEd;AA2EA,wBAAc,sCA3Ed;AA4EA,wBAAc,+BA5Ed;AA6EA,wBAAc,6BA7Ed;",
4
+ "sourcesContent": ["export * from './Tamagui'\nexport * from './createComponent'\nexport * from './createShorthands'\nexport * from './createTheme'\nexport * from './createTamagui'\nexport * from './createFont'\nexport * from './createTokens'\nexport * from './createVariable'\nexport * from './createVariables'\nexport * from './insertFont'\nexport * from './addTheme'\nexport * from './updateTheme'\nexport * from './styled'\nexport * from './types'\n\n// for type portability\nexport type { RNWTextProps, RNWViewProps } from './types-rnw'\nexport { getHasConfigured, getConfig, getThemes, getTokens, onConfiguredOnce } from './config'\n\nexport * from './constants/constants'\nexport * from './constants/platform'\nexport { createDOMProps } from '@tamagui/rnw'\n\nexport * from './helpers/calc'\nexport * from './helpers/createShallowUpdate'\nexport * from './helpers/getStackSize'\nexport * from './helpers/getVariantExtras'\nexport * from './helpers/getAnimationDriver'\nexport * from './helpers/getExpandedShorthands'\nexport * from './helpers/getSize'\nexport * from './helpers/getSplitStyles'\nexport * from './helpers/getStylesAtomic'\nexport * from './helpers/pseudoDescriptors'\nexport * from './helpers/mergeProps'\nexport * from './helpers/expandStyles'\nexport * from './helpers/getFont'\nexport * from './helpers/isObj'\nexport * from './helpers/isTamaguiElement'\nexport * from './helpers/isTamaguiComponent'\nexport * from './helpers/matchMedia'\nexport * from './helpers/startTransition'\nexport * from './helpers/themeable'\nexport * from './helpers/withStaticProperties'\n\nexport * from './contexts/ButtonInsideButtonContext'\n\nexport * from './hooks/useConstant'\nexport * from './hooks/useId'\nexport * from './hooks/useIsMounted'\nexport * from './hooks/useIsTouchDevice'\nexport {\n configureMedia,\n getMedia,\n mediaState,\n useMedia,\n mediaObjectToString,\n addMediaQueryListener,\n removeMediaQueryListener,\n mediaQueryConfig,\n} from './hooks/useMedia'\nexport * from './hooks/usePressable'\nexport * from './hooks/useTheme'\nexport * from './hooks/useIsSSR'\nexport * from './hooks/useUnmountEffect'\nexport * from './hooks/useSafeRef'\n\nexport * from './views/Slot'\nexport * from './views/Stack'\nexport * from './views/Text'\nexport { TextAncestorProvider, TextAncestorContext } from './contexts/TextAncestorContext'\nexport * from './views/Theme'\nexport * from './views/ThemeInverse'\nexport * from './views/ThemeProvider'\nexport * from './views/ThemeReset'\nexport * from './views/FontLanguage'\nexport * from './views/TamaguiProvider'\n\nexport * from '@tamagui/use-force-update'\nexport * from '@tamagui/use-event'\nexport * from '@tamagui/helpers'\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAc,sBAAd;AACA,wBAAc,8BADd;AAEA,wBAAc,+BAFd;AAGA,wBAAc,0BAHd;AAIA,wBAAc,4BAJd;AAKA,wBAAc,yBALd;AAMA,wBAAc,2BANd;AAOA,wBAAc,6BAPd;AAQA,wBAAc,8BARd;AASA,wBAAc,yBATd;AAUA,wBAAc,uBAVd;AAWA,wBAAc,0BAXd;AAYA,wBAAc,qBAZd;AAaA,wBAAc,oBAbd;AAiBA,oBAAoF;AAEpF,wBAAc,kCAnBd;AAoBA,wBAAc,iCApBd;AAqBA,iBAA+B;AAE/B,wBAAc,2BAvBd;AAwBA,wBAAc,0CAxBd;AAyBA,wBAAc,mCAzBd;AA0BA,wBAAc,uCA1Bd;AA2BA,wBAAc,yCA3Bd;AA4BA,wBAAc,4CA5Bd;AA6BA,wBAAc,8BA7Bd;AA8BA,wBAAc,qCA9Bd;AA+BA,wBAAc,sCA/Bd;AAgCA,wBAAc,wCAhCd;AAiCA,wBAAc,iCAjCd;AAkCA,wBAAc,mCAlCd;AAmCA,wBAAc,8BAnCd;AAoCA,wBAAc,4BApCd;AAqCA,wBAAc,uCArCd;AAsCA,wBAAc,yCAtCd;AAuCA,wBAAc,iCAvCd;AAwCA,wBAAc,sCAxCd;AAyCA,wBAAc,gCAzCd;AA0CA,wBAAc,2CA1Cd;AA4CA,wBAAc,iDA5Cd;AA8CA,wBAAc,gCA9Cd;AA+CA,wBAAc,0BA/Cd;AAgDA,wBAAc,iCAhDd;AAiDA,wBAAc,qCAjDd;AAkDA,sBASO;AACP,wBAAc,iCA5Dd;AA6DA,wBAAc,6BA7Dd;AA8DA,wBAAc,6BA9Dd;AA+DA,wBAAc,qCA/Dd;AAgEA,wBAAc,+BAhEd;AAkEA,wBAAc,yBAlEd;AAmEA,wBAAc,0BAnEd;AAoEA,wBAAc,yBApEd;AAqEA,iCAA0D;AAC1D,wBAAc,0BAtEd;AAuEA,wBAAc,iCAvEd;AAwEA,wBAAc,kCAxEd;AAyEA,wBAAc,+BAzEd;AA0EA,wBAAc,iCA1Ed;AA2EA,wBAAc,oCA3Ed;AA6EA,wBAAc,sCA7Ed;AA8EA,wBAAc,+BA9Ed;AA+EA,wBAAc,6BA/Ed;",
6
6
  "names": []
7
7
  }
@@ -16,17 +16,25 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var Pressability_native_exports = {};
20
- __export(Pressability_native_exports, {
21
- Pressability: () => Pressability,
22
- usePressability: () => usePressability
19
+ var injectStyles_exports = {};
20
+ __export(injectStyles_exports, {
21
+ injectStyles: () => injectStyles
23
22
  });
24
- module.exports = __toCommonJS(Pressability_native_exports);
25
- const Pressability = require("react-native/Libraries/Pressability/Pressability").default;
26
- const usePressability = require("react-native/Libraries/Pressability/usePressability").default;
23
+ module.exports = __toCommonJS(injectStyles_exports);
24
+ const stylesheets = {};
25
+ const injectStyles = ({ filePath, css }) => {
26
+ let stylesheet = stylesheets[filePath];
27
+ if (!stylesheet) {
28
+ const styleEl = document.createElement("style");
29
+ styleEl.setAttribute("data-file", filePath);
30
+ styleEl.setAttribute("type", "text/css");
31
+ stylesheet = stylesheets[filePath] = styleEl;
32
+ document.head.appendChild(styleEl);
33
+ }
34
+ stylesheet.innerHTML = css;
35
+ };
27
36
  // Annotate the CommonJS export names for ESM import in node:
28
37
  0 && (module.exports = {
29
- Pressability,
30
- usePressability
38
+ injectStyles
31
39
  });
32
- //# sourceMappingURL=Pressability.native.js.map
40
+ //# sourceMappingURL=injectStyles.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/injectStyles.ts"],
4
+ "sourcesContent": ["// for vite dev mode\n\nconst stylesheets: Record<string, HTMLElement> = {}\n\ninterface InjectStylesOptions {\n filePath: string\n css: string\n}\n\nexport const injectStyles = ({ filePath, css }: InjectStylesOptions) => {\n let stylesheet = stylesheets[filePath]\n if (!stylesheet) {\n const styleEl = document.createElement('style')\n styleEl.setAttribute('data-file', filePath)\n styleEl.setAttribute('type', 'text/css')\n stylesheet = stylesheets[filePath] = styleEl\n document.head.appendChild(styleEl)\n }\n stylesheet.innerHTML = css\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,MAAM,cAA2C,CAAC;AAO3C,MAAM,eAAe,CAAC,EAAE,UAAU,UAA+B;AACtE,MAAI,aAAa,YAAY;AAC7B,MAAI,CAAC,YAAY;AACf,UAAM,UAAU,SAAS,cAAc,OAAO;AAC9C,YAAQ,aAAa,aAAa,QAAQ;AAC1C,YAAQ,aAAa,QAAQ,UAAU;AACvC,iBAAa,YAAY,YAAY;AACrC,aAAS,KAAK,YAAY,OAAO;AAAA,EACnC;AACA,aAAW,YAAY;AACzB;",
6
+ "names": []
7
+ }
@@ -23,7 +23,7 @@ __export(insertFont_exports, {
23
23
  registerFontVariables: () => registerFontVariables
24
24
  });
25
25
  module.exports = __toCommonJS(insertFont_exports);
26
- var import_conf = require("./conf");
26
+ var import_config = require("./config");
27
27
  var import_createFont = require("./createFont");
28
28
  var import_createVariables = require("./createVariables");
29
29
  var import_registerCSSVariable = require("./helpers/registerCSSVariable");
@@ -38,7 +38,7 @@ function insertFont(name, fontIn) {
38
38
  style.setAttribute("data-tamagui-font", name);
39
39
  document.head.appendChild(style);
40
40
  }
41
- (0, import_conf.setConfigFont)(name, tokened, parsed);
41
+ (0, import_config.setConfigFont)(name, tokened, parsed);
42
42
  return parsed;
43
43
  }
44
44
  function parseFont(definition) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/insertFont.ts"],
4
- "sourcesContent": ["import { setConfigFont } from './conf'\nimport { createFont } from './createFont'\nimport { Variable } from './createVariable'\nimport { DeepVariableObject, createVariables } from './createVariables'\nimport { registerCSSVariable, variableToCSS } from './helpers/registerCSSVariable'\nimport { GenericFont } from './types'\n\n/**\n * Runtime dynamic insert font\n */\nexport function insertFont<A extends GenericFont>(name: string, fontIn: A): DeepVariableObject<A> {\n const font = createFont(fontIn)\n const tokened = createVariables(font, name) as GenericFont\n const parsed = parseFont(tokened) as DeepVariableObject<A>\n if (process.env.TAMAGUI_TARGET === 'web' && typeof document !== 'undefined') {\n const fontVars = registerFontVariables(parsed)\n const style = document.createElement('style')\n style.innerText = `:root .font_${name} {${fontVars.join(';')}}`\n style.setAttribute('data-tamagui-font', name)\n document.head.appendChild(style)\n }\n setConfigFont(name, tokened, parsed)\n return parsed\n}\n\nexport function parseFont<A extends GenericFont>(definition: A): DeepVariableObject<A> {\n const parsed: any = {}\n for (const attrKey in definition) {\n const attr = definition[attrKey]\n if (attrKey === 'family') {\n parsed[attrKey] = attr\n continue\n }\n parsed[attrKey] = {}\n for (const key in attr) {\n let val = attr[key] as any as Variable\n // is a theme reference\n if (val.val?.[0] === '$') {\n val = val.val\n }\n parsed[attrKey][`$${key}`] = val\n }\n }\n return parsed\n}\n\nexport function registerFontVariables(parsedFont: any) {\n const response: string[] = []\n\n for (const fkey in parsedFont) {\n if (fkey === 'family') {\n const val = parsedFont[fkey] as Variable\n registerCSSVariable(val)\n response.push(variableToCSS(val))\n } else {\n for (const fskey in parsedFont[fkey]) {\n const fval = parsedFont[fkey][fskey]\n if (typeof fval === 'string') {\n // no need to add its a theme reference like \"$borderColor\"\n } else {\n const val = parsedFont[fkey][fskey] as Variable\n registerCSSVariable(val)\n response.push(variableToCSS(val))\n }\n }\n }\n }\n return response\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA8B;AAC9B,wBAA2B;AAE3B,6BAAoD;AACpD,iCAAmD;AAM5C,oBAA2C,MAAc,QAAkC;AAChG,QAAM,OAAO,kCAAW,MAAM;AAC9B,QAAM,UAAU,4CAAgB,MAAM,IAAI;AAC1C,QAAM,SAAS,UAAU,OAAO;AAChC,MAAI,QAAQ,IAAI,mBAAmB,SAAS,OAAO,aAAa,aAAa;AAC3E,UAAM,WAAW,sBAAsB,MAAM;AAC7C,UAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,UAAM,YAAY,eAAe,SAAS,SAAS,KAAK,GAAG;AAC3D,UAAM,aAAa,qBAAqB,IAAI;AAC5C,aAAS,KAAK,YAAY,KAAK;AAAA,EACjC;AACA,iCAAc,MAAM,SAAS,MAAM;AACnC,SAAO;AACT;AAEO,mBAA0C,YAAsC;AAzBvF;AA0BE,QAAM,SAAc,CAAC;AACrB,aAAW,WAAW,YAAY;AAChC,UAAM,OAAO,WAAW;AACxB,QAAI,YAAY,UAAU;AACxB,aAAO,WAAW;AAClB;AAAA,IACF;AACA,WAAO,WAAW,CAAC;AACnB,eAAW,OAAO,MAAM;AACtB,UAAI,MAAM,KAAK;AAEf,UAAI,WAAI,QAAJ,mBAAU,QAAO,KAAK;AACxB,cAAM,IAAI;AAAA,MACZ;AACA,aAAO,SAAS,IAAI,SAAS;AAAA,IAC/B;AAAA,EACF;AACA,SAAO;AACT;AAEO,+BAA+B,YAAiB;AACrD,QAAM,WAAqB,CAAC;AAE5B,aAAW,QAAQ,YAAY;AAC7B,QAAI,SAAS,UAAU;AACrB,YAAM,MAAM,WAAW;AACvB,0DAAoB,GAAG;AACvB,eAAS,KAAK,8CAAc,GAAG,CAAC;AAAA,IAClC,OAAO;AACL,iBAAW,SAAS,WAAW,OAAO;AACpC,cAAM,OAAO,WAAW,MAAM;AAC9B,YAAI,OAAO,SAAS,UAAU;AAAA,QAE9B,OAAO;AACL,gBAAM,MAAM,WAAW,MAAM;AAC7B,8DAAoB,GAAG;AACvB,mBAAS,KAAK,8CAAc,GAAG,CAAC;AAAA,QAClC;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;",
4
+ "sourcesContent": ["import { setConfigFont } from './config'\nimport { createFont } from './createFont'\nimport { Variable } from './createVariable'\nimport { DeepVariableObject, createVariables } from './createVariables'\nimport { registerCSSVariable, variableToCSS } from './helpers/registerCSSVariable'\nimport { GenericFont } from './types'\n\n/**\n * Runtime dynamic insert font\n */\nexport function insertFont<A extends GenericFont>(name: string, fontIn: A): DeepVariableObject<A> {\n const font = createFont(fontIn)\n const tokened = createVariables(font, name) as GenericFont\n const parsed = parseFont(tokened) as DeepVariableObject<A>\n if (process.env.TAMAGUI_TARGET === 'web' && typeof document !== 'undefined') {\n const fontVars = registerFontVariables(parsed)\n const style = document.createElement('style')\n style.innerText = `:root .font_${name} {${fontVars.join(';')}}`\n style.setAttribute('data-tamagui-font', name)\n document.head.appendChild(style)\n }\n setConfigFont(name, tokened, parsed)\n return parsed\n}\n\nexport function parseFont<A extends GenericFont>(definition: A): DeepVariableObject<A> {\n const parsed: any = {}\n for (const attrKey in definition) {\n const attr = definition[attrKey]\n if (attrKey === 'family') {\n parsed[attrKey] = attr\n continue\n }\n parsed[attrKey] = {}\n for (const key in attr) {\n let val = attr[key] as any\n // is a theme reference\n if (val.val?.[0] === '$') {\n val = val.val\n }\n parsed[attrKey][`$${key}`] = val\n }\n }\n return parsed\n}\n\nexport function registerFontVariables(parsedFont: any) {\n const response: string[] = []\n\n for (const fkey in parsedFont) {\n if (fkey === 'family') {\n const val = parsedFont[fkey] as Variable\n registerCSSVariable(val)\n response.push(variableToCSS(val))\n } else {\n for (const fskey in parsedFont[fkey]) {\n const fval = parsedFont[fkey][fskey]\n if (typeof fval === 'string') {\n // no need to add its a theme reference like \"$borderColor\"\n } else {\n const val = parsedFont[fkey][fskey] as Variable\n registerCSSVariable(val)\n response.push(variableToCSS(val))\n }\n }\n }\n }\n return response\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA8B;AAC9B,wBAA2B;AAE3B,6BAAoD;AACpD,iCAAmD;AAM5C,oBAA2C,MAAc,QAAkC;AAChG,QAAM,OAAO,kCAAW,MAAM;AAC9B,QAAM,UAAU,4CAAgB,MAAM,IAAI;AAC1C,QAAM,SAAS,UAAU,OAAO;AAChC,MAAI,QAAQ,IAAI,mBAAmB,SAAS,OAAO,aAAa,aAAa;AAC3E,UAAM,WAAW,sBAAsB,MAAM;AAC7C,UAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,UAAM,YAAY,eAAe,SAAS,SAAS,KAAK,GAAG;AAC3D,UAAM,aAAa,qBAAqB,IAAI;AAC5C,aAAS,KAAK,YAAY,KAAK;AAAA,EACjC;AACA,mCAAc,MAAM,SAAS,MAAM;AACnC,SAAO;AACT;AAEO,mBAA0C,YAAsC;AAzBvF;AA0BE,QAAM,SAAc,CAAC;AACrB,aAAW,WAAW,YAAY;AAChC,UAAM,OAAO,WAAW;AACxB,QAAI,YAAY,UAAU;AACxB,aAAO,WAAW;AAClB;AAAA,IACF;AACA,WAAO,WAAW,CAAC;AACnB,eAAW,OAAO,MAAM;AACtB,UAAI,MAAM,KAAK;AAEf,UAAI,WAAI,QAAJ,mBAAU,QAAO,KAAK;AACxB,cAAM,IAAI;AAAA,MACZ;AACA,aAAO,SAAS,IAAI,SAAS;AAAA,IAC/B;AAAA,EACF;AACA,SAAO;AACT;AAEO,+BAA+B,YAAiB;AACrD,QAAM,WAAqB,CAAC;AAE5B,aAAW,QAAQ,YAAY;AAC7B,QAAI,SAAS,UAAU;AACrB,YAAM,MAAM,WAAW;AACvB,0DAAoB,GAAG;AACvB,eAAS,KAAK,8CAAc,GAAG,CAAC;AAAA,IAClC,OAAO;AACL,iBAAW,SAAS,WAAW,OAAO;AACpC,cAAM,OAAO,WAAW,MAAM;AAC9B,YAAI,OAAO,SAAS,UAAU;AAAA,QAE9B,OAAO;AACL,gBAAM,MAAM,WAAW,MAAM;AAC7B,8DAAoB,GAAG;AACvB,mBAAS,KAAK,8CAAc,GAAG,CAAC;AAAA,QAClC;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
File without changes
File without changes
@@ -32,7 +32,17 @@ function styled(Component, options, staticExtractionOptions) {
32
32
  if (defaultVariants) {
33
33
  Object.assign(defaultProps, defaultVariants);
34
34
  }
35
- const isReactNativeWeb = (parentStaticConfig == null ? void 0 : parentStaticConfig.isReactNativeWeb) || import_RNComponents.RNComponents.has(Component);
35
+ let isReactNativeWeb = (parentStaticConfig == null ? void 0 : parentStaticConfig.isReactNativeWeb) || import_RNComponents.RNComponents.has(Component);
36
+ if (!("staticConfig" in Component) && !isReactNativeWeb) {
37
+ if (import_RNComponents.RNComponents.has(Component["displayName"])) {
38
+ import_RNComponents.RNComponents.add(Component);
39
+ isReactNativeWeb = true;
40
+ } else {
41
+ if (process.env.NODE_ENV === "development") {
42
+ console.warn(`Invalid styled() component: Tamagui only accepts react-native Text, View, Image, TextInput, or another styled Tamagui view`);
43
+ }
44
+ }
45
+ }
36
46
  const reactNativeWebComponent = isReactNativeWeb ? (parentStaticConfig == null ? void 0 : parentStaticConfig.reactNativeWebComponent) || Component : null;
37
47
  const isTamagui = !isReactNativeWeb && !!parentStaticConfig;
38
48
  const Comp = reactNativeWebComponent || Component;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/styled.tsx"],
4
- "sourcesContent": ["import { Image, Text, TextInput } from 'react-native'\n\nimport { createComponent } from './createComponent'\nimport { RNComponents } from './helpers/RNComponents'\nimport {\n GetProps,\n GetVariantValues,\n MediaProps,\n PseudoProps,\n StaticConfig,\n StylableComponent,\n TamaguiComponent,\n VariantDefinitions,\n VariantSpreadFunction,\n} from './types'\n\n// TODO may be able to use this in the options?: arg below directly\nexport type StyledOptions<ParentComponent extends StylableComponent> = GetProps<ParentComponent> & {\n name?: string\n variants?: VariantDefinitions<ParentComponent> | undefined\n defaultVariants?: { [key: string]: any }\n}\n\nexport function styled<\n ParentComponent extends StylableComponent,\n Variants extends VariantDefinitions<ParentComponent> | void = VariantDefinitions<ParentComponent> | void\n>(\n Component: ParentComponent,\n // this should be Partial<GetProps<ParentComponent>> but causes excessively deep type issues\n options?: GetProps<ParentComponent> & {\n name?: string\n variants?: Variants | undefined\n // thought i had this typed, but can't get it linked\n defaultVariants?: { [key: string]: any }\n },\n staticExtractionOptions?: Partial<StaticConfig>\n) {\n const staticConfigProps = (() => {\n const parentStaticConfig =\n 'staticConfig' in Component ? (Component.staticConfig as StaticConfig) : null\n if (options) {\n const { variants, name, defaultVariants, ...defaultProps } = options\n if (defaultVariants) {\n Object.assign(defaultProps, defaultVariants)\n }\n const isReactNativeWeb = parentStaticConfig?.isReactNativeWeb || RNComponents.has(Component)\n const reactNativeWebComponent = isReactNativeWeb\n ? parentStaticConfig?.reactNativeWebComponent || Component\n : null\n const isTamagui = !isReactNativeWeb && !!parentStaticConfig\n const Comp = reactNativeWebComponent || (Component as any)\n const isImage = !!(defaultProps.isImage || (!isTamagui ? Comp === Image : false))\n const isInput = !!(defaultProps.isInput || (!isTamagui ? Comp === TextInput : false))\n const isText = !!(defaultProps.isText || (!isTamagui ? isInput || Comp === Text : false))\n\n const conf: Partial<StaticConfig> = {\n ...staticExtractionOptions,\n ...(!isTamagui && {\n Component: Comp,\n }),\n isTamagui,\n // this type gets messed up by options?: Partial<GetProps<ParentComponent>> above\n // take away the Partial<> and it's fine\n variants,\n defaultProps,\n defaultVariants,\n componentName: name,\n isReactNativeWeb,\n // for nesting multiple levels of rnw styled() need keep use the OG component\n reactNativeWebComponent,\n isInput,\n isText,\n isImage,\n }\n\n return conf\n }\n return {}\n })()\n\n const component = createComponent(staticConfigProps, Component)\n\n // get parent props without pseudos and medias so we can rebuild both with new variants\n type ParentPropsBase = ParentComponent extends TamaguiComponent<any, any, infer P>\n ? P\n : GetProps<ParentComponent>\n type ParentVariants = ParentComponent extends TamaguiComponent<any, any, any, infer V> ? V : {}\n\n type OurVariants = Variants extends void\n ? {}\n : {\n [Key in keyof Variants]?: Variants[Key] extends VariantSpreadFunction<any, infer Val>\n ? Val\n : GetVariantValues<keyof Variants[Key]>\n }\n\n type VariantProps = Omit<ParentVariants, keyof OurVariants> & OurVariants\n type OurPropsBase = ParentPropsBase & VariantProps\n\n type Props = Variants extends void\n ? GetProps<ParentComponent>\n : // start with base props\n OurPropsBase &\n // add in media (+ pseudos nested)\n MediaProps<Partial<OurPropsBase>> &\n // add in pseudos\n PseudoProps<Partial<OurPropsBase>>\n\n return component as TamaguiComponent<\n Props,\n // TODO infer ref\n any,\n ParentPropsBase,\n ParentVariants & OurVariants\n >\n}\n\n// import { Stack } from './views/Stack'\n// const X = styled(Stack, {\n// variants: {\n// size: {\n// '...size': (val) => {\n// return {}\n// }\n// },\n// disabled: {\n// true: {\n// opacity: 0.5,\n// pointerEvents: 'none',\n// },\n// },\n// }\n// })\n// type variants = GetStyledVariants<typeof X>\n// const y = <X disabled size=\"$10\" />\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAuC;AAEvC,6BAAgC;AAChC,0BAA6B;AAoBtB,gBAIL,WAEA,SAMA,yBACA;AACA,QAAM,oBAAqB,OAAM;AAC/B,UAAM,qBACJ,kBAAkB,YAAa,UAAU,eAAgC;AAC3E,QAAI,SAAS;AACX,YAAM,EAAE,UAAU,MAAM,oBAAoB,iBAAiB;AAC7D,UAAI,iBAAiB;AACnB,eAAO,OAAO,cAAc,eAAe;AAAA,MAC7C;AACA,YAAM,mBAAmB,0DAAoB,qBAAoB,iCAAa,IAAI,SAAS;AAC3F,YAAM,0BAA0B,mBAC5B,0DAAoB,4BAA2B,YAC/C;AACJ,YAAM,YAAY,CAAC,oBAAoB,CAAC,CAAC;AACzC,YAAM,OAAO,2BAA4B;AACzC,YAAM,UAAU,CAAC,CAAE,cAAa,WAAY,EAAC,YAAY,SAAS,4BAAQ;AAC1E,YAAM,UAAU,CAAC,CAAE,cAAa,WAAY,EAAC,YAAY,SAAS,gCAAY;AAC9E,YAAM,SAAS,CAAC,CAAE,cAAa,UAAW,EAAC,YAAY,WAAW,SAAS,2BAAO;AAElF,YAAM,OAA8B;AAAA,QAClC,GAAG;AAAA,QACH,GAAI,CAAC,aAAa;AAAA,UAChB,WAAW;AAAA,QACb;AAAA,QACA;AAAA,QAGA;AAAA,QACA;AAAA,QACA;AAAA,QACA,eAAe;AAAA,QACf;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AACA,WAAO,CAAC;AAAA,EACV,GAAG;AAEH,QAAM,YAAY,4CAAgB,mBAAmB,SAAS;AA4B9D,SAAO;AAOT;",
4
+ "sourcesContent": ["import { Image, Text, TextInput } from 'react-native'\n\nimport { createComponent } from './createComponent'\nimport { RNComponents } from './helpers/RNComponents'\nimport {\n GetProps,\n GetVariantValues,\n MediaProps,\n PseudoProps,\n StaticConfig,\n StylableComponent,\n TamaguiComponent,\n VariantDefinitions,\n VariantSpreadFunction,\n} from './types'\n\n// TODO may be able to use this in the options?: arg below directly\nexport type StyledOptions<ParentComponent extends StylableComponent> = GetProps<ParentComponent> & {\n name?: string\n variants?: VariantDefinitions<ParentComponent> | undefined\n defaultVariants?: { [key: string]: any }\n}\n\nexport function styled<\n ParentComponent extends StylableComponent,\n Variants extends VariantDefinitions<ParentComponent> | void = VariantDefinitions<ParentComponent> | void\n>(\n Component: ParentComponent,\n // this should be Partial<GetProps<ParentComponent>> but causes excessively deep type issues\n options?: GetProps<ParentComponent> & {\n name?: string\n variants?: Variants | undefined\n // thought i had this typed, but can't get it linked\n defaultVariants?: { [key: string]: any }\n },\n staticExtractionOptions?: Partial<StaticConfig>\n) {\n const staticConfigProps = (() => {\n const parentStaticConfig =\n 'staticConfig' in Component ? (Component.staticConfig as StaticConfig) : null\n if (options) {\n const { variants, name, defaultVariants, ...defaultProps } = options\n if (defaultVariants) {\n Object.assign(defaultProps, defaultVariants)\n }\n let isReactNativeWeb = parentStaticConfig?.isReactNativeWeb || RNComponents.has(Component)\n // this can happen due to smart-ness in fake-react-native, rough heuristic here to ensure we match (could be better..)\n if (!('staticConfig' in Component) && !isReactNativeWeb) {\n if (RNComponents.has(Component['displayName'])) {\n RNComponents.add(Component)\n isReactNativeWeb = true\n } else {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n `Invalid styled() component: Tamagui only accepts react-native Text, View, Image, TextInput, or another styled Tamagui view`\n )\n }\n }\n }\n const reactNativeWebComponent = isReactNativeWeb\n ? parentStaticConfig?.reactNativeWebComponent || Component\n : null\n const isTamagui = !isReactNativeWeb && !!parentStaticConfig\n const Comp = reactNativeWebComponent || (Component as any)\n const isImage = !!(defaultProps.isImage || (!isTamagui ? Comp === Image : false))\n const isInput = !!(defaultProps.isInput || (!isTamagui ? Comp === TextInput : false))\n const isText = !!(defaultProps.isText || (!isTamagui ? isInput || Comp === Text : false))\n\n const conf: Partial<StaticConfig> = {\n ...staticExtractionOptions,\n ...(!isTamagui && {\n Component: Comp,\n }),\n isTamagui,\n // this type gets messed up by options?: Partial<GetProps<ParentComponent>> above\n // take away the Partial<> and it's fine\n variants,\n defaultProps,\n defaultVariants,\n componentName: name,\n isReactNativeWeb,\n // for nesting multiple levels of rnw styled() need keep use the OG component\n reactNativeWebComponent,\n isInput,\n isText,\n isImage,\n }\n\n return conf\n }\n return {}\n })()\n\n const component = createComponent(staticConfigProps, Component)\n\n // get parent props without pseudos and medias so we can rebuild both with new variants\n type ParentPropsBase = ParentComponent extends TamaguiComponent<any, any, infer P>\n ? P\n : GetProps<ParentComponent>\n type ParentVariants = ParentComponent extends TamaguiComponent<any, any, any, infer V> ? V : {}\n\n type OurVariants = Variants extends void\n ? {}\n : {\n [Key in keyof Variants]?: Variants[Key] extends VariantSpreadFunction<any, infer Val>\n ? Val\n : GetVariantValues<keyof Variants[Key]>\n }\n\n type VariantProps = Omit<ParentVariants, keyof OurVariants> & OurVariants\n type OurPropsBase = ParentPropsBase & VariantProps\n\n type Props = Variants extends void\n ? GetProps<ParentComponent>\n : // start with base props\n OurPropsBase &\n // add in media (+ pseudos nested)\n MediaProps<Partial<OurPropsBase>> &\n // add in pseudos\n PseudoProps<Partial<OurPropsBase>>\n\n return component as TamaguiComponent<\n Props,\n // TODO infer ref\n any,\n ParentPropsBase,\n ParentVariants & OurVariants\n >\n}\n\n// import { Stack } from './views/Stack'\n// const X = styled(Stack, {\n// variants: {\n// size: {\n// '...size': (val) => {\n// return {}\n// }\n// },\n// disabled: {\n// true: {\n// opacity: 0.5,\n// pointerEvents: 'none',\n// },\n// },\n// }\n// })\n// type variants = GetStyledVariants<typeof X>\n// const y = <X disabled size=\"$10\" />\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAuC;AAEvC,6BAAgC;AAChC,0BAA6B;AAoBtB,gBAIL,WAEA,SAMA,yBACA;AACA,QAAM,oBAAqB,OAAM;AAC/B,UAAM,qBACJ,kBAAkB,YAAa,UAAU,eAAgC;AAC3E,QAAI,SAAS;AACX,YAAM,EAAE,UAAU,MAAM,oBAAoB,iBAAiB;AAC7D,UAAI,iBAAiB;AACnB,eAAO,OAAO,cAAc,eAAe;AAAA,MAC7C;AACA,UAAI,mBAAmB,0DAAoB,qBAAoB,iCAAa,IAAI,SAAS;AAEzF,UAAI,CAAE,mBAAkB,cAAc,CAAC,kBAAkB;AACvD,YAAI,iCAAa,IAAI,UAAU,cAAc,GAAG;AAC9C,2CAAa,IAAI,SAAS;AAC1B,6BAAmB;AAAA,QACrB,OAAO;AACL,cAAI,QAAQ,IAAI,aAAa,eAAe;AAE1C,oBAAQ,KACN,4HACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AACA,YAAM,0BAA0B,mBAC5B,0DAAoB,4BAA2B,YAC/C;AACJ,YAAM,YAAY,CAAC,oBAAoB,CAAC,CAAC;AACzC,YAAM,OAAO,2BAA4B;AACzC,YAAM,UAAU,CAAC,CAAE,cAAa,WAAY,EAAC,YAAY,SAAS,4BAAQ;AAC1E,YAAM,UAAU,CAAC,CAAE,cAAa,WAAY,EAAC,YAAY,SAAS,gCAAY;AAC9E,YAAM,SAAS,CAAC,CAAE,cAAa,UAAW,EAAC,YAAY,WAAW,SAAS,2BAAO;AAElF,YAAM,OAA8B;AAAA,QAClC,GAAG;AAAA,QACH,GAAI,CAAC,aAAa;AAAA,UAChB,WAAW;AAAA,QACb;AAAA,QACA;AAAA,QAGA;AAAA,QACA;AAAA,QACA;AAAA,QACA,eAAe;AAAA,QACf;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AACA,WAAO,CAAC;AAAA,EACV,GAAG;AAEH,QAAM,YAAY,4CAAgB,mBAAmB,SAAS;AA4B9D,SAAO;AAOT;",
6
6
  "names": []
7
7
  }
File without changes
File without changes
package/dist/cjs/types.js CHANGED
File without changes