@tamagui/web 2.7.7 → 3.0.0-beta.1097.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1860) hide show
  1. package/dist/cjs/Tamagui.cjs +44 -53
  2. package/dist/cjs/Tamagui.native.cjs +123 -0
  3. package/dist/cjs/Tamagui.native.js +93 -96
  4. package/dist/cjs/Tamagui.native.js.map +1 -1
  5. package/dist/cjs/_withNativeStyle.cjs +80 -0
  6. package/dist/cjs/_withNativeStyle.native.cjs +85 -0
  7. package/dist/cjs/_withNativeStyle.native.js +87 -0
  8. package/dist/cjs/_withNativeStyle.native.js.map +1 -0
  9. package/dist/cjs/_withStableStyle.cjs +58 -54
  10. package/dist/cjs/_withStableStyle.native.cjs +88 -0
  11. package/dist/cjs/_withStableStyle.native.js +65 -57
  12. package/dist/cjs/_withStableStyle.native.js.map +1 -1
  13. package/dist/cjs/config.cjs +126 -133
  14. package/dist/cjs/config.native.cjs +198 -0
  15. package/dist/cjs/config.native.js +162 -173
  16. package/dist/cjs/config.native.js.map +1 -1
  17. package/dist/cjs/constants/constants.cjs +17 -19
  18. package/dist/cjs/constants/constants.native.cjs +40 -0
  19. package/dist/cjs/constants/constants.native.js +17 -18
  20. package/dist/cjs/constants/constants.native.js.map +1 -1
  21. package/dist/cjs/constants/isDevTools.cjs +20 -24
  22. package/dist/cjs/constants/isDevTools.native.cjs +33 -0
  23. package/dist/cjs/constants/isDevTools.native.js +22 -25
  24. package/dist/cjs/constants/isDevTools.native.js.map +1 -1
  25. package/dist/cjs/contexts/ComponentContext.cjs +31 -25
  26. package/dist/cjs/contexts/ComponentContext.native.cjs +49 -0
  27. package/dist/cjs/contexts/ComponentContext.native.js +32 -25
  28. package/dist/cjs/contexts/ComponentContext.native.js.map +1 -1
  29. package/dist/cjs/contexts/GroupContext.cjs +14 -18
  30. package/dist/cjs/contexts/GroupContext.native.cjs +27 -0
  31. package/dist/cjs/contexts/GroupContext.native.js +15 -18
  32. package/dist/cjs/contexts/GroupContext.native.js.map +1 -1
  33. package/dist/cjs/createComponent.cjs +1001 -1022
  34. package/dist/cjs/createComponent.native.cjs +1163 -0
  35. package/dist/cjs/createComponent.native.js +1098 -1001
  36. package/dist/cjs/createComponent.native.js.map +1 -1
  37. package/dist/cjs/createFont.cjs +40 -36
  38. package/dist/cjs/createFont.native.cjs +56 -0
  39. package/dist/cjs/createFont.native.js +43 -38
  40. package/dist/cjs/createFont.native.js.map +1 -1
  41. package/dist/cjs/createShorthands.cjs +15 -19
  42. package/dist/cjs/createShorthands.native.cjs +28 -0
  43. package/dist/cjs/createShorthands.native.js +15 -18
  44. package/dist/cjs/createShorthands.native.js.map +1 -1
  45. package/dist/cjs/createStyledHOC.cjs +104 -0
  46. package/dist/cjs/createStyledHOC.native.cjs +107 -0
  47. package/dist/cjs/createStyledHOC.native.js +109 -0
  48. package/dist/cjs/createStyledHOC.native.js.map +1 -0
  49. package/dist/cjs/createTamagui.cjs +287 -224
  50. package/dist/cjs/createTamagui.native.cjs +354 -0
  51. package/dist/cjs/createTamagui.native.js +321 -272
  52. package/dist/cjs/createTamagui.native.js.map +1 -1
  53. package/dist/cjs/createTokens.cjs +27 -19
  54. package/dist/cjs/createTokens.native.cjs +42 -0
  55. package/dist/cjs/createTokens.native.js +28 -19
  56. package/dist/cjs/createTokens.native.js.map +1 -1
  57. package/dist/cjs/createVariable.cjs +85 -90
  58. package/dist/cjs/createVariable.native.cjs +130 -0
  59. package/dist/cjs/createVariable.native.js +97 -106
  60. package/dist/cjs/createVariable.native.js.map +1 -1
  61. package/dist/cjs/createVariables.cjs +49 -60
  62. package/dist/cjs/createVariables.native.cjs +66 -0
  63. package/dist/cjs/createVariables.native.js +51 -66
  64. package/dist/cjs/createVariables.native.js.map +1 -1
  65. package/dist/cjs/defaultComponentState.cjs +28 -30
  66. package/dist/cjs/defaultComponentState.native.cjs +47 -0
  67. package/dist/cjs/defaultComponentState.native.js +28 -29
  68. package/dist/cjs/defaultComponentState.native.js.map +1 -1
  69. package/dist/cjs/dom/adapters.cjs +95 -0
  70. package/dist/cjs/dom/adapters.native.cjs +116 -0
  71. package/dist/cjs/dom/adapters.native.js +118 -0
  72. package/dist/cjs/dom/adapters.native.js.map +1 -0
  73. package/dist/cjs/dom/contract.cjs +16 -0
  74. package/dist/cjs/dom/contract.native.cjs +18 -0
  75. package/dist/cjs/dom/contract.native.js +20 -0
  76. package/dist/cjs/dom/contract.native.js.map +1 -0
  77. package/dist/cjs/dom/domEventProps.native.cjs +56 -0
  78. package/dist/cjs/dom/domEventProps.native.js +58 -0
  79. package/dist/cjs/dom/domEventProps.native.js.map +1 -0
  80. package/dist/cjs/dom/html.cjs +630 -0
  81. package/dist/cjs/dom/html.native.cjs +951 -0
  82. package/dist/cjs/dom/html.native.js +953 -0
  83. package/dist/cjs/dom/html.native.js.map +1 -0
  84. package/dist/cjs/dom/htmlRuntime.native.cjs +176 -0
  85. package/dist/cjs/dom/htmlRuntime.native.js +178 -0
  86. package/dist/cjs/dom/htmlRuntime.native.js.map +1 -0
  87. package/dist/cjs/dom/index.cjs +28 -0
  88. package/dist/cjs/dom/index.native.cjs +41 -0
  89. package/dist/cjs/dom/index.native.js +43 -0
  90. package/dist/cjs/dom/index.native.js.map +1 -0
  91. package/dist/cjs/dom/primitives.native.cjs +642 -0
  92. package/dist/cjs/dom/primitives.native.js +644 -0
  93. package/dist/cjs/dom/primitives.native.js.map +1 -0
  94. package/dist/cjs/dom/standalone.cjs +33 -0
  95. package/dist/cjs/dom/standalone.native.cjs +39 -0
  96. package/dist/cjs/dom/standalone.native.js +41 -0
  97. package/dist/cjs/dom/standalone.native.js.map +1 -0
  98. package/dist/cjs/dom/standaloneHtml.cjs +75 -0
  99. package/dist/cjs/dom/standaloneHtml.native.cjs +77 -0
  100. package/dist/cjs/dom/standaloneHtml.native.js +79 -0
  101. package/dist/cjs/dom/standaloneHtml.native.js.map +1 -0
  102. package/dist/cjs/dom/styleTypes.cjs +16 -0
  103. package/dist/cjs/dom/styleTypes.native.cjs +18 -0
  104. package/dist/cjs/dom/styleTypes.native.js +20 -0
  105. package/dist/cjs/dom/styleTypes.native.js.map +1 -0
  106. package/dist/cjs/eventDetails.cjs +38 -0
  107. package/dist/cjs/eventDetails.native.cjs +40 -0
  108. package/dist/cjs/eventDetails.native.js +42 -0
  109. package/dist/cjs/eventDetails.native.js.map +1 -0
  110. package/dist/cjs/eventHandling.cjs +29 -31
  111. package/dist/cjs/eventHandling.native.cjs +191 -0
  112. package/dist/cjs/eventHandling.native.js +158 -188
  113. package/dist/cjs/eventHandling.native.js.map +1 -1
  114. package/dist/cjs/helpers/borderComponents.cjs +62 -0
  115. package/dist/cjs/helpers/borderComponents.native.cjs +82 -0
  116. package/dist/cjs/helpers/borderComponents.native.js +84 -0
  117. package/dist/cjs/helpers/borderComponents.native.js.map +1 -0
  118. package/dist/cjs/helpers/componentDisplayName.cjs +24 -0
  119. package/dist/cjs/helpers/componentDisplayName.native.cjs +26 -0
  120. package/dist/cjs/helpers/componentDisplayName.native.js +28 -0
  121. package/dist/cjs/helpers/componentDisplayName.native.js.map +1 -0
  122. package/dist/cjs/helpers/configVariables.cjs +79 -0
  123. package/dist/cjs/helpers/configVariables.native.cjs +82 -0
  124. package/dist/cjs/helpers/configVariables.native.js +84 -0
  125. package/dist/cjs/helpers/configVariables.native.js.map +1 -0
  126. package/dist/cjs/helpers/consoleLog.native.cjs +30 -0
  127. package/dist/cjs/helpers/consoleLog.native.js +16 -17
  128. package/dist/cjs/helpers/consoleLog.native.js.map +1 -1
  129. package/dist/cjs/helpers/createDesignSystem.cjs +146 -152
  130. package/dist/cjs/helpers/createDesignSystem.native.cjs +195 -0
  131. package/dist/cjs/helpers/createDesignSystem.native.js +167 -205
  132. package/dist/cjs/helpers/createDesignSystem.native.js.map +1 -1
  133. package/dist/cjs/helpers/createStyledContext.cjs +64 -84
  134. package/dist/cjs/helpers/createStyledContext.native.cjs +88 -0
  135. package/dist/cjs/helpers/createStyledContext.native.js +69 -88
  136. package/dist/cjs/helpers/createStyledContext.native.js.map +1 -1
  137. package/dist/cjs/helpers/defaultAnimationDriver.cjs +23 -32
  138. package/dist/cjs/helpers/defaultAnimationDriver.native.cjs +46 -0
  139. package/dist/cjs/helpers/defaultAnimationDriver.native.js +32 -48
  140. package/dist/cjs/helpers/defaultAnimationDriver.native.js.map +1 -1
  141. package/dist/cjs/helpers/defaultOffset.cjs +16 -20
  142. package/dist/cjs/helpers/defaultOffset.native.cjs +29 -0
  143. package/dist/cjs/helpers/defaultOffset.native.js +16 -19
  144. package/dist/cjs/helpers/defaultOffset.native.js.map +1 -1
  145. package/dist/cjs/helpers/expandStyle.cjs +150 -84
  146. package/dist/cjs/helpers/expandStyle.native.cjs +185 -0
  147. package/dist/cjs/helpers/expandStyle.native.js +153 -124
  148. package/dist/cjs/helpers/expandStyle.native.js.map +1 -1
  149. package/dist/cjs/helpers/expandStyles.cjs +27 -25
  150. package/dist/cjs/helpers/expandStyles.native.cjs +52 -0
  151. package/dist/cjs/helpers/expandStyles.native.js +34 -31
  152. package/dist/cjs/helpers/expandStyles.native.js.map +1 -1
  153. package/dist/cjs/helpers/extractPseudoState.cjs +44 -0
  154. package/dist/cjs/helpers/extractPseudoState.native.cjs +47 -0
  155. package/dist/cjs/helpers/extractPseudoState.native.js +49 -0
  156. package/dist/cjs/helpers/extractPseudoState.native.js.map +1 -0
  157. package/dist/cjs/helpers/fluid.cjs +56 -0
  158. package/dist/cjs/helpers/fluid.native.cjs +58 -0
  159. package/dist/cjs/helpers/fluid.native.js +60 -0
  160. package/dist/cjs/helpers/fluid.native.js.map +1 -0
  161. package/dist/cjs/helpers/formatDiagnostic.cjs +69 -0
  162. package/dist/cjs/helpers/formatDiagnostic.native.cjs +74 -0
  163. package/dist/cjs/helpers/formatDiagnostic.native.js +76 -0
  164. package/dist/cjs/helpers/formatDiagnostic.native.js.map +1 -0
  165. package/dist/cjs/helpers/getCSSStylesAtomic.cjs +242 -193
  166. package/dist/cjs/helpers/getCSSStylesAtomic.native.cjs +45 -0
  167. package/dist/cjs/helpers/getCSSStylesAtomic.native.js +29 -20
  168. package/dist/cjs/helpers/getCSSStylesAtomic.native.js.map +1 -1
  169. package/dist/cjs/helpers/getCSSStylesAtomicCompiled.cjs +44 -0
  170. package/dist/cjs/helpers/getCSSStylesAtomicCompiled.native.cjs +48 -0
  171. package/dist/cjs/helpers/getCSSStylesAtomicCompiled.native.js +50 -0
  172. package/dist/cjs/helpers/getCSSStylesAtomicCompiled.native.js.map +1 -0
  173. package/dist/cjs/helpers/getDynamicVal.cjs +48 -52
  174. package/dist/cjs/helpers/getDynamicVal.native.cjs +71 -0
  175. package/dist/cjs/helpers/getDynamicVal.native.js +48 -51
  176. package/dist/cjs/helpers/getDynamicVal.native.js.map +1 -1
  177. package/dist/cjs/helpers/getExpandedShorthands.cjs +16 -30
  178. package/dist/cjs/helpers/getExpandedShorthands.native.cjs +31 -0
  179. package/dist/cjs/helpers/getExpandedShorthands.native.js +17 -30
  180. package/dist/cjs/helpers/getExpandedShorthands.native.js.map +1 -1
  181. package/dist/cjs/helpers/getShorthandValue.cjs +16 -20
  182. package/dist/cjs/helpers/getShorthandValue.native.cjs +32 -0
  183. package/dist/cjs/helpers/getShorthandValue.native.js +18 -21
  184. package/dist/cjs/helpers/getShorthandValue.native.js.map +1 -1
  185. package/dist/cjs/helpers/getSplitStyles.cjs +1720 -919
  186. package/dist/cjs/helpers/getSplitStyles.native.cjs +1946 -0
  187. package/dist/cjs/helpers/getSplitStyles.native.js +1911 -948
  188. package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
  189. package/dist/cjs/helpers/getThemeCSSRules.cjs +105 -109
  190. package/dist/cjs/helpers/getThemeCSSRules.native.cjs +28 -0
  191. package/dist/cjs/helpers/getThemeCSSRules.native.js +15 -18
  192. package/dist/cjs/helpers/getThemeCSSRules.native.js.map +1 -1
  193. package/dist/cjs/helpers/grammarConfig.cjs +276 -0
  194. package/dist/cjs/helpers/grammarConfig.native.cjs +412 -0
  195. package/dist/cjs/helpers/grammarConfig.native.js +414 -0
  196. package/dist/cjs/helpers/grammarConfig.native.js.map +1 -0
  197. package/dist/cjs/helpers/insertStyleRule.cjs +253 -184
  198. package/dist/cjs/helpers/insertStyleRule.native.cjs +223 -0
  199. package/dist/cjs/helpers/insertStyleRule.native.js +189 -68
  200. package/dist/cjs/helpers/insertStyleRule.native.js.map +1 -1
  201. package/dist/cjs/helpers/isObj.cjs +22 -16
  202. package/dist/cjs/helpers/isObj.native.cjs +38 -0
  203. package/dist/cjs/helpers/isObj.native.js +24 -22
  204. package/dist/cjs/helpers/isObj.native.js.map +1 -1
  205. package/dist/cjs/helpers/isTamaguiComponent.cjs +17 -21
  206. package/dist/cjs/helpers/isTamaguiComponent.native.cjs +29 -0
  207. package/dist/cjs/helpers/isTamaguiComponent.native.js +17 -20
  208. package/dist/cjs/helpers/isTamaguiComponent.native.js.map +1 -1
  209. package/dist/cjs/helpers/isTamaguiElement.cjs +19 -28
  210. package/dist/cjs/helpers/isTamaguiElement.native.cjs +36 -0
  211. package/dist/cjs/helpers/isTamaguiElement.native.js +19 -27
  212. package/dist/cjs/helpers/isTamaguiElement.native.js.map +1 -1
  213. package/dist/cjs/helpers/log.cjs +24 -27
  214. package/dist/cjs/helpers/log.native.cjs +39 -0
  215. package/dist/cjs/helpers/log.native.js +25 -27
  216. package/dist/cjs/helpers/log.native.js.map +1 -1
  217. package/dist/cjs/helpers/mainThreadPressEvents.cjs +14 -18
  218. package/dist/cjs/helpers/mainThreadPressEvents.native.cjs +155 -0
  219. package/dist/cjs/helpers/mainThreadPressEvents.native.js +138 -142
  220. package/dist/cjs/helpers/mainThreadPressEvents.native.js.map +1 -1
  221. package/dist/cjs/helpers/matchMedia.cjs +21 -23
  222. package/dist/cjs/helpers/matchMedia.native.cjs +68 -0
  223. package/dist/cjs/helpers/matchMedia.native.js +49 -41
  224. package/dist/cjs/helpers/matchMedia.native.js.map +1 -1
  225. package/dist/cjs/helpers/mediaObjectToString.cjs +34 -38
  226. package/dist/cjs/helpers/mediaObjectToString.native.cjs +52 -0
  227. package/dist/cjs/helpers/mediaObjectToString.native.js +37 -40
  228. package/dist/cjs/helpers/mediaObjectToString.native.js.map +1 -1
  229. package/dist/cjs/helpers/mediaState.cjs +34 -43
  230. package/dist/cjs/helpers/mediaState.native.cjs +52 -0
  231. package/dist/cjs/helpers/mediaState.native.js +37 -46
  232. package/dist/cjs/helpers/mediaState.native.js.map +1 -1
  233. package/dist/cjs/helpers/mergeProps.cjs +50 -63
  234. package/dist/cjs/helpers/mergeProps.native.cjs +68 -0
  235. package/dist/cjs/helpers/mergeProps.native.js +53 -70
  236. package/dist/cjs/helpers/mergeProps.native.js.map +1 -1
  237. package/dist/cjs/helpers/mergeRenderElementProps.cjs +17 -23
  238. package/dist/cjs/helpers/mergeRenderElementProps.native.cjs +31 -0
  239. package/dist/cjs/helpers/mergeRenderElementProps.native.js +17 -22
  240. package/dist/cjs/helpers/mergeRenderElementProps.native.js.map +1 -1
  241. package/dist/cjs/helpers/mergeSlotStyleProps.cjs +34 -38
  242. package/dist/cjs/helpers/mergeSlotStyleProps.native.cjs +50 -0
  243. package/dist/cjs/helpers/mergeSlotStyleProps.native.js +34 -37
  244. package/dist/cjs/helpers/mergeSlotStyleProps.native.js.map +1 -1
  245. package/dist/cjs/helpers/mergeVariants.cjs +82 -41
  246. package/dist/cjs/helpers/mergeVariants.native.cjs +130 -0
  247. package/dist/cjs/helpers/mergeVariants.native.js +118 -42
  248. package/dist/cjs/helpers/mergeVariants.native.js.map +1 -1
  249. package/dist/cjs/helpers/nativeOnlyProps.cjs +46 -51
  250. package/dist/cjs/helpers/nativeOnlyProps.native.cjs +59 -0
  251. package/dist/cjs/helpers/nativeOnlyProps.native.js +46 -50
  252. package/dist/cjs/helpers/nativeOnlyProps.native.js.map +1 -1
  253. package/dist/cjs/helpers/nativeStyleEngine.cjs +269 -0
  254. package/dist/cjs/helpers/nativeStyleEngine.native.cjs +400 -0
  255. package/dist/cjs/helpers/nativeStyleEngine.native.js +402 -0
  256. package/dist/cjs/helpers/nativeStyleEngine.native.js.map +1 -0
  257. package/dist/cjs/helpers/nativeTransitionTarget.cjs +26 -0
  258. package/dist/cjs/helpers/nativeTransitionTarget.native.cjs +42 -0
  259. package/dist/cjs/helpers/nativeTransitionTarget.native.js +44 -0
  260. package/dist/cjs/helpers/nativeTransitionTarget.native.js.map +1 -0
  261. package/dist/cjs/helpers/normalizeColor.cjs +22 -35
  262. package/dist/cjs/helpers/normalizeColor.native.cjs +49 -0
  263. package/dist/cjs/helpers/normalizeColor.native.js +32 -34
  264. package/dist/cjs/helpers/normalizeColor.native.js.map +1 -1
  265. package/dist/cjs/helpers/normalizeShadow.cjs +25 -39
  266. package/dist/cjs/helpers/normalizeShadow.native.cjs +41 -0
  267. package/dist/cjs/helpers/normalizeShadow.native.js +26 -37
  268. package/dist/cjs/helpers/normalizeShadow.native.js.map +1 -1
  269. package/dist/cjs/helpers/normalizeStyle.cjs +59 -61
  270. package/dist/cjs/helpers/normalizeStyle.native.cjs +93 -0
  271. package/dist/cjs/helpers/normalizeStyle.native.js +76 -79
  272. package/dist/cjs/helpers/normalizeStyle.native.js.map +1 -1
  273. package/dist/cjs/helpers/normalizeValueWithProperty.cjs +42 -41
  274. package/dist/cjs/helpers/normalizeValueWithProperty.native.cjs +60 -0
  275. package/dist/cjs/helpers/normalizeValueWithProperty.native.js +45 -46
  276. package/dist/cjs/helpers/normalizeValueWithProperty.native.js.map +1 -1
  277. package/dist/cjs/helpers/noteOnce.cjs +31 -0
  278. package/dist/cjs/helpers/noteOnce.native.cjs +33 -0
  279. package/dist/cjs/helpers/noteOnce.native.js +35 -0
  280. package/dist/cjs/helpers/noteOnce.native.js.map +1 -0
  281. package/dist/cjs/helpers/objectIdentityKey.cjs +30 -34
  282. package/dist/cjs/helpers/objectIdentityKey.native.cjs +44 -0
  283. package/dist/cjs/helpers/objectIdentityKey.native.js +31 -39
  284. package/dist/cjs/helpers/objectIdentityKey.native.js.map +1 -1
  285. package/dist/cjs/helpers/parseBorderShorthand.cjs +15 -19
  286. package/dist/cjs/helpers/parseBorderShorthand.native.cjs +65 -0
  287. package/dist/cjs/helpers/parseBorderShorthand.native.js +50 -69
  288. package/dist/cjs/helpers/parseBorderShorthand.native.js.map +1 -1
  289. package/dist/cjs/helpers/parseNativeStyle.native.cjs +205 -0
  290. package/dist/cjs/helpers/parseNativeStyle.native.js +182 -165
  291. package/dist/cjs/helpers/parseNativeStyle.native.js.map +1 -1
  292. package/dist/cjs/helpers/parseNativeTransform.native.cjs +67 -0
  293. package/dist/cjs/helpers/parseNativeTransform.native.js +69 -0
  294. package/dist/cjs/helpers/parseNativeTransform.native.js.map +1 -0
  295. package/dist/cjs/helpers/parseOutlineShorthand.cjs +15 -19
  296. package/dist/cjs/helpers/parseOutlineShorthand.native.cjs +44 -0
  297. package/dist/cjs/helpers/parseOutlineShorthand.native.js +31 -65
  298. package/dist/cjs/helpers/parseOutlineShorthand.native.js.map +1 -1
  299. package/dist/cjs/helpers/pointerEvents.cjs +14 -18
  300. package/dist/cjs/helpers/pointerEvents.native.cjs +131 -0
  301. package/dist/cjs/helpers/pointerEvents.native.js +116 -144
  302. package/dist/cjs/helpers/pointerEvents.native.js.map +1 -1
  303. package/dist/cjs/helpers/proxyThemeToParents.cjs +46 -48
  304. package/dist/cjs/helpers/proxyThemeToParents.native.cjs +167 -0
  305. package/dist/cjs/helpers/proxyThemeToParents.native.js +150 -142
  306. package/dist/cjs/helpers/proxyThemeToParents.native.js.map +1 -1
  307. package/dist/cjs/helpers/registerCSSVariable.cjs +97 -60
  308. package/dist/cjs/helpers/registerCSSVariable.native.cjs +135 -0
  309. package/dist/cjs/helpers/registerCSSVariable.native.js +113 -61
  310. package/dist/cjs/helpers/registerCSSVariable.native.js.map +1 -1
  311. package/dist/cjs/helpers/resolveAnimationDriver.cjs +27 -26
  312. package/dist/cjs/helpers/resolveAnimationDriver.native.cjs +40 -0
  313. package/dist/cjs/helpers/resolveAnimationDriver.native.js +27 -26
  314. package/dist/cjs/helpers/resolveAnimationDriver.native.js.map +1 -1
  315. package/dist/cjs/helpers/resolveNativeUnits.cjs +32 -0
  316. package/dist/cjs/helpers/resolveNativeUnits.native.cjs +199 -0
  317. package/dist/cjs/helpers/resolveNativeUnits.native.js +201 -0
  318. package/dist/cjs/helpers/resolveNativeUnits.native.js.map +1 -0
  319. package/dist/cjs/helpers/resolveRem.cjs +17 -19
  320. package/dist/cjs/helpers/resolveRem.native.cjs +53 -0
  321. package/dist/cjs/helpers/resolveRem.native.js +34 -38
  322. package/dist/cjs/helpers/resolveRem.native.js.map +1 -1
  323. package/dist/cjs/helpers/resolveSafeArea.cjs +50 -25
  324. package/dist/cjs/helpers/resolveSafeArea.native.cjs +129 -0
  325. package/dist/cjs/helpers/resolveSafeArea.native.js +114 -29
  326. package/dist/cjs/helpers/resolveSafeArea.native.js.map +1 -1
  327. package/dist/cjs/helpers/resolveSafeAreaVariable.cjs +33 -0
  328. package/dist/cjs/helpers/resolveSafeAreaVariable.native.cjs +51 -0
  329. package/dist/cjs/helpers/resolveSafeAreaVariable.native.js +53 -0
  330. package/dist/cjs/helpers/resolveSafeAreaVariable.native.js.map +1 -0
  331. package/dist/cjs/helpers/resolveVariableValue.cjs +34 -0
  332. package/dist/cjs/helpers/resolveVariableValue.native.cjs +38 -0
  333. package/dist/cjs/helpers/resolveVariableValue.native.js +40 -0
  334. package/dist/cjs/helpers/resolveVariableValue.native.js.map +1 -0
  335. package/dist/cjs/helpers/resolveVariantStyle.cjs +57 -0
  336. package/dist/cjs/helpers/resolveVariantStyle.native.cjs +63 -0
  337. package/dist/cjs/helpers/resolveVariantStyle.native.js +65 -0
  338. package/dist/cjs/helpers/resolveVariantStyle.native.js.map +1 -0
  339. package/dist/cjs/helpers/setElementProps.cjs +16 -20
  340. package/dist/cjs/helpers/setElementProps.native.cjs +34 -0
  341. package/dist/cjs/helpers/setElementProps.native.js +21 -24
  342. package/dist/cjs/helpers/setElementProps.native.js.map +1 -1
  343. package/dist/cjs/helpers/skipProps.cjs +32 -29
  344. package/dist/cjs/helpers/skipProps.native.cjs +51 -0
  345. package/dist/cjs/helpers/skipProps.native.js +32 -28
  346. package/dist/cjs/helpers/skipProps.native.js.map +1 -1
  347. package/dist/cjs/helpers/sortString.cjs +14 -18
  348. package/dist/cjs/helpers/sortString.native.cjs +28 -0
  349. package/dist/cjs/helpers/sortString.native.js +16 -19
  350. package/dist/cjs/helpers/sortString.native.js.map +1 -1
  351. package/dist/cjs/helpers/splitStyleProps.cjs +46 -0
  352. package/dist/cjs/helpers/splitStyleProps.native.cjs +49 -0
  353. package/dist/cjs/helpers/splitStyleProps.native.js +51 -0
  354. package/dist/cjs/helpers/splitStyleProps.native.js.map +1 -0
  355. package/dist/cjs/helpers/styleFrontend.cjs +46 -0
  356. package/dist/cjs/helpers/styleFrontend.native.cjs +48 -0
  357. package/dist/cjs/helpers/styleFrontend.native.js +50 -0
  358. package/dist/cjs/helpers/styleFrontend.native.js.map +1 -0
  359. package/dist/cjs/helpers/styleOriginalValues.cjs +14 -18
  360. package/dist/cjs/helpers/styleOriginalValues.native.cjs +26 -0
  361. package/dist/cjs/helpers/styleOriginalValues.native.js +15 -18
  362. package/dist/cjs/helpers/styleOriginalValues.native.js.map +1 -1
  363. package/dist/cjs/helpers/styleProvenance.cjs +25 -27
  364. package/dist/cjs/helpers/styleProvenance.native.cjs +43 -0
  365. package/dist/cjs/helpers/styleProvenance.native.js +25 -26
  366. package/dist/cjs/helpers/styleProvenance.native.js.map +1 -1
  367. package/dist/cjs/helpers/styleStaticConfig.cjs +27 -0
  368. package/dist/cjs/helpers/styleStaticConfig.native.cjs +29 -0
  369. package/dist/cjs/helpers/styleStaticConfig.native.js +31 -0
  370. package/dist/cjs/helpers/styleStaticConfig.native.js.map +1 -0
  371. package/dist/cjs/helpers/styleStaticConfigCore.cjs +107 -0
  372. package/dist/cjs/helpers/styleStaticConfigCore.native.cjs +127 -0
  373. package/dist/cjs/helpers/styleStaticConfigCore.native.js +129 -0
  374. package/dist/cjs/helpers/styleStaticConfigCore.native.js.map +1 -0
  375. package/dist/cjs/helpers/styleToCSS.cjs +59 -0
  376. package/dist/cjs/helpers/styleToCSS.native.cjs +26 -0
  377. package/dist/cjs/helpers/styleToCSS.native.js +28 -0
  378. package/dist/cjs/helpers/styleToCSS.native.js.map +1 -0
  379. package/dist/cjs/helpers/styledDynamic.cjs +161 -0
  380. package/dist/cjs/helpers/styledDynamic.native.cjs +192 -0
  381. package/dist/cjs/helpers/styledDynamic.native.js +194 -0
  382. package/dist/cjs/helpers/styledDynamic.native.js.map +1 -0
  383. package/dist/cjs/helpers/subscribeToContextGroup.cjs +110 -94
  384. package/dist/cjs/helpers/subscribeToContextGroup.native.cjs +186 -0
  385. package/dist/cjs/helpers/subscribeToContextGroup.native.js +169 -138
  386. package/dist/cjs/helpers/subscribeToContextGroup.native.js.map +1 -1
  387. package/dist/cjs/helpers/themeRef.cjs +41 -0
  388. package/dist/cjs/helpers/themeRef.native.cjs +43 -0
  389. package/dist/cjs/helpers/themeRef.native.js +45 -0
  390. package/dist/cjs/helpers/themeRef.native.js.map +1 -0
  391. package/dist/cjs/helpers/themeUpdateState.cjs +24 -0
  392. package/dist/cjs/helpers/themeUpdateState.native.cjs +26 -0
  393. package/dist/cjs/helpers/themeUpdateState.native.js +28 -0
  394. package/dist/cjs/helpers/themeUpdateState.native.js.map +1 -0
  395. package/dist/cjs/helpers/themes.cjs +29 -34
  396. package/dist/cjs/helpers/themes.native.cjs +43 -0
  397. package/dist/cjs/helpers/themes.native.js +29 -33
  398. package/dist/cjs/helpers/themes.native.js.map +1 -1
  399. package/dist/cjs/helpers/timer.cjs +15 -21
  400. package/dist/cjs/helpers/timer.native.cjs +30 -0
  401. package/dist/cjs/helpers/timer.native.js +17 -22
  402. package/dist/cjs/helpers/timer.native.js.map +1 -1
  403. package/dist/cjs/helpers/tokenCategories.cjs +40 -0
  404. package/dist/cjs/helpers/tokenCategories.native.cjs +42 -0
  405. package/dist/cjs/helpers/tokenCategories.native.js +44 -0
  406. package/dist/cjs/helpers/tokenCategories.native.js.map +1 -0
  407. package/dist/cjs/helpers/transformsToString.cjs +24 -31
  408. package/dist/cjs/helpers/transformsToString.native.cjs +55 -0
  409. package/dist/cjs/helpers/transformsToString.native.js +41 -30
  410. package/dist/cjs/helpers/transformsToString.native.js.map +1 -1
  411. package/dist/cjs/helpers/variableValue.cjs +71 -0
  412. package/dist/cjs/helpers/variableValue.native.cjs +111 -0
  413. package/dist/cjs/helpers/variableValue.native.js +113 -0
  414. package/dist/cjs/helpers/variableValue.native.js.map +1 -0
  415. package/dist/cjs/helpers/variables.cjs +568 -0
  416. package/dist/cjs/helpers/variables.native.cjs +806 -0
  417. package/dist/cjs/helpers/variables.native.js +808 -0
  418. package/dist/cjs/helpers/variables.native.js.map +1 -0
  419. package/dist/cjs/helpers/warnOnce.cjs +44 -0
  420. package/dist/cjs/helpers/warnOnce.native.cjs +48 -0
  421. package/dist/cjs/helpers/warnOnce.native.js +50 -0
  422. package/dist/cjs/helpers/warnOnce.native.js.map +1 -0
  423. package/dist/cjs/helpers/webPropsToSkip.cjs +14 -18
  424. package/dist/cjs/helpers/webPropsToSkip.native.cjs +67 -0
  425. package/dist/cjs/helpers/webPropsToSkip.native.js +53 -62
  426. package/dist/cjs/helpers/webPropsToSkip.native.js.map +1 -1
  427. package/dist/cjs/helpers/wrapStyleTags.cjs +46 -48
  428. package/dist/cjs/helpers/wrapStyleTags.native.cjs +31 -0
  429. package/dist/cjs/helpers/wrapStyleTags.native.js +18 -18
  430. package/dist/cjs/helpers/wrapStyleTags.native.js.map +1 -1
  431. package/dist/cjs/hooks/doesRootSchemeMatchSystem.cjs +15 -19
  432. package/dist/cjs/hooks/doesRootSchemeMatchSystem.native.cjs +31 -0
  433. package/dist/cjs/hooks/doesRootSchemeMatchSystem.native.js +16 -19
  434. package/dist/cjs/hooks/doesRootSchemeMatchSystem.native.js.map +1 -1
  435. package/dist/cjs/hooks/getThemeProxied.cjs +60 -58
  436. package/dist/cjs/hooks/getThemeProxied.native.cjs +123 -0
  437. package/dist/cjs/hooks/getThemeProxied.native.js +97 -79
  438. package/dist/cjs/hooks/getThemeProxied.native.js.map +1 -1
  439. package/dist/cjs/hooks/isOptimizedForFirstRender.cjs +27 -0
  440. package/dist/cjs/hooks/isOptimizedForFirstRender.native.cjs +29 -0
  441. package/dist/cjs/hooks/isOptimizedForFirstRender.native.js +31 -0
  442. package/dist/cjs/hooks/isOptimizedForFirstRender.native.js.map +1 -0
  443. package/dist/cjs/hooks/useAnimationDriver.cjs +51 -0
  444. package/dist/cjs/hooks/useAnimationDriver.native.cjs +59 -0
  445. package/dist/cjs/hooks/useAnimationDriver.native.js +61 -0
  446. package/dist/cjs/hooks/useAnimationDriver.native.js.map +1 -0
  447. package/dist/cjs/hooks/useComponentState.cjs +178 -200
  448. package/dist/cjs/hooks/useComponentState.native.cjs +212 -0
  449. package/dist/cjs/hooks/useComponentState.native.js +190 -211
  450. package/dist/cjs/hooks/useComponentState.native.js.map +1 -1
  451. package/dist/cjs/hooks/useDisableSSR.cjs +15 -19
  452. package/dist/cjs/hooks/useDisableSSR.native.cjs +30 -0
  453. package/dist/cjs/hooks/useDisableSSR.native.js +16 -19
  454. package/dist/cjs/hooks/useDisableSSR.native.js.map +1 -1
  455. package/dist/cjs/hooks/useIsTouchDevice.cjs +15 -19
  456. package/dist/cjs/hooks/useIsTouchDevice.native.cjs +30 -0
  457. package/dist/cjs/hooks/useIsTouchDevice.native.js +16 -19
  458. package/dist/cjs/hooks/useIsTouchDevice.native.js.map +1 -1
  459. package/dist/cjs/hooks/useMedia.cjs +317 -257
  460. package/dist/cjs/hooks/useMedia.native.cjs +519 -0
  461. package/dist/cjs/hooks/useMedia.native.js +470 -307
  462. package/dist/cjs/hooks/useMedia.native.js.map +1 -1
  463. package/dist/cjs/hooks/usePortalThemeState.cjs +40 -0
  464. package/dist/cjs/hooks/usePortalThemeState.native.cjs +42 -0
  465. package/dist/cjs/hooks/usePortalThemeState.native.js +44 -0
  466. package/dist/cjs/hooks/usePortalThemeState.native.js.map +1 -0
  467. package/dist/cjs/hooks/useSplitStyles.cjs +42 -0
  468. package/dist/cjs/hooks/useSplitStyles.native.cjs +42 -0
  469. package/dist/cjs/hooks/useSplitStyles.native.js +44 -0
  470. package/dist/cjs/hooks/useSplitStyles.native.js.map +1 -0
  471. package/dist/cjs/hooks/useStyle.cjs +30 -0
  472. package/dist/cjs/hooks/useStyle.native.cjs +32 -0
  473. package/dist/cjs/hooks/useStyle.native.js +34 -0
  474. package/dist/cjs/hooks/useStyle.native.js.map +1 -0
  475. package/dist/cjs/hooks/useTheme.cjs +40 -49
  476. package/dist/cjs/hooks/useTheme.native.cjs +64 -0
  477. package/dist/cjs/hooks/useTheme.native.js +43 -52
  478. package/dist/cjs/hooks/useTheme.native.js.map +1 -1
  479. package/dist/cjs/hooks/useThemeName.cjs +19 -25
  480. package/dist/cjs/hooks/useThemeName.native.cjs +38 -0
  481. package/dist/cjs/hooks/useThemeName.native.js +22 -27
  482. package/dist/cjs/hooks/useThemeName.native.js.map +1 -1
  483. package/dist/cjs/hooks/useThemeState.cjs +282 -368
  484. package/dist/cjs/hooks/useThemeState.native.cjs +378 -0
  485. package/dist/cjs/hooks/useThemeState.native.js +334 -477
  486. package/dist/cjs/hooks/useThemeState.native.js.map +1 -1
  487. package/dist/cjs/index.cjs +233 -105
  488. package/dist/cjs/index.native.cjs +255 -0
  489. package/dist/cjs/index.native.js +234 -105
  490. package/dist/cjs/index.native.js.map +1 -1
  491. package/dist/cjs/inject-styles.cjs +24 -31
  492. package/dist/cjs/inject-styles.native.cjs +38 -0
  493. package/dist/cjs/inject-styles.native.js +25 -31
  494. package/dist/cjs/inject-styles.native.js.map +1 -1
  495. package/dist/cjs/insertFont.cjs +60 -61
  496. package/dist/cjs/insertFont.native.cjs +79 -0
  497. package/dist/cjs/insertFont.native.js +54 -54
  498. package/dist/cjs/insertFont.native.js.map +1 -1
  499. package/dist/cjs/interfaces/CSSColorNames.cjs +166 -11
  500. package/dist/cjs/interfaces/CSSColorNames.native.cjs +175 -0
  501. package/dist/cjs/interfaces/CSSColorNames.native.js +166 -10
  502. package/dist/cjs/interfaces/CSSColorNames.native.js.map +1 -1
  503. package/dist/cjs/interfaces/GetRef.cjs +9 -11
  504. package/dist/cjs/interfaces/GetRef.native.cjs +18 -0
  505. package/dist/cjs/interfaces/GetRef.native.js +9 -10
  506. package/dist/cjs/interfaces/GetRef.native.js.map +1 -1
  507. package/dist/cjs/interfaces/RNExclusiveTypes.cjs +9 -11
  508. package/dist/cjs/interfaces/RNExclusiveTypes.native.cjs +18 -0
  509. package/dist/cjs/interfaces/RNExclusiveTypes.native.js +9 -10
  510. package/dist/cjs/interfaces/RNExclusiveTypes.native.js.map +1 -1
  511. package/dist/cjs/interfaces/TamaguiComponentEvents.cjs +9 -11
  512. package/dist/cjs/interfaces/TamaguiComponentEvents.native.cjs +18 -0
  513. package/dist/cjs/interfaces/TamaguiComponentEvents.native.js +9 -10
  514. package/dist/cjs/interfaces/TamaguiComponentEvents.native.js.map +1 -1
  515. package/dist/cjs/interfaces/TamaguiComponentPropsBaseBase.cjs +9 -11
  516. package/dist/cjs/interfaces/TamaguiComponentPropsBaseBase.native.cjs +18 -0
  517. package/dist/cjs/interfaces/TamaguiComponentPropsBaseBase.native.js +9 -10
  518. package/dist/cjs/interfaces/TamaguiComponentPropsBaseBase.native.js.map +1 -1
  519. package/dist/cjs/internal-runtime.cjs +123 -0
  520. package/dist/cjs/internal-runtime.native.cjs +125 -0
  521. package/dist/cjs/internal-runtime.native.js +127 -0
  522. package/dist/cjs/internal-runtime.native.js.map +1 -0
  523. package/dist/cjs/internalRuntimeTypes.cjs +16 -0
  524. package/dist/cjs/internalRuntimeTypes.native.cjs +18 -0
  525. package/dist/cjs/internalRuntimeTypes.native.js +20 -0
  526. package/dist/cjs/internalRuntimeTypes.native.js.map +1 -0
  527. package/dist/cjs/setupHooks.cjs +16 -18
  528. package/dist/cjs/setupHooks.native.cjs +32 -0
  529. package/dist/cjs/setupHooks.native.js +16 -17
  530. package/dist/cjs/setupHooks.native.js.map +1 -1
  531. package/dist/cjs/setupReactNative.cjs +14 -44
  532. package/dist/cjs/setupReactNative.native.cjs +53 -0
  533. package/dist/cjs/setupReactNative.native.js +38 -41
  534. package/dist/cjs/setupReactNative.native.js.map +1 -1
  535. package/dist/cjs/static-resolve.cjs +230 -0
  536. package/dist/cjs/static-resolve.native.cjs +236 -0
  537. package/dist/cjs/static-resolve.native.js +238 -0
  538. package/dist/cjs/static-resolve.native.js.map +1 -0
  539. package/dist/cjs/style.cjs +91 -0
  540. package/dist/cjs/style.native.cjs +94 -0
  541. package/dist/cjs/style.native.js +96 -0
  542. package/dist/cjs/style.native.js.map +1 -0
  543. package/dist/cjs/styled.cjs +110 -143
  544. package/dist/cjs/styled.native.cjs +133 -0
  545. package/dist/cjs/styled.native.js +115 -145
  546. package/dist/cjs/styled.native.js.map +1 -1
  547. package/dist/cjs/theme-update.cjs +19 -0
  548. package/dist/cjs/theme-update.native.cjs +21 -0
  549. package/dist/cjs/theme-update.native.js +23 -0
  550. package/dist/cjs/theme-update.native.js.map +1 -0
  551. package/dist/cjs/type-utils.cjs +9 -11
  552. package/dist/cjs/type-utils.native.cjs +18 -0
  553. package/dist/cjs/type-utils.native.js +9 -10
  554. package/dist/cjs/type-utils.native.js.map +1 -1
  555. package/dist/cjs/types.cjs +21 -11
  556. package/dist/cjs/types.native.cjs +30 -0
  557. package/dist/cjs/types.native.js +21 -10
  558. package/dist/cjs/types.native.js.map +1 -1
  559. package/dist/cjs/views/ConfigRevisionCheck.cjs +68 -0
  560. package/dist/cjs/views/ConfigRevisionCheck.native.cjs +73 -0
  561. package/dist/cjs/views/ConfigRevisionCheck.native.js +75 -0
  562. package/dist/cjs/views/ConfigRevisionCheck.native.js.map +1 -0
  563. package/dist/cjs/views/Configuration.cjs +26 -35
  564. package/dist/cjs/views/Configuration.native.cjs +46 -0
  565. package/dist/cjs/views/Configuration.native.js +27 -35
  566. package/dist/cjs/views/Configuration.native.js.map +1 -1
  567. package/dist/cjs/views/FontLanguage.cjs +20 -29
  568. package/dist/cjs/views/FontLanguage.native.cjs +46 -0
  569. package/dist/cjs/views/FontLanguage.native.js +27 -38
  570. package/dist/cjs/views/FontLanguage.native.js.map +1 -1
  571. package/dist/cjs/views/SafeAreaTracker.cjs +32 -0
  572. package/dist/cjs/views/SafeAreaTracker.native.cjs +36 -0
  573. package/dist/cjs/views/SafeAreaTracker.native.js +38 -0
  574. package/dist/cjs/views/SafeAreaTracker.native.js.map +1 -0
  575. package/dist/cjs/views/Slot.cjs +51 -59
  576. package/dist/cjs/views/Slot.native.cjs +77 -0
  577. package/dist/cjs/views/Slot.native.js +52 -59
  578. package/dist/cjs/views/Slot.native.js.map +1 -1
  579. package/dist/cjs/views/TamaguiProvider.cjs +69 -76
  580. package/dist/cjs/views/TamaguiProvider.native.cjs +98 -0
  581. package/dist/cjs/views/TamaguiProvider.native.js +68 -76
  582. package/dist/cjs/views/TamaguiProvider.native.js.map +1 -1
  583. package/dist/cjs/views/TamaguiRoot.cjs +46 -61
  584. package/dist/cjs/views/TamaguiRoot.native.cjs +28 -0
  585. package/dist/cjs/views/TamaguiRoot.native.js +15 -18
  586. package/dist/cjs/views/TamaguiRoot.native.js.map +1 -1
  587. package/dist/cjs/views/Text.cjs +50 -46
  588. package/dist/cjs/views/Text.native.cjs +49 -0
  589. package/dist/cjs/views/Text.native.js +34 -36
  590. package/dist/cjs/views/Text.native.js.map +1 -1
  591. package/dist/cjs/views/Theme.cjs +112 -171
  592. package/dist/cjs/views/Theme.native.cjs +156 -0
  593. package/dist/cjs/views/Theme.native.js +124 -173
  594. package/dist/cjs/views/Theme.native.js.map +1 -1
  595. package/dist/cjs/views/ThemeDebug.cjs +73 -81
  596. package/dist/cjs/views/ThemeDebug.native.cjs +30 -0
  597. package/dist/cjs/views/ThemeDebug.native.js +16 -23
  598. package/dist/cjs/views/ThemeDebug.native.js.map +1 -1
  599. package/dist/cjs/views/ThemeProvider.cjs +34 -39
  600. package/dist/cjs/views/ThemeProvider.native.cjs +43 -0
  601. package/dist/cjs/views/ThemeProvider.native.js +25 -28
  602. package/dist/cjs/views/ThemeProvider.native.js.map +1 -1
  603. package/dist/cjs/views/ThemeUpdate.cjs +82 -0
  604. package/dist/cjs/views/ThemeUpdate.native.cjs +84 -0
  605. package/dist/cjs/views/ThemeUpdate.native.js +86 -0
  606. package/dist/cjs/views/ThemeUpdate.native.js.map +1 -0
  607. package/dist/cjs/views/View.cjs +21 -18
  608. package/dist/cjs/views/View.native.cjs +38 -0
  609. package/dist/cjs/views/View.native.js +21 -17
  610. package/dist/cjs/views/View.native.js.map +1 -1
  611. package/dist/esm/Tamagui.mjs +27 -27
  612. package/dist/esm/Tamagui.mjs.map +1 -1
  613. package/dist/esm/Tamagui.native.js +76 -71
  614. package/dist/esm/Tamagui.native.js.map +1 -1
  615. package/dist/esm/_withNativeStyle.mjs +55 -0
  616. package/dist/esm/_withNativeStyle.mjs.map +1 -0
  617. package/dist/esm/_withNativeStyle.native.js +58 -0
  618. package/dist/esm/_withNativeStyle.native.js.map +1 -0
  619. package/dist/esm/_withStableStyle.mjs +44 -29
  620. package/dist/esm/_withStableStyle.mjs.map +1 -1
  621. package/dist/esm/_withStableStyle.native.js +51 -33
  622. package/dist/esm/_withStableStyle.native.js.map +1 -1
  623. package/dist/esm/config.mjs +97 -100
  624. package/dist/esm/config.mjs.map +1 -1
  625. package/dist/esm/config.native.js +121 -129
  626. package/dist/esm/config.native.js.map +1 -1
  627. package/dist/esm/constants/constants.mjs +1 -0
  628. package/dist/esm/constants/constants.mjs.map +1 -1
  629. package/dist/esm/constants/constants.native.js +1 -0
  630. package/dist/esm/constants/constants.native.js.map +1 -1
  631. package/dist/esm/constants/isDevTools.mjs +7 -6
  632. package/dist/esm/constants/isDevTools.mjs.map +1 -1
  633. package/dist/esm/constants/isDevTools.native.js +9 -8
  634. package/dist/esm/constants/isDevTools.native.js.map +1 -1
  635. package/dist/esm/contexts/ComponentContext.mjs +18 -8
  636. package/dist/esm/contexts/ComponentContext.mjs.map +1 -1
  637. package/dist/esm/contexts/ComponentContext.native.js +19 -9
  638. package/dist/esm/contexts/ComponentContext.native.js.map +1 -1
  639. package/dist/esm/contexts/GroupContext.mjs +2 -0
  640. package/dist/esm/contexts/GroupContext.mjs.map +1 -1
  641. package/dist/esm/contexts/GroupContext.native.js +3 -1
  642. package/dist/esm/contexts/GroupContext.native.js.map +1 -1
  643. package/dist/esm/createComponent.mjs +991 -996
  644. package/dist/esm/createComponent.mjs.map +1 -1
  645. package/dist/esm/createComponent.native.js +1090 -979
  646. package/dist/esm/createComponent.native.js.map +1 -1
  647. package/dist/esm/createFont.mjs +27 -18
  648. package/dist/esm/createFont.mjs.map +1 -1
  649. package/dist/esm/createFont.native.js +30 -21
  650. package/dist/esm/createFont.native.js.map +1 -1
  651. package/dist/esm/createShorthands.mjs +2 -1
  652. package/dist/esm/createShorthands.mjs.map +1 -1
  653. package/dist/esm/createShorthands.native.js +2 -1
  654. package/dist/esm/createShorthands.native.js.map +1 -1
  655. package/dist/esm/createStyledHOC.mjs +79 -0
  656. package/dist/esm/createStyledHOC.mjs.map +1 -0
  657. package/dist/esm/createStyledHOC.native.js +80 -0
  658. package/dist/esm/createStyledHOC.native.js.map +1 -0
  659. package/dist/esm/createTamagui.mjs +275 -207
  660. package/dist/esm/createTamagui.mjs.map +1 -1
  661. package/dist/esm/createTamagui.native.js +309 -255
  662. package/dist/esm/createTamagui.native.js.map +1 -1
  663. package/dist/esm/createTokens.mjs +15 -1
  664. package/dist/esm/createTokens.mjs.map +1 -1
  665. package/dist/esm/createTokens.native.js +16 -2
  666. package/dist/esm/createTokens.native.js.map +1 -1
  667. package/dist/esm/createVariable.mjs +66 -65
  668. package/dist/esm/createVariable.mjs.map +1 -1
  669. package/dist/esm/createVariable.native.js +77 -81
  670. package/dist/esm/createVariable.native.js.map +1 -1
  671. package/dist/esm/createVariables.mjs +37 -42
  672. package/dist/esm/createVariables.mjs.map +1 -1
  673. package/dist/esm/createVariables.native.js +38 -48
  674. package/dist/esm/createVariables.native.js.map +1 -1
  675. package/dist/esm/defaultComponentState.mjs +13 -12
  676. package/dist/esm/defaultComponentState.mjs.map +1 -1
  677. package/dist/esm/defaultComponentState.native.js +13 -12
  678. package/dist/esm/defaultComponentState.native.js.map +1 -1
  679. package/dist/esm/dom/adapters.mjs +67 -0
  680. package/dist/esm/dom/adapters.mjs.map +1 -0
  681. package/dist/esm/dom/adapters.native.js +86 -0
  682. package/dist/esm/dom/adapters.native.js.map +1 -0
  683. package/dist/esm/dom/contract.mjs +0 -0
  684. package/dist/esm/dom/contract.native.js +0 -0
  685. package/dist/esm/dom/domEventProps.native.js +34 -0
  686. package/dist/esm/dom/domEventProps.native.js.map +1 -0
  687. package/dist/esm/dom/html.mjs +611 -0
  688. package/dist/esm/dom/html.mjs.map +1 -0
  689. package/dist/esm/dom/html.native.js +930 -0
  690. package/dist/esm/dom/html.native.js.map +1 -0
  691. package/dist/esm/dom/htmlRuntime.native.js +152 -0
  692. package/dist/esm/dom/htmlRuntime.native.js.map +1 -0
  693. package/dist/esm/dom/index.mjs +4 -0
  694. package/dist/esm/dom/index.native.js +5 -0
  695. package/dist/esm/dom/primitives.native.js +609 -0
  696. package/dist/esm/dom/primitives.native.js.map +1 -0
  697. package/dist/esm/dom/standalone.mjs +10 -0
  698. package/dist/esm/dom/standalone.mjs.map +1 -0
  699. package/dist/esm/dom/standalone.native.js +14 -0
  700. package/dist/esm/dom/standalone.native.js.map +1 -0
  701. package/dist/esm/dom/standaloneHtml.mjs +56 -0
  702. package/dist/esm/dom/standaloneHtml.mjs.map +1 -0
  703. package/dist/esm/dom/standaloneHtml.native.js +56 -0
  704. package/dist/esm/dom/standaloneHtml.native.js.map +1 -0
  705. package/dist/esm/dom/styleTypes.mjs +0 -0
  706. package/dist/esm/dom/styleTypes.native.js +0 -0
  707. package/dist/esm/eventDetails.mjs +18 -0
  708. package/dist/esm/eventDetails.mjs.map +1 -0
  709. package/dist/esm/eventDetails.native.js +18 -0
  710. package/dist/esm/eventDetails.native.js.map +1 -0
  711. package/dist/esm/eventHandling.mjs +14 -13
  712. package/dist/esm/eventHandling.mjs.map +1 -1
  713. package/dist/esm/eventHandling.native.js +141 -163
  714. package/dist/esm/eventHandling.native.js.map +1 -1
  715. package/dist/esm/helpers/borderComponents.mjs +37 -0
  716. package/dist/esm/helpers/borderComponents.mjs.map +1 -0
  717. package/dist/esm/helpers/borderComponents.native.js +55 -0
  718. package/dist/esm/helpers/borderComponents.native.js.map +1 -0
  719. package/dist/esm/helpers/componentDisplayName.mjs +4 -0
  720. package/dist/esm/helpers/componentDisplayName.mjs.map +1 -0
  721. package/dist/esm/helpers/componentDisplayName.native.js +4 -0
  722. package/dist/esm/helpers/componentDisplayName.native.js.map +1 -0
  723. package/dist/esm/helpers/configVariables.mjs +60 -0
  724. package/dist/esm/helpers/configVariables.mjs.map +1 -0
  725. package/dist/esm/helpers/configVariables.native.js +61 -0
  726. package/dist/esm/helpers/configVariables.native.js.map +1 -0
  727. package/dist/esm/helpers/consoleLog.native.js +2 -1
  728. package/dist/esm/helpers/consoleLog.native.js.map +1 -1
  729. package/dist/esm/helpers/createDesignSystem.mjs +133 -134
  730. package/dist/esm/helpers/createDesignSystem.mjs.map +1 -1
  731. package/dist/esm/helpers/createDesignSystem.native.js +151 -186
  732. package/dist/esm/helpers/createDesignSystem.native.js.map +1 -1
  733. package/dist/esm/helpers/createStyledContext.mjs +49 -58
  734. package/dist/esm/helpers/createStyledContext.mjs.map +1 -1
  735. package/dist/esm/helpers/createStyledContext.native.js +54 -63
  736. package/dist/esm/helpers/createStyledContext.native.js.map +1 -1
  737. package/dist/esm/helpers/defaultAnimationDriver.mjs +10 -14
  738. package/dist/esm/helpers/defaultAnimationDriver.mjs.map +1 -1
  739. package/dist/esm/helpers/defaultAnimationDriver.native.js +19 -31
  740. package/dist/esm/helpers/defaultAnimationDriver.native.js.map +1 -1
  741. package/dist/esm/helpers/defaultOffset.mjs +3 -2
  742. package/dist/esm/helpers/defaultOffset.mjs.map +1 -1
  743. package/dist/esm/helpers/defaultOffset.native.js +3 -2
  744. package/dist/esm/helpers/defaultOffset.native.js.map +1 -1
  745. package/dist/esm/helpers/expandStyle.mjs +138 -66
  746. package/dist/esm/helpers/expandStyle.mjs.map +1 -1
  747. package/dist/esm/helpers/expandStyle.native.js +141 -107
  748. package/dist/esm/helpers/expandStyle.native.js.map +1 -1
  749. package/dist/esm/helpers/expandStyles.mjs +15 -7
  750. package/dist/esm/helpers/expandStyles.mjs.map +1 -1
  751. package/dist/esm/helpers/expandStyles.native.js +22 -14
  752. package/dist/esm/helpers/expandStyles.native.js.map +1 -1
  753. package/dist/esm/helpers/extractPseudoState.mjs +24 -0
  754. package/dist/esm/helpers/extractPseudoState.mjs.map +1 -0
  755. package/dist/esm/helpers/extractPseudoState.native.js +25 -0
  756. package/dist/esm/helpers/extractPseudoState.native.js.map +1 -0
  757. package/dist/esm/helpers/fluid.mjs +36 -0
  758. package/dist/esm/helpers/fluid.mjs.map +1 -0
  759. package/dist/esm/helpers/fluid.native.js +36 -0
  760. package/dist/esm/helpers/fluid.native.js.map +1 -0
  761. package/dist/esm/helpers/formatDiagnostic.mjs +49 -0
  762. package/dist/esm/helpers/formatDiagnostic.mjs.map +1 -0
  763. package/dist/esm/helpers/formatDiagnostic.native.js +52 -0
  764. package/dist/esm/helpers/formatDiagnostic.native.js.map +1 -0
  765. package/dist/esm/helpers/getCSSStylesAtomic.mjs +224 -177
  766. package/dist/esm/helpers/getCSSStylesAtomic.mjs.map +1 -1
  767. package/dist/esm/helpers/getCSSStylesAtomic.native.js +9 -4
  768. package/dist/esm/helpers/getCSSStylesAtomic.native.js.map +1 -1
  769. package/dist/esm/helpers/getCSSStylesAtomicCompiled.mjs +16 -0
  770. package/dist/esm/helpers/getCSSStylesAtomicCompiled.mjs.map +1 -0
  771. package/dist/esm/helpers/getCSSStylesAtomicCompiled.native.js +18 -0
  772. package/dist/esm/helpers/getCSSStylesAtomicCompiled.native.js.map +1 -0
  773. package/dist/esm/helpers/getDynamicVal.mjs +32 -33
  774. package/dist/esm/helpers/getDynamicVal.mjs.map +1 -1
  775. package/dist/esm/helpers/getDynamicVal.native.js +32 -33
  776. package/dist/esm/helpers/getDynamicVal.native.js.map +1 -1
  777. package/dist/esm/helpers/getExpandedShorthands.mjs +5 -12
  778. package/dist/esm/helpers/getExpandedShorthands.mjs.map +1 -1
  779. package/dist/esm/helpers/getExpandedShorthands.native.js +6 -13
  780. package/dist/esm/helpers/getExpandedShorthands.native.js.map +1 -1
  781. package/dist/esm/helpers/getShorthandValue.mjs +4 -2
  782. package/dist/esm/helpers/getShorthandValue.mjs.map +1 -1
  783. package/dist/esm/helpers/getShorthandValue.native.js +6 -4
  784. package/dist/esm/helpers/getShorthandValue.native.js.map +1 -1
  785. package/dist/esm/helpers/getSplitStyles.mjs +1702 -893
  786. package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
  787. package/dist/esm/helpers/getSplitStyles.native.js +1896 -915
  788. package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
  789. package/dist/esm/helpers/getThemeCSSRules.mjs +94 -92
  790. package/dist/esm/helpers/getThemeCSSRules.mjs.map +1 -1
  791. package/dist/esm/helpers/getThemeCSSRules.native.js +2 -1
  792. package/dist/esm/helpers/getThemeCSSRules.native.js.map +1 -1
  793. package/dist/esm/helpers/grammarConfig.mjs +253 -0
  794. package/dist/esm/helpers/grammarConfig.mjs.map +1 -0
  795. package/dist/esm/helpers/grammarConfig.native.js +387 -0
  796. package/dist/esm/helpers/grammarConfig.native.js.map +1 -0
  797. package/dist/esm/helpers/insertStyleRule.mjs +232 -160
  798. package/dist/esm/helpers/insertStyleRule.mjs.map +1 -1
  799. package/dist/esm/helpers/insertStyleRule.native.js +135 -27
  800. package/dist/esm/helpers/insertStyleRule.native.js.map +1 -1
  801. package/dist/esm/helpers/isObj.mjs +10 -2
  802. package/dist/esm/helpers/isObj.mjs.map +1 -1
  803. package/dist/esm/helpers/isObj.native.js +11 -8
  804. package/dist/esm/helpers/isObj.native.js.map +1 -1
  805. package/dist/esm/helpers/isTamaguiComponent.mjs +4 -3
  806. package/dist/esm/helpers/isTamaguiComponent.mjs.map +1 -1
  807. package/dist/esm/helpers/isTamaguiComponent.native.js +4 -3
  808. package/dist/esm/helpers/isTamaguiComponent.native.js.map +1 -1
  809. package/dist/esm/helpers/isTamaguiElement.mjs +4 -2
  810. package/dist/esm/helpers/isTamaguiElement.mjs.map +1 -1
  811. package/dist/esm/helpers/isTamaguiElement.native.js +4 -2
  812. package/dist/esm/helpers/isTamaguiElement.native.js.map +1 -1
  813. package/dist/esm/helpers/log.mjs +12 -9
  814. package/dist/esm/helpers/log.mjs.map +1 -1
  815. package/dist/esm/helpers/log.native.js +13 -10
  816. package/dist/esm/helpers/log.native.js.map +1 -1
  817. package/dist/esm/helpers/mainThreadPressEvents.mjs +1 -0
  818. package/dist/esm/helpers/mainThreadPressEvents.mjs.map +1 -1
  819. package/dist/esm/helpers/mainThreadPressEvents.native.js +126 -125
  820. package/dist/esm/helpers/mainThreadPressEvents.native.js.map +1 -1
  821. package/dist/esm/helpers/matchMedia.mjs +7 -6
  822. package/dist/esm/helpers/matchMedia.mjs.map +1 -1
  823. package/dist/esm/helpers/matchMedia.native.js +36 -25
  824. package/dist/esm/helpers/matchMedia.native.js.map +1 -1
  825. package/dist/esm/helpers/mediaObjectToString.mjs +21 -20
  826. package/dist/esm/helpers/mediaObjectToString.mjs.map +1 -1
  827. package/dist/esm/helpers/mediaObjectToString.native.js +24 -23
  828. package/dist/esm/helpers/mediaObjectToString.native.js.map +1 -1
  829. package/dist/esm/helpers/mediaState.mjs +18 -24
  830. package/dist/esm/helpers/mediaState.mjs.map +1 -1
  831. package/dist/esm/helpers/mediaState.native.js +20 -27
  832. package/dist/esm/helpers/mediaState.native.js.map +1 -1
  833. package/dist/esm/helpers/mergeProps.mjs +37 -47
  834. package/dist/esm/helpers/mergeProps.mjs.map +1 -1
  835. package/dist/esm/helpers/mergeProps.native.js +39 -54
  836. package/dist/esm/helpers/mergeProps.native.js.map +1 -1
  837. package/dist/esm/helpers/mergeRenderElementProps.mjs +5 -5
  838. package/dist/esm/helpers/mergeRenderElementProps.mjs.map +1 -1
  839. package/dist/esm/helpers/mergeRenderElementProps.native.js +5 -5
  840. package/dist/esm/helpers/mergeRenderElementProps.native.js.map +1 -1
  841. package/dist/esm/helpers/mergeSlotStyleProps.mjs +22 -20
  842. package/dist/esm/helpers/mergeSlotStyleProps.mjs.map +1 -1
  843. package/dist/esm/helpers/mergeSlotStyleProps.native.js +22 -20
  844. package/dist/esm/helpers/mergeSlotStyleProps.native.js.map +1 -1
  845. package/dist/esm/helpers/mergeVariants.mjs +70 -23
  846. package/dist/esm/helpers/mergeVariants.mjs.map +1 -1
  847. package/dist/esm/helpers/mergeVariants.native.js +106 -25
  848. package/dist/esm/helpers/mergeVariants.native.js.map +1 -1
  849. package/dist/esm/helpers/nativeOnlyProps.mjs +33 -33
  850. package/dist/esm/helpers/nativeOnlyProps.mjs.map +1 -1
  851. package/dist/esm/helpers/nativeOnlyProps.native.js +33 -33
  852. package/dist/esm/helpers/nativeOnlyProps.native.js.map +1 -1
  853. package/dist/esm/helpers/nativeStyleEngine.mjs +237 -0
  854. package/dist/esm/helpers/nativeStyleEngine.mjs.map +1 -0
  855. package/dist/esm/helpers/nativeStyleEngine.native.js +366 -0
  856. package/dist/esm/helpers/nativeStyleEngine.native.js.map +1 -0
  857. package/dist/esm/helpers/nativeTransitionTarget.mjs +6 -0
  858. package/dist/esm/helpers/nativeTransitionTarget.mjs.map +1 -0
  859. package/dist/esm/helpers/nativeTransitionTarget.native.js +21 -0
  860. package/dist/esm/helpers/nativeTransitionTarget.native.js.map +1 -0
  861. package/dist/esm/helpers/normalizeColor.mjs +11 -18
  862. package/dist/esm/helpers/normalizeColor.mjs.map +1 -1
  863. package/dist/esm/helpers/normalizeColor.native.js +19 -19
  864. package/dist/esm/helpers/normalizeColor.native.js.map +1 -1
  865. package/dist/esm/helpers/normalizeShadow.mjs +13 -21
  866. package/dist/esm/helpers/normalizeShadow.mjs.map +1 -1
  867. package/dist/esm/helpers/normalizeShadow.native.js +14 -20
  868. package/dist/esm/helpers/normalizeShadow.native.js.map +1 -1
  869. package/dist/esm/helpers/normalizeStyle.mjs +47 -43
  870. package/dist/esm/helpers/normalizeStyle.mjs.map +1 -1
  871. package/dist/esm/helpers/normalizeStyle.native.js +64 -62
  872. package/dist/esm/helpers/normalizeStyle.native.js.map +1 -1
  873. package/dist/esm/helpers/normalizeValueWithProperty.mjs +30 -23
  874. package/dist/esm/helpers/normalizeValueWithProperty.mjs.map +1 -1
  875. package/dist/esm/helpers/normalizeValueWithProperty.native.js +32 -28
  876. package/dist/esm/helpers/normalizeValueWithProperty.native.js.map +1 -1
  877. package/dist/esm/helpers/noteOnce.mjs +11 -0
  878. package/dist/esm/helpers/noteOnce.mjs.map +1 -0
  879. package/dist/esm/helpers/noteOnce.native.js +11 -0
  880. package/dist/esm/helpers/noteOnce.native.js.map +1 -0
  881. package/dist/esm/helpers/objectIdentityKey.mjs +18 -17
  882. package/dist/esm/helpers/objectIdentityKey.mjs.map +1 -1
  883. package/dist/esm/helpers/objectIdentityKey.native.js +18 -22
  884. package/dist/esm/helpers/objectIdentityKey.native.js.map +1 -1
  885. package/dist/esm/helpers/parseBorderShorthand.mjs +2 -1
  886. package/dist/esm/helpers/parseBorderShorthand.mjs.map +1 -1
  887. package/dist/esm/helpers/parseBorderShorthand.native.js +38 -55
  888. package/dist/esm/helpers/parseBorderShorthand.native.js.map +1 -1
  889. package/dist/esm/helpers/parseNativeStyle.native.js +167 -146
  890. package/dist/esm/helpers/parseNativeStyle.native.js.map +1 -1
  891. package/dist/esm/helpers/parseNativeTransform.native.js +45 -0
  892. package/dist/esm/helpers/parseNativeTransform.native.js.map +1 -0
  893. package/dist/esm/helpers/parseOutlineShorthand.mjs +2 -1
  894. package/dist/esm/helpers/parseOutlineShorthand.mjs.map +1 -1
  895. package/dist/esm/helpers/parseOutlineShorthand.native.js +19 -48
  896. package/dist/esm/helpers/parseOutlineShorthand.native.js.map +1 -1
  897. package/dist/esm/helpers/pointerEvents.mjs +1 -0
  898. package/dist/esm/helpers/pointerEvents.mjs.map +1 -1
  899. package/dist/esm/helpers/pointerEvents.native.js +104 -127
  900. package/dist/esm/helpers/pointerEvents.native.js.map +1 -1
  901. package/dist/esm/helpers/proxyThemeToParents.mjs +32 -31
  902. package/dist/esm/helpers/proxyThemeToParents.mjs.map +1 -1
  903. package/dist/esm/helpers/proxyThemeToParents.native.js +136 -126
  904. package/dist/esm/helpers/proxyThemeToParents.native.js.map +1 -1
  905. package/dist/esm/helpers/registerCSSVariable.mjs +76 -39
  906. package/dist/esm/helpers/registerCSSVariable.mjs.map +1 -1
  907. package/dist/esm/helpers/registerCSSVariable.native.js +95 -44
  908. package/dist/esm/helpers/registerCSSVariable.native.js.map +1 -1
  909. package/dist/esm/helpers/resolveAnimationDriver.mjs +14 -8
  910. package/dist/esm/helpers/resolveAnimationDriver.mjs.map +1 -1
  911. package/dist/esm/helpers/resolveAnimationDriver.native.js +14 -9
  912. package/dist/esm/helpers/resolveAnimationDriver.native.js.map +1 -1
  913. package/dist/esm/helpers/resolveNativeUnits.mjs +9 -0
  914. package/dist/esm/helpers/resolveNativeUnits.mjs.map +1 -0
  915. package/dist/esm/helpers/resolveNativeUnits.native.js +172 -0
  916. package/dist/esm/helpers/resolveNativeUnits.native.js.map +1 -0
  917. package/dist/esm/helpers/resolveRem.mjs +3 -2
  918. package/dist/esm/helpers/resolveRem.mjs.map +1 -1
  919. package/dist/esm/helpers/resolveRem.native.js +21 -22
  920. package/dist/esm/helpers/resolveRem.native.js.map +1 -1
  921. package/dist/esm/helpers/resolveSafeArea.mjs +38 -8
  922. package/dist/esm/helpers/resolveSafeArea.mjs.map +1 -1
  923. package/dist/esm/helpers/resolveSafeArea.native.js +101 -15
  924. package/dist/esm/helpers/resolveSafeArea.native.js.map +1 -1
  925. package/dist/esm/helpers/resolveSafeAreaVariable.mjs +10 -0
  926. package/dist/esm/helpers/resolveSafeAreaVariable.mjs.map +1 -0
  927. package/dist/esm/helpers/resolveSafeAreaVariable.native.js +27 -0
  928. package/dist/esm/helpers/resolveSafeAreaVariable.native.js.map +1 -0
  929. package/dist/esm/helpers/resolveVariableValue.mjs +15 -0
  930. package/dist/esm/helpers/resolveVariableValue.mjs.map +1 -0
  931. package/dist/esm/helpers/resolveVariableValue.native.js +17 -0
  932. package/dist/esm/helpers/resolveVariableValue.native.js.map +1 -0
  933. package/dist/esm/helpers/resolveVariantStyle.mjs +38 -0
  934. package/dist/esm/helpers/resolveVariantStyle.mjs.map +1 -0
  935. package/dist/esm/helpers/resolveVariantStyle.native.js +42 -0
  936. package/dist/esm/helpers/resolveVariantStyle.native.js.map +1 -0
  937. package/dist/esm/helpers/setElementProps.mjs +4 -2
  938. package/dist/esm/helpers/setElementProps.mjs.map +1 -1
  939. package/dist/esm/helpers/setElementProps.native.js +8 -7
  940. package/dist/esm/helpers/setElementProps.native.js.map +1 -1
  941. package/dist/esm/helpers/skipProps.mjs +20 -14
  942. package/dist/esm/helpers/skipProps.mjs.map +1 -1
  943. package/dist/esm/helpers/skipProps.native.js +20 -14
  944. package/dist/esm/helpers/skipProps.native.js.map +1 -1
  945. package/dist/esm/helpers/sortString.mjs +1 -0
  946. package/dist/esm/helpers/sortString.mjs.map +1 -1
  947. package/dist/esm/helpers/sortString.native.js +3 -2
  948. package/dist/esm/helpers/sortString.native.js.map +1 -1
  949. package/dist/esm/helpers/splitStyleProps.mjs +27 -0
  950. package/dist/esm/helpers/splitStyleProps.mjs.map +1 -0
  951. package/dist/esm/helpers/splitStyleProps.native.js +28 -0
  952. package/dist/esm/helpers/splitStyleProps.native.js.map +1 -0
  953. package/dist/esm/helpers/styleFrontend.mjs +23 -0
  954. package/dist/esm/helpers/styleFrontend.mjs.map +1 -0
  955. package/dist/esm/helpers/styleFrontend.native.js +23 -0
  956. package/dist/esm/helpers/styleFrontend.native.js.map +1 -0
  957. package/dist/esm/helpers/styleOriginalValues.mjs +2 -1
  958. package/dist/esm/helpers/styleOriginalValues.mjs.map +1 -1
  959. package/dist/esm/helpers/styleOriginalValues.native.js +2 -1
  960. package/dist/esm/helpers/styleOriginalValues.native.js.map +1 -1
  961. package/dist/esm/helpers/styleProvenance.mjs +10 -9
  962. package/dist/esm/helpers/styleProvenance.mjs.map +1 -1
  963. package/dist/esm/helpers/styleProvenance.native.js +10 -9
  964. package/dist/esm/helpers/styleProvenance.native.js.map +1 -1
  965. package/dist/esm/helpers/styleStaticConfig.mjs +8 -0
  966. package/dist/esm/helpers/styleStaticConfig.mjs.map +1 -0
  967. package/dist/esm/helpers/styleStaticConfig.native.js +8 -0
  968. package/dist/esm/helpers/styleStaticConfig.native.js.map +1 -0
  969. package/dist/esm/helpers/styleStaticConfigCore.mjs +88 -0
  970. package/dist/esm/helpers/styleStaticConfigCore.mjs.map +1 -0
  971. package/dist/esm/helpers/styleStaticConfigCore.native.js +106 -0
  972. package/dist/esm/helpers/styleStaticConfigCore.native.js.map +1 -0
  973. package/dist/esm/helpers/styleToCSS.mjs +40 -0
  974. package/dist/esm/helpers/styleToCSS.mjs.map +1 -0
  975. package/dist/esm/helpers/styleToCSS.native.js +4 -0
  976. package/dist/esm/helpers/styleToCSS.native.js.map +1 -0
  977. package/dist/esm/helpers/styledDynamic.mjs +137 -0
  978. package/dist/esm/helpers/styledDynamic.mjs.map +1 -0
  979. package/dist/esm/helpers/styledDynamic.native.js +166 -0
  980. package/dist/esm/helpers/styledDynamic.native.js.map +1 -0
  981. package/dist/esm/helpers/subscribeToContextGroup.mjs +98 -79
  982. package/dist/esm/helpers/subscribeToContextGroup.mjs.map +1 -1
  983. package/dist/esm/helpers/subscribeToContextGroup.native.js +157 -124
  984. package/dist/esm/helpers/subscribeToContextGroup.native.js.map +1 -1
  985. package/dist/esm/helpers/themeRef.mjs +17 -0
  986. package/dist/esm/helpers/themeRef.mjs.map +1 -0
  987. package/dist/esm/helpers/themeRef.native.js +17 -0
  988. package/dist/esm/helpers/themeRef.native.js.map +1 -0
  989. package/dist/esm/helpers/themeUpdateState.mjs +4 -0
  990. package/dist/esm/helpers/themeUpdateState.mjs.map +1 -0
  991. package/dist/esm/helpers/themeUpdateState.native.js +4 -0
  992. package/dist/esm/helpers/themeUpdateState.native.js.map +1 -0
  993. package/dist/esm/helpers/themes.mjs +17 -16
  994. package/dist/esm/helpers/themes.mjs.map +1 -1
  995. package/dist/esm/helpers/themes.native.js +17 -16
  996. package/dist/esm/helpers/themes.native.js.map +1 -1
  997. package/dist/esm/helpers/timer.mjs +9 -5
  998. package/dist/esm/helpers/timer.mjs.map +1 -1
  999. package/dist/esm/helpers/timer.native.js +9 -5
  1000. package/dist/esm/helpers/timer.native.js.map +1 -1
  1001. package/dist/esm/helpers/tokenCategories.mjs +20 -0
  1002. package/dist/esm/helpers/tokenCategories.mjs.map +1 -0
  1003. package/dist/esm/helpers/tokenCategories.native.js +20 -0
  1004. package/dist/esm/helpers/tokenCategories.native.js.map +1 -0
  1005. package/dist/esm/helpers/transformsToString.mjs +12 -13
  1006. package/dist/esm/helpers/transformsToString.mjs.map +1 -1
  1007. package/dist/esm/helpers/transformsToString.native.js +29 -13
  1008. package/dist/esm/helpers/transformsToString.native.js.map +1 -1
  1009. package/dist/esm/helpers/variableValue.mjs +49 -0
  1010. package/dist/esm/helpers/variableValue.mjs.map +1 -0
  1011. package/dist/esm/helpers/variableValue.native.js +87 -0
  1012. package/dist/esm/helpers/variableValue.native.js.map +1 -0
  1013. package/dist/esm/helpers/variables.mjs +542 -0
  1014. package/dist/esm/helpers/variables.mjs.map +1 -0
  1015. package/dist/esm/helpers/variables.native.js +778 -0
  1016. package/dist/esm/helpers/variables.native.js.map +1 -0
  1017. package/dist/esm/helpers/warnOnce.mjs +20 -0
  1018. package/dist/esm/helpers/warnOnce.mjs.map +1 -0
  1019. package/dist/esm/helpers/warnOnce.native.js +22 -0
  1020. package/dist/esm/helpers/warnOnce.native.js.map +1 -0
  1021. package/dist/esm/helpers/webPropsToSkip.mjs +1 -0
  1022. package/dist/esm/helpers/webPropsToSkip.mjs.map +1 -1
  1023. package/dist/esm/helpers/webPropsToSkip.native.js +41 -45
  1024. package/dist/esm/helpers/webPropsToSkip.native.js.map +1 -1
  1025. package/dist/esm/helpers/wrapStyleTags.mjs +34 -30
  1026. package/dist/esm/helpers/wrapStyleTags.mjs.map +1 -1
  1027. package/dist/esm/helpers/wrapStyleTags.native.js +4 -1
  1028. package/dist/esm/helpers/wrapStyleTags.native.js.map +1 -1
  1029. package/dist/esm/hooks/doesRootSchemeMatchSystem.mjs +2 -1
  1030. package/dist/esm/hooks/doesRootSchemeMatchSystem.mjs.map +1 -1
  1031. package/dist/esm/hooks/doesRootSchemeMatchSystem.native.js +4 -2
  1032. package/dist/esm/hooks/doesRootSchemeMatchSystem.native.js.map +1 -1
  1033. package/dist/esm/hooks/getThemeProxied.mjs +47 -40
  1034. package/dist/esm/hooks/getThemeProxied.mjs.map +1 -1
  1035. package/dist/esm/hooks/getThemeProxied.native.js +85 -62
  1036. package/dist/esm/hooks/getThemeProxied.native.js.map +1 -1
  1037. package/dist/esm/hooks/isOptimizedForFirstRender.mjs +8 -0
  1038. package/dist/esm/hooks/isOptimizedForFirstRender.mjs.map +1 -0
  1039. package/dist/esm/hooks/isOptimizedForFirstRender.native.js +8 -0
  1040. package/dist/esm/hooks/isOptimizedForFirstRender.native.js.map +1 -0
  1041. package/dist/esm/hooks/useAnimationDriver.mjs +26 -0
  1042. package/dist/esm/hooks/useAnimationDriver.mjs.map +1 -0
  1043. package/dist/esm/hooks/useAnimationDriver.native.js +32 -0
  1044. package/dist/esm/hooks/useAnimationDriver.native.js.map +1 -0
  1045. package/dist/esm/hooks/useComponentState.mjs +167 -183
  1046. package/dist/esm/hooks/useComponentState.mjs.map +1 -1
  1047. package/dist/esm/hooks/useComponentState.native.js +178 -194
  1048. package/dist/esm/hooks/useComponentState.native.js.map +1 -1
  1049. package/dist/esm/hooks/useDisableSSR.mjs +3 -1
  1050. package/dist/esm/hooks/useDisableSSR.mjs.map +1 -1
  1051. package/dist/esm/hooks/useDisableSSR.native.js +4 -2
  1052. package/dist/esm/hooks/useDisableSSR.native.js.map +1 -1
  1053. package/dist/esm/hooks/useIsTouchDevice.mjs +3 -1
  1054. package/dist/esm/hooks/useIsTouchDevice.mjs.map +1 -1
  1055. package/dist/esm/hooks/useIsTouchDevice.native.js +4 -2
  1056. package/dist/esm/hooks/useIsTouchDevice.native.js.map +1 -1
  1057. package/dist/esm/hooks/useMedia.mjs +299 -233
  1058. package/dist/esm/hooks/useMedia.mjs.map +1 -1
  1059. package/dist/esm/hooks/useMedia.native.js +451 -283
  1060. package/dist/esm/hooks/useMedia.native.js.map +1 -1
  1061. package/dist/esm/hooks/usePortalThemeState.mjs +21 -0
  1062. package/dist/esm/hooks/usePortalThemeState.mjs.map +1 -0
  1063. package/dist/esm/hooks/usePortalThemeState.native.js +21 -0
  1064. package/dist/esm/hooks/usePortalThemeState.native.js.map +1 -0
  1065. package/dist/esm/hooks/useSplitStyles.mjs +17 -0
  1066. package/dist/esm/hooks/useSplitStyles.mjs.map +1 -0
  1067. package/dist/esm/hooks/useSplitStyles.native.js +14 -0
  1068. package/dist/esm/hooks/useSplitStyles.native.js.map +1 -0
  1069. package/dist/esm/hooks/useStyle.mjs +11 -0
  1070. package/dist/esm/hooks/useStyle.mjs.map +1 -0
  1071. package/dist/esm/hooks/useStyle.native.js +11 -0
  1072. package/dist/esm/hooks/useStyle.native.js.map +1 -0
  1073. package/dist/esm/hooks/useTheme.mjs +27 -32
  1074. package/dist/esm/hooks/useTheme.mjs.map +1 -1
  1075. package/dist/esm/hooks/useTheme.native.js +30 -36
  1076. package/dist/esm/hooks/useTheme.native.js.map +1 -1
  1077. package/dist/esm/hooks/useThemeName.mjs +7 -7
  1078. package/dist/esm/hooks/useThemeName.mjs.map +1 -1
  1079. package/dist/esm/hooks/useThemeName.native.js +10 -10
  1080. package/dist/esm/hooks/useThemeName.native.js.map +1 -1
  1081. package/dist/esm/hooks/useThemeState.mjs +261 -349
  1082. package/dist/esm/hooks/useThemeState.mjs.map +1 -1
  1083. package/dist/esm/hooks/useThemeState.native.js +312 -458
  1084. package/dist/esm/hooks/useThemeState.native.js.map +1 -1
  1085. package/dist/esm/index.js +64 -72
  1086. package/dist/esm/index.mjs +64 -72
  1087. package/dist/esm/index.native.js +64 -72
  1088. package/dist/esm/inject-styles.mjs +11 -13
  1089. package/dist/esm/inject-styles.mjs.map +1 -1
  1090. package/dist/esm/inject-styles.native.js +12 -14
  1091. package/dist/esm/inject-styles.native.js.map +1 -1
  1092. package/dist/esm/insertFont.mjs +44 -41
  1093. package/dist/esm/insertFont.mjs.map +1 -1
  1094. package/dist/esm/insertFont.native.js +38 -35
  1095. package/dist/esm/insertFont.native.js.map +1 -1
  1096. package/dist/esm/interfaces/CSSColorNames.mjs +151 -0
  1097. package/dist/esm/interfaces/CSSColorNames.mjs.map +1 -1
  1098. package/dist/esm/interfaces/CSSColorNames.native.js +151 -0
  1099. package/dist/esm/interfaces/CSSColorNames.native.js.map +1 -1
  1100. package/dist/esm/interfaces/GetRef.mjs +0 -2
  1101. package/dist/esm/interfaces/GetRef.native.js +0 -2
  1102. package/dist/esm/interfaces/RNExclusiveTypes.mjs +0 -2
  1103. package/dist/esm/interfaces/RNExclusiveTypes.native.js +0 -2
  1104. package/dist/esm/interfaces/TamaguiComponentEvents.mjs +0 -2
  1105. package/dist/esm/interfaces/TamaguiComponentEvents.native.js +0 -2
  1106. package/dist/esm/interfaces/TamaguiComponentPropsBaseBase.mjs +0 -2
  1107. package/dist/esm/interfaces/TamaguiComponentPropsBaseBase.native.js +0 -2
  1108. package/dist/esm/internal-runtime.mjs +83 -0
  1109. package/dist/esm/internal-runtime.mjs.map +1 -0
  1110. package/dist/esm/internal-runtime.native.js +83 -0
  1111. package/dist/esm/internal-runtime.native.js.map +1 -0
  1112. package/dist/esm/internalRuntimeTypes.mjs +0 -0
  1113. package/dist/esm/internalRuntimeTypes.native.js +0 -0
  1114. package/dist/esm/setupHooks.mjs +2 -1
  1115. package/dist/esm/setupHooks.mjs.map +1 -1
  1116. package/dist/esm/setupHooks.native.js +2 -1
  1117. package/dist/esm/setupHooks.native.js.map +1 -1
  1118. package/dist/esm/setupReactNative.mjs +2 -27
  1119. package/dist/esm/setupReactNative.mjs.map +1 -1
  1120. package/dist/esm/setupReactNative.native.js +25 -24
  1121. package/dist/esm/setupReactNative.native.js.map +1 -1
  1122. package/dist/esm/static-resolve.mjs +196 -0
  1123. package/dist/esm/static-resolve.mjs.map +1 -0
  1124. package/dist/esm/static-resolve.native.js +200 -0
  1125. package/dist/esm/static-resolve.native.js.map +1 -0
  1126. package/dist/esm/style.mjs +58 -0
  1127. package/dist/esm/style.mjs.map +1 -0
  1128. package/dist/esm/style.native.js +59 -0
  1129. package/dist/esm/style.native.js.map +1 -0
  1130. package/dist/esm/styled.mjs +97 -128
  1131. package/dist/esm/styled.mjs.map +1 -1
  1132. package/dist/esm/styled.native.js +101 -130
  1133. package/dist/esm/styled.native.js.map +1 -1
  1134. package/dist/esm/theme-update.mjs +3 -0
  1135. package/dist/esm/theme-update.native.js +3 -0
  1136. package/dist/esm/type-utils.mjs +0 -2
  1137. package/dist/esm/type-utils.native.js +0 -2
  1138. package/dist/esm/types.mjs +3 -0
  1139. package/dist/esm/types.mjs.map +1 -1
  1140. package/dist/esm/types.native.js +3 -0
  1141. package/dist/esm/types.native.js.map +1 -1
  1142. package/dist/esm/views/ConfigRevisionCheck.mjs +43 -0
  1143. package/dist/esm/views/ConfigRevisionCheck.mjs.map +1 -0
  1144. package/dist/esm/views/ConfigRevisionCheck.native.js +46 -0
  1145. package/dist/esm/views/ConfigRevisionCheck.native.js.map +1 -0
  1146. package/dist/esm/views/Configuration.mjs +11 -9
  1147. package/dist/esm/views/Configuration.mjs.map +1 -1
  1148. package/dist/esm/views/Configuration.native.js +13 -11
  1149. package/dist/esm/views/Configuration.native.js.map +1 -1
  1150. package/dist/esm/views/FontLanguage.mjs +8 -11
  1151. package/dist/esm/views/FontLanguage.mjs.map +1 -1
  1152. package/dist/esm/views/FontLanguage.native.js +13 -14
  1153. package/dist/esm/views/FontLanguage.native.js.map +1 -1
  1154. package/dist/esm/views/SafeAreaTracker.mjs +9 -0
  1155. package/dist/esm/views/SafeAreaTracker.mjs.map +1 -0
  1156. package/dist/esm/views/SafeAreaTracker.native.js +12 -0
  1157. package/dist/esm/views/SafeAreaTracker.native.js.map +1 -0
  1158. package/dist/esm/views/Slot.mjs +39 -44
  1159. package/dist/esm/views/Slot.mjs.map +1 -1
  1160. package/dist/esm/views/Slot.native.js +41 -46
  1161. package/dist/esm/views/Slot.native.js.map +1 -1
  1162. package/dist/esm/views/TamaguiProvider.mjs +54 -50
  1163. package/dist/esm/views/TamaguiProvider.mjs.map +1 -1
  1164. package/dist/esm/views/TamaguiProvider.native.js +52 -51
  1165. package/dist/esm/views/TamaguiProvider.native.js.map +1 -1
  1166. package/dist/esm/views/TamaguiRoot.mjs +31 -35
  1167. package/dist/esm/views/TamaguiRoot.mjs.map +1 -1
  1168. package/dist/esm/views/TamaguiRoot.native.js +2 -1
  1169. package/dist/esm/views/TamaguiRoot.native.js.map +1 -1
  1170. package/dist/esm/views/Text.mjs +38 -31
  1171. package/dist/esm/views/Text.mjs.map +1 -1
  1172. package/dist/esm/views/Text.native.js +19 -21
  1173. package/dist/esm/views/Text.native.js.map +1 -1
  1174. package/dist/esm/views/Theme.mjs +99 -145
  1175. package/dist/esm/views/Theme.mjs.map +1 -1
  1176. package/dist/esm/views/Theme.native.js +110 -152
  1177. package/dist/esm/views/Theme.native.js.map +1 -1
  1178. package/dist/esm/views/ThemeDebug.mjs +61 -63
  1179. package/dist/esm/views/ThemeDebug.mjs.map +1 -1
  1180. package/dist/esm/views/ThemeDebug.native.js +3 -6
  1181. package/dist/esm/views/ThemeDebug.native.js.map +1 -1
  1182. package/dist/esm/views/ThemeProvider.mjs +21 -20
  1183. package/dist/esm/views/ThemeProvider.mjs.map +1 -1
  1184. package/dist/esm/views/ThemeProvider.native.js +12 -10
  1185. package/dist/esm/views/ThemeProvider.native.js.map +1 -1
  1186. package/dist/esm/views/ThemeUpdate.mjs +54 -0
  1187. package/dist/esm/views/ThemeUpdate.mjs.map +1 -0
  1188. package/dist/esm/views/ThemeUpdate.native.js +53 -0
  1189. package/dist/esm/views/ThemeUpdate.native.js.map +1 -0
  1190. package/dist/esm/views/View.mjs +9 -3
  1191. package/dist/esm/views/View.mjs.map +1 -1
  1192. package/dist/esm/views/View.native.js +9 -3
  1193. package/dist/esm/views/View.native.js.map +1 -1
  1194. package/internal-runtime/index.cjs +2 -0
  1195. package/internal-runtime/index.js +4 -0
  1196. package/internal-runtime/index.native.js +2 -0
  1197. package/package.json +71 -18
  1198. package/reset.css +15 -12
  1199. package/src/_withNativeStyle.tsx +84 -0
  1200. package/src/_withStableStyle.tsx +61 -43
  1201. package/src/config.ts +36 -42
  1202. package/src/contexts/ComponentContext.tsx +25 -8
  1203. package/src/createComponent.tsx +628 -266
  1204. package/src/createStyledHOC.tsx +137 -0
  1205. package/src/createTamagui.ts +181 -92
  1206. package/src/createTokens.ts +16 -0
  1207. package/src/createVariable.ts +17 -12
  1208. package/src/createVariables.ts +5 -17
  1209. package/src/dom/adapters.ts +99 -0
  1210. package/src/dom/contract.ts +60 -0
  1211. package/src/dom/domEventProps.native.ts +40 -0
  1212. package/src/dom/html.native.tsx +1412 -0
  1213. package/src/dom/html.tsx +887 -0
  1214. package/src/dom/htmlRuntime.native.tsx +230 -0
  1215. package/src/dom/index.native.ts +28 -0
  1216. package/src/dom/index.ts +16 -0
  1217. package/src/dom/primitives.native.tsx +658 -0
  1218. package/src/dom/standalone.ts +107 -0
  1219. package/src/dom/standaloneHtml.ts +104 -0
  1220. package/src/dom/styleTypes.ts +620 -0
  1221. package/src/eventDetails.ts +85 -0
  1222. package/src/eventHandling.native.ts +16 -16
  1223. package/src/helpers/borderComponents.ts +62 -0
  1224. package/src/helpers/componentDisplayName.ts +3 -0
  1225. package/src/helpers/configVariables.ts +64 -0
  1226. package/src/helpers/createDesignSystem.ts +127 -89
  1227. package/src/helpers/createStyledContext.tsx +85 -43
  1228. package/src/helpers/defaultAnimationDriver.tsx +0 -5
  1229. package/src/helpers/expandStyle.ts +49 -2
  1230. package/src/helpers/expandStyles.ts +6 -2
  1231. package/src/helpers/extractPseudoState.ts +32 -0
  1232. package/src/helpers/fluid.ts +66 -0
  1233. package/src/helpers/formatDiagnostic.ts +69 -0
  1234. package/src/helpers/getCSSStylesAtomic.native.ts +7 -3
  1235. package/src/helpers/getCSSStylesAtomic.ts +306 -166
  1236. package/src/helpers/getCSSStylesAtomicCompiled.ts +21 -0
  1237. package/src/helpers/getDynamicVal.ts +4 -0
  1238. package/src/helpers/getExpandedShorthands.ts +0 -17
  1239. package/src/helpers/getSplitStyles.tsx +3429 -1635
  1240. package/src/helpers/getThemeCSSRules.ts +16 -1
  1241. package/src/helpers/grammarConfig.ts +369 -0
  1242. package/src/helpers/insertStyleRule.tsx +110 -25
  1243. package/src/helpers/isObj.ts +8 -0
  1244. package/src/helpers/isTamaguiComponent.tsx +2 -5
  1245. package/src/helpers/isTamaguiElement.tsx +2 -3
  1246. package/src/helpers/log.ts +12 -11
  1247. package/src/helpers/matchMedia.native.ts +16 -1
  1248. package/src/helpers/mediaState.ts +18 -32
  1249. package/src/helpers/mergeProps.ts +2 -32
  1250. package/src/helpers/mergeVariants.ts +80 -21
  1251. package/src/helpers/nativeOnlyProps.ts +0 -1
  1252. package/src/helpers/nativeStyleEngine.ts +385 -0
  1253. package/src/helpers/nativeTransitionTarget.native.ts +22 -0
  1254. package/src/helpers/nativeTransitionTarget.ts +6 -0
  1255. package/src/helpers/normalizeColor.native.ts +2 -3
  1256. package/src/helpers/normalizeColor.ts +4 -14
  1257. package/src/helpers/normalizeShadow.native.ts +1 -1
  1258. package/src/helpers/normalizeStyle.ts +26 -15
  1259. package/src/helpers/normalizeValueWithProperty.ts +18 -11
  1260. package/src/helpers/noteOnce.ts +9 -0
  1261. package/src/helpers/parseBorderShorthand.native.ts +23 -45
  1262. package/src/helpers/parseNativeStyle.native.ts +238 -0
  1263. package/src/helpers/parseNativeTransform.native.ts +35 -0
  1264. package/src/helpers/parseOutlineShorthand.native.ts +9 -40
  1265. package/src/helpers/proxyThemeToParents.ts +11 -1
  1266. package/src/helpers/registerCSSVariable.ts +52 -4
  1267. package/src/helpers/resolveAnimationDriver.ts +16 -13
  1268. package/src/helpers/resolveNativeUnits.native.ts +238 -0
  1269. package/src/helpers/resolveNativeUnits.ts +10 -0
  1270. package/src/helpers/resolveRem.native.ts +25 -26
  1271. package/src/helpers/resolveRem.ts +1 -1
  1272. package/src/helpers/resolveSafeArea.native.ts +90 -10
  1273. package/src/helpers/resolveSafeArea.ts +46 -7
  1274. package/src/helpers/resolveSafeAreaVariable.native.ts +28 -0
  1275. package/src/helpers/resolveSafeAreaVariable.ts +10 -0
  1276. package/src/helpers/resolveVariableValue.ts +31 -0
  1277. package/src/helpers/resolveVariantStyle.ts +77 -0
  1278. package/src/helpers/skipProps.ts +11 -3
  1279. package/src/helpers/splitStyleProps.ts +166 -0
  1280. package/src/helpers/styleFrontend.ts +143 -0
  1281. package/src/helpers/styleProvenance.ts +17 -2
  1282. package/src/helpers/styleStaticConfig.ts +21 -0
  1283. package/src/helpers/styleStaticConfigCore.ts +110 -0
  1284. package/src/helpers/styleToCSS.native.ts +1 -0
  1285. package/src/helpers/styleToCSS.ts +43 -0
  1286. package/src/helpers/styledDynamic.ts +192 -0
  1287. package/src/helpers/subscribeToContextGroup.tsx +46 -7
  1288. package/src/helpers/themeRef.ts +34 -0
  1289. package/src/helpers/themeUpdateState.ts +27 -0
  1290. package/src/helpers/themes.ts +9 -10
  1291. package/src/helpers/tokenCategories.ts +54 -0
  1292. package/src/helpers/transformsToString.ts +18 -16
  1293. package/src/helpers/variableValue.ts +50 -0
  1294. package/src/helpers/variables.ts +856 -0
  1295. package/src/helpers/warnOnce.ts +53 -0
  1296. package/src/helpers/webPropsToSkip.native.ts +7 -8
  1297. package/src/helpers/wrapStyleTags.tsx +4 -2
  1298. package/src/hooks/getThemeProxied.ts +139 -101
  1299. package/src/hooks/isOptimizedForFirstRender.native.ts +7 -0
  1300. package/src/hooks/isOptimizedForFirstRender.ts +7 -0
  1301. package/src/hooks/useAnimationDriver.ts +56 -0
  1302. package/src/hooks/useComponentState.ts +128 -174
  1303. package/src/hooks/useMedia.tsx +258 -131
  1304. package/src/hooks/usePortalThemeState.ts +34 -0
  1305. package/src/hooks/useSplitStyles.tsx +41 -0
  1306. package/src/hooks/useStyle.ts +10 -0
  1307. package/src/hooks/useTheme.tsx +20 -7
  1308. package/src/hooks/useThemeState.ts +185 -332
  1309. package/src/index.ts +328 -70
  1310. package/src/insertFont.ts +9 -5
  1311. package/src/interfaces/CSSColorNames.tsx +152 -149
  1312. package/src/interfaces/RNExclusiveTypes.ts +2 -1
  1313. package/src/interfaces/TamaguiComponentEvents.tsx +0 -1
  1314. package/src/interfaces/TamaguiComponentPropsBaseBase.tsx +2 -4
  1315. package/src/internal-runtime.ts +169 -0
  1316. package/src/internalRuntimeTypes.ts +18 -0
  1317. package/src/setupHooks.ts +9 -1
  1318. package/src/setupReactNative.ts +7 -30
  1319. package/src/static-resolve.ts +403 -0
  1320. package/src/style.ts +97 -0
  1321. package/src/styled.tsx +290 -416
  1322. package/src/theme-update.ts +2 -0
  1323. package/src/types.tsx +909 -626
  1324. package/src/views/ConfigRevisionCheck.tsx +55 -0
  1325. package/src/views/SafeAreaTracker.native.tsx +10 -0
  1326. package/src/views/SafeAreaTracker.tsx +7 -0
  1327. package/src/views/Slot.tsx +3 -2
  1328. package/src/views/TamaguiProvider.tsx +36 -24
  1329. package/src/views/Text.tsx +33 -23
  1330. package/src/views/Theme.tsx +64 -54
  1331. package/src/views/ThemeDebug.tsx +0 -2
  1332. package/src/views/ThemeProvider.tsx +6 -5
  1333. package/src/views/ThemeUpdate.tsx +90 -0
  1334. package/src/views/View.tsx +12 -4
  1335. package/types/Tamagui.d.ts.map +1 -1
  1336. package/types/_withNativeStyle.d.ts +5 -0
  1337. package/types/_withNativeStyle.d.ts.map +1 -0
  1338. package/types/_withStableStyle.d.ts +1 -1
  1339. package/types/_withStableStyle.d.ts.map +1 -1
  1340. package/types/config.d.ts +22 -32
  1341. package/types/config.d.ts.map +1 -1
  1342. package/types/contexts/ComponentContext.d.ts +1 -1
  1343. package/types/contexts/ComponentContext.d.ts.map +1 -1
  1344. package/types/createComponent.d.ts.map +1 -1
  1345. package/types/createFont.d.ts.map +1 -1
  1346. package/types/createStyledHOC.d.ts +4 -0
  1347. package/types/createStyledHOC.d.ts.map +1 -0
  1348. package/types/createTamagui.d.ts +2 -1
  1349. package/types/createTamagui.d.ts.map +1 -1
  1350. package/types/createTokens.d.ts.map +1 -1
  1351. package/types/createVariable.d.ts +0 -2
  1352. package/types/createVariable.d.ts.map +1 -1
  1353. package/types/createVariables.d.ts.map +1 -1
  1354. package/types/dom/adapters.d.ts +42 -0
  1355. package/types/dom/adapters.d.ts.map +1 -0
  1356. package/types/dom/contract.d.ts +48 -0
  1357. package/types/dom/contract.d.ts.map +1 -0
  1358. package/types/dom/domEventProps.native.d.ts +7 -0
  1359. package/types/dom/domEventProps.native.d.ts.map +1 -0
  1360. package/types/dom/html.d.ts +58 -0
  1361. package/types/dom/html.d.ts.map +1 -0
  1362. package/types/dom/html.native.d.ts +67 -0
  1363. package/types/dom/html.native.d.ts.map +1 -0
  1364. package/types/dom/htmlRuntime.native.d.ts +63 -0
  1365. package/types/dom/htmlRuntime.native.d.ts.map +1 -0
  1366. package/types/dom/index.d.ts +11 -0
  1367. package/types/dom/index.d.ts.map +1 -0
  1368. package/types/dom/index.native.d.ts +12 -0
  1369. package/types/dom/index.native.d.ts.map +1 -0
  1370. package/types/dom/primitives.native.d.ts +43 -0
  1371. package/types/dom/primitives.native.d.ts.map +1 -0
  1372. package/types/dom/standalone.d.ts +89 -0
  1373. package/types/dom/standalone.d.ts.map +1 -0
  1374. package/types/dom/standaloneHtml.d.ts +67 -0
  1375. package/types/dom/standaloneHtml.d.ts.map +1 -0
  1376. package/types/dom/styleTypes.d.ts +486 -0
  1377. package/types/dom/styleTypes.d.ts.map +1 -0
  1378. package/types/eventDetails.d.ts +12 -0
  1379. package/types/eventDetails.d.ts.map +1 -0
  1380. package/types/helpers/borderComponents.d.ts +10 -0
  1381. package/types/helpers/borderComponents.d.ts.map +1 -0
  1382. package/types/helpers/componentDisplayName.d.ts +2 -0
  1383. package/types/helpers/componentDisplayName.d.ts.map +1 -0
  1384. package/types/helpers/configVariables.d.ts +3 -0
  1385. package/types/helpers/configVariables.d.ts.map +1 -0
  1386. package/types/helpers/createDesignSystem.d.ts +24 -6
  1387. package/types/helpers/createDesignSystem.d.ts.map +1 -1
  1388. package/types/helpers/createStyledContext.d.ts +29 -2
  1389. package/types/helpers/createStyledContext.d.ts.map +1 -1
  1390. package/types/helpers/defaultAnimationDriver.d.ts.map +1 -1
  1391. package/types/helpers/defaultOffset.d.ts.map +1 -1
  1392. package/types/helpers/expandStyle.d.ts.map +1 -1
  1393. package/types/helpers/expandStyles.d.ts.map +1 -1
  1394. package/types/helpers/extractPseudoState.d.ts +14 -0
  1395. package/types/helpers/extractPseudoState.d.ts.map +1 -0
  1396. package/types/helpers/fluid.d.ts +21 -0
  1397. package/types/helpers/fluid.d.ts.map +1 -0
  1398. package/types/helpers/formatDiagnostic.d.ts +2 -0
  1399. package/types/helpers/formatDiagnostic.d.ts.map +1 -0
  1400. package/types/helpers/getCSSStylesAtomic.d.ts +29 -6
  1401. package/types/helpers/getCSSStylesAtomic.d.ts.map +1 -1
  1402. package/types/helpers/getCSSStylesAtomic.native.d.ts +11 -3
  1403. package/types/helpers/getCSSStylesAtomic.native.d.ts.map +1 -1
  1404. package/types/helpers/getCSSStylesAtomicCompiled.d.ts +9 -0
  1405. package/types/helpers/getCSSStylesAtomicCompiled.d.ts.map +1 -0
  1406. package/types/helpers/getDynamicVal.d.ts +1 -1
  1407. package/types/helpers/getDynamicVal.d.ts.map +1 -1
  1408. package/types/helpers/getExpandedShorthands.d.ts +0 -5
  1409. package/types/helpers/getExpandedShorthands.d.ts.map +1 -1
  1410. package/types/helpers/getShorthandValue.d.ts.map +1 -1
  1411. package/types/helpers/getSplitStyles.d.ts +14 -8
  1412. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  1413. package/types/helpers/getThemeCSSRules.d.ts.map +1 -1
  1414. package/types/helpers/grammarConfig.d.ts +41 -0
  1415. package/types/helpers/grammarConfig.d.ts.map +1 -0
  1416. package/types/helpers/insertStyleRule.d.ts +4 -1
  1417. package/types/helpers/insertStyleRule.d.ts.map +1 -1
  1418. package/types/helpers/isObj.d.ts +1 -0
  1419. package/types/helpers/isObj.d.ts.map +1 -1
  1420. package/types/helpers/isTamaguiComponent.d.ts +1 -1
  1421. package/types/helpers/isTamaguiComponent.d.ts.map +1 -1
  1422. package/types/helpers/isTamaguiElement.d.ts +1 -1
  1423. package/types/helpers/isTamaguiElement.d.ts.map +1 -1
  1424. package/types/helpers/log.d.ts.map +1 -1
  1425. package/types/helpers/matchMedia.d.ts +1 -1
  1426. package/types/helpers/matchMedia.native.d.ts.map +1 -1
  1427. package/types/helpers/mediaState.d.ts +5 -2
  1428. package/types/helpers/mediaState.d.ts.map +1 -1
  1429. package/types/helpers/mergeProps.d.ts +0 -2
  1430. package/types/helpers/mergeProps.d.ts.map +1 -1
  1431. package/types/helpers/mergeVariants.d.ts +1 -1
  1432. package/types/helpers/mergeVariants.d.ts.map +1 -1
  1433. package/types/helpers/nativeOnlyProps.d.ts +0 -1
  1434. package/types/helpers/nativeOnlyProps.d.ts.map +1 -1
  1435. package/types/helpers/nativeStyleEngine.d.ts +77 -0
  1436. package/types/helpers/nativeStyleEngine.d.ts.map +1 -0
  1437. package/types/helpers/nativeTransitionTarget.d.ts +3 -0
  1438. package/types/helpers/nativeTransitionTarget.d.ts.map +1 -0
  1439. package/types/helpers/nativeTransitionTarget.native.d.ts +3 -0
  1440. package/types/helpers/nativeTransitionTarget.native.d.ts.map +1 -0
  1441. package/types/helpers/normalizeColor.d.ts +0 -6
  1442. package/types/helpers/normalizeColor.d.ts.map +1 -1
  1443. package/types/helpers/normalizeColor.native.d.ts.map +1 -1
  1444. package/types/helpers/normalizeShadow.d.ts.map +1 -1
  1445. package/types/helpers/normalizeShadow.native.d.ts.map +1 -1
  1446. package/types/helpers/normalizeStyle.d.ts +2 -2
  1447. package/types/helpers/normalizeStyle.d.ts.map +1 -1
  1448. package/types/helpers/normalizeValueWithProperty.d.ts.map +1 -1
  1449. package/types/helpers/noteOnce.d.ts +2 -0
  1450. package/types/helpers/noteOnce.d.ts.map +1 -0
  1451. package/types/helpers/parseBorderShorthand.native.d.ts +1 -0
  1452. package/types/helpers/parseBorderShorthand.native.d.ts.map +1 -1
  1453. package/types/helpers/parseNativeStyle.native.d.ts +14 -0
  1454. package/types/helpers/parseNativeStyle.native.d.ts.map +1 -0
  1455. package/types/helpers/parseNativeTransform.native.d.ts +2 -0
  1456. package/types/helpers/parseNativeTransform.native.d.ts.map +1 -0
  1457. package/types/helpers/parseOutlineShorthand.native.d.ts.map +1 -1
  1458. package/types/helpers/proxyThemeToParents.d.ts +1 -1
  1459. package/types/helpers/proxyThemeToParents.d.ts.map +1 -1
  1460. package/types/helpers/registerCSSVariable.d.ts +12 -0
  1461. package/types/helpers/registerCSSVariable.d.ts.map +1 -1
  1462. package/types/helpers/resolveAnimationDriver.d.ts +4 -4
  1463. package/types/helpers/resolveAnimationDriver.d.ts.map +1 -1
  1464. package/types/helpers/resolveNativeUnits.d.ts +6 -0
  1465. package/types/helpers/resolveNativeUnits.d.ts.map +1 -0
  1466. package/types/helpers/resolveNativeUnits.native.d.ts +16 -0
  1467. package/types/helpers/resolveNativeUnits.native.d.ts.map +1 -0
  1468. package/types/helpers/resolveRem.native.d.ts +6 -4
  1469. package/types/helpers/resolveRem.native.d.ts.map +1 -1
  1470. package/types/helpers/resolveSafeArea.d.ts +1 -1
  1471. package/types/helpers/resolveSafeArea.d.ts.map +1 -1
  1472. package/types/helpers/resolveSafeArea.native.d.ts +2 -1
  1473. package/types/helpers/resolveSafeArea.native.d.ts.map +1 -1
  1474. package/types/helpers/resolveSafeAreaVariable.d.ts +3 -0
  1475. package/types/helpers/resolveSafeAreaVariable.d.ts.map +1 -0
  1476. package/types/helpers/resolveSafeAreaVariable.native.d.ts +3 -0
  1477. package/types/helpers/resolveSafeAreaVariable.native.d.ts.map +1 -0
  1478. package/types/helpers/resolveVariableValue.d.ts +3 -0
  1479. package/types/helpers/resolveVariableValue.d.ts.map +1 -0
  1480. package/types/helpers/resolveVariantStyle.d.ts +3 -0
  1481. package/types/helpers/resolveVariantStyle.d.ts.map +1 -0
  1482. package/types/helpers/setElementProps.d.ts.map +1 -1
  1483. package/types/helpers/skipProps.d.ts +5 -2
  1484. package/types/helpers/skipProps.d.ts.map +1 -1
  1485. package/types/helpers/sortString.d.ts +1 -1
  1486. package/types/helpers/sortString.d.ts.map +1 -1
  1487. package/types/helpers/splitStyleProps.d.ts +44 -0
  1488. package/types/helpers/splitStyleProps.d.ts.map +1 -0
  1489. package/types/helpers/styleFrontend.d.ts +102 -0
  1490. package/types/helpers/styleFrontend.d.ts.map +1 -0
  1491. package/types/helpers/styleProvenance.d.ts +14 -1
  1492. package/types/helpers/styleProvenance.d.ts.map +1 -1
  1493. package/types/helpers/styleStaticConfig.d.ts +14 -0
  1494. package/types/helpers/styleStaticConfig.d.ts.map +1 -0
  1495. package/types/helpers/styleStaticConfigCore.d.ts +4 -0
  1496. package/types/helpers/styleStaticConfigCore.d.ts.map +1 -0
  1497. package/types/helpers/styleToCSS.d.ts +2 -0
  1498. package/types/helpers/styleToCSS.d.ts.map +1 -0
  1499. package/types/helpers/styleToCSS.native.d.ts +2 -0
  1500. package/types/helpers/styleToCSS.native.d.ts.map +1 -0
  1501. package/types/helpers/styledDynamic.d.ts +18 -0
  1502. package/types/helpers/styledDynamic.d.ts.map +1 -0
  1503. package/types/helpers/subscribeToContextGroup.d.ts +1 -0
  1504. package/types/helpers/subscribeToContextGroup.d.ts.map +1 -1
  1505. package/types/helpers/themeRef.d.ts +22 -0
  1506. package/types/helpers/themeRef.d.ts.map +1 -0
  1507. package/types/helpers/themeUpdateState.d.ts +23 -0
  1508. package/types/helpers/themeUpdateState.d.ts.map +1 -0
  1509. package/types/helpers/themes.d.ts.map +1 -1
  1510. package/types/helpers/tokenCategories.d.ts +4 -0
  1511. package/types/helpers/tokenCategories.d.ts.map +1 -0
  1512. package/types/helpers/transformsToString.d.ts.map +1 -1
  1513. package/types/helpers/variableValue.d.ts +4 -0
  1514. package/types/helpers/variableValue.d.ts.map +1 -0
  1515. package/types/helpers/variables.d.ts +73 -0
  1516. package/types/helpers/variables.d.ts.map +1 -0
  1517. package/types/helpers/warnOnce.d.ts +21 -0
  1518. package/types/helpers/warnOnce.d.ts.map +1 -0
  1519. package/types/helpers/webPropsToSkip.native.d.ts +68 -62
  1520. package/types/helpers/webPropsToSkip.native.d.ts.map +1 -1
  1521. package/types/helpers/wrapStyleTags.d.ts +1 -1
  1522. package/types/helpers/wrapStyleTags.d.ts.map +1 -1
  1523. package/types/hooks/getThemeProxied.d.ts +1 -1
  1524. package/types/hooks/getThemeProxied.d.ts.map +1 -1
  1525. package/types/hooks/isOptimizedForFirstRender.d.ts +2 -0
  1526. package/types/hooks/isOptimizedForFirstRender.d.ts.map +1 -0
  1527. package/types/hooks/isOptimizedForFirstRender.native.d.ts +2 -0
  1528. package/types/hooks/isOptimizedForFirstRender.native.d.ts.map +1 -0
  1529. package/types/hooks/useAnimationDriver.d.ts +7 -0
  1530. package/types/hooks/useAnimationDriver.d.ts.map +1 -0
  1531. package/types/hooks/useComponentState.d.ts +6 -4
  1532. package/types/hooks/useComponentState.d.ts.map +1 -1
  1533. package/types/hooks/useMedia.d.ts +14 -12
  1534. package/types/hooks/useMedia.d.ts.map +1 -1
  1535. package/types/hooks/usePortalThemeState.d.ts +15 -0
  1536. package/types/hooks/usePortalThemeState.d.ts.map +1 -0
  1537. package/types/hooks/useSplitStyles.d.ts +3 -0
  1538. package/types/hooks/useSplitStyles.d.ts.map +1 -0
  1539. package/types/hooks/useStyle.d.ts +4 -0
  1540. package/types/hooks/useStyle.d.ts.map +1 -0
  1541. package/types/hooks/useTheme.d.ts +1 -1
  1542. package/types/hooks/useTheme.d.ts.map +1 -1
  1543. package/types/hooks/useThemeState.d.ts +13 -3
  1544. package/types/hooks/useThemeState.d.ts.map +1 -1
  1545. package/types/index.d.ts +63 -70
  1546. package/types/index.d.ts.map +1 -1
  1547. package/types/inject-styles.d.ts.map +1 -1
  1548. package/types/insertFont.d.ts.map +1 -1
  1549. package/types/interfaces/CSSColorNames.d.ts +2 -1
  1550. package/types/interfaces/CSSColorNames.d.ts.map +1 -1
  1551. package/types/interfaces/RNExclusiveTypes.d.ts +2 -2
  1552. package/types/interfaces/RNExclusiveTypes.d.ts.map +1 -1
  1553. package/types/interfaces/TamaguiComponentEvents.d.ts +0 -1
  1554. package/types/interfaces/TamaguiComponentEvents.d.ts.map +1 -1
  1555. package/types/interfaces/TamaguiComponentPropsBaseBase.d.ts +2 -4
  1556. package/types/interfaces/TamaguiComponentPropsBaseBase.d.ts.map +1 -1
  1557. package/types/internal-runtime.d.ts +56 -0
  1558. package/types/internal-runtime.d.ts.map +1 -0
  1559. package/types/internalRuntimeTypes.d.ts +11 -0
  1560. package/types/internalRuntimeTypes.d.ts.map +1 -0
  1561. package/types/setupHooks.d.ts +1 -1
  1562. package/types/setupHooks.d.ts.map +1 -1
  1563. package/types/setupReactNative.d.ts +2 -3
  1564. package/types/setupReactNative.d.ts.map +1 -1
  1565. package/types/static-resolve.d.ts +79 -0
  1566. package/types/static-resolve.d.ts.map +1 -0
  1567. package/types/style.d.ts +18 -0
  1568. package/types/style.d.ts.map +1 -0
  1569. package/types/styled.d.ts +41 -41
  1570. package/types/styled.d.ts.map +1 -1
  1571. package/types/theme-update.d.ts +3 -0
  1572. package/types/theme-update.d.ts.map +1 -0
  1573. package/types/types.d.ts +616 -315
  1574. package/types/types.d.ts.map +1 -1
  1575. package/types/views/ConfigRevisionCheck.d.ts +6 -0
  1576. package/types/views/ConfigRevisionCheck.d.ts.map +1 -0
  1577. package/types/views/Configuration.d.ts +1 -1
  1578. package/types/views/Configuration.d.ts.map +1 -1
  1579. package/types/views/FontLanguage.d.ts +4 -4
  1580. package/types/views/FontLanguage.d.ts.map +1 -1
  1581. package/types/views/FontLanguage.native.d.ts +2 -1
  1582. package/types/views/FontLanguage.native.d.ts.map +1 -1
  1583. package/types/views/SafeAreaTracker.d.ts +3 -0
  1584. package/types/views/SafeAreaTracker.d.ts.map +1 -0
  1585. package/types/views/SafeAreaTracker.native.d.ts +3 -0
  1586. package/types/views/SafeAreaTracker.native.d.ts.map +1 -0
  1587. package/types/views/Slot.d.ts +7 -7
  1588. package/types/views/Slot.d.ts.map +1 -1
  1589. package/types/views/TamaguiProvider.d.ts +2 -1
  1590. package/types/views/TamaguiProvider.d.ts.map +1 -1
  1591. package/types/views/TamaguiRoot.d.ts +1 -1
  1592. package/types/views/TamaguiRoot.d.ts.map +1 -1
  1593. package/types/views/Text.d.ts +6 -2
  1594. package/types/views/Text.d.ts.map +1 -1
  1595. package/types/views/Theme.d.ts +3 -8
  1596. package/types/views/Theme.d.ts.map +1 -1
  1597. package/types/views/ThemeDebug.d.ts.map +1 -1
  1598. package/types/views/ThemeProvider.d.ts +1 -1
  1599. package/types/views/ThemeProvider.d.ts.map +1 -1
  1600. package/types/views/ThemeUpdate.d.ts +15 -0
  1601. package/types/views/ThemeUpdate.d.ts.map +1 -0
  1602. package/types/views/View.d.ts +8 -2
  1603. package/types/views/View.d.ts.map +1 -1
  1604. package/.turbo/turbo-build.log +0 -2
  1605. package/.turbo/turbo-test$colon$web.log +0 -25
  1606. package/dist/cjs/animationDriverTypes.test-d.cjs +0 -77
  1607. package/dist/cjs/animationDriverTypes.test-d.native.js +0 -80
  1608. package/dist/cjs/animationDriverTypes.test-d.native.js.map +0 -1
  1609. package/dist/cjs/constants/accessibilityDirectMap.cjs +0 -36
  1610. package/dist/cjs/constants/accessibilityDirectMap.native.js +0 -39
  1611. package/dist/cjs/constants/accessibilityDirectMap.native.js.map +0 -1
  1612. package/dist/cjs/helpers/createMediaStyle.cjs +0 -127
  1613. package/dist/cjs/helpers/createMediaStyle.native.js +0 -140
  1614. package/dist/cjs/helpers/createMediaStyle.native.js.map +0 -1
  1615. package/dist/cjs/helpers/getDefaultProps.cjs +0 -43
  1616. package/dist/cjs/helpers/getDefaultProps.native.js +0 -47
  1617. package/dist/cjs/helpers/getDefaultProps.native.js.map +0 -1
  1618. package/dist/cjs/helpers/getFontLanguage.cjs +0 -28
  1619. package/dist/cjs/helpers/getFontLanguage.native.js +0 -33
  1620. package/dist/cjs/helpers/getFontLanguage.native.js.map +0 -1
  1621. package/dist/cjs/helpers/getGroupPropParts.cjs +0 -54
  1622. package/dist/cjs/helpers/getGroupPropParts.native.js +0 -59
  1623. package/dist/cjs/helpers/getGroupPropParts.native.js.map +0 -1
  1624. package/dist/cjs/helpers/getTokenForKey.cjs +0 -174
  1625. package/dist/cjs/helpers/getTokenForKey.native.js +0 -186
  1626. package/dist/cjs/helpers/getTokenForKey.native.js.map +0 -1
  1627. package/dist/cjs/helpers/getVariantExtras.cjs +0 -85
  1628. package/dist/cjs/helpers/getVariantExtras.native.js +0 -89
  1629. package/dist/cjs/helpers/getVariantExtras.native.js.map +0 -1
  1630. package/dist/cjs/helpers/isActivePlatform.cjs +0 -40
  1631. package/dist/cjs/helpers/isActivePlatform.native.js +0 -43
  1632. package/dist/cjs/helpers/isActivePlatform.native.js.map +0 -1
  1633. package/dist/cjs/helpers/isActiveTheme.cjs +0 -31
  1634. package/dist/cjs/helpers/isActiveTheme.native.js +0 -34
  1635. package/dist/cjs/helpers/isActiveTheme.native.js.map +0 -1
  1636. package/dist/cjs/helpers/normalizeStylePropKeys.cjs +0 -28
  1637. package/dist/cjs/helpers/normalizeStylePropKeys.native.js +0 -42
  1638. package/dist/cjs/helpers/normalizeStylePropKeys.native.js.map +0 -1
  1639. package/dist/cjs/helpers/parseNativeStyle.cjs +0 -167
  1640. package/dist/cjs/helpers/platformResolveValue.cjs +0 -38
  1641. package/dist/cjs/helpers/platformResolveValue.native.js +0 -74
  1642. package/dist/cjs/helpers/platformResolveValue.native.js.map +0 -1
  1643. package/dist/cjs/helpers/propMapper.cjs +0 -281
  1644. package/dist/cjs/helpers/propMapper.native.js +0 -381
  1645. package/dist/cjs/helpers/propMapper.native.js.map +0 -1
  1646. package/dist/cjs/helpers/proxyThemeVariables.cjs +0 -38
  1647. package/dist/cjs/helpers/proxyThemeVariables.native.js +0 -43
  1648. package/dist/cjs/helpers/proxyThemeVariables.native.js.map +0 -1
  1649. package/dist/cjs/helpers/pseudoDescriptors.cjs +0 -82
  1650. package/dist/cjs/helpers/pseudoDescriptors.native.js +0 -85
  1651. package/dist/cjs/helpers/pseudoDescriptors.native.js.map +0 -1
  1652. package/dist/cjs/helpers/pseudoTransitions.cjs +0 -83
  1653. package/dist/cjs/helpers/pseudoTransitions.native.js +0 -88
  1654. package/dist/cjs/helpers/pseudoTransitions.native.js.map +0 -1
  1655. package/dist/cjs/helpers/resolveCompoundTokens.cjs +0 -41
  1656. package/dist/cjs/helpers/resolveCompoundTokens.native.js +0 -44
  1657. package/dist/cjs/helpers/resolveCompoundTokens.native.js.map +0 -1
  1658. package/dist/cjs/helpers/themeable.cjs +0 -114
  1659. package/dist/cjs/helpers/themeable.native.js +0 -119
  1660. package/dist/cjs/helpers/themeable.native.js.map +0 -1
  1661. package/dist/cjs/helpers/useRenderElement.cjs +0 -53
  1662. package/dist/cjs/helpers/useRenderElement.native.js +0 -60
  1663. package/dist/cjs/helpers/useRenderElement.native.js.map +0 -1
  1664. package/dist/cjs/hooks/useProps.cjs +0 -120
  1665. package/dist/cjs/hooks/useProps.native.js +0 -125
  1666. package/dist/cjs/hooks/useProps.native.js.map +0 -1
  1667. package/dist/cjs/opacityModifier.test-d.cjs +0 -36
  1668. package/dist/cjs/opacityModifier.test-d.native.js +0 -39
  1669. package/dist/cjs/opacityModifier.test-d.native.js.map +0 -1
  1670. package/dist/cjs/styledHtml.test-d.cjs +0 -187
  1671. package/dist/cjs/styledHtml.test-d.native.js +0 -190
  1672. package/dist/cjs/styledHtml.test-d.native.js.map +0 -1
  1673. package/dist/cjs/styledNonStyleProps.test-d.cjs +0 -63
  1674. package/dist/cjs/styledNonStyleProps.test-d.native.js +0 -66
  1675. package/dist/cjs/styledNonStyleProps.test-d.native.js.map +0 -1
  1676. package/dist/esm/animationDriverTypes.test-d.mjs +0 -78
  1677. package/dist/esm/animationDriverTypes.test-d.mjs.map +0 -1
  1678. package/dist/esm/animationDriverTypes.test-d.native.js +0 -78
  1679. package/dist/esm/animationDriverTypes.test-d.native.js.map +0 -1
  1680. package/dist/esm/constants/accessibilityDirectMap.mjs +0 -7
  1681. package/dist/esm/constants/accessibilityDirectMap.mjs.map +0 -1
  1682. package/dist/esm/constants/accessibilityDirectMap.native.js +0 -7
  1683. package/dist/esm/constants/accessibilityDirectMap.native.js.map +0 -1
  1684. package/dist/esm/helpers/createMediaStyle.mjs +0 -100
  1685. package/dist/esm/helpers/createMediaStyle.mjs.map +0 -1
  1686. package/dist/esm/helpers/createMediaStyle.native.js +0 -110
  1687. package/dist/esm/helpers/createMediaStyle.native.js.map +0 -1
  1688. package/dist/esm/helpers/getDefaultProps.mjs +0 -18
  1689. package/dist/esm/helpers/getDefaultProps.mjs.map +0 -1
  1690. package/dist/esm/helpers/getDefaultProps.native.js +0 -19
  1691. package/dist/esm/helpers/getDefaultProps.native.js.map +0 -1
  1692. package/dist/esm/helpers/getFontLanguage.mjs +0 -3
  1693. package/dist/esm/helpers/getFontLanguage.mjs.map +0 -1
  1694. package/dist/esm/helpers/getFontLanguage.native.js +0 -5
  1695. package/dist/esm/helpers/getFontLanguage.native.js.map +0 -1
  1696. package/dist/esm/helpers/getGroupPropParts.mjs +0 -29
  1697. package/dist/esm/helpers/getGroupPropParts.mjs.map +0 -1
  1698. package/dist/esm/helpers/getGroupPropParts.native.js +0 -31
  1699. package/dist/esm/helpers/getGroupPropParts.native.js.map +0 -1
  1700. package/dist/esm/helpers/getTokenForKey.mjs +0 -146
  1701. package/dist/esm/helpers/getTokenForKey.mjs.map +0 -1
  1702. package/dist/esm/helpers/getTokenForKey.native.js +0 -155
  1703. package/dist/esm/helpers/getTokenForKey.native.js.map +0 -1
  1704. package/dist/esm/helpers/getVariantExtras.mjs +0 -59
  1705. package/dist/esm/helpers/getVariantExtras.mjs.map +0 -1
  1706. package/dist/esm/helpers/getVariantExtras.native.js +0 -60
  1707. package/dist/esm/helpers/getVariantExtras.native.js.map +0 -1
  1708. package/dist/esm/helpers/isActivePlatform.mjs +0 -14
  1709. package/dist/esm/helpers/isActivePlatform.mjs.map +0 -1
  1710. package/dist/esm/helpers/isActivePlatform.native.js +0 -14
  1711. package/dist/esm/helpers/isActivePlatform.native.js.map +0 -1
  1712. package/dist/esm/helpers/isActiveTheme.mjs +0 -6
  1713. package/dist/esm/helpers/isActiveTheme.mjs.map +0 -1
  1714. package/dist/esm/helpers/isActiveTheme.native.js +0 -6
  1715. package/dist/esm/helpers/isActiveTheme.native.js.map +0 -1
  1716. package/dist/esm/helpers/normalizeStylePropKeys.mjs +0 -3
  1717. package/dist/esm/helpers/normalizeStylePropKeys.mjs.map +0 -1
  1718. package/dist/esm/helpers/normalizeStylePropKeys.native.js +0 -14
  1719. package/dist/esm/helpers/normalizeStylePropKeys.native.js.map +0 -1
  1720. package/dist/esm/helpers/parseNativeStyle.mjs +0 -142
  1721. package/dist/esm/helpers/parseNativeStyle.mjs.map +0 -1
  1722. package/dist/esm/helpers/platformResolveValue.mjs +0 -13
  1723. package/dist/esm/helpers/platformResolveValue.mjs.map +0 -1
  1724. package/dist/esm/helpers/platformResolveValue.native.js +0 -46
  1725. package/dist/esm/helpers/platformResolveValue.native.js.map +0 -1
  1726. package/dist/esm/helpers/propMapper.mjs +0 -251
  1727. package/dist/esm/helpers/propMapper.mjs.map +0 -1
  1728. package/dist/esm/helpers/propMapper.native.js +0 -350
  1729. package/dist/esm/helpers/propMapper.native.js.map +0 -1
  1730. package/dist/esm/helpers/proxyThemeVariables.mjs +0 -13
  1731. package/dist/esm/helpers/proxyThemeVariables.mjs.map +0 -1
  1732. package/dist/esm/helpers/proxyThemeVariables.native.js +0 -15
  1733. package/dist/esm/helpers/proxyThemeVariables.native.js.map +0 -1
  1734. package/dist/esm/helpers/pseudoDescriptors.mjs +0 -54
  1735. package/dist/esm/helpers/pseudoDescriptors.mjs.map +0 -1
  1736. package/dist/esm/helpers/pseudoDescriptors.native.js +0 -54
  1737. package/dist/esm/helpers/pseudoDescriptors.native.js.map +0 -1
  1738. package/dist/esm/helpers/pseudoTransitions.mjs +0 -57
  1739. package/dist/esm/helpers/pseudoTransitions.mjs.map +0 -1
  1740. package/dist/esm/helpers/pseudoTransitions.native.js +0 -59
  1741. package/dist/esm/helpers/pseudoTransitions.native.js.map +0 -1
  1742. package/dist/esm/helpers/resolveCompoundTokens.mjs +0 -16
  1743. package/dist/esm/helpers/resolveCompoundTokens.mjs.map +0 -1
  1744. package/dist/esm/helpers/resolveCompoundTokens.native.js +0 -16
  1745. package/dist/esm/helpers/resolveCompoundTokens.native.js.map +0 -1
  1746. package/dist/esm/helpers/themeable.mjs +0 -79
  1747. package/dist/esm/helpers/themeable.mjs.map +0 -1
  1748. package/dist/esm/helpers/themeable.native.js +0 -80
  1749. package/dist/esm/helpers/themeable.native.js.map +0 -1
  1750. package/dist/esm/helpers/useRenderElement.mjs +0 -26
  1751. package/dist/esm/helpers/useRenderElement.mjs.map +0 -1
  1752. package/dist/esm/helpers/useRenderElement.native.js +0 -31
  1753. package/dist/esm/helpers/useRenderElement.native.js.map +0 -1
  1754. package/dist/esm/hooks/useProps.mjs +0 -82
  1755. package/dist/esm/hooks/useProps.mjs.map +0 -1
  1756. package/dist/esm/hooks/useProps.native.js +0 -84
  1757. package/dist/esm/hooks/useProps.native.js.map +0 -1
  1758. package/dist/esm/index.js.map +0 -1
  1759. package/dist/esm/index.mjs.map +0 -1
  1760. package/dist/esm/index.native.js.map +0 -1
  1761. package/dist/esm/interfaces/GetRef.mjs.map +0 -1
  1762. package/dist/esm/interfaces/GetRef.native.js.map +0 -1
  1763. package/dist/esm/interfaces/RNExclusiveTypes.mjs.map +0 -1
  1764. package/dist/esm/interfaces/RNExclusiveTypes.native.js.map +0 -1
  1765. package/dist/esm/interfaces/TamaguiComponentEvents.mjs.map +0 -1
  1766. package/dist/esm/interfaces/TamaguiComponentEvents.native.js.map +0 -1
  1767. package/dist/esm/interfaces/TamaguiComponentPropsBaseBase.mjs.map +0 -1
  1768. package/dist/esm/interfaces/TamaguiComponentPropsBaseBase.native.js.map +0 -1
  1769. package/dist/esm/opacityModifier.test-d.mjs +0 -37
  1770. package/dist/esm/opacityModifier.test-d.mjs.map +0 -1
  1771. package/dist/esm/opacityModifier.test-d.native.js +0 -37
  1772. package/dist/esm/opacityModifier.test-d.native.js.map +0 -1
  1773. package/dist/esm/styledHtml.test-d.mjs +0 -188
  1774. package/dist/esm/styledHtml.test-d.mjs.map +0 -1
  1775. package/dist/esm/styledHtml.test-d.native.js +0 -188
  1776. package/dist/esm/styledHtml.test-d.native.js.map +0 -1
  1777. package/dist/esm/styledNonStyleProps.test-d.mjs +0 -64
  1778. package/dist/esm/styledNonStyleProps.test-d.mjs.map +0 -1
  1779. package/dist/esm/styledNonStyleProps.test-d.native.js +0 -64
  1780. package/dist/esm/styledNonStyleProps.test-d.native.js.map +0 -1
  1781. package/dist/esm/type-utils.mjs.map +0 -1
  1782. package/dist/esm/type-utils.native.js.map +0 -1
  1783. package/src/animationDriverTypes.test-d.ts +0 -332
  1784. package/src/constants/accessibilityDirectMap.native.tsx +0 -10
  1785. package/src/constants/accessibilityDirectMap.tsx +0 -11
  1786. package/src/helpers/createMediaStyle.ts +0 -167
  1787. package/src/helpers/getDefaultProps.ts +0 -28
  1788. package/src/helpers/getFontLanguage.ts +0 -2
  1789. package/src/helpers/getGroupPropParts.ts +0 -46
  1790. package/src/helpers/getTokenForKey.ts +0 -236
  1791. package/src/helpers/getVariantExtras.tsx +0 -68
  1792. package/src/helpers/isActivePlatform.ts +0 -43
  1793. package/src/helpers/isActiveTheme.ts +0 -4
  1794. package/src/helpers/normalizeStylePropKeys.native.ts +0 -12
  1795. package/src/helpers/normalizeStylePropKeys.ts +0 -3
  1796. package/src/helpers/parseNativeStyle.ts +0 -193
  1797. package/src/helpers/platformResolveValue.native.ts +0 -75
  1798. package/src/helpers/platformResolveValue.ts +0 -26
  1799. package/src/helpers/propMapper.ts +0 -459
  1800. package/src/helpers/proxyThemeVariables.tsx +0 -13
  1801. package/src/helpers/pseudoDescriptors.ts +0 -74
  1802. package/src/helpers/pseudoTransitions.ts +0 -97
  1803. package/src/helpers/resolveCompoundTokens.ts +0 -28
  1804. package/src/helpers/themeable.tsx +0 -104
  1805. package/src/helpers/useRenderElement.tsx +0 -73
  1806. package/src/hooks/useProps.tsx +0 -158
  1807. package/src/opacityModifier.test-d.ts +0 -65
  1808. package/src/styledHtml.test-d.ts +0 -286
  1809. package/src/styledNonStyleProps.test-d.ts +0 -106
  1810. package/tsconfig.json +0 -44
  1811. package/tsconfig.test.json +0 -9
  1812. package/types/constants/accessibilityDirectMap.d.ts +0 -6
  1813. package/types/constants/accessibilityDirectMap.d.ts.map +0 -1
  1814. package/types/constants/accessibilityDirectMap.native.d.ts +0 -6
  1815. package/types/constants/accessibilityDirectMap.native.d.ts.map +0 -1
  1816. package/types/helpers/createMediaStyle.d.ts +0 -5
  1817. package/types/helpers/createMediaStyle.d.ts.map +0 -1
  1818. package/types/helpers/getDefaultProps.d.ts +0 -3
  1819. package/types/helpers/getDefaultProps.d.ts.map +0 -1
  1820. package/types/helpers/getFontLanguage.d.ts +0 -2
  1821. package/types/helpers/getFontLanguage.d.ts.map +0 -1
  1822. package/types/helpers/getGroupPropParts.d.ts +0 -7
  1823. package/types/helpers/getGroupPropParts.d.ts.map +0 -1
  1824. package/types/helpers/getTokenForKey.d.ts +0 -6
  1825. package/types/helpers/getTokenForKey.d.ts.map +0 -1
  1826. package/types/helpers/getVariantExtras.d.ts +0 -4
  1827. package/types/helpers/getVariantExtras.d.ts.map +0 -1
  1828. package/types/helpers/isActivePlatform.d.ts +0 -16
  1829. package/types/helpers/isActivePlatform.d.ts.map +0 -1
  1830. package/types/helpers/isActiveTheme.d.ts +0 -2
  1831. package/types/helpers/isActiveTheme.d.ts.map +0 -1
  1832. package/types/helpers/normalizeStylePropKeys.d.ts +0 -2
  1833. package/types/helpers/normalizeStylePropKeys.d.ts.map +0 -1
  1834. package/types/helpers/normalizeStylePropKeys.native.d.ts +0 -13
  1835. package/types/helpers/normalizeStylePropKeys.native.d.ts.map +0 -1
  1836. package/types/helpers/parseNativeStyle.d.ts +0 -14
  1837. package/types/helpers/parseNativeStyle.d.ts.map +0 -1
  1838. package/types/helpers/platformResolveValue.d.ts +0 -6
  1839. package/types/helpers/platformResolveValue.d.ts.map +0 -1
  1840. package/types/helpers/platformResolveValue.native.d.ts +0 -7
  1841. package/types/helpers/platformResolveValue.native.d.ts.map +0 -1
  1842. package/types/helpers/propMapper.d.ts +0 -5
  1843. package/types/helpers/propMapper.d.ts.map +0 -1
  1844. package/types/helpers/proxyThemeVariables.d.ts +0 -2
  1845. package/types/helpers/proxyThemeVariables.d.ts.map +0 -1
  1846. package/types/helpers/pseudoDescriptors.d.ts +0 -51
  1847. package/types/helpers/pseudoDescriptors.d.ts.map +0 -1
  1848. package/types/helpers/pseudoTransitions.d.ts +0 -29
  1849. package/types/helpers/pseudoTransitions.d.ts.map +0 -1
  1850. package/types/helpers/resolveCompoundTokens.d.ts +0 -9
  1851. package/types/helpers/resolveCompoundTokens.d.ts.map +0 -1
  1852. package/types/helpers/themeable.d.ts +0 -3
  1853. package/types/helpers/themeable.d.ts.map +0 -1
  1854. package/types/helpers/useRenderElement.d.ts +0 -13
  1855. package/types/helpers/useRenderElement.d.ts.map +0 -1
  1856. package/types/hooks/useProps.d.ts +0 -41
  1857. package/types/hooks/useProps.d.ts.map +0 -1
  1858. package/vitest.config.d.ts +0 -3
  1859. package/vitest.config.d.ts.map +0 -1
  1860. package/vitest.config.ts +0 -14
