@tamagui/web 3.0.0-beta.661.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 (825) 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 +0 -1
  38. package/dist/cjs/createComponent.native.cjs +0 -1
  39. package/dist/cjs/createComponent.native.js +0 -1
  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 +2 -3
  54. package/dist/cjs/createTamagui.native.cjs +2 -3
  55. package/dist/cjs/createTamagui.native.js +2 -3
  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 +257 -283
  146. package/dist/cjs/helpers/directStyle.native.cjs +273 -305
  147. package/dist/cjs/helpers/directStyle.native.js +273 -305
  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 +3 -1
  162. package/dist/cjs/helpers/formatDiagnostic.native.cjs +3 -1
  163. package/dist/cjs/helpers/formatDiagnostic.native.js +3 -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 +0 -8
  194. package/dist/cjs/helpers/getSplitStyles.native.cjs +0 -8
  195. package/dist/cjs/helpers/getSplitStyles.native.js +0 -8
  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 +0 -1
  258. package/dist/cjs/helpers/mergeVariants.native.cjs +0 -1
  259. package/dist/cjs/helpers/mergeVariants.native.js +0 -1
  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 +28 -37
  320. package/dist/cjs/helpers/propMapper.native.cjs +28 -37
  321. package/dist/cjs/helpers/propMapper.native.js +28 -37
  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 +0 -1
  468. package/dist/cjs/hooks/useProps.native.cjs +0 -1
  469. package/dist/cjs/hooks/useProps.native.js +0 -1
  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 +0 -1
  516. package/dist/cjs/internal-runtime.native.cjs +0 -1
  517. package/dist/cjs/internal-runtime.native.js +0 -1
  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.map +1 -1
  609. package/dist/esm/createComponent.native.js.map +1 -1
  610. package/dist/esm/createFont.mjs.map +1 -1
  611. package/dist/esm/createFont.native.js.map +1 -1
  612. package/dist/esm/createTamagui.mjs +1 -1
  613. package/dist/esm/createTamagui.mjs.map +1 -1
  614. package/dist/esm/createTamagui.native.js +1 -1
  615. package/dist/esm/createTamagui.native.js.map +1 -1
  616. package/dist/esm/createVariable.mjs.map +1 -1
  617. package/dist/esm/createVariable.native.js.map +1 -1
  618. package/dist/esm/dom/primitives.native.js +1 -1
  619. package/dist/esm/dom/primitives.native.js.map +1 -1
  620. package/dist/esm/eventHandling.native.js.map +1 -1
  621. package/dist/esm/helpers/configVariables.mjs +60 -0
  622. package/dist/esm/helpers/configVariables.mjs.map +1 -0
  623. package/dist/esm/helpers/configVariables.native.js +65 -0
  624. package/dist/esm/helpers/configVariables.native.js.map +1 -0
  625. package/dist/esm/helpers/createDesignSystem.mjs.map +1 -1
  626. package/dist/esm/helpers/createDesignSystem.native.js.map +1 -1
  627. package/dist/esm/helpers/createStyledContext.mjs.map +1 -1
  628. package/dist/esm/helpers/createStyledContext.native.js.map +1 -1
  629. package/dist/esm/helpers/defaultAnimationDriver.mjs +1 -5
  630. package/dist/esm/helpers/defaultAnimationDriver.mjs.map +1 -1
  631. package/dist/esm/helpers/defaultAnimationDriver.native.js +0 -12
  632. package/dist/esm/helpers/defaultAnimationDriver.native.js.map +1 -1
  633. package/dist/esm/helpers/directStyle.mjs +257 -282
  634. package/dist/esm/helpers/directStyle.mjs.map +1 -1
  635. package/dist/esm/helpers/directStyle.native.js +273 -304
  636. package/dist/esm/helpers/directStyle.native.js.map +1 -1
  637. package/dist/esm/helpers/expandStyle.mjs.map +1 -1
  638. package/dist/esm/helpers/expandStyle.native.js.map +1 -1
  639. package/dist/esm/helpers/expandStyles.native.js.map +1 -1
  640. package/dist/esm/helpers/extractPseudoState.mjs.map +1 -1
  641. package/dist/esm/helpers/formatDiagnostic.mjs +3 -0
  642. package/dist/esm/helpers/formatDiagnostic.mjs.map +1 -1
  643. package/dist/esm/helpers/formatDiagnostic.native.js +3 -0
  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 +0 -7
  656. package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
  657. package/dist/esm/helpers/getSplitStyles.native.js +0 -7
  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/nativeStyleEngine.mjs.map +1 -1
  672. package/dist/esm/helpers/nativeStyleEngine.native.js.map +1 -1
  673. package/dist/esm/helpers/normalizeStyle.native.js.map +1 -1
  674. package/dist/esm/helpers/parseBorderShorthand.native.js.map +1 -1
  675. package/dist/esm/helpers/parseNativeStyle.native.js.map +1 -1
  676. package/dist/esm/helpers/parseNativeTransform.native.js.map +1 -1
  677. package/dist/esm/helpers/parseOutlineShorthand.native.js.map +1 -1
  678. package/dist/esm/helpers/propMapper.mjs +29 -37
  679. package/dist/esm/helpers/propMapper.mjs.map +1 -1
  680. package/dist/esm/helpers/propMapper.native.js +29 -37
  681. package/dist/esm/helpers/propMapper.native.js.map +1 -1
  682. package/dist/esm/helpers/proxyThemeToParents.mjs.map +1 -1
  683. package/dist/esm/helpers/proxyThemeToParents.native.js.map +1 -1
  684. package/dist/esm/helpers/registerCSSVariable.mjs.map +1 -1
  685. package/dist/esm/helpers/registerCSSVariable.native.js.map +1 -1
  686. package/dist/esm/helpers/resolveSafeAreaVariable.native.js.map +1 -1
  687. package/dist/esm/helpers/subscribeToContextGroup.native.js.map +1 -1
  688. package/dist/esm/helpers/themeRef.mjs.map +1 -1
  689. package/dist/esm/helpers/themeRef.native.js.map +1 -1
  690. package/dist/esm/helpers/themeUpdateState.mjs +4 -0
  691. package/dist/esm/helpers/themeUpdateState.mjs.map +1 -0
  692. package/dist/esm/helpers/themeUpdateState.native.js +4 -0
  693. package/dist/esm/helpers/themeUpdateState.native.js.map +1 -0
  694. package/dist/esm/helpers/timer.mjs.map +1 -1
  695. package/dist/esm/helpers/timer.native.js.map +1 -1
  696. package/dist/esm/helpers/tokenCategories.mjs.map +1 -1
  697. package/dist/esm/helpers/tokenCategories.native.js.map +1 -1
  698. package/dist/esm/helpers/transformsToString.native.js.map +1 -1
  699. package/dist/esm/helpers/useRenderElement.mjs.map +1 -1
  700. package/dist/esm/helpers/useRenderElement.native.js.map +1 -1
  701. package/dist/esm/helpers/variableValue.mjs +44 -0
  702. package/dist/esm/helpers/variableValue.mjs.map +1 -0
  703. package/dist/esm/helpers/variableValue.native.js +64 -0
  704. package/dist/esm/helpers/variableValue.native.js.map +1 -0
  705. package/dist/esm/helpers/variables.mjs +96 -136
  706. package/dist/esm/helpers/variables.mjs.map +1 -1
  707. package/dist/esm/helpers/variables.native.js +98 -158
  708. package/dist/esm/helpers/variables.native.js.map +1 -1
  709. package/dist/esm/helpers/warnOnce.mjs +1 -1
  710. package/dist/esm/helpers/warnOnce.mjs.map +1 -1
  711. package/dist/esm/helpers/warnOnce.native.js +1 -1
  712. package/dist/esm/helpers/warnOnce.native.js.map +1 -1
  713. package/dist/esm/hooks/getThemeProxied.mjs.map +1 -1
  714. package/dist/esm/hooks/getThemeProxied.native.js +2 -2
  715. package/dist/esm/hooks/getThemeProxied.native.js.map +1 -1
  716. package/dist/esm/hooks/useAnimationDriver.mjs +14 -8
  717. package/dist/esm/hooks/useAnimationDriver.mjs.map +1 -1
  718. package/dist/esm/hooks/useAnimationDriver.native.js +14 -8
  719. package/dist/esm/hooks/useAnimationDriver.native.js.map +1 -1
  720. package/dist/esm/hooks/useComponentState.mjs +27 -24
  721. package/dist/esm/hooks/useComponentState.mjs.map +1 -1
  722. package/dist/esm/hooks/useComponentState.native.js +28 -24
  723. package/dist/esm/hooks/useComponentState.native.js.map +1 -1
  724. package/dist/esm/hooks/useMedia.mjs.map +1 -1
  725. package/dist/esm/hooks/useMedia.native.js.map +1 -1
  726. package/dist/esm/hooks/usePortalThemeState.mjs +2 -2
  727. package/dist/esm/hooks/usePortalThemeState.mjs.map +1 -1
  728. package/dist/esm/hooks/usePortalThemeState.native.js +2 -2
  729. package/dist/esm/hooks/usePortalThemeState.native.js.map +1 -1
  730. package/dist/esm/hooks/useProps.mjs.map +1 -1
  731. package/dist/esm/hooks/useProps.native.js.map +1 -1
  732. package/dist/esm/hooks/useThemeName.mjs.map +1 -1
  733. package/dist/esm/hooks/useThemeState.mjs +12 -15
  734. package/dist/esm/hooks/useThemeState.mjs.map +1 -1
  735. package/dist/esm/hooks/useThemeState.native.js +14 -17
  736. package/dist/esm/hooks/useThemeState.native.js.map +1 -1
  737. package/dist/esm/index.js +0 -2
  738. package/dist/esm/index.mjs +0 -2
  739. package/dist/esm/index.native.js +0 -2
  740. package/dist/esm/insertFont.mjs.map +1 -1
  741. package/dist/esm/insertFont.native.js.map +1 -1
  742. package/dist/esm/styled.mjs.map +1 -1
  743. package/dist/esm/styled.native.js.map +1 -1
  744. package/dist/esm/theme-update.mjs +3 -0
  745. package/dist/esm/theme-update.native.js +3 -0
  746. package/dist/esm/views/FontLanguage.mjs.map +1 -1
  747. package/dist/esm/views/SafeAreaTracker.native.js.map +1 -1
  748. package/dist/esm/views/TamaguiProvider.mjs.map +1 -1
  749. package/dist/esm/views/TamaguiProvider.native.js.map +1 -1
  750. package/dist/esm/views/Theme.mjs +8 -33
  751. package/dist/esm/views/Theme.mjs.map +1 -1
  752. package/dist/esm/views/Theme.native.js +9 -19
  753. package/dist/esm/views/Theme.native.js.map +1 -1
  754. package/dist/esm/views/ThemeUpdate.mjs +54 -0
  755. package/dist/esm/views/ThemeUpdate.mjs.map +1 -0
  756. package/dist/esm/views/ThemeUpdate.native.js +53 -0
  757. package/dist/esm/views/ThemeUpdate.native.js.map +1 -0
  758. package/package.json +26 -17
  759. package/src/config.ts +7 -0
  760. package/src/createTamagui.ts +2 -2
  761. package/src/dom/primitives.native.tsx +1 -1
  762. package/src/helpers/configVariables.ts +64 -0
  763. package/src/helpers/defaultAnimationDriver.tsx +0 -4
  764. package/src/helpers/directStyle.ts +875 -465
  765. package/src/helpers/formatDiagnostic.ts +3 -0
  766. package/src/helpers/getCSSStylesAtomic.ts +5 -1
  767. package/src/helpers/getSplitStyles.tsx +0 -15
  768. package/src/helpers/grammarConfig.ts +82 -12
  769. package/src/helpers/nativeTransitionTarget.native.ts +1 -1
  770. package/src/helpers/nativeTransitionTarget.ts +1 -1
  771. package/src/helpers/propMapper.ts +41 -43
  772. package/src/helpers/themeUpdateState.ts +27 -0
  773. package/src/helpers/variableValue.ts +45 -0
  774. package/src/helpers/variables.ts +149 -195
  775. package/src/helpers/warnOnce.ts +2 -2
  776. package/src/hooks/getThemeProxied.ts +8 -5
  777. package/src/hooks/useAnimationDriver.ts +26 -11
  778. package/src/hooks/useComponentState.ts +44 -31
  779. package/src/hooks/usePortalThemeState.ts +8 -8
  780. package/src/hooks/useThemeState.ts +16 -31
  781. package/src/index.ts +0 -1
  782. package/src/theme-update.ts +2 -0
  783. package/src/types.tsx +13 -21
  784. package/src/views/Theme.tsx +18 -77
  785. package/src/views/ThemeUpdate.tsx +88 -0
  786. package/types/config.d.ts.map +1 -1
  787. package/types/helpers/configVariables.d.ts +3 -0
  788. package/types/helpers/configVariables.d.ts.map +1 -0
  789. package/types/helpers/defaultAnimationDriver.d.ts.map +1 -1
  790. package/types/helpers/directStyle.d.ts +2 -23
  791. package/types/helpers/directStyle.d.ts.map +1 -1
  792. package/types/helpers/formatDiagnostic.d.ts.map +1 -1
  793. package/types/helpers/getCSSStylesAtomic.d.ts.map +1 -1
  794. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  795. package/types/helpers/grammarConfig.d.ts +9 -0
  796. package/types/helpers/grammarConfig.d.ts.map +1 -1
  797. package/types/helpers/nativeTransitionTarget.d.ts +1 -1
  798. package/types/helpers/nativeTransitionTarget.d.ts.map +1 -1
  799. package/types/helpers/nativeTransitionTarget.native.d.ts +1 -1
  800. package/types/helpers/nativeTransitionTarget.native.d.ts.map +1 -1
  801. package/types/helpers/propMapper.d.ts.map +1 -1
  802. package/types/helpers/themeUpdateState.d.ts +23 -0
  803. package/types/helpers/themeUpdateState.d.ts.map +1 -0
  804. package/types/helpers/variableValue.d.ts +4 -0
  805. package/types/helpers/variableValue.d.ts.map +1 -0
  806. package/types/helpers/variables.d.ts +7 -24
  807. package/types/helpers/variables.d.ts.map +1 -1
  808. package/types/helpers/warnOnce.d.ts +1 -1
  809. package/types/hooks/getThemeProxied.d.ts.map +1 -1
  810. package/types/hooks/useAnimationDriver.d.ts.map +1 -1
  811. package/types/hooks/useComponentState.d.ts.map +1 -1
  812. package/types/hooks/usePortalThemeState.d.ts +5 -5
  813. package/types/hooks/usePortalThemeState.d.ts.map +1 -1
  814. package/types/hooks/useThemeState.d.ts +2 -5
  815. package/types/hooks/useThemeState.d.ts.map +1 -1
  816. package/types/index.d.ts +0 -1
  817. package/types/index.d.ts.map +1 -1
  818. package/types/theme-update.d.ts +3 -0
  819. package/types/theme-update.d.ts.map +1 -0
  820. package/types/types.d.ts +6 -17
  821. package/types/types.d.ts.map +1 -1
  822. package/types/views/Theme.d.ts +2 -15
  823. package/types/views/Theme.d.ts.map +1 -1
  824. package/types/views/ThemeUpdate.d.ts +15 -0
  825. package/types/views/ThemeUpdate.d.ts.map +1 -0
