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

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 (929) 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 +1 -1
  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.js +86 -74
  117. package/dist/cjs/index.js.map +1 -1
  118. package/dist/cjs/index.native.js +9 -5
  119. package/dist/cjs/index.native.js.map +1 -1
  120. package/dist/cjs/styled.native.js.map +1 -1
  121. package/dist/cjs/views/TamaguiProvider.cjs +20 -33
  122. package/dist/cjs/views/TamaguiProvider.native.js +28 -39
  123. package/dist/cjs/views/TamaguiProvider.native.js.map +1 -1
  124. package/dist/cjs/views/TamaguiRoot.cjs +68 -0
  125. package/dist/cjs/{createTheme.native.js → views/TamaguiRoot.native.js} +8 -8
  126. package/dist/cjs/views/TamaguiRoot.native.js.map +1 -0
  127. package/dist/cjs/views/Text.cjs +2 -10
  128. package/dist/cjs/views/Text.native.js +0 -1
  129. package/dist/cjs/views/Text.native.js.map +1 -1
  130. package/dist/cjs/views/Theme.cjs +2 -0
  131. package/dist/cjs/views/Theme.native.js +2 -0
  132. package/dist/cjs/views/Theme.native.js.map +1 -1
  133. package/dist/cjs/views/ThemeProvider.cjs +3 -1
  134. package/dist/cjs/views/ThemeProvider.native.js +2 -0
  135. package/dist/cjs/views/ThemeProvider.native.js.map +1 -1
  136. package/dist/cjs/views/View.cjs +0 -2
  137. package/dist/cjs/views/View.native.js +0 -2
  138. package/dist/cjs/views/View.native.js.map +1 -1
  139. package/dist/esm/Tamagui.mjs +1 -1
  140. package/dist/esm/Tamagui.native.js +1 -1
  141. package/dist/esm/_withStableStyle.mjs +18 -7
  142. package/dist/esm/_withStableStyle.mjs.map +1 -1
  143. package/dist/esm/_withStableStyle.native.js +19 -6
  144. package/dist/esm/_withStableStyle.native.js.map +1 -1
  145. package/dist/esm/animationDriverTypes.test-d.mjs +11 -0
  146. package/dist/esm/animationDriverTypes.test-d.mjs.map +1 -1
  147. package/dist/esm/animationDriverTypes.test-d.native.js +11 -0
  148. package/dist/esm/animationDriverTypes.test-d.native.js.map +1 -1
  149. package/dist/esm/config.mjs +5 -1
  150. package/dist/esm/config.mjs.map +1 -1
  151. package/dist/esm/config.native.js +5 -1
  152. package/dist/esm/config.native.js.map +1 -1
  153. package/dist/esm/constants/constants.mjs +2 -14
  154. package/dist/esm/constants/constants.mjs.map +1 -1
  155. package/dist/esm/constants/constants.native.js +1 -12
  156. package/dist/esm/constants/constants.native.js.map +1 -1
  157. package/dist/esm/createComponent.mjs +91 -79
  158. package/dist/esm/createComponent.mjs.map +1 -1
  159. package/dist/esm/createComponent.native.js +112 -89
  160. package/dist/esm/createComponent.native.js.map +1 -1
  161. package/dist/esm/createTamagui.mjs +38 -37
  162. package/dist/esm/createTamagui.mjs.map +1 -1
  163. package/dist/esm/createTamagui.native.js +41 -37
  164. package/dist/esm/createTamagui.native.js.map +1 -1
  165. package/dist/esm/createVariable.mjs.map +1 -1
  166. package/dist/esm/eventHandling.mjs +1 -1
  167. package/dist/esm/eventHandling.mjs.map +1 -1
  168. package/dist/esm/eventHandling.native.js +84 -57
  169. package/dist/esm/eventHandling.native.js.map +1 -1
  170. package/dist/esm/helpers/createDesignSystem.mjs +43 -7
  171. package/dist/esm/helpers/createDesignSystem.mjs.map +1 -1
  172. package/dist/esm/helpers/createDesignSystem.native.js +35 -7
  173. package/dist/esm/helpers/createDesignSystem.native.js.map +1 -1
  174. package/dist/esm/helpers/createMediaStyle.mjs +7 -4
  175. package/dist/esm/helpers/createMediaStyle.mjs.map +1 -1
  176. package/dist/esm/helpers/createMediaStyle.native.js +9 -6
  177. package/dist/esm/helpers/createMediaStyle.native.js.map +1 -1
  178. package/dist/esm/helpers/createStyledContext.mjs +12 -8
  179. package/dist/esm/helpers/createStyledContext.mjs.map +1 -1
  180. package/dist/esm/helpers/createStyledContext.native.js +11 -7
  181. package/dist/esm/helpers/createStyledContext.native.js.map +1 -1
  182. package/dist/esm/helpers/defaultAnimationDriver.mjs +0 -2
  183. package/dist/esm/helpers/defaultAnimationDriver.mjs.map +1 -1
  184. package/dist/esm/helpers/defaultAnimationDriver.native.js +0 -2
  185. package/dist/esm/helpers/defaultAnimationDriver.native.js.map +1 -1
  186. package/dist/esm/helpers/expandStyle.mjs +0 -1
  187. package/dist/esm/helpers/expandStyle.mjs.map +1 -1
  188. package/dist/esm/helpers/expandStyle.native.js +9 -1
  189. package/dist/esm/helpers/expandStyle.native.js.map +1 -1
  190. package/dist/esm/helpers/getCSSStylesAtomic.mjs +8 -8
  191. package/dist/esm/helpers/getCSSStylesAtomic.mjs.map +1 -1
  192. package/dist/esm/helpers/getDefaultProps.mjs +3 -9
  193. package/dist/esm/helpers/getDefaultProps.mjs.map +1 -1
  194. package/dist/esm/helpers/getDefaultProps.native.js +3 -4
  195. package/dist/esm/helpers/getDefaultProps.native.js.map +1 -1
  196. package/dist/esm/helpers/getGroupPropParts.mjs +1 -1
  197. package/dist/esm/helpers/getGroupPropParts.native.js +1 -1
  198. package/dist/esm/helpers/getSplitStyles.mjs +59 -29
  199. package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
  200. package/dist/esm/helpers/getSplitStyles.native.js +113 -77
  201. package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
  202. package/dist/esm/helpers/getThemeCSSRules.mjs +17 -9
  203. package/dist/esm/helpers/getThemeCSSRules.mjs.map +1 -1
  204. package/dist/esm/helpers/getTokenForKey.mjs +101 -0
  205. package/dist/esm/helpers/getTokenForKey.mjs.map +1 -0
  206. package/dist/esm/helpers/getTokenForKey.native.js +116 -0
  207. package/dist/esm/helpers/getTokenForKey.native.js.map +1 -0
  208. package/dist/esm/helpers/insertStyleRule.mjs +1 -1
  209. package/dist/esm/helpers/insertStyleRule.native.js +1 -1
  210. package/dist/esm/helpers/mainThreadPressEvents.native.js +1 -1
  211. package/dist/esm/helpers/mainThreadPressEvents.native.js.map +1 -1
  212. package/dist/esm/helpers/mediaObjectToString.mjs +12 -0
  213. package/dist/esm/helpers/mediaObjectToString.mjs.map +1 -0
  214. package/dist/esm/helpers/mediaObjectToString.native.js +17 -0
  215. package/dist/esm/helpers/mediaObjectToString.native.js.map +1 -0
  216. package/dist/esm/helpers/mediaState.mjs +18 -0
  217. package/dist/esm/helpers/mediaState.mjs.map +1 -0
  218. package/dist/esm/helpers/mediaState.native.js +20 -0
  219. package/dist/esm/helpers/mediaState.native.js.map +1 -0
  220. package/dist/esm/helpers/normalizeColor.mjs +6 -1
  221. package/dist/esm/helpers/normalizeColor.mjs.map +1 -1
  222. package/dist/esm/helpers/normalizeValueWithProperty.mjs +2 -1
  223. package/dist/esm/helpers/normalizeValueWithProperty.mjs.map +1 -1
  224. package/dist/esm/helpers/normalizeValueWithProperty.native.js +2 -1
  225. package/dist/esm/helpers/normalizeValueWithProperty.native.js.map +1 -1
  226. package/dist/esm/helpers/parseNativeStyle.mjs +110 -0
  227. package/dist/esm/helpers/parseNativeStyle.mjs.map +1 -0
  228. package/dist/esm/helpers/parseNativeStyle.native.js +125 -0
  229. package/dist/esm/helpers/parseNativeStyle.native.js.map +1 -0
  230. package/dist/esm/helpers/parseOutlineShorthand.mjs +3 -0
  231. package/dist/esm/helpers/parseOutlineShorthand.mjs.map +1 -0
  232. package/dist/esm/helpers/parseOutlineShorthand.native.js +32 -0
  233. package/dist/esm/helpers/parseOutlineShorthand.native.js.map +1 -0
  234. package/dist/esm/helpers/platformResolveValue.mjs +10 -0
  235. package/dist/esm/helpers/platformResolveValue.mjs.map +1 -0
  236. package/dist/esm/helpers/platformResolveValue.native.js +36 -0
  237. package/dist/esm/helpers/platformResolveValue.native.js.map +1 -0
  238. package/dist/esm/helpers/propMapper.mjs +24 -96
  239. package/dist/esm/helpers/propMapper.mjs.map +1 -1
  240. package/dist/esm/helpers/propMapper.native.js +60 -107
  241. package/dist/esm/helpers/propMapper.native.js.map +1 -1
  242. package/dist/esm/helpers/pseudoTransitions.mjs +41 -0
  243. package/dist/esm/helpers/pseudoTransitions.mjs.map +1 -0
  244. package/dist/esm/helpers/pseudoTransitions.native.js +45 -0
  245. package/dist/esm/helpers/pseudoTransitions.native.js.map +1 -0
  246. package/dist/esm/helpers/resolveAnimationDriver.mjs +5 -0
  247. package/dist/esm/helpers/resolveAnimationDriver.mjs.map +1 -0
  248. package/dist/esm/helpers/resolveAnimationDriver.native.js +6 -0
  249. package/dist/esm/helpers/resolveAnimationDriver.native.js.map +1 -0
  250. package/dist/esm/helpers/resolveCompoundTokens.mjs +14 -0
  251. package/dist/esm/helpers/resolveCompoundTokens.mjs.map +1 -0
  252. package/dist/esm/helpers/resolveCompoundTokens.native.js +14 -0
  253. package/dist/esm/helpers/resolveCompoundTokens.native.js.map +1 -0
  254. package/dist/esm/helpers/skipProps.mjs +1 -1
  255. package/dist/esm/helpers/skipProps.mjs.map +1 -1
  256. package/dist/esm/helpers/skipProps.native.js +1 -1
  257. package/dist/esm/helpers/skipProps.native.js.map +1 -1
  258. package/dist/esm/helpers/themeable.mjs +4 -2
  259. package/dist/esm/helpers/themeable.mjs.map +1 -1
  260. package/dist/esm/helpers/themeable.native.js +4 -2
  261. package/dist/esm/helpers/themeable.native.js.map +1 -1
  262. package/dist/esm/helpers/useRenderElement.mjs.map +1 -1
  263. package/dist/esm/helpers/useRenderElement.native.js +1 -1
  264. package/dist/esm/helpers/useRenderElement.native.js.map +1 -1
  265. package/dist/esm/helpers/wrapStyleTags.native.js +0 -2
  266. package/dist/esm/helpers/wrapStyleTags.native.js.map +1 -1
  267. package/dist/esm/hooks/getThemeProxied.mjs +0 -3
  268. package/dist/esm/hooks/getThemeProxied.mjs.map +1 -1
  269. package/dist/esm/hooks/useComponentState.mjs +9 -5
  270. package/dist/esm/hooks/useComponentState.mjs.map +1 -1
  271. package/dist/esm/hooks/useComponentState.native.js +10 -6
  272. package/dist/esm/hooks/useComponentState.native.js.map +1 -1
  273. package/dist/esm/hooks/useMedia.mjs +21 -39
  274. package/dist/esm/hooks/useMedia.mjs.map +1 -1
  275. package/dist/esm/hooks/useMedia.native.js +22 -47
  276. package/dist/esm/hooks/useMedia.native.js.map +1 -1
  277. package/dist/esm/hooks/useProps.mjs +2 -1
  278. package/dist/esm/hooks/useProps.mjs.map +1 -1
  279. package/dist/esm/hooks/useProps.native.js +2 -1
  280. package/dist/esm/hooks/useProps.native.js.map +1 -1
  281. package/dist/esm/hooks/useTheme.mjs +4 -0
  282. package/dist/esm/hooks/useTheme.mjs.map +1 -1
  283. package/dist/esm/hooks/useTheme.native.js +4 -0
  284. package/dist/esm/hooks/useTheme.native.js.map +1 -1
  285. package/dist/esm/hooks/useThemeState.mjs +30 -13
  286. package/dist/esm/hooks/useThemeState.mjs.map +1 -1
  287. package/dist/esm/hooks/useThemeState.native.js +28 -12
  288. package/dist/esm/hooks/useThemeState.native.js.map +1 -1
  289. package/dist/esm/index.js +67 -107
  290. package/dist/esm/index.js.map +1 -6
  291. package/dist/esm/index.mjs +5 -1
  292. package/dist/esm/index.mjs.map +1 -1
  293. package/dist/esm/index.native.js +5 -1
  294. package/dist/esm/index.native.js.map +1 -1
  295. package/dist/esm/insertFont.native.js +0 -1
  296. package/dist/esm/insertFont.native.js.map +1 -1
  297. package/dist/esm/styled.mjs.map +1 -1
  298. package/dist/esm/styled.native.js.map +1 -1
  299. package/dist/esm/views/TamaguiProvider.mjs +21 -34
  300. package/dist/esm/views/TamaguiProvider.mjs.map +1 -1
  301. package/dist/esm/views/TamaguiProvider.native.js +28 -40
  302. package/dist/esm/views/TamaguiProvider.native.js.map +1 -1
  303. package/dist/esm/views/TamaguiRoot.mjs +34 -0
  304. package/dist/esm/views/TamaguiRoot.mjs.map +1 -0
  305. package/dist/esm/views/TamaguiRoot.native.js +5 -0
  306. package/dist/esm/views/TamaguiRoot.native.js.map +1 -0
  307. package/dist/esm/views/Text.mjs +1 -9
  308. package/dist/esm/views/Text.mjs.map +1 -1
  309. package/dist/esm/views/Text.native.js +0 -1
  310. package/dist/esm/views/Text.native.js.map +1 -1
  311. package/dist/esm/views/Theme.mjs +2 -0
  312. package/dist/esm/views/Theme.mjs.map +1 -1
  313. package/dist/esm/views/Theme.native.js +2 -0
  314. package/dist/esm/views/Theme.native.js.map +1 -1
  315. package/dist/esm/views/ThemeProvider.mjs +3 -1
  316. package/dist/esm/views/ThemeProvider.mjs.map +1 -1
  317. package/dist/esm/views/ThemeProvider.native.js +2 -2
  318. package/dist/esm/views/ThemeProvider.native.js.map +1 -1
  319. package/dist/esm/views/View.mjs +0 -2
  320. package/dist/esm/views/View.mjs.map +1 -1
  321. package/dist/esm/views/View.native.js +0 -2
  322. package/dist/esm/views/View.native.js.map +1 -1
  323. package/inject-styles/index.cjs +2 -0
  324. package/inject-styles/index.js +2 -0
  325. package/inject-styles.cjs +1 -0
  326. package/package.json +21 -27
  327. package/src/Tamagui.ts +1 -1
  328. package/src/_withStableStyle.tsx +44 -16
  329. package/src/animationDriverTypes.test-d.ts +76 -0
  330. package/src/config.ts +5 -1
  331. package/src/constants/constants.ts +0 -17
  332. package/src/createComponent.tsx +224 -93
  333. package/src/createTamagui.ts +20 -11
  334. package/src/createVariable.ts +1 -1
  335. package/src/eventHandling.native.ts +78 -50
  336. package/src/eventHandling.ts +2 -1
  337. package/src/helpers/createDesignSystem.ts +77 -6
  338. package/src/helpers/createMediaStyle.ts +12 -4
  339. package/src/helpers/createStyledContext.tsx +27 -18
  340. package/src/helpers/defaultAnimationDriver.tsx +0 -2
  341. package/src/helpers/expandStyle.ts +11 -0
  342. package/src/helpers/getCSSStylesAtomic.ts +13 -14
  343. package/src/helpers/getDefaultProps.ts +4 -15
  344. package/src/helpers/getGroupPropParts.ts +1 -1
  345. package/src/helpers/getSplitStyles.tsx +174 -40
  346. package/src/helpers/getThemeCSSRules.ts +16 -14
  347. package/src/helpers/getTokenForKey.ts +223 -0
  348. package/src/helpers/insertStyleRule.tsx +1 -1
  349. package/src/helpers/mainThreadPressEvents.native.ts +2 -1
  350. package/src/helpers/mediaObjectToString.ts +30 -0
  351. package/src/helpers/mediaState.ts +32 -0
  352. package/src/helpers/normalizeColor.ts +12 -8
  353. package/src/helpers/normalizeValueWithProperty.ts +8 -1
  354. package/src/helpers/parseNativeStyle.ts +193 -0
  355. package/src/helpers/parseOutlineShorthand.native.ts +62 -0
  356. package/src/helpers/parseOutlineShorthand.ts +6 -0
  357. package/src/helpers/platformResolveValue.native.ts +72 -0
  358. package/src/helpers/platformResolveValue.ts +22 -0
  359. package/src/helpers/propMapper.ts +65 -221
  360. package/src/helpers/pseudoTransitions.ts +97 -0
  361. package/src/helpers/resolveAnimationDriver.ts +23 -0
  362. package/src/helpers/resolveCompoundTokens.ts +28 -0
  363. package/src/helpers/skipProps.ts +1 -0
  364. package/src/helpers/themeable.tsx +7 -5
  365. package/src/helpers/useRenderElement.tsx +7 -0
  366. package/src/hooks/useComponentState.ts +11 -8
  367. package/src/hooks/useMedia.tsx +28 -75
  368. package/src/hooks/useProps.tsx +2 -1
  369. package/src/hooks/useTheme.tsx +4 -0
  370. package/src/hooks/useThemeState.ts +57 -14
  371. package/src/index.ts +4 -4
  372. package/src/styled.tsx +2 -2
  373. package/src/types.tsx +205 -57
  374. package/src/views/TamaguiProvider.tsx +35 -54
  375. package/src/views/TamaguiRoot.native.tsx +9 -0
  376. package/src/views/TamaguiRoot.tsx +64 -0
  377. package/src/views/Text.tsx +1 -9
  378. package/src/views/Theme.tsx +2 -0
  379. package/src/views/ThemeProvider.tsx +3 -1
  380. package/src/views/View.tsx +0 -2
  381. package/tsconfig.json +44 -0
  382. package/tsconfig.test.json +9 -0
  383. package/types/_withStableStyle.d.ts +1 -1
  384. package/types/_withStableStyle.d.ts.map +1 -1
  385. package/types/config.d.ts.map +1 -1
  386. package/types/constants/constants.d.ts +0 -3
  387. package/types/constants/constants.d.ts.map +1 -1
  388. package/types/createComponent.d.ts.map +1 -1
  389. package/types/createTamagui.d.ts.map +1 -1
  390. package/types/createVariable.d.ts +1 -1
  391. package/types/createVariable.d.ts.map +1 -1
  392. package/types/eventHandling.d.ts +1 -1
  393. package/types/eventHandling.d.ts.map +1 -1
  394. package/types/eventHandling.native.d.ts +1 -1
  395. package/types/eventHandling.native.d.ts.map +1 -1
  396. package/types/helpers/createDesignSystem.d.ts +5 -2
  397. package/types/helpers/createDesignSystem.d.ts.map +1 -1
  398. package/types/helpers/createMediaStyle.d.ts.map +1 -1
  399. package/types/helpers/createStyledContext.d.ts +1 -1
  400. package/types/helpers/createStyledContext.d.ts.map +1 -1
  401. package/types/helpers/defaultAnimationDriver.d.ts.map +1 -1
  402. package/types/helpers/expandStyle.d.ts.map +1 -1
  403. package/types/helpers/getCSSStylesAtomic.d.ts.map +1 -1
  404. package/types/helpers/getDefaultProps.d.ts +1 -1
  405. package/types/helpers/getDefaultProps.d.ts.map +1 -1
  406. package/types/helpers/getSplitStyles.d.ts +2 -2
  407. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  408. package/types/helpers/getThemeCSSRules.d.ts.map +1 -1
  409. package/types/helpers/getTokenForKey.d.ts +6 -0
  410. package/types/helpers/getTokenForKey.d.ts.map +1 -0
  411. package/types/helpers/mainThreadPressEvents.native.d.ts.map +1 -1
  412. package/types/helpers/mediaObjectToString.d.ts +3 -0
  413. package/types/helpers/mediaObjectToString.d.ts.map +1 -0
  414. package/types/helpers/mediaState.d.ts +7 -0
  415. package/types/helpers/mediaState.d.ts.map +1 -0
  416. package/types/helpers/normalizeColor.d.ts +1 -1
  417. package/types/helpers/normalizeColor.d.ts.map +1 -1
  418. package/types/helpers/normalizeValueWithProperty.d.ts.map +1 -1
  419. package/types/helpers/parseNativeStyle.d.ts +14 -0
  420. package/types/helpers/parseNativeStyle.d.ts.map +1 -0
  421. package/types/helpers/parseOutlineShorthand.d.ts +3 -0
  422. package/types/helpers/parseOutlineShorthand.d.ts.map +1 -0
  423. package/types/helpers/parseOutlineShorthand.native.d.ts +3 -0
  424. package/types/helpers/parseOutlineShorthand.native.d.ts.map +1 -0
  425. package/types/helpers/platformResolveValue.d.ts +6 -0
  426. package/types/helpers/platformResolveValue.d.ts.map +1 -0
  427. package/types/helpers/platformResolveValue.native.d.ts +7 -0
  428. package/types/helpers/platformResolveValue.native.d.ts.map +1 -0
  429. package/types/helpers/propMapper.d.ts +2 -2
  430. package/types/helpers/propMapper.d.ts.map +1 -1
  431. package/types/helpers/pseudoTransitions.d.ts +29 -0
  432. package/types/helpers/pseudoTransitions.d.ts.map +1 -0
  433. package/types/helpers/resolveAnimationDriver.d.ts +7 -0
  434. package/types/helpers/resolveAnimationDriver.d.ts.map +1 -0
  435. package/types/helpers/resolveCompoundTokens.d.ts +9 -0
  436. package/types/helpers/resolveCompoundTokens.d.ts.map +1 -0
  437. package/types/helpers/skipProps.d.ts +1 -0
  438. package/types/helpers/skipProps.d.ts.map +1 -1
  439. package/types/helpers/themeable.d.ts.map +1 -1
  440. package/types/helpers/useRenderElement.d.ts.map +1 -1
  441. package/types/helpers/webPropsToSkip.native.d.ts +20 -20
  442. package/types/hooks/useComponentState.d.ts +2 -1
  443. package/types/hooks/useComponentState.d.ts.map +1 -1
  444. package/types/hooks/useMedia.d.ts +1 -6
  445. package/types/hooks/useMedia.d.ts.map +1 -1
  446. package/types/hooks/useProps.d.ts.map +1 -1
  447. package/types/hooks/useTheme.d.ts.map +1 -1
  448. package/types/hooks/useThemeState.d.ts.map +1 -1
  449. package/types/index.d.ts +5 -1
  450. package/types/index.d.ts.map +1 -1
  451. package/types/styled.d.ts +2 -2
  452. package/types/styled.d.ts.map +1 -1
  453. package/types/types.d.ts +105 -30
  454. package/types/types.d.ts.map +1 -1
  455. package/types/views/TamaguiProvider.d.ts +1 -4
  456. package/types/views/TamaguiProvider.d.ts.map +1 -1
  457. package/types/views/TamaguiRoot.d.ts +15 -0
  458. package/types/views/TamaguiRoot.d.ts.map +1 -0
  459. package/types/views/TamaguiRoot.native.d.ts +7 -0
  460. package/types/views/TamaguiRoot.native.d.ts.map +1 -0
  461. package/types/views/Text.d.ts.map +1 -1
  462. package/types/views/Theme.d.ts.map +1 -1
  463. package/types/views/ThemeProvider.d.ts.map +1 -1
  464. package/types/views/View.d.ts.map +1 -1
  465. package/vitest.config.d.ts +3 -0
  466. package/vitest.config.d.ts.map +1 -0
  467. package/vitest.config.ts +14 -0
  468. package/dist/cjs/Tamagui.js +0 -56
  469. package/dist/cjs/Tamagui.js.map +0 -6
  470. package/dist/cjs/_withStableStyle.js +0 -33
  471. package/dist/cjs/_withStableStyle.js.map +0 -6
  472. package/dist/cjs/animationDriverTypes.test-d.js +0 -51
  473. package/dist/cjs/animationDriverTypes.test-d.js.map +0 -6
  474. package/dist/cjs/config.js +0 -109
  475. package/dist/cjs/config.js.map +0 -6
  476. package/dist/cjs/constants/accessibilityDirectMap.js +0 -25
  477. package/dist/cjs/constants/accessibilityDirectMap.js.map +0 -6
  478. package/dist/cjs/constants/constants.js +0 -43
  479. package/dist/cjs/constants/constants.js.map +0 -6
  480. package/dist/cjs/constants/isDevTools.js +0 -28
  481. package/dist/cjs/constants/isDevTools.js.map +0 -6
  482. package/dist/cjs/constants/webToNativeProps.js +0 -22
  483. package/dist/cjs/constants/webToNativeProps.js.map +0 -6
  484. package/dist/cjs/constants/webToNativeProps.native.js +0 -115
  485. package/dist/cjs/constants/webToNativeProps.native.js.map +0 -1
  486. package/dist/cjs/contexts/ComponentContext.js +0 -30
  487. package/dist/cjs/contexts/ComponentContext.js.map +0 -6
  488. package/dist/cjs/contexts/GroupContext.js +0 -22
  489. package/dist/cjs/contexts/GroupContext.js.map +0 -6
  490. package/dist/cjs/createComponent.js +0 -697
  491. package/dist/cjs/createComponent.js.map +0 -6
  492. package/dist/cjs/createFont.js +0 -53
  493. package/dist/cjs/createFont.js.map +0 -6
  494. package/dist/cjs/createShorthands.js +0 -23
  495. package/dist/cjs/createShorthands.js.map +0 -6
  496. package/dist/cjs/createTamagui.js +0 -190
  497. package/dist/cjs/createTamagui.js.map +0 -6
  498. package/dist/cjs/createTheme.js +0 -21
  499. package/dist/cjs/createTheme.js.map +0 -6
  500. package/dist/cjs/createTheme.native.js.map +0 -1
  501. package/dist/cjs/createTokens.js +0 -24
  502. package/dist/cjs/createTokens.js.map +0 -6
  503. package/dist/cjs/createVariable.js +0 -89
  504. package/dist/cjs/createVariable.js.map +0 -6
  505. package/dist/cjs/createVariables.js +0 -56
  506. package/dist/cjs/createVariables.js.map +0 -6
  507. package/dist/cjs/defaultComponentState.js +0 -38
  508. package/dist/cjs/defaultComponentState.js.map +0 -6
  509. package/dist/cjs/eventHandling.js +0 -41
  510. package/dist/cjs/eventHandling.js.map +0 -6
  511. package/dist/cjs/helpers/createDesignSystem.js +0 -120
  512. package/dist/cjs/helpers/createDesignSystem.js.map +0 -6
  513. package/dist/cjs/helpers/createMediaStyle.js +0 -74
  514. package/dist/cjs/helpers/createMediaStyle.js.map +0 -6
  515. package/dist/cjs/helpers/createStyledContext.js +0 -52
  516. package/dist/cjs/helpers/createStyledContext.js.map +0 -6
  517. package/dist/cjs/helpers/defaultAnimationDriver.js +0 -39
  518. package/dist/cjs/helpers/defaultAnimationDriver.js.map +0 -6
  519. package/dist/cjs/helpers/defaultOffset.js +0 -21
  520. package/dist/cjs/helpers/defaultOffset.js.map +0 -6
  521. package/dist/cjs/helpers/expandStyle.js +0 -73
  522. package/dist/cjs/helpers/expandStyle.js.map +0 -6
  523. package/dist/cjs/helpers/expandStyles.js +0 -34
  524. package/dist/cjs/helpers/expandStyles.js.map +0 -6
  525. package/dist/cjs/helpers/getCSSStylesAtomic.js +0 -156
  526. package/dist/cjs/helpers/getCSSStylesAtomic.js.map +0 -6
  527. package/dist/cjs/helpers/getDefaultProps.js +0 -31
  528. package/dist/cjs/helpers/getDefaultProps.js.map +0 -6
  529. package/dist/cjs/helpers/getDynamicVal.js +0 -62
  530. package/dist/cjs/helpers/getDynamicVal.js.map +0 -6
  531. package/dist/cjs/helpers/getExpandedShorthands.js +0 -34
  532. package/dist/cjs/helpers/getExpandedShorthands.js.map +0 -6
  533. package/dist/cjs/helpers/getFontLanguage.js +0 -21
  534. package/dist/cjs/helpers/getFontLanguage.js.map +0 -6
  535. package/dist/cjs/helpers/getGroupPropParts.js +0 -34
  536. package/dist/cjs/helpers/getGroupPropParts.js.map +0 -6
  537. package/dist/cjs/helpers/getShorthandValue.js +0 -23
  538. package/dist/cjs/helpers/getShorthandValue.js.map +0 -6
  539. package/dist/cjs/helpers/getSplitStyles.js +0 -630
  540. package/dist/cjs/helpers/getSplitStyles.js.map +0 -6
  541. package/dist/cjs/helpers/getThemeCSSRules.js +0 -89
  542. package/dist/cjs/helpers/getThemeCSSRules.js.map +0 -6
  543. package/dist/cjs/helpers/getVariantExtras.js +0 -59
  544. package/dist/cjs/helpers/getVariantExtras.js.map +0 -6
  545. package/dist/cjs/helpers/insertStyleRule.js +0 -196
  546. package/dist/cjs/helpers/insertStyleRule.js.map +0 -6
  547. package/dist/cjs/helpers/isActivePlatform.js +0 -31
  548. package/dist/cjs/helpers/isActivePlatform.js.map +0 -6
  549. package/dist/cjs/helpers/isActiveTheme.js +0 -24
  550. package/dist/cjs/helpers/isActiveTheme.js.map +0 -6
  551. package/dist/cjs/helpers/isObj.js +0 -21
  552. package/dist/cjs/helpers/isObj.js.map +0 -6
  553. package/dist/cjs/helpers/isTamaguiComponent.js +0 -24
  554. package/dist/cjs/helpers/isTamaguiComponent.js.map +0 -6
  555. package/dist/cjs/helpers/isTamaguiElement.js +0 -30
  556. package/dist/cjs/helpers/isTamaguiElement.js.map +0 -6
  557. package/dist/cjs/helpers/log.js +0 -33
  558. package/dist/cjs/helpers/log.js.map +0 -6
  559. package/dist/cjs/helpers/mainThreadPressEvents.js +0 -22
  560. package/dist/cjs/helpers/mainThreadPressEvents.js.map +0 -6
  561. package/dist/cjs/helpers/matchMedia.js +0 -34
  562. package/dist/cjs/helpers/matchMedia.js.map +0 -6
  563. package/dist/cjs/helpers/mergeProps.js +0 -55
  564. package/dist/cjs/helpers/mergeProps.js.map +0 -6
  565. package/dist/cjs/helpers/mergeRenderElementProps.js +0 -25
  566. package/dist/cjs/helpers/mergeRenderElementProps.js.map +0 -6
  567. package/dist/cjs/helpers/mergeSlotStyleProps.js +0 -29
  568. package/dist/cjs/helpers/mergeSlotStyleProps.js.map +0 -6
  569. package/dist/cjs/helpers/mergeVariants.js +0 -38
  570. package/dist/cjs/helpers/mergeVariants.js.map +0 -6
  571. package/dist/cjs/helpers/nativeOnlyProps.js +0 -55
  572. package/dist/cjs/helpers/nativeOnlyProps.js.map +0 -6
  573. package/dist/cjs/helpers/normalizeColor.js +0 -26
  574. package/dist/cjs/helpers/normalizeColor.js.map +0 -6
  575. package/dist/cjs/helpers/normalizeShadow.js +0 -40
  576. package/dist/cjs/helpers/normalizeShadow.js.map +0 -6
  577. package/dist/cjs/helpers/normalizeStyle.js +0 -36
  578. package/dist/cjs/helpers/normalizeStyle.js.map +0 -6
  579. package/dist/cjs/helpers/normalizeStylePropKeys.js +0 -21
  580. package/dist/cjs/helpers/normalizeStylePropKeys.js.map +0 -6
  581. package/dist/cjs/helpers/normalizeValueWithProperty.js +0 -32
  582. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +0 -6
  583. package/dist/cjs/helpers/objectIdentityKey.js +0 -38
  584. package/dist/cjs/helpers/objectIdentityKey.js.map +0 -6
  585. package/dist/cjs/helpers/parseBorderShorthand.js +0 -22
  586. package/dist/cjs/helpers/parseBorderShorthand.js.map +0 -6
  587. package/dist/cjs/helpers/pointerEvents.js +0 -22
  588. package/dist/cjs/helpers/pointerEvents.js.map +0 -6
  589. package/dist/cjs/helpers/propMapper.js +0 -257
  590. package/dist/cjs/helpers/propMapper.js.map +0 -6
  591. package/dist/cjs/helpers/proxyThemeToParents.js +0 -40
  592. package/dist/cjs/helpers/proxyThemeToParents.js.map +0 -6
  593. package/dist/cjs/helpers/proxyThemeVariables.js +0 -31
  594. package/dist/cjs/helpers/proxyThemeVariables.js.map +0 -6
  595. package/dist/cjs/helpers/pseudoDescriptors.js +0 -72
  596. package/dist/cjs/helpers/pseudoDescriptors.js.map +0 -6
  597. package/dist/cjs/helpers/registerCSSVariable.js +0 -47
  598. package/dist/cjs/helpers/registerCSSVariable.js.map +0 -6
  599. package/dist/cjs/helpers/resolveRem.js +0 -27
  600. package/dist/cjs/helpers/resolveRem.js.map +0 -6
  601. package/dist/cjs/helpers/resolveSafeArea.js +0 -29
  602. package/dist/cjs/helpers/resolveSafeArea.js.map +0 -6
  603. package/dist/cjs/helpers/setElementProps.js +0 -24
  604. package/dist/cjs/helpers/setElementProps.js.map +0 -6
  605. package/dist/cjs/helpers/skipProps.js +0 -38
  606. package/dist/cjs/helpers/skipProps.js.map +0 -6
  607. package/dist/cjs/helpers/sortString.js +0 -21
  608. package/dist/cjs/helpers/sortString.js.map +0 -6
  609. package/dist/cjs/helpers/subscribeToContextGroup.js +0 -74
  610. package/dist/cjs/helpers/subscribeToContextGroup.js.map +0 -6
  611. package/dist/cjs/helpers/themeable.js +0 -56
  612. package/dist/cjs/helpers/themeable.js.map +0 -6
  613. package/dist/cjs/helpers/themes.js +0 -33
  614. package/dist/cjs/helpers/themes.js.map +0 -6
  615. package/dist/cjs/helpers/timer.js +0 -27
  616. package/dist/cjs/helpers/timer.js.map +0 -6
  617. package/dist/cjs/helpers/transformsToString.js +0 -33
  618. package/dist/cjs/helpers/transformsToString.js.map +0 -6
  619. package/dist/cjs/helpers/useRenderElement.js +0 -42
  620. package/dist/cjs/helpers/useRenderElement.js.map +0 -6
  621. package/dist/cjs/helpers/webPropsToSkip.js +0 -21
  622. package/dist/cjs/helpers/webPropsToSkip.js.map +0 -6
  623. package/dist/cjs/helpers/wrapStyleTags.js +0 -38
  624. package/dist/cjs/helpers/wrapStyleTags.js.map +0 -6
  625. package/dist/cjs/hooks/doesRootSchemeMatchSystem.js +0 -23
  626. package/dist/cjs/hooks/doesRootSchemeMatchSystem.js.map +0 -6
  627. package/dist/cjs/hooks/getThemeProxied.js +0 -56
  628. package/dist/cjs/hooks/getThemeProxied.js.map +0 -6
  629. package/dist/cjs/hooks/useComponentState.js +0 -96
  630. package/dist/cjs/hooks/useComponentState.js.map +0 -6
  631. package/dist/cjs/hooks/useDisableSSR.js +0 -24
  632. package/dist/cjs/hooks/useDisableSSR.js.map +0 -6
  633. package/dist/cjs/hooks/useIsTouchDevice.js +0 -22
  634. package/dist/cjs/hooks/useIsTouchDevice.js.map +0 -6
  635. package/dist/cjs/hooks/useMedia.js +0 -183
  636. package/dist/cjs/hooks/useMedia.js.map +0 -6
  637. package/dist/cjs/hooks/useProps.js +0 -106
  638. package/dist/cjs/hooks/useProps.js.map +0 -6
  639. package/dist/cjs/hooks/useTheme.js +0 -35
  640. package/dist/cjs/hooks/useTheme.js.map +0 -6
  641. package/dist/cjs/hooks/useThemeName.js +0 -25
  642. package/dist/cjs/hooks/useThemeName.js.map +0 -6
  643. package/dist/cjs/hooks/useThemeState.js +0 -218
  644. package/dist/cjs/hooks/useThemeState.js.map +0 -6
  645. package/dist/cjs/inject-styles.js +0 -28
  646. package/dist/cjs/inject-styles.js.map +0 -6
  647. package/dist/cjs/insertFont.js +0 -68
  648. package/dist/cjs/insertFont.js.map +0 -6
  649. package/dist/cjs/interfaces/CSSColorNames.js +0 -14
  650. package/dist/cjs/interfaces/CSSColorNames.js.map +0 -6
  651. package/dist/cjs/interfaces/GetRef.js +0 -14
  652. package/dist/cjs/interfaces/GetRef.js.map +0 -6
  653. package/dist/cjs/interfaces/RNExclusiveTypes.js +0 -14
  654. package/dist/cjs/interfaces/RNExclusiveTypes.js.map +0 -6
  655. package/dist/cjs/interfaces/TamaguiComponentEvents.js +0 -14
  656. package/dist/cjs/interfaces/TamaguiComponentEvents.js.map +0 -6
  657. package/dist/cjs/interfaces/TamaguiComponentPropsBaseBase.js +0 -14
  658. package/dist/cjs/interfaces/TamaguiComponentPropsBaseBase.js.map +0 -6
  659. package/dist/cjs/setupHooks.js +0 -25
  660. package/dist/cjs/setupHooks.js.map +0 -6
  661. package/dist/cjs/setupReactNative.js +0 -43
  662. package/dist/cjs/setupReactNative.js.map +0 -6
  663. package/dist/cjs/styled.js +0 -116
  664. package/dist/cjs/styled.js.map +0 -6
  665. package/dist/cjs/styledHtml.test-d.js +0 -136
  666. package/dist/cjs/styledHtml.test-d.js.map +0 -6
  667. package/dist/cjs/type-utils.js +0 -14
  668. package/dist/cjs/type-utils.js.map +0 -6
  669. package/dist/cjs/types.js +0 -14
  670. package/dist/cjs/types.js.map +0 -6
  671. package/dist/cjs/views/Configuration.js +0 -33
  672. package/dist/cjs/views/Configuration.js.map +0 -6
  673. package/dist/cjs/views/FontLanguage.js +0 -32
  674. package/dist/cjs/views/FontLanguage.js.map +0 -6
  675. package/dist/cjs/views/Slot.js +0 -55
  676. package/dist/cjs/views/Slot.js.map +0 -6
  677. package/dist/cjs/views/Stack.js +0 -27
  678. package/dist/cjs/views/Stack.js.map +0 -6
  679. package/dist/cjs/views/Stack.native.js.map +0 -1
  680. package/dist/cjs/views/TamaguiProvider.js +0 -93
  681. package/dist/cjs/views/TamaguiProvider.js.map +0 -6
  682. package/dist/cjs/views/Text.js +0 -59
  683. package/dist/cjs/views/Text.js.map +0 -6
  684. package/dist/cjs/views/Theme.js +0 -124
  685. package/dist/cjs/views/Theme.js.map +0 -6
  686. package/dist/cjs/views/ThemeDebug.js +0 -81
  687. package/dist/cjs/views/ThemeDebug.js.map +0 -6
  688. package/dist/cjs/views/ThemeProvider.js +0 -42
  689. package/dist/cjs/views/ThemeProvider.js.map +0 -6
  690. package/dist/cjs/views/View.js +0 -26
  691. package/dist/cjs/views/View.js.map +0 -6
  692. package/dist/esm/Tamagui.js +0 -35
  693. package/dist/esm/Tamagui.js.map +0 -6
  694. package/dist/esm/_withStableStyle.js +0 -12
  695. package/dist/esm/_withStableStyle.js.map +0 -6
  696. package/dist/esm/animationDriverTypes.test-d.js +0 -51
  697. package/dist/esm/animationDriverTypes.test-d.js.map +0 -6
  698. package/dist/esm/config.js +0 -94
  699. package/dist/esm/config.js.map +0 -6
  700. package/dist/esm/constants/accessibilityDirectMap.js +0 -9
  701. package/dist/esm/constants/accessibilityDirectMap.js.map +0 -6
  702. package/dist/esm/constants/constants.js +0 -27
  703. package/dist/esm/constants/constants.js.map +0 -6
  704. package/dist/esm/constants/isDevTools.js +0 -12
  705. package/dist/esm/constants/isDevTools.js.map +0 -6
  706. package/dist/esm/constants/webToNativeProps.js +0 -6
  707. package/dist/esm/constants/webToNativeProps.js.map +0 -6
  708. package/dist/esm/constants/webToNativeProps.mjs +0 -4
  709. package/dist/esm/constants/webToNativeProps.mjs.map +0 -1
  710. package/dist/esm/constants/webToNativeProps.native.js +0 -88
  711. package/dist/esm/constants/webToNativeProps.native.js.map +0 -1
  712. package/dist/esm/contexts/ComponentContext.js +0 -15
  713. package/dist/esm/contexts/ComponentContext.js.map +0 -6
  714. package/dist/esm/contexts/GroupContext.js +0 -6
  715. package/dist/esm/contexts/GroupContext.js.map +0 -6
  716. package/dist/esm/createComponent.js +0 -702
  717. package/dist/esm/createComponent.js.map +0 -6
  718. package/dist/esm/createFont.js +0 -37
  719. package/dist/esm/createFont.js.map +0 -6
  720. package/dist/esm/createShorthands.js +0 -7
  721. package/dist/esm/createShorthands.js.map +0 -6
  722. package/dist/esm/createTamagui.js +0 -189
  723. package/dist/esm/createTamagui.js.map +0 -6
  724. package/dist/esm/createTheme.js +0 -5
  725. package/dist/esm/createTheme.js.map +0 -6
  726. package/dist/esm/createTheme.mjs +0 -3
  727. package/dist/esm/createTheme.mjs.map +0 -1
  728. package/dist/esm/createTheme.native.js +0 -5
  729. package/dist/esm/createTheme.native.js.map +0 -1
  730. package/dist/esm/createTokens.js +0 -8
  731. package/dist/esm/createTokens.js.map +0 -6
  732. package/dist/esm/createVariable.js +0 -75
  733. package/dist/esm/createVariable.js.map +0 -6
  734. package/dist/esm/createVariables.js +0 -42
  735. package/dist/esm/createVariables.js.map +0 -6
  736. package/dist/esm/defaultComponentState.js +0 -22
  737. package/dist/esm/defaultComponentState.js.map +0 -6
  738. package/dist/esm/eventHandling.js +0 -25
  739. package/dist/esm/eventHandling.js.map +0 -6
  740. package/dist/esm/helpers/createDesignSystem.js +0 -107
  741. package/dist/esm/helpers/createDesignSystem.js.map +0 -6
  742. package/dist/esm/helpers/createMediaStyle.js +0 -60
  743. package/dist/esm/helpers/createMediaStyle.js.map +0 -6
  744. package/dist/esm/helpers/createStyledContext.js +0 -31
  745. package/dist/esm/helpers/createStyledContext.js.map +0 -6
  746. package/dist/esm/helpers/defaultAnimationDriver.js +0 -23
  747. package/dist/esm/helpers/defaultAnimationDriver.js.map +0 -6
  748. package/dist/esm/helpers/defaultOffset.js +0 -5
  749. package/dist/esm/helpers/defaultOffset.js.map +0 -6
  750. package/dist/esm/helpers/expandStyle.js +0 -59
  751. package/dist/esm/helpers/expandStyle.js.map +0 -6
  752. package/dist/esm/helpers/expandStyles.js +0 -19
  753. package/dist/esm/helpers/expandStyles.js.map +0 -6
  754. package/dist/esm/helpers/getCSSStylesAtomic.js +0 -147
  755. package/dist/esm/helpers/getCSSStylesAtomic.js.map +0 -6
  756. package/dist/esm/helpers/getDefaultProps.js +0 -15
  757. package/dist/esm/helpers/getDefaultProps.js.map +0 -6
  758. package/dist/esm/helpers/getDynamicVal.js +0 -46
  759. package/dist/esm/helpers/getDynamicVal.js.map +0 -6
  760. package/dist/esm/helpers/getExpandedShorthands.js +0 -18
  761. package/dist/esm/helpers/getExpandedShorthands.js.map +0 -6
  762. package/dist/esm/helpers/getFontLanguage.js +0 -5
  763. package/dist/esm/helpers/getFontLanguage.js.map +0 -6
  764. package/dist/esm/helpers/getGroupPropParts.js +0 -19
  765. package/dist/esm/helpers/getGroupPropParts.js.map +0 -6
  766. package/dist/esm/helpers/getShorthandValue.js +0 -7
  767. package/dist/esm/helpers/getShorthandValue.js.map +0 -6
  768. package/dist/esm/helpers/getSplitStyles.js +0 -650
  769. package/dist/esm/helpers/getSplitStyles.js.map +0 -6
  770. package/dist/esm/helpers/getThemeCSSRules.js +0 -78
  771. package/dist/esm/helpers/getThemeCSSRules.js.map +0 -6
  772. package/dist/esm/helpers/getVariantExtras.js +0 -44
  773. package/dist/esm/helpers/getVariantExtras.js.map +0 -6
  774. package/dist/esm/helpers/insertStyleRule.js +0 -181
  775. package/dist/esm/helpers/insertStyleRule.js.map +0 -6
  776. package/dist/esm/helpers/isActivePlatform.js +0 -15
  777. package/dist/esm/helpers/isActivePlatform.js.map +0 -6
  778. package/dist/esm/helpers/isActiveTheme.js +0 -8
  779. package/dist/esm/helpers/isActiveTheme.js.map +0 -6
  780. package/dist/esm/helpers/isObj.js +0 -5
  781. package/dist/esm/helpers/isObj.js.map +0 -6
  782. package/dist/esm/helpers/isTamaguiComponent.js +0 -8
  783. package/dist/esm/helpers/isTamaguiComponent.js.map +0 -6
  784. package/dist/esm/helpers/isTamaguiElement.js +0 -7
  785. package/dist/esm/helpers/isTamaguiElement.js.map +0 -6
  786. package/dist/esm/helpers/log.js +0 -17
  787. package/dist/esm/helpers/log.js.map +0 -6
  788. package/dist/esm/helpers/mainThreadPressEvents.js +0 -6
  789. package/dist/esm/helpers/mainThreadPressEvents.js.map +0 -6
  790. package/dist/esm/helpers/matchMedia.js +0 -18
  791. package/dist/esm/helpers/matchMedia.js.map +0 -6
  792. package/dist/esm/helpers/mergeProps.js +0 -39
  793. package/dist/esm/helpers/mergeProps.js.map +0 -6
  794. package/dist/esm/helpers/mergeRenderElementProps.js +0 -9
  795. package/dist/esm/helpers/mergeRenderElementProps.js.map +0 -6
  796. package/dist/esm/helpers/mergeSlotStyleProps.js +0 -14
  797. package/dist/esm/helpers/mergeSlotStyleProps.js.map +0 -6
  798. package/dist/esm/helpers/mergeVariants.js +0 -22
  799. package/dist/esm/helpers/mergeVariants.js.map +0 -6
  800. package/dist/esm/helpers/nativeOnlyProps.js +0 -39
  801. package/dist/esm/helpers/nativeOnlyProps.js.map +0 -6
  802. package/dist/esm/helpers/normalizeColor.js +0 -10
  803. package/dist/esm/helpers/normalizeColor.js.map +0 -6
  804. package/dist/esm/helpers/normalizeShadow.js +0 -24
  805. package/dist/esm/helpers/normalizeShadow.js.map +0 -6
  806. package/dist/esm/helpers/normalizeStyle.js +0 -24
  807. package/dist/esm/helpers/normalizeStyle.js.map +0 -6
  808. package/dist/esm/helpers/normalizeStylePropKeys.js +0 -5
  809. package/dist/esm/helpers/normalizeStylePropKeys.js.map +0 -6
  810. package/dist/esm/helpers/normalizeValueWithProperty.js +0 -17
  811. package/dist/esm/helpers/normalizeValueWithProperty.js.map +0 -6
  812. package/dist/esm/helpers/objectIdentityKey.js +0 -22
  813. package/dist/esm/helpers/objectIdentityKey.js.map +0 -6
  814. package/dist/esm/helpers/parseBorderShorthand.js +0 -6
  815. package/dist/esm/helpers/parseBorderShorthand.js.map +0 -6
  816. package/dist/esm/helpers/pointerEvents.js +0 -6
  817. package/dist/esm/helpers/pointerEvents.js.map +0 -6
  818. package/dist/esm/helpers/propMapper.js +0 -251
  819. package/dist/esm/helpers/propMapper.js.map +0 -6
  820. package/dist/esm/helpers/proxyThemeToParents.js +0 -24
  821. package/dist/esm/helpers/proxyThemeToParents.js.map +0 -6
  822. package/dist/esm/helpers/proxyThemeVariables.js +0 -15
  823. package/dist/esm/helpers/proxyThemeVariables.js.map +0 -6
  824. package/dist/esm/helpers/pseudoDescriptors.js +0 -56
  825. package/dist/esm/helpers/pseudoDescriptors.js.map +0 -6
  826. package/dist/esm/helpers/registerCSSVariable.js +0 -31
  827. package/dist/esm/helpers/registerCSSVariable.js.map +0 -6
  828. package/dist/esm/helpers/resolveRem.js +0 -11
  829. package/dist/esm/helpers/resolveRem.js.map +0 -6
  830. package/dist/esm/helpers/resolveSafeArea.js +0 -13
  831. package/dist/esm/helpers/resolveSafeArea.js.map +0 -6
  832. package/dist/esm/helpers/setElementProps.js +0 -8
  833. package/dist/esm/helpers/setElementProps.js.map +0 -6
  834. package/dist/esm/helpers/skipProps.js +0 -23
  835. package/dist/esm/helpers/skipProps.js.map +0 -6
  836. package/dist/esm/helpers/sortString.js +0 -5
  837. package/dist/esm/helpers/sortString.js.map +0 -6
  838. package/dist/esm/helpers/subscribeToContextGroup.js +0 -59
  839. package/dist/esm/helpers/subscribeToContextGroup.js.map +0 -6
  840. package/dist/esm/helpers/themeable.js +0 -35
  841. package/dist/esm/helpers/themeable.js.map +0 -6
  842. package/dist/esm/helpers/themes.js +0 -17
  843. package/dist/esm/helpers/themes.js.map +0 -6
  844. package/dist/esm/helpers/timer.js +0 -11
  845. package/dist/esm/helpers/timer.js.map +0 -6
  846. package/dist/esm/helpers/transformsToString.js +0 -17
  847. package/dist/esm/helpers/transformsToString.js.map +0 -6
  848. package/dist/esm/helpers/useRenderElement.js +0 -28
  849. package/dist/esm/helpers/useRenderElement.js.map +0 -6
  850. package/dist/esm/helpers/webPropsToSkip.js +0 -5
  851. package/dist/esm/helpers/webPropsToSkip.js.map +0 -6
  852. package/dist/esm/helpers/wrapStyleTags.js +0 -23
  853. package/dist/esm/helpers/wrapStyleTags.js.map +0 -6
  854. package/dist/esm/hooks/doesRootSchemeMatchSystem.js +0 -7
  855. package/dist/esm/hooks/doesRootSchemeMatchSystem.js.map +0 -6
  856. package/dist/esm/hooks/getThemeProxied.js +0 -44
  857. package/dist/esm/hooks/getThemeProxied.js.map +0 -6
  858. package/dist/esm/hooks/useComponentState.js +0 -91
  859. package/dist/esm/hooks/useComponentState.js.map +0 -6
  860. package/dist/esm/hooks/useDisableSSR.js +0 -8
  861. package/dist/esm/hooks/useDisableSSR.js.map +0 -6
  862. package/dist/esm/hooks/useIsTouchDevice.js +0 -7
  863. package/dist/esm/hooks/useIsTouchDevice.js.map +0 -6
  864. package/dist/esm/hooks/useMedia.js +0 -172
  865. package/dist/esm/hooks/useMedia.js.map +0 -6
  866. package/dist/esm/hooks/useProps.js +0 -92
  867. package/dist/esm/hooks/useProps.js.map +0 -6
  868. package/dist/esm/hooks/useTheme.js +0 -21
  869. package/dist/esm/hooks/useTheme.js.map +0 -6
  870. package/dist/esm/hooks/useThemeName.js +0 -9
  871. package/dist/esm/hooks/useThemeName.js.map +0 -6
  872. package/dist/esm/hooks/useThemeState.js +0 -212
  873. package/dist/esm/hooks/useThemeState.js.map +0 -6
  874. package/dist/esm/inject-styles.js +0 -12
  875. package/dist/esm/inject-styles.js.map +0 -6
  876. package/dist/esm/insertFont.js +0 -56
  877. package/dist/esm/insertFont.js.map +0 -6
  878. package/dist/esm/interfaces/CSSColorNames.js +0 -1
  879. package/dist/esm/interfaces/CSSColorNames.js.map +0 -6
  880. package/dist/esm/interfaces/GetRef.js +0 -1
  881. package/dist/esm/interfaces/GetRef.js.map +0 -6
  882. package/dist/esm/interfaces/RNExclusiveTypes.js +0 -1
  883. package/dist/esm/interfaces/RNExclusiveTypes.js.map +0 -6
  884. package/dist/esm/interfaces/TamaguiComponentEvents.js +0 -1
  885. package/dist/esm/interfaces/TamaguiComponentEvents.js.map +0 -6
  886. package/dist/esm/interfaces/TamaguiComponentPropsBaseBase.js +0 -1
  887. package/dist/esm/interfaces/TamaguiComponentPropsBaseBase.js.map +0 -6
  888. package/dist/esm/setupHooks.js +0 -9
  889. package/dist/esm/setupHooks.js.map +0 -6
  890. package/dist/esm/setupReactNative.js +0 -27
  891. package/dist/esm/setupReactNative.js.map +0 -6
  892. package/dist/esm/styled.js +0 -102
  893. package/dist/esm/styled.js.map +0 -6
  894. package/dist/esm/styledHtml.test-d.js +0 -137
  895. package/dist/esm/styledHtml.test-d.js.map +0 -6
  896. package/dist/esm/type-utils.js +0 -1
  897. package/dist/esm/type-utils.js.map +0 -6
  898. package/dist/esm/types.js +0 -1
  899. package/dist/esm/types.js.map +0 -6
  900. package/dist/esm/views/Configuration.js +0 -12
  901. package/dist/esm/views/Configuration.js.map +0 -6
  902. package/dist/esm/views/FontLanguage.js +0 -16
  903. package/dist/esm/views/FontLanguage.js.map +0 -6
  904. package/dist/esm/views/Slot.js +0 -43
  905. package/dist/esm/views/Slot.js.map +0 -6
  906. package/dist/esm/views/Stack.js +0 -13
  907. package/dist/esm/views/Stack.js.map +0 -6
  908. package/dist/esm/views/Stack.mjs +0 -11
  909. package/dist/esm/views/Stack.mjs.map +0 -1
  910. package/dist/esm/views/Stack.native.js +0 -11
  911. package/dist/esm/views/Stack.native.js.map +0 -1
  912. package/dist/esm/views/TamaguiProvider.js +0 -77
  913. package/dist/esm/views/TamaguiProvider.js.map +0 -6
  914. package/dist/esm/views/Text.js +0 -44
  915. package/dist/esm/views/Text.js.map +0 -6
  916. package/dist/esm/views/Theme.js +0 -110
  917. package/dist/esm/views/Theme.js.map +0 -6
  918. package/dist/esm/views/ThemeDebug.js +0 -69
  919. package/dist/esm/views/ThemeDebug.js.map +0 -6
  920. package/dist/esm/views/ThemeProvider.js +0 -31
  921. package/dist/esm/views/ThemeProvider.js.map +0 -6
  922. package/dist/esm/views/View.js +0 -12
  923. package/dist/esm/views/View.js.map +0 -6
  924. package/types/constants/webToNativeProps.d.ts.map +0 -1
  925. package/types/constants/webToNativeProps.native.d.ts.map +0 -1
  926. package/types/createTheme.d.ts.map +0 -1
  927. package/types/helpers/expandStyle.native.d.ts.map +0 -1
  928. package/types/helpers/propMapper.native.d.ts.map +0 -1
  929. package/types/views/Stack.d.ts.map +0 -1
