@tamagui/web 3.0.0-beta.669.1 → 3.0.0-beta.719.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 (841) hide show
  1. package/dist/cjs/Tamagui.cjs +0 -1
  2. package/dist/cjs/Tamagui.native.cjs +0 -1
  3. package/dist/cjs/Tamagui.native.js +0 -1
  4. package/dist/cjs/Tamagui.native.js.map +1 -1
  5. package/dist/cjs/_withNativeStyle.cjs +0 -1
  6. package/dist/cjs/_withNativeStyle.native.cjs +0 -1
  7. package/dist/cjs/_withNativeStyle.native.js +0 -1
  8. package/dist/cjs/_withNativeStyle.native.js.map +1 -1
  9. package/dist/cjs/_withStableStyle.cjs +0 -1
  10. package/dist/cjs/_withStableStyle.native.cjs +0 -1
  11. package/dist/cjs/_withStableStyle.native.js +0 -1
  12. package/dist/cjs/_withStableStyle.native.js.map +1 -1
  13. package/dist/cjs/config.cjs +7 -1
  14. package/dist/cjs/config.native.cjs +7 -1
  15. package/dist/cjs/config.native.js +7 -1
  16. package/dist/cjs/config.native.js.map +1 -1
  17. package/dist/cjs/constants/accessibilityDirectMap.cjs +0 -1
  18. package/dist/cjs/constants/accessibilityDirectMap.native.cjs +0 -1
  19. package/dist/cjs/constants/accessibilityDirectMap.native.js +0 -1
  20. package/dist/cjs/constants/accessibilityDirectMap.native.js.map +1 -1
  21. package/dist/cjs/constants/constants.cjs +0 -1
  22. package/dist/cjs/constants/constants.native.cjs +0 -1
  23. package/dist/cjs/constants/constants.native.js +0 -1
  24. package/dist/cjs/constants/constants.native.js.map +1 -1
  25. package/dist/cjs/constants/isDevTools.cjs +0 -1
  26. package/dist/cjs/constants/isDevTools.native.cjs +0 -1
  27. package/dist/cjs/constants/isDevTools.native.js +0 -1
  28. package/dist/cjs/constants/isDevTools.native.js.map +1 -1
  29. package/dist/cjs/contexts/ComponentContext.cjs +0 -1
  30. package/dist/cjs/contexts/ComponentContext.native.cjs +0 -1
  31. package/dist/cjs/contexts/ComponentContext.native.js +0 -1
  32. package/dist/cjs/contexts/ComponentContext.native.js.map +1 -1
  33. package/dist/cjs/contexts/GroupContext.cjs +0 -1
  34. package/dist/cjs/contexts/GroupContext.native.cjs +0 -1
  35. package/dist/cjs/contexts/GroupContext.native.js +0 -1
  36. package/dist/cjs/contexts/GroupContext.native.js.map +1 -1
  37. package/dist/cjs/createComponent.cjs +1 -2
  38. package/dist/cjs/createComponent.native.cjs +1 -2
  39. package/dist/cjs/createComponent.native.js +1 -2
  40. package/dist/cjs/createComponent.native.js.map +1 -1
  41. package/dist/cjs/createFont.cjs +0 -1
  42. package/dist/cjs/createFont.native.cjs +0 -1
  43. package/dist/cjs/createFont.native.js +0 -1
  44. package/dist/cjs/createFont.native.js.map +1 -1
  45. package/dist/cjs/createShorthands.cjs +0 -1
  46. package/dist/cjs/createShorthands.native.cjs +0 -1
  47. package/dist/cjs/createShorthands.native.js +0 -1
  48. package/dist/cjs/createShorthands.native.js.map +1 -1
  49. package/dist/cjs/createStyledHOC.cjs +0 -1
  50. package/dist/cjs/createStyledHOC.native.cjs +0 -1
  51. package/dist/cjs/createStyledHOC.native.js +0 -1
  52. package/dist/cjs/createStyledHOC.native.js.map +1 -1
  53. package/dist/cjs/createTamagui.cjs +3 -4
  54. package/dist/cjs/createTamagui.native.cjs +3 -4
  55. package/dist/cjs/createTamagui.native.js +3 -4
  56. package/dist/cjs/createTamagui.native.js.map +1 -1
  57. package/dist/cjs/createTokens.cjs +0 -1
  58. package/dist/cjs/createTokens.native.cjs +0 -1
  59. package/dist/cjs/createTokens.native.js +0 -1
  60. package/dist/cjs/createTokens.native.js.map +1 -1
  61. package/dist/cjs/createVariable.cjs +0 -1
  62. package/dist/cjs/createVariable.native.cjs +0 -1
  63. package/dist/cjs/createVariable.native.js +0 -1
  64. package/dist/cjs/createVariable.native.js.map +1 -1
  65. package/dist/cjs/createVariables.cjs +0 -1
  66. package/dist/cjs/createVariables.native.cjs +0 -1
  67. package/dist/cjs/createVariables.native.js +0 -1
  68. package/dist/cjs/createVariables.native.js.map +1 -1
  69. package/dist/cjs/defaultComponentState.cjs +0 -1
  70. package/dist/cjs/defaultComponentState.native.cjs +0 -1
  71. package/dist/cjs/defaultComponentState.native.js +0 -1
  72. package/dist/cjs/defaultComponentState.native.js.map +1 -1
  73. package/dist/cjs/dom/adapters.cjs +0 -1
  74. package/dist/cjs/dom/adapters.native.cjs +0 -1
  75. package/dist/cjs/dom/adapters.native.js +0 -1
  76. package/dist/cjs/dom/adapters.native.js.map +1 -1
  77. package/dist/cjs/dom/contract.cjs +0 -1
  78. package/dist/cjs/dom/contract.native.cjs +0 -1
  79. package/dist/cjs/dom/contract.native.js +0 -1
  80. package/dist/cjs/dom/contract.native.js.map +1 -1
  81. package/dist/cjs/dom/domEventProps.native.cjs +0 -1
  82. package/dist/cjs/dom/domEventProps.native.js +0 -1
  83. package/dist/cjs/dom/domEventProps.native.js.map +1 -1
  84. package/dist/cjs/dom/html.cjs +0 -1
  85. package/dist/cjs/dom/html.native.cjs +0 -1
  86. package/dist/cjs/dom/html.native.js +0 -1
  87. package/dist/cjs/dom/html.native.js.map +1 -1
  88. package/dist/cjs/dom/htmlRuntime.native.cjs +0 -1
  89. package/dist/cjs/dom/htmlRuntime.native.js +0 -1
  90. package/dist/cjs/dom/htmlRuntime.native.js.map +1 -1
  91. package/dist/cjs/dom/index.cjs +0 -1
  92. package/dist/cjs/dom/index.native.cjs +0 -1
  93. package/dist/cjs/dom/index.native.js +0 -1
  94. package/dist/cjs/dom/index.native.js.map +1 -1
  95. package/dist/cjs/dom/primitives.native.cjs +2 -3
  96. package/dist/cjs/dom/primitives.native.js +2 -3
  97. package/dist/cjs/dom/primitives.native.js.map +1 -1
  98. package/dist/cjs/dom/standalone.cjs +0 -1
  99. package/dist/cjs/dom/standalone.native.cjs +0 -1
  100. package/dist/cjs/dom/standalone.native.js +0 -1
  101. package/dist/cjs/dom/standalone.native.js.map +1 -1
  102. package/dist/cjs/dom/standaloneHtml.cjs +0 -1
  103. package/dist/cjs/dom/standaloneHtml.native.cjs +0 -1
  104. package/dist/cjs/dom/standaloneHtml.native.js +0 -1
  105. package/dist/cjs/dom/standaloneHtml.native.js.map +1 -1
  106. package/dist/cjs/dom/styleTypes.cjs +0 -1
  107. package/dist/cjs/dom/styleTypes.native.cjs +0 -1
  108. package/dist/cjs/dom/styleTypes.native.js +0 -1
  109. package/dist/cjs/dom/styleTypes.native.js.map +1 -1
  110. package/dist/cjs/eventDetails.cjs +0 -1
  111. package/dist/cjs/eventDetails.native.cjs +0 -1
  112. package/dist/cjs/eventDetails.native.js +0 -1
  113. package/dist/cjs/eventDetails.native.js.map +1 -1
  114. package/dist/cjs/eventHandling.cjs +0 -1
  115. package/dist/cjs/eventHandling.native.cjs +0 -1
  116. package/dist/cjs/eventHandling.native.js +0 -1
  117. package/dist/cjs/eventHandling.native.js.map +1 -1
  118. package/dist/cjs/helpers/componentDisplayName.cjs +0 -1
  119. package/dist/cjs/helpers/componentDisplayName.native.cjs +0 -1
  120. package/dist/cjs/helpers/componentDisplayName.native.js +0 -1
  121. package/dist/cjs/helpers/componentDisplayName.native.js.map +1 -1
  122. package/dist/cjs/helpers/configVariables.cjs +79 -0
  123. package/dist/cjs/helpers/configVariables.native.cjs +86 -0
  124. package/dist/cjs/helpers/configVariables.native.js +88 -0
  125. package/dist/cjs/helpers/configVariables.native.js.map +1 -0
  126. package/dist/cjs/helpers/consoleLog.native.cjs +0 -1
  127. package/dist/cjs/helpers/consoleLog.native.js +0 -1
  128. package/dist/cjs/helpers/consoleLog.native.js.map +1 -1
  129. package/dist/cjs/helpers/createDesignSystem.cjs +0 -1
  130. package/dist/cjs/helpers/createDesignSystem.native.cjs +0 -1
  131. package/dist/cjs/helpers/createDesignSystem.native.js +0 -1
  132. package/dist/cjs/helpers/createDesignSystem.native.js.map +1 -1
  133. package/dist/cjs/helpers/createStyledContext.cjs +0 -1
  134. package/dist/cjs/helpers/createStyledContext.native.cjs +0 -1
  135. package/dist/cjs/helpers/createStyledContext.native.js +0 -1
  136. package/dist/cjs/helpers/createStyledContext.native.js.map +1 -1
  137. package/dist/cjs/helpers/defaultAnimationDriver.cjs +1 -6
  138. package/dist/cjs/helpers/defaultAnimationDriver.native.cjs +0 -13
  139. package/dist/cjs/helpers/defaultAnimationDriver.native.js +0 -13
  140. package/dist/cjs/helpers/defaultAnimationDriver.native.js.map +1 -1
  141. package/dist/cjs/helpers/defaultOffset.cjs +0 -1
  142. package/dist/cjs/helpers/defaultOffset.native.cjs +0 -1
  143. package/dist/cjs/helpers/defaultOffset.native.js +0 -1
  144. package/dist/cjs/helpers/defaultOffset.native.js.map +1 -1
  145. package/dist/cjs/helpers/directStyle.cjs +258 -284
  146. package/dist/cjs/helpers/directStyle.native.cjs +274 -306
  147. package/dist/cjs/helpers/directStyle.native.js +274 -306
  148. package/dist/cjs/helpers/directStyle.native.js.map +1 -1
  149. package/dist/cjs/helpers/expandStyle.cjs +0 -1
  150. package/dist/cjs/helpers/expandStyle.native.cjs +0 -1
  151. package/dist/cjs/helpers/expandStyle.native.js +0 -1
  152. package/dist/cjs/helpers/expandStyle.native.js.map +1 -1
  153. package/dist/cjs/helpers/expandStyles.cjs +0 -1
  154. package/dist/cjs/helpers/expandStyles.native.cjs +0 -1
  155. package/dist/cjs/helpers/expandStyles.native.js +0 -1
  156. package/dist/cjs/helpers/expandStyles.native.js.map +1 -1
  157. package/dist/cjs/helpers/extractPseudoState.cjs +0 -1
  158. package/dist/cjs/helpers/extractPseudoState.native.cjs +0 -1
  159. package/dist/cjs/helpers/extractPseudoState.native.js +0 -1
  160. package/dist/cjs/helpers/extractPseudoState.native.js.map +1 -1
  161. package/dist/cjs/helpers/formatDiagnostic.cjs +0 -1
  162. package/dist/cjs/helpers/formatDiagnostic.native.cjs +0 -1
  163. package/dist/cjs/helpers/formatDiagnostic.native.js +0 -1
  164. package/dist/cjs/helpers/formatDiagnostic.native.js.map +1 -1
  165. package/dist/cjs/helpers/frontendProgram.cjs +0 -1
  166. package/dist/cjs/helpers/frontendProgram.native.cjs +0 -1
  167. package/dist/cjs/helpers/frontendProgram.native.js +0 -1
  168. package/dist/cjs/helpers/frontendProgram.native.js.map +1 -1
  169. package/dist/cjs/helpers/getCSSStylesAtomic.cjs +5 -2
  170. package/dist/cjs/helpers/getCSSStylesAtomic.native.cjs +0 -1
  171. package/dist/cjs/helpers/getCSSStylesAtomic.native.js +0 -1
  172. package/dist/cjs/helpers/getCSSStylesAtomic.native.js.map +1 -1
  173. package/dist/cjs/helpers/getDefaultProps.cjs +0 -1
  174. package/dist/cjs/helpers/getDefaultProps.native.cjs +0 -1
  175. package/dist/cjs/helpers/getDefaultProps.native.js +0 -1
  176. package/dist/cjs/helpers/getDefaultProps.native.js.map +1 -1
  177. package/dist/cjs/helpers/getDynamicVal.cjs +0 -1
  178. package/dist/cjs/helpers/getDynamicVal.native.cjs +0 -1
  179. package/dist/cjs/helpers/getDynamicVal.native.js +0 -1
  180. package/dist/cjs/helpers/getDynamicVal.native.js.map +1 -1
  181. package/dist/cjs/helpers/getExpandedShorthands.cjs +0 -1
  182. package/dist/cjs/helpers/getExpandedShorthands.native.cjs +0 -1
  183. package/dist/cjs/helpers/getExpandedShorthands.native.js +0 -1
  184. package/dist/cjs/helpers/getExpandedShorthands.native.js.map +1 -1
  185. package/dist/cjs/helpers/getFontLanguage.cjs +0 -1
  186. package/dist/cjs/helpers/getFontLanguage.native.cjs +0 -1
  187. package/dist/cjs/helpers/getFontLanguage.native.js +0 -1
  188. package/dist/cjs/helpers/getFontLanguage.native.js.map +1 -1
  189. package/dist/cjs/helpers/getShorthandValue.cjs +0 -1
  190. package/dist/cjs/helpers/getShorthandValue.native.cjs +0 -1
  191. package/dist/cjs/helpers/getShorthandValue.native.js +0 -1
  192. package/dist/cjs/helpers/getShorthandValue.native.js.map +1 -1
  193. package/dist/cjs/helpers/getSplitStyles.cjs +2 -10
  194. package/dist/cjs/helpers/getSplitStyles.native.cjs +2 -10
  195. package/dist/cjs/helpers/getSplitStyles.native.js +2 -10
  196. package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
  197. package/dist/cjs/helpers/getThemeCSSRules.cjs +0 -1
  198. package/dist/cjs/helpers/getThemeCSSRules.native.cjs +0 -1
  199. package/dist/cjs/helpers/getThemeCSSRules.native.js +0 -1
  200. package/dist/cjs/helpers/getThemeCSSRules.native.js.map +1 -1
  201. package/dist/cjs/helpers/getVariantExtras.cjs +0 -1
  202. package/dist/cjs/helpers/getVariantExtras.native.cjs +0 -1
  203. package/dist/cjs/helpers/getVariantExtras.native.js +0 -1
  204. package/dist/cjs/helpers/getVariantExtras.native.js.map +1 -1
  205. package/dist/cjs/helpers/grammarConfig.cjs +63 -14
  206. package/dist/cjs/helpers/grammarConfig.native.cjs +84 -18
  207. package/dist/cjs/helpers/grammarConfig.native.js +84 -18
  208. package/dist/cjs/helpers/grammarConfig.native.js.map +1 -1
  209. package/dist/cjs/helpers/insertStyleRule.cjs +0 -1
  210. package/dist/cjs/helpers/insertStyleRule.native.cjs +0 -1
  211. package/dist/cjs/helpers/insertStyleRule.native.js +0 -1
  212. package/dist/cjs/helpers/insertStyleRule.native.js.map +1 -1
  213. package/dist/cjs/helpers/isObj.cjs +0 -1
  214. package/dist/cjs/helpers/isObj.native.cjs +0 -1
  215. package/dist/cjs/helpers/isObj.native.js +0 -1
  216. package/dist/cjs/helpers/isObj.native.js.map +1 -1
  217. package/dist/cjs/helpers/isTamaguiComponent.cjs +0 -1
  218. package/dist/cjs/helpers/isTamaguiComponent.native.cjs +0 -1
  219. package/dist/cjs/helpers/isTamaguiComponent.native.js +0 -1
  220. package/dist/cjs/helpers/isTamaguiComponent.native.js.map +1 -1
  221. package/dist/cjs/helpers/isTamaguiElement.cjs +0 -1
  222. package/dist/cjs/helpers/isTamaguiElement.native.cjs +0 -1
  223. package/dist/cjs/helpers/isTamaguiElement.native.js +0 -1
  224. package/dist/cjs/helpers/isTamaguiElement.native.js.map +1 -1
  225. package/dist/cjs/helpers/log.cjs +0 -1
  226. package/dist/cjs/helpers/log.native.cjs +0 -1
  227. package/dist/cjs/helpers/log.native.js +0 -1
  228. package/dist/cjs/helpers/log.native.js.map +1 -1
  229. package/dist/cjs/helpers/mainThreadPressEvents.cjs +0 -1
  230. package/dist/cjs/helpers/mainThreadPressEvents.native.cjs +0 -1
  231. package/dist/cjs/helpers/mainThreadPressEvents.native.js +0 -1
  232. package/dist/cjs/helpers/mainThreadPressEvents.native.js.map +1 -1
  233. package/dist/cjs/helpers/matchMedia.cjs +0 -1
  234. package/dist/cjs/helpers/matchMedia.native.cjs +0 -1
  235. package/dist/cjs/helpers/matchMedia.native.js +0 -1
  236. package/dist/cjs/helpers/matchMedia.native.js.map +1 -1
  237. package/dist/cjs/helpers/mediaObjectToString.cjs +0 -1
  238. package/dist/cjs/helpers/mediaObjectToString.native.cjs +0 -1
  239. package/dist/cjs/helpers/mediaObjectToString.native.js +0 -1
  240. package/dist/cjs/helpers/mediaObjectToString.native.js.map +1 -1
  241. package/dist/cjs/helpers/mediaState.cjs +0 -1
  242. package/dist/cjs/helpers/mediaState.native.cjs +0 -1
  243. package/dist/cjs/helpers/mediaState.native.js +0 -1
  244. package/dist/cjs/helpers/mediaState.native.js.map +1 -1
  245. package/dist/cjs/helpers/mergeProps.cjs +0 -1
  246. package/dist/cjs/helpers/mergeProps.native.cjs +0 -1
  247. package/dist/cjs/helpers/mergeProps.native.js +0 -1
  248. package/dist/cjs/helpers/mergeProps.native.js.map +1 -1
  249. package/dist/cjs/helpers/mergeRenderElementProps.cjs +0 -1
  250. package/dist/cjs/helpers/mergeRenderElementProps.native.cjs +0 -1
  251. package/dist/cjs/helpers/mergeRenderElementProps.native.js +0 -1
  252. package/dist/cjs/helpers/mergeRenderElementProps.native.js.map +1 -1
  253. package/dist/cjs/helpers/mergeSlotStyleProps.cjs +0 -1
  254. package/dist/cjs/helpers/mergeSlotStyleProps.native.cjs +0 -1
  255. package/dist/cjs/helpers/mergeSlotStyleProps.native.js +0 -1
  256. package/dist/cjs/helpers/mergeSlotStyleProps.native.js.map +1 -1
  257. package/dist/cjs/helpers/mergeVariants.cjs +1 -2
  258. package/dist/cjs/helpers/mergeVariants.native.cjs +1 -2
  259. package/dist/cjs/helpers/mergeVariants.native.js +1 -2
  260. package/dist/cjs/helpers/mergeVariants.native.js.map +1 -1
  261. package/dist/cjs/helpers/nativeOnlyProps.cjs +0 -1
  262. package/dist/cjs/helpers/nativeOnlyProps.native.cjs +0 -1
  263. package/dist/cjs/helpers/nativeOnlyProps.native.js +0 -1
  264. package/dist/cjs/helpers/nativeOnlyProps.native.js.map +1 -1
  265. package/dist/cjs/helpers/nativeStyleEngine.cjs +0 -1
  266. package/dist/cjs/helpers/nativeStyleEngine.native.cjs +0 -1
  267. package/dist/cjs/helpers/nativeStyleEngine.native.js +0 -1
  268. package/dist/cjs/helpers/nativeStyleEngine.native.js.map +1 -1
  269. package/dist/cjs/helpers/nativeTransitionTarget.cjs +0 -1
  270. package/dist/cjs/helpers/nativeTransitionTarget.native.cjs +0 -1
  271. package/dist/cjs/helpers/nativeTransitionTarget.native.js +0 -1
  272. package/dist/cjs/helpers/nativeTransitionTarget.native.js.map +1 -1
  273. package/dist/cjs/helpers/normalizeColor.cjs +0 -1
  274. package/dist/cjs/helpers/normalizeColor.native.cjs +0 -1
  275. package/dist/cjs/helpers/normalizeColor.native.js +0 -1
  276. package/dist/cjs/helpers/normalizeColor.native.js.map +1 -1
  277. package/dist/cjs/helpers/normalizeShadow.cjs +0 -1
  278. package/dist/cjs/helpers/normalizeShadow.native.cjs +0 -1
  279. package/dist/cjs/helpers/normalizeShadow.native.js +0 -1
  280. package/dist/cjs/helpers/normalizeShadow.native.js.map +1 -1
  281. package/dist/cjs/helpers/normalizeStyle.cjs +0 -1
  282. package/dist/cjs/helpers/normalizeStyle.native.cjs +0 -1
  283. package/dist/cjs/helpers/normalizeStyle.native.js +0 -1
  284. package/dist/cjs/helpers/normalizeStyle.native.js.map +1 -1
  285. package/dist/cjs/helpers/normalizeStylePropKeys.cjs +0 -1
  286. package/dist/cjs/helpers/normalizeStylePropKeys.native.cjs +0 -1
  287. package/dist/cjs/helpers/normalizeStylePropKeys.native.js +0 -1
  288. package/dist/cjs/helpers/normalizeStylePropKeys.native.js.map +1 -1
  289. package/dist/cjs/helpers/normalizeValueWithProperty.cjs +0 -1
  290. package/dist/cjs/helpers/normalizeValueWithProperty.native.cjs +0 -1
  291. package/dist/cjs/helpers/normalizeValueWithProperty.native.js +0 -1
  292. package/dist/cjs/helpers/normalizeValueWithProperty.native.js.map +1 -1
  293. package/dist/cjs/helpers/noteOnce.cjs +0 -1
  294. package/dist/cjs/helpers/noteOnce.native.cjs +0 -1
  295. package/dist/cjs/helpers/noteOnce.native.js +0 -1
  296. package/dist/cjs/helpers/noteOnce.native.js.map +1 -1
  297. package/dist/cjs/helpers/objectIdentityKey.cjs +0 -1
  298. package/dist/cjs/helpers/objectIdentityKey.native.cjs +0 -1
  299. package/dist/cjs/helpers/objectIdentityKey.native.js +0 -1
  300. package/dist/cjs/helpers/objectIdentityKey.native.js.map +1 -1
  301. package/dist/cjs/helpers/parseBorderShorthand.cjs +0 -1
  302. package/dist/cjs/helpers/parseBorderShorthand.native.cjs +0 -1
  303. package/dist/cjs/helpers/parseBorderShorthand.native.js +0 -1
  304. package/dist/cjs/helpers/parseBorderShorthand.native.js.map +1 -1
  305. package/dist/cjs/helpers/parseNativeStyle.native.cjs +0 -1
  306. package/dist/cjs/helpers/parseNativeStyle.native.js +0 -1
  307. package/dist/cjs/helpers/parseNativeStyle.native.js.map +1 -1
  308. package/dist/cjs/helpers/parseNativeTransform.native.cjs +0 -1
  309. package/dist/cjs/helpers/parseNativeTransform.native.js +0 -1
  310. package/dist/cjs/helpers/parseNativeTransform.native.js.map +1 -1
  311. package/dist/cjs/helpers/parseOutlineShorthand.cjs +0 -1
  312. package/dist/cjs/helpers/parseOutlineShorthand.native.cjs +0 -1
  313. package/dist/cjs/helpers/parseOutlineShorthand.native.js +0 -1
  314. package/dist/cjs/helpers/parseOutlineShorthand.native.js.map +1 -1
  315. package/dist/cjs/helpers/pointerEvents.cjs +0 -1
  316. package/dist/cjs/helpers/pointerEvents.native.cjs +0 -1
  317. package/dist/cjs/helpers/pointerEvents.native.js +0 -1
  318. package/dist/cjs/helpers/pointerEvents.native.js.map +1 -1
  319. package/dist/cjs/helpers/propMapper.cjs +30 -39
  320. package/dist/cjs/helpers/propMapper.native.cjs +30 -39
  321. package/dist/cjs/helpers/propMapper.native.js +30 -39
  322. package/dist/cjs/helpers/propMapper.native.js.map +1 -1
  323. package/dist/cjs/helpers/proxyThemeToParents.cjs +0 -1
  324. package/dist/cjs/helpers/proxyThemeToParents.native.cjs +0 -1
  325. package/dist/cjs/helpers/proxyThemeToParents.native.js +0 -1
  326. package/dist/cjs/helpers/proxyThemeToParents.native.js.map +1 -1
  327. package/dist/cjs/helpers/registerCSSVariable.cjs +0 -1
  328. package/dist/cjs/helpers/registerCSSVariable.native.cjs +0 -1
  329. package/dist/cjs/helpers/registerCSSVariable.native.js +0 -1
  330. package/dist/cjs/helpers/registerCSSVariable.native.js.map +1 -1
  331. package/dist/cjs/helpers/resolveAnimationDriver.cjs +0 -1
  332. package/dist/cjs/helpers/resolveAnimationDriver.native.cjs +0 -1
  333. package/dist/cjs/helpers/resolveAnimationDriver.native.js +0 -1
  334. package/dist/cjs/helpers/resolveAnimationDriver.native.js.map +1 -1
  335. package/dist/cjs/helpers/resolveRem.cjs +0 -1
  336. package/dist/cjs/helpers/resolveRem.native.cjs +0 -1
  337. package/dist/cjs/helpers/resolveRem.native.js +0 -1
  338. package/dist/cjs/helpers/resolveRem.native.js.map +1 -1
  339. package/dist/cjs/helpers/resolveSafeArea.cjs +0 -1
  340. package/dist/cjs/helpers/resolveSafeArea.native.cjs +0 -1
  341. package/dist/cjs/helpers/resolveSafeArea.native.js +0 -1
  342. package/dist/cjs/helpers/resolveSafeArea.native.js.map +1 -1
  343. package/dist/cjs/helpers/resolveSafeAreaVariable.cjs +0 -1
  344. package/dist/cjs/helpers/resolveSafeAreaVariable.native.cjs +0 -1
  345. package/dist/cjs/helpers/resolveSafeAreaVariable.native.js +0 -1
  346. package/dist/cjs/helpers/resolveSafeAreaVariable.native.js.map +1 -1
  347. package/dist/cjs/helpers/resolveVariableValue.cjs +0 -1
  348. package/dist/cjs/helpers/resolveVariableValue.native.cjs +0 -1
  349. package/dist/cjs/helpers/resolveVariableValue.native.js +0 -1
  350. package/dist/cjs/helpers/resolveVariableValue.native.js.map +1 -1
  351. package/dist/cjs/helpers/setElementProps.cjs +0 -1
  352. package/dist/cjs/helpers/setElementProps.native.cjs +0 -1
  353. package/dist/cjs/helpers/setElementProps.native.js +0 -1
  354. package/dist/cjs/helpers/setElementProps.native.js.map +1 -1
  355. package/dist/cjs/helpers/skipProps.cjs +0 -1
  356. package/dist/cjs/helpers/skipProps.native.cjs +0 -1
  357. package/dist/cjs/helpers/skipProps.native.js +0 -1
  358. package/dist/cjs/helpers/skipProps.native.js.map +1 -1
  359. package/dist/cjs/helpers/sortString.cjs +0 -1
  360. package/dist/cjs/helpers/sortString.native.cjs +0 -1
  361. package/dist/cjs/helpers/sortString.native.js +0 -1
  362. package/dist/cjs/helpers/sortString.native.js.map +1 -1
  363. package/dist/cjs/helpers/styleFrontend.cjs +0 -1
  364. package/dist/cjs/helpers/styleFrontend.native.cjs +0 -1
  365. package/dist/cjs/helpers/styleFrontend.native.js +0 -1
  366. package/dist/cjs/helpers/styleFrontend.native.js.map +1 -1
  367. package/dist/cjs/helpers/styleOriginalValues.cjs +0 -1
  368. package/dist/cjs/helpers/styleOriginalValues.native.cjs +0 -1
  369. package/dist/cjs/helpers/styleOriginalValues.native.js +0 -1
  370. package/dist/cjs/helpers/styleOriginalValues.native.js.map +1 -1
  371. package/dist/cjs/helpers/styleProvenance.cjs +0 -1
  372. package/dist/cjs/helpers/styleProvenance.native.cjs +0 -1
  373. package/dist/cjs/helpers/styleProvenance.native.js +0 -1
  374. package/dist/cjs/helpers/styleProvenance.native.js.map +1 -1
  375. package/dist/cjs/helpers/subscribeToContextGroup.cjs +0 -1
  376. package/dist/cjs/helpers/subscribeToContextGroup.native.cjs +0 -1
  377. package/dist/cjs/helpers/subscribeToContextGroup.native.js +0 -1
  378. package/dist/cjs/helpers/subscribeToContextGroup.native.js.map +1 -1
  379. package/dist/cjs/helpers/themeRef.cjs +0 -1
  380. package/dist/cjs/helpers/themeRef.native.cjs +0 -1
  381. package/dist/cjs/helpers/themeRef.native.js +0 -1
  382. package/dist/cjs/helpers/themeRef.native.js.map +1 -1
  383. package/dist/cjs/helpers/themeUpdateState.cjs +24 -0
  384. package/dist/cjs/helpers/themeUpdateState.native.cjs +26 -0
  385. package/dist/cjs/helpers/themeUpdateState.native.js +28 -0
  386. package/dist/cjs/helpers/themeUpdateState.native.js.map +1 -0
  387. package/dist/cjs/helpers/themeable.cjs +0 -1
  388. package/dist/cjs/helpers/themeable.native.cjs +0 -1
  389. package/dist/cjs/helpers/themeable.native.js +0 -1
  390. package/dist/cjs/helpers/themeable.native.js.map +1 -1
  391. package/dist/cjs/helpers/themes.cjs +0 -1
  392. package/dist/cjs/helpers/themes.native.cjs +0 -1
  393. package/dist/cjs/helpers/themes.native.js +0 -1
  394. package/dist/cjs/helpers/themes.native.js.map +1 -1
  395. package/dist/cjs/helpers/timer.cjs +0 -1
  396. package/dist/cjs/helpers/timer.native.cjs +0 -1
  397. package/dist/cjs/helpers/timer.native.js +0 -1
  398. package/dist/cjs/helpers/timer.native.js.map +1 -1
  399. package/dist/cjs/helpers/tokenCategories.cjs +0 -1
  400. package/dist/cjs/helpers/tokenCategories.native.cjs +0 -1
  401. package/dist/cjs/helpers/tokenCategories.native.js +0 -1
  402. package/dist/cjs/helpers/tokenCategories.native.js.map +1 -1
  403. package/dist/cjs/helpers/transformsToString.cjs +0 -1
  404. package/dist/cjs/helpers/transformsToString.native.cjs +0 -1
  405. package/dist/cjs/helpers/transformsToString.native.js +0 -1
  406. package/dist/cjs/helpers/transformsToString.native.js.map +1 -1
  407. package/dist/cjs/helpers/useRenderElement.cjs +0 -1
  408. package/dist/cjs/helpers/useRenderElement.native.cjs +0 -1
  409. package/dist/cjs/helpers/useRenderElement.native.js +0 -1
  410. package/dist/cjs/helpers/useRenderElement.native.js.map +1 -1
  411. package/dist/cjs/helpers/variableValue.cjs +66 -0
  412. package/dist/cjs/helpers/variableValue.native.cjs +88 -0
  413. package/dist/cjs/helpers/variableValue.native.js +90 -0
  414. package/dist/cjs/helpers/variableValue.native.js.map +1 -0
  415. package/dist/cjs/helpers/variables.cjs +95 -139
  416. package/dist/cjs/helpers/variables.native.cjs +97 -161
  417. package/dist/cjs/helpers/variables.native.js +97 -161
  418. package/dist/cjs/helpers/variables.native.js.map +1 -1
  419. package/dist/cjs/helpers/warnOnce.cjs +1 -2
  420. package/dist/cjs/helpers/warnOnce.native.cjs +1 -2
  421. package/dist/cjs/helpers/warnOnce.native.js +1 -2
  422. package/dist/cjs/helpers/warnOnce.native.js.map +1 -1
  423. package/dist/cjs/helpers/webPropsToSkip.cjs +0 -1
  424. package/dist/cjs/helpers/webPropsToSkip.native.cjs +0 -1
  425. package/dist/cjs/helpers/webPropsToSkip.native.js +0 -1
  426. package/dist/cjs/helpers/webPropsToSkip.native.js.map +1 -1
  427. package/dist/cjs/helpers/wrapStyleTags.cjs +0 -1
  428. package/dist/cjs/helpers/wrapStyleTags.native.cjs +0 -1
  429. package/dist/cjs/helpers/wrapStyleTags.native.js +0 -1
  430. package/dist/cjs/helpers/wrapStyleTags.native.js.map +1 -1
  431. package/dist/cjs/hooks/doesRootSchemeMatchSystem.cjs +0 -1
  432. package/dist/cjs/hooks/doesRootSchemeMatchSystem.native.cjs +0 -1
  433. package/dist/cjs/hooks/doesRootSchemeMatchSystem.native.js +0 -1
  434. package/dist/cjs/hooks/doesRootSchemeMatchSystem.native.js.map +1 -1
  435. package/dist/cjs/hooks/getThemeProxied.cjs +1 -2
  436. package/dist/cjs/hooks/getThemeProxied.native.cjs +2 -3
  437. package/dist/cjs/hooks/getThemeProxied.native.js +2 -3
  438. package/dist/cjs/hooks/getThemeProxied.native.js.map +1 -1
  439. package/dist/cjs/hooks/isOptimizedForFirstRender.cjs +0 -1
  440. package/dist/cjs/hooks/isOptimizedForFirstRender.native.cjs +0 -1
  441. package/dist/cjs/hooks/isOptimizedForFirstRender.native.js +0 -1
  442. package/dist/cjs/hooks/isOptimizedForFirstRender.native.js.map +1 -1
  443. package/dist/cjs/hooks/useAnimationDriver.cjs +14 -9
  444. package/dist/cjs/hooks/useAnimationDriver.native.cjs +14 -9
  445. package/dist/cjs/hooks/useAnimationDriver.native.js +14 -9
  446. package/dist/cjs/hooks/useAnimationDriver.native.js.map +1 -1
  447. package/dist/cjs/hooks/useComponentState.cjs +27 -25
  448. package/dist/cjs/hooks/useComponentState.native.cjs +28 -25
  449. package/dist/cjs/hooks/useComponentState.native.js +28 -25
  450. package/dist/cjs/hooks/useComponentState.native.js.map +1 -1
  451. package/dist/cjs/hooks/useDisableSSR.cjs +0 -1
  452. package/dist/cjs/hooks/useDisableSSR.native.cjs +0 -1
  453. package/dist/cjs/hooks/useDisableSSR.native.js +0 -1
  454. package/dist/cjs/hooks/useDisableSSR.native.js.map +1 -1
  455. package/dist/cjs/hooks/useIsTouchDevice.cjs +0 -1
  456. package/dist/cjs/hooks/useIsTouchDevice.native.cjs +0 -1
  457. package/dist/cjs/hooks/useIsTouchDevice.native.js +0 -1
  458. package/dist/cjs/hooks/useIsTouchDevice.native.js.map +1 -1
  459. package/dist/cjs/hooks/useMedia.cjs +0 -1
  460. package/dist/cjs/hooks/useMedia.native.cjs +0 -1
  461. package/dist/cjs/hooks/useMedia.native.js +0 -1
  462. package/dist/cjs/hooks/useMedia.native.js.map +1 -1
  463. package/dist/cjs/hooks/usePortalThemeState.cjs +1 -2
  464. package/dist/cjs/hooks/usePortalThemeState.native.cjs +1 -2
  465. package/dist/cjs/hooks/usePortalThemeState.native.js +1 -2
  466. package/dist/cjs/hooks/usePortalThemeState.native.js.map +1 -1
  467. package/dist/cjs/hooks/useProps.cjs +1 -2
  468. package/dist/cjs/hooks/useProps.native.cjs +1 -2
  469. package/dist/cjs/hooks/useProps.native.js +1 -2
  470. package/dist/cjs/hooks/useProps.native.js.map +1 -1
  471. package/dist/cjs/hooks/useTheme.cjs +0 -1
  472. package/dist/cjs/hooks/useTheme.native.cjs +0 -1
  473. package/dist/cjs/hooks/useTheme.native.js +0 -1
  474. package/dist/cjs/hooks/useTheme.native.js.map +1 -1
  475. package/dist/cjs/hooks/useThemeName.cjs +0 -1
  476. package/dist/cjs/hooks/useThemeName.native.cjs +0 -1
  477. package/dist/cjs/hooks/useThemeName.native.js +0 -1
  478. package/dist/cjs/hooks/useThemeName.native.js.map +1 -1
  479. package/dist/cjs/hooks/useThemeState.cjs +11 -16
  480. package/dist/cjs/hooks/useThemeState.native.cjs +13 -18
  481. package/dist/cjs/hooks/useThemeState.native.js +13 -18
  482. package/dist/cjs/hooks/useThemeState.native.js.map +1 -1
  483. package/dist/cjs/index.cjs +0 -2
  484. package/dist/cjs/index.native.cjs +0 -2
  485. package/dist/cjs/index.native.js +0 -2
  486. package/dist/cjs/index.native.js.map +1 -1
  487. package/dist/cjs/inject-styles.cjs +0 -1
  488. package/dist/cjs/inject-styles.native.cjs +0 -1
  489. package/dist/cjs/inject-styles.native.js +0 -1
  490. package/dist/cjs/inject-styles.native.js.map +1 -1
  491. package/dist/cjs/insertFont.cjs +0 -1
  492. package/dist/cjs/insertFont.native.cjs +0 -1
  493. package/dist/cjs/insertFont.native.js +0 -1
  494. package/dist/cjs/insertFont.native.js.map +1 -1
  495. package/dist/cjs/interfaces/CSSColorNames.cjs +0 -1
  496. package/dist/cjs/interfaces/CSSColorNames.native.cjs +0 -1
  497. package/dist/cjs/interfaces/CSSColorNames.native.js +0 -1
  498. package/dist/cjs/interfaces/CSSColorNames.native.js.map +1 -1
  499. package/dist/cjs/interfaces/GetRef.cjs +0 -1
  500. package/dist/cjs/interfaces/GetRef.native.cjs +0 -1
  501. package/dist/cjs/interfaces/GetRef.native.js +0 -1
  502. package/dist/cjs/interfaces/GetRef.native.js.map +1 -1
  503. package/dist/cjs/interfaces/RNExclusiveTypes.cjs +0 -1
  504. package/dist/cjs/interfaces/RNExclusiveTypes.native.cjs +0 -1
  505. package/dist/cjs/interfaces/RNExclusiveTypes.native.js +0 -1
  506. package/dist/cjs/interfaces/RNExclusiveTypes.native.js.map +1 -1
  507. package/dist/cjs/interfaces/TamaguiComponentEvents.cjs +0 -1
  508. package/dist/cjs/interfaces/TamaguiComponentEvents.native.cjs +0 -1
  509. package/dist/cjs/interfaces/TamaguiComponentEvents.native.js +0 -1
  510. package/dist/cjs/interfaces/TamaguiComponentEvents.native.js.map +1 -1
  511. package/dist/cjs/interfaces/TamaguiComponentPropsBaseBase.cjs +0 -1
  512. package/dist/cjs/interfaces/TamaguiComponentPropsBaseBase.native.cjs +0 -1
  513. package/dist/cjs/interfaces/TamaguiComponentPropsBaseBase.native.js +0 -1
  514. package/dist/cjs/interfaces/TamaguiComponentPropsBaseBase.native.js.map +1 -1
  515. package/dist/cjs/internal-runtime.cjs +1 -4
  516. package/dist/cjs/internal-runtime.native.cjs +1 -4
  517. package/dist/cjs/internal-runtime.native.js +1 -4
  518. package/dist/cjs/internal-runtime.native.js.map +1 -1
  519. package/dist/cjs/internalRuntimeTypes.cjs +0 -1
  520. package/dist/cjs/internalRuntimeTypes.native.cjs +0 -1
  521. package/dist/cjs/internalRuntimeTypes.native.js +0 -1
  522. package/dist/cjs/internalRuntimeTypes.native.js.map +1 -1
  523. package/dist/cjs/setupHooks.cjs +0 -1
  524. package/dist/cjs/setupHooks.native.cjs +0 -1
  525. package/dist/cjs/setupHooks.native.js +0 -1
  526. package/dist/cjs/setupHooks.native.js.map +1 -1
  527. package/dist/cjs/setupReactNative.cjs +0 -1
  528. package/dist/cjs/setupReactNative.native.cjs +0 -1
  529. package/dist/cjs/setupReactNative.native.js +0 -1
  530. package/dist/cjs/setupReactNative.native.js.map +1 -1
  531. package/dist/cjs/styled.cjs +0 -1
  532. package/dist/cjs/styled.native.cjs +0 -1
  533. package/dist/cjs/styled.native.js +0 -1
  534. package/dist/cjs/styled.native.js.map +1 -1
  535. package/dist/cjs/theme-update.cjs +19 -0
  536. package/dist/cjs/theme-update.native.cjs +21 -0
  537. package/dist/cjs/theme-update.native.js +23 -0
  538. package/dist/cjs/theme-update.native.js.map +1 -0
  539. package/dist/cjs/type-utils.cjs +0 -1
  540. package/dist/cjs/type-utils.native.cjs +0 -1
  541. package/dist/cjs/type-utils.native.js +0 -1
  542. package/dist/cjs/type-utils.native.js.map +1 -1
  543. package/dist/cjs/types.cjs +0 -1
  544. package/dist/cjs/types.native.cjs +0 -1
  545. package/dist/cjs/types.native.js +0 -1
  546. package/dist/cjs/types.native.js.map +1 -1
  547. package/dist/cjs/views/ConfigRevisionCheck.cjs +0 -1
  548. package/dist/cjs/views/ConfigRevisionCheck.native.cjs +0 -1
  549. package/dist/cjs/views/ConfigRevisionCheck.native.js +0 -1
  550. package/dist/cjs/views/ConfigRevisionCheck.native.js.map +1 -1
  551. package/dist/cjs/views/Configuration.cjs +0 -1
  552. package/dist/cjs/views/Configuration.native.cjs +0 -1
  553. package/dist/cjs/views/Configuration.native.js +0 -1
  554. package/dist/cjs/views/Configuration.native.js.map +1 -1
  555. package/dist/cjs/views/FontLanguage.cjs +0 -1
  556. package/dist/cjs/views/FontLanguage.native.cjs +0 -1
  557. package/dist/cjs/views/FontLanguage.native.js +0 -1
  558. package/dist/cjs/views/FontLanguage.native.js.map +1 -1
  559. package/dist/cjs/views/SafeAreaTracker.cjs +0 -1
  560. package/dist/cjs/views/SafeAreaTracker.native.cjs +0 -1
  561. package/dist/cjs/views/SafeAreaTracker.native.js +0 -1
  562. package/dist/cjs/views/SafeAreaTracker.native.js.map +1 -1
  563. package/dist/cjs/views/Slot.cjs +0 -1
  564. package/dist/cjs/views/Slot.native.cjs +0 -1
  565. package/dist/cjs/views/Slot.native.js +0 -1
  566. package/dist/cjs/views/Slot.native.js.map +1 -1
  567. package/dist/cjs/views/TamaguiProvider.cjs +0 -1
  568. package/dist/cjs/views/TamaguiProvider.native.cjs +0 -1
  569. package/dist/cjs/views/TamaguiProvider.native.js +0 -1
  570. package/dist/cjs/views/TamaguiProvider.native.js.map +1 -1
  571. package/dist/cjs/views/TamaguiRoot.cjs +0 -1
  572. package/dist/cjs/views/TamaguiRoot.native.cjs +0 -1
  573. package/dist/cjs/views/TamaguiRoot.native.js +0 -1
  574. package/dist/cjs/views/TamaguiRoot.native.js.map +1 -1
  575. package/dist/cjs/views/Text.cjs +0 -1
  576. package/dist/cjs/views/Text.native.cjs +0 -1
  577. package/dist/cjs/views/Text.native.js +0 -1
  578. package/dist/cjs/views/Text.native.js.map +1 -1
  579. package/dist/cjs/views/Theme.cjs +7 -33
  580. package/dist/cjs/views/Theme.native.cjs +8 -20
  581. package/dist/cjs/views/Theme.native.js +8 -20
  582. package/dist/cjs/views/Theme.native.js.map +1 -1
  583. package/dist/cjs/views/ThemeDebug.cjs +0 -1
  584. package/dist/cjs/views/ThemeDebug.native.cjs +0 -1
  585. package/dist/cjs/views/ThemeDebug.native.js +0 -1
  586. package/dist/cjs/views/ThemeDebug.native.js.map +1 -1
  587. package/dist/cjs/views/ThemeProvider.cjs +0 -1
  588. package/dist/cjs/views/ThemeProvider.native.cjs +0 -1
  589. package/dist/cjs/views/ThemeProvider.native.js +0 -1
  590. package/dist/cjs/views/ThemeProvider.native.js.map +1 -1
  591. package/dist/cjs/views/ThemeUpdate.cjs +82 -0
  592. package/dist/cjs/views/ThemeUpdate.native.cjs +84 -0
  593. package/dist/cjs/views/ThemeUpdate.native.js +86 -0
  594. package/dist/cjs/views/ThemeUpdate.native.js.map +1 -0
  595. package/dist/cjs/views/View.cjs +0 -1
  596. package/dist/cjs/views/View.native.cjs +0 -1
  597. package/dist/cjs/views/View.native.js +0 -1
  598. package/dist/cjs/views/View.native.js.map +1 -1
  599. package/dist/esm/Tamagui.mjs.map +1 -1
  600. package/dist/esm/Tamagui.native.js.map +1 -1
  601. package/dist/esm/_withNativeStyle.mjs.map +1 -1
  602. package/dist/esm/config.mjs +7 -0
  603. package/dist/esm/config.mjs.map +1 -1
  604. package/dist/esm/config.native.js +7 -0
  605. package/dist/esm/config.native.js.map +1 -1
  606. package/dist/esm/constants/isDevTools.mjs.map +1 -1
  607. package/dist/esm/constants/isDevTools.native.js.map +1 -1
  608. package/dist/esm/createComponent.mjs +1 -1
  609. package/dist/esm/createComponent.mjs.map +1 -1
  610. package/dist/esm/createComponent.native.js +1 -1
  611. package/dist/esm/createComponent.native.js.map +1 -1
  612. package/dist/esm/createFont.mjs.map +1 -1
  613. package/dist/esm/createFont.native.js.map +1 -1
  614. package/dist/esm/createTamagui.mjs +2 -2
  615. package/dist/esm/createTamagui.mjs.map +1 -1
  616. package/dist/esm/createTamagui.native.js +2 -2
  617. package/dist/esm/createTamagui.native.js.map +1 -1
  618. package/dist/esm/createVariable.mjs.map +1 -1
  619. package/dist/esm/createVariable.native.js.map +1 -1
  620. package/dist/esm/dom/primitives.native.js +1 -1
  621. package/dist/esm/dom/primitives.native.js.map +1 -1
  622. package/dist/esm/eventHandling.native.js.map +1 -1
  623. package/dist/esm/helpers/configVariables.mjs +60 -0
  624. package/dist/esm/helpers/configVariables.mjs.map +1 -0
  625. package/dist/esm/helpers/configVariables.native.js +65 -0
  626. package/dist/esm/helpers/configVariables.native.js.map +1 -0
  627. package/dist/esm/helpers/createDesignSystem.mjs.map +1 -1
  628. package/dist/esm/helpers/createDesignSystem.native.js.map +1 -1
  629. package/dist/esm/helpers/createStyledContext.mjs.map +1 -1
  630. package/dist/esm/helpers/createStyledContext.native.js.map +1 -1
  631. package/dist/esm/helpers/defaultAnimationDriver.mjs +1 -5
  632. package/dist/esm/helpers/defaultAnimationDriver.mjs.map +1 -1
  633. package/dist/esm/helpers/defaultAnimationDriver.native.js +0 -12
  634. package/dist/esm/helpers/defaultAnimationDriver.native.js.map +1 -1
  635. package/dist/esm/helpers/directStyle.mjs +258 -283
  636. package/dist/esm/helpers/directStyle.mjs.map +1 -1
  637. package/dist/esm/helpers/directStyle.native.js +274 -305
  638. package/dist/esm/helpers/directStyle.native.js.map +1 -1
  639. package/dist/esm/helpers/expandStyle.mjs.map +1 -1
  640. package/dist/esm/helpers/expandStyle.native.js.map +1 -1
  641. package/dist/esm/helpers/expandStyles.native.js.map +1 -1
  642. package/dist/esm/helpers/extractPseudoState.mjs.map +1 -1
  643. package/dist/esm/helpers/formatDiagnostic.mjs.map +1 -1
  644. package/dist/esm/helpers/formatDiagnostic.native.js.map +1 -1
  645. package/dist/esm/helpers/getCSSStylesAtomic.mjs +5 -1
  646. package/dist/esm/helpers/getCSSStylesAtomic.mjs.map +1 -1
  647. package/dist/esm/helpers/getDynamicVal.mjs.map +1 -1
  648. package/dist/esm/helpers/getDynamicVal.native.js.map +1 -1
  649. package/dist/esm/helpers/getExpandedShorthands.mjs.map +1 -1
  650. package/dist/esm/helpers/getExpandedShorthands.native.js.map +1 -1
  651. package/dist/esm/helpers/getFontLanguage.mjs.map +1 -1
  652. package/dist/esm/helpers/getFontLanguage.native.js.map +1 -1
  653. package/dist/esm/helpers/getShorthandValue.mjs.map +1 -1
  654. package/dist/esm/helpers/getShorthandValue.native.js.map +1 -1
  655. package/dist/esm/helpers/getSplitStyles.mjs +2 -9
  656. package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
  657. package/dist/esm/helpers/getSplitStyles.native.js +2 -9
  658. package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
  659. package/dist/esm/helpers/getThemeCSSRules.mjs.map +1 -1
  660. package/dist/esm/helpers/getVariantExtras.mjs.map +1 -1
  661. package/dist/esm/helpers/getVariantExtras.native.js.map +1 -1
  662. package/dist/esm/helpers/grammarConfig.mjs +59 -13
  663. package/dist/esm/helpers/grammarConfig.mjs.map +1 -1
  664. package/dist/esm/helpers/grammarConfig.native.js +80 -17
  665. package/dist/esm/helpers/grammarConfig.native.js.map +1 -1
  666. package/dist/esm/helpers/insertStyleRule.mjs.map +1 -1
  667. package/dist/esm/helpers/insertStyleRule.native.js.map +1 -1
  668. package/dist/esm/helpers/matchMedia.native.js.map +1 -1
  669. package/dist/esm/helpers/mediaObjectToString.mjs.map +1 -1
  670. package/dist/esm/helpers/mediaObjectToString.native.js.map +1 -1
  671. package/dist/esm/helpers/mergeVariants.mjs +1 -1
  672. package/dist/esm/helpers/mergeVariants.mjs.map +1 -1
  673. package/dist/esm/helpers/mergeVariants.native.js +1 -1
  674. package/dist/esm/helpers/mergeVariants.native.js.map +1 -1
  675. package/dist/esm/helpers/nativeStyleEngine.mjs.map +1 -1
  676. package/dist/esm/helpers/nativeStyleEngine.native.js.map +1 -1
  677. package/dist/esm/helpers/normalizeStyle.native.js.map +1 -1
  678. package/dist/esm/helpers/parseBorderShorthand.native.js.map +1 -1
  679. package/dist/esm/helpers/parseNativeStyle.native.js.map +1 -1
  680. package/dist/esm/helpers/parseNativeTransform.native.js.map +1 -1
  681. package/dist/esm/helpers/parseOutlineShorthand.native.js.map +1 -1
  682. package/dist/esm/helpers/propMapper.mjs +31 -39
  683. package/dist/esm/helpers/propMapper.mjs.map +1 -1
  684. package/dist/esm/helpers/propMapper.native.js +31 -39
  685. package/dist/esm/helpers/propMapper.native.js.map +1 -1
  686. package/dist/esm/helpers/proxyThemeToParents.mjs.map +1 -1
  687. package/dist/esm/helpers/proxyThemeToParents.native.js.map +1 -1
  688. package/dist/esm/helpers/registerCSSVariable.mjs.map +1 -1
  689. package/dist/esm/helpers/registerCSSVariable.native.js.map +1 -1
  690. package/dist/esm/helpers/resolveSafeAreaVariable.native.js.map +1 -1
  691. package/dist/esm/helpers/subscribeToContextGroup.native.js.map +1 -1
  692. package/dist/esm/helpers/themeRef.mjs.map +1 -1
  693. package/dist/esm/helpers/themeRef.native.js.map +1 -1
  694. package/dist/esm/helpers/themeUpdateState.mjs +4 -0
  695. package/dist/esm/helpers/themeUpdateState.mjs.map +1 -0
  696. package/dist/esm/helpers/themeUpdateState.native.js +4 -0
  697. package/dist/esm/helpers/themeUpdateState.native.js.map +1 -0
  698. package/dist/esm/helpers/timer.mjs.map +1 -1
  699. package/dist/esm/helpers/timer.native.js.map +1 -1
  700. package/dist/esm/helpers/tokenCategories.mjs.map +1 -1
  701. package/dist/esm/helpers/tokenCategories.native.js.map +1 -1
  702. package/dist/esm/helpers/transformsToString.native.js.map +1 -1
  703. package/dist/esm/helpers/useRenderElement.mjs.map +1 -1
  704. package/dist/esm/helpers/useRenderElement.native.js.map +1 -1
  705. package/dist/esm/helpers/variableValue.mjs +44 -0
  706. package/dist/esm/helpers/variableValue.mjs.map +1 -0
  707. package/dist/esm/helpers/variableValue.native.js +64 -0
  708. package/dist/esm/helpers/variableValue.native.js.map +1 -0
  709. package/dist/esm/helpers/variables.mjs +96 -136
  710. package/dist/esm/helpers/variables.mjs.map +1 -1
  711. package/dist/esm/helpers/variables.native.js +98 -158
  712. package/dist/esm/helpers/variables.native.js.map +1 -1
  713. package/dist/esm/helpers/warnOnce.mjs +1 -1
  714. package/dist/esm/helpers/warnOnce.mjs.map +1 -1
  715. package/dist/esm/helpers/warnOnce.native.js +1 -1
  716. package/dist/esm/helpers/warnOnce.native.js.map +1 -1
  717. package/dist/esm/hooks/getThemeProxied.mjs.map +1 -1
  718. package/dist/esm/hooks/getThemeProxied.native.js +2 -2
  719. package/dist/esm/hooks/getThemeProxied.native.js.map +1 -1
  720. package/dist/esm/hooks/useAnimationDriver.mjs +14 -8
  721. package/dist/esm/hooks/useAnimationDriver.mjs.map +1 -1
  722. package/dist/esm/hooks/useAnimationDriver.native.js +14 -8
  723. package/dist/esm/hooks/useAnimationDriver.native.js.map +1 -1
  724. package/dist/esm/hooks/useComponentState.mjs +27 -24
  725. package/dist/esm/hooks/useComponentState.mjs.map +1 -1
  726. package/dist/esm/hooks/useComponentState.native.js +28 -24
  727. package/dist/esm/hooks/useComponentState.native.js.map +1 -1
  728. package/dist/esm/hooks/useMedia.mjs.map +1 -1
  729. package/dist/esm/hooks/useMedia.native.js.map +1 -1
  730. package/dist/esm/hooks/usePortalThemeState.mjs +2 -2
  731. package/dist/esm/hooks/usePortalThemeState.mjs.map +1 -1
  732. package/dist/esm/hooks/usePortalThemeState.native.js +2 -2
  733. package/dist/esm/hooks/usePortalThemeState.native.js.map +1 -1
  734. package/dist/esm/hooks/useProps.mjs +1 -1
  735. package/dist/esm/hooks/useProps.mjs.map +1 -1
  736. package/dist/esm/hooks/useProps.native.js +1 -1
  737. package/dist/esm/hooks/useProps.native.js.map +1 -1
  738. package/dist/esm/hooks/useThemeName.mjs.map +1 -1
  739. package/dist/esm/hooks/useThemeState.mjs +12 -15
  740. package/dist/esm/hooks/useThemeState.mjs.map +1 -1
  741. package/dist/esm/hooks/useThemeState.native.js +14 -17
  742. package/dist/esm/hooks/useThemeState.native.js.map +1 -1
  743. package/dist/esm/index.js +0 -2
  744. package/dist/esm/index.mjs +0 -2
  745. package/dist/esm/index.native.js +0 -2
  746. package/dist/esm/insertFont.mjs.map +1 -1
  747. package/dist/esm/insertFont.native.js.map +1 -1
  748. package/dist/esm/internal-runtime.mjs +1 -3
  749. package/dist/esm/internal-runtime.mjs.map +1 -1
  750. package/dist/esm/internal-runtime.native.js +1 -3
  751. package/dist/esm/internal-runtime.native.js.map +1 -1
  752. package/dist/esm/styled.mjs.map +1 -1
  753. package/dist/esm/styled.native.js.map +1 -1
  754. package/dist/esm/theme-update.mjs +3 -0
  755. package/dist/esm/theme-update.native.js +3 -0
  756. package/dist/esm/views/FontLanguage.mjs.map +1 -1
  757. package/dist/esm/views/SafeAreaTracker.native.js.map +1 -1
  758. package/dist/esm/views/TamaguiProvider.mjs.map +1 -1
  759. package/dist/esm/views/TamaguiProvider.native.js.map +1 -1
  760. package/dist/esm/views/Theme.mjs +8 -33
  761. package/dist/esm/views/Theme.mjs.map +1 -1
  762. package/dist/esm/views/Theme.native.js +9 -20
  763. package/dist/esm/views/Theme.native.js.map +1 -1
  764. package/dist/esm/views/ThemeUpdate.mjs +54 -0
  765. package/dist/esm/views/ThemeUpdate.mjs.map +1 -0
  766. package/dist/esm/views/ThemeUpdate.native.js +53 -0
  767. package/dist/esm/views/ThemeUpdate.native.js.map +1 -0
  768. package/package.json +26 -17
  769. package/src/config.ts +7 -0
  770. package/src/createComponent.tsx +1 -4
  771. package/src/createTamagui.ts +3 -8
  772. package/src/dom/primitives.native.tsx +1 -1
  773. package/src/helpers/configVariables.ts +64 -0
  774. package/src/helpers/defaultAnimationDriver.tsx +0 -4
  775. package/src/helpers/directStyle.ts +876 -477
  776. package/src/helpers/getCSSStylesAtomic.ts +5 -1
  777. package/src/helpers/getSplitStyles.tsx +2 -23
  778. package/src/helpers/grammarConfig.ts +82 -12
  779. package/src/helpers/mergeVariants.ts +1 -3
  780. package/src/helpers/nativeTransitionTarget.native.ts +1 -1
  781. package/src/helpers/nativeTransitionTarget.ts +1 -1
  782. package/src/helpers/propMapper.ts +42 -49
  783. package/src/helpers/themeUpdateState.ts +27 -0
  784. package/src/helpers/variableValue.ts +45 -0
  785. package/src/helpers/variables.ts +149 -195
  786. package/src/helpers/warnOnce.ts +2 -2
  787. package/src/hooks/getThemeProxied.ts +9 -7
  788. package/src/hooks/useAnimationDriver.ts +26 -11
  789. package/src/hooks/useComponentState.ts +44 -34
  790. package/src/hooks/usePortalThemeState.ts +8 -8
  791. package/src/hooks/useProps.tsx +1 -4
  792. package/src/hooks/useThemeState.ts +16 -37
  793. package/src/index.ts +0 -1
  794. package/src/internal-runtime.ts +1 -8
  795. package/src/theme-update.ts +2 -0
  796. package/src/types.tsx +13 -21
  797. package/src/views/Theme.tsx +18 -80
  798. package/src/views/ThemeUpdate.tsx +88 -0
  799. package/types/config.d.ts.map +1 -1
  800. package/types/createComponent.d.ts.map +1 -1
  801. package/types/helpers/configVariables.d.ts +3 -0
  802. package/types/helpers/configVariables.d.ts.map +1 -0
  803. package/types/helpers/defaultAnimationDriver.d.ts.map +1 -1
  804. package/types/helpers/directStyle.d.ts +2 -23
  805. package/types/helpers/directStyle.d.ts.map +1 -1
  806. package/types/helpers/getCSSStylesAtomic.d.ts.map +1 -1
  807. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  808. package/types/helpers/grammarConfig.d.ts +9 -0
  809. package/types/helpers/grammarConfig.d.ts.map +1 -1
  810. package/types/helpers/mergeVariants.d.ts.map +1 -1
  811. package/types/helpers/nativeTransitionTarget.d.ts +1 -1
  812. package/types/helpers/nativeTransitionTarget.d.ts.map +1 -1
  813. package/types/helpers/nativeTransitionTarget.native.d.ts +1 -1
  814. package/types/helpers/nativeTransitionTarget.native.d.ts.map +1 -1
  815. package/types/helpers/propMapper.d.ts.map +1 -1
  816. package/types/helpers/themeUpdateState.d.ts +23 -0
  817. package/types/helpers/themeUpdateState.d.ts.map +1 -0
  818. package/types/helpers/variableValue.d.ts +4 -0
  819. package/types/helpers/variableValue.d.ts.map +1 -0
  820. package/types/helpers/variables.d.ts +7 -24
  821. package/types/helpers/variables.d.ts.map +1 -1
  822. package/types/helpers/warnOnce.d.ts +1 -1
  823. package/types/hooks/getThemeProxied.d.ts.map +1 -1
  824. package/types/hooks/useAnimationDriver.d.ts.map +1 -1
  825. package/types/hooks/useComponentState.d.ts.map +1 -1
  826. package/types/hooks/usePortalThemeState.d.ts +5 -5
  827. package/types/hooks/usePortalThemeState.d.ts.map +1 -1
  828. package/types/hooks/useProps.d.ts.map +1 -1
  829. package/types/hooks/useThemeState.d.ts +2 -5
  830. package/types/hooks/useThemeState.d.ts.map +1 -1
  831. package/types/index.d.ts +0 -1
  832. package/types/index.d.ts.map +1 -1
  833. package/types/internal-runtime.d.ts.map +1 -1
  834. package/types/theme-update.d.ts +3 -0
  835. package/types/theme-update.d.ts.map +1 -0
  836. package/types/types.d.ts +6 -17
  837. package/types/types.d.ts.map +1 -1
  838. package/types/views/Theme.d.ts +2 -15
  839. package/types/views/Theme.d.ts.map +1 -1
  840. package/types/views/ThemeUpdate.d.ts +15 -0
  841. package/types/views/ThemeUpdate.d.ts.map +1 -0