@@ -1,4 +1,4 @@
1
- import { composeRefs } from '@tamagui/compose-refs'
1
+ import { composeRefs, setRef } from '@tamagui/compose-refs'
2
2
  import {
3
3
  getPlatformDriver,
4
4
  isAndroid,
@@ -19,29 +19,38 @@ import { GroupContext } from './contexts/GroupContext'
19
19
  import { didGetVariableValue, setDidGetVariableValue } from './createVariable'
20
20
  import { defaultComponentStateMounted } from './defaultComponentState'
21
21
  import { getWebEvents, useEvents, wrapWithGestureDetector } from './eventHandling'
22
- import { getDefaultProps } from './helpers/getDefaultProps'
23
- import { resolveAnimationDriver } from './helpers/resolveAnimationDriver'
24
- import { getSplitStyles, useSplitStyles } from './helpers/getSplitStyles'
22
+ import { componentDisplayName } from './helpers/componentDisplayName'
23
+ import { getSplitStyles } from './helpers/getSplitStyles'
24
+ import { getConfigRevisionState } from './helpers/grammarConfig'
25
+ import { getStyleStaticConfig, type StyleStaticConfig } from './helpers/styleStaticConfig'
26
+ import {
27
+ getNativeStyleEngine,
28
+ queueNativeViewState,
29
+ updateNativeStyleLink,
30
+ } from './helpers/nativeStyleEngine'
31
+ import { getThemeProxied } from './hooks/getThemeProxied'
25
32
  import { log } from './helpers/log'
26
33
  import { type GenericProps, mergeComponentProps } from './helpers/mergeProps'
27
34
  import { mergeRenderElementProps } from './helpers/mergeRenderElementProps'
28
- import { objectIdentityKey } from './helpers/objectIdentityKey'
35
+ import { getMedia } from './helpers/mediaState'
29
36
  import { usePointerEvents } from './helpers/pointerEvents'
30
- import {
31
- extractPseudoState,
32
- resolveEffectivePseudoTransition,
33
- } from './helpers/pseudoTransitions'
37
+ import { extractPseudoState } from './helpers/extractPseudoState'
38
+ import { subscribeToSafeArea } from './helpers/resolveSafeAreaVariable'
34
39
  import { setElementProps } from './helpers/setElementProps'
35
- import { subscribeToContextGroup } from './helpers/subscribeToContextGroup'
36
- import { themeable } from './helpers/themeable'
40
+ import {
41
+ subscribeToContextGroup,
42
+ useGroupSetRevision,
43
+ } from './helpers/subscribeToContextGroup'
37
44
  import { getStyleTags } from './helpers/wrapStyleTags'
38
45
  import { useComponentState } from './hooks/useComponentState'
46
+ import { useSplitStyles } from './hooks/useSplitStyles'
39
47
  import { setMediaShouldUpdate, useMedia } from './hooks/useMedia'
40
48
  import { useThemeWithState } from './hooks/useTheme'
41
49
  import type { TamaguiComponentEvents } from './interfaces/TamaguiComponentEvents'
42
50
  import { hooks } from './setupHooks'
43
51
  import type {
44
52
  AllGroupContexts,
53
+ AnimationDriverLike,
45
54
  ComponentGroupEmitter,
46
55
  DebugProp,
47
56
  GroupStateListener,
@@ -49,7 +58,6 @@ import type {
49
58
  PseudoGroupState,
50
59
  SingleGroupContext,
51
60
  StaticConfig,
52
- StyleableOptions,
53
61
  TamaguiComponent,
54
62
  TamaguiComponentState,
55
63
  TamaguiElement,
@@ -83,7 +91,6 @@ const avoidReRenderKeys = new Set([
83
91
  'focus',
84
92
  'focusWithin',
85
93
  'media',
86
- 'group',
87
94
  ])
88
95
 
89
96
  const groupPseudoKeys = [
@@ -248,15 +255,75 @@ export function createComponent<
248
255
  BaseProps = never,
249
256
  BaseStyles extends object = never,
250
257
  >(staticConfig: StaticConfig) {
258
+ // Zero-runtime mode: compiler reference erasure is what removes this module
259
+ // from the graph, and the bundle gate is what proves it. This is the loud
260
+ // secondary failure for a reference erasure missed, and it lets Vite and
261
+ // webpack fold the body to a stub. The full `process.env` comparison is
262
+ // written out here on purpose: anything between it and the bundler (a helper,
263
+ // a const, a config read) makes it unfoldable.
264
+ if (process.env.TAMAGUI_RUNTIME === 'zero') {
265
+ throw new Error(
266
+ process.env.NODE_ENV !== 'production'
267
+ ? `[tamagui zero-runtime] createComponent ran in a zero-runtime graph. No Tamagui component renderer ships in this mode, so a component reference survived compilation. Fix the site or move the owning module to a declared full-runtime island.`
268
+ : '❌ Error 010'
269
+ )
270
+ }
271
+
251
272
  let config: TamaguiInternalConfig | null = null
273
+ let resolvedDefaultProps: Record<string, any> | undefined
274
+ let resolvedStyleRevision = -1
275
+ let resolvedStyleStaticConfig: StyleStaticConfig | undefined
252
276
 
253
277
  const { Component, isText, isHOC } = staticConfig
254
278
 
255
- const component = React.forwardRef<Ref, ComponentPropTypes>((propsIn, forwardedRef) => {
279
+ type ComponentType = TamaguiComponent<
280
+ ComponentPropTypes,
281
+ Ref,
282
+ BaseProps,
283
+ BaseStyles,
284
+ {}
285
+ >
286
+
287
+ let res: ComponentType
288
+
289
+ const { displayName } = staticConfig
290
+
291
+ const component = (propsInWithRef: ComponentPropTypes & { ref?: React.Ref<Ref> }) => {
256
292
  'use no memo'
257
293
 
294
+ // read the forwarded ref directly off the incoming props — do NOT clone the
295
+ // whole object every render just to strip `ref`. the original props object is
296
+ // passed straight through; `ref` is skipped in the getSplitStyles pass (so it
297
+ // never forwards onto the host) and the composed ref is assigned explicitly
298
+ // onto viewProps below.
299
+ const forwardedRef = propsInWithRef.ref
300
+ const propsIn = propsInWithRef as Omit<typeof propsInWithRef, 'ref'>
301
+
258
302
  config = config || getConfig()
259
303
 
304
+ const styleRevision = getConfigRevisionState(config).revision
305
+ if (resolvedStyleRevision !== styleRevision) {
306
+ resolvedStyleRevision = styleRevision
307
+ const nextStyleStaticConfig = getStyleStaticConfig(staticConfig, config)
308
+ resolvedStyleStaticConfig = nextStyleStaticConfig
309
+ resolvedDefaultProps = nextStyleStaticConfig.defaultProps
310
+ // the relative-position default is a style, so it joins the base layer
311
+ // under everything the call site writes
312
+ if (
313
+ isWeb &&
314
+ !staticConfig.isText &&
315
+ config.settings.defaultPosition === 'relative' &&
316
+ nextStyleStaticConfig.baseStyle?.position === undefined
317
+ ) {
318
+ resolvedStyleStaticConfig = {
319
+ ...nextStyleStaticConfig,
320
+ baseStyle: { position: 'relative', ...nextStyleStaticConfig.baseStyle },
321
+ }
322
+ }
323
+ }
324
+ const styleStaticConfig = resolvedStyleStaticConfig!
325
+ const styledContextKeys = styleStaticConfig.styledContextKeys
326
+
260
327
  const internalID = process.env.NODE_ENV === 'development' ? React.useId() : ''
261
328
 
262
329
  if (process.env.NODE_ENV === 'development') {
@@ -293,7 +360,7 @@ export function createComponent<
293
360
 
294
361
  // set variants through context
295
362
  // order is after default props but before props
296
- const { context, isReactNative } = staticConfig
363
+ const { context } = staticConfig
297
364
  const debugProp = propsIn['debug'] as DebugProp
298
365
 
299
366
  const styledContextValue: GenericProps | undefined = context
@@ -304,12 +371,12 @@ export function createComponent<
304
371
  const componentContext = React.useContext(ComponentContext)
305
372
  const hasTextAncestor = !!(isWeb && isText ? componentContext.inText : false)
306
373
 
307
- // On Android, skip RNGH GestureDetector inside native menus (zeego) and use
308
- // direct press events instead — GestureDetector consumes touches before they
309
- // reach MenuView's native handler, preventing the menu from opening
310
- // NativeMenuContext only affects Android RNGH press arbitration inside zeego
311
- // menus (see eventHandling.native.ts:182). isAndroid is constant for the whole
312
- // app run, so on iOS we skip this context read for every component — the branch
374
+ // on Android, skip RNGH GestureDetector inside native menus and use direct
375
+ // press events instead. GestureDetector consumes touches before they reach the
376
+ // native menu handler, preventing the menu from opening. NativeMenuContext only
377
+ // affects Android RNGH press arbitration inside native menus (see
378
+ // eventHandling.native.ts:182). isAndroid is constant for the whole app run,
379
+ // so on iOS we skip this context read for every component. the branch
313
380
  // never flips at runtime, so hook order stays stable (rules-of-hooks safe).
314
381
  const isInsideNativeMenu =
315
382
  process.env.TAMAGUI_TARGET === 'native' && isAndroid
@@ -337,14 +404,10 @@ export function createComponent<
337
404
  // order important so we do loops, you can't just spread because JS does weird things
338
405
  let props: ViewProps | TextProps = propsIn
339
406
 
340
- const componentName = props.componentName || staticConfig.componentName
341
-
342
407
  // merge both default props and styled context props - ensure order is preserved
343
- const defaultProps = getDefaultProps(staticConfig, props.componentName)
344
-
345
408
  // merge styled context props over defaults, ensure order is preserved
346
409
  const [nextProps, overrides] = mergeComponentProps(
347
- defaultProps,
410
+ resolvedDefaultProps,
348
411
  styledContextValue,
349
412
  propsIn
350
413
  )
@@ -396,7 +459,7 @@ export function createComponent<
396
459
  tooltip.style.fontSize = '12px'
397
460
  tooltip.style.lineHeight = '12px'
398
461
  tooltip.style.fontFamily = 'monospace'
399
- tooltip.innerText = `${componentName || ''} ${dataAt} ${dataIn}`.trim()
462
+ tooltip.innerText = `${displayName || ''} ${dataAt} ${dataIn}`.trim()
400
463
 
401
464
  overlay.appendChild(tooltip)
402
465
  node.appendChild(overlay)
@@ -412,34 +475,35 @@ export function createComponent<
412
475
  remove()
413
476
  debugKeyListeners?.delete(debugVisualizerHandler)
414
477
  }
415
- }, [componentName])
478
+ }, [displayName])
416
479
  }
417
480
 
418
481
  const groupContextParent = React.useContext(GroupContext)
419
482
 
420
483
  // Get animation driver - either from animatedBy prop lookup or context/config fallback
421
- const animationDriver = (() => {
484
+ const animationDriver: AnimationDriverLike | null = (() => {
422
485
  if (props.animatedBy && config) {
423
486
  // check animationDrivers for multi-driver config
424
487
  if (config.animationDrivers) {
425
488
  return (
426
- (config.animationDrivers as Record<string, any>)[props.animatedBy] ??
427
- config.animations
428
- )
489
+ props.animatedBy in config.animationDrivers
490
+ ? config.animationDrivers[props.animatedBy]
491
+ : config.animations
492
+ ) as AnimationDriverLike | null
429
493
  }
430
494
  // single driver config - only 'default' makes sense
431
- return props.animatedBy === 'default' ? config.animations : null
495
+ return props.animatedBy === 'default'
496
+ ? (config.animations as AnimationDriverLike)
497
+ : null
432
498
  }
433
- // fall back to context driver, then config.animations
434
- // resolveAnimationDriver validates it's a real driver (not a raw multi-driver object)
435
- return (
436
- resolveAnimationDriver(componentContext.animationDriver) ??
437
- resolveAnimationDriver(config?.animations) ??
438
- null
439
- )
499
+ return (componentContext.animationDriver ??
500
+ config?.animations ??
501
+ null) as AnimationDriverLike | null
440
502
  })()
441
503
 
442
- const useAnimations = animationDriver?.useAnimations as UseAnimationHook | undefined
504
+ const useAnimations = animationDriver?.isStub
505
+ ? undefined
506
+ : (animationDriver?.useAnimations as UseAnimationHook | undefined)
443
507
 
444
508
  const componentState = useComponentState(
445
509
  props,
@@ -450,10 +514,7 @@ export function createComponent<
450
514
 
451
515
  const {
452
516
  disabled,
453
- groupName,
454
517
  hasAnimationProp,
455
- hasEnterStyle,
456
- isAnimated,
457
518
  isExiting,
458
519
  isHydrated,
459
520
  presence,
@@ -464,13 +525,30 @@ export function createComponent<
464
525
  stateRef,
465
526
  inputStyle,
466
527
  outputStyle,
528
+ startedUnhydrated,
529
+ } = componentState
530
+ let { groupName } = componentState
531
+ let {
532
+ hasEnterStyle,
533
+ isAnimated,
467
534
  willBeAnimated,
468
535
  willBeAnimatedClient,
469
536
  platformPseudo,
470
- startedUnhydrated,
471
537
  } = componentState
472
538
 
473
- if (animationDriver?.avoidReRenders) {
539
+ // adopt the props object useComponentState resolved: on the enter/exit presence
540
+ // path it injects presence variants onto a fresh copy instead of mutating our
541
+ // input (which, with no clone above, would be React's own props object)
542
+ props = componentState.props as typeof props
543
+
544
+ // latch on first render: animationDriver derives from the per-render
545
+ // animatedBy prop, and the layout effect below is conditioned on
546
+ // avoidReRenders — letting it flip between renders would change the hook
547
+ // count mid-lifecycle (same latch pattern as hasAnimated in
548
+ // useComponentState). ??= keeps the first value: false stays false.
549
+ stateRef.current.avoidReRenders ??= !!animationDriver?.avoidReRenders
550
+
551
+ if (stateRef.current.avoidReRenders) {
474
552
  // post-commit reconciliation of `nextState` with the committed React state.
475
553
  // `nextState` is the source of truth for the fast `setStateShallow` path; it
476
554
  // must stay populated until React actually commits the corresponding update,
@@ -483,7 +561,7 @@ export function createComponent<
483
561
  // keeps the last-emitted snapshot latched across re-renders (so an unrelated
484
562
  // render doesn't snap a hovered style back to base), but a render can change
485
563
  // the styles that FEED the pseudo merge — e.g. a row becoming active removes
486
- // its hoverStyle while still hovered — and the stale snapshot would keep
564
+ // its hover clause while still hovered — and the stale snapshot would keep
487
565
  // painting over the new base (hover-beats-active-during-scrub).
488
566
  // `updateStyleListener` is rebuilt each render over fresh props/state and
489
567
  // reads `nextState || state`, so re-invoking it re-emits the correct merged
@@ -525,49 +603,6 @@ export function createComponent<
525
603
  })
526
604
  }, [platformPseudo, props.disabled])
527
605
 
528
- // create new context with groups, or else sublings will grab the same one
529
- const allGroupContexts = useMemo((): AllGroupContexts | null => {
530
- if (!groupName || props.passThrough) {
531
- return groupContextParent
532
- }
533
-
534
- const listeners = new Set<GroupStateListener>()
535
- stateRef.current.group?.listeners?.clear()
536
- stateRef.current.group = {
537
- listeners,
538
- emit(state) {
539
- listeners.forEach((l) => l(state))
540
- },
541
- subscribe(cb) {
542
- listeners.add(cb)
543
- if (listeners.size === 1) {
544
- setStateShallow({ hasDynGroupChildren: true })
545
- }
546
- return () => {
547
- listeners.delete(cb)
548
- if (listeners.size === 0) {
549
- setStateShallow({ hasDynGroupChildren: false })
550
- }
551
- }
552
- },
553
- }
554
-
555
- return {
556
- ...groupContextParent,
557
- [groupName]: {
558
- state: {
559
- pseudo: defaultComponentStateMounted,
560
- },
561
- subscribe: (listener) => {
562
- const dispose = stateRef.current.group?.subscribe(listener)
563
- return () => {
564
- dispose?.()
565
- }
566
- },
567
- },
568
- }
569
- }, [stateRef, groupName, groupContextParent])
570
-
571
606
  // if our animation driver supports avoidReRenders, we'll replace this below with
572
607
  // a version that essentially uses an internall emitter rather than setting state
573
608
  // but still stores the current state and applies if it it needs to during render
@@ -608,11 +643,9 @@ export function createComponent<
608
643
  if (process.env.NODE_ENV === 'development' && time) time`theme-props`
609
644
 
610
645
  const themeStateProps: UseThemeWithStateProps = {
611
- componentName,
612
646
  disable: disableTheme,
613
647
  shallow: props.themeShallow,
614
648
  debug: debugProp,
615
- unstyled: props.unstyled,
616
649
  }
617
650
 
618
651
  // this is set conditionally if existing in props because we wrap children with
@@ -620,19 +653,27 @@ export function createComponent<
620
653
  if ('theme' in props) {
621
654
  themeStateProps.name = props.theme
622
655
  }
623
- // Always set needsUpdate callback so it can check the ref's latest value
624
- // This ensures components with $theme-dark/$theme-light re-render on theme change
625
- // even when using raw colors (not tokens) since isListeningToTheme is set after useSplitStyles
626
- themeStateProps.needsUpdate = () => !!stateRef.current.isListeningToTheme
656
+ if (!stateRef.current.optimizeForFirstRender) {
657
+ // this ensures components with dark/light theme clauses re-render on
658
+ // theme change even when using raw colors (not tokens), since
659
+ // isListeningToTheme is set after useSplitStyles.
660
+ themeStateProps.needsUpdate =
661
+ stateRef.current.themeNeedsUpdate ||
662
+ (stateRef.current.themeNeedsUpdate = () => !!stateRef.current.isListeningToTheme)
663
+ }
627
664
  // on native we optimize theme changes if fastSchemeChange is enabled, otherwise deopt
628
665
  if (process.env.TAMAGUI_TARGET === 'native') {
629
666
  themeStateProps.deopt = willBeAnimated
667
+ // native fast path (experimental): stable proxy so the theme
668
+ // subscription can hand updates to the per-render styled updater
669
+ themeStateProps.nativeUpdate = stateRef.current.nativeUpdateProxy ||= (next) =>
670
+ stateRef.current.nativeStyleUpdate?.(next) ?? false
630
671
  }
631
672
 
632
673
  if (process.env.NODE_ENV === 'development') {
633
674
  if (debugProp && debugProp !== 'profile') {
634
675
  const name = `${
635
- componentName ||
676
+ displayName ||
636
677
  Component?.displayName ||
637
678
  Component?.name ||
638
679
  '[Unnamed Component]'
@@ -641,7 +682,6 @@ export function createComponent<
641
682
  const type =
642
683
  (hasEnterStyle ? '(hasEnter)' : ' ') +
643
684
  (isAnimated ? '(animated)' : ' ') +
644
- (isReactNative ? '(rnw)' : ' ') +
645
685
  (noClass ? '(noClass)' : ' ') +
646
686
  (state.press || state.pressIn ? '(PRESSED)' : ' ') +
647
687
  (state.hover ? '(HOVERED)' : ' ') +
@@ -669,7 +709,7 @@ export function createComponent<
669
709
 
670
710
  console.groupCollapsed(`${childLog} [inspect props, state, context 👇]`)
671
711
  log('props in:', propsIn)
672
- log('final props:', props, Object.keys(props))
712
+ log('final props:', props)
673
713
  log({ state, staticConfig, elementType, themeStateProps })
674
714
  log({
675
715
  context,
@@ -696,10 +736,16 @@ export function createComponent<
696
736
 
697
737
  if (process.env.NODE_ENV === 'development' && time) time`theme`
698
738
 
699
- elementType = element || elementType
739
+ // don't replace the animated driver component (set above) with the base element,
740
+ // the render string is forwarded to it via viewProps.render instead
741
+ if (!isAnimatedCustomComponent) {
742
+ elementType = element || elementType
743
+ }
700
744
  const isStringElement = typeof elementType === 'string'
701
745
 
702
- const mediaState = useMedia(componentContext, debugProp)
746
+ // stateRef.current is this instance's key into useMedia's per-component
747
+ // States map (setMediaShouldUpdate below writes under the same key)
748
+ const mediaState = useMedia(componentContext, debugProp, stateRef.current)
703
749
 
704
750
  setDidGetVariableValue(false)
705
751
 
@@ -719,6 +765,8 @@ export function createComponent<
719
765
  isExiting,
720
766
  isAnimated,
721
767
  willBeAnimated,
768
+ canPlatformPseudo: componentState.platformPseudo,
769
+ displayName,
722
770
  styledContext: styledContextValue,
723
771
  } as const
724
772
 
@@ -735,17 +783,249 @@ export function createComponent<
735
783
  styleProps,
736
784
  null,
737
785
  componentContext,
738
- allGroupContexts,
786
+ groupContextParent,
739
787
  elementType,
740
788
  startedUnhydrated,
741
789
  debugProp,
742
- animationDriver
790
+ animationDriver,
791
+ styleStaticConfig
792
+ )
793
+
794
+ const finalizedComponentState = componentState.finalizeStyleFlags(
795
+ !!splitStyles?.hasEnterStyle,
796
+ !!splitStyles?.platformPseudo
743
797
  )
798
+ hasEnterStyle = finalizedComponentState.hasEnterStyle
799
+ isAnimated = finalizedComponentState.isAnimated
800
+ willBeAnimated = finalizedComponentState.willBeAnimated
801
+ willBeAnimatedClient = finalizedComponentState.willBeAnimatedClient
802
+ platformPseudo = finalizedComponentState.platformPseudo
803
+
804
+ groupName = (splitStyles?.frontendGroup ?? groupName) as typeof groupName
805
+ const containerProp = splitStyles?.frontendContainer ?? props.container
806
+ const containerName =
807
+ (props.containerName as string | undefined) ||
808
+ (typeof containerProp === 'string' ? containerProp : undefined)
809
+ const containerType =
810
+ (splitStyles?.frontendContainerType as string | undefined) ||
811
+ (props.containerType as string | undefined) ||
812
+ (containerProp ? 'inline-size' : undefined)
813
+ const isContainer = !!containerType && containerType !== 'normal'
814
+
815
+ // create new context with groups, or else siblings will grab the same one
816
+ const allGroupContexts = useMemo((): AllGroupContexts | null => {
817
+ if ((!groupName && !isContainer) || props.passThrough) {
818
+ return groupContextParent
819
+ }
820
+
821
+ const listeners = new Set<GroupStateListener>()
822
+ stateRef.current.group?.listeners?.clear()
823
+ stateRef.current.group = {
824
+ listeners,
825
+ emit(state) {
826
+ listeners.forEach((l) => l(state))
827
+ },
828
+ subscribe(cb) {
829
+ listeners.add(cb)
830
+ if (listeners.size === 1) {
831
+ setStateShallow({ hasDynGroupChildren: true })
832
+ }
833
+ return () => {
834
+ listeners.delete(cb)
835
+ if (listeners.size === 0) {
836
+ setStateShallow({ hasDynGroupChildren: false })
837
+ }
838
+ }
839
+ },
840
+ }
841
+
842
+ // one entry object serves every key this component provides: the group
843
+ // name and the container keys share the same state and emitter
844
+ const entry: SingleGroupContext = {
845
+ state: {
846
+ pseudo: defaultComponentStateMounted,
847
+ },
848
+ subscribe: (listener) => {
849
+ const dispose = stateRef.current.group?.subscribe(listener)
850
+ return () => {
851
+ dispose?.()
852
+ }
853
+ },
854
+ }
855
+
856
+ const next: AllGroupContexts = { ...groupContextParent }
857
+ if (groupName) {
858
+ next[groupName] = entry
859
+ }
860
+ if (isContainer) {
861
+ // `@sm:` reads the nearest container of any name, so every container
862
+ // writes the `@` key; a named one also writes `@name`. group names
863
+ // cannot contain `@`, so the namespaces never collide
864
+ next['@'] = entry
865
+ if (containerName) {
866
+ next[`@${containerName}`] = entry
867
+ }
868
+ }
869
+ return next
870
+ }, [stateRef, groupName, containerName, isContainer, groupContextParent])
744
871
 
745
872
  const isPassthrough = !splitStyles
746
873
 
747
874
  // splitStyles === null === passThrough
748
875
 
876
+ // native fast path (experimental, plans/native-fast-path.md): eligible
877
+ // leaves commit theme-driven style updates straight to the native tree
878
+ // and skip the re-render. eligibility is re-evaluated every render; the
879
+ // pushed-state cache resets every render so no native state entry can
880
+ // outlive the props/state that produced it. repeated toggles between
881
+ // already-pushed themes are pure native (no style computation at all).
882
+ if (process.env.TAMAGUI_TARGET === 'native') {
883
+ const nativeEngine = getNativeStyleEngine()
884
+ const canNativeUpdate =
885
+ !!nativeEngine &&
886
+ !isPassthrough &&
887
+ !isHOC &&
888
+ !willBeAnimated &&
889
+ !groupName &&
890
+ !props.disableNativeStyle
891
+ stateRef.current.nativePushedStates = canNativeUpdate ? new Set() : undefined
892
+ // fresh render: the themeState captured below is current again, and the
893
+ // render itself commits this state's styles
894
+ stateRef.current.nativeThemeState = undefined
895
+ stateRef.current.nativeActiveState = canNativeUpdate ? themeState?.name : undefined
896
+
897
+ // push one state's full computed style. keys pushed earlier but absent
898
+ // from this style commit as null — reset-to-default, exactly what a real
899
+ // re-render's style diff does when a key disappears (media flip dropping
900
+ // a $sm style, a removed prop) — and the engine unsticks them from
901
+ // nativeProps_DEPRECATED so future React renders can set them again.
902
+ // nulled keys stay in nativePushedKeys: engine state tables retain them,
903
+ // so every later cold push must keep nulling until a value returns.
904
+ const pushViewState = canNativeUpdate
905
+ ? (stateName: string, style: Record<string, unknown>) => {
906
+ const sr = stateRef.current
907
+ const outProps = nativeEngine.processStyleColors(style)
908
+ if (sr.nativePushedKeys) {
909
+ for (const key of sr.nativePushedKeys) {
910
+ if (!(key in style)) outProps[key] = null
911
+ }
912
+ }
913
+ const keys = (sr.nativePushedKeys ||= new Set())
914
+ for (const key in outProps) keys.add(key)
915
+ sr.nativePushedStates!.add(stateName)
916
+ queueNativeViewState({
917
+ id: sr.nativeLink!.id,
918
+ state: stateName,
919
+ props: outProps,
920
+ })
921
+ }
922
+ : undefined
923
+
924
+ stateRef.current.nativeStyleUpdate = canNativeUpdate
925
+ ? (nextTheme) => {
926
+ const sr = stateRef.current
927
+ if (!sr.nativeLink || !nextTheme.theme) return false
928
+ sr.nativeThemeState = nextTheme
929
+
930
+ const stateName = nextTheme.name
931
+ // a cascade that resolves to the already-committed state (a
932
+ // pinned sub-theme under a toggling outer theme) changes nothing:
933
+ // a real re-render would commit identical styles, so skip both
934
+ // the push and the re-render
935
+ if (stateName === sr.nativeActiveState) return true
936
+ sr.nativeActiveState = stateName
937
+
938
+ if (sr.nativePushedStates!.has(stateName)) {
939
+ queueNativeViewState({ id: sr.nativeLink.id, state: stateName })
940
+ return true
941
+ }
942
+
943
+ const proxiedTheme = getThemeProxied(
944
+ themeStateProps,
945
+ nextTheme,
946
+ { current: null },
947
+ { current: null }
948
+ )
949
+ const nextStyles = getSplitStyles(
950
+ props,
951
+ staticConfig,
952
+ proxiedTheme,
953
+ stateName,
954
+ state,
955
+ // media may have changed since render: the captured
956
+ // styleProps.mediaState is a mount-time snapshot in
957
+ // first-render mode, so resolve against the live global
958
+ { ...styleProps, mediaState: getMedia() },
959
+ null,
960
+ componentContext,
961
+ allGroupContexts,
962
+ elementType,
963
+ startedUnhydrated,
964
+ debugProp,
965
+ animationDriver,
966
+ styleStaticConfig
967
+ )
968
+ if (!nextStyles?.style) return false
969
+
970
+ pushViewState!(stateName, nextStyles.style as Record<string, unknown>)
971
+ return true
972
+ }
973
+ : undefined
974
+
975
+ // a relevant media key flipped: every cached state entry was computed
976
+ // under the old media state, so the warm cache clears and the current
977
+ // theme recomputes cold (against the live global media, see above).
978
+ // one dimension change fires one update per configured media key and in
979
+ // first-render mode every subscriber passes the snapshot check each
980
+ // time, so coalesce to a single recompute per event turn — by which
981
+ // point every key has settled
982
+ stateRef.current.nativeMediaUpdate = canNativeUpdate
983
+ ? (onMiss) => {
984
+ const sr = stateRef.current
985
+ if (!sr.nativeLink) return false
986
+ if (!sr.nativeMediaQueued) {
987
+ sr.nativeMediaQueued = true
988
+ queueMicrotask(() => {
989
+ sr.nativeMediaQueued = false
990
+ if (!sr.nativeLink) return
991
+ sr.nativePushedStates!.clear()
992
+ // the same state name must recompute under the new media values
993
+ sr.nativeActiveState = undefined
994
+ if (!sr.nativeStyleUpdate!(sr.nativeThemeState || themeState)) {
995
+ // couldn't commit natively after all: fall back to the
996
+ // re-render this update path had skipped
997
+ onMiss?.()
998
+ }
999
+ })
1000
+ }
1001
+ return true
1002
+ }
1003
+ : undefined
1004
+
1005
+ // a real render supersedes everything pushed since: its style is the
1006
+ // truth React commits, and RN's nativeProps_DEPRECATED merge refreshes
1007
+ // shared keys from it. the one hazard is a previously-pushed key this
1008
+ // render dropped — RN's merge would resurrect the stale value — so
1009
+ // re-push the fresh style (with nulls for dropped keys) right behind
1010
+ // React's own commit.
1011
+ if (canNativeUpdate && stateRef.current.nativeLink) {
1012
+ const sr = stateRef.current
1013
+ const style = splitStyles.style as Record<string, unknown> | undefined
1014
+ if (style && sr.nativePushedKeys) {
1015
+ let dropped = false
1016
+ for (const key of sr.nativePushedKeys) {
1017
+ if (!(key in style)) {
1018
+ dropped = true
1019
+ break
1020
+ }
1021
+ }
1022
+ if (dropped) {
1023
+ pushViewState!(themeState?.name || '', style)
1024
+ }
1025
+ }
1026
+ }
1027
+ }
1028
+
749
1029
  // Merge style-resolved context overrides (issues #3670, #3676)
750
1030
  // When styles set values that are also context keys (from variants, pseudos, media, etc),
751
1031
  // we need to add them to overriddenContextProps so they propagate to children
@@ -766,7 +1046,9 @@ export function createComponent<
766
1046
  }
767
1047
  }
768
1048
 
769
- const groupContext = groupName ? allGroupContexts?.[groupName] || null : null
1049
+ // this component's own entry: same object under every key it provides
1050
+ const groupContext =
1051
+ groupName || isContainer ? allGroupContexts?.[groupName ?? '@'] || null : null
770
1052
 
771
1053
  // one tiny mutation 🙏 get width/height optimistically from raw values if possible
772
1054
  // if set hardcoded it avoids extra renders
@@ -774,7 +1056,7 @@ export function createComponent<
774
1056
  !isPassthrough &&
775
1057
  groupContext &&
776
1058
  // avoids onLayout if we don't need it
777
- props.containerType !== 'normal'
1059
+ isContainer
778
1060
  ) {
779
1061
  const groupState = groupContext?.state
780
1062
  if (groupState && groupState.layout === undefined) {
@@ -841,17 +1123,14 @@ export function createComponent<
841
1123
  elementType,
842
1124
  startedUnhydrated,
843
1125
  debugProp,
844
- animationDriver
1126
+ animationDriver,
1127
+ styleStaticConfig
845
1128
  )
846
1129
 
847
- // compute effective transition based on entering/exiting pseudo states
848
- const effectiveTransition = resolveEffectivePseudoTransition(
849
- stateRef.current.prevPseudoState,
850
- updatedState,
851
- nextStyles?.pseudoTransitions,
852
- // platform-pseudo with no declared transition = instant (CSS :hover semantics)
853
- props.transition ?? (platformPseudo ? '0ms' : undefined)
854
- )
1130
+ const effectiveTransition =
1131
+ nextStyles?.effectiveTransition ??
1132
+ props.transition ??
1133
+ (platformPseudo ? '0ms' : undefined)
855
1134
 
856
1135
  // update prev state for next comparison (includes group states)
857
1136
  stateRef.current.prevPseudoState = extractPseudoState(updatedState)
@@ -929,9 +1208,13 @@ export function createComponent<
929
1208
  }
930
1209
 
931
1210
  // one thing we have to handle here and where it gets a bit more complex is group styles
932
- const canAvoidReRender = Object.keys(next).every((key) =>
933
- avoidReRenderKeys.has(key)
934
- )
1211
+ let canAvoidReRender = true
1212
+ for (const key in next) {
1213
+ if (!avoidReRenderKeys.has(key)) {
1214
+ canAvoidReRender = false
1215
+ break
1216
+ }
1217
+ }
935
1218
 
936
1219
  const updatedState = {
937
1220
  ...prev,
@@ -945,7 +1228,7 @@ export function createComponent<
945
1228
  debugProp &&
946
1229
  debugProp !== 'profile'
947
1230
  ) {
948
- console.groupCollapsed(`[⚡️] avoid setState`, componentName, next, {
1231
+ console.groupCollapsed(`[⚡️] avoid setState`, displayName, next, {
949
1232
  updatedState,
950
1233
  props,
951
1234
  })
@@ -985,10 +1268,6 @@ export function createComponent<
985
1268
  splitStyles.style = splitStyles.style || {}
986
1269
  splitStyles.style.opacity = 0
987
1270
  }
988
-
989
- if (splitStyles.dynamicThemeAccess != null) {
990
- stateRef.current.isListeningToTheme = splitStyles.dynamicThemeAccess
991
- }
992
1271
  }
993
1272
 
994
1273
  // only listen for changes if we are using raw theme values or media space, or dynamic media (native)
@@ -1006,16 +1285,21 @@ export function createComponent<
1006
1285
  console.info(`useMedia() createComponent`, shouldListenForMedia, mediaListeningKeys)
1007
1286
  }
1008
1287
 
1009
- setMediaShouldUpdate(componentContext, shouldListenForMedia, mediaListeningKeys)
1288
+ setMediaShouldUpdate(
1289
+ stateRef.current,
1290
+ shouldListenForMedia,
1291
+ mediaListeningKeys,
1292
+ stateRef.current.optimizeForFirstRender
1293
+ )
1010
1294
 
1011
1295
  const {
1012
1296
  viewProps: viewPropsIn,
1013
- pseudos,
1014
1297
  style: splitStylesStyle,
1015
1298
  classNames,
1016
1299
  pseudoGroups,
1017
1300
  mediaGroups,
1018
1301
  } = splitStyles || {}
1302
+ const groupSetRevision = useGroupSetRevision(pseudoGroups, mediaGroups)
1019
1303
 
1020
1304
  const propsWithAnimation = props as UseAnimationProps
1021
1305
 
@@ -1036,7 +1320,7 @@ export function createComponent<
1036
1320
  onMouseLeave,
1037
1321
  onFocus,
1038
1322
  onBlur,
1039
- onDidAnimate,
1323
+ onTransition,
1040
1324
  separator,
1041
1325
  // ignore from here on out
1042
1326
  passThrough,
@@ -1047,8 +1331,7 @@ export function createComponent<
1047
1331
  ...nonTamaguiProps
1048
1332
  } = viewPropsIn || {}
1049
1333
 
1050
- // these can ultimately be for DOM, react-native-web views, or animated views
1051
- // so the type is pretty loose
1334
+ // these can ultimately be for DOM or custom animated views, so the type is loose
1052
1335
  let viewProps = nonTamaguiProps
1053
1336
 
1054
1337
  if (props.forceStyle) {
@@ -1062,6 +1345,23 @@ export function createComponent<
1062
1345
  if (typeof passThrough !== 'undefined') {
1063
1346
  viewProps.passThrough = passThrough
1064
1347
  }
1348
+ // an HOC only wraps another component - its inner render produces the real
1349
+ // styled frame that owns behavior (press handlers, aria/data-state). forward
1350
+ // asChild to that inner frame so IT becomes the slot boundary, instead of the
1351
+ // wrapper consuming asChild here and forwarding only its own (often
1352
+ // behavior-less) props. fixes asChild items whose interaction is injected
1353
+ // below the wrapper (e.g. ToggleGroup.Item asChild -> XGroup.Item -> Button).
1354
+ if (typeof asChild !== 'undefined') {
1355
+ viewProps.asChild = asChild
1356
+ }
1357
+ // an HOC layer doesn't animate itself (shouldUseAnimation is false for
1358
+ // isHOC); forward the animation lifecycle callback to the inner component
1359
+ // that does, so a user onTransition on a styled/HOC-wrapped animated
1360
+ // component (e.g. a skinned Dialog.Content) still reaches the driver and
1361
+ // composes with the component's own onTransition.
1362
+ if (typeof onTransition !== 'undefined') {
1363
+ viewProps.onTransition = onTransition
1364
+ }
1065
1365
  }
1066
1366
 
1067
1367
  // once you set animation prop don't remove it, you can set to undefined/false
@@ -1082,15 +1382,10 @@ export function createComponent<
1082
1382
  }
1083
1383
  : undefined
1084
1384
 
1085
- // compute effective transition once here (single source of truth)
1086
- // avoidReRenders path also computes this in updateStyleListener
1087
- const effectiveTransition = resolveEffectivePseudoTransition(
1088
- stateRef.current.prevPseudoState,
1089
- state,
1090
- splitStyles?.pseudoTransitions,
1091
- // platform-pseudo with no declared transition = instant (CSS :hover semantics)
1092
- props.transition ?? (platformPseudo ? '0ms' : undefined)
1093
- )
1385
+ const effectiveTransition =
1386
+ splitStyles?.effectiveTransition ??
1387
+ props.transition ??
1388
+ (platformPseudo ? '0ms' : undefined)
1094
1389
 
1095
1390
  // add effectiveTransition to splitStyles for drivers to consume
1096
1391
  if (splitStyles) {
@@ -1106,7 +1401,6 @@ export function createComponent<
1106
1401
  // clone style to prevent animation driver mutations from leaking to viewProps
1107
1402
  // during SSR/pre-hydration (CSS driver mutates style.transition in place)
1108
1403
  style: isHydrated ? splitStylesStyle || {} : { ...splitStylesStyle },
1109
- // @ts-ignore
1110
1404
  styleState: splitStyles,
1111
1405
  useStyleEmitter,
1112
1406
  presence,
@@ -1114,10 +1408,9 @@ export function createComponent<
1114
1408
  styleProps,
1115
1409
  theme,
1116
1410
  themeName,
1117
- pseudos: pseudos || null,
1118
1411
  staticConfig,
1119
1412
  stateRef,
1120
- onDidAnimate,
1413
+ onTransition,
1121
1414
  })
1122
1415
 
1123
1416
  if (animations) {
@@ -1138,9 +1431,13 @@ export function createComponent<
1138
1431
  if (process.env.NODE_ENV === 'development' && time) time`animations`
1139
1432
  }
1140
1433
 
1141
- if (process.env.NODE_ENV === 'development' && props.untilMeasured && !props.group) {
1434
+ if (isWeb && isExiting) {
1435
+ viewProps.className = `t_exiting ${viewProps.className || ''}`
1436
+ }
1437
+
1438
+ if (process.env.NODE_ENV === 'development' && props.untilMeasured && !isContainer) {
1142
1439
  console.warn(
1143
- `You set the untilMeasured prop without setting group. This doesn't work, be sure to set untilMeasured on the parent that sets group, not the children that use the $group- prop.\n\nIf you meant to do this, you can disable this warning - either change untilMeasured and group at the same time, or do group={conditional ? 'name' : undefined}`
1440
+ `You set untilMeasured without establishing a container. Set it on the parent with container or container="name", not on the child using a container clause.`
1144
1441
  )
1145
1442
  }
1146
1443
 
@@ -1149,7 +1446,7 @@ export function createComponent<
1149
1446
  if (
1150
1447
  !isPassthrough &&
1151
1448
  groupContext && // avoids onLayout if we don't need it
1152
- props.containerType !== 'normal'
1449
+ isContainer
1153
1450
  ) {
1154
1451
  nonTamaguiProps.onLayout = composeEventHandlers(
1155
1452
  nonTamaguiProps.onLayout,
@@ -1178,10 +1475,24 @@ export function createComponent<
1178
1475
  stateRef.current.willHydrate
1179
1476
  ) || nonTamaguiProps
1180
1477
 
1478
+ // the composed ref keeps one identity for the life of the component so react
1479
+ // never detaches and reattaches the host mid-life. that means it can't close
1480
+ // over forwardedRef, which would pin the first render's ref forever - read it
1481
+ // off stateRef instead, and record what it actually attached to so a swapped
1482
+ // ref can be handed the host below (#4031)
1483
+ stateRef.current.composedForwardedRef = forwardedRef
1484
+
1181
1485
  if (!stateRef.current.composedRef) {
1182
1486
  stateRef.current.composedRef = composeRefs<TamaguiElement>(
1183
- (x) => (stateRef.current.host = x as TamaguiElement),
1184
- forwardedRef,
1487
+ (x) => {
1488
+ stateRef.current.host = x as TamaguiElement
1489
+ if (process.env.TAMAGUI_TARGET === 'native') {
1490
+ updateNativeStyleLink(stateRef.current, x)
1491
+ }
1492
+ const current = stateRef.current.composedForwardedRef
1493
+ stateRef.current.attachedForwardedRef = x ? current : undefined
1494
+ setRef<TamaguiElement>(current, x as TamaguiElement)
1495
+ },
1185
1496
  setElementProps,
1186
1497
  animatedRef
1187
1498
  )
@@ -1189,16 +1500,43 @@ export function createComponent<
1189
1500
 
1190
1501
  viewProps.ref = stateRef.current.composedRef
1191
1502
 
1503
+ if (
1504
+ process.env.TAMAGUI_TARGET === 'native' &&
1505
+ onClick !== undefined &&
1506
+ staticConfig.neverSkipProps?.onClick
1507
+ ) {
1508
+ // native has no click of its own: a component that declares onClick as its
1509
+ // own prop (the DOM primitives, which build the payload from a press)
1510
+ // receives it untouched, rather than through the web press path below
1511
+ viewProps.onClick = onClick
1512
+ }
1513
+
1514
+ // react only re-runs a ref callback when its identity changes, and ours never
1515
+ // does, so hand the host over by hand when a parent swaps the forwarded ref -
1516
+ // react-hook-form re-registering a field after reset() is the common case.
1517
+ // the comparison reads what the ref callback attached, never a value written
1518
+ // during render: a render-phase "previous" pointer reads back its own write
1519
+ // on react's second pass and the handover silently no-ops under StrictMode
1520
+ useIsomorphicLayoutEffect(() => {
1521
+ const attached = stateRef.current.attachedForwardedRef
1522
+ if (attached === forwardedRef) return
1523
+ if (attached) setRef<TamaguiElement | null>(attached, null)
1524
+ stateRef.current.attachedForwardedRef = forwardedRef
1525
+ if (stateRef.current.host) {
1526
+ setRef<TamaguiElement>(forwardedRef, stateRef.current.host)
1527
+ }
1528
+ }, [forwardedRef])
1529
+
1192
1530
  // handle pointer events (native: maps to touch events, web: no-op)
1193
1531
  usePointerEvents(props, viewProps)
1194
1532
 
1195
1533
  if (process.env.NODE_ENV === 'development') {
1196
- if (!isReactNative && !isText && isWeb && !isHOC) {
1534
+ if (!isText && isWeb && !isHOC) {
1197
1535
  React.Children.toArray(props.children).forEach((item) => {
1198
1536
  // allow newlines because why not its annoying with mdx
1199
1537
  if (typeof item === 'string' && item !== '\n') {
1200
1538
  console.error(
1201
- `Unexpected text node: ${item}. A text node cannot be a child of a <${staticConfig.componentName || propsIn.tag || 'View'}>.`,
1539
+ `Unexpected text node: ${item}. A text node cannot be a child of a <${displayName || propsIn.tag || 'View'}>.`,
1202
1540
  props
1203
1541
  )
1204
1542
  }
@@ -1237,7 +1575,7 @@ export function createComponent<
1237
1575
  }
1238
1576
 
1239
1577
  // Animation enter state machine: true -> 'should-enter' -> false
1240
- // Stage 1: Set 'should-enter' synchronously before paint to apply enterStyle classes
1578
+ // Stage 1: Set 'should-enter' synchronously before paint to apply enter clauses
1241
1579
  // Stage 2: After browser paint, set false to trigger CSS transition
1242
1580
  //
1243
1581
  // CRITICAL: useEffect does NOT guarantee post-paint execution!
@@ -1251,7 +1589,7 @@ export function createComponent<
1251
1589
  }
1252
1590
 
1253
1591
  if (state.unmounted) {
1254
- // For CSS transitions, we need browser to paint enterStyle before removing it.
1592
+ // For CSS transitions, the browser must paint enter clauses before removing them.
1255
1593
  // Double RAF guarantees paint: first RAF schedules after current frame,
1256
1594
  // second RAF schedules after that frame completes (including paint).
1257
1595
  if (inputStyle === 'css') {
@@ -1270,30 +1608,53 @@ export function createComponent<
1270
1608
  // Non-CSS drivers handle their own animation timing
1271
1609
  setStateShallow({ unmounted: false })
1272
1610
  }
1611
+ }, [state.unmounted, inputStyle])
1273
1612
 
1613
+ // unmount-only cleanup. this must NOT live on the enter effect above: that
1614
+ // effect re-runs on every unmounted transition (true -> 'should-enter' ->
1615
+ // false), and a cleanup returned there ran mid-lifecycle — dropping the
1616
+ // mediaEmit listener right after mount for value-input avoidReRenders
1617
+ // drivers, with no re-registration (render only registers while
1618
+ // mediaEmitCleanup is unset), so media styles silently stopped applying
1619
+ useIsomorphicLayoutEffect(() => {
1274
1620
  return () => {
1275
1621
  componentSetStates.delete(setState)
1276
1622
  stateRef.current.mediaEmitCleanup?.()
1623
+ // clear so a render after a simulated unmount (StrictMode dev) can re-register
1624
+ stateRef.current.mediaEmitCleanup = undefined
1277
1625
  }
1278
- }, [state.unmounted, inputStyle])
1626
+ }, [])
1279
1627
 
1280
1628
  useIsomorphicLayoutEffect(() => {
1281
- if (disabled) return
1629
+ let disposeSafeArea: (() => void) | undefined
1630
+ if (splitStyles?.usesSafeArea) {
1631
+ const updateSafeArea = () => {
1632
+ setState((previous) => ({ ...previous }))
1633
+ }
1634
+ disposeSafeArea = subscribeToSafeArea(updateSafeArea)
1635
+ // close the render-to-subscribe race: the provider tracker may have
1636
+ // published new insets after this component evaluated its styles.
1637
+ if (process.env.TAMAGUI_TARGET === 'native') {
1638
+ updateSafeArea()
1639
+ }
1640
+ }
1641
+
1642
+ if (disabled) return disposeSafeArea
1282
1643
 
1283
- if (!pseudoGroups && !mediaGroups) return
1284
- if (!allGroupContexts) return
1285
- return subscribeToContextGroup({
1644
+ if (!pseudoGroups && !mediaGroups) return disposeSafeArea
1645
+ if (!allGroupContexts) return disposeSafeArea
1646
+ const disposeGroup = subscribeToContextGroup({
1286
1647
  groupContext: allGroupContexts,
1287
1648
  setStateShallow,
1288
1649
  mediaGroups,
1289
1650
  pseudoGroups,
1290
1651
  })
1291
- }, [
1292
- allGroupContexts,
1293
- disabled,
1294
- pseudoGroups ? objectIdentityKey(pseudoGroups) : 0,
1295
- mediaGroups ? objectIdentityKey(mediaGroups) : 0,
1296
- ])
1652
+ if (!disposeSafeArea) return disposeGroup
1653
+ return () => {
1654
+ disposeSafeArea()
1655
+ disposeGroup?.()
1656
+ }
1657
+ }, [allGroupContexts, disabled, splitStyles?.usesSafeArea, groupSetRevision])
1297
1658
 
1298
1659
  const groupEmitter = stateRef.current.group
1299
1660
  useIsomorphicLayoutEffect(() => {
@@ -1304,9 +1665,14 @@ export function createComponent<
1304
1665
 
1305
1666
  // if its a group its gotta listen for pseudos to emit them to children
1306
1667
 
1307
- const runtimePressStyle = !disabled && noClass && pseudos?.pressStyle
1308
- const runtimeFocusStyle = !disabled && noClass && pseudos?.focusStyle
1309
- const runtimeFocusVisibleStyle = !disabled && noClass && pseudos?.focusVisibleStyle
1668
+ // native flat-value clauses surface the interaction states they reference
1669
+ // so the component attaches the matching events.
1670
+ const conditionalStates = !disabled ? splitStyles?.programStates : undefined
1671
+
1672
+ const runtimePressStyle =
1673
+ !disabled && (conditionalStates?.has('press') || conditionalStates?.has('active'))
1674
+ const runtimeFocusStyle = !disabled && conditionalStates?.has('focus')
1675
+ const runtimeFocusVisibleStyle = !disabled && conditionalStates?.has('focus-visible')
1310
1676
 
1311
1677
  const attachFocus = Boolean(
1312
1678
  runtimePressStyle ||
@@ -1328,11 +1694,11 @@ export function createComponent<
1328
1694
  onMouseDown ||
1329
1695
  onMouseUp ||
1330
1696
  onLongPress ||
1331
- onClick ||
1332
- pseudos?.focusVisibleStyle
1697
+ // only web routes onClick through the press path (see onPress below)
1698
+ (process.env.TAMAGUI_TARGET === 'web' && onClick)
1333
1699
  )
1334
1700
 
1335
- const runtimeHoverStyle = !disabled && noClass && pseudos?.hoverStyle
1701
+ const runtimeHoverStyle = !disabled && conditionalStates?.has('hover')
1336
1702
  // with a platform pseudo driver the hover STATE is driver-sourced; only keep
1337
1703
  // the JS hover listeners when something else needs them (dynamic group
1338
1704
  // children, or the user's own onMouseEnter/Leave handlers below).
@@ -1372,7 +1738,6 @@ export function createComponent<
1372
1738
  attachHover,
1373
1739
  shouldAttach,
1374
1740
  needsHoverState,
1375
- pseudos,
1376
1741
  })
1377
1742
  }
1378
1743
 
@@ -1439,7 +1804,7 @@ export function createComponent<
1439
1804
  // @ts-ignore
1440
1805
  onClick?.(e)
1441
1806
  // matches RN pressable behavior - only when an explicit press
1442
- // handler is set, so pressStyle alone doesn't swallow clicks
1807
+ // handler is set, so a press clause alone doesn't swallow clicks
1443
1808
  if (onPress || onClick) {
1444
1809
  e.stopPropagation()
1445
1810
  }
@@ -1465,7 +1830,7 @@ export function createComponent<
1465
1830
  componentContext.setParentFocusState({ focusWithin: true })
1466
1831
  next.focusWithin = true
1467
1832
  }
1468
- if (pseudos?.focusVisibleStyle) {
1833
+ if (conditionalStates?.has('focus-visible')) {
1469
1834
  if (lastInteractionWasKeyboard.value) {
1470
1835
  next.focusVisible = true
1471
1836
  } else {
@@ -1501,12 +1866,11 @@ export function createComponent<
1501
1866
  delayLongPress: viewProps.delayLongPress,
1502
1867
  delayPressIn: viewProps.delayPressIn,
1503
1868
  delayPressOut: viewProps.delayPressOut,
1504
- focusable: viewProps.focusable ?? true,
1505
1869
  minPressDuration: 0,
1506
1870
  })
1507
1871
  }
1508
1872
 
1509
- if (process.env.TAMAGUI_TARGET === 'web' && events && !isReactNative) {
1873
+ if (process.env.TAMAGUI_TARGET === 'web' && events) {
1510
1874
  Object.assign(viewProps, getWebEvents(events))
1511
1875
  }
1512
1876
 
@@ -1516,42 +1880,43 @@ export function createComponent<
1516
1880
  log(`events`, { events, attachHover, attachPress })
1517
1881
  }
1518
1882
 
1519
- const propsWithHref = props as typeof props & { href?: unknown }
1520
- const propsInWithHref = propsIn as typeof propsIn & { href?: unknown }
1521
-
1522
- const pressDebugDetail =
1523
- props.testID ??
1524
- propsIn.testID ??
1525
- props.accessibilityLabel ??
1526
- propsIn.accessibilityLabel ??
1527
- (typeof propsWithHref.href === 'string' ? propsWithHref.href : null) ??
1528
- (typeof propsInWithHref.href === 'string' ? propsInWithHref.href : null)
1529
-
1530
- const pressDebugName =
1531
- [componentName, pressDebugDetail].filter(Boolean).join(':') || null
1532
-
1533
1883
  // EVENTS native - handles focus/blur, input special cases, and RNGH press handling
1534
1884
  // Skip gesture setup for HOC components - they may return null which crashes GestureDetector
1535
1885
  // hasRealPressEvents distinguishes user-provided handlers from events.onPress
1536
- // synthesized for pressStyle alone — only the former should claim the responder.
1537
- const hasRealPressEvents = !!(onPress || onPressIn || onPressOut || onLongPress)
1538
- const pressGesture =
1539
- process.env.TAMAGUI_TARGET === 'native'
1540
- ? useEvents(
1541
- events,
1542
- viewProps,
1543
- stateRef,
1544
- staticConfig,
1545
- isHOC,
1546
- isInsideNativeMenu,
1547
- pressDebugName,
1548
- hasRealPressEvents
1549
- )
1550
- : null
1886
+ // synthesized for press clauses alone — only the former should claim the responder.
1887
+ let hasRealPressEvents = false
1888
+ let pressGesture: ReturnType<typeof useEvents> = null
1889
+ if (process.env.TAMAGUI_TARGET === 'native') {
1890
+ const propsWithHref = props as typeof props & { href?: unknown }
1891
+ const propsInWithHref = propsIn as typeof propsIn & { href?: unknown }
1892
+ const pressDebugDetail =
1893
+ props.testID ??
1894
+ propsIn.testID ??
1895
+ props.accessibilityLabel ??
1896
+ propsIn.accessibilityLabel ??
1897
+ (typeof propsWithHref.href === 'string' ? propsWithHref.href : null) ??
1898
+ (typeof propsInWithHref.href === 'string' ? propsInWithHref.href : null)
1899
+ const pressDebugName = displayName
1900
+ ? pressDebugDetail
1901
+ ? `${displayName}:${pressDebugDetail}`
1902
+ : displayName
1903
+ : pressDebugDetail || null
1904
+ hasRealPressEvents = !!(onPress || onPressIn || onPressOut || onLongPress)
1905
+ pressGesture = useEvents(
1906
+ events,
1907
+ viewProps,
1908
+ stateRef,
1909
+ staticConfig,
1910
+ isHOC,
1911
+ isInsideNativeMenu,
1912
+ pressDebugName,
1913
+ hasRealPressEvents
1914
+ )
1915
+ }
1551
1916
 
1552
1917
  if (process.env.NODE_ENV === 'development' && time) time`hooks`
1553
1918
 
1554
- if (asChild) {
1919
+ if (asChild && !isHOC) {
1555
1920
  elementType = Slot
1556
1921
  // on native this is already merged into viewProps in useEvents
1557
1922
  if (process.env.TAMAGUI_TARGET === 'web') {
@@ -1566,6 +1931,8 @@ export function createComponent<
1566
1931
  onMouseDown,
1567
1932
  onMouseEnter,
1568
1933
  onMouseLeave,
1934
+ onFocus,
1935
+ onBlur,
1569
1936
  },
1570
1937
  webStyleEvents
1571
1938
  )
@@ -1579,6 +1946,14 @@ export function createComponent<
1579
1946
 
1580
1947
  let content: ReactNode | undefined
1581
1948
 
1949
+ // ONLY native: useChildren reads TextAncestor context (a hook), so it must
1950
+ // run on every render — passthrough included — or toggling passThrough
1951
+ // (Adapt/Popover flip it per breakpoint) would change the hook count
1952
+ // mid-lifecycle. it returns undefined for passthrough.
1953
+ const childrenFromHooks = hooks.useChildren
1954
+ ? hooks.useChildren(elementType, children, viewProps, isPassthrough)
1955
+ : undefined
1956
+
1582
1957
  if (isPassthrough) {
1583
1958
  // avoid re-parenting but avoid layout changes
1584
1959
  content = React.createElement(
@@ -1592,9 +1967,8 @@ export function createComponent<
1592
1967
  )
1593
1968
  } else {
1594
1969
  // here elementType is either the custom animated driver view, or base view
1595
- if (hooks.useChildren) {
1596
- // ONLY native:
1597
- content = hooks.useChildren(elementType, content || children, viewProps)
1970
+ if (childrenFromHooks) {
1971
+ content = childrenFromHooks
1598
1972
  }
1599
1973
 
1600
1974
  const isRenderPropString = typeof renderProp === 'string'
@@ -1610,14 +1984,28 @@ export function createComponent<
1610
1984
  )
1611
1985
  if (out) {
1612
1986
  viewProps = out.viewProps
1613
- elementType = out.elementType
1987
+ if (
1988
+ isAnimatedCustomComponent &&
1989
+ (elementType as any)['acceptRenderProp'] &&
1990
+ typeof out.elementType === 'string'
1991
+ ) {
1992
+ // an animated driver view is active and owns the (possibly array)
1993
+ // style; forward the render tag so the view renders the element
1994
+ // itself (see acceptRenderProp) instead of us swapping in a raw DOM
1995
+ // tag, which would leak the animated style array onto a plain element
1996
+ // (React DOM throws setting an array on a CSSStyleDeclaration).
1997
+ viewProps.render = out.elementType
1998
+ } else {
1999
+ elementType = out.elementType
2000
+ }
1614
2001
  }
1615
2002
  }
1616
2003
 
1617
2004
  if (!content) {
1618
- // web-only, handle render === string passing to custom animated component
1619
- if (isRenderPropString) {
1620
- viewProps.render === renderProp
2005
+ // web-only, forward render string to custom animated driver components
2006
+ // (they render the tag themselves, see acceptRenderProp in drivers)
2007
+ if (isRenderPropString && elementType['acceptRenderProp']) {
2008
+ viewProps.render = renderProp
1621
2009
  }
1622
2010
 
1623
2011
  content = React.createElement(elementType, viewProps, content || children)
@@ -1642,7 +2030,9 @@ export function createComponent<
1642
2030
 
1643
2031
  // needs to reset the presence state for nested children
1644
2032
  // Use the resolved animationDriver (handles multi-driver config)
1645
- const ResetPresence = animationDriver?.ResetPresence
2033
+ const ResetPresence = animationDriver?.isStub
2034
+ ? undefined
2035
+ : animationDriver?.ResetPresence
1646
2036
  const needsReset = Boolean(
1647
2037
  // not when passing down to child
1648
2038
  !asChild &&
@@ -1666,7 +2056,7 @@ export function createComponent<
1666
2056
 
1667
2057
  if (process.env.NODE_ENV === 'development' && time) time`create-element`
1668
2058
 
1669
- if ('focusWithinStyle' in propsIn || pseudos?.focusWithinStyle) {
2059
+ if (conditionalStates?.has('focus-within')) {
1670
2060
  content = (
1671
2061
  <ComponentContext.Provider
1672
2062
  {...componentContext}
@@ -1677,7 +2067,10 @@ export function createComponent<
1677
2067
  )
1678
2068
  }
1679
2069
 
1680
- if ('group' in props) {
2070
+ // containers provide the same context channel groups do. Mount the
2071
+ // provider whenever the resolved component establishes either capability
2072
+ // so descendant clauses can subscribe.
2073
+ if (groupName || isContainer) {
1681
2074
  content = (
1682
2075
  <GroupContext.Provider value={allGroupContexts}>{content}</GroupContext.Provider>
1683
2076
  )
@@ -1701,19 +2094,6 @@ export function createComponent<
1701
2094
 
1702
2095
  if (process.env.NODE_ENV === 'development' && time) time`themed-children`
1703
2096
 
1704
- if (process.env.TAMAGUI_TARGET === 'web') {
1705
- if (isReactNative && !asChild) {
1706
- content = (
1707
- <span
1708
- className="_dsp_contents"
1709
- {...(!isPassthrough && isHydrated && events && getWebEvents(events))}
1710
- >
1711
- {content}
1712
- </span>
1713
- )
1714
- }
1715
- }
1716
-
1717
2097
  if (overriddenContextProps && contextForOverride) {
1718
2098
  const Provider = contextForOverride.Provider!
1719
2099
 
@@ -1735,7 +2115,12 @@ export function createComponent<
1735
2115
 
1736
2116
  // SSR style support - for non compiled styles we render them inline until client takes over
1737
2117
  // on client we then switch over to our global sheet insert, because rendering inline is expensive
1738
- if (process.env.TAMAGUI_TARGET === 'web' && startedUnhydrated && splitStyles) {
2118
+ if (
2119
+ !process.env.TAMAGUI_DID_OUTPUT_CSS &&
2120
+ process.env.TAMAGUI_TARGET === 'web' &&
2121
+ startedUnhydrated &&
2122
+ splitStyles
2123
+ ) {
1739
2124
  content = (
1740
2125
  <>
1741
2126
  {content}
@@ -1780,7 +2165,6 @@ export function createComponent<
1780
2165
  hasRuntimeMediaKeys,
1781
2166
  isStringElement,
1782
2167
  mediaListeningKeys,
1783
- pseudos,
1784
2168
  shouldAttach,
1785
2169
  noClass,
1786
2170
  shouldListenForMedia,
@@ -1802,9 +2186,6 @@ export function createComponent<
1802
2186
  console.groupEnd()
1803
2187
  }
1804
2188
  }
1805
- if (debugProp === 'break') {
1806
- // debugger intentionally here for debugging
1807
- }
1808
2189
  }
1809
2190
  }
1810
2191
 
@@ -1821,7 +2202,7 @@ export function createComponent<
1821
2202
  }
1822
2203
 
1823
2204
  return content
1824
- })
2205
+ }
1825
2206
 
1826
2207
  function notifyGroupSubscribers(
1827
2208
  groupContext: SingleGroupContext | null,
@@ -1865,19 +2246,7 @@ export function createComponent<
1865
2246
 
1866
2247
  // let hasLogged = false
1867
2248
 
1868
- if (staticConfig.componentName) {
1869
- component.displayName = staticConfig.componentName
1870
- }
1871
-
1872
- type ComponentType = TamaguiComponent<
1873
- ComponentPropTypes,
1874
- Ref,
1875
- BaseProps,
1876
- BaseStyles,
1877
- {}
1878
- >
1879
-
1880
- let res: ComponentType = component as any
2249
+ res = component as any
1881
2250
 
1882
2251
  // we now have avoid re-renders in many more cases so imo this is way more worth it
1883
2252
  // Text/Button/string taking components
@@ -1886,36 +2255,29 @@ export function createComponent<
1886
2255
 
1887
2256
  res.staticConfig = staticConfig
1888
2257
 
1889
- function extendStyledConfig(extended?: Partial<StaticConfig>) {
1890
- return {
2258
+ // `.resolve` chains a component resolver (complete props + env -> style
2259
+ // fragment) by returning a NEW component with the resolver appended
2260
+ res.resolve = (resolver: any) => {
2261
+ const next: any = createComponent({
1891
2262
  ...staticConfig,
1892
- ...extended,
1893
- neverFlatten: true,
1894
- isHOC: true,
1895
- isStyledHOC: false,
2263
+ resolvers: staticConfig.resolvers
2264
+ ? [...staticConfig.resolvers, resolver]
2265
+ : [resolver],
2266
+ })
2267
+ // carry over statics assigned after creation (styled() copies parent
2268
+ // statics onto the finished component)
2269
+ for (const key in res) {
2270
+ if (key === 'propTypes' || key in next) continue
2271
+ next[key] = (res as any)[key]
1896
2272
  }
2273
+ return next
1897
2274
  }
1898
2275
 
1899
- function styleable(Component: any, options?: StyleableOptions) {
1900
- const skipForwardRef = typeof Component === 'function' && Component.length === 1
1901
-
1902
- let out = skipForwardRef ? Component : React.forwardRef(Component)
1903
-
1904
- const extendedConfig = extendStyledConfig(options?.staticConfig)
1905
-
1906
- out = options?.disableTheme ? out : themeable(out, extendedConfig, true)
1907
-
1908
- if (extendedConfig.memo || process.env.TAMAGUI_MEMOIZE_STYLEABLE) {
1909
- out = React.memo(out)
1910
- }
1911
-
1912
- out.staticConfig = extendedConfig
1913
- out.styleable = styleable
1914
- return out
2276
+ if (displayName) {
2277
+ res.displayName = displayName
2278
+ ;(res as any)[componentDisplayName] = displayName
1915
2279
  }
1916
2280
 
1917
- res.styleable = styleable
1918
-
1919
2281
  return res
1920
2282
  }
1921
2283