@@ -0,0 +1,223 @@
1
+ import { tokenCategories } from '@tamagui/helpers'
2
+ import { getConfig } from '../config'
3
+ import { isVariable } from '../createVariable'
4
+ import type {
5
+ GetStyleState,
6
+ ResolveVariableAs,
7
+ SplitStyleProps,
8
+ Variable,
9
+ } from '../types'
10
+ import { getFontsForLanguage } from './getVariantExtras'
11
+ import { normalizeColor } from './normalizeColor'
12
+
13
+ const fontShorthand = {
14
+ fontSize: 'size',
15
+ fontWeight: 'weight',
16
+ }
17
+
18
+ let didLogMissingToken = false
19
+ const colorKeys = tokenCategories.color
20
+
21
+ // mutable state for font family tracking across propMapper
22
+ let _lastFontFamilyToken: any = null
23
+
24
+ export function getLastFontFamilyToken() {
25
+ return _lastFontFamilyToken
26
+ }
27
+
28
+ export function setLastFontFamilyToken(value: any) {
29
+ _lastFontFamilyToken = value
30
+ }
31
+
32
+ export const getTokenForKey = (
33
+ key: string,
34
+ value: string,
35
+ styleProps: SplitStyleProps,
36
+ styleState: Partial<GetStyleState>
37
+ ) => {
38
+ let resolveAs = styleProps.resolveValues || 'none'
39
+
40
+ if (resolveAs === 'none') {
41
+ return value
42
+ }
43
+
44
+ // parse opacity modifier: $token/50 → base token + 50% opacity
45
+ // only for color-related style properties
46
+ let opacityModifier: number | undefined
47
+ if (key in colorKeys) {
48
+ const slashIdx = value.indexOf('/')
49
+ if (slashIdx > 0) {
50
+ const raw = value.slice(slashIdx + 1)
51
+ // reject empty string after slash ($color/) to avoid Number("") === 0
52
+ if (raw.length > 0) {
53
+ const num = Number(raw)
54
+ if (!Number.isNaN(num)) {
55
+ opacityModifier = Math.max(0, Math.min(1, num / 100))
56
+ value = value.slice(0, slashIdx)
57
+ }
58
+ }
59
+ }
60
+ }
61
+
62
+ const { theme, conf = getConfig(), context, fontFamily, staticConfig } = styleState
63
+
64
+ const themeValue = theme ? theme[value] || theme[value.slice(1)] : undefined
65
+
66
+ const tokensParsed = conf.tokensParsed
67
+ let valOrVar: any
68
+ let hasSet = false
69
+
70
+ const customTokenAccept = staticConfig?.accept?.[key]
71
+ if (customTokenAccept) {
72
+ const val = themeValue ?? tokensParsed[customTokenAccept]?.[value]
73
+ if (val != null) {
74
+ resolveAs = 'value' // always resolve custom tokens as values
75
+ valOrVar = val
76
+ hasSet = true
77
+ }
78
+ }
79
+
80
+ if (themeValue) {
81
+ if (resolveAs === 'except-theme') {
82
+ return value
83
+ }
84
+
85
+ valOrVar = themeValue
86
+ if (process.env.NODE_ENV === 'development' && styleState.debug === 'verbose') {
87
+ globalThis.tamaguiAvoidTracking = true
88
+ console.info(
89
+ ` - resolving ${key} to theme value ${value} resolveAs ${resolveAs}`,
90
+ valOrVar
91
+ )
92
+ globalThis.tamaguiAvoidTracking = false
93
+ }
94
+ hasSet = true
95
+ } else {
96
+ if (value in conf.specificTokens) {
97
+ hasSet = true
98
+ valOrVar = conf.specificTokens[value]
99
+ } else {
100
+ switch (key) {
101
+ case 'fontFamily': {
102
+ const fontsParsed = context?.language
103
+ ? getFontsForLanguage(conf.fontsParsed, context.language)
104
+ : conf.fontsParsed
105
+ valOrVar = fontsParsed[value]?.family || value
106
+ setLastFontFamilyToken(value)
107
+ hasSet = true
108
+ break
109
+ }
110
+ case 'fontSize':
111
+ case 'lineHeight':
112
+ case 'letterSpacing':
113
+ case 'fontWeight': {
114
+ const fam = fontFamily || conf.defaultFontToken
115
+ if (fam) {
116
+ const fontsParsed = context?.language
117
+ ? getFontsForLanguage(conf.fontsParsed, context.language)
118
+ : conf.fontsParsed
119
+ const font = fontsParsed[fam] || fontsParsed[conf.defaultFontToken]
120
+ valOrVar = font?.[fontShorthand[key] || key]?.[value] || value
121
+ hasSet = true
122
+ }
123
+ break
124
+ }
125
+ }
126
+ for (const cat in tokenCategories) {
127
+ if (key in tokenCategories[cat]) {
128
+ const res = tokensParsed[cat]?.[value]
129
+
130
+ if (res != null) {
131
+ valOrVar = res
132
+ hasSet = true
133
+ } else {
134
+ if (process.env.NODE_ENV === 'development') {
135
+ if (process.env.TAMAGUI_DISABLE_MISSING_TOKEN_LOG !== '1') {
136
+ if (!didLogMissingToken) {
137
+ didLogMissingToken = true
138
+ console.groupCollapsed(
139
+ `[tamagui] Warning: missing token ${key} in category ${cat} - ${value} (open for details)`
140
+ )
141
+ console.info(
142
+ `Note: this could just be due to you not setting all the theme tokens Tamagui expects, which is harmless, but
143
+ it also often can be because you have a duplicated Tamagui in your bundle, which can cause tricky bugs.`
144
+ )
145
+ console.info(
146
+ `To see if you have duplicated dependencies, in Chrome DevTools hit CMD+P and type TamaguiProvider.
147
+ If you see both a .cjs and a .mjs entry, it's duplicated.`
148
+ )
149
+ console.info(
150
+ `You can debug that issue by opening the .mjs and .cjs files and setting a breakpoint at the top of each.`
151
+ )
152
+ console.info(
153
+ `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.`
154
+ )
155
+ console.groupEnd()
156
+ }
157
+ }
158
+ }
159
+ }
160
+ }
161
+ }
162
+ }
163
+
164
+ if (!hasSet) {
165
+ const spaceVar = tokensParsed.space[value]
166
+ if (spaceVar != null) {
167
+ valOrVar = spaceVar
168
+ hasSet = true
169
+ }
170
+ }
171
+ }
172
+
173
+ if (hasSet) {
174
+ let out = resolveVariableValue(key, valOrVar, resolveAs)
175
+
176
+ // apply opacity modifier via color-mix (web) or rgba (native)
177
+ if (opacityModifier !== undefined && opacityModifier < 1) {
178
+ out = normalizeColor(String(out), opacityModifier) ?? out
179
+ }
180
+
181
+ if (process.env.NODE_ENV === 'development' && styleState.debug === 'verbose') {
182
+ globalThis.tamaguiAvoidTracking = true
183
+ console.info(`resolved`, resolveAs, valOrVar, out)
184
+ globalThis.tamaguiAvoidTracking = false
185
+ }
186
+ return out
187
+ }
188
+
189
+ // they didn't define this token don't return anything, we could warn?
190
+
191
+ if (process.env.NODE_ENV === 'development' && styleState.debug === 'verbose') {
192
+ console.warn(`Warning: no token found for ${key}, omitting`)
193
+ }
194
+ }
195
+
196
+ export function resolveVariableValue(
197
+ key: string,
198
+ valOrVar: Variable | any,
199
+ resolveValues?: ResolveVariableAs
200
+ ) {
201
+ if (resolveValues === 'none') {
202
+ return valOrVar
203
+ }
204
+ if (isVariable(valOrVar)) {
205
+ if (resolveValues === 'value') {
206
+ return valOrVar.val
207
+ }
208
+
209
+ // @ts-expect-error this is fine until we can type better
210
+ const get = valOrVar?.get
211
+
212
+ // shadowColor doesn't support dynamic style
213
+ if (process.env.TAMAGUI_TARGET !== 'native' || key !== 'shadowColor') {
214
+ if (typeof get === 'function') {
215
+ const resolveDynamicFor = resolveValues === 'web' ? 'web' : undefined
216
+ return get(resolveDynamicFor)
217
+ }
218
+ }
219
+
220
+ return process.env.TAMAGUI_TARGET === 'native' ? valOrVar.val : valOrVar.variable
221
+ }
222
+ return valOrVar
223
+ }
@@ -81,7 +81,7 @@ function trackInsertedStyle(id: string) {
81
81
  }