@@ -2,19 +2,23 @@ import { reservedThemeProps, simpleHash } from '@tamagui/helpers'
2
2
  import {
3
3
  grammarPlatformNames,
4
4
  isRootThemeName,
5
- parseValue,
6
- type ModifierRegistryView,
5
+ modifierKindPlatform,
6
+ modifierKindTheme,
7
+ reduceFlatValueIdentity,
8
+ type ClauseIdentityErrorCode,
9
+ type ClauseIdentityHandler,
7
10
  } from '@tamagui/style-grammar/runtime'
8
11
  import { getSetting } from '../config'
9
12
  import { createVariable, isVariable } from '../createVariable'
13
+ import { getConfigRevisionState, type ConfigRevisionState } from './grammarConfig'
14
+ import { themeUpdateStateKey, type ThemeUpdateLayerInfo } from './themeUpdateState'
10
15
  import { platformMatches } from './directStyle'
16
+ import { findVariableToken, isUnitlessVariableKey } from './variableValue'
11
17
  import { warnOnce } from './warnOnce'
12
18
  import type {
13
- GenericVariables,
14
19
  TamaguiInternalConfig,
15
20
  ThemeKeys,
16
21
  ThemeName,
17
- TokensParsed,
18
22
  Variable,
19
23
  VariableValIn,
20
24
  } from '../types'
