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