@tamagui/web 2.0.0-rc.3 → 2.0.0-rc.31

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 (930) hide show
  1. package/.turbo/turbo-build.log +2 -0
  2. package/.turbo/turbo-test$colon$web.log +15 -0
  3. package/dist/cjs/Tamagui.cjs +2 -2
  4. package/dist/cjs/Tamagui.native.js +2 -2
  5. package/dist/cjs/Tamagui.native.js.map +1 -1
  6. package/dist/cjs/_withStableStyle.cjs +17 -6
  7. package/dist/cjs/_withStableStyle.native.js +18 -5
  8. package/dist/cjs/_withStableStyle.native.js.map +1 -1
  9. package/dist/cjs/animationDriverTypes.test-d.cjs +11 -0
  10. package/dist/cjs/animationDriverTypes.test-d.native.js +11 -0
  11. package/dist/cjs/animationDriverTypes.test-d.native.js.map +1 -1
  12. package/dist/cjs/config.cjs +5 -1
  13. package/dist/cjs/config.native.js +5 -1
  14. package/dist/cjs/config.native.js.map +1 -1
  15. package/dist/cjs/constants/constants.cjs +2 -16
  16. package/dist/cjs/constants/constants.native.js +1 -14
  17. package/dist/cjs/constants/constants.native.js.map +1 -1
  18. package/dist/cjs/createComponent.cjs +92 -79
  19. package/dist/cjs/createComponent.native.js +112 -88
  20. package/dist/cjs/createComponent.native.js.map +1 -1
  21. package/dist/cjs/createTamagui.cjs +38 -37
  22. package/dist/cjs/createTamagui.native.js +41 -37
  23. package/dist/cjs/createTamagui.native.js.map +1 -1
  24. package/dist/cjs/createVariable.native.js.map +1 -1
  25. package/dist/cjs/eventHandling.cjs +1 -1
  26. package/dist/cjs/eventHandling.native.js +84 -57
  27. package/dist/cjs/eventHandling.native.js.map +1 -1
  28. package/dist/cjs/helpers/createDesignSystem.cjs +44 -7
  29. package/dist/cjs/helpers/createDesignSystem.native.js +36 -6
  30. package/dist/cjs/helpers/createDesignSystem.native.js.map +1 -1
  31. package/dist/cjs/helpers/createMediaStyle.cjs +8 -5
  32. package/dist/cjs/helpers/createMediaStyle.native.js +10 -7
  33. package/dist/cjs/helpers/createMediaStyle.native.js.map +1 -1
  34. package/dist/cjs/helpers/createStyledContext.cjs +11 -7
  35. package/dist/cjs/helpers/createStyledContext.native.js +50 -46
  36. package/dist/cjs/helpers/createStyledContext.native.js.map +1 -1
  37. package/dist/cjs/helpers/defaultAnimationDriver.cjs +0 -2
  38. package/dist/cjs/helpers/defaultAnimationDriver.native.js +0 -2
  39. package/dist/cjs/helpers/defaultAnimationDriver.native.js.map +1 -1
  40. package/dist/cjs/helpers/expandStyle.cjs +2 -1
  41. package/dist/cjs/helpers/expandStyle.native.js +9 -0
  42. package/dist/cjs/helpers/expandStyle.native.js.map +1 -1
  43. package/dist/cjs/helpers/getCSSStylesAtomic.cjs +8 -8
  44. package/dist/cjs/helpers/getDefaultProps.cjs +3 -9
  45. package/dist/cjs/helpers/getDefaultProps.native.js +3 -4
  46. package/dist/cjs/helpers/getDefaultProps.native.js.map +1 -1
  47. package/dist/cjs/helpers/getGroupPropParts.cjs +2 -2
  48. package/dist/cjs/helpers/getGroupPropParts.native.js +2 -2
  49. package/dist/cjs/helpers/getGroupPropParts.native.js.map +1 -1
  50. package/dist/cjs/helpers/getSplitStyles.cjs +59 -28
  51. package/dist/cjs/helpers/getSplitStyles.native.js +114 -77
  52. package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
  53. package/dist/cjs/helpers/getThemeCSSRules.cjs +17 -9
  54. package/dist/cjs/helpers/getTokenForKey.cjs +127 -0
  55. package/dist/cjs/helpers/getTokenForKey.native.js +145 -0
  56. package/dist/cjs/helpers/getTokenForKey.native.js.map +1 -0
  57. package/dist/cjs/helpers/insertStyleRule.cjs +1 -1
  58. package/dist/cjs/helpers/insertStyleRule.native.js +1 -1
  59. package/dist/cjs/helpers/mainThreadPressEvents.native.js +63 -16
  60. package/dist/cjs/helpers/mainThreadPressEvents.native.js.map +1 -1
  61. package/dist/cjs/helpers/mediaObjectToString.cjs +35 -0
  62. package/dist/cjs/helpers/mediaObjectToString.native.js +43 -0
  63. package/dist/cjs/helpers/mediaObjectToString.native.js.map +1 -0
  64. package/dist/cjs/helpers/mediaState.cjs +45 -0
  65. package/dist/cjs/helpers/mediaState.native.js +50 -0
  66. package/dist/cjs/helpers/mediaState.native.js.map +1 -0
  67. package/dist/cjs/helpers/normalizeColor.cjs +6 -1
  68. package/dist/cjs/helpers/normalizeValueWithProperty.cjs +2 -1
  69. package/dist/cjs/helpers/normalizeValueWithProperty.native.js +2 -1
  70. package/dist/cjs/helpers/normalizeValueWithProperty.native.js.map +1 -1
  71. package/dist/cjs/helpers/parseNativeStyle.cjs +133 -0
  72. package/dist/cjs/helpers/parseNativeStyle.native.js +151 -0
  73. package/dist/cjs/helpers/parseNativeStyle.native.js.map +1 -0
  74. package/dist/cjs/{createTheme.cjs → helpers/parseOutlineShorthand.cjs} +5 -5
  75. package/dist/cjs/helpers/parseOutlineShorthand.native.js +58 -0
  76. package/dist/cjs/helpers/parseOutlineShorthand.native.js.map +1 -0
  77. package/dist/cjs/helpers/platformResolveValue.cjs +33 -0
  78. package/dist/cjs/helpers/platformResolveValue.native.js +62 -0
  79. package/dist/cjs/helpers/platformResolveValue.native.js.map +1 -0
  80. package/dist/cjs/helpers/propMapper.cjs +26 -96
  81. package/dist/cjs/helpers/propMapper.native.js +61 -108
  82. package/dist/cjs/helpers/propMapper.native.js.map +1 -1
  83. package/dist/cjs/helpers/pseudoTransitions.cjs +65 -0
  84. package/dist/cjs/helpers/pseudoTransitions.native.js +72 -0
  85. package/dist/cjs/helpers/pseudoTransitions.native.js.map +1 -0
  86. package/dist/cjs/{constants/webToNativeProps.cjs → helpers/resolveAnimationDriver.cjs} +7 -7
  87. package/dist/cjs/{views/Stack.native.js → helpers/resolveAnimationDriver.native.js} +9 -14
  88. package/dist/cjs/helpers/resolveAnimationDriver.native.js.map +1 -0
  89. package/dist/cjs/{views/Stack.cjs → helpers/resolveCompoundTokens.cjs} +16 -13
  90. package/dist/cjs/helpers/resolveCompoundTokens.native.js +40 -0
  91. package/dist/cjs/helpers/resolveCompoundTokens.native.js.map +1 -0
  92. package/dist/cjs/helpers/skipProps.cjs +1 -0
  93. package/dist/cjs/helpers/skipProps.native.js +1 -0
  94. package/dist/cjs/helpers/skipProps.native.js.map +1 -1
  95. package/dist/cjs/helpers/themeable.cjs +4 -2
  96. package/dist/cjs/helpers/themeable.native.js +4 -2
  97. package/dist/cjs/helpers/themeable.native.js.map +1 -1
  98. package/dist/cjs/helpers/useRenderElement.native.js +1 -1
  99. package/dist/cjs/helpers/useRenderElement.native.js.map +1 -1
  100. package/dist/cjs/hooks/useComponentState.cjs +9 -5
  101. package/dist/cjs/hooks/useComponentState.native.js +10 -6
  102. package/dist/cjs/hooks/useComponentState.native.js.map +1 -1
  103. package/dist/cjs/hooks/useMedia.cjs +25 -48
  104. package/dist/cjs/hooks/useMedia.native.js +25 -55
  105. package/dist/cjs/hooks/useMedia.native.js.map +1 -1
  106. package/dist/cjs/hooks/useProps.cjs +3 -2
  107. package/dist/cjs/hooks/useProps.native.js +3 -2
  108. package/dist/cjs/hooks/useProps.native.js.map +1 -1
  109. package/dist/cjs/hooks/useTheme.cjs +4 -0
  110. package/dist/cjs/hooks/useTheme.native.js +4 -0
  111. package/dist/cjs/hooks/useTheme.native.js.map +1 -1
  112. package/dist/cjs/hooks/useThemeState.cjs +30 -12
  113. package/dist/cjs/hooks/useThemeState.native.js +28 -12
  114. package/dist/cjs/hooks/useThemeState.native.js.map +1 -1
  115. package/dist/cjs/index.cjs +9 -5
  116. package/dist/cjs/index.native.js +9 -5
  117. package/dist/cjs/index.native.js.map +1 -1
  118. package/dist/cjs/styled.native.js.map +1 -1
  119. package/dist/cjs/views/TamaguiProvider.cjs +20 -33
  120. package/dist/cjs/views/TamaguiProvider.native.js +28 -39
  121. package/dist/cjs/views/TamaguiProvider.native.js.map +1 -1
  122. package/dist/cjs/views/TamaguiRoot.cjs +68 -0
  123. package/dist/cjs/{createTheme.native.js → views/TamaguiRoot.native.js} +8 -8
  124. package/dist/cjs/views/TamaguiRoot.native.js.map +1 -0
  125. package/dist/cjs/views/Text.cjs +2 -10
  126. package/dist/cjs/views/Text.native.js +0 -1
  127. package/dist/cjs/views/Text.native.js.map +1 -1
  128. package/dist/cjs/views/Theme.cjs +2 -0
  129. package/dist/cjs/views/Theme.native.js +2 -0
  130. package/dist/cjs/views/Theme.native.js.map +1 -1
  131. package/dist/cjs/views/ThemeProvider.cjs +3 -1
  132. package/dist/cjs/views/ThemeProvider.native.js +2 -0
  133. package/dist/cjs/views/ThemeProvider.native.js.map +1 -1
  134. package/dist/cjs/views/View.cjs +0 -2
  135. package/dist/cjs/views/View.native.js +0 -2
  136. package/dist/cjs/views/View.native.js.map +1 -1
  137. package/dist/esm/Tamagui.mjs +1 -1
  138. package/dist/esm/Tamagui.native.js +1 -1
  139. package/dist/esm/_withStableStyle.mjs +18 -7
  140. package/dist/esm/_withStableStyle.mjs.map +1 -1
  141. package/dist/esm/_withStableStyle.native.js +19 -6
  142. package/dist/esm/_withStableStyle.native.js.map +1 -1
  143. package/dist/esm/animationDriverTypes.test-d.mjs +11 -0
  144. package/dist/esm/animationDriverTypes.test-d.mjs.map +1 -1
  145. package/dist/esm/animationDriverTypes.test-d.native.js +11 -0
  146. package/dist/esm/animationDriverTypes.test-d.native.js.map +1 -1
  147. package/dist/esm/config.mjs +5 -1
  148. package/dist/esm/config.mjs.map +1 -1
  149. package/dist/esm/config.native.js +5 -1
  150. package/dist/esm/config.native.js.map +1 -1
  151. package/dist/esm/constants/constants.mjs +2 -14
  152. package/dist/esm/constants/constants.mjs.map +1 -1
  153. package/dist/esm/constants/constants.native.js +1 -12
  154. package/dist/esm/constants/constants.native.js.map +1 -1
  155. package/dist/esm/createComponent.mjs +91 -79
  156. package/dist/esm/createComponent.mjs.map +1 -1
  157. package/dist/esm/createComponent.native.js +112 -89
  158. package/dist/esm/createComponent.native.js.map +1 -1
  159. package/dist/esm/createTamagui.mjs +38 -37
  160. package/dist/esm/createTamagui.mjs.map +1 -1
  161. package/dist/esm/createTamagui.native.js +41 -37
  162. package/dist/esm/createTamagui.native.js.map +1 -1
  163. package/dist/esm/createVariable.mjs.map +1 -1
  164. package/dist/esm/eventHandling.mjs +1 -1
  165. package/dist/esm/eventHandling.mjs.map +1 -1
  166. package/dist/esm/eventHandling.native.js +84 -57
  167. package/dist/esm/eventHandling.native.js.map +1 -1
  168. package/dist/esm/helpers/createDesignSystem.mjs +43 -7
  169. package/dist/esm/helpers/createDesignSystem.mjs.map +1 -1
  170. package/dist/esm/helpers/createDesignSystem.native.js +35 -7
  171. package/dist/esm/helpers/createDesignSystem.native.js.map +1 -1
  172. package/dist/esm/helpers/createMediaStyle.mjs +7 -4
  173. package/dist/esm/helpers/createMediaStyle.mjs.map +1 -1
  174. package/dist/esm/helpers/createMediaStyle.native.js +9 -6
  175. package/dist/esm/helpers/createMediaStyle.native.js.map +1 -1
  176. package/dist/esm/helpers/createStyledContext.mjs +12 -8
  177. package/dist/esm/helpers/createStyledContext.mjs.map +1 -1
  178. package/dist/esm/helpers/createStyledContext.native.js +11 -7
  179. package/dist/esm/helpers/createStyledContext.native.js.map +1 -1
  180. package/dist/esm/helpers/defaultAnimationDriver.mjs +0 -2
  181. package/dist/esm/helpers/defaultAnimationDriver.mjs.map +1 -1
  182. package/dist/esm/helpers/defaultAnimationDriver.native.js +0 -2
  183. package/dist/esm/helpers/defaultAnimationDriver.native.js.map +1 -1
  184. package/dist/esm/helpers/expandStyle.mjs +0 -1
  185. package/dist/esm/helpers/expandStyle.mjs.map +1 -1
  186. package/dist/esm/helpers/expandStyle.native.js +9 -1
  187. package/dist/esm/helpers/expandStyle.native.js.map +1 -1
  188. package/dist/esm/helpers/getCSSStylesAtomic.mjs +8 -8
  189. package/dist/esm/helpers/getCSSStylesAtomic.mjs.map +1 -1
  190. package/dist/esm/helpers/getDefaultProps.mjs +3 -9
  191. package/dist/esm/helpers/getDefaultProps.mjs.map +1 -1
  192. package/dist/esm/helpers/getDefaultProps.native.js +3 -4
  193. package/dist/esm/helpers/getDefaultProps.native.js.map +1 -1
  194. package/dist/esm/helpers/getGroupPropParts.mjs +1 -1
  195. package/dist/esm/helpers/getGroupPropParts.native.js +1 -1
  196. package/dist/esm/helpers/getSplitStyles.mjs +59 -29
  197. package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
  198. package/dist/esm/helpers/getSplitStyles.native.js +113 -77
  199. package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
  200. package/dist/esm/helpers/getThemeCSSRules.mjs +17 -9
  201. package/dist/esm/helpers/getThemeCSSRules.mjs.map +1 -1
  202. package/dist/esm/helpers/getTokenForKey.mjs +101 -0
  203. package/dist/esm/helpers/getTokenForKey.mjs.map +1 -0
  204. package/dist/esm/helpers/getTokenForKey.native.js +116 -0
  205. package/dist/esm/helpers/getTokenForKey.native.js.map +1 -0
  206. package/dist/esm/helpers/insertStyleRule.mjs +1 -1
  207. package/dist/esm/helpers/insertStyleRule.native.js +1 -1
  208. package/dist/esm/helpers/mainThreadPressEvents.native.js +63 -16
  209. package/dist/esm/helpers/mainThreadPressEvents.native.js.map +1 -1
  210. package/dist/esm/helpers/mediaObjectToString.mjs +12 -0
  211. package/dist/esm/helpers/mediaObjectToString.mjs.map +1 -0
  212. package/dist/esm/helpers/mediaObjectToString.native.js +17 -0
  213. package/dist/esm/helpers/mediaObjectToString.native.js.map +1 -0
  214. package/dist/esm/helpers/mediaState.mjs +18 -0
  215. package/dist/esm/helpers/mediaState.mjs.map +1 -0
  216. package/dist/esm/helpers/mediaState.native.js +20 -0
  217. package/dist/esm/helpers/mediaState.native.js.map +1 -0
  218. package/dist/esm/helpers/normalizeColor.mjs +6 -1
  219. package/dist/esm/helpers/normalizeColor.mjs.map +1 -1
  220. package/dist/esm/helpers/normalizeValueWithProperty.mjs +2 -1
  221. package/dist/esm/helpers/normalizeValueWithProperty.mjs.map +1 -1
  222. package/dist/esm/helpers/normalizeValueWithProperty.native.js +2 -1
  223. package/dist/esm/helpers/normalizeValueWithProperty.native.js.map +1 -1
  224. package/dist/esm/helpers/parseNativeStyle.mjs +110 -0
  225. package/dist/esm/helpers/parseNativeStyle.mjs.map +1 -0
  226. package/dist/esm/helpers/parseNativeStyle.native.js +125 -0
  227. package/dist/esm/helpers/parseNativeStyle.native.js.map +1 -0
  228. package/dist/esm/helpers/parseOutlineShorthand.mjs +3 -0
  229. package/dist/esm/helpers/parseOutlineShorthand.mjs.map +1 -0
  230. package/dist/esm/helpers/parseOutlineShorthand.native.js +32 -0
  231. package/dist/esm/helpers/parseOutlineShorthand.native.js.map +1 -0
  232. package/dist/esm/helpers/platformResolveValue.mjs +10 -0
  233. package/dist/esm/helpers/platformResolveValue.mjs.map +1 -0
  234. package/dist/esm/helpers/platformResolveValue.native.js +36 -0
  235. package/dist/esm/helpers/platformResolveValue.native.js.map +1 -0
  236. package/dist/esm/helpers/propMapper.mjs +24 -96
  237. package/dist/esm/helpers/propMapper.mjs.map +1 -1
  238. package/dist/esm/helpers/propMapper.native.js +60 -107
  239. package/dist/esm/helpers/propMapper.native.js.map +1 -1
  240. package/dist/esm/helpers/pseudoTransitions.mjs +41 -0
  241. package/dist/esm/helpers/pseudoTransitions.mjs.map +1 -0
  242. package/dist/esm/helpers/pseudoTransitions.native.js +45 -0
  243. package/dist/esm/helpers/pseudoTransitions.native.js.map +1 -0
  244. package/dist/esm/helpers/resolveAnimationDriver.mjs +5 -0
  245. package/dist/esm/helpers/resolveAnimationDriver.mjs.map +1 -0
  246. package/dist/esm/helpers/resolveAnimationDriver.native.js +6 -0
  247. package/dist/esm/helpers/resolveAnimationDriver.native.js.map +1 -0
  248. package/dist/esm/helpers/resolveCompoundTokens.mjs +14 -0
  249. package/dist/esm/helpers/resolveCompoundTokens.mjs.map +1 -0
  250. package/dist/esm/helpers/resolveCompoundTokens.native.js +14 -0
  251. package/dist/esm/helpers/resolveCompoundTokens.native.js.map +1 -0
  252. package/dist/esm/helpers/skipProps.mjs +1 -1
  253. package/dist/esm/helpers/skipProps.mjs.map +1 -1
  254. package/dist/esm/helpers/skipProps.native.js +1 -1
  255. package/dist/esm/helpers/skipProps.native.js.map +1 -1
  256. package/dist/esm/helpers/themeable.mjs +4 -2
  257. package/dist/esm/helpers/themeable.mjs.map +1 -1
  258. package/dist/esm/helpers/themeable.native.js +4 -2
  259. package/dist/esm/helpers/themeable.native.js.map +1 -1
  260. package/dist/esm/helpers/useRenderElement.mjs.map +1 -1
  261. package/dist/esm/helpers/useRenderElement.native.js +1 -1
  262. package/dist/esm/helpers/useRenderElement.native.js.map +1 -1
  263. package/dist/esm/helpers/wrapStyleTags.native.js +0 -2
  264. package/dist/esm/helpers/wrapStyleTags.native.js.map +1 -1
  265. package/dist/esm/hooks/getThemeProxied.mjs +0 -3
  266. package/dist/esm/hooks/getThemeProxied.mjs.map +1 -1
  267. package/dist/esm/hooks/useComponentState.mjs +9 -5
  268. package/dist/esm/hooks/useComponentState.mjs.map +1 -1
  269. package/dist/esm/hooks/useComponentState.native.js +10 -6
  270. package/dist/esm/hooks/useComponentState.native.js.map +1 -1
  271. package/dist/esm/hooks/useMedia.mjs +21 -39
  272. package/dist/esm/hooks/useMedia.mjs.map +1 -1
  273. package/dist/esm/hooks/useMedia.native.js +22 -47
  274. package/dist/esm/hooks/useMedia.native.js.map +1 -1
  275. package/dist/esm/hooks/useProps.mjs +2 -1
  276. package/dist/esm/hooks/useProps.mjs.map +1 -1
  277. package/dist/esm/hooks/useProps.native.js +2 -1
  278. package/dist/esm/hooks/useProps.native.js.map +1 -1
  279. package/dist/esm/hooks/useTheme.mjs +4 -0
  280. package/dist/esm/hooks/useTheme.mjs.map +1 -1
  281. package/dist/esm/hooks/useTheme.native.js +4 -0
  282. package/dist/esm/hooks/useTheme.native.js.map +1 -1
  283. package/dist/esm/hooks/useThemeState.mjs +30 -13
  284. package/dist/esm/hooks/useThemeState.mjs.map +1 -1
  285. package/dist/esm/hooks/useThemeState.native.js +28 -12
  286. package/dist/esm/hooks/useThemeState.native.js.map +1 -1
  287. package/dist/esm/index.js +67 -107
  288. package/dist/esm/index.js.map +1 -6
  289. package/dist/esm/index.mjs +5 -1
  290. package/dist/esm/index.mjs.map +1 -1
  291. package/dist/esm/index.native.js +5 -1
  292. package/dist/esm/index.native.js.map +1 -1
  293. package/dist/esm/insertFont.native.js +0 -1
  294. package/dist/esm/insertFont.native.js.map +1 -1
  295. package/dist/esm/styled.mjs.map +1 -1
  296. package/dist/esm/styled.native.js.map +1 -1
  297. package/dist/esm/views/TamaguiProvider.mjs +21 -34
  298. package/dist/esm/views/TamaguiProvider.mjs.map +1 -1
  299. package/dist/esm/views/TamaguiProvider.native.js +28 -40
  300. package/dist/esm/views/TamaguiProvider.native.js.map +1 -1
  301. package/dist/esm/views/TamaguiRoot.mjs +34 -0
  302. package/dist/esm/views/TamaguiRoot.mjs.map +1 -0
  303. package/dist/esm/views/TamaguiRoot.native.js +5 -0
  304. package/dist/esm/views/TamaguiRoot.native.js.map +1 -0
  305. package/dist/esm/views/Text.mjs +1 -9
  306. package/dist/esm/views/Text.mjs.map +1 -1
  307. package/dist/esm/views/Text.native.js +0 -1
  308. package/dist/esm/views/Text.native.js.map +1 -1
  309. package/dist/esm/views/Theme.mjs +2 -0
  310. package/dist/esm/views/Theme.mjs.map +1 -1
  311. package/dist/esm/views/Theme.native.js +2 -0
  312. package/dist/esm/views/Theme.native.js.map +1 -1
  313. package/dist/esm/views/ThemeProvider.mjs +3 -1
  314. package/dist/esm/views/ThemeProvider.mjs.map +1 -1
  315. package/dist/esm/views/ThemeProvider.native.js +2 -2
  316. package/dist/esm/views/ThemeProvider.native.js.map +1 -1
  317. package/dist/esm/views/View.mjs +0 -2
  318. package/dist/esm/views/View.mjs.map +1 -1
  319. package/dist/esm/views/View.native.js +0 -2
  320. package/dist/esm/views/View.native.js.map +1 -1
  321. package/inject-styles/index.cjs +2 -0
  322. package/inject-styles/index.js +2 -0
  323. package/inject-styles.cjs +1 -0
  324. package/package.json +21 -27
  325. package/src/Tamagui.ts +1 -1
  326. package/src/_withStableStyle.tsx +44 -16
  327. package/src/animationDriverTypes.test-d.ts +76 -0
  328. package/src/config.ts +5 -1
  329. package/src/constants/constants.ts +0 -17
  330. package/src/createComponent.tsx +224 -93
  331. package/src/createTamagui.ts +20 -11
  332. package/src/createVariable.ts +1 -1
  333. package/src/eventHandling.native.ts +80 -53
  334. package/src/eventHandling.ts +2 -1
  335. package/src/helpers/createDesignSystem.ts +77 -6
  336. package/src/helpers/createMediaStyle.ts +12 -4
  337. package/src/helpers/createStyledContext.tsx +27 -18
  338. package/src/helpers/defaultAnimationDriver.tsx +0 -2
  339. package/src/helpers/expandStyle.ts +11 -0
  340. package/src/helpers/getCSSStylesAtomic.ts +13 -14
  341. package/src/helpers/getDefaultProps.ts +4 -15
  342. package/src/helpers/getGroupPropParts.ts +1 -1
  343. package/src/helpers/getSplitStyles.tsx +174 -40
  344. package/src/helpers/getThemeCSSRules.ts +16 -14
  345. package/src/helpers/getTokenForKey.ts +223 -0
  346. package/src/helpers/insertStyleRule.tsx +1 -1
  347. package/src/helpers/mainThreadPressEvents.native.ts +118 -25
  348. package/src/helpers/mediaObjectToString.ts +30 -0
  349. package/src/helpers/mediaState.ts +32 -0
  350. package/src/helpers/normalizeColor.ts +12 -8
  351. package/src/helpers/normalizeValueWithProperty.ts +8 -1
  352. package/src/helpers/parseNativeStyle.ts +193 -0
  353. package/src/helpers/parseOutlineShorthand.native.ts +62 -0
  354. package/src/helpers/parseOutlineShorthand.ts +6 -0
  355. package/src/helpers/platformResolveValue.native.ts +72 -0
  356. package/src/helpers/platformResolveValue.ts +22 -0
  357. package/src/helpers/propMapper.ts +65 -221
  358. package/src/helpers/pseudoTransitions.ts +97 -0
  359. package/src/helpers/resolveAnimationDriver.ts +23 -0
  360. package/src/helpers/resolveCompoundTokens.ts +28 -0
  361. package/src/helpers/skipProps.ts +1 -0
  362. package/src/helpers/themeable.tsx +7 -5
  363. package/src/helpers/useRenderElement.tsx +7 -0
  364. package/src/hooks/useComponentState.ts +11 -8
  365. package/src/hooks/useMedia.tsx +28 -75
  366. package/src/hooks/useProps.tsx +2 -1
  367. package/src/hooks/useTheme.tsx +4 -0
  368. package/src/hooks/useThemeState.ts +57 -14
  369. package/src/index.ts +4 -4
  370. package/src/styled.tsx +2 -2
  371. package/src/types.tsx +205 -57
  372. package/src/views/TamaguiProvider.tsx +35 -54
  373. package/src/views/TamaguiRoot.native.tsx +9 -0
  374. package/src/views/TamaguiRoot.tsx +64 -0
  375. package/src/views/Text.tsx +1 -9
  376. package/src/views/Theme.tsx +2 -0
  377. package/src/views/ThemeProvider.tsx +3 -1
  378. package/src/views/View.tsx +0 -2
  379. package/tsconfig.json +44 -0
  380. package/tsconfig.test.json +9 -0
  381. package/types/_withStableStyle.d.ts +1 -1
  382. package/types/_withStableStyle.d.ts.map +1 -1
  383. package/types/config.d.ts.map +1 -1
  384. package/types/constants/constants.d.ts +0 -3
  385. package/types/constants/constants.d.ts.map +1 -1
  386. package/types/createComponent.d.ts.map +1 -1
  387. package/types/createTamagui.d.ts.map +1 -1
  388. package/types/createVariable.d.ts +1 -1
  389. package/types/createVariable.d.ts.map +1 -1
  390. package/types/eventHandling.d.ts +1 -1
  391. package/types/eventHandling.d.ts.map +1 -1
  392. package/types/eventHandling.native.d.ts +2 -2
  393. package/types/eventHandling.native.d.ts.map +1 -1
  394. package/types/helpers/createDesignSystem.d.ts +5 -2
  395. package/types/helpers/createDesignSystem.d.ts.map +1 -1
  396. package/types/helpers/createMediaStyle.d.ts.map +1 -1
  397. package/types/helpers/createStyledContext.d.ts +1 -1
  398. package/types/helpers/createStyledContext.d.ts.map +1 -1
  399. package/types/helpers/defaultAnimationDriver.d.ts.map +1 -1
  400. package/types/helpers/expandStyle.d.ts.map +1 -1
  401. package/types/helpers/getCSSStylesAtomic.d.ts.map +1 -1
  402. package/types/helpers/getDefaultProps.d.ts +1 -1
  403. package/types/helpers/getDefaultProps.d.ts.map +1 -1
  404. package/types/helpers/getSplitStyles.d.ts +2 -2
  405. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  406. package/types/helpers/getThemeCSSRules.d.ts.map +1 -1
  407. package/types/helpers/getTokenForKey.d.ts +6 -0
  408. package/types/helpers/getTokenForKey.d.ts.map +1 -0
  409. package/types/helpers/mainThreadPressEvents.native.d.ts +4 -5
  410. package/types/helpers/mainThreadPressEvents.native.d.ts.map +1 -1
  411. package/types/helpers/mediaObjectToString.d.ts +3 -0
  412. package/types/helpers/mediaObjectToString.d.ts.map +1 -0
  413. package/types/helpers/mediaState.d.ts +7 -0
  414. package/types/helpers/mediaState.d.ts.map +1 -0
  415. package/types/helpers/normalizeColor.d.ts +1 -1
  416. package/types/helpers/normalizeColor.d.ts.map +1 -1
  417. package/types/helpers/normalizeValueWithProperty.d.ts.map +1 -1
  418. package/types/helpers/parseNativeStyle.d.ts +14 -0
  419. package/types/helpers/parseNativeStyle.d.ts.map +1 -0
  420. package/types/helpers/parseOutlineShorthand.d.ts +3 -0
  421. package/types/helpers/parseOutlineShorthand.d.ts.map +1 -0
  422. package/types/helpers/parseOutlineShorthand.native.d.ts +3 -0
  423. package/types/helpers/parseOutlineShorthand.native.d.ts.map +1 -0
  424. package/types/helpers/platformResolveValue.d.ts +6 -0
  425. package/types/helpers/platformResolveValue.d.ts.map +1 -0
  426. package/types/helpers/platformResolveValue.native.d.ts +7 -0
  427. package/types/helpers/platformResolveValue.native.d.ts.map +1 -0
  428. package/types/helpers/propMapper.d.ts +2 -2
  429. package/types/helpers/propMapper.d.ts.map +1 -1
  430. package/types/helpers/pseudoTransitions.d.ts +29 -0
  431. package/types/helpers/pseudoTransitions.d.ts.map +1 -0
  432. package/types/helpers/resolveAnimationDriver.d.ts +7 -0
  433. package/types/helpers/resolveAnimationDriver.d.ts.map +1 -0
  434. package/types/helpers/resolveCompoundTokens.d.ts +9 -0
  435. package/types/helpers/resolveCompoundTokens.d.ts.map +1 -0
  436. package/types/helpers/skipProps.d.ts +1 -0
  437. package/types/helpers/skipProps.d.ts.map +1 -1
  438. package/types/helpers/themeable.d.ts.map +1 -1
  439. package/types/helpers/useRenderElement.d.ts.map +1 -1
  440. package/types/helpers/webPropsToSkip.native.d.ts +20 -20
  441. package/types/hooks/useComponentState.d.ts +2 -1
  442. package/types/hooks/useComponentState.d.ts.map +1 -1
  443. package/types/hooks/useMedia.d.ts +1 -6
  444. package/types/hooks/useMedia.d.ts.map +1 -1
  445. package/types/hooks/useProps.d.ts.map +1 -1
  446. package/types/hooks/useTheme.d.ts.map +1 -1
  447. package/types/hooks/useThemeState.d.ts.map +1 -1
  448. package/types/index.d.ts +5 -1
  449. package/types/index.d.ts.map +1 -1
  450. package/types/styled.d.ts +2 -2
  451. package/types/styled.d.ts.map +1 -1
  452. package/types/types.d.ts +105 -30
  453. package/types/types.d.ts.map +1 -1
  454. package/types/views/TamaguiProvider.d.ts +1 -4
  455. package/types/views/TamaguiProvider.d.ts.map +1 -1
  456. package/types/views/TamaguiRoot.d.ts +15 -0
  457. package/types/views/TamaguiRoot.d.ts.map +1 -0
  458. package/types/views/TamaguiRoot.native.d.ts +7 -0
  459. package/types/views/TamaguiRoot.native.d.ts.map +1 -0
  460. package/types/views/Text.d.ts.map +1 -1
  461. package/types/views/Theme.d.ts.map +1 -1
  462. package/types/views/ThemeProvider.d.ts.map +1 -1
  463. package/types/views/View.d.ts.map +1 -1
  464. package/vitest.config.d.ts +3 -0
  465. package/vitest.config.d.ts.map +1 -0
  466. package/vitest.config.ts +14 -0
  467. package/dist/cjs/Tamagui.js +0 -56
  468. package/dist/cjs/Tamagui.js.map +0 -6
  469. package/dist/cjs/_withStableStyle.js +0 -33
  470. package/dist/cjs/_withStableStyle.js.map +0 -6
  471. package/dist/cjs/animationDriverTypes.test-d.js +0 -51
  472. package/dist/cjs/animationDriverTypes.test-d.js.map +0 -6
  473. package/dist/cjs/config.js +0 -109
  474. package/dist/cjs/config.js.map +0 -6
  475. package/dist/cjs/constants/accessibilityDirectMap.js +0 -25
  476. package/dist/cjs/constants/accessibilityDirectMap.js.map +0 -6
  477. package/dist/cjs/constants/constants.js +0 -43
  478. package/dist/cjs/constants/constants.js.map +0 -6
  479. package/dist/cjs/constants/isDevTools.js +0 -28
  480. package/dist/cjs/constants/isDevTools.js.map +0 -6
  481. package/dist/cjs/constants/webToNativeProps.js +0 -22
  482. package/dist/cjs/constants/webToNativeProps.js.map +0 -6
  483. package/dist/cjs/constants/webToNativeProps.native.js +0 -115
  484. package/dist/cjs/constants/webToNativeProps.native.js.map +0 -1
  485. package/dist/cjs/contexts/ComponentContext.js +0 -30
  486. package/dist/cjs/contexts/ComponentContext.js.map +0 -6
  487. package/dist/cjs/contexts/GroupContext.js +0 -22
  488. package/dist/cjs/contexts/GroupContext.js.map +0 -6
  489. package/dist/cjs/createComponent.js +0 -697
  490. package/dist/cjs/createComponent.js.map +0 -6
  491. package/dist/cjs/createFont.js +0 -53
  492. package/dist/cjs/createFont.js.map +0 -6
  493. package/dist/cjs/createShorthands.js +0 -23
  494. package/dist/cjs/createShorthands.js.map +0 -6
  495. package/dist/cjs/createTamagui.js +0 -190
  496. package/dist/cjs/createTamagui.js.map +0 -6
  497. package/dist/cjs/createTheme.js +0 -21
  498. package/dist/cjs/createTheme.js.map +0 -6
  499. package/dist/cjs/createTheme.native.js.map +0 -1
  500. package/dist/cjs/createTokens.js +0 -24
  501. package/dist/cjs/createTokens.js.map +0 -6
  502. package/dist/cjs/createVariable.js +0 -89
  503. package/dist/cjs/createVariable.js.map +0 -6
  504. package/dist/cjs/createVariables.js +0 -56
  505. package/dist/cjs/createVariables.js.map +0 -6
  506. package/dist/cjs/defaultComponentState.js +0 -38
  507. package/dist/cjs/defaultComponentState.js.map +0 -6
  508. package/dist/cjs/eventHandling.js +0 -41
  509. package/dist/cjs/eventHandling.js.map +0 -6
  510. package/dist/cjs/helpers/createDesignSystem.js +0 -120
  511. package/dist/cjs/helpers/createDesignSystem.js.map +0 -6
  512. package/dist/cjs/helpers/createMediaStyle.js +0 -74
  513. package/dist/cjs/helpers/createMediaStyle.js.map +0 -6
  514. package/dist/cjs/helpers/createStyledContext.js +0 -52
  515. package/dist/cjs/helpers/createStyledContext.js.map +0 -6
  516. package/dist/cjs/helpers/defaultAnimationDriver.js +0 -39
  517. package/dist/cjs/helpers/defaultAnimationDriver.js.map +0 -6
  518. package/dist/cjs/helpers/defaultOffset.js +0 -21
  519. package/dist/cjs/helpers/defaultOffset.js.map +0 -6
  520. package/dist/cjs/helpers/expandStyle.js +0 -73
  521. package/dist/cjs/helpers/expandStyle.js.map +0 -6
  522. package/dist/cjs/helpers/expandStyles.js +0 -34
  523. package/dist/cjs/helpers/expandStyles.js.map +0 -6
  524. package/dist/cjs/helpers/getCSSStylesAtomic.js +0 -156
  525. package/dist/cjs/helpers/getCSSStylesAtomic.js.map +0 -6
  526. package/dist/cjs/helpers/getDefaultProps.js +0 -31
  527. package/dist/cjs/helpers/getDefaultProps.js.map +0 -6
  528. package/dist/cjs/helpers/getDynamicVal.js +0 -62
  529. package/dist/cjs/helpers/getDynamicVal.js.map +0 -6
  530. package/dist/cjs/helpers/getExpandedShorthands.js +0 -34
  531. package/dist/cjs/helpers/getExpandedShorthands.js.map +0 -6
  532. package/dist/cjs/helpers/getFontLanguage.js +0 -21
  533. package/dist/cjs/helpers/getFontLanguage.js.map +0 -6
  534. package/dist/cjs/helpers/getGroupPropParts.js +0 -34
  535. package/dist/cjs/helpers/getGroupPropParts.js.map +0 -6
  536. package/dist/cjs/helpers/getShorthandValue.js +0 -23
  537. package/dist/cjs/helpers/getShorthandValue.js.map +0 -6
  538. package/dist/cjs/helpers/getSplitStyles.js +0 -630
  539. package/dist/cjs/helpers/getSplitStyles.js.map +0 -6
  540. package/dist/cjs/helpers/getThemeCSSRules.js +0 -89
  541. package/dist/cjs/helpers/getThemeCSSRules.js.map +0 -6
  542. package/dist/cjs/helpers/getVariantExtras.js +0 -59
  543. package/dist/cjs/helpers/getVariantExtras.js.map +0 -6
  544. package/dist/cjs/helpers/insertStyleRule.js +0 -196
  545. package/dist/cjs/helpers/insertStyleRule.js.map +0 -6
  546. package/dist/cjs/helpers/isActivePlatform.js +0 -31
  547. package/dist/cjs/helpers/isActivePlatform.js.map +0 -6
  548. package/dist/cjs/helpers/isActiveTheme.js +0 -24
  549. package/dist/cjs/helpers/isActiveTheme.js.map +0 -6
  550. package/dist/cjs/helpers/isObj.js +0 -21
  551. package/dist/cjs/helpers/isObj.js.map +0 -6
  552. package/dist/cjs/helpers/isTamaguiComponent.js +0 -24
  553. package/dist/cjs/helpers/isTamaguiComponent.js.map +0 -6
  554. package/dist/cjs/helpers/isTamaguiElement.js +0 -30
  555. package/dist/cjs/helpers/isTamaguiElement.js.map +0 -6
  556. package/dist/cjs/helpers/log.js +0 -33
  557. package/dist/cjs/helpers/log.js.map +0 -6
  558. package/dist/cjs/helpers/mainThreadPressEvents.js +0 -22
  559. package/dist/cjs/helpers/mainThreadPressEvents.js.map +0 -6
  560. package/dist/cjs/helpers/matchMedia.js +0 -34
  561. package/dist/cjs/helpers/matchMedia.js.map +0 -6
  562. package/dist/cjs/helpers/mergeProps.js +0 -55
  563. package/dist/cjs/helpers/mergeProps.js.map +0 -6
  564. package/dist/cjs/helpers/mergeRenderElementProps.js +0 -25
  565. package/dist/cjs/helpers/mergeRenderElementProps.js.map +0 -6
  566. package/dist/cjs/helpers/mergeSlotStyleProps.js +0 -29
  567. package/dist/cjs/helpers/mergeSlotStyleProps.js.map +0 -6
  568. package/dist/cjs/helpers/mergeVariants.js +0 -38
  569. package/dist/cjs/helpers/mergeVariants.js.map +0 -6
  570. package/dist/cjs/helpers/nativeOnlyProps.js +0 -55
  571. package/dist/cjs/helpers/nativeOnlyProps.js.map +0 -6
  572. package/dist/cjs/helpers/normalizeColor.js +0 -26
  573. package/dist/cjs/helpers/normalizeColor.js.map +0 -6
  574. package/dist/cjs/helpers/normalizeShadow.js +0 -40
  575. package/dist/cjs/helpers/normalizeShadow.js.map +0 -6
  576. package/dist/cjs/helpers/normalizeStyle.js +0 -36
  577. package/dist/cjs/helpers/normalizeStyle.js.map +0 -6
  578. package/dist/cjs/helpers/normalizeStylePropKeys.js +0 -21
  579. package/dist/cjs/helpers/normalizeStylePropKeys.js.map +0 -6
  580. package/dist/cjs/helpers/normalizeValueWithProperty.js +0 -32
  581. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +0 -6
  582. package/dist/cjs/helpers/objectIdentityKey.js +0 -38
  583. package/dist/cjs/helpers/objectIdentityKey.js.map +0 -6
  584. package/dist/cjs/helpers/parseBorderShorthand.js +0 -22
  585. package/dist/cjs/helpers/parseBorderShorthand.js.map +0 -6
  586. package/dist/cjs/helpers/pointerEvents.js +0 -22
  587. package/dist/cjs/helpers/pointerEvents.js.map +0 -6
  588. package/dist/cjs/helpers/propMapper.js +0 -257
  589. package/dist/cjs/helpers/propMapper.js.map +0 -6
  590. package/dist/cjs/helpers/proxyThemeToParents.js +0 -40
  591. package/dist/cjs/helpers/proxyThemeToParents.js.map +0 -6
  592. package/dist/cjs/helpers/proxyThemeVariables.js +0 -31
  593. package/dist/cjs/helpers/proxyThemeVariables.js.map +0 -6
  594. package/dist/cjs/helpers/pseudoDescriptors.js +0 -72
  595. package/dist/cjs/helpers/pseudoDescriptors.js.map +0 -6
  596. package/dist/cjs/helpers/registerCSSVariable.js +0 -47
  597. package/dist/cjs/helpers/registerCSSVariable.js.map +0 -6
  598. package/dist/cjs/helpers/resolveRem.js +0 -27
  599. package/dist/cjs/helpers/resolveRem.js.map +0 -6
  600. package/dist/cjs/helpers/resolveSafeArea.js +0 -29
  601. package/dist/cjs/helpers/resolveSafeArea.js.map +0 -6
  602. package/dist/cjs/helpers/setElementProps.js +0 -24
  603. package/dist/cjs/helpers/setElementProps.js.map +0 -6
  604. package/dist/cjs/helpers/skipProps.js +0 -38
  605. package/dist/cjs/helpers/skipProps.js.map +0 -6
  606. package/dist/cjs/helpers/sortString.js +0 -21
  607. package/dist/cjs/helpers/sortString.js.map +0 -6
  608. package/dist/cjs/helpers/subscribeToContextGroup.js +0 -74
  609. package/dist/cjs/helpers/subscribeToContextGroup.js.map +0 -6
  610. package/dist/cjs/helpers/themeable.js +0 -56
  611. package/dist/cjs/helpers/themeable.js.map +0 -6
  612. package/dist/cjs/helpers/themes.js +0 -33
  613. package/dist/cjs/helpers/themes.js.map +0 -6
  614. package/dist/cjs/helpers/timer.js +0 -27
  615. package/dist/cjs/helpers/timer.js.map +0 -6
  616. package/dist/cjs/helpers/transformsToString.js +0 -33
  617. package/dist/cjs/helpers/transformsToString.js.map +0 -6
  618. package/dist/cjs/helpers/useRenderElement.js +0 -42
  619. package/dist/cjs/helpers/useRenderElement.js.map +0 -6
  620. package/dist/cjs/helpers/webPropsToSkip.js +0 -21
  621. package/dist/cjs/helpers/webPropsToSkip.js.map +0 -6
  622. package/dist/cjs/helpers/wrapStyleTags.js +0 -38
  623. package/dist/cjs/helpers/wrapStyleTags.js.map +0 -6
  624. package/dist/cjs/hooks/doesRootSchemeMatchSystem.js +0 -23
  625. package/dist/cjs/hooks/doesRootSchemeMatchSystem.js.map +0 -6
  626. package/dist/cjs/hooks/getThemeProxied.js +0 -56
  627. package/dist/cjs/hooks/getThemeProxied.js.map +0 -6
  628. package/dist/cjs/hooks/useComponentState.js +0 -96
  629. package/dist/cjs/hooks/useComponentState.js.map +0 -6
  630. package/dist/cjs/hooks/useDisableSSR.js +0 -24
  631. package/dist/cjs/hooks/useDisableSSR.js.map +0 -6
  632. package/dist/cjs/hooks/useIsTouchDevice.js +0 -22
  633. package/dist/cjs/hooks/useIsTouchDevice.js.map +0 -6
  634. package/dist/cjs/hooks/useMedia.js +0 -183
  635. package/dist/cjs/hooks/useMedia.js.map +0 -6
  636. package/dist/cjs/hooks/useProps.js +0 -106
  637. package/dist/cjs/hooks/useProps.js.map +0 -6
  638. package/dist/cjs/hooks/useTheme.js +0 -35
  639. package/dist/cjs/hooks/useTheme.js.map +0 -6
  640. package/dist/cjs/hooks/useThemeName.js +0 -25
  641. package/dist/cjs/hooks/useThemeName.js.map +0 -6
  642. package/dist/cjs/hooks/useThemeState.js +0 -218
  643. package/dist/cjs/hooks/useThemeState.js.map +0 -6
  644. package/dist/cjs/index.js +0 -108
  645. package/dist/cjs/index.js.map +0 -6
  646. package/dist/cjs/inject-styles.js +0 -28
  647. package/dist/cjs/inject-styles.js.map +0 -6
  648. package/dist/cjs/insertFont.js +0 -68
  649. package/dist/cjs/insertFont.js.map +0 -6
  650. package/dist/cjs/interfaces/CSSColorNames.js +0 -14
  651. package/dist/cjs/interfaces/CSSColorNames.js.map +0 -6
  652. package/dist/cjs/interfaces/GetRef.js +0 -14
  653. package/dist/cjs/interfaces/GetRef.js.map +0 -6
  654. package/dist/cjs/interfaces/RNExclusiveTypes.js +0 -14
  655. package/dist/cjs/interfaces/RNExclusiveTypes.js.map +0 -6
  656. package/dist/cjs/interfaces/TamaguiComponentEvents.js +0 -14
  657. package/dist/cjs/interfaces/TamaguiComponentEvents.js.map +0 -6
  658. package/dist/cjs/interfaces/TamaguiComponentPropsBaseBase.js +0 -14
  659. package/dist/cjs/interfaces/TamaguiComponentPropsBaseBase.js.map +0 -6
  660. package/dist/cjs/setupHooks.js +0 -25
  661. package/dist/cjs/setupHooks.js.map +0 -6
  662. package/dist/cjs/setupReactNative.js +0 -43
  663. package/dist/cjs/setupReactNative.js.map +0 -6
  664. package/dist/cjs/styled.js +0 -116
  665. package/dist/cjs/styled.js.map +0 -6
  666. package/dist/cjs/styledHtml.test-d.js +0 -136
  667. package/dist/cjs/styledHtml.test-d.js.map +0 -6
  668. package/dist/cjs/type-utils.js +0 -14
  669. package/dist/cjs/type-utils.js.map +0 -6
  670. package/dist/cjs/types.js +0 -14
  671. package/dist/cjs/types.js.map +0 -6
  672. package/dist/cjs/views/Configuration.js +0 -33
  673. package/dist/cjs/views/Configuration.js.map +0 -6
  674. package/dist/cjs/views/FontLanguage.js +0 -32
  675. package/dist/cjs/views/FontLanguage.js.map +0 -6
  676. package/dist/cjs/views/Slot.js +0 -55
  677. package/dist/cjs/views/Slot.js.map +0 -6
  678. package/dist/cjs/views/Stack.js +0 -27
  679. package/dist/cjs/views/Stack.js.map +0 -6
  680. package/dist/cjs/views/Stack.native.js.map +0 -1
  681. package/dist/cjs/views/TamaguiProvider.js +0 -93
  682. package/dist/cjs/views/TamaguiProvider.js.map +0 -6
  683. package/dist/cjs/views/Text.js +0 -59
  684. package/dist/cjs/views/Text.js.map +0 -6
  685. package/dist/cjs/views/Theme.js +0 -124
  686. package/dist/cjs/views/Theme.js.map +0 -6
  687. package/dist/cjs/views/ThemeDebug.js +0 -81
  688. package/dist/cjs/views/ThemeDebug.js.map +0 -6
  689. package/dist/cjs/views/ThemeProvider.js +0 -42
  690. package/dist/cjs/views/ThemeProvider.js.map +0 -6
  691. package/dist/cjs/views/View.js +0 -26
  692. package/dist/cjs/views/View.js.map +0 -6
  693. package/dist/esm/Tamagui.js +0 -35
  694. package/dist/esm/Tamagui.js.map +0 -6
  695. package/dist/esm/_withStableStyle.js +0 -12
  696. package/dist/esm/_withStableStyle.js.map +0 -6
  697. package/dist/esm/animationDriverTypes.test-d.js +0 -51
  698. package/dist/esm/animationDriverTypes.test-d.js.map +0 -6
  699. package/dist/esm/config.js +0 -94
  700. package/dist/esm/config.js.map +0 -6
  701. package/dist/esm/constants/accessibilityDirectMap.js +0 -9
  702. package/dist/esm/constants/accessibilityDirectMap.js.map +0 -6
  703. package/dist/esm/constants/constants.js +0 -27
  704. package/dist/esm/constants/constants.js.map +0 -6
  705. package/dist/esm/constants/isDevTools.js +0 -12
  706. package/dist/esm/constants/isDevTools.js.map +0 -6
  707. package/dist/esm/constants/webToNativeProps.js +0 -6
  708. package/dist/esm/constants/webToNativeProps.js.map +0 -6
  709. package/dist/esm/constants/webToNativeProps.mjs +0 -4
  710. package/dist/esm/constants/webToNativeProps.mjs.map +0 -1
  711. package/dist/esm/constants/webToNativeProps.native.js +0 -88
  712. package/dist/esm/constants/webToNativeProps.native.js.map +0 -1
  713. package/dist/esm/contexts/ComponentContext.js +0 -15
  714. package/dist/esm/contexts/ComponentContext.js.map +0 -6
  715. package/dist/esm/contexts/GroupContext.js +0 -6
  716. package/dist/esm/contexts/GroupContext.js.map +0 -6
  717. package/dist/esm/createComponent.js +0 -702
  718. package/dist/esm/createComponent.js.map +0 -6
  719. package/dist/esm/createFont.js +0 -37
  720. package/dist/esm/createFont.js.map +0 -6
  721. package/dist/esm/createShorthands.js +0 -7
  722. package/dist/esm/createShorthands.js.map +0 -6
  723. package/dist/esm/createTamagui.js +0 -189
  724. package/dist/esm/createTamagui.js.map +0 -6
  725. package/dist/esm/createTheme.js +0 -5
  726. package/dist/esm/createTheme.js.map +0 -6
  727. package/dist/esm/createTheme.mjs +0 -3
  728. package/dist/esm/createTheme.mjs.map +0 -1
  729. package/dist/esm/createTheme.native.js +0 -5
  730. package/dist/esm/createTheme.native.js.map +0 -1
  731. package/dist/esm/createTokens.js +0 -8
  732. package/dist/esm/createTokens.js.map +0 -6
  733. package/dist/esm/createVariable.js +0 -75
  734. package/dist/esm/createVariable.js.map +0 -6
  735. package/dist/esm/createVariables.js +0 -42
  736. package/dist/esm/createVariables.js.map +0 -6
  737. package/dist/esm/defaultComponentState.js +0 -22
  738. package/dist/esm/defaultComponentState.js.map +0 -6
  739. package/dist/esm/eventHandling.js +0 -25
  740. package/dist/esm/eventHandling.js.map +0 -6
  741. package/dist/esm/helpers/createDesignSystem.js +0 -107
  742. package/dist/esm/helpers/createDesignSystem.js.map +0 -6
  743. package/dist/esm/helpers/createMediaStyle.js +0 -60
  744. package/dist/esm/helpers/createMediaStyle.js.map +0 -6
  745. package/dist/esm/helpers/createStyledContext.js +0 -31
  746. package/dist/esm/helpers/createStyledContext.js.map +0 -6
  747. package/dist/esm/helpers/defaultAnimationDriver.js +0 -23
  748. package/dist/esm/helpers/defaultAnimationDriver.js.map +0 -6
  749. package/dist/esm/helpers/defaultOffset.js +0 -5
  750. package/dist/esm/helpers/defaultOffset.js.map +0 -6
  751. package/dist/esm/helpers/expandStyle.js +0 -59
  752. package/dist/esm/helpers/expandStyle.js.map +0 -6
  753. package/dist/esm/helpers/expandStyles.js +0 -19
  754. package/dist/esm/helpers/expandStyles.js.map +0 -6
  755. package/dist/esm/helpers/getCSSStylesAtomic.js +0 -147
  756. package/dist/esm/helpers/getCSSStylesAtomic.js.map +0 -6
  757. package/dist/esm/helpers/getDefaultProps.js +0 -15
  758. package/dist/esm/helpers/getDefaultProps.js.map +0 -6
  759. package/dist/esm/helpers/getDynamicVal.js +0 -46
  760. package/dist/esm/helpers/getDynamicVal.js.map +0 -6
  761. package/dist/esm/helpers/getExpandedShorthands.js +0 -18
  762. package/dist/esm/helpers/getExpandedShorthands.js.map +0 -6
  763. package/dist/esm/helpers/getFontLanguage.js +0 -5
  764. package/dist/esm/helpers/getFontLanguage.js.map +0 -6
  765. package/dist/esm/helpers/getGroupPropParts.js +0 -19
  766. package/dist/esm/helpers/getGroupPropParts.js.map +0 -6
  767. package/dist/esm/helpers/getShorthandValue.js +0 -7
  768. package/dist/esm/helpers/getShorthandValue.js.map +0 -6
  769. package/dist/esm/helpers/getSplitStyles.js +0 -650
  770. package/dist/esm/helpers/getSplitStyles.js.map +0 -6
  771. package/dist/esm/helpers/getThemeCSSRules.js +0 -78
  772. package/dist/esm/helpers/getThemeCSSRules.js.map +0 -6
  773. package/dist/esm/helpers/getVariantExtras.js +0 -44
  774. package/dist/esm/helpers/getVariantExtras.js.map +0 -6
  775. package/dist/esm/helpers/insertStyleRule.js +0 -181
  776. package/dist/esm/helpers/insertStyleRule.js.map +0 -6
  777. package/dist/esm/helpers/isActivePlatform.js +0 -15
  778. package/dist/esm/helpers/isActivePlatform.js.map +0 -6
  779. package/dist/esm/helpers/isActiveTheme.js +0 -8
  780. package/dist/esm/helpers/isActiveTheme.js.map +0 -6
  781. package/dist/esm/helpers/isObj.js +0 -5
  782. package/dist/esm/helpers/isObj.js.map +0 -6
  783. package/dist/esm/helpers/isTamaguiComponent.js +0 -8
  784. package/dist/esm/helpers/isTamaguiComponent.js.map +0 -6
  785. package/dist/esm/helpers/isTamaguiElement.js +0 -7
  786. package/dist/esm/helpers/isTamaguiElement.js.map +0 -6
  787. package/dist/esm/helpers/log.js +0 -17
  788. package/dist/esm/helpers/log.js.map +0 -6
  789. package/dist/esm/helpers/mainThreadPressEvents.js +0 -6
  790. package/dist/esm/helpers/mainThreadPressEvents.js.map +0 -6
  791. package/dist/esm/helpers/matchMedia.js +0 -18
  792. package/dist/esm/helpers/matchMedia.js.map +0 -6
  793. package/dist/esm/helpers/mergeProps.js +0 -39
  794. package/dist/esm/helpers/mergeProps.js.map +0 -6
  795. package/dist/esm/helpers/mergeRenderElementProps.js +0 -9
  796. package/dist/esm/helpers/mergeRenderElementProps.js.map +0 -6
  797. package/dist/esm/helpers/mergeSlotStyleProps.js +0 -14
  798. package/dist/esm/helpers/mergeSlotStyleProps.js.map +0 -6
  799. package/dist/esm/helpers/mergeVariants.js +0 -22
  800. package/dist/esm/helpers/mergeVariants.js.map +0 -6
  801. package/dist/esm/helpers/nativeOnlyProps.js +0 -39
  802. package/dist/esm/helpers/nativeOnlyProps.js.map +0 -6
  803. package/dist/esm/helpers/normalizeColor.js +0 -10
  804. package/dist/esm/helpers/normalizeColor.js.map +0 -6
  805. package/dist/esm/helpers/normalizeShadow.js +0 -24
  806. package/dist/esm/helpers/normalizeShadow.js.map +0 -6
  807. package/dist/esm/helpers/normalizeStyle.js +0 -24
  808. package/dist/esm/helpers/normalizeStyle.js.map +0 -6
  809. package/dist/esm/helpers/normalizeStylePropKeys.js +0 -5
  810. package/dist/esm/helpers/normalizeStylePropKeys.js.map +0 -6
  811. package/dist/esm/helpers/normalizeValueWithProperty.js +0 -17
  812. package/dist/esm/helpers/normalizeValueWithProperty.js.map +0 -6
  813. package/dist/esm/helpers/objectIdentityKey.js +0 -22
  814. package/dist/esm/helpers/objectIdentityKey.js.map +0 -6
  815. package/dist/esm/helpers/parseBorderShorthand.js +0 -6
  816. package/dist/esm/helpers/parseBorderShorthand.js.map +0 -6
  817. package/dist/esm/helpers/pointerEvents.js +0 -6
  818. package/dist/esm/helpers/pointerEvents.js.map +0 -6
  819. package/dist/esm/helpers/propMapper.js +0 -251
  820. package/dist/esm/helpers/propMapper.js.map +0 -6
  821. package/dist/esm/helpers/proxyThemeToParents.js +0 -24
  822. package/dist/esm/helpers/proxyThemeToParents.js.map +0 -6
  823. package/dist/esm/helpers/proxyThemeVariables.js +0 -15
  824. package/dist/esm/helpers/proxyThemeVariables.js.map +0 -6
  825. package/dist/esm/helpers/pseudoDescriptors.js +0 -56
  826. package/dist/esm/helpers/pseudoDescriptors.js.map +0 -6
  827. package/dist/esm/helpers/registerCSSVariable.js +0 -31
  828. package/dist/esm/helpers/registerCSSVariable.js.map +0 -6
  829. package/dist/esm/helpers/resolveRem.js +0 -11
  830. package/dist/esm/helpers/resolveRem.js.map +0 -6
  831. package/dist/esm/helpers/resolveSafeArea.js +0 -13
  832. package/dist/esm/helpers/resolveSafeArea.js.map +0 -6
  833. package/dist/esm/helpers/setElementProps.js +0 -8
  834. package/dist/esm/helpers/setElementProps.js.map +0 -6
  835. package/dist/esm/helpers/skipProps.js +0 -23
  836. package/dist/esm/helpers/skipProps.js.map +0 -6
  837. package/dist/esm/helpers/sortString.js +0 -5
  838. package/dist/esm/helpers/sortString.js.map +0 -6
  839. package/dist/esm/helpers/subscribeToContextGroup.js +0 -59
  840. package/dist/esm/helpers/subscribeToContextGroup.js.map +0 -6
  841. package/dist/esm/helpers/themeable.js +0 -35
  842. package/dist/esm/helpers/themeable.js.map +0 -6
  843. package/dist/esm/helpers/themes.js +0 -17
  844. package/dist/esm/helpers/themes.js.map +0 -6
  845. package/dist/esm/helpers/timer.js +0 -11
  846. package/dist/esm/helpers/timer.js.map +0 -6
  847. package/dist/esm/helpers/transformsToString.js +0 -17
  848. package/dist/esm/helpers/transformsToString.js.map +0 -6
  849. package/dist/esm/helpers/useRenderElement.js +0 -28
  850. package/dist/esm/helpers/useRenderElement.js.map +0 -6
  851. package/dist/esm/helpers/webPropsToSkip.js +0 -5
  852. package/dist/esm/helpers/webPropsToSkip.js.map +0 -6
  853. package/dist/esm/helpers/wrapStyleTags.js +0 -23
  854. package/dist/esm/helpers/wrapStyleTags.js.map +0 -6
  855. package/dist/esm/hooks/doesRootSchemeMatchSystem.js +0 -7
  856. package/dist/esm/hooks/doesRootSchemeMatchSystem.js.map +0 -6
  857. package/dist/esm/hooks/getThemeProxied.js +0 -44
  858. package/dist/esm/hooks/getThemeProxied.js.map +0 -6
  859. package/dist/esm/hooks/useComponentState.js +0 -91
  860. package/dist/esm/hooks/useComponentState.js.map +0 -6
  861. package/dist/esm/hooks/useDisableSSR.js +0 -8
  862. package/dist/esm/hooks/useDisableSSR.js.map +0 -6
  863. package/dist/esm/hooks/useIsTouchDevice.js +0 -7
  864. package/dist/esm/hooks/useIsTouchDevice.js.map +0 -6
  865. package/dist/esm/hooks/useMedia.js +0 -172
  866. package/dist/esm/hooks/useMedia.js.map +0 -6
  867. package/dist/esm/hooks/useProps.js +0 -92
  868. package/dist/esm/hooks/useProps.js.map +0 -6
  869. package/dist/esm/hooks/useTheme.js +0 -21
  870. package/dist/esm/hooks/useTheme.js.map +0 -6
  871. package/dist/esm/hooks/useThemeName.js +0 -9
  872. package/dist/esm/hooks/useThemeName.js.map +0 -6
  873. package/dist/esm/hooks/useThemeState.js +0 -212
  874. package/dist/esm/hooks/useThemeState.js.map +0 -6
  875. package/dist/esm/inject-styles.js +0 -12
  876. package/dist/esm/inject-styles.js.map +0 -6
  877. package/dist/esm/insertFont.js +0 -56
  878. package/dist/esm/insertFont.js.map +0 -6
  879. package/dist/esm/interfaces/CSSColorNames.js +0 -1
  880. package/dist/esm/interfaces/CSSColorNames.js.map +0 -6
  881. package/dist/esm/interfaces/GetRef.js +0 -1
  882. package/dist/esm/interfaces/GetRef.js.map +0 -6
  883. package/dist/esm/interfaces/RNExclusiveTypes.js +0 -1
  884. package/dist/esm/interfaces/RNExclusiveTypes.js.map +0 -6
  885. package/dist/esm/interfaces/TamaguiComponentEvents.js +0 -1
  886. package/dist/esm/interfaces/TamaguiComponentEvents.js.map +0 -6
  887. package/dist/esm/interfaces/TamaguiComponentPropsBaseBase.js +0 -1
  888. package/dist/esm/interfaces/TamaguiComponentPropsBaseBase.js.map +0 -6
  889. package/dist/esm/setupHooks.js +0 -9
  890. package/dist/esm/setupHooks.js.map +0 -6
  891. package/dist/esm/setupReactNative.js +0 -27
  892. package/dist/esm/setupReactNative.js.map +0 -6
  893. package/dist/esm/styled.js +0 -102
  894. package/dist/esm/styled.js.map +0 -6
  895. package/dist/esm/styledHtml.test-d.js +0 -137
  896. package/dist/esm/styledHtml.test-d.js.map +0 -6
  897. package/dist/esm/type-utils.js +0 -1
  898. package/dist/esm/type-utils.js.map +0 -6
  899. package/dist/esm/types.js +0 -1
  900. package/dist/esm/types.js.map +0 -6
  901. package/dist/esm/views/Configuration.js +0 -12
  902. package/dist/esm/views/Configuration.js.map +0 -6
  903. package/dist/esm/views/FontLanguage.js +0 -16
  904. package/dist/esm/views/FontLanguage.js.map +0 -6
  905. package/dist/esm/views/Slot.js +0 -43
  906. package/dist/esm/views/Slot.js.map +0 -6
  907. package/dist/esm/views/Stack.js +0 -13
  908. package/dist/esm/views/Stack.js.map +0 -6
  909. package/dist/esm/views/Stack.mjs +0 -11
  910. package/dist/esm/views/Stack.mjs.map +0 -1
  911. package/dist/esm/views/Stack.native.js +0 -11
  912. package/dist/esm/views/Stack.native.js.map +0 -1
  913. package/dist/esm/views/TamaguiProvider.js +0 -77
  914. package/dist/esm/views/TamaguiProvider.js.map +0 -6
  915. package/dist/esm/views/Text.js +0 -44
  916. package/dist/esm/views/Text.js.map +0 -6
  917. package/dist/esm/views/Theme.js +0 -110
  918. package/dist/esm/views/Theme.js.map +0 -6
  919. package/dist/esm/views/ThemeDebug.js +0 -69
  920. package/dist/esm/views/ThemeDebug.js.map +0 -6
  921. package/dist/esm/views/ThemeProvider.js +0 -31
  922. package/dist/esm/views/ThemeProvider.js.map +0 -6
  923. package/dist/esm/views/View.js +0 -12
  924. package/dist/esm/views/View.js.map +0 -6
  925. package/types/constants/webToNativeProps.d.ts.map +0 -1
  926. package/types/constants/webToNativeProps.native.d.ts.map +0 -1
  927. package/types/createTheme.d.ts.map +0 -1
  928. package/types/helpers/expandStyle.native.d.ts.map +0 -1
  929. package/types/helpers/propMapper.native.d.ts.map +0 -1
  930. package/types/views/Stack.d.ts.map +0 -1