@@ -26,34 +30,11 @@ export type InlineValues = {
26
30
  }
27
31
  }
28
32
 
29
- // keys whose numeric values stay unitless on web. audited against RN numeric
30
- // style keys: opacity, zIndex, flex/flexGrow/flexShrink, aspectRatio, scale*,
31
- // fontWeight, elevation, shadowOpacity all end in one of these suffixes.
32
- // dimensional keys (radius, width, gap, size...) default to px.
33
- const unitlessSuffixes = [
34
- 'opacity',
35
- 'scale',
36
- 'zindex',
37
- 'weight',
38
- 'flex',
39
- 'grow',
40
- 'shrink',
41
- 'ratio',
42
- 'elevation',
43
- ]
44
-
45
- export const isUnitlessVariableKey = (key: string): boolean => {
46
- const lower = key.toLowerCase()
47
- return unitlessSuffixes.some((suffix) => lower.endsWith(suffix))
48
- }
49
-
50
- // Property-less variable references scan token categories in this fixed order.
51
- const tokenCategoryOrder = ['color', 'space', 'size', 'radius', 'zIndex'] as const
52
-
53
- const themeKeySets = new WeakMap<object, Set<string>>()
33
+ const themeKeySets = new WeakMap<ConfigRevisionState, Set<string>>()
54
34
 