@@ -1,6 +1,7 @@
1
1
  import { useConfiguration } from '../contexts/ComponentContext'
2
2
  import type {
3
3
  AnimationDriver,
4
+ AnimationDriverWithAnimatedNumbers,
4
5
  UniversalAnimatedNumber,
5
6
  UseAnimatedNumberReaction,
6
7
  UseAnimatedNumberStyle,
@@ -13,25 +14,39 @@ import type {
13
14
  // `animatedBy` multi-driver setups).
14
15
  export function useAnimationDriver(): AnimationDriver {
15
16
  const { animationDriver } = useConfiguration()
16
- if (process.env.NODE_ENV === 'development') {
17
- if (!animationDriver || animationDriver.isStub) {
18
- throw new Error(
19
- `No animation driver configured. To use the animation hooks (useAnimatedNumber, useAnimatedNumberStyle, ...), pass \`animations\` to createTamagui. See: https://tamagui.dev/docs/core/animations`
20
- )
21
- }
17
+ if (!animationDriver || animationDriver.isStub) {
18
+ throw new Error(
19
+ `No animation driver configured. Pass \`animations\` to createTamagui. See: https://tamagui.dev/docs/core/animations`
20
+ )
22
21
  }
23
- return animationDriver!
22
+ return animationDriver
23
+ }
24
+
25
+ function useAnimatedNumberDriver(): AnimationDriverWithAnimatedNumbers {
26
+ const driver = useAnimationDriver()
27
+ const animatedDriver = driver as Partial<AnimationDriverWithAnimatedNumbers>
28
+ if (
29
+ typeof animatedDriver.useAnimatedNumber !== 'function' ||
30
+ typeof animatedDriver.useAnimatedNumberStyle !== 'function' ||
31
+ typeof animatedDriver.useAnimatedNumbersStyle !== 'function' ||
32
+ typeof animatedDriver.useAnimatedNumberReaction !== 'function'
33
+ ) {
34
+ throw new Error(
35
+ `The configured animation driver does not include animated-number hooks. When using the CSS driver, import \`createAnimations\` from \`@tamagui/animations-css/extras\` instead of \`@tamagui/animations-css\`. See: https://tamagui.dev/docs/core/animations-css`
36
+ )
37
+ }
38
+ return animatedDriver as AnimationDriverWithAnimatedNumbers
24
39
  }
25
40
 
26
41
  export function useAnimatedNumber(initial: number): UniversalAnimatedNumber<any> {
27
- return useAnimationDriver().useAnimatedNumber(initial)
42
+ return useAnimatedNumberDriver().useAnimatedNumber(initial)
28
43
  }
29
44
 
30
45
  export const useAnimatedNumberStyle: UseAnimatedNumberStyle = (value, getStyle) =>
31
- useAnimationDriver().useAnimatedNumberStyle(value, getStyle)
46
+ useAnimatedNumberDriver().useAnimatedNumberStyle(value, getStyle)
32
47
 
33
48
  export const useAnimatedNumbersStyle: UseAnimatedNumbersStyle = (values, getStyle) =>
34
- useAnimationDriver().useAnimatedNumbersStyle(values, getStyle)
49
+ useAnimatedNumberDriver().useAnimatedNumbersStyle(values, getStyle)
35
50
 
36
51
  export const useAnimatedNumberReaction: UseAnimatedNumberReaction = (opts, onValue) =>
37
- useAnimationDriver().useAnimatedNumberReaction(opts, onValue)
52
+ useAnimatedNumberDriver().useAnimatedNumberReaction(opts, onValue)
@@ -1,6 +1,10 @@
1
1
  import { getPlatformDriver, isServer, isWeb } from '@tamagui/constants'
2
2
  import { stylePropsAll } from '@tamagui/helpers'
3
- import { canonicalClauseModifier, scanFlatValue } from '@tamagui/style-grammar/runtime'
3
+ import {
4
+ canonicalClauseModifier,
5
+ scanFlatValue,
6
+ type FlatValueHandler,
7
+ } from '@tamagui/style-grammar/runtime'
4
8
  import { mergeIfNotShallowEqual } from '@tamagui/is-equal-shallow'
5
9
  import { useDidFinishSSR, useIsClientOnly } from '@tamagui/use-did-finish-ssr'
6
10
  import { useRef, useState } from 'react'
@@ -31,34 +35,31 @@ import type { ViewProps } from '../views/View'
31
35
  const platformPseudoModifiers = new Set(['hover', 'press', 'focus'])
32
36
  const enterModifier = new Set(['enter'])
33
37
 
34
- // One live scan at a time, so the visitor and its state are hoisted rather than
35
- // rebuilt per prop: this runs on every render of every component, and the whole
36
- // point of an index-based scanner is that asking the question costs nothing.
37
- let scanSource = ''
38
- let scanWanted: ReadonlySet<string> = enterModifier
39
- let scanFound = false
40
- let scanRefused = false
41
-
42
- const lifecycleVisitor = {
43
- segment(start: number, end: number, isBase: boolean) {
44
- // a clause with no payload is a value parseValue refuses, so nothing in it
45
- // reaches the style object and nothing in it can start an animation
46
- if (start === end && !isBase) scanRefused = true
38
+ type LifecycleScanContext = TamaguiComponentStateRef & {
39
+ // source, wanted modifiers, found, and pending match. created once per
40
+ // component and reused by both lifecycle questions on every render.
41
+ flatScan?: [string, ReadonlySet<string>, boolean, boolean]
42
+ }
43
+
44
+ const lifecycleHandler: FlatValueHandler<LifecycleScanContext> = {
45
+ segment(ctx, start, end, isBase, valid) {
46
+ const scan = ctx.flatScan!
47
+ if (!isBase && valid && start < end && scan[3]) scan[2] = true
48
+ scan[3] = false
47
49
  },
48
- chain(start: number, end: number) {
49
- if (scanRefused) return false
50
+ chain(ctx, start, end, valid) {
51
+ const scan = ctx.flatScan!
52
+ scan[3] = false
53
+ if (!valid) return true
50
54
  for (let index = start; index <= end; index++) {
51
- if (index !== end && scanSource.charCodeAt(index) !== 58) continue
52
- if (scanWanted.has(canonicalClauseModifier(scanSource.slice(start, index)))) {
53
- scanFound = true
55
+ if (index !== end && scan[0].charCodeAt(index) !== 58) continue
56
+ if (scan[1].has(canonicalClauseModifier(scan[0].slice(start, index)))) {
57
+ scan[3] = true
54
58
  }
55
59
  start = index + 1
56
60
  }
57
61
  return true
58
62
  },
59
- error() {
60
- scanRefused = true
61
- },
62
63
  }
63
64
 
64
65
  /**
@@ -72,19 +73,21 @@ const lifecycleVisitor = {
72
73
  function hasFlatModifier(
73
74
  props: Record<string, any>,
74
75
  config: TamaguiInternalConfig,
75
- modifiers: ReadonlySet<string>
76
+ modifiers: ReadonlySet<string>,
77
+ ctx: LifecycleScanContext
76
78
  ): boolean {
79
+ const scan = (ctx.flatScan ||= ['', enterModifier, false, false])
77
80
  for (const key in props) {
78
81
  const value = props[key]
79
82
  if (typeof value !== 'string' || value.indexOf(':') === -1) continue
80
83
  const property = config.shorthands[key] || key
81
84
  if (!(property in stylePropsAll) && property !== 'transition') continue
82
- scanSource = value
83
- scanWanted = modifiers
84
- scanFound = false
85
- scanRefused = false
86
- scanFlatValue(value, lifecycleVisitor)
87
- if (scanFound && !scanRefused) return true
85
+ scan[0] = value
86
+ scan[1] = modifiers
87
+ scan[2] = false
88
+ scan[3] = false
89
+ scanFlatValue(value, lifecycleHandler, ctx)
90
+ if (scan[2]) return true
88
91
  }
89
92
  return false
90
93
  }
@@ -143,7 +146,12 @@ export const useComponentState = (
143
146
  useAnimations &&
144
147
  animationDriver?.avoidReRenders &&
145
148
  getPlatformDriver()?.pseudo &&
146
- hasFlatModifier(props, config, platformPseudoModifiers)
149
+ hasFlatModifier(
150
+ props,
151
+ config,
152
+ platformPseudoModifiers,
153
+ curStateRef as LifecycleScanContext
154
+ )
147
155
  )
148
156
 
149
157
  const willBeAnimatedClient = (() => {
@@ -172,7 +180,12 @@ export const useComponentState = (
172
180
  const isExiting = presenceState?.isPresent === false
173
181
  const isEntering = presenceState?.isPresent === true && presenceState.initial !== false
174
182
 
175
- const hasEnterStyle = hasFlatModifier(props, config, enterModifier)
183
+ const hasEnterStyle = hasFlatModifier(
184
+ props,
185
+ config,
186
+ enterModifier,
187
+ curStateRef as LifecycleScanContext
188
+ )
176
189
 
177
190
  const hasAnimationThatNeedsHydrate =
178
191
  hasAnimationProp &&
@@ -1,32 +1,32 @@
1
1
  import { useContext } from 'react'
2
2
 
3
3
  import {
4
- getInlineThemeLayer,
4
+ getThemeUpdateLayer,
5
5
  getThemeProviderParent,
6
6
  ThemeStateContext,
7
- type InlineThemeLayer,
8
7
  } from './useThemeState'
9
8
  import { useThemeName } from './useThemeName'
9
+ import type { ThemeUpdateState } from '../helpers/themeUpdateState'
10
10
 
11
11
  export type PortalThemeState = {
12
12
  name: string
13
13
  /** Root-most first, so a consumer can replay them in authored order. */
14
- layers: InlineThemeLayer[]
14
+ layers: ThemeUpdateState[]
15
15
  }
16
16
 
17
17
  /**
18
18
  * The theme state a portal must carry across the mount boundary.
19
19
  *
20
- * A name alone is not enough: `<Theme name="dark" background="#0b2545">` puts
21
- * its direct values on a CSS custom-property node in the mount ancestry, and
22
- * portaled content is not a descendant of that node.
20
+ * A name alone is not enough: `<ThemeUpdate background="#0b2545">` puts its
21
+ * values on a CSS custom-property node in the mount ancestry, and portaled
22
+ * content is not a descendant of that node.
23
23
  */
24
24
  export function usePortalThemeState(): PortalThemeState {
25
25
  const name = useThemeName()
26
- const layers: InlineThemeLayer[] = []
26
+ const layers: ThemeUpdateState[] = []
27
27
  let cursor: string | undefined = useContext(ThemeStateContext)
28
28
  while (cursor) {
29
- const layer = getInlineThemeLayer(cursor)
29
+ const layer = getThemeUpdateLayer(cursor)
30
30
  if (layer) layers.unshift(layer)
31
31
  cursor = getThemeProviderParent(cursor)
32
32
  }
@@ -10,7 +10,6 @@ import {
10
10
  } from 'react'
11
11
  import { getConfig, getSetting } from '../config'
12
12
  import { formatDiagnostic } from '../helpers/formatDiagnostic'
13
- import { getInlineValuesKey, getMergedInlineTheme } from '../helpers/variables'
14
13
  import { MISSING_THEME_MESSAGE } from '../constants/constants'
15
14
  import type {
16
15
  ThemeParsed,
@@ -18,6 +17,7 @@ import type {
18
17
  ThemeState,
19
18
  UseThemeWithStateProps,
20
19
  } from '../types'
20
+ import type { ThemeUpdateState } from '../helpers/themeUpdateState'
21
21
 
22
22
  type ID = string
23
23
 
@@ -44,11 +44,11 @@ export const forceUpdateThemes = () => {
44
44
  export const getThemeState = (id: ID) => states.get(id)
45
45
 
46
46
  /**
47
- * Direct theme-value layers and the provider chain, both keyed by the id a
47
+ * ThemeUpdate layers and the provider chain, both keyed by the id a
48
48
  * `<Theme>` pushes into `ThemeStateContext`.
49
49
  *
50
50
  * A portal renders outside its mount ancestry, so it cannot inherit the CSS
51
- * custom properties a `<Theme background="...">` put on an ancestor node. The
51
+ * custom properties a `<ThemeUpdate background="...">` put on an ancestor node. The
52
52
  * portal bridge walks this chain and replays exactly those layers. It cannot
53
53
  * use `ThemeState.parentId`: a state that resolves to the same theme as its
54
54
  * parent is a copy of the parent state, so its `parentId` skips a level.
@@ -56,20 +56,15 @@ export const getThemeState = (id: ID) => states.get(id)
56
56
  * Only `<Theme>` providers are recorded, which is also the only kind of state
57
57
  * whose id can appear in `ThemeStateContext`.
58
58
  */
59
- const inlineThemeLayers = new Map<ID, InlineThemeLayer>()
59
+ const themeUpdateLayers = new Map<ID, ThemeUpdateState>()
60
60
  const themeProviderParents = new Map<ID, ID>()
61
61
 
62
- export type InlineThemeLayer = {
63
- inlineValues: NonNullable<UseThemeWithStateProps['inlineValues']>
64
- inlineClassName: string | undefined
65
- }
66
-
67
- export const getInlineThemeLayer = (id: ID) => inlineThemeLayers.get(id)
62
+ export const getThemeUpdateLayer = (id: ID) => themeUpdateLayers.get(id)
68
63
  export const getThemeProviderParent = (id: ID) => themeProviderParents.get(id)
69
64
 
70
65
  /** introspection for devtools and leak probes: entries retained per map */
71
66
  export const getThemeProviderChainSizes = () => ({
72
- layers: inlineThemeLayers.size,
67
+ layers: themeUpdateLayers.size,
73
68
  parents: themeProviderParents.size,
74
69
  })
75
70
 
@@ -79,13 +74,10 @@ const registerThemeProviderChain = (
79
74
  props: UseThemeWithStateProps
80
75
  ) => {
81
76
  themeProviderParents.set(id, parentId)
82
- if (props.inlineValues) {
83
- inlineThemeLayers.set(id, {
84
- inlineValues: props.inlineValues,
85
- inlineClassName: props.inlineClassName,
86
- })
77
+ if (props._themeUpdate) {
78
+ themeUpdateLayers.set(id, props._themeUpdate)
87
79
  } else {
88
- inlineThemeLayers.delete(id)
80
+ themeUpdateLayers.delete(id)
89
81
  }
90
82
  }
91
83
 
@@ -347,7 +339,7 @@ function cleanupThemeState(r: ThemeStateRef) {
347
339
  // both branches retire the id, and a subscribed <Theme> provider only ever
348
340
  // takes the first one, so the portal-bridge chain has to be cleared here
349
341
  // rather than inside the unsubscribed branch.
350
- inlineThemeLayers.delete(r.id)
342
+ themeUpdateLayers.delete(r.id)
351
343
  themeProviderParents.delete(r.id)
352
344
  }
353
345
 
@@ -421,21 +413,16 @@ const getSnapshotImpl = (r: SnapshotRef): ThemeState => {
421
413
  PendingUpdate.get(id)
422
414
  )
423
415
 
424
- // inline <Theme> layer: swap in the merged theme so descendants
416
+ // ThemeUpdate layer: swap in the merged theme so descendants
425
417
  // (which read states.get(parentId).theme) see the patched values. The base
426
418
  // is always the PARENT state's theme, never this state's own theme —
427
419
  // getNextState can return our previous (already-merged) state, and merging
428
420
  // over own output would keep removed patch keys alive. Merged objects are
429
421
  // identity-cached per (base theme, values, scheme) so bailouts stay stable.
430
422
  let next = nextRaw
431
- if (props.inlineValues && nextRaw?.theme) {
423
+ if (props._themeUpdate && nextRaw?.theme) {
432
424
  const parentTheme = states.get(parentId)?.theme || nextRaw.theme
433
- const merged = getMergedInlineTheme(
434
- parentTheme,
435
- props.inlineValues,
436
- nextRaw.name,
437
- getConfig()
438
- )
425
+ const merged = props._themeUpdate.getTheme(parentTheme, nextRaw.name, getConfig())
439
426
  if (merged !== nextRaw.theme) {
440
427
  next = { ...nextRaw, theme: merged as ThemeParsed }
441
428
  }
@@ -763,14 +750,12 @@ const getPropsKey = ({
763
750
  name,
764
751
  reset,
765
752
  forceClassName,
766
- inlineValues,
753
+ _themeUpdate,
767
754
  }: UseThemeWithStateProps) =>
768
- `${name || ''}${reset || ''}${forceClassName || ''}${
769
- inlineValues ? getInlineValuesKey(inlineValues) : ''
770
- }`
755
+ `${name || ''}${reset || ''}${forceClassName || ''}${_themeUpdate?.key || ''}`
771
756
 
772
757
  export const hasThemeUpdatingProps = (props: UseThemeWithStateProps) =>
773
758
  'name' in props ||
774
759
  'reset' in props ||
775
760
  'forceClassName' in props ||
776
- 'inlineValues' in props
761
+ '_themeUpdate' in props
package/src/index.ts CHANGED
@@ -24,7 +24,6 @@ export {
24
24
  type NativeViewStateUpdate,
25
25
  } from './helpers/nativeStyleEngine'
26
26
  export * from './helpers/getThemeCSSRules'
27
- export * from './helpers/variables'
28
27
  export * from './helpers/getVariantExtras'
29
28
  export {
30
29
  autoVariables,
@@ -0,0 +1,2 @@
1
+ export * from './helpers/variables'
2
+ export * from './views/ThemeUpdate'
package/src/types.tsx CHANGED
@@ -1055,14 +1055,8 @@ export type ThemeParsed = {
1055
1055
  [key in ThemeKeys]: CoerceToVariable<ThemeDefinition[key]>
1056
1056
  }
1057
1057
 
1058
- type InlineThemeValues = {
1059
- [Key in ThemeKeys]?: VariableValIn
1060
- }
1061
-
1062
1058
  /**
1063
- * Prop names `<Theme>` owns. Every other prop it receives is read as a theme
1064
- * key, so a theme key or a `createTamagui({ variables })` entry can't use one
1065
- * of these names. development builds report the collision.
1059
+ * Prop names `<Theme>` owns. Inline values are authored on `<ThemeUpdate>`.
1066
1060
  */
1067
1061
  export type ReservedThemePropName =
1068
1062
  | '_isRoot'
@@ -1074,8 +1068,7 @@ export type ReservedThemePropName =
1074
1068
  | 'disable'
1075
1069
  | 'disable-child-theme'
1076
1070
  | 'forceClassName'
1077
- | 'inlineClassName'
1078
- | 'inlineValues'
1071
+ | '_themeUpdate'
1079
1072
  | 'name'
1080
1073
  | 'nativeUpdate'
1081
1074
  | 'needsUpdate'
@@ -1159,13 +1152,8 @@ export type UseThemeWithStateProps = ThemeProps & {
1159
1152
  passThrough?: boolean
1160
1153
  disable?: boolean
1161
1154
  needsUpdate?: () => boolean
1162
- /** inline theme layer: patches merged over the parent theme */
1163
- inlineValues?: {
1164
- values?: InlineThemeValues
1165
- themes?: { [Name in ThemeName]?: InlineThemeValues }
1166
- }
1167
- /** the `tvar_` class carrying this layer's custom properties on web */
1168
- inlineClassName?: string
1155
+ /** opaque internal value patch created by `<ThemeUpdate>` */
1156
+ _themeUpdate?: import('./helpers/themeUpdateState').ThemeUpdateState
1169
1157
  /**
1170
1158
  * native fast path (experimental): called on a theme update instead of
1171
1159
  * re-rendering; return true when the update was committed natively so the
@@ -3373,7 +3361,6 @@ export type SplitStyleProps = {
3373
3361
  noMergeStyle?: boolean
3374
3362
  resolveValues?: ResolveVariableAs
3375
3363
  disableExpandShorthands?: boolean
3376
- fallbackProps?: Record<string, any>
3377
3364
  hasTextAncestor?: boolean
3378
3365
  // for animations
3379
3366
  willBeAnimated?: boolean // we need to track media queries even before animation
@@ -3474,12 +3461,17 @@ export type AnimationDriver<A extends AnimationConfig = AnimationConfig> =
3474
3461
  children?: React.ReactNode
3475
3462
  disabled?: boolean
3476
3463
  }) => React.ReactNode
3477
- useAnimatedNumber: UseAnimatedNumber
3478
- useAnimatedNumberStyle: UseAnimatedNumberStyle
3479
- useAnimatedNumbersStyle: UseAnimatedNumbersStyle
3480
- useAnimatedNumberReaction: UseAnimatedNumberReaction
3481
3464
  }
3482
3465
 
3466
+ export type AnimationDriverWithAnimatedNumbers<
3467
+ A extends AnimationConfig = AnimationConfig,
3468
+ > = AnimationDriver<A> & {
3469
+ useAnimatedNumber: UseAnimatedNumber
3470
+ useAnimatedNumberStyle: UseAnimatedNumberStyle
3471
+ useAnimatedNumbersStyle: UseAnimatedNumbersStyle
3472
+ useAnimatedNumberReaction: UseAnimatedNumberReaction
3473
+ }
3474
+
3483
3475
  export type AnimationDriverStub<A extends AnimationConfig = AnimationConfig> =
3484
3476
  AnimationDriverBase<A> & {
3485
3477
  isStub: true
@@ -1,60 +1,25 @@
1
1
  import { createRefComponent } from '@tamagui/compose-refs'
2
2
  import { isWeb, useIsomorphicLayoutEffect } from '@tamagui/constants'
3
- import { getThemeClassNames } from '@tamagui/helpers'
3
+ import { getThemeClassNames, reservedThemeProps } from '@tamagui/helpers'
4
4
  import type { MutableRefObject } from 'react'
5
5
  import React, { Children, cloneElement, isValidElement, useRef } from 'react'
6
- import { getConfig, getSetting } from '../config'
7
6
  import { variableToString } from '../createVariable'
8
7
  import { formatDiagnostic } from '../helpers/formatDiagnostic'
9
- import {
10
- insertStyleRules,
11
- shouldInsertStyleRules,
12
- updateRules,
13
- } from '../helpers/insertStyleRule'
14
8
  import {
15
9
  removeNativeStyleScope,
16
10
  updateNativeStyleScope,
17
11
  } from '../helpers/nativeStyleEngine'
18
- import { getInlineValuesFromProps, getVariablesCSSRules } from '../helpers/variables'
12
+ import { warnOnce } from '../helpers/warnOnce'
19
13
  import { useThemeWithState } from '../hooks/useTheme'
20
14
  import {
21
15
  getThemeState,
22
16
  hasThemeUpdatingProps,
23
17
  ThemeStateContext,
24
18
  } from '../hooks/useThemeState'
25
- import type {
26
- ReservedThemePropName,
27
- RulesToInsert,
28
- ThemeKeys,
29
- ThemeProps,
30
- ThemeState,
31
- UseThemeWithStateProps,
32
- VariableValIn,
33
- } from '../types'
19
+ import type { ThemeProps, ThemeState, UseThemeWithStateProps } from '../types'
34
20
  import { ThemeDebug } from './ThemeDebug'
35
21
 
36
- /**
37
- * Theme values set inline for a subtree: `<Theme background-hover="blue4">`.
38
- * Values use the same flat grammar as style props, narrowed to the modifiers a
39
- * whole subtree can honor: theme (`dark:`) and platform (`ios:`).
40
- *
41
- * Without a config augmentation `ThemeKeys` is `string`, which would make this
42
- * a catch-all index signature that every one of Theme's own props collides
43
- * with. There are no known theme keys to offer in that case, so it contributes
44
- * nothing instead.
45
- */
46
- export type ThemeUpdate = string extends ThemeKeys
47
- ? {}
48
- : {
49
- [Key in Exclude<ThemeKeys, ReservedThemePropName>]?: VariableValIn
50
- }
51
-
52
- type ThemeComponentPropsOnly = UseThemeWithStateProps &
53
- ThemeUpdate & { contain?: boolean }
54
-
55
- const useInsertEffectCompat = isWeb
56
- ? React.useInsertionEffect || useIsomorphicLayoutEffect
57
- : () => {}
22
+ type ThemeComponentPropsOnly = UseThemeWithStateProps & { contain?: boolean }
58
23
 
59
24
  export const Theme = createRefComponent(function Theme(
60
25
  props: ThemeComponentPropsOnly,
@@ -66,48 +31,25 @@ export const Theme = createRefComponent(function Theme(
66
31
  return props.children
67
32
  }
68
33
 
69
- const { passThrough } = props
70
-
71
- const isRoot = !!props['_isRoot']
72
-
73
- // theme-key props (<Theme background-hover="blue4 dark:blue2">) become an
74
- // inline layer merged over the parent theme. null for a plain <Theme>, which
75
- // costs one loop over its two or three props and allocates nothing.
76
- const config = getConfig()
77
- const inlineValues = getInlineValuesFromProps(props, config)
78
-
79
- // on web the same layer also compiles to custom properties on this node, so
80
- // styled descendants restyle through the cascade instead of re-rendering
81
- let inlineCSS: ReturnType<typeof getVariablesCSSRules> = null
82
- let rulesToInsert: RulesToInsert | null = null
83
- if (process.env.TAMAGUI_TARGET !== 'native' && inlineValues) {
84
- inlineCSS = getVariablesCSSRules(inlineValues, config)
85
- if (inlineCSS && shouldInsertStyleRules(inlineCSS.identifier)) {
86
- updateRules(inlineCSS.identifier, inlineCSS.rules)
87
- rulesToInsert = {
88
- [inlineCSS.identifier]: [
89
- 'variables',
90
- '',
91
- inlineCSS.identifier,
92
- undefined,
93
- inlineCSS.rules,
94
- ],
34
+ if (process.env.NODE_ENV === 'development') {
35
+ for (const key in props) {
36
+ if (!reservedThemeProps[key]) {
37
+ warnOnce(
38
+ `theme-update:${key}`,
39
+ `<Theme ${key}=...> no longer accepts inline values. Wrap the subtree in <ThemeUpdate ${key}=...> instead.`
40
+ )
95
41
  }
96
42
  }
97
43
  }
98
44
 
99
- useInsertEffectCompat(() => {
100
- if (rulesToInsert) insertStyleRules(rulesToInsert)
101
- }, [inlineCSS?.identifier])
45
+ const { passThrough } = props
102
46
 
103
- const themeProps: ThemeComponentPropsOnly = inlineValues
104
- ? { ...props, inlineValues, inlineClassName: inlineCSS?.identifier }
105
- : props
47
+ const isRoot = !!props['_isRoot']
106
48
 
107
49
  // pass forThemeView=true so the descendant-cascade effect is installed —
108
50
  // <Theme> pushes themeState.id into ThemeStateContext, so children subscribe
109
51
  // under this id and need to be notified when our propsKey changes.
110
- const [_, themeState] = useThemeWithState(themeProps, isRoot, true)
52
+ const [_, themeState] = useThemeWithState(props, isRoot, true)
111
53
 
112
54
  useIsomorphicLayoutEffect(() => {
113
55
  if (process.env.TAMAGUI_TARGET !== 'native') return
@@ -142,7 +84,7 @@ export const Theme = createRefComponent(function Theme(
142
84
  return getThemedChildren(
143
85
  themeState,
144
86
  finalChildren,
145
- themeProps,
87
+ props,
146
88
  isRoot,
147
89
  stateRef,
148
90
  passThrough
@@ -261,10 +203,9 @@ export function getThemedChildren(
261
203
  ? {}
262
204
  : getThemeClassNameAndColor(themeState, props, isRoot)
263
205
 
264
- // inline theme values ride the same span as the theme class: one node for
265
- // <Theme name="dark" background="red">, and it lands even when the theme
266
- // itself didn't change (getThemeClassNameAndColor returns nothing then)
267
- const inlineClassName = passThrough ? undefined : props.inlineClassName
206
+ // ThemeUpdate values ride the anonymous Theme span it creates, and land
207
+ // even when the resolved theme name itself did not change
208
+ const inlineClassName = passThrough ? undefined : props._themeUpdate?.className
268
209
 
269
210
  children = (
270
211
  <span
@@ -0,0 +1,88 @@
1
+ import { createRefComponent, type RefComponent } from '@tamagui/compose-refs'
2
+ import { isWeb, useIsomorphicLayoutEffect } from '@tamagui/constants'
3
+ import React from 'react'
4
+ import { getConfig } from '../config'
5
+ import {
6
+ insertStyleRules,
7
+ shouldInsertStyleRules,
8
+ updateRules,
9
+ } from '../helpers/insertStyleRule'
10
+ import type { ThemeUpdateState } from '../helpers/themeUpdateState'
11
+ import {
12
+ getInlineValuesFromProps,
13
+ getInlineValuesKey,
14
+ getMergedInlineTheme,
15
+ getVariablesCSSRules,
16
+ type InlineValues,
17
+ } from '../helpers/variables'
18
+ import type {
19
+ ReservedThemePropName,
20
+ RulesToInsert,
21
+ ThemeKeys,
22
+ VariableValIn,
23
+ } from '../types'
24
+ import { Theme } from './Theme'
25
+
26
+ type ThemeUpdateValues = string extends ThemeKeys
27
+ ? {}
28
+ : {
29
+ [Key in Exclude<ThemeKeys, ReservedThemePropName>]?: VariableValIn
30
+ }
31
+
32
+ export type ThemeUpdateProps = ThemeUpdateValues & { children?: React.ReactNode }
33
+
34
+ const useInsertEffectCompat = isWeb
35
+ ? React.useInsertionEffect || useIsomorphicLayoutEffect
36
+ : () => {}
37
+
38
+ const updateStates = new WeakMap<InlineValues, ThemeUpdateState>()
39
+
40
+ export function createThemeUpdateState(
41
+ values: InlineValues,
42
+ className?: string
43
+ ): ThemeUpdateState {
44
+ const cached = updateStates.get(values)
45
+ if (cached) return cached
46
+ const state: ThemeUpdateState = {
47
+ key: getInlineValuesKey(values),
48
+ className,
49
+ values,
50
+ getTheme(parentTheme, themeName, config) {
51
+ return getMergedInlineTheme(parentTheme, values, themeName, config) as any
52
+ },
53
+ }
54
+ updateStates.set(values, state)
55
+ return state
56
+ }
57
+
58
+ export const ThemeUpdate: RefComponent<unknown, ThemeUpdateProps> = createRefComponent(
59
+ function ThemeUpdate(props: ThemeUpdateProps, ref) {
60
+ 'use no memo'
61
+
62
+ const config = getConfig()
63
+ const values = getInlineValuesFromProps(props, config)
64
+ const css =
65
+ process.env.TAMAGUI_TARGET === 'native' || !values
66
+ ? null
67
+ : getVariablesCSSRules(values, config)
68
+ let rulesToInsert: RulesToInsert | null = null
69
+ if (css && shouldInsertStyleRules(css.identifier)) {
70
+ updateRules(css.identifier, css.rules)
71
+ rulesToInsert = {
72
+ [css.identifier]: ['variables', '', css.identifier, undefined, css.rules],
73
+ }
74
+ }
75
+
76
+ useInsertEffectCompat(() => {
77
+ if (rulesToInsert) insertStyleRules(rulesToInsert)
78
+ }, [css?.identifier])
79
+
80
+ if (!values) return props.children
81
+
82
+ return (
83
+ <Theme ref={ref} _themeUpdate={createThemeUpdateState(values, css?.identifier)}>
84
+ {props.children}
85
+ </Theme>
86
+ )
87
+ }
88
+ )