@@ -1,11 +1,8 @@
1
1
  import { isAndroid } from '@tamagui/constants'
2
- import { tokenCategories } from '@tamagui/helpers'
3
- import { getConfig } from '../config'
4
2
  import { getVariableValue, isVariable } from '../createVariable'
5
3
  import type {
6
4
  GetStyleState,
7
5
  PropMapper,
8
- ResolveVariableAs,
9
6
  SplitStyleProps,
10
7
  StyleResolver,
11
8
  TamaguiInternalConfig,
@@ -13,20 +10,29 @@ import type {
13
10
  VariantSpreadFunction,
14
11
  } from '../types'
15
12
  import { expandStyle } from './expandStyle'
13
+ import {
14
+ getLastFontFamilyToken,
15
+ getTokenForKey,
16
+ resolveVariableValue,
17
+ setLastFontFamilyToken,
18
+ } from './getTokenForKey'
16
19
  import { getFontsForLanguage, getVariantExtras } from './getVariantExtras'
17
20
  import { isObj } from './isObj'
18
21
  import { normalizeStyle } from './normalizeStyle'
22
+ import { parseNativeStyle } from './parseNativeStyle'
19
23
  import { pseudoDescriptors } from './pseudoDescriptors'
24
+ import { resolveCompoundTokens } from './resolveCompoundTokens'
20
25
  import { isRemValue, resolveRem } from './resolveRem'
21
- // import { resolveSafeAreaValue } from './resolveSafeArea'
22
26
  import { skipProps } from './skipProps'
23
27
 
28
+ export { getTokenForKey } from './getTokenForKey'
29
+
24
30
  export const propMapper: PropMapper = (key, value, styleState, disabled, map) => {
25
31
  if (disabled) {
26
32
  return map(key, value)
27
33
  }
28
34
 
29
- lastFontFamilyToken = null
35
+ setLastFontFamilyToken(null)
30
36
 
31
37
  if (!(process.env.TAMAGUI_TARGET === 'native' && isAndroid)) {
32
38
  // this shouldnt be necessary and handled in the outer loop
@@ -57,26 +63,14 @@ export const propMapper: PropMapper = (key, value, styleState, disabled, map) =>
57
63
  const originalValue = value
58
64
 
59
65
  if (value != null) {
60
- if (typeof value === 'string' && value[0] === '$') {
61
- value = getTokenForKey(key, value, styleProps, styleState)
62
- } else if (
63
- (key === 'boxShadow' ||
64
- key === 'textShadow' ||
65
- key === 'filter' ||
66
- key === 'backgroundImage' ||
67
- key === 'border') &&
68
- typeof value === 'string' &&
69
- value.includes('$')
70
- ) {
71
- // boxShadow/filter/backgroundImage/border with embedded $tokens - resolve each token
72
- // Try size first (for dimensions), then color (for the color value)
73
- value = value.replace(/(\$[\w.-]+)/g, (t) => {
74
- let r = getTokenForKey('size', t, styleProps, styleState)
75
- if (r == null) {
76
- r = getTokenForKey('color', t, styleProps, styleState)
77
- }
78
- return r != null ? String(r) : t
79
- })
66
+ if (typeof value === 'string') {
67
+ if (value[0] === '$') {
68
+ value = getTokenForKey(key, value, styleProps, styleState)
69
+ } else {
70
+ const resolved = resolveCompoundTokens(key, value, styleProps, styleState)
71
+ value =
72
+ resolved !== value ? resolved : isRemValue(value) ? resolveRem(value) : value
73
+ }
80
74
  } else if (isVariable(value)) {
81
75
  value = resolveVariableValue(key, value, styleProps.resolveValues)
82
76
  } else if (isRemValue(value)) {
@@ -84,9 +78,31 @@ export const propMapper: PropMapper = (key, value, styleState, disabled, map) =>
84
78
  }
85
79
  }
86
80
 
81
+ // on native, parse string backgroundImage/boxShadow/textShadow to RN object format
82
+ // this handles both token-resolved strings and plain strings without tokens
83
+ if (
84
+ process.env.TAMAGUI_TARGET === 'native' &&
85
+ value != null &&
86
+ typeof value === 'string' &&
87
+ (key === 'backgroundImage' || key === 'boxShadow' || key === 'textShadow')
88
+ ) {
89
+ const parsed = parseNativeStyle(key, value)
90
+ if (parsed) {
91
+ // textShadow returns [key, value] pairs to expand into separate properties
92
+ if (key === 'textShadow' && Array.isArray(parsed) && Array.isArray(parsed[0])) {
93
+ for (const [nkey, nvalue] of parsed) {
94
+ map(nkey, nvalue, originalValue)
95
+ }
96
+ return
97
+ }
98
+ value = parsed
99
+ }
100
+ }
101
+
87
102
  if (value != null) {
88
- if (key === 'fontFamily' && lastFontFamilyToken) {
89
- styleState.fontFamily = lastFontFamilyToken
103
+ const fontToken = getLastFontFamilyToken()
104
+ if (key === 'fontFamily' && fontToken) {
105
+ styleState.fontFamily = fontToken
90
106
  }
91
107
 
92
108
  const expanded = styleProps.noExpand ? null : expandStyle(key, value)
@@ -114,7 +130,7 @@ const resolveVariants: StyleResolver = (
114
130
  const { variants } = staticConfig
115
131
  if (!variants) return
116
132
 
117
- let variantValue = getVariantDefinition(variants[key], value, conf)
133
+ let variantValue = getVariantDefinition(variants[key], value, conf, styleState)
118
134
 
119
135
  if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
120
136
  console.groupCollapsed(`♦️♦️♦️ resolve variant ${key}`)
@@ -192,7 +208,7 @@ const resolveVariants: StyleResolver = (
192
208
 
193
209
  // store any changed font family (only support variables for now)
194
210
  if (fontFamilyResult && fontFamilyResult[0] === '$') {
195
- lastFontFamilyToken = getVariableValue(fontFamilyResult)
211
+ setLastFontFamilyToken(getVariableValue(fontFamilyResult))
196
212
  }
197
213
 
198
214
  return next
@@ -269,7 +285,6 @@ const resolveTokensAndVariants: StyleResolver<object> = (
269
285
  // eg: { variants: { flex: { true: { flex: 2 } } } }
270
286
  if (parentVariantKey && parentVariantKey === key) {
271
287
  res[subKey] =
272
- // SYNC WITH *1
273
288
  val[0] === '$' ? getTokenForKey(subKey, val, styleProps, styleState) : val
274
289
  } else {
275
290
  const variantOut = resolveVariants(subKey, val, styleProps, styleState, key)
@@ -301,15 +316,12 @@ const resolveTokensAndVariants: StyleResolver<object> = (
301
316
  }
302
317
 
303
318
  if (typeof val === 'string') {
304
- // SYNC WITH *1
305
319
  const fVal =
306
320
  val[0] === '$'
307
321
  ? getTokenForKey(subKey, val, styleProps, styleState)
308
- : isRemValue(val)
309
- ? resolveRem(val)
310
- : val
322
+ : resolveCompoundTokens(subKey, val, styleProps, styleState)
311
323
 
312
- res[subKey] = fVal
324
+ res[subKey] = fVal === val && isRemValue(val) ? resolveRem(val) : fVal
313
325
  continue
314
326
  }
315
327
 
@@ -351,7 +363,12 @@ const tokenCats = ['size', 'color', 'radius', 'space', 'zIndex'].map((name) => (
351
363
  }))
352
364
 
353
365
  // goes through specificity finding best matching variant function
354
- function getVariantDefinition(variant: any, value: any, conf: TamaguiInternalConfig) {
366
+ function getVariantDefinition(
367
+ variant: any,
368
+ value: any,
369
+ conf: TamaguiInternalConfig,
370
+ { theme }: Partial<GetStyleState>
371
+ ) {
355
372
  if (!variant) return
356
373
  if (typeof variant === 'function') {
357
374
  return variant
@@ -363,8 +380,18 @@ function getVariantDefinition(variant: any, value: any, conf: TamaguiInternalCon
363
380
  if (value != null) {
364
381
  const { tokensParsed } = conf
365
382
  for (const { name, spreadName } of tokenCats) {
366
- if (spreadName in variant && name in tokensParsed && value in tokensParsed[name]) {
367
- return variant[spreadName]
383
+ if (spreadName in variant) {
384
+ // check tokens first
385
+ if (name in tokensParsed && value in tokensParsed[name]) {
386
+ return variant[spreadName]
387
+ }
388
+ // or check theme (only color lives in theme, others are in tokens)
389
+ if (name === 'color' && theme && typeof value === 'string' && value[0] === '$') {
390
+ const themeKey = value.slice(1)
391
+ if (themeKey in theme) {
392
+ return variant[spreadName]
393
+ }
394
+ }
368
395
  }
369
396
  }
370
397
  const fontSizeVariant = variant['...fontSize']
@@ -375,186 +402,3 @@ function getVariantDefinition(variant: any, value: any, conf: TamaguiInternalCon
375
402
  // fallback to catch all | size
376
403
  return variant[`:${typeof value}`] || variant['...']
377
404
  }
378
-
379
- const fontShorthand = {
380
- fontSize: 'size',
381
- fontWeight: 'weight',
382
- }
383
-
384
- let lastFontFamilyToken: any = null
385
- let didLogMissingToken = false
386
-
387
- export const getTokenForKey = (
388
- key: string,
389
- value: string,
390
- styleProps: SplitStyleProps,
391
- styleState: Partial<GetStyleState>
392
- ) => {
393
- let resolveAs = styleProps.resolveValues || 'none'
394
-
395
- if (resolveAs === 'none') {
396
- return value
397
- }
398
-
399
- // handle safe area tokens: $safeAreaTop, $safeAreaBottom, $safeAreaLeft, $safeAreaRight
400
- // const safeAreaValue = resolveSafeAreaValue(value)
401
- // if (safeAreaValue !== undefined) {
402
- // return safeAreaValue
403
- // }
404
-
405
- const { theme, conf = getConfig(), context, fontFamily, staticConfig } = styleState
406
-
407
- const themeValue = theme ? theme[value] || theme[value.slice(1)] : undefined
408
-
409
- const tokensParsed = conf.tokensParsed
410
- let valOrVar: any
411
- let hasSet = false
412
-
413
- const customTokenAccept = staticConfig?.accept?.[key]
414
- if (customTokenAccept) {
415
- const val = themeValue ?? tokensParsed[customTokenAccept][value]
416
- if (val != null) {
417
- resolveAs = 'value' // always resolve custom tokens as values
418
- valOrVar = val
419
- hasSet = true
420
- }
421
- }
422
-
423
- if (themeValue) {
424
- if (resolveAs === 'except-theme') {
425
- return value
426
- }
427
-
428
- valOrVar = themeValue
429
- if (process.env.NODE_ENV === 'development' && styleState.debug === 'verbose') {
430
- globalThis.tamaguiAvoidTracking = true
431
- console.info(
432
- ` - resolving ${key} to theme value ${value} resolveAs ${resolveAs}`,
433
- valOrVar
434
- )
435
- globalThis.tamaguiAvoidTracking = false
436
- }
437
- hasSet = true
438
- } else {
439
- if (value in conf.specificTokens) {
440
- hasSet = true
441
- valOrVar = conf.specificTokens[value]
442
- } else {
443
- switch (key) {
444
- case 'fontFamily': {
445
- const fontsParsed = context?.language
446
- ? getFontsForLanguage(conf.fontsParsed, context.language)
447
- : conf.fontsParsed
448
- valOrVar = fontsParsed[value]?.family || value
449
- lastFontFamilyToken = value
450
- hasSet = true
451
- break
452
- }
453
- case 'fontSize':
454
- case 'lineHeight':
455
- case 'letterSpacing':
456
- case 'fontWeight': {
457
- const fam = fontFamily || conf.defaultFontToken
458
- if (fam) {
459
- const fontsParsed = context?.language
460
- ? getFontsForLanguage(conf.fontsParsed, context.language)
461
- : conf.fontsParsed
462
- const font = fontsParsed[fam] || fontsParsed[conf.defaultFontToken]
463
- valOrVar = font?.[fontShorthand[key] || key]?.[value] || value
464
- hasSet = true
465
- }
466
- break
467
- }
468
- }
469
- for (const cat in tokenCategories) {
470
- if (key in tokenCategories[cat]) {
471
- const res = tokensParsed[cat]?.[value]
472
-
473
- if (res != null) {
474
- valOrVar = res
475
- hasSet = true
476
- } else {
477
- if (process.env.NODE_ENV === 'development') {
478
- if (process.env.TAMAGUI_DISABLE_MISSING_TOKEN_LOG !== '1') {
479
- if (!didLogMissingToken) {
480
- didLogMissingToken = true
481
- console.groupCollapsed(
482
- `[tamagui] Warning: missing token ${key} in category ${cat} - ${value} (open for details)`
483
- )
484
- console.info(
485
- `Note: this could just be due to you not setting all the theme tokens Tamagui expects, which is harmless, but
486
- it also often can be because you have a duplicated Tamagui in your bundle, which can cause tricky bugs.`
487
- )
488
- console.info(
489
- `To see if you have duplicated dependencies, in Chrome DevTools hit CMD+P and type TamaguiProvider.
490
- If you see both a .cjs and a .mjs entry, it's duplicated.`
491
- )
492
- console.info(
493
- `You can debug that issue by opening the .mjs and .cjs files and setting a breakpoint at the top of each.`
494
- )
495
- console.info(
496
- `We only log this warning one time as it's sometimes harmless, to disable this log entirely set process.env.TAMAGUI_DISABLE_MISSING_TOKEN_LOG=1.`
497
- )
498
- console.groupEnd()
499
- }
500
- }
501
- }
502
- }
503
- }
504
- }
505
- }
506
-
507
- if (!hasSet) {
508
- const spaceVar = tokensParsed.space[value]
509
- if (spaceVar != null) {
510
- valOrVar = spaceVar
511
- hasSet = true
512
- }
513
- }
514
- }
515
-
516
- if (hasSet) {
517
- const out = resolveVariableValue(key, valOrVar, resolveAs)
518
- if (process.env.NODE_ENV === 'development' && styleState.debug === 'verbose') {
519
- globalThis.tamaguiAvoidTracking = true
520
- console.info(`resolved`, resolveAs, valOrVar, out)
521
- globalThis.tamaguiAvoidTracking = false
522
- }
523
- return out
524
- }
525
-
526
- // they didn't define this token don't return anything, we could warn?
527
-
528
- if (process.env.NODE_ENV === 'development' && styleState.debug === 'verbose') {
529
- console.warn(`Warning: no token found for ${key}, omitting`)
530
- }
531
- }
532
-
533
- function resolveVariableValue(
534
- key: string,
535
- valOrVar: Variable | any,
536
- resolveValues?: ResolveVariableAs
537
- ) {
538
- if (resolveValues === 'none') {
539
- return valOrVar
540
- }
541
- if (isVariable(valOrVar)) {
542
- if (resolveValues === 'value') {
543
- return valOrVar.val
544
- }
545
-
546
- // @ts-expect-error this is fine until we can type better
547
- const get = valOrVar?.get
548
-
549
- // shadowColor doesn't support dynamic style
550
- if (process.env.TAMAGUI_TARGET !== 'native' || key !== 'shadowColor') {
551
- if (typeof get === 'function') {
552
- const resolveDynamicFor = resolveValues === 'web' ? 'web' : undefined
553
- return get(resolveDynamicFor)
554
- }
555
- }
556
-
557
- return process.env.TAMAGUI_TARGET === 'native' ? valOrVar.val : valOrVar.variable
558
- }
559
- return valOrVar
560
- }
@@ -0,0 +1,97 @@
1
+ import type { TransitionProp, PseudoTransitions, TamaguiComponentState } from '../types'
2
+
3
+ /**
4
+ * Pseudo state for tracking enter/exit transitions
5
+ */
6
+ export type PseudoState = {
7
+ hover?: boolean
8
+ press?: boolean
9
+ focus?: boolean
10
+ // track group pseudo states: { groupName: { hover: boolean, press: boolean } }
11
+ groups?: Record<string, { hover?: boolean; press?: boolean; focus?: boolean }>
12
+ }
13
+
14
+ /**
15
+ * Resolves the effective transition based on pseudo state changes.
16
+ * When entering a pseudo state (e.g., hover), use that pseudo's transition.
17
+ * When exiting (returning to base), use the base transition.
18
+ *
19
+ * CSS-like semantics:
20
+ * - Enter hover: Uses hover's transition (fast snap)
21
+ * - Exit hover: Uses base transition (slow fade)
22
+ */
23
+ export function resolveEffectivePseudoTransition(
24
+ prev: PseudoState | undefined,
25
+ next: TamaguiComponentState,
26
+ pseudoTransitions: PseudoTransitions | undefined | null,
27
+ baseTransition: TransitionProp | undefined | null
28
+ ): TransitionProp | undefined | null {
29
+ if (!pseudoTransitions) {
30
+ return baseTransition
31
+ }
32
+
33
+ // treat undefined prev as all-false so first interaction detects entering
34
+ const prevState = prev || { hover: false, press: false, focus: false, groups: {} }
35
+
36
+ // check which pseudo states are being entered (priority: press > hover > focus)
37
+ if (next.press && !prevState.press && pseudoTransitions.pressStyle) {
38
+ return pseudoTransitions.pressStyle
39
+ }
40
+ if (next.hover && !prevState.hover && pseudoTransitions.hoverStyle) {
41
+ return pseudoTransitions.hoverStyle
42
+ }
43
+ if (next.focus && !prevState.focus && pseudoTransitions.focusStyle) {
44
+ return pseudoTransitions.focusStyle
45
+ }
46
+
47
+ // check group pseudo transitions (e.g., $group-scenario4-hover)
48
+ for (const key in pseudoTransitions) {
49
+ if (key.startsWith('$group-')) {
50
+ // parse $group-{name}-{pseudo} format
51
+ const match = key.match(/^\$group-(.+)-(hover|press|focus)$/)
52
+ if (!match) continue
53
+
54
+ const groupName = match[1]
55
+ const pseudoType = match[2] as 'hover' | 'press' | 'focus'
56
+
57
+ // get current and previous group pseudo state
58
+ const nextGroupPseudo = next.group?.[groupName]?.pseudo
59
+ const prevGroupPseudo = prevState.groups?.[groupName]
60
+
61
+ // check if entering this group pseudo state
62
+ if (nextGroupPseudo?.[pseudoType] && !prevGroupPseudo?.[pseudoType]) {
63
+ return pseudoTransitions[key as `$group-${string}-${'hover' | 'press' | 'focus'}`]
64
+ }
65
+ }
66
+ }
67
+
68
+ // exiting uses base transition
69
+ return baseTransition
70
+ }
71
+
72
+ /**
73
+ * Extracts pseudo state from TamaguiComponentState for storage in prevPseudoState
74
+ */
75
+ export function extractPseudoState(state: TamaguiComponentState): PseudoState {
76
+ const groups: PseudoState['groups'] = {}
77
+
78
+ if (state.group) {
79
+ for (const groupName in state.group) {
80
+ const pseudo = state.group[groupName]?.pseudo
81
+ if (pseudo) {
82
+ groups[groupName] = {
83
+ hover: pseudo.hover,
84
+ press: pseudo.press,
85
+ focus: pseudo.focus,
86
+ }
87
+ }
88
+ }
89
+ }
90
+
91
+ return {
92
+ hover: state.hover,
93
+ press: state.press,
94
+ focus: state.focus,
95
+ groups,
96
+ }
97
+ }
@@ -0,0 +1,23 @@
1
+ import type { AnimationDriver } from '../types'
2
+
3
+ /**
4
+ * Resolves a value that might be an AnimationDriver or a multi-driver config object
5
+ * like { default: motionDriver, css: cssDriver } into an actual AnimationDriver.
6
+ */
7
+ export function resolveAnimationDriver(
8
+ driver: AnimationDriver | Record<string, AnimationDriver> | null | undefined
9
+ ): AnimationDriver | null {
10
+ if (!driver) return null
11
+ // valid driver
12
+ if (typeof (driver as any).useAnimations === 'function') {
13
+ return driver as AnimationDriver
14
+ }
15
+ // multi-driver object - extract default
16
+ if (
17
+ 'default' in driver &&
18
+ typeof (driver as any).default?.useAnimations === 'function'
19
+ ) {
20
+ return (driver as any).default
21
+ }
22
+ return null
23
+ }
@@ -0,0 +1,28 @@
1
+ import type { GetStyleState, SplitStyleProps } from '../types'
2
+ import { platformResolveValue } from './platformResolveValue'
3
+
4
+ const compoundKeys: Record<string, boolean> = {
5
+ boxShadow: true,
6
+ textShadow: true,
7
+ filter: true,
8
+ backgroundImage: true,
9
+ border: true,
10
+ outline: true,
11
+ }
12
+
13
+ /**
14
+ * resolves embedded $tokens in compound CSS string values like
15
+ * boxShadow, textShadow, filter, backgroundImage, border, outline.
16
+ *
17
+ * returns the original value unchanged if no resolution is needed.
18
+ */
19
+ export function resolveCompoundTokens(
20
+ key: string,
21
+ value: string,
22
+ styleProps: SplitStyleProps,
23
+ styleState: Partial<GetStyleState>
24
+ ): any {
25
+ if (!value.includes('$')) return value
26
+ if (!compoundKeys[key]) return value
27
+ return platformResolveValue(key, value, styleProps, styleState)
28
+ }
@@ -9,6 +9,7 @@ export const skipProps = {
9
9
  transition: 1,
10
10
  space: 1,
11
11
  animateOnly: 1,
12
+ animatedBy: 1,
12
13
  disableClassName: 1,
13
14
  debug: 1,
14
15
  componentName: 1,
@@ -13,6 +13,8 @@ export function themeable<ComponentType extends (props: any) => any>(
13
13
  props: ThemeableProps,
14
14
  ref
15
15
  ) {
16
+ 'use no memo'
17
+
16
18
  const userDefaults = getDefaultProps(staticConfig, props.componentName)
17
19
  const defaultTheme = userDefaults?.theme
18
20
  const defaultResetTheme = userDefaults?.themeReset
@@ -24,7 +26,7 @@ export function themeable<ComponentType extends (props: any) => any>(
24
26
  for (const key in context.props) {
25
27
  const val = props[key]
26
28
  if (val !== undefined) {
27
- overriddenContextProps ||= {}
29
+ overriddenContextProps = overriddenContextProps || {}
28
30
  overriddenContextProps[key] = val
29
31
  }
30
32
  }
@@ -48,19 +50,19 @@ export function themeable<ComponentType extends (props: any) => any>(
48
50
 
49
51
  const compName = componentName || staticConfig?.componentName
50
52
  if (compName) {
51
- filteredProps ||= {}
53
+ filteredProps = filteredProps || {}
52
54
  filteredProps.componentName = compName
53
55
  }
54
56
  if ('debug' in props) {
55
- filteredProps ||= {}
57
+ filteredProps = filteredProps || {}
56
58
  filteredProps.debug = props.debug
57
59
  }
58
60
  if ('theme' in props || defaultTheme) {
59
- filteredProps ||= {}
61
+ filteredProps = filteredProps || {}
60
62
  filteredProps.name = 'theme' in props ? props.theme : defaultTheme
61
63
  }
62
64
  if ('themeReset' in props || defaultResetTheme) {
63
- filteredProps ||= {}
65
+ filteredProps = filteredProps || {}
64
66
  filteredProps.reset = 'themeReset' in props ? themeReset : defaultResetTheme
65
67
  }
66
68
 
@@ -31,6 +31,13 @@ export function evaluateRenderProp(
31
31
 
32
32
  // String tag - swap element type, reuse props from defaultElement
33
33
  if (typeof render === 'string') {
34
+ // on native, ignore lowercase tags (html/jsx elements like "div", "span")
35
+ if (
36
+ process.env.TAMAGUI_TARGET === 'native' &&
37
+ render[0] === render[0].toLowerCase()
38
+ ) {
39
+ return defaultElement
40
+ }
34
41
  return createElement(render, props, defaultChildren)
35
42
  }
36
43
 
@@ -27,6 +27,8 @@ export const useComponentState = (
27
27
  staticConfig: StaticConfig,
28
28
  config: TamaguiInternalConfig
29
29
  ) => {
30
+ 'use no memo'
31
+
30
32
  const isHydrated = useDidFinishSSR()
31
33
  const needsHydration = !useIsClientOnly()
32
34
 
@@ -53,10 +55,8 @@ export const useComponentState = (
53
55
  (props.style && hasAnimatedStyleValue(props.style))
54
56
  )
55
57
 
56
- // for backwards compat, derive from supportsCSS if new props not set
57
- const inputStyle =
58
- animationDriver?.inputStyle ?? (animationDriver?.supportsCSS ? 'css' : 'inline')
59
- const supportsCSS = inputStyle === 'css'
58
+ const inputStyle = animationDriver?.inputStyle ?? 'css'
59
+ const outputStyle = animationDriver?.outputStyle ?? 'css'
60
60
  const curStateRef = stateRef.current
61
61
 
62
62
  if (!needsHydration && hasAnimationProp) {
@@ -92,7 +92,9 @@ export const useComponentState = (
92
92
  const hasEnterStyle = !!props.enterStyle
93
93
 
94
94
  const hasAnimationThatNeedsHydrate =
95
- hasAnimationProp && !isHydrated && (animationDriver?.isReactNative || !supportsCSS)
95
+ hasAnimationProp &&
96
+ !isHydrated &&
97
+ (animationDriver?.isReactNative || inputStyle !== 'css')
96
98
 
97
99
  const canImmediatelyEnter = hasEnterStyle || isEntering
98
100
 
@@ -206,8 +208,8 @@ export const useComponentState = (
206
208
  const isDisabledManually = disableClassName && !state.unmounted
207
209
 
208
210
  if (
209
- // Only disable className for animation drivers that need inline styles
210
- (isAnimatedAndHydrated && !animationDriver?.classNameAnimation) ||
211
+ // Only disable className for animation drivers that output inline styles (not css)
212
+ (isAnimatedAndHydrated && outputStyle !== 'css') ||
211
213
  isDisabledManually ||
212
214
  isClassNameDisabled
213
215
  ) {
@@ -241,7 +243,8 @@ export const useComponentState = (
241
243
  noClass,
242
244
  state,
243
245
  stateRef,
244
- supportsCSS,
246
+ inputStyle,
247
+ outputStyle,
245
248
  willBeAnimated,
246
249
  willBeAnimatedClient,
247
250
  }