55
35
  export const getThemeKeySet = (conf: TamaguiInternalConfig): Set<string> => {
56
- const existing = themeKeySets.get(conf.themes)
36
+ const generation = getConfigRevisionState(conf)
37
+ const existing = themeKeySets.get(generation)
57
38
  if (existing) return existing
58
39
  const set = new Set<string>()
59
40
  for (const themeName in conf.themes) {
@@ -62,42 +43,21 @@ export const getThemeKeySet = (conf: TamaguiInternalConfig): Set<string> => {
62
43
  }
63
44
  }
64
45
  if (process.env.NODE_ENV === 'development') {
65
- // <Theme> reads every non-reserved prop as a theme key, so a theme key or
46
+ // <ThemeUpdate> reads every non-reserved prop as a theme key, so a theme key or
66
47
  // config variable sharing a name with one of Theme's own props could never
67
48
  // be set inline. Caught once per config, at the source.
68
49
  for (const key of set) {
69
50
  if (reservedThemeProps[key]) {
70
51
  console.error(
71
- `[tamagui] theme key "${key}" collides with a <Theme> prop, so it can never be set inline (<Theme ${key}="...">). Rename it.`
52
+ `[tamagui] theme key "${key}" collides with a reserved theme prop, so it cannot be set with <ThemeUpdate ${key}="...">. Rename it.`
72
53
  )
73
54
  }
74
55
  }
75
56
  }
76
- themeKeySets.set(conf.themes, set)
57
+ themeKeySets.set(generation, set)
77
58
  return set
78
59
  }