82
82
 
83
83
  const bailAfterEnv = process.env.TAMAGUI_BAIL_AFTER_SCANNING_X_CSS_RULES
84
- const bailAfter = bailAfterEnv ? +bailAfterEnv : 400
84
+ const bailAfter = bailAfterEnv ? +bailAfterEnv : 8000
85
85
 
86
86
  function updateSheetStyles(
87
87
  sheet: CSSStyleSheet,
@@ -20,7 +20,8 @@ const emptyConfig = {}
20
20
  let usePressability: any = null
21
21
 
22
22
  export function useMainThreadPressEvents(events: any, viewProps: any, enabled = true) {
23
- usePressability ||=
23
+ usePressability =
24
+ usePressability ||
24
25
  require('react-native/Libraries/Pressability/usePressability').default
25
26
 
26
27
  // always call the hook to maintain consistent hook order
@@ -0,0 +1,30 @@
1
+ import type { MediaQueryObject } from '../types'
2
+
3
+ function camelToHyphen(str: string) {
4
+ return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`).toLowerCase()
5
+ }
6
+
7
+ const cache = new WeakMap<any, string>()
8
+
9
+ export function mediaObjectToString(query: string | MediaQueryObject) {
10
+ if (typeof query === 'string') {
11
+ return query
12
+ }
13
+ if (cache.has(query)) {
14
+ return cache.get(query)!
15
+ }
16
+ const res = Object.entries(query)
17
+ .map(([feature, value]) => {
18
+ feature = camelToHyphen(feature)
19
+ if (typeof value === 'string') {
20
+ return `(${feature}: ${value})`
21
+ }
22
+ if (typeof value === 'number' && /[height|width]$/.test(feature)) {
23
+ value = `${value}px`
24
+ }
25
+ return `(${feature}: ${value})`
26
+ })
27
+ .join(' and ')
28
+ cache.set(query, res)
29
+ return res
30
+ }
@@ -0,0 +1,32 @@
1
+ import type { MediaQueries, MediaQueryState } from '../types'
2
+
3
+ export let mediaState: MediaQueryState =
4
+ // development only safeguard
5
+ process.env.NODE_ENV === 'development'
6
+ ? new Proxy(
7
+ {},
8
+ {
9
+ get(target, key) {
10
+ if (
11
+ typeof key === 'string' &&
12
+ key[0] === '$' &&
13
+ // dont error on $$typeof
14
+ key[1] !== '$'
15
+ ) {
16
+ throw new Error(`Access mediaState should not use "$": ${key}`)
17
+ }
18
+ return Reflect.get(target, key)
19
+ },
20
+ }
21
+ )
22
+ : ({} as any)
23
+
24
+ export const setMediaState = (next: MediaQueryState) => {
25
+ mediaState = next
26
+ }
27
+
28
+ export const mediaQueryConfig: MediaQueries = {}
29
+
30
+ export const getMedia = () => mediaState
31
+
32
+ export const mediaKeys = new Set<string>() // with $ prefix
@@ -1,17 +1,16 @@
1
- // web-only: use color-mix for opacity, no parsing needed
2
- // browsers handle named colors, hex, rgb, hsl natively
1
+ // web: use color-mix for opacity (CSS-native, works with variables and named colors)
2
+ // animation drivers that need rgba handle their own conversion
3
+
4
+ import { normalizeCSSColor, rgba } from '@tamagui/normalize-css-color'
3
5
 
4
6
  export const normalizeColor = (color?: string | null, opacity?: number) => {
5
7
  if (!color) return
6
- // handle dynamic color objects (from $theme-dark/$theme-light)
7
8
  if (typeof color !== 'string') return color
8
9
 
9
- // convert "transparent" to rgba for animation compatibility (motion.dev requires rgba)
10
10
  if (color === 'transparent') {
11
11
  return 'rgba(0, 0, 0, 0)'
12
12
  }
13
13
 
14
- // apply opacity via color-mix (widely supported: Chrome 111+, Safari 16.2+, Firefox 113+)
15
14
  if (typeof opacity === 'number' && opacity < 1) {
16
15
  return `color-mix(in srgb, ${color} ${Math.round(opacity * 100)}%, transparent)`
17
16
  }
@@ -19,7 +18,12 @@ export const normalizeColor = (color?: string | null, opacity?: number) => {
19
18
  return color
20
19
  }
21
20
 
22
- // stub for native compat - native uses normalizeColor.native.ts which has real impl
23
21
  export const getRgba = (
24
- _color: string
25
- ): { r: number; g: number; b: number; a: number } | undefined => undefined
22
+ color: string
23
+ ): { r: number; g: number; b: number; a: number } | undefined => {
24
+ if (typeof color !== 'string') return
25
+ const colorNum = normalizeCSSColor(color)
26
+ if (colorNum != null) {
27
+ return rgba(colorNum)
28
+ }
29
+ }
@@ -23,8 +23,15 @@ export function normalizeValueWithProperty(value: any, property = ''): any {
23
23
  ) {
24
24
  return value
25
25
  }
26
+ if (value && typeof value === 'object') {
27
+ if (typeof value.__getValue === 'function') {
28
+ // resolve Animated.Value objects
29
+ value = value.__getValue()
30
+ } else {
31
+ return value
32
+ }
33
+ }
26
34
  let res = value
27
- if (value && typeof value === 'object') return value
28
35
  if (typeof value === 'number') {
29
36
  res = `${value}px`
30
37
  } else if (property) {
@@ -0,0 +1,193 @@
1
+ /**
2
+ * parses CSS string values into RN object format on native,
3
+ * preserving DynamicColorIOS objects from the token map.
4
+ *
5
+ * supports: backgroundImage (linear-gradient), boxShadow, textShadow
6
+ * filter has no RN object equivalent, returns undefined (falls back to string)
7
+ *
8
+ * only called inside process.env.TAMAGUI_TARGET === 'native' checks,
9
+ * so this code is dead-code-eliminated on web builds.
10
+ */
11
+
12
+ type TokenMap = Map<string, any>
13
+
14
+ export function parseNativeStyle(
15
+ key: string,
16
+ cssString: string,
17
+ tokenMap?: TokenMap
18
+ ): any | undefined {
19
+ switch (key) {
20
+ case 'backgroundImage':
21
+ return parseBackgroundImage(cssString, tokenMap)
22
+ case 'boxShadow':
23
+ return parseBoxShadow(cssString, tokenMap)
24
+ case 'textShadow':
25
+ return parseTextShadow(cssString, tokenMap)
26
+ default:
27
+ return undefined
28
+ }
29
+ }
30
+
31
+ function resolveColor(raw: string, tokenMap?: TokenMap): any {
32
+ if (tokenMap && tokenMap.has(raw)) {
33
+ return tokenMap.get(raw)
34
+ }
35
+ return raw
36
+ }
37
+
38
+ // parse "linear-gradient(direction, color1 pos1, color2 pos2, ...)"
39
+ function parseBackgroundImage(css: string, tokenMap?: TokenMap): any[] | undefined {
40
+ const match = css.match(/^linear-gradient\((.+)\)$/s)
41
+ if (!match) return undefined
42
+
43
+ const inner = match[1]
44
+ // split on commas that are not inside parentheses
45
+ const parts = splitOutsideParens(inner)
46
+ if (parts.length < 2) return undefined
47
+
48
+ let direction: string | undefined
49
+ let startIdx = 0
50
+
51
+ const firstPart = parts[0].trim()
52
+ // check if first part is a direction (starts with "to " or ends with "deg/rad/turn/grad")
53
+ if (firstPart.startsWith('to ') || /^\d+(\.\d+)?(deg|rad|turn|grad)$/.test(firstPart)) {
54
+ direction = firstPart
55
+ startIdx = 1
56
+ }
57
+
58
+ const colorStops: any[] = []
59
+ for (let i = startIdx; i < parts.length; i++) {
60
+ const stopParts = parts[i].trim().match(/\S+\([^)]*\)|\S+/g)
61
+ if (!stopParts) continue
62
+ const colorRaw = stopParts[0]
63
+ const color = resolveColor(colorRaw, tokenMap)
64
+ const positions = stopParts.slice(1)
65
+ const stop: any = { color }
66
+ if (positions.length > 0) {
67
+ stop.positions = positions
68
+ }
69
+ colorStops.push(stop)
70
+ }
71
+
72
+ const gradient: any = {
73
+ type: 'linear-gradient',
74
+ colorStops,
75
+ }
76
+ if (direction) {
77
+ gradient.direction = direction
78
+ }
79
+
80
+ return [gradient]
81
+ }
82
+
83
+ // parse "offsetX offsetY [blur [spread]] [color]" (comma-separated for multiple)
84
+ function parseBoxShadow(css: string, tokenMap?: TokenMap): any[] | undefined {
85
+ // split on commas for multiple shadows
86
+ const shadowStrings = splitOutsideParens(css)
87
+ const shadows: any[] = []
88
+
89
+ for (const raw of shadowStrings) {
90
+ const s = raw.trim()
91
+ if (!s) continue
92
+
93
+ const tokens = s.split(/\s+/)
94
+ if (tokens.length < 2) return undefined
95
+
96
+ let startIdx = 0
97
+ let inset = false
98
+ if (tokens[0] === 'inset') {
99
+ inset = true
100
+ startIdx = 1
101
+ }
102
+
103
+ // find where the color starts - numbers/dimensions come first
104
+ const numericParts: number[] = []
105
+ let colorParts: string[] = []
106
+
107
+ for (let i = startIdx; i < tokens.length; i++) {
108
+ const n = parseDimension(tokens[i])
109
+ if (n !== undefined) {
110
+ numericParts.push(n)
111
+ } else {
112
+ // rest is color (could be "rgba(..." which was split, so rejoin)
113
+ colorParts = tokens.slice(i)
114
+ break
115
+ }
116
+ }
117
+
118
+ if (numericParts.length < 2) return undefined
119
+
120
+ const shadow: any = {
121
+ offsetX: numericParts[0],
122
+ offsetY: numericParts[1],
123
+ }
124
+ if (inset) {
125
+ shadow.inset = true
126
+ }
127
+ if (numericParts.length >= 3) {
128
+ shadow.blurRadius = numericParts[2]
129
+ }
130
+ if (numericParts.length >= 4) {
131
+ shadow.spreadDistance = numericParts[3]
132
+ }
133
+ if (colorParts.length > 0) {
134
+ const colorStr = colorParts.join(' ')
135
+ shadow.color = resolveColor(colorStr, tokenMap)
136
+ }
137
+
138
+ shadows.push(shadow)
139
+ }
140
+
141
+ return shadows.length > 0 ? shadows : undefined
142
+ }
143
+
144
+ // parse "offsetX offsetY blur color"
145
+ function parseTextShadow(css: string, tokenMap?: TokenMap): [string, any][] | undefined {
146
+ const tokens = css.trim().split(/\s+/)
147
+ if (tokens.length < 3) return undefined
148
+
149
+ const offsetX = parseDimension(tokens[0])
150
+ const offsetY = parseDimension(tokens[1])
151
+ const blur = parseDimension(tokens[2])
152
+
153
+ if (offsetX === undefined || offsetY === undefined || blur === undefined) {
154
+ return undefined
155
+ }
156
+
157
+ const result: [string, any][] = [
158
+ ['textShadowOffset', { width: offsetX, height: offsetY }],
159
+ ['textShadowRadius', blur],
160
+ ]
161
+
162
+ if (tokens.length >= 4) {
163
+ const colorStr = tokens.slice(3).join(' ')
164
+ result.push(['textShadowColor', resolveColor(colorStr, tokenMap)])
165
+ }
166
+
167
+ return result
168
+ }
169
+
170
+ function parseDimension(s: string): number | undefined {
171
+ // strip px/dp suffix
172
+ const cleaned = s.replace(/px$|dp$/, '')
173
+ const n = Number(cleaned)
174
+ return Number.isFinite(n) ? n : undefined
175
+ }
176
+
177
+ // split a string on commas that are not inside parentheses
178
+ function splitOutsideParens(s: string): string[] {
179
+ const parts: string[] = []
180
+ let depth = 0
181
+ let start = 0
182
+ for (let i = 0; i < s.length; i++) {
183
+ const ch = s.charCodeAt(i)
184
+ if (ch === 40 /* ( */) depth++
185
+ else if (ch === 41 /* ) */) depth--
186
+ else if (ch === 44 /* , */ && depth === 0) {
187
+ parts.push(s.slice(start, i))
188
+ start = i + 1
189
+ }
190
+ }
191
+ parts.push(s.slice(start))
192
+ return parts
193
+ }
@@ -0,0 +1,62 @@
1
+ import type { PropMappedValue } from '../types'
2
+
3
+ // outline style keywords
4
+ const outlineStyles = new Set([
5
+ 'solid',
6
+ 'dashed',
7
+ 'dotted',
8
+ 'double',
9
+ 'groove',
10
+ 'ridge',
11
+ 'inset',
12
+ 'outset',
13
+ 'none',
14
+ 'hidden',
15
+ ])
16
+
17
+ // parses CSS outline shorthand: "<width> <style> <color>"
18
+ // components can appear in any order, all are optional
19
+ // on native, expands directly to individual outline properties
20
+ export function parseOutlineShorthand(value: string): PropMappedValue | undefined {
21
+ if (value === 'none' || value === '0') {
22
+ return [
23
+ ['outlineWidth', 0],
24
+ ['outlineStyle', 'none'],
25
+ ]
26
+ }
27
+
28
+ const parts = value.trim().split(/\s+/)
29
+ let outlineWidth: string | number | undefined
30
+ let outlineStyle: string | undefined
31
+ let outlineColor: string | undefined
32
+
33
+ for (const part of parts) {
34
+ // check if it's an outline style keyword
35
+ if (outlineStyles.has(part)) {
36
+ outlineStyle = part
37
+ }
38
+ // check if it's a length (number or ends with px/em/rem/etc)
39
+ else if (/^[\d.]+(?:px|em|rem|%|pt|vw|vh)?$/.test(part)) {
40
+ const num = parseFloat(part)
41
+ outlineWidth = part.endsWith('px') || !part.match(/[a-z%]/i) ? num : part
42
+ }
43
+ // otherwise assume it's a color
44
+ else {
45
+ outlineColor = part
46
+ }
47
+ }
48
+
49
+ const result: PropMappedValue = []
50
+
51
+ if (outlineWidth !== undefined) {
52
+ result.push(['outlineWidth', outlineWidth])
53
+ }
54
+ if (outlineStyle !== undefined) {
55
+ result.push(['outlineStyle', outlineStyle])
56
+ }
57
+ if (outlineColor !== undefined) {
58
+ result.push(['outlineColor', outlineColor])
59
+ }
60
+
61
+ return result.length > 0 ? result : undefined
62
+ }
@@ -0,0 +1,6 @@
1
+ import type { PropMappedValue } from '../types'
2
+
3
+ // no-op on web - outline shorthand is passed through as CSS
4
+ export function parseOutlineShorthand(_value: string): PropMappedValue | undefined {
5
+ return undefined
6
+ }
@@ -0,0 +1,72 @@
1
+ import type { GetStyleState, SplitStyleProps } from '../types'
2
+ import { getTokenForKey } from './getTokenForKey'
3
+ import { parseNativeStyle } from './parseNativeStyle'
4
+
5
+ const tokenPattern = /(\$[\w.-]+)/g
6
+
7
+ // keys that need native object parsing (DynamicColorIOS support)
8
+ const nativeParseKeys: Record<string, boolean> = {
9
+ backgroundImage: true,
10
+ boxShadow: true,
11
+ textShadow: true,
12
+ }
13
+
14
+ function replaceTokens(
15
+ value: string,
16
+ styleProps: SplitStyleProps,
17
+ styleState: Partial<GetStyleState>
18
+ ): string {
19
+ return value.replace(tokenPattern, (t) => {
20
+ let r = getTokenForKey('size', t, styleProps, styleState)
21
+ if (r == null) {
22
+ r = getTokenForKey('color', t, styleProps, styleState)
23
+ }
24
+ return r != null ? String(r) : t
25
+ })
26
+ }
27
+
28
+ /**
29
+ * native: resolves embedded $tokens, with DynamicColorIOS placeholder
30
+ * support for boxShadow/textShadow/backgroundImage.
31
+ */
32
+ export function platformResolveValue(
33
+ key: string,
34
+ value: string,
35
+ styleProps: SplitStyleProps,
36
+ styleState: Partial<GetStyleState>
37
+ ): any {
38
+ if (!nativeParseKeys[key]) {
39
+ return replaceTokens(value, styleProps, styleState)
40
+ }
41
+
42
+ // for backgroundImage (gradients), force 'web' resolution to avoid DynamicColorIOS
43
+ // gradients don't support dynamic color updates - RN resolves colors once at render time
44
+ // so we need plain values and must let the component re-render on scheme changes
45
+ const effectiveStyleProps =
46
+ key === 'backgroundImage'
47
+ ? { ...styleProps, resolveValues: 'web' as const }
48
+ : styleProps
49
+
50
+ // preserve DynamicColorIOS objects through parsing (for boxShadow/textShadow)
51
+ const tokenMap = new Map<string, any>()
52
+ let placeholderIdx = 0
53
+ const withPlaceholders = value.replace(tokenPattern, (t) => {
54
+ let r = getTokenForKey('size', t, effectiveStyleProps, styleState)
55
+ if (r == null) {
56
+ r = getTokenForKey('color', t, effectiveStyleProps, styleState)
57
+ }
58
+ if (r == null) return t
59
+ if (typeof r !== 'string' && typeof r !== 'number') {
60
+ const placeholder = `__tk${placeholderIdx++}__`
61
+ tokenMap.set(placeholder, r)
62
+ return placeholder
63
+ }
64
+ return String(r)
65
+ })
66
+
67
+ const parsed = parseNativeStyle(key, withPlaceholders, tokenMap)
68
+ if (parsed) return parsed
69
+
70
+ // fallback to plain string resolution
71
+ return replaceTokens(value, styleProps, styleState)
72
+ }