79
60
 
80
- const findToken = (tokensParsed: TokensParsed, name: string): Variable | undefined => {
81
- let found: Variable | undefined
82
- let foundCategory: string | undefined
83
- for (const category of tokenCategoryOrder) {
84
- const token = tokensParsed[category]?.[name] as Variable | undefined
85
- if (!token) continue
86
- if (!found) {
87
- found = token
88
- foundCategory = category
89
- if (process.env.NODE_ENV !== 'development') break
90
- } else {
91
- warnOnce(
92
- `ambiguous:${name}`,
93
- `Theme inline value: "${name}" exists in multiple token categories; using "${foundCategory}". Rename one of the colliding tokens.`
94
- )
95
- break
96
- }
97
- }
98
- return found
99
- }
100
-
101
61
  const cssVariablePrefix = process.env.TAMAGUI_CSS_VARIABLE_PREFIX || ''
102
62
 
103
63
  // theme-key custom property reference, matching the declaration side in
@@ -105,7 +65,7 @@ const cssVariablePrefix = process.env.TAMAGUI_CSS_VARIABLE_PREFIX || ''
105
65
  const themeKeyVar = (key: string) => `var(--${cssVariablePrefix}${simpleHash(key, 40)})`
106
66
 
107
67
  /**
108
- * Resolves one inline `<Theme>` value to a CSS value string.
68
+ * Resolves one `<ThemeUpdate>` value to a CSS value string.
109
69
  * References emit var() so they stay live in the cascade; literals serialize
110
70
  * with the same unit rule numeric style props use (px unless unitless key).
111
71
  * Configured names resolve first; a lookup miss stays literal.
@@ -131,7 +91,7 @@ export function resolveVariableValueToCSS(
131
91
  return themeKeyVar(name)
132
92
  }
133
93
 
134
- const token = findToken(conf.tokensParsed, name)
94
+ const token = findVariableToken(conf.tokensParsed, name)
135
95
  if (token) {
136
96
  return token.variable
137
97
  }
@@ -202,10 +162,11 @@ const getThemedBucketNames = (themes: InlineValues['themes']): string[] => {
202
162
  // scheme-stripped theme name in the config. broader than the style grammar's
203
163
  // theme modifiers, which require a top-level conf.themes key and so can't
204
164
  // target a `blue` that only exists as `dark_blue`/`light_blue`
205
- const themeBucketNameSets = new WeakMap<object, Set<string>>()
165
+ const themeBucketNameSets = new WeakMap<ConfigRevisionState, Set<string>>()
206
166
 
207
167
  const getThemeBucketNames = (conf: TamaguiInternalConfig): Set<string> => {
208
- let set = themeBucketNameSets.get(conf.themes)
168
+ const generation = getConfigRevisionState(conf)
169
+ let set = themeBucketNameSets.get(generation)
209
170
  if (!set) {
210
171
  set = new Set()
211
172
  for (const themeName in conf.themes) {
@@ -214,7 +175,7 @@ const getThemeBucketNames = (conf: TamaguiInternalConfig): Set<string> => {
214
175
  set.add(parts.slice(0, i).join('_'))
215
176
  }
216
177
  }
217
- themeBucketNameSets.set(conf.themes, set)
178
+ themeBucketNameSets.set(generation, set)
218
179
  }
219
180
  return set
220
181
  }
@@ -304,7 +265,7 @@ const getCycleDroppedKeys = (props: InlineValues): Set<string> | null => {
304
265
  const rulesCache = new Map<string, VariablesCSS>()
305
266
 
306
267
  /**
307
- * Builds the deterministic identifier and CSS rules for inline `<Theme>` values.
268
+ * Builds the deterministic identifier and CSS rules for `<ThemeUpdate>` values.
308
269
  * Identifier is a pure function of the resolved declarations so SSR and
309
270
  * client agree, and a build-time extractor can precompute it.
310
271
  *
@@ -419,14 +380,6 @@ export function getVariablesCSSRules(
419
380
 
420
381
  // non-enumerable marker on merged theme objects: cache key for idempotency,
421
382
  // overridden key set, and literal light/dark pairs for the iOS fast-scheme path
422
- export const inlineLayerKey = '_tmgInlineLayer'
423
-
424
- export type InlineLayerInfo = {
425
- key: string
426
- overridden: Set<string>
427
- pairs: Record<string, { light: string | number; dark: string | number }>
428
- }
429
-
430
383
  const serializeInlineValue = (value: VariableValIn): string =>
431
384
  value && typeof value === 'object'
432
385
  ? `object:px${value.val}`
@@ -446,7 +399,7 @@ const serializeBucket = (bucket: InlineValues['values']): string => {
446
399
 
447
400
  // memoized per layer object: the flat-props path hands back identity-stable
448
401
  // layers, so this is one serialization per distinct value set instead of one
449
- // per render (getPropsKey calls it on every render of every <Theme>)
402
+ // per render (getPropsKey calls it on every render of every <ThemeUpdate>)
450
403
  const inlineKeys = new WeakMap<InlineValues, string>()
451
404
 
452
405
  export const getInlineValuesKey = (inline: InlineValues): string => {
@@ -463,29 +416,7 @@ export const getInlineValuesKey = (inline: InlineValues): string => {
463
416
  return key
464
417
  }
465
418
 
466
- // ---- flat theme-value props: <Theme background-hover="blue4 dark:blue2"> ----
467
-
468
- const registryViews = new WeakMap<object, ModifierRegistryView>()
469
-
470
- /**
471
- * Theme and platform are the only modifiers a subtree-wide value can honor.
472
- * Everything else still parses as a modifier so it can be rejected by name
473
- * below, rather than coming back as a generic "unregistered modifier".
474
- */
475
- const getModifierRegistry = (conf: TamaguiInternalConfig): ModifierRegistryView => {
476
- let view = registryViews.get(conf.themes)
477
- if (!view) {
478
- view = {
479
- get(name: string) {
480
- if (grammarPlatformNames.has(name)) return 'platform'
481
- if (isRootThemeName(name) && getThemeBucketNames(conf).has(name)) return 'theme'
482
- return 'state'
483
- },
484
- }
485
- registryViews.set(conf.themes, view)
486
- }
487
- return view
488
- }
419
+ // ---- flat theme-value props: <ThemeUpdate background-hover="blue4 dark:blue2"> ----
489
420
 
490
421
  /**
491
422
  * One authored theme-value clause the parser could not use. The runtime warns
@@ -499,10 +430,78 @@ type FlatBuckets = {
499
430
  themes: Record<string, Record<string, VariableValIn>> | null
500
431
  }
501
432
 
502
- const parsedInlineValues = new WeakMap<
503
- object,
504
- Map<string, ReturnType<typeof parseValue>>
505
- >()
433
+ type FlatThemeModifier = [
434
+ name: string,
435
+ kind: 0 | typeof modifierKindPlatform | typeof modifierKindTheme,
436
+ ]
437
+ type FlatThemeClause = [payload: string, modifiers: FlatThemeModifier[]]
438
+ type FlatThemeValue = {
439
+ base: string | null
440
+ clauses: FlatThemeClause[] | null
441
+ error: string | null
442
+ }
443
+ type FlatThemeScanContext = {
444
+ source: string
445
+ themeBuckets: Set<string>
446
+ out: FlatThemeValue
447
+ pending: FlatThemeModifier[] | null
448
+ chainStart: number
449
+ chainEnd: number
450
+ }
451
+
452
+ const themeUpdateFlatHandler: ClauseIdentityHandler<FlatThemeScanContext> = {
453
+ segment(ctx, start, end, isBase) {
454
+ if (isBase) {
455
+ ctx.out.base = start < end ? ctx.source.slice(start, end) : null
456
+ }
457
+ },
458
+
459
+ chain(ctx, start, end) {
460
+ ctx.pending = []
461
+ ctx.chainStart = start
462
+ ctx.chainEnd = end
463
+ },
464
+
465
+ modifier(ctx, start, end) {
466
+ const name = ctx.source.slice(start, end)
467
+ const kind =
468
+ // theme updates intentionally keep their subtree-specific collision order:
469
+ // platform, then theme, then every unsupported kind. direct styles use
470
+ // the shared vocabulary's state/media/platform/theme order instead.
471
+ grammarPlatformNames.has(name)
472
+ ? modifierKindPlatform
473
+ : isRootThemeName(name) && ctx.themeBuckets.has(name)
474
+ ? modifierKindTheme
475
+ : 0
476
+ ctx.pending!.push([name, kind])
477
+ },
478
+
479
+ clause(ctx, _start, _chainEnd, start, end) {
480
+ ;(ctx.out.clauses ||= []).push([ctx.source.slice(start, end), ctx.pending!])
481
+ },
482
+
483
+ error(ctx, code: ClauseIdentityErrorCode, index) {
484
+ if (ctx.out.error !== null) return
485
+ if (code === 'empty-modifier') {
486
+ ctx.out.error = 'a modifier chain has an empty segment'
487
+ } else if (code === 'empty-payload') {
488
+ ctx.out.error = `the "${ctx.source.slice(ctx.chainStart, ctx.chainEnd)}:" clause has no value`
489
+ } else if (code === 'invalid-character') {
490
+ ctx.out.error = `"${ctx.source[index]}" cannot appear in a value: it would end the declaration or rule`
491
+ } else if (code === 'unterminated-string') {
492
+ ctx.out.error = `unterminated ${ctx.source[index]} string`
493
+ } else if (code === 'unterminated-comment') {
494
+ ctx.out.error =
495
+ 'unterminated "/*" comment: it would swallow the rules after this one'
496
+ } else if (code === 'stray-comment-close') {
497
+ ctx.out.error = 'stray "*/": it would close a comment opened somewhere else'
498
+ } else {
499
+ ctx.out.error = 'unterminated "(" in value'
500
+ }
501
+ },
502
+ }
503
+
504
+ const parsedInlineValues = new WeakMap<ConfigRevisionState, Map<string, FlatThemeValue>>()
506
505
 
507
506
  const addFlatValue = (
508
507
  out: FlatBuckets,
@@ -526,50 +525,60 @@ const addFlatValue = (
526
525
  return
527
526
  }
528
527
 
529
- let configValues = parsedInlineValues.get(conf.themes)
528
+ const generation = getConfigRevisionState(conf)
529
+ let configValues = parsedInlineValues.get(generation)
530
530
  if (!configValues) {
531
531
  configValues = new Map()
532
- parsedInlineValues.set(conf.themes, configValues)
532
+ parsedInlineValues.set(generation, configValues)
533
533
  }
534
534
 
535
535
  let parsed = configValues.get(raw)
536
536
  if (!parsed) {
537
- parsed = parseValue(raw, getModifierRegistry(conf))
537
+ parsed = { base: null, clauses: null, error: null }
538
+ reduceFlatValueIdentity(raw, themeUpdateFlatHandler, {
539
+ source: raw,
540
+ themeBuckets: getThemeBucketNames(conf),
541
+ out: parsed,
542
+ pending: null,
543
+ chainStart: 0,
544
+ chainEnd: 0,
545
+ })
538
546
  if (configValues.size >= 10_000) {
539
547
  configValues.clear()
540
548
  }
541
549
  configValues.set(raw, parsed)
542
550
  }
543
551
 
544
- if (!parsed.ok) {
552
+ if (parsed.error !== null) {
545
553
  report(
546
554
  `parse:${key}:${raw}`,
547
- `<Theme ${key}="${raw}">: ${parsed.errors[0].message}`,
555
+ `<ThemeUpdate ${key}="${raw}">: ${parsed.error}`,
548
556
  'Dropping.'
549
557
  )
550
558
  return
551
559
  }
552
560
 
553
- const { base, clauses } = parsed.value
561
+ const { base, clauses } = parsed
554
562
  if (base !== null) {
555
563
  out.values[key] = base
556
564
  }
557
565
 
558
- for (const clause of clauses) {
566
+ if (!clauses) return
567
+ for (const [payload, modifiers] of clauses) {
559
568
  let themeName: string | undefined
560
569
  let applies = true
561
570
 
562
- for (const modifier of clause.modifiers) {
563
- if (grammarPlatformNames.has(modifier)) {
571
+ for (const [modifier, kind] of modifiers) {
572
+ if (kind === modifierKindPlatform) {
564
573
  // platform is fixed for the process, so this resolves once per value
565
574
  applies &&= platformMatches(modifier)
566
575
  continue
567
576
  }
568
- if (isRootThemeName(modifier) && getThemeBucketNames(conf).has(modifier)) {
577
+ if (kind === modifierKindTheme) {
569
578
  if (themeName !== undefined) {
570
579
  report(
571
580
  `two-themes:${key}:${raw}`,
572
- `<Theme ${key}="${raw}">: "${themeName}:${modifier}:" targets two themes at once, which a subtree value can't express. Name the composed theme instead.`,
581
+ `<ThemeUpdate ${key}="${raw}">: "${themeName}:${modifier}:" targets two themes at once, which a subtree value can't express. Name the composed theme instead.`,
573
582
  'Dropping the clause.'
574
583
  )
575
584
  applies = false
@@ -580,7 +589,7 @@ const addFlatValue = (
580
589
  }
581
590
  report(
582
591
  `unsupported-modifier:${modifier}`,
583
- `<Theme ${key}="${raw}">: "${modifier}:" isn't supported here. Theme values apply to a whole subtree, so only theme (dark:) and platform (ios:) modifiers work.`,
592
+ `<ThemeUpdate ${key}="${raw}">: "${modifier}:" isn't supported here. Theme values apply to a whole subtree, so only theme (dark:) and platform (ios:) modifiers work.`,
584
593
  'Dropping the clause.'
585
594
  )
586
595
  applies = false
@@ -589,29 +598,29 @@ const addFlatValue = (
589
598
 
590
599
  if (!applies) continue
591
600
  if (themeName === undefined) {
592
- out.values[key] = clause.payload
601
+ out.values[key] = payload
593
602
  } else {
594
- ;((out.themes ||= {})[themeName] ||= {})[key] = clause.payload
603
+ ;((out.themes ||= {})[themeName] ||= {})[key] = payload
595
604
  }
596
605
  }
597
606
  }
598
607
 
599
- // keyed by config and raw prop values, so repeat renders of the same <Theme>
608
+ // keyed by config and raw prop values, so repeat renders of the same <ThemeUpdate>
600
609
  // reuse one layer object. downstream identity caches and snapshot bailouts key
601
610
  // off this object. each config cache is bounded with the same clear-on-limit
602
611
  // pattern as simpleHash's string cache.
603
- const flatLayers = new WeakMap<object, Map<string, InlineValues>>()
612
+ const flatLayers = new WeakMap<ConfigRevisionState, Map<string, InlineValues>>()
604
613
 
605
614
  /**
606
- * Reads theme-key props off a <Theme> into the inline layer shape the rest of
615
+ * Reads theme-key props off a <ThemeUpdate> into the layer shape the rest of
607
616
  * the system already consumes. Returns null when the element carries no theme
608
617
  * key props at all, which is one loop over its props (two entries for a plain
609
- * `<Theme name="dark">`) and no allocation.
618
+ * `<ThemeUpdate>`) and no allocation.
610
619
  *
611
620
  * A key that is present but currently undefined still produces an empty
612
621
  * layer. Presence, not value, is what makes an element a theme-updating
613
622
  * one (the same rule `hasThemeUpdatingProps` applies to `name`), and it is
614
- * what keeps `<Theme background={on ? 'red' : undefined}>` rendering the same
623
+ * what keeps `<ThemeUpdate background={on ? 'red' : undefined}>` rendering the same
615
624
  * tree in both states instead of remounting its subtree when a value appears.
616
625
  */
617
626
  export function getInlineValuesFromProps(
@@ -632,10 +641,11 @@ export function getInlineValuesFromProps(
632
641
 
633
642
  if (!hasKey) return null
634
643
 
635
- let configLayers = flatLayers.get(conf.themes)
644
+ const generation = getConfigRevisionState(conf)
645
+ let configLayers = flatLayers.get(generation)
636
646
  if (!configLayers) {
637
647
  configLayers = new Map()
638
- flatLayers.set(conf.themes, configLayers)
648
+ flatLayers.set(generation, configLayers)
639
649
  }
640
650
 
641
651
  // a caller that asked for issues has to see them for every call, and a cache
@@ -665,10 +675,13 @@ export function getInlineValuesFromProps(
665
675
  return layer
666
676
  }
667
677
 
668
- const mergedThemeCache = new WeakMap<object, Map<string, Record<string, Variable>>>()
678
+ const mergedThemeCache = new WeakMap<
679
+ ConfigRevisionState,
680
+ WeakMap<object, Map<string, Record<string, Variable>>>
681
+ >()
669
682
 
670
683
  /**
671
- * Builds the merged theme for an inline `<Theme>` layer: parent theme spread plus
684
+ * Builds the merged theme for a `<ThemeUpdate>` layer: parent theme spread plus
672
685
  * overridden keys as variables, resolved per the shared contract (effective
673
686
  * map = values + matching non-scheme theme buckets + scheme bucket,
674
687
  * fixed-point references, cycle-involved keys dropped everywhere). Non-scheme
@@ -685,6 +698,7 @@ export function getMergedInlineTheme(
685
698
  themeName: string | undefined,
686
699
  conf: TamaguiInternalConfig
687
700
  ): Record<string, Variable> {
701
+ const generation = getConfigRevisionState(conf)
688
702
  const name = themeName || 'light'
689
703
  const activeScheme = name === 'dark' || name.startsWith('dark_') ? 'dark' : 'light'
690
704
 
@@ -706,12 +720,15 @@ export function getMergedInlineTheme(
706
720
  const cacheKey = `${getInlineValuesKey(inline)}|${activeScheme}|${matched ? matched.join(',') : ''}`
707
721
 
708
722
  // idempotency: re-applying the same layer to its own output is a no-op
709
- const existingInfo = (parentTheme as any)[inlineLayerKey] as InlineLayerInfo | undefined
710
- if (existingInfo?.key === cacheKey) {
723
+ const existingInfo = (parentTheme as any)[themeUpdateStateKey] as
724
+ | ThemeUpdateLayerInfo
725
+ | undefined
726
+ if (existingInfo?.generation === generation && existingInfo.key === cacheKey) {
711
727
  return parentTheme
712
728
  }
713
729
 
714
- let byKey = mergedThemeCache.get(parentTheme)
730
+ let generationCache = mergedThemeCache.get(generation)
731
+ let byKey = generationCache?.get(parentTheme)
715
732
  const cached = byKey?.get(cacheKey)
716
733
  if (cached) return cached
717
734
 
@@ -749,7 +766,7 @@ export function getMergedInlineTheme(
749
766
  if (themeValue !== undefined) {
750
767
  return isVariable(themeValue) ? themeValue.val : themeValue
751
768
  }
752
- const token = findToken(conf.tokensParsed, name)
769
+ const token = findVariableToken(conf.tokensParsed, name)
753
770
  if (token) return token.val
754
771
  return value
755
772
  }
@@ -759,8 +776,9 @@ export function getMergedInlineTheme(
759
776
  return value
760
777
  }
761
778
 
762
- const info: InlineLayerInfo = {
779
+ const info: ThemeUpdateLayerInfo = {
763
780
  key: cacheKey,
781
+ generation,
764
782
  // nested layers: carry the parent layer's overrides forward (its values
765
783
  // are plain enumerable entries after the spread, but the iOS pair info
766
784
  // would otherwise be lost)
@@ -798,7 +816,7 @@ export function getMergedInlineTheme(
798
816
  (typeof v === 'string' &&
799
817
  !(v in effective) &&
800
818
  !(v in parentTheme) &&
801
- !findToken(conf.tokensParsed, v)) ||
819
+ !findVariableToken(conf.tokensParsed, v)) ||
802
820
  typeof v === 'number'
803
821
  if (isLiteral(activeLiteral) && isLiteral(oppositeLiteral)) {
804
822
  info.pairs[key] = {
@@ -818,84 +836,20 @@ export function getMergedInlineTheme(
818
836
  return parentTheme
819
837
  }
820
838
 
821
- Object.defineProperty(merged, inlineLayerKey, {
839
+ Object.defineProperty(merged, themeUpdateStateKey, {
822
840
  value: info,
823
841
  enumerable: false,
824
842
  })
825
843
 
826
844
  byKey ||= new Map()
827
- mergedThemeCache.set(parentTheme, byKey)
845
+ if (!generationCache) {
846
+ generationCache = new WeakMap()
847
+ mergedThemeCache.set(generation, generationCache)
848
+ }
849
+ generationCache.set(parentTheme, byKey)
828
850
  if (byKey.size >= 10_000) {
829
851
  byKey.clear()
830
852
  }
831
853
  byKey.set(cacheKey, merged)
832
854
  return merged
833
855
  }
834
-
835
- /**
836
- * Config-level custom variables: merged into every base theme at createTamagui
837
- * time so they behave exactly like theme keys in every existing code path.
838
- * References resolve per-theme at parse time; sub-themes inherit through
839
- * proxyThemesToParents (native) and the cascade (web).
840
- */
841
- export function mergeConfigVariablesIntoTheme(
842
- theme: Record<string, Variable>,
843
- themeName: string,
844
- variables: GenericVariables,
845
- tokensParsed: TokensParsed
846
- ) {
847
- const scheme = themeName.startsWith('dark') ? 'dark' : 'light'
848
- const resolving = new Set<string>()
849
-
850
- const resolveRawValue = (key: string, value: unknown): unknown => {
851
- if (typeof value === 'object' && value !== null) {
852
- if (isVariable(value)) return value.val
853
- if ('needsPx' in value) return value
854
- if ('light' in value || 'dark' in value) {
855
- return resolveRawValue(key, (value as any)[scheme] ?? (value as any).light)
856
- }
857
- return
858
- }
859
- if (typeof value === 'string') {
860
- const name = value
861
- // other config variables first (chains allowed, cycles dropped)
862
- if (name in variables && !(name in theme)) {
863
- if (resolving.has(name)) {
864
- warnOnce(
865
- `config-cycle:${name}`,
866
- `createTamagui variables: reference cycle at "${name}" — dropping.`
867
- )
868
- return
869
- }
870
- resolving.add(name)
871
- const res = resolveRawValue(name, variables[name])
872
- resolving.delete(name)
873
- return res
874
- }
875
- const themeValue = theme[name]
876
- if (themeValue !== undefined) {
877
- return isVariable(themeValue) ? themeValue.val : themeValue
878
- }
879
- const token = findToken(tokensParsed, name)
880
- return token ? token.val : value
881
- }
882
- return value
883
- }
884
-
885
- for (const key in variables) {
886
- // an explicit theme value always wins over a config variable default
887
- if (key in theme) continue
888
- let raw = resolveRawValue(key, variables[key])
889
- if (raw === undefined) continue
890
- let needsPx = typeof raw === 'number' && !isUnitlessVariableKey(key)
891
- if (typeof raw === 'object' && raw !== null && 'needsPx' in raw) {
892
- needsPx = true
893
- raw = (raw as unknown as { val: number }).val
894
- }
895
- const variable = createVariable({ key, name: key, val: raw as any })
896
- if (needsPx) {
897
- variable.needsPx = true
898
- }
899
- theme[key] = variable
900
- }
901
- }
@@ -25,7 +25,7 @@ export function warnOnce(key: string, message = key) {
25
25
  /**
26
26
  * A value the flat-value scanner refused, reported where the author can act on
27
27
  * it. Item 5b left refusal silent, matching the clause scanner, so an author
28
- * who typed a `;` got nothing back and a style simply never appeared.
28
+ * who typed a `;` got nothing back and the bad segment simply never appeared.
29
29
  *
30
30
  * It warns rather than throws, and the throw it replaced is the reason to say
31
31
  * why. A style value is an ordinary place to put a string an app did not write
@@ -42,6 +42,6 @@ export function warnOnce(key: string, message = key) {
42
42
  export function warnRefusedValue(property: string, value: string, reason: string) {
43
43
  warnOnce(
44
44
  `refused:${property}=${value}`,
45
- `${property}="${value}" was dropped: ${reason}`
45
+ `${property}="${value}" had a segment dropped: ${reason}`
46
46
  )
47
47
  }
@@ -3,7 +3,10 @@ import type { MutableRefObject } from 'react'
3
3
  import { getConfig, getSetting } from '../config'
4
4
  import { getVariable } from '../createVariable'
5
5
  import { getDynamicVal } from '../helpers/getDynamicVal'
6
- import { inlineLayerKey, type InlineLayerInfo } from '../helpers/variables'
6
+ import {
7
+ themeUpdateStateKey,
8
+ type ThemeUpdateLayerInfo,
9
+ } from '../helpers/themeUpdateState'
7
10
  import type {
8
11
  ThemeParsed,
9
12
  ThemeState,
@@ -50,7 +53,7 @@ type ThemeGettable<Val> = Val & {
50
53
 
51
54
  // only proxy each theme one time, after that we know that renders are sync,
52
55
  // so we can just change the focus of the proxied theme and it can be re-used.
53
- // WeakMap so dynamically created theme objects (inline <Theme> layers)
56
+ // WeakMap so dynamically created ThemeUpdate theme objects
54
57
  // don't retain their proxies after the layer is gone
55
58
  const trackingCache: WeakMap<ThemeParsed, ThemeProxied> = new WeakMap()
56
59
  const untrackedCache: WeakMap<ThemeParsed, ThemeProxied> = new WeakMap()
@@ -148,13 +151,12 @@ export function getThemeProxied(
148
151
  )
149
152
  }
150
153
 
151
- // an inline <Theme> layer overrides this key: the config.themes
154
+ // a ThemeUpdate layer overrides this key: the config.themes
152
155
  // pair below would bypass it. use the layer's literal light/dark
153
156
  // pair when it has one, otherwise deopt to normal tracking
154
- const inlineLayer =
155
- process.env.TAMAGUI_RUNTIME_INLINE_THEME_VALUES === 'disabled'
156
- ? undefined
157
- : ((curState.theme as any)?.[inlineLayerKey] as InlineLayerInfo | undefined)
157
+ const inlineLayer = (curState.theme as any)?.[themeUpdateStateKey] as
158
+ | ThemeUpdateLayerInfo
159
+ | undefined
158
160
  const inlineOverridden = !!inlineLayer?.overridden.has(key)
159
161
 
160
162
  if (shouldOptimize && inlineOverridden) {