@tamagui/web 3.0.0-beta.669.1 → 3.0.0-beta.728.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
@@ -1,35 +1,17 @@
1
1
  import { reservedThemeProps, simpleHash } from "@tamagui/helpers";
2
- import { grammarPlatformNames, isRootThemeName, parseValue } from "@tamagui/style-grammar/runtime";
2
+ import { grammarPlatformNames, isRootThemeName, modifierKindPlatform, modifierKindTheme, reduceFlatValueIdentity } from "@tamagui/style-grammar/runtime";
3
3
  import { getSetting } from "../config.mjs";
4
4
  import { createVariable, isVariable } from "../createVariable.mjs";
5
+ import { getConfigRevisionState } from "./grammarConfig.mjs";
6
+ import { themeUpdateStateKey } from "./themeUpdateState.mjs";
5
7
  import { platformMatches } from "./directStyle.mjs";
8
+ import { findVariableToken, isUnitlessVariableKey } from "./variableValue.mjs";
6
9
  import { warnOnce } from "./warnOnce.mjs";
7
10
 
8
- const unitlessSuffixes = [
9
- "opacity",
10
- "scale",
11
- "zindex",
12
- "weight",
13
- "flex",
14
- "grow",
15
- "shrink",
16
- "ratio",
17
- "elevation"
18
- ];
19
- const isUnitlessVariableKey = (key) => {
20
- const lower = key.toLowerCase();
21
- return unitlessSuffixes.some((suffix) => lower.endsWith(suffix));
22
- };
23
- const tokenCategoryOrder = [
24
- "color",
25
- "space",
26
- "size",
27
- "radius",
28
- "zIndex"
29
- ];
30
11
  const themeKeySets = /* @__PURE__ */ new WeakMap();
31
12
  const getThemeKeySet = (conf) => {
32
- const existing = themeKeySets.get(conf.themes);
13
+ const generation = getConfigRevisionState(conf);
14
+ const existing = themeKeySets.get(generation);
33
15
  if (existing) return existing;
34
16
  const set = /* @__PURE__ */ new Set();
35
17
  for (const themeName in conf.themes) {
@@ -40,30 +22,13 @@ const getThemeKeySet = (conf) => {
40
22
  if (process.env.NODE_ENV === "development") {
41
23
  for (const key of set) {
42
24
  if (reservedThemeProps[key]) {
43
- console.error(`[tamagui] theme key "${key}" collides with a <Theme> prop, so it can never be set inline (<Theme ${key}="...">). Rename it.`);
25
+ console.error(`[tamagui] theme key "${key}" collides with a reserved theme prop, so it cannot be set with <ThemeUpdate ${key}="...">. Rename it.`);
44
26
  }
45
27
  }
46
28
  }
47
- themeKeySets.set(conf.themes, set);
29
+ themeKeySets.set(generation, set);
48
30
  return set;
49
31
  };
50
- const findToken = (tokensParsed, name) => {
51
- let found;
52
- let foundCategory;
53
- for (const category of tokenCategoryOrder) {
54
- const token = tokensParsed[category]?.[name];
55
- if (!token) continue;
56
- if (!found) {
57
- found = token;
58
- foundCategory = category;
59
- if (process.env.NODE_ENV !== "development") break;
60
- } else {
61
- warnOnce(`ambiguous:${name}`, `Theme inline value: "${name}" exists in multiple token categories; using "${foundCategory}". Rename one of the colliding tokens.`);
62
- break;
63
- }
64
- }
65
- return found;
66
- };
67
32
  const cssVariablePrefix = process.env.TAMAGUI_CSS_VARIABLE_PREFIX || "";
68
33
  const themeKeyVar = (key) => `var(--${cssVariablePrefix}${simpleHash(key, 40)})`;
69
34
  function resolveVariableValueToCSS(key, value, conf) {
@@ -80,7 +45,7 @@ function resolveVariableValueToCSS(key, value, conf) {
80
45
  if (getThemeKeySet(conf).has(name)) {
81
46
  return themeKeyVar(name);
82
47
  }
83
- const token = findToken(conf.tokensParsed, name);
48
+ const token = findVariableToken(conf.tokensParsed, name);
84
49
  if (token) {
85
50
  return token.variable;
86
51
  }
@@ -120,7 +85,8 @@ const getThemedBucketNames = (themes) => {
120
85
  };
121
86
  const themeBucketNameSets = /* @__PURE__ */ new WeakMap();
122
87
  const getThemeBucketNames = (conf) => {
123
- let set = themeBucketNameSets.get(conf.themes);
88
+ const generation = getConfigRevisionState(conf);
89
+ let set = themeBucketNameSets.get(generation);
124
90
  if (!set) {
125
91
  set = /* @__PURE__ */ new Set();
126
92
  for (const themeName in conf.themes) {
@@ -129,7 +95,7 @@ const getThemeBucketNames = (conf) => {
129
95
  set.add(parts.slice(0, i).join("_"));
130
96
  }
131
97
  }
132
- themeBucketNameSets.set(conf.themes, set);
98
+ themeBucketNameSets.set(generation, set);
133
99
  }
134
100
  return set;
135
101
  };
@@ -260,7 +226,6 @@ function getVariablesCSSRules(props, conf) {
260
226
  rulesCache.set(payload, result);
261
227
  return result;
262
228
  }
263
- const inlineLayerKey = "_tmgInlineLayer";
264
229
  const serializeInlineValue = (value) => value && typeof value === "object" ? `object:px${value.val}` : `${typeof value}:${String(value)}`;
265
230
  const serializeBucket = (bucket) => {
266
231
  if (!bucket) return "";
@@ -284,18 +249,44 @@ const getInlineValuesKey = (inline) => {
284
249
  inlineKeys.set(inline, key);
285
250
  return key;
286
251
  };
287
- const registryViews = /* @__PURE__ */ new WeakMap();
288
- const getModifierRegistry = (conf) => {
289
- let view = registryViews.get(conf.themes);
290
- if (!view) {
291
- view = { get(name) {
292
- if (grammarPlatformNames.has(name)) return "platform";
293
- if (isRootThemeName(name) && getThemeBucketNames(conf).has(name)) return "theme";
294
- return "state";
295
- } };
296
- registryViews.set(conf.themes, view);
297
- }
298
- return view;
252
+ const themeUpdateFlatHandler = {
253
+ segment(ctx, start, end, isBase) {
254
+ if (isBase) {
255
+ ctx.out.base = start < end ? ctx.source.slice(start, end) : null;
256
+ }
257
+ },
258
+ chain(ctx, start, end) {
259
+ ctx.pending = [];
260
+ ctx.chainStart = start;
261
+ ctx.chainEnd = end;
262
+ },
263
+ modifier(ctx, start, end) {
264
+ const name = ctx.source.slice(start, end);
265
+ const kind = grammarPlatformNames.has(name) ? modifierKindPlatform : isRootThemeName(name) && ctx.themeBuckets.has(name) ? modifierKindTheme : 0;
266
+ ctx.pending.push([name, kind]);
267
+ },
268
+ clause(ctx, _start, _chainEnd, start, end) {
269
+ ;
270
+ (ctx.out.clauses ||= []).push([ctx.source.slice(start, end), ctx.pending]);
271
+ },
272
+ error(ctx, code, index) {
273
+ if (ctx.out.error !== null) return;
274
+ if (code === "empty-modifier") {
275
+ ctx.out.error = "a modifier chain has an empty segment";
276
+ } else if (code === "empty-payload") {
277
+ ctx.out.error = `the "${ctx.source.slice(ctx.chainStart, ctx.chainEnd)}:" clause has no value`;
278
+ } else if (code === "invalid-character") {
279
+ ctx.out.error = `"${ctx.source[index]}" cannot appear in a value: it would end the declaration or rule`;
280
+ } else if (code === "unterminated-string") {
281
+ ctx.out.error = `unterminated ${ctx.source[index]} string`;
282
+ } else if (code === "unterminated-comment") {
283
+ ctx.out.error = "unterminated \"/*\" comment: it would swallow the rules after this one";
284
+ } else if (code === "stray-comment-close") {
285
+ ctx.out.error = "stray \"*/\": it would close a comment opened somewhere else";
286
+ } else {
287
+ ctx.out.error = "unterminated \"(\" in value";
288
+ }
289
+ }
299
290
  };
300
291
  const parsedInlineValues = /* @__PURE__ */ new WeakMap();
301
292
  const addFlatValue = (out, key, raw, conf, onIssue) => {
@@ -312,54 +303,68 @@ const addFlatValue = (out, key, raw, conf, onIssue) => {
312
303
  out.values[key] = raw;
313
304
  return;
314
305
  }
315
- let configValues = parsedInlineValues.get(conf.themes);
306
+ const generation = getConfigRevisionState(conf);
307
+ let configValues = parsedInlineValues.get(generation);
316
308
  if (!configValues) {
317
309
  configValues = /* @__PURE__ */ new Map();
318
- parsedInlineValues.set(conf.themes, configValues);
310
+ parsedInlineValues.set(generation, configValues);
319
311
  }
320
312
  let parsed = configValues.get(raw);
321
313
  if (!parsed) {
322
- parsed = parseValue(raw, getModifierRegistry(conf));
314
+ parsed = {
315
+ base: null,
316
+ clauses: null,
317
+ error: null
318
+ };
319
+ reduceFlatValueIdentity(raw, themeUpdateFlatHandler, {
320
+ source: raw,
321
+ themeBuckets: getThemeBucketNames(conf),
322
+ out: parsed,
323
+ pending: null,
324
+ chainStart: 0,
325
+ chainEnd: 0
326
+ });
323
327
  if (configValues.size >= 1e4) {
324
328
  configValues.clear();
325
329
  }
326
330
  configValues.set(raw, parsed);
327
331
  }
328
- if (!parsed.ok) {
329
- report(`parse:${key}:${raw}`, `<Theme ${key}="${raw}">: ${parsed.errors[0].message}`, "Dropping.");
332
+ if (parsed.error !== null) {
333
+ report(`parse:${key}:${raw}`, `<ThemeUpdate ${key}="${raw}">: ${parsed.error}`, "Dropping.");
330
334
  return;
331
335
  }
332
- const { base, clauses } = parsed.value;
336
+ const { base, clauses } = parsed;
333
337
  if (base !== null) {
334
338
  out.values[key] = base;
335
339
  }
336
- for (const clause of clauses) {
340
+ if (!clauses) return;
341
+ for (const [payload, modifiers] of clauses) {
337
342
  let themeName;
338
343
  let applies = true;
339
- for (const modifier of clause.modifiers) {
340
- if (grammarPlatformNames.has(modifier)) {
344
+ for (const [modifier, kind] of modifiers) {
345
+ if (kind === modifierKindPlatform) {
341
346
  applies &&= platformMatches(modifier);
342
347
  continue;
343
348
  }
344
- if (isRootThemeName(modifier) && getThemeBucketNames(conf).has(modifier)) {
349
+ if (kind === modifierKindTheme) {
345
350
  if (themeName !== void 0) {
346
- report(`two-themes:${key}:${raw}`, `<Theme ${key}="${raw}">: "${themeName}:${modifier}:" targets two themes at once, which a subtree value can't express. Name the composed theme instead.`, "Dropping the clause.");
351
+ report(`two-themes:${key}:${raw}`, `<ThemeUpdate ${key}="${raw}">: "${themeName}:${modifier}:" targets two themes at once, which a subtree value can't express. Name the composed theme instead.`, "Dropping the clause.");
347
352
  applies = false;
348
353
  break;
349
354
  }
350
355
  themeName = modifier;
351
356
  continue;
352
357
  }
353
- report(`unsupported-modifier:${modifier}`, `<Theme ${key}="${raw}">: "${modifier}:" isn't supported here. Theme values apply to a whole subtree, so only theme (dark:) and platform (ios:) modifiers work.`, "Dropping the clause.");
358
+ report(`unsupported-modifier:${modifier}`, `<ThemeUpdate ${key}="${raw}">: "${modifier}:" isn't supported here. Theme values apply to a whole subtree, so only theme (dark:) and platform (ios:) modifiers work.`, "Dropping the clause.");
354
359
  applies = false;
355
360
  break;
356
361
  }
357
362
  if (!applies) continue;
358
363
  if (themeName === void 0) {
359
- out.values[key] = clause.payload;
364
+ out.values[key] = payload;
360
365
  } else {
361
366
  ;
362
- ((out.themes ||= {})[themeName] ||= {})[key] = clause.payload;
367
+ ((out.themes ||= {})[themeName] ||= {})[key] = payload;
363
368
  }
364
369
  }
365
370
  };
@@ -376,10 +381,11 @@ function getInlineValuesFromProps(props, conf, onIssue) {
376
381
  cacheKey += `${key.length}:${key}${serialized.length}:${serialized}`;
377
382
  }
378
383
  if (!hasKey) return null;
379
- let configLayers = flatLayers.get(conf.themes);
384
+ const generation = getConfigRevisionState(conf);
385
+ let configLayers = flatLayers.get(generation);
380
386
  if (!configLayers) {
381
387
  configLayers = /* @__PURE__ */ new Map();
382
- flatLayers.set(conf.themes, configLayers);
388
+ flatLayers.set(generation, configLayers);
383
389
  }
384
390
  const cached = onIssue ? void 0 : configLayers.get(cacheKey);
385
391
  if (cached) return cached;
@@ -407,6 +413,7 @@ function getInlineValuesFromProps(props, conf, onIssue) {
407
413
  }
408
414
  const mergedThemeCache = /* @__PURE__ */ new WeakMap();
409
415
  function getMergedInlineTheme(parentTheme, inline, themeName, conf) {
416
+ const generation = getConfigRevisionState(conf);
410
417
  const name = themeName || "light";
411
418
  const activeScheme = name === "dark" || name.startsWith("dark_") ? "dark" : "light";
412
419
  const bucketNames = getThemedBucketNames(inline.themes);
@@ -424,11 +431,12 @@ function getMergedInlineTheme(parentTheme, inline, themeName, conf) {
424
431
  }
425
432
  }
426
433
  const cacheKey = `${getInlineValuesKey(inline)}|${activeScheme}|${matched ? matched.join(",") : ""}`;
427
- const existingInfo = parentTheme[inlineLayerKey];
428
- if (existingInfo?.key === cacheKey) {
434
+ const existingInfo = parentTheme[themeUpdateStateKey];
435
+ if (existingInfo?.generation === generation && existingInfo.key === cacheKey) {
429
436
  return parentTheme;
430
437
  }
431
- let byKey = mergedThemeCache.get(parentTheme);
438
+ let generationCache = mergedThemeCache.get(generation);
439
+ let byKey = generationCache?.get(parentTheme);
432
440
  const cached = byKey?.get(cacheKey);
433
441
  if (cached) return cached;
434
442
  const values = inline.values || {};
@@ -465,7 +473,7 @@ function getMergedInlineTheme(parentTheme, inline, themeName, conf) {
465
473
  if (themeValue !== void 0) {
466
474
  return isVariable(themeValue) ? themeValue.val : themeValue;
467
475
  }
468
- const token = findToken(conf.tokensParsed, name2);
476
+ const token = findVariableToken(conf.tokensParsed, name2);
469
477
  if (token) return token.val;
470
478
  return value;
471
479
  }
@@ -476,6 +484,7 @@ function getMergedInlineTheme(parentTheme, inline, themeName, conf) {
476
484
  };
477
485
  const info = {
478
486
  key: cacheKey,
487
+ generation,
479
488
  overridden: new Set(existingInfo?.overridden),
480
489
  pairs: { ...existingInfo?.pairs }
481
490
  };
@@ -500,7 +509,7 @@ function getMergedInlineTheme(parentTheme, inline, themeName, conf) {
500
509
  delete info.pairs[key];
501
510
  const activeLiteral = effective[key];
502
511
  const oppositeLiteral = opposite[key];
503
- const isLiteral = (v) => typeof v === "string" && !(v in effective) && !(v in parentTheme) && !findToken(conf.tokensParsed, v) || typeof v === "number";
512
+ const isLiteral = (v) => typeof v === "string" && !(v in effective) && !(v in parentTheme) && !findVariableToken(conf.tokensParsed, v) || typeof v === "number";
504
513
  if (isLiteral(activeLiteral) && isLiteral(oppositeLiteral)) {
505
514
  info.pairs[key] = {
506
515
  light: activeScheme === "light" ? activeLiteral : oppositeLiteral,
@@ -511,71 +520,22 @@ function getMergedInlineTheme(parentTheme, inline, themeName, conf) {
511
520
  if (!didOverride) {
512
521
  return parentTheme;
513
522
  }
514
- Object.defineProperty(merged, inlineLayerKey, {
523
+ Object.defineProperty(merged, themeUpdateStateKey, {
515
524
  value: info,
516
525
  enumerable: false
517
526
  });
518
527
  byKey ||= /* @__PURE__ */ new Map();
519
- mergedThemeCache.set(parentTheme, byKey);
528
+ if (!generationCache) {
529
+ generationCache = /* @__PURE__ */ new WeakMap();
530
+ mergedThemeCache.set(generation, generationCache);
531
+ }
532
+ generationCache.set(parentTheme, byKey);
520
533
  if (byKey.size >= 1e4) {
521
534
  byKey.clear();
522
535
  }
523
536
  byKey.set(cacheKey, merged);
524
537
  return merged;
525
538
  }
526
- function mergeConfigVariablesIntoTheme(theme, themeName, variables, tokensParsed) {
527
- const scheme = themeName.startsWith("dark") ? "dark" : "light";
528
- const resolving = /* @__PURE__ */ new Set();
529
- const resolveRawValue = (key, value) => {
530
- if (typeof value === "object" && value !== null) {
531
- if (isVariable(value)) return value.val;
532
- if ("needsPx" in value) return value;
533
- if ("light" in value || "dark" in value) {
534
- return resolveRawValue(key, value[scheme] ?? value.light);
535
- }
536
- return;
537
- }
538
- if (typeof value === "string") {
539
- const name = value;
540
- if (name in variables && !(name in theme)) {
541
- if (resolving.has(name)) {
542
- warnOnce(`config-cycle:${name}`, `createTamagui variables: reference cycle at "${name}" \u2014 dropping.`);
543
- return;
544
- }
545
- resolving.add(name);
546
- const res = resolveRawValue(name, variables[name]);
547
- resolving.delete(name);
548
- return res;
549
- }
550
- const themeValue = theme[name];
551
- if (themeValue !== void 0) {
552
- return isVariable(themeValue) ? themeValue.val : themeValue;
553
- }
554
- const token = findToken(tokensParsed, name);
555
- return token ? token.val : value;
556
- }
557
- return value;
558
- };
559
- for (const key in variables) {
560
- if (key in theme) continue;
561
- let raw = resolveRawValue(key, variables[key]);
562
- if (raw === void 0) continue;
563
- let needsPx = typeof raw === "number" && !isUnitlessVariableKey(key);
564
- if (typeof raw === "object" && raw !== null && "needsPx" in raw) {
565
- needsPx = true;
566
- raw = raw.val;
567
- }
568
- const variable = createVariable({
569
- key,
570
- name: key,
571
- val: raw
572
- });
573
- if (needsPx) {
574
- variable.needsPx = true;
575
- }
576
- theme[key] = variable;
577
- }
578
- }
579
539
 
580
- export { getInlineValuesFromProps, getInlineValuesKey, getMergedInlineTheme, getThemeKeySet, getVariablesCSSRules, inlineLayerKey, isUnitlessVariableKey, mergeConfigVariablesIntoTheme, resolveVariableValueToCSS };
540
+ export { getInlineValuesFromProps, getInlineValuesKey, getMergedInlineTheme, getThemeKeySet, getVariablesCSSRules, resolveVariableValueToCSS };
581
541
  //# sourceMappingURL=variables.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"variables.js","names":[],"sources":["esm/helpers/variables.js"],"sourcesContent":["import { reservedThemeProps, simpleHash } from \"@tamagui/helpers\";\nimport {\n grammarPlatformNames,\n isRootThemeName,\n parseValue\n} from \"@tamagui/style-grammar/runtime\";\nimport { getSetting } from \"../config\";\nimport { createVariable, isVariable } from \"../createVariable\";\nimport { platformMatches } from \"./directStyle\";\nimport { warnOnce } from \"./warnOnce\";\nconst unitlessSuffixes = [\n \"opacity\",\n \"scale\",\n \"zindex\",\n \"weight\",\n \"flex\",\n \"grow\",\n \"shrink\",\n \"ratio\",\n \"elevation\"\n];\nconst isUnitlessVariableKey = (key) => {\n const lower = key.toLowerCase();\n return unitlessSuffixes.some((suffix) => lower.endsWith(suffix));\n};\nconst tokenCategoryOrder = [\"color\", \"space\", \"size\", \"radius\", \"zIndex\"];\nconst themeKeySets = /* @__PURE__ */ new WeakMap();\nconst getThemeKeySet = (conf) => {\n const existing = themeKeySets.get(conf.themes);\n if (existing) return existing;\n const set = /* @__PURE__ */ new Set();\n for (const themeName in conf.themes) {\n for (const key in conf.themes[themeName]) {\n set.add(key);\n }\n }\n if (process.env.NODE_ENV === \"development\") {\n for (const key of set) {\n if (reservedThemeProps[key]) {\n console.error(\n `[tamagui] theme key \"${key}\" collides with a <Theme> prop, so it can never be set inline (<Theme ${key}=\"...\">). Rename it.`\n );\n }\n }\n }\n themeKeySets.set(conf.themes, set);\n return set;\n};\nconst findToken = (tokensParsed, name) => {\n let found;\n let foundCategory;\n for (const category of tokenCategoryOrder) {\n const token = tokensParsed[category]?.[name];\n if (!token) continue;\n if (!found) {\n found = token;\n foundCategory = category;\n if (process.env.NODE_ENV !== \"development\") break;\n } else {\n warnOnce(\n `ambiguous:${name}`,\n `Theme inline value: \"${name}\" exists in multiple token categories; using \"${foundCategory}\". Rename one of the colliding tokens.`\n );\n break;\n }\n }\n return found;\n};\nconst cssVariablePrefix = process.env.TAMAGUI_CSS_VARIABLE_PREFIX || \"\";\nconst themeKeyVar = (key) => `var(--${cssVariablePrefix}${simpleHash(key, 40)})`;\nfunction resolveVariableValueToCSS(key, value, conf) {\n if (typeof value === \"number\") {\n return isUnitlessVariableKey(key) ? `${value}` : `${value}px`;\n }\n if (typeof value === \"object\" && value && \"needsPx\" in value) {\n return `${value.val}px`;\n }\n if (typeof value !== \"string\") {\n return;\n }\n const name = value;\n if (getThemeKeySet(conf).has(name)) {\n return themeKeyVar(name);\n }\n const token = findToken(conf.tokensParsed, name);\n if (token) {\n return token.variable;\n }\n return value;\n}\nconst resolveDeclarations = (valuesIn, conf, skip) => {\n const out = [];\n if (!valuesIn) return out;\n const values = valuesIn;\n const keySet = getThemeKeySet(conf);\n for (const key of Object.keys(values).sort()) {\n const value = values[key];\n if (value == null) continue;\n if (skip?.has(key)) continue;\n if (!keySet.has(key)) {\n warnOnce(\n `unknown:${key}`,\n `Theme inline value: \"${key}\" is not a theme key or config-declared variable (createTamagui({ variables })) \\u2014 dropping. Native can't resolve undeclared keys, so declaring it keeps platforms in sync.`\n );\n continue;\n }\n const cssValue = resolveVariableValueToCSS(key, value, conf);\n if (cssValue !== void 0) {\n out.push([key, cssValue]);\n }\n }\n return out;\n};\nconst toDeclarationBlock = (declarations) => declarations.map(([key, value]) => `--${cssVariablePrefix}${simpleHash(key, 40)}:${value};`).join(\"\");\nconst schemePrefix = /^(light|dark)_/;\nconst getThemedBucketNames = (themes) => {\n if (!themes) return [];\n const names = [];\n for (const name in themes) {\n if (name !== \"light\" && name !== \"dark\" && themes[name]) {\n names.push(name);\n }\n }\n return names.sort();\n};\nconst themeBucketNameSets = /* @__PURE__ */ new WeakMap();\nconst getThemeBucketNames = (conf) => {\n let set = themeBucketNameSets.get(conf.themes);\n if (!set) {\n set = /* @__PURE__ */ new Set();\n for (const themeName in conf.themes) {\n const parts = themeName.replace(schemePrefix, \"\").split(\"_\");\n for (let i = 1; i <= parts.length; i++) {\n set.add(parts.slice(0, i).join(\"_\"));\n }\n }\n themeBucketNameSets.set(conf.themes, set);\n }\n return set;\n};\nconst warnOnUnknownThemeBucket = (name, conf) => {\n if (!getThemeBucketNames(conf).has(name)) {\n warnOnce(\n `unknown-theme:${name}`,\n `Theme inline value: modifier \"${name}:\" doesn't match any theme name in your config, so it will never apply.`\n );\n }\n};\nconst getCycleDroppedKeys = (props) => {\n const values = props.values;\n const themes = props.themes;\n const light = themes?.light;\n const dark = themes?.dark;\n let dropped = null;\n const check = (map) => {\n for (const key in map) {\n const path = [];\n const pathSet = /* @__PURE__ */ new Set();\n let current = key;\n while (true) {\n if (pathSet.has(current)) {\n dropped ||= /* @__PURE__ */ new Set();\n for (const k of path) dropped.add(k);\n break;\n }\n path.push(current);\n pathSet.add(current);\n const value = map[current];\n if (typeof value !== \"string\") break;\n const next = value;\n if (!(next in map)) break;\n current = next;\n }\n }\n };\n const checkWithSchemes = (base) => {\n check({ ...base, ...light });\n check({ ...base, ...dark });\n };\n checkWithSchemes(values || {});\n const bucketNames = getThemedBucketNames(props.themes);\n for (const name of bucketNames) {\n const merged = { ...values };\n for (const other of bucketNames) {\n if (other === name || name.startsWith(`${other}_`)) {\n Object.assign(merged, themes[other]);\n }\n }\n checkWithSchemes(merged);\n }\n if (dropped && process.env.NODE_ENV === \"development\") {\n const names = [...dropped];\n warnOnce(\n `cycle:${names.join(\",\")}`,\n `Theme inline values: reference cycle involving \"${names.join('\", \"')}\". These keys cannot resolve on either platform and are dropped.`\n );\n }\n return dropped;\n};\nconst rulesCache = /* @__PURE__ */ new Map();\nfunction getVariablesCSSRules(props, conf) {\n const cycleDropped = getCycleDroppedKeys(props);\n const themes = props.themes;\n const base = resolveDeclarations(props.values, conf, cycleDropped);\n const dark = resolveDeclarations(themes?.dark, conf, cycleDropped);\n const light = resolveDeclarations(themes?.light, conf, cycleDropped);\n const themed = [];\n for (const name of getThemedBucketNames(props.themes)) {\n if (process.env.NODE_ENV === \"development\") {\n warnOnUnknownThemeBucket(name, conf);\n }\n const declarations = resolveDeclarations(themes[name], conf, cycleDropped);\n if (declarations.length) {\n themed.push([name, declarations]);\n }\n }\n if (!base.length && !dark.length && !light.length && !themed.length) {\n return null;\n }\n const prefersColorThemes = !!getSetting(\"shouldAddPrefersColorThemes\");\n const payload = JSON.stringify([base, themed, dark, light, prefersColorThemes]);\n const cached = rulesCache.get(payload);\n if (cached) return cached;\n const identifier = `tvar_${simpleHash(payload, \"strict\")}`;\n const cls = `.${identifier}:not(#t_theme_full_name)`;\n const rules = [];\n if (base.length) {\n rules.push(`:root ${cls} {${toDeclarationBlock(base)}}`);\n }\n for (const [name, declarations] of themed) {\n rules.push(\n `:root .t_${name} ${cls}, :root.t_${name} ${cls} {${toDeclarationBlock(declarations)}}`\n );\n }\n const schemeRule = (scheme) => {\n const opposite = scheme === \"dark\" ? \"light\" : \"dark\";\n const declarations = scheme === \"light\" ? light : dark;\n return `:root .t_${scheme} ${cls}, :root.t_${scheme} ${cls}, :root .t_${opposite} .t_${scheme} ${cls}, :root.t_${opposite} .t_${scheme} ${cls} {${toDeclarationBlock(declarations)}}`;\n };\n if (light.length) {\n rules.push(schemeRule(\"light\"));\n }\n if (dark.length) {\n rules.push(schemeRule(\"dark\"));\n }\n if (prefersColorThemes) {\n if (light.length) {\n rules.push(\n `@media (prefers-color-scheme:light){:root ${cls} {${toDeclarationBlock(light)}}}`\n );\n }\n if (dark.length) {\n rules.push(\n `@media (prefers-color-scheme:dark){:root ${cls} {${toDeclarationBlock(dark)}}}`\n );\n }\n }\n const result = { identifier, rules };\n if (rulesCache.size >= 1e4) {\n rulesCache.clear();\n }\n rulesCache.set(payload, result);\n return result;\n}\nconst inlineLayerKey = \"_tmgInlineLayer\";\nconst serializeInlineValue = (value) => value && typeof value === \"object\" ? `object:px${value.val}` : `${typeof value}:${String(value)}`;\nconst serializeBucket = (bucket) => {\n if (!bucket) return \"\";\n const map = bucket;\n return Object.keys(map).sort().map((key) => {\n const value = serializeInlineValue(map[key]);\n return `${key.length}:${key}${value.length}:${value}`;\n }).join(\"\");\n};\nconst inlineKeys = /* @__PURE__ */ new WeakMap();\nconst getInlineValuesKey = (inline) => {\n const cached = inlineKeys.get(inline);\n if (cached !== void 0) return cached;\n let key = serializeBucket(inline.values);\n if (inline.themes) {\n const themes = inline.themes;\n for (const name of Object.keys(themes).sort()) {\n key += `;${name}=${serializeBucket(themes[name])}`;\n }\n }\n inlineKeys.set(inline, key);\n return key;\n};\nconst registryViews = /* @__PURE__ */ new WeakMap();\nconst getModifierRegistry = (conf) => {\n let view = registryViews.get(conf.themes);\n if (!view) {\n view = {\n get(name) {\n if (grammarPlatformNames.has(name)) return \"platform\";\n if (isRootThemeName(name) && getThemeBucketNames(conf).has(name)) return \"theme\";\n return \"state\";\n }\n };\n registryViews.set(conf.themes, view);\n }\n return view;\n};\nconst parsedInlineValues = /* @__PURE__ */ new WeakMap();\nconst addFlatValue = (out, key, raw, conf, onIssue) => {\n const report = (once, message, dropped) => {\n const diagnosis = message.replace(/\\.$/, \"\");\n if (onIssue) onIssue({ key, raw: String(raw), message: diagnosis });\n else warnOnce(once, `${diagnosis}. ${dropped}`);\n };\n if (typeof raw !== \"string\") {\n out.values[key] = raw;\n return;\n }\n let configValues = parsedInlineValues.get(conf.themes);\n if (!configValues) {\n configValues = /* @__PURE__ */ new Map();\n parsedInlineValues.set(conf.themes, configValues);\n }\n let parsed = configValues.get(raw);\n if (!parsed) {\n parsed = parseValue(raw, getModifierRegistry(conf));\n if (configValues.size >= 1e4) {\n configValues.clear();\n }\n configValues.set(raw, parsed);\n }\n if (!parsed.ok) {\n report(\n `parse:${key}:${raw}`,\n `<Theme ${key}=\"${raw}\">: ${parsed.errors[0].message}`,\n \"Dropping.\"\n );\n return;\n }\n const { base, clauses } = parsed.value;\n if (base !== null) {\n out.values[key] = base;\n }\n for (const clause of clauses) {\n let themeName;\n let applies = true;\n for (const modifier of clause.modifiers) {\n if (grammarPlatformNames.has(modifier)) {\n applies &&= platformMatches(modifier);\n continue;\n }\n if (isRootThemeName(modifier) && getThemeBucketNames(conf).has(modifier)) {\n if (themeName !== void 0) {\n report(\n `two-themes:${key}:${raw}`,\n `<Theme ${key}=\"${raw}\">: \"${themeName}:${modifier}:\" targets two themes at once, which a subtree value can't express. Name the composed theme instead.`,\n \"Dropping the clause.\"\n );\n applies = false;\n break;\n }\n themeName = modifier;\n continue;\n }\n report(\n `unsupported-modifier:${modifier}`,\n `<Theme ${key}=\"${raw}\">: \"${modifier}:\" isn't supported here. Theme values apply to a whole subtree, so only theme (dark:) and platform (ios:) modifiers work.`,\n \"Dropping the clause.\"\n );\n applies = false;\n break;\n }\n if (!applies) continue;\n if (themeName === void 0) {\n out.values[key] = clause.payload;\n } else {\n ;\n ((out.themes ||= {})[themeName] ||= {})[key] = clause.payload;\n }\n }\n};\nconst flatLayers = /* @__PURE__ */ new WeakMap();\nfunction getInlineValuesFromProps(props, conf, onIssue) {\n let hasKey = false;\n let cacheKey = \"\";\n for (const key in props) {\n if (reservedThemeProps[key]) continue;\n hasKey = true;\n const value = props[key];\n if (value == null) continue;\n const serialized = serializeInlineValue(value);\n cacheKey += `${key.length}:${key}${serialized.length}:${serialized}`;\n }\n if (!hasKey) return null;\n let configLayers = flatLayers.get(conf.themes);\n if (!configLayers) {\n configLayers = /* @__PURE__ */ new Map();\n flatLayers.set(conf.themes, configLayers);\n }\n const cached = onIssue ? void 0 : configLayers.get(cacheKey);\n if (cached) return cached;\n const out = { values: {}, themes: null };\n for (const key in props) {\n if (reservedThemeProps[key]) continue;\n const value = props[key];\n if (value == null) continue;\n addFlatValue(out, key, value, conf, onIssue);\n }\n const layer = {\n values: out.values,\n themes: out.themes || void 0\n };\n if (!onIssue) {\n if (configLayers.size >= 1e4) {\n configLayers.clear();\n }\n configLayers.set(cacheKey, layer);\n }\n return layer;\n}\nconst mergedThemeCache = /* @__PURE__ */ new WeakMap();\nfunction getMergedInlineTheme(parentTheme, inline, themeName, conf) {\n const name = themeName || \"light\";\n const activeScheme = name === \"dark\" || name.startsWith(\"dark_\") ? \"dark\" : \"light\";\n const bucketNames = getThemedBucketNames(inline.themes);\n let matched;\n if (bucketNames.length) {\n const baseName = name.replace(schemePrefix, \"\");\n for (const bucketName of bucketNames) {\n if (process.env.NODE_ENV === \"development\") {\n warnOnUnknownThemeBucket(bucketName, conf);\n }\n if (baseName === bucketName || baseName.startsWith(`${bucketName}_`)) {\n matched ||= [];\n matched.push(bucketName);\n }\n }\n }\n const cacheKey = `${getInlineValuesKey(inline)}|${activeScheme}|${matched ? matched.join(\",\") : \"\"}`;\n const existingInfo = parentTheme[inlineLayerKey];\n if (existingInfo?.key === cacheKey) {\n return parentTheme;\n }\n let byKey = mergedThemeCache.get(parentTheme);\n const cached = byKey?.get(cacheKey);\n if (cached) return cached;\n const values = inline.values || {};\n const themes = inline.themes || {};\n const light = themes.light || {};\n const dark = themes.dark || {};\n const base = { ...values };\n if (matched) {\n for (const bucketName of matched) {\n Object.assign(base, themes[bucketName]);\n }\n }\n const effective = { ...base, ...activeScheme === \"dark\" ? dark : light };\n const opposite = { ...base, ...activeScheme === \"dark\" ? light : dark };\n const dropped = getCycleDroppedKeys(inline);\n const keySet = getThemeKeySet(conf);\n const resolveRaw = (keyIn, map) => {\n let key = keyIn;\n let value = map[key];\n while (typeof value === \"string\") {\n const name2 = value;\n if (name2 in map && !dropped?.has(name2)) {\n key = name2;\n value = map[name2];\n continue;\n }\n const themeValue = parentTheme[name2];\n if (themeValue !== void 0) {\n return isVariable(themeValue) ? themeValue.val : themeValue;\n }\n const token = findToken(conf.tokensParsed, name2);\n if (token) return token.val;\n return value;\n }\n if (value && typeof value === \"object\") {\n return value.val;\n }\n return value;\n };\n const info = {\n key: cacheKey,\n // nested layers: carry the parent layer's overrides forward (its values\n // are plain enumerable entries after the spread, but the iOS pair info\n // would otherwise be lost)\n overridden: new Set(existingInfo?.overridden),\n pairs: { ...existingInfo?.pairs }\n };\n const merged = { ...parentTheme };\n let didOverride = false;\n for (const key of Object.keys(effective).sort()) {\n if (dropped?.has(key)) continue;\n if (effective[key] == null) continue;\n if (!keySet.has(key)) {\n warnOnce(\n `unknown:${key}`,\n `Theme inline value: \"${key}\" is not a theme key or config-declared variable (createTamagui({ variables })) \\u2014 dropping. Native can't resolve undeclared keys, so declaring it keeps platforms in sync.`\n );\n continue;\n }\n const raw = resolveRaw(key, effective);\n if (raw === void 0) continue;\n didOverride = true;\n merged[key] = createVariable({ key, name: key, val: raw });\n info.overridden.add(key);\n delete info.pairs[key];\n const activeLiteral = effective[key];\n const oppositeLiteral = opposite[key];\n const isLiteral = (v) => typeof v === \"string\" && !(v in effective) && !(v in parentTheme) && !findToken(conf.tokensParsed, v) || typeof v === \"number\";\n if (isLiteral(activeLiteral) && isLiteral(oppositeLiteral)) {\n info.pairs[key] = {\n light: activeScheme === \"light\" ? activeLiteral : oppositeLiteral,\n dark: activeScheme === \"dark\" ? activeLiteral : oppositeLiteral\n };\n }\n }\n if (!didOverride) {\n return parentTheme;\n }\n Object.defineProperty(merged, inlineLayerKey, {\n value: info,\n enumerable: false\n });\n byKey ||= /* @__PURE__ */ new Map();\n mergedThemeCache.set(parentTheme, byKey);\n if (byKey.size >= 1e4) {\n byKey.clear();\n }\n byKey.set(cacheKey, merged);\n return merged;\n}\nfunction mergeConfigVariablesIntoTheme(theme, themeName, variables, tokensParsed) {\n const scheme = themeName.startsWith(\"dark\") ? \"dark\" : \"light\";\n const resolving = /* @__PURE__ */ new Set();\n const resolveRawValue = (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (isVariable(value)) return value.val;\n if (\"needsPx\" in value) return value;\n if (\"light\" in value || \"dark\" in value) {\n return resolveRawValue(key, value[scheme] ?? value.light);\n }\n return;\n }\n if (typeof value === \"string\") {\n const name = value;\n if (name in variables && !(name in theme)) {\n if (resolving.has(name)) {\n warnOnce(\n `config-cycle:${name}`,\n `createTamagui variables: reference cycle at \"${name}\" \\u2014 dropping.`\n );\n return;\n }\n resolving.add(name);\n const res = resolveRawValue(name, variables[name]);\n resolving.delete(name);\n return res;\n }\n const themeValue = theme[name];\n if (themeValue !== void 0) {\n return isVariable(themeValue) ? themeValue.val : themeValue;\n }\n const token = findToken(tokensParsed, name);\n return token ? token.val : value;\n }\n return value;\n };\n for (const key in variables) {\n if (key in theme) continue;\n let raw = resolveRawValue(key, variables[key]);\n if (raw === void 0) continue;\n let needsPx = typeof raw === \"number\" && !isUnitlessVariableKey(key);\n if (typeof raw === \"object\" && raw !== null && \"needsPx\" in raw) {\n needsPx = true;\n raw = raw.val;\n }\n const variable = createVariable({ key, name: key, val: raw });\n if (needsPx) {\n variable.needsPx = true;\n }\n theme[key] = variable;\n }\n}\nexport {\n getInlineValuesFromProps,\n getInlineValuesKey,\n getMergedInlineTheme,\n getThemeKeySet,\n getVariablesCSSRules,\n inlineLayerKey,\n isUnitlessVariableKey,\n mergeConfigVariablesIntoTheme,\n resolveVariableValueToCSS\n};\n//# sourceMappingURL=variables.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"variables.js","names":[],"sources":["esm/helpers/variables.js"],"sourcesContent":["import { reservedThemeProps, simpleHash } from \"@tamagui/helpers\";\nimport {\n grammarPlatformNames,\n isRootThemeName,\n modifierKindPlatform,\n modifierKindTheme,\n reduceFlatValueIdentity\n} from \"@tamagui/style-grammar/runtime\";\nimport { getSetting } from \"../config\";\nimport { createVariable, isVariable } from \"../createVariable\";\nimport { getConfigRevisionState } from \"./grammarConfig\";\nimport { themeUpdateStateKey } from \"./themeUpdateState\";\nimport { platformMatches } from \"./directStyle\";\nimport { findVariableToken, isUnitlessVariableKey } from \"./variableValue\";\nimport { warnOnce } from \"./warnOnce\";\nconst themeKeySets = /* @__PURE__ */ new WeakMap();\nconst getThemeKeySet = (conf) => {\n const generation = getConfigRevisionState(conf);\n const existing = themeKeySets.get(generation);\n if (existing) return existing;\n const set = /* @__PURE__ */ new Set();\n for (const themeName in conf.themes) {\n for (const key in conf.themes[themeName]) {\n set.add(key);\n }\n }\n if (process.env.NODE_ENV === \"development\") {\n for (const key of set) {\n if (reservedThemeProps[key]) {\n console.error(\n `[tamagui] theme key \"${key}\" collides with a reserved theme prop, so it cannot be set with <ThemeUpdate ${key}=\"...\">. Rename it.`\n );\n }\n }\n }\n themeKeySets.set(generation, set);\n return set;\n};\nconst cssVariablePrefix = process.env.TAMAGUI_CSS_VARIABLE_PREFIX || \"\";\nconst themeKeyVar = (key) => `var(--${cssVariablePrefix}${simpleHash(key, 40)})`;\nfunction resolveVariableValueToCSS(key, value, conf) {\n if (typeof value === \"number\") {\n return isUnitlessVariableKey(key) ? `${value}` : `${value}px`;\n }\n if (typeof value === \"object\" && value && \"needsPx\" in value) {\n return `${value.val}px`;\n }\n if (typeof value !== \"string\") {\n return;\n }\n const name = value;\n if (getThemeKeySet(conf).has(name)) {\n return themeKeyVar(name);\n }\n const token = findVariableToken(conf.tokensParsed, name);\n if (token) {\n return token.variable;\n }\n return value;\n}\nconst resolveDeclarations = (valuesIn, conf, skip) => {\n const out = [];\n if (!valuesIn) return out;\n const values = valuesIn;\n const keySet = getThemeKeySet(conf);\n for (const key of Object.keys(values).sort()) {\n const value = values[key];\n if (value == null) continue;\n if (skip?.has(key)) continue;\n if (!keySet.has(key)) {\n warnOnce(\n `unknown:${key}`,\n `Theme inline value: \"${key}\" is not a theme key or config-declared variable (createTamagui({ variables })) \\u2014 dropping. Native can't resolve undeclared keys, so declaring it keeps platforms in sync.`\n );\n continue;\n }\n const cssValue = resolveVariableValueToCSS(key, value, conf);\n if (cssValue !== void 0) {\n out.push([key, cssValue]);\n }\n }\n return out;\n};\nconst toDeclarationBlock = (declarations) => declarations.map(([key, value]) => `--${cssVariablePrefix}${simpleHash(key, 40)}:${value};`).join(\"\");\nconst schemePrefix = /^(light|dark)_/;\nconst getThemedBucketNames = (themes) => {\n if (!themes) return [];\n const names = [];\n for (const name in themes) {\n if (name !== \"light\" && name !== \"dark\" && themes[name]) {\n names.push(name);\n }\n }\n return names.sort();\n};\nconst themeBucketNameSets = /* @__PURE__ */ new WeakMap();\nconst getThemeBucketNames = (conf) => {\n const generation = getConfigRevisionState(conf);\n let set = themeBucketNameSets.get(generation);\n if (!set) {\n set = /* @__PURE__ */ new Set();\n for (const themeName in conf.themes) {\n const parts = themeName.replace(schemePrefix, \"\").split(\"_\");\n for (let i = 1; i <= parts.length; i++) {\n set.add(parts.slice(0, i).join(\"_\"));\n }\n }\n themeBucketNameSets.set(generation, set);\n }\n return set;\n};\nconst warnOnUnknownThemeBucket = (name, conf) => {\n if (!getThemeBucketNames(conf).has(name)) {\n warnOnce(\n `unknown-theme:${name}`,\n `Theme inline value: modifier \"${name}:\" doesn't match any theme name in your config, so it will never apply.`\n );\n }\n};\nconst getCycleDroppedKeys = (props) => {\n const values = props.values;\n const themes = props.themes;\n const light = themes?.light;\n const dark = themes?.dark;\n let dropped = null;\n const check = (map) => {\n for (const key in map) {\n const path = [];\n const pathSet = /* @__PURE__ */ new Set();\n let current = key;\n while (true) {\n if (pathSet.has(current)) {\n dropped ||= /* @__PURE__ */ new Set();\n for (const k of path) dropped.add(k);\n break;\n }\n path.push(current);\n pathSet.add(current);\n const value = map[current];\n if (typeof value !== \"string\") break;\n const next = value;\n if (!(next in map)) break;\n current = next;\n }\n }\n };\n const checkWithSchemes = (base) => {\n check({ ...base, ...light });\n check({ ...base, ...dark });\n };\n checkWithSchemes(values || {});\n const bucketNames = getThemedBucketNames(props.themes);\n for (const name of bucketNames) {\n const merged = { ...values };\n for (const other of bucketNames) {\n if (other === name || name.startsWith(`${other}_`)) {\n Object.assign(merged, themes[other]);\n }\n }\n checkWithSchemes(merged);\n }\n if (dropped && process.env.NODE_ENV === \"development\") {\n const names = [...dropped];\n warnOnce(\n `cycle:${names.join(\",\")}`,\n `Theme inline values: reference cycle involving \"${names.join('\", \"')}\". These keys cannot resolve on either platform and are dropped.`\n );\n }\n return dropped;\n};\nconst rulesCache = /* @__PURE__ */ new Map();\nfunction getVariablesCSSRules(props, conf) {\n const cycleDropped = getCycleDroppedKeys(props);\n const themes = props.themes;\n const base = resolveDeclarations(props.values, conf, cycleDropped);\n const dark = resolveDeclarations(themes?.dark, conf, cycleDropped);\n const light = resolveDeclarations(themes?.light, conf, cycleDropped);\n const themed = [];\n for (const name of getThemedBucketNames(props.themes)) {\n if (process.env.NODE_ENV === \"development\") {\n warnOnUnknownThemeBucket(name, conf);\n }\n const declarations = resolveDeclarations(themes[name], conf, cycleDropped);\n if (declarations.length) {\n themed.push([name, declarations]);\n }\n }\n if (!base.length && !dark.length && !light.length && !themed.length) {\n return null;\n }\n const prefersColorThemes = !!getSetting(\"shouldAddPrefersColorThemes\");\n const payload = JSON.stringify([base, themed, dark, light, prefersColorThemes]);\n const cached = rulesCache.get(payload);\n if (cached) return cached;\n const identifier = `tvar_${simpleHash(payload, \"strict\")}`;\n const cls = `.${identifier}:not(#t_theme_full_name)`;\n const rules = [];\n if (base.length) {\n rules.push(`:root ${cls} {${toDeclarationBlock(base)}}`);\n }\n for (const [name, declarations] of themed) {\n rules.push(\n `:root .t_${name} ${cls}, :root.t_${name} ${cls} {${toDeclarationBlock(declarations)}}`\n );\n }\n const schemeRule = (scheme) => {\n const opposite = scheme === \"dark\" ? \"light\" : \"dark\";\n const declarations = scheme === \"light\" ? light : dark;\n return `:root .t_${scheme} ${cls}, :root.t_${scheme} ${cls}, :root .t_${opposite} .t_${scheme} ${cls}, :root.t_${opposite} .t_${scheme} ${cls} {${toDeclarationBlock(declarations)}}`;\n };\n if (light.length) {\n rules.push(schemeRule(\"light\"));\n }\n if (dark.length) {\n rules.push(schemeRule(\"dark\"));\n }\n if (prefersColorThemes) {\n if (light.length) {\n rules.push(\n `@media (prefers-color-scheme:light){:root ${cls} {${toDeclarationBlock(light)}}}`\n );\n }\n if (dark.length) {\n rules.push(\n `@media (prefers-color-scheme:dark){:root ${cls} {${toDeclarationBlock(dark)}}}`\n );\n }\n }\n const result = { identifier, rules };\n if (rulesCache.size >= 1e4) {\n rulesCache.clear();\n }\n rulesCache.set(payload, result);\n return result;\n}\nconst serializeInlineValue = (value) => value && typeof value === \"object\" ? `object:px${value.val}` : `${typeof value}:${String(value)}`;\nconst serializeBucket = (bucket) => {\n if (!bucket) return \"\";\n const map = bucket;\n return Object.keys(map).sort().map((key) => {\n const value = serializeInlineValue(map[key]);\n return `${key.length}:${key}${value.length}:${value}`;\n }).join(\"\");\n};\nconst inlineKeys = /* @__PURE__ */ new WeakMap();\nconst getInlineValuesKey = (inline) => {\n const cached = inlineKeys.get(inline);\n if (cached !== void 0) return cached;\n let key = serializeBucket(inline.values);\n if (inline.themes) {\n const themes = inline.themes;\n for (const name of Object.keys(themes).sort()) {\n key += `;${name}=${serializeBucket(themes[name])}`;\n }\n }\n inlineKeys.set(inline, key);\n return key;\n};\nconst themeUpdateFlatHandler = {\n segment(ctx, start, end, isBase) {\n if (isBase) {\n ctx.out.base = start < end ? ctx.source.slice(start, end) : null;\n }\n },\n chain(ctx, start, end) {\n ctx.pending = [];\n ctx.chainStart = start;\n ctx.chainEnd = end;\n },\n modifier(ctx, start, end) {\n const name = ctx.source.slice(start, end);\n const kind = (\n // theme updates intentionally keep their subtree-specific collision order:\n // platform, then theme, then every unsupported kind. direct styles use\n // the shared vocabulary's state/media/platform/theme order instead.\n grammarPlatformNames.has(name) ? modifierKindPlatform : isRootThemeName(name) && ctx.themeBuckets.has(name) ? modifierKindTheme : 0\n );\n ctx.pending.push([name, kind]);\n },\n clause(ctx, _start, _chainEnd, start, end) {\n ;\n (ctx.out.clauses ||= []).push([ctx.source.slice(start, end), ctx.pending]);\n },\n error(ctx, code, index) {\n if (ctx.out.error !== null) return;\n if (code === \"empty-modifier\") {\n ctx.out.error = \"a modifier chain has an empty segment\";\n } else if (code === \"empty-payload\") {\n ctx.out.error = `the \"${ctx.source.slice(ctx.chainStart, ctx.chainEnd)}:\" clause has no value`;\n } else if (code === \"invalid-character\") {\n ctx.out.error = `\"${ctx.source[index]}\" cannot appear in a value: it would end the declaration or rule`;\n } else if (code === \"unterminated-string\") {\n ctx.out.error = `unterminated ${ctx.source[index]} string`;\n } else if (code === \"unterminated-comment\") {\n ctx.out.error = 'unterminated \"/*\" comment: it would swallow the rules after this one';\n } else if (code === \"stray-comment-close\") {\n ctx.out.error = 'stray \"*/\": it would close a comment opened somewhere else';\n } else {\n ctx.out.error = 'unterminated \"(\" in value';\n }\n }\n};\nconst parsedInlineValues = /* @__PURE__ */ new WeakMap();\nconst addFlatValue = (out, key, raw, conf, onIssue) => {\n const report = (once, message, dropped) => {\n const diagnosis = message.replace(/\\.$/, \"\");\n if (onIssue) onIssue({ key, raw: String(raw), message: diagnosis });\n else warnOnce(once, `${diagnosis}. ${dropped}`);\n };\n if (typeof raw !== \"string\") {\n out.values[key] = raw;\n return;\n }\n const generation = getConfigRevisionState(conf);\n let configValues = parsedInlineValues.get(generation);\n if (!configValues) {\n configValues = /* @__PURE__ */ new Map();\n parsedInlineValues.set(generation, configValues);\n }\n let parsed = configValues.get(raw);\n if (!parsed) {\n parsed = { base: null, clauses: null, error: null };\n reduceFlatValueIdentity(raw, themeUpdateFlatHandler, {\n source: raw,\n themeBuckets: getThemeBucketNames(conf),\n out: parsed,\n pending: null,\n chainStart: 0,\n chainEnd: 0\n });\n if (configValues.size >= 1e4) {\n configValues.clear();\n }\n configValues.set(raw, parsed);\n }\n if (parsed.error !== null) {\n report(\n `parse:${key}:${raw}`,\n `<ThemeUpdate ${key}=\"${raw}\">: ${parsed.error}`,\n \"Dropping.\"\n );\n return;\n }\n const { base, clauses } = parsed;\n if (base !== null) {\n out.values[key] = base;\n }\n if (!clauses) return;\n for (const [payload, modifiers] of clauses) {\n let themeName;\n let applies = true;\n for (const [modifier, kind] of modifiers) {\n if (kind === modifierKindPlatform) {\n applies &&= platformMatches(modifier);\n continue;\n }\n if (kind === modifierKindTheme) {\n if (themeName !== void 0) {\n report(\n `two-themes:${key}:${raw}`,\n `<ThemeUpdate ${key}=\"${raw}\">: \"${themeName}:${modifier}:\" targets two themes at once, which a subtree value can't express. Name the composed theme instead.`,\n \"Dropping the clause.\"\n );\n applies = false;\n break;\n }\n themeName = modifier;\n continue;\n }\n report(\n `unsupported-modifier:${modifier}`,\n `<ThemeUpdate ${key}=\"${raw}\">: \"${modifier}:\" isn't supported here. Theme values apply to a whole subtree, so only theme (dark:) and platform (ios:) modifiers work.`,\n \"Dropping the clause.\"\n );\n applies = false;\n break;\n }\n if (!applies) continue;\n if (themeName === void 0) {\n out.values[key] = payload;\n } else {\n ;\n ((out.themes ||= {})[themeName] ||= {})[key] = payload;\n }\n }\n};\nconst flatLayers = /* @__PURE__ */ new WeakMap();\nfunction getInlineValuesFromProps(props, conf, onIssue) {\n let hasKey = false;\n let cacheKey = \"\";\n for (const key in props) {\n if (reservedThemeProps[key]) continue;\n hasKey = true;\n const value = props[key];\n if (value == null) continue;\n const serialized = serializeInlineValue(value);\n cacheKey += `${key.length}:${key}${serialized.length}:${serialized}`;\n }\n if (!hasKey) return null;\n const generation = getConfigRevisionState(conf);\n let configLayers = flatLayers.get(generation);\n if (!configLayers) {\n configLayers = /* @__PURE__ */ new Map();\n flatLayers.set(generation, configLayers);\n }\n const cached = onIssue ? void 0 : configLayers.get(cacheKey);\n if (cached) return cached;\n const out = { values: {}, themes: null };\n for (const key in props) {\n if (reservedThemeProps[key]) continue;\n const value = props[key];\n if (value == null) continue;\n addFlatValue(out, key, value, conf, onIssue);\n }\n const layer = {\n values: out.values,\n themes: out.themes || void 0\n };\n if (!onIssue) {\n if (configLayers.size >= 1e4) {\n configLayers.clear();\n }\n configLayers.set(cacheKey, layer);\n }\n return layer;\n}\nconst mergedThemeCache = /* @__PURE__ */ new WeakMap();\nfunction getMergedInlineTheme(parentTheme, inline, themeName, conf) {\n const generation = getConfigRevisionState(conf);\n const name = themeName || \"light\";\n const activeScheme = name === \"dark\" || name.startsWith(\"dark_\") ? \"dark\" : \"light\";\n const bucketNames = getThemedBucketNames(inline.themes);\n let matched;\n if (bucketNames.length) {\n const baseName = name.replace(schemePrefix, \"\");\n for (const bucketName of bucketNames) {\n if (process.env.NODE_ENV === \"development\") {\n warnOnUnknownThemeBucket(bucketName, conf);\n }\n if (baseName === bucketName || baseName.startsWith(`${bucketName}_`)) {\n matched ||= [];\n matched.push(bucketName);\n }\n }\n }\n const cacheKey = `${getInlineValuesKey(inline)}|${activeScheme}|${matched ? matched.join(\",\") : \"\"}`;\n const existingInfo = parentTheme[themeUpdateStateKey];\n if (existingInfo?.generation === generation && existingInfo.key === cacheKey) {\n return parentTheme;\n }\n let generationCache = mergedThemeCache.get(generation);\n let byKey = generationCache?.get(parentTheme);\n const cached = byKey?.get(cacheKey);\n if (cached) return cached;\n const values = inline.values || {};\n const themes = inline.themes || {};\n const light = themes.light || {};\n const dark = themes.dark || {};\n const base = { ...values };\n if (matched) {\n for (const bucketName of matched) {\n Object.assign(base, themes[bucketName]);\n }\n }\n const effective = { ...base, ...activeScheme === \"dark\" ? dark : light };\n const opposite = { ...base, ...activeScheme === \"dark\" ? light : dark };\n const dropped = getCycleDroppedKeys(inline);\n const keySet = getThemeKeySet(conf);\n const resolveRaw = (keyIn, map) => {\n let key = keyIn;\n let value = map[key];\n while (typeof value === \"string\") {\n const name2 = value;\n if (name2 in map && !dropped?.has(name2)) {\n key = name2;\n value = map[name2];\n continue;\n }\n const themeValue = parentTheme[name2];\n if (themeValue !== void 0) {\n return isVariable(themeValue) ? themeValue.val : themeValue;\n }\n const token = findVariableToken(conf.tokensParsed, name2);\n if (token) return token.val;\n return value;\n }\n if (value && typeof value === \"object\") {\n return value.val;\n }\n return value;\n };\n const info = {\n key: cacheKey,\n generation,\n // nested layers: carry the parent layer's overrides forward (its values\n // are plain enumerable entries after the spread, but the iOS pair info\n // would otherwise be lost)\n overridden: new Set(existingInfo?.overridden),\n pairs: { ...existingInfo?.pairs }\n };\n const merged = { ...parentTheme };\n let didOverride = false;\n for (const key of Object.keys(effective).sort()) {\n if (dropped?.has(key)) continue;\n if (effective[key] == null) continue;\n if (!keySet.has(key)) {\n warnOnce(\n `unknown:${key}`,\n `Theme inline value: \"${key}\" is not a theme key or config-declared variable (createTamagui({ variables })) \\u2014 dropping. Native can't resolve undeclared keys, so declaring it keeps platforms in sync.`\n );\n continue;\n }\n const raw = resolveRaw(key, effective);\n if (raw === void 0) continue;\n didOverride = true;\n merged[key] = createVariable({ key, name: key, val: raw });\n info.overridden.add(key);\n delete info.pairs[key];\n const activeLiteral = effective[key];\n const oppositeLiteral = opposite[key];\n const isLiteral = (v) => typeof v === \"string\" && !(v in effective) && !(v in parentTheme) && !findVariableToken(conf.tokensParsed, v) || typeof v === \"number\";\n if (isLiteral(activeLiteral) && isLiteral(oppositeLiteral)) {\n info.pairs[key] = {\n light: activeScheme === \"light\" ? activeLiteral : oppositeLiteral,\n dark: activeScheme === \"dark\" ? activeLiteral : oppositeLiteral\n };\n }\n }\n if (!didOverride) {\n return parentTheme;\n }\n Object.defineProperty(merged, themeUpdateStateKey, {\n value: info,\n enumerable: false\n });\n byKey ||= /* @__PURE__ */ new Map();\n if (!generationCache) {\n generationCache = /* @__PURE__ */ new WeakMap();\n mergedThemeCache.set(generation, generationCache);\n }\n generationCache.set(parentTheme, byKey);\n if (byKey.size >= 1e4) {\n byKey.clear();\n }\n byKey.set(cacheKey, merged);\n return merged;\n}\nexport {\n getInlineValuesFromProps,\n getInlineValuesKey,\n getMergedInlineTheme,\n getThemeKeySet,\n getVariablesCSSRules,\n resolveVariableValueToCSS\n};\n//# sourceMappingURL=variables.js.map\n"],"mappings":";;;;;;;;;;;AAeA,MAAM,+BAA+B,IAAI,QAAQ;AACjD,MAAM,kBAAkB,SAAS;CAC/B,MAAM,aAAa,uBAAuB,IAAI;CAC9C,MAAM,WAAW,aAAa,IAAI,UAAU;CAC5C,IAAI,UAAU,OAAO;CACrB,MAAM,sBAAsB,IAAI,IAAI;CACpC,KAAK,MAAM,aAAa,KAAK,QAAQ;EACnC,KAAK,MAAM,OAAO,KAAK,OAAO,YAAY;GACxC,IAAI,IAAI,GAAG;EACb;CACF;CACA,IAAI,QAAQ,IAAI,aAAa,eAAe;EAC1C,KAAK,MAAM,OAAO,KAAK;GACrB,IAAI,mBAAmB,MAAM;IAC3B,QAAQ,MACN,wBAAwB,IAAI,+EAA+E,IAAI,oBACjH;GACF;EACF;CACF;CACA,aAAa,IAAI,YAAY,GAAG;CAChC,OAAO;AACT;AACA,MAAM,oBAAoB,QAAQ,IAAI,+BAA+B;AACrE,MAAM,eAAe,QAAQ,SAAS,oBAAoB,WAAW,KAAK,EAAE,EAAE;AAC9E,SAAS,0BAA0B,KAAK,OAAO,MAAM;CACnD,IAAI,OAAO,UAAU,UAAU;EAC7B,OAAO,sBAAsB,GAAG,IAAI,GAAG,UAAU,GAAG,MAAM;CAC5D;CACA,IAAI,OAAO,UAAU,YAAY,SAAS,aAAa,OAAO;EAC5D,OAAO,GAAG,MAAM,IAAI;CACtB;CACA,IAAI,OAAO,UAAU,UAAU;EAC7B;CACF;CACA,MAAM,OAAO;CACb,IAAI,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG;EAClC,OAAO,YAAY,IAAI;CACzB;CACA,MAAM,QAAQ,kBAAkB,KAAK,cAAc,IAAI;CACvD,IAAI,OAAO;EACT,OAAO,MAAM;CACf;CACA,OAAO;AACT;AACA,MAAM,uBAAuB,UAAU,MAAM,SAAS;CACpD,MAAM,MAAM,CAAC;CACb,IAAI,CAAC,UAAU,OAAO;CACtB,MAAM,SAAS;CACf,MAAM,SAAS,eAAe,IAAI;CAClC,KAAK,MAAM,OAAO,OAAO,KAAK,MAAM,CAAC,CAAC,KAAK,GAAG;EAC5C,MAAM,QAAQ,OAAO;EACrB,IAAI,SAAS,MAAM;EACnB,IAAI,MAAM,IAAI,GAAG,GAAG;EACpB,IAAI,CAAC,OAAO,IAAI,GAAG,GAAG;GACpB,SACE,WAAW,OACX,wBAAwB,IAAI,gLAC9B;GACA;EACF;EACA,MAAM,WAAW,0BAA0B,KAAK,OAAO,IAAI;EAC3D,IAAI,aAAa,KAAK,GAAG;GACvB,IAAI,KAAK,CAAC,KAAK,QAAQ,CAAC;EAC1B;CACF;CACA,OAAO;AACT;AACA,MAAM,sBAAsB,iBAAiB,aAAa,KAAK,CAAC,KAAK,WAAW,KAAK,oBAAoB,WAAW,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE;AACjJ,MAAM,eAAe;AACrB,MAAM,wBAAwB,WAAW;CACvC,IAAI,CAAC,QAAQ,OAAO,CAAC;CACrB,MAAM,QAAQ,CAAC;CACf,KAAK,MAAM,QAAQ,QAAQ;EACzB,IAAI,SAAS,WAAW,SAAS,UAAU,OAAO,OAAO;GACvD,MAAM,KAAK,IAAI;EACjB;CACF;CACA,OAAO,MAAM,KAAK;AACpB;AACA,MAAM,sCAAsC,IAAI,QAAQ;AACxD,MAAM,uBAAuB,SAAS;CACpC,MAAM,aAAa,uBAAuB,IAAI;CAC9C,IAAI,MAAM,oBAAoB,IAAI,UAAU;CAC5C,IAAI,CAAC,KAAK;EACR,sBAAsB,IAAI,IAAI;EAC9B,KAAK,MAAM,aAAa,KAAK,QAAQ;GACnC,MAAM,QAAQ,UAAU,QAAQ,cAAc,EAAE,CAAC,CAAC,MAAM,GAAG;GAC3D,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,QAAQ,KAAK;IACtC,IAAI,IAAI,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;GACrC;EACF;EACA,oBAAoB,IAAI,YAAY,GAAG;CACzC;CACA,OAAO;AACT;AACA,MAAM,4BAA4B,MAAM,SAAS;CAC/C,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG;EACxC,SACE,iBAAiB,QACjB,iCAAiC,KAAK,wEACxC;CACF;AACF;AACA,MAAM,uBAAuB,UAAU;CACrC,MAAM,SAAS,MAAM;CACrB,MAAM,SAAS,MAAM;CACrB,MAAM,QAAQ,QAAQ;CACtB,MAAM,OAAO,QAAQ;CACrB,IAAI,UAAU;CACd,MAAM,SAAS,QAAQ;EACrB,KAAK,MAAM,OAAO,KAAK;GACrB,MAAM,OAAO,CAAC;GACd,MAAM,0BAA0B,IAAI,IAAI;GACxC,IAAI,UAAU;GACd,OAAO,MAAM;IACX,IAAI,QAAQ,IAAI,OAAO,GAAG;KACxB,4BAA4B,IAAI,IAAI;KACpC,KAAK,MAAM,KAAK,MAAM,QAAQ,IAAI,CAAC;KACnC;IACF;IACA,KAAK,KAAK,OAAO;IACjB,QAAQ,IAAI,OAAO;IACnB,MAAM,QAAQ,IAAI;IAClB,IAAI,OAAO,UAAU,UAAU;IAC/B,MAAM,OAAO;IACb,IAAI,EAAE,QAAQ,MAAM;IACpB,UAAU;GACZ;EACF;CACF;CACA,MAAM,oBAAoB,SAAS;EACjC,MAAM;GAAE,GAAG;GAAM,GAAG;EAAM,CAAC;EAC3B,MAAM;GAAE,GAAG;GAAM,GAAG;EAAK,CAAC;CAC5B;CACA,iBAAiB,UAAU,CAAC,CAAC;CAC7B,MAAM,cAAc,qBAAqB,MAAM,MAAM;CACrD,KAAK,MAAM,QAAQ,aAAa;EAC9B,MAAM,SAAS,EAAE,GAAG,OAAO;EAC3B,KAAK,MAAM,SAAS,aAAa;GAC/B,IAAI,UAAU,QAAQ,KAAK,WAAW,GAAG,MAAM,EAAE,GAAG;IAClD,OAAO,OAAO,QAAQ,OAAO,MAAM;GACrC;EACF;EACA,iBAAiB,MAAM;CACzB;CACA,IAAI,WAAW,QAAQ,IAAI,aAAa,eAAe;EACrD,MAAM,QAAQ,CAAC,GAAG,OAAO;EACzB,SACE,SAAS,MAAM,KAAK,GAAG,KACvB,mDAAmD,MAAM,KAAK,QAAM,EAAE,iEACxE;CACF;CACA,OAAO;AACT;AACA,MAAM,6BAA6B,IAAI,IAAI;AAC3C,SAAS,qBAAqB,OAAO,MAAM;CACzC,MAAM,eAAe,oBAAoB,KAAK;CAC9C,MAAM,SAAS,MAAM;CACrB,MAAM,OAAO,oBAAoB,MAAM,QAAQ,MAAM,YAAY;CACjE,MAAM,OAAO,oBAAoB,QAAQ,MAAM,MAAM,YAAY;CACjE,MAAM,QAAQ,oBAAoB,QAAQ,OAAO,MAAM,YAAY;CACnE,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,QAAQ,qBAAqB,MAAM,MAAM,GAAG;EACrD,IAAI,QAAQ,IAAI,aAAa,eAAe;GAC1C,yBAAyB,MAAM,IAAI;EACrC;EACA,MAAM,eAAe,oBAAoB,OAAO,OAAO,MAAM,YAAY;EACzE,IAAI,aAAa,QAAQ;GACvB,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;EAClC;CACF;CACA,IAAI,CAAC,KAAK,UAAU,CAAC,KAAK,UAAU,CAAC,MAAM,UAAU,CAAC,OAAO,QAAQ;EACnE,OAAO;CACT;CACA,MAAM,qBAAqB,CAAC,CAAC,WAAW,6BAA6B;CACrE,MAAM,UAAU,KAAK,UAAU;EAAC;EAAM;EAAQ;EAAM;EAAO;CAAkB,CAAC;CAC9E,MAAM,SAAS,WAAW,IAAI,OAAO;CACrC,IAAI,QAAQ,OAAO;CACnB,MAAM,aAAa,QAAQ,WAAW,SAAS,QAAQ;CACvD,MAAM,MAAM,IAAI,WAAW;CAC3B,MAAM,QAAQ,CAAC;CACf,IAAI,KAAK,QAAQ;EACf,MAAM,KAAK,SAAS,IAAI,IAAI,mBAAmB,IAAI,EAAE,EAAE;CACzD;CACA,KAAK,MAAM,CAAC,MAAM,iBAAiB,QAAQ;EACzC,MAAM,KACJ,YAAY,KAAK,GAAG,IAAI,YAAY,KAAK,GAAG,IAAI,IAAI,mBAAmB,YAAY,EAAE,EACvF;CACF;CACA,MAAM,cAAc,WAAW;EAC7B,MAAM,WAAW,WAAW,SAAS,UAAU;EAC/C,MAAM,eAAe,WAAW,UAAU,QAAQ;EAClD,OAAO,YAAY,OAAO,GAAG,IAAI,YAAY,OAAO,GAAG,IAAI,aAAa,SAAS,MAAM,OAAO,GAAG,IAAI,YAAY,SAAS,MAAM,OAAO,GAAG,IAAI,IAAI,mBAAmB,YAAY,EAAE;CACrL;CACA,IAAI,MAAM,QAAQ;EAChB,MAAM,KAAK,WAAW,OAAO,CAAC;CAChC;CACA,IAAI,KAAK,QAAQ;EACf,MAAM,KAAK,WAAW,MAAM,CAAC;CAC/B;CACA,IAAI,oBAAoB;EACtB,IAAI,MAAM,QAAQ;GAChB,MAAM,KACJ,6CAA6C,IAAI,IAAI,mBAAmB,KAAK,EAAE,GACjF;EACF;EACA,IAAI,KAAK,QAAQ;GACf,MAAM,KACJ,4CAA4C,IAAI,IAAI,mBAAmB,IAAI,EAAE,GAC/E;EACF;CACF;CACA,MAAM,SAAS;EAAE;EAAY;CAAM;CACnC,IAAI,WAAW,QAAQ,KAAK;EAC1B,WAAW,MAAM;CACnB;CACA,WAAW,IAAI,SAAS,MAAM;CAC9B,OAAO;AACT;AACA,MAAM,wBAAwB,UAAU,SAAS,OAAO,UAAU,WAAW,YAAY,MAAM,QAAQ,GAAG,OAAO,MAAM,GAAG,OAAO,KAAK;AACtI,MAAM,mBAAmB,WAAW;CAClC,IAAI,CAAC,QAAQ,OAAO;CACpB,MAAM,MAAM;CACZ,OAAO,OAAO,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,QAAQ;EAC1C,MAAM,QAAQ,qBAAqB,IAAI,IAAI;EAC3C,OAAO,GAAG,IAAI,OAAO,GAAG,MAAM,MAAM,OAAO,GAAG;CAChD,CAAC,CAAC,CAAC,KAAK,EAAE;AACZ;AACA,MAAM,6BAA6B,IAAI,QAAQ;AAC/C,MAAM,sBAAsB,WAAW;CACrC,MAAM,SAAS,WAAW,IAAI,MAAM;CACpC,IAAI,WAAW,KAAK,GAAG,OAAO;CAC9B,IAAI,MAAM,gBAAgB,OAAO,MAAM;CACvC,IAAI,OAAO,QAAQ;EACjB,MAAM,SAAS,OAAO;EACtB,KAAK,MAAM,QAAQ,OAAO,KAAK,MAAM,CAAC,CAAC,KAAK,GAAG;GAC7C,OAAO,IAAI,KAAK,GAAG,gBAAgB,OAAO,KAAK;EACjD;CACF;CACA,WAAW,IAAI,QAAQ,GAAG;CAC1B,OAAO;AACT;AACA,MAAM,yBAAyB;CAC7B,QAAQ,KAAK,OAAO,KAAK,QAAQ;EAC/B,IAAI,QAAQ;GACV,IAAI,IAAI,OAAO,QAAQ,MAAM,IAAI,OAAO,MAAM,OAAO,GAAG,IAAI;EAC9D;CACF;CACA,MAAM,KAAK,OAAO,KAAK;EACrB,IAAI,UAAU,CAAC;EACf,IAAI,aAAa;EACjB,IAAI,WAAW;CACjB;CACA,SAAS,KAAK,OAAO,KAAK;EACxB,MAAM,OAAO,IAAI,OAAO,MAAM,OAAO,GAAG;EACxC,MAAM,OAIJ,qBAAqB,IAAI,IAAI,IAAI,uBAAuB,gBAAgB,IAAI,KAAK,IAAI,aAAa,IAAI,IAAI,IAAI,oBAAoB;EAEpI,IAAI,QAAQ,KAAK,CAAC,MAAM,IAAI,CAAC;CAC/B;CACA,OAAO,KAAK,QAAQ,WAAW,OAAO,KAAK;EACzC;EACA,CAAC,IAAI,IAAI,YAAY,CAAC,EAAC,CAAE,KAAK,CAAC,IAAI,OAAO,MAAM,OAAO,GAAG,GAAG,IAAI,OAAO,CAAC;CAC3E;CACA,MAAM,KAAK,MAAM,OAAO;EACtB,IAAI,IAAI,IAAI,UAAU,MAAM;EAC5B,IAAI,SAAS,kBAAkB;GAC7B,IAAI,IAAI,QAAQ;EAClB,OAAO,IAAI,SAAS,iBAAiB;GACnC,IAAI,IAAI,QAAQ,QAAQ,IAAI,OAAO,MAAM,IAAI,YAAY,IAAI,QAAQ,EAAE;EACzE,OAAO,IAAI,SAAS,qBAAqB;GACvC,IAAI,IAAI,QAAQ,IAAI,IAAI,OAAO,OAAO;EACxC,OAAO,IAAI,SAAS,uBAAuB;GACzC,IAAI,IAAI,QAAQ,gBAAgB,IAAI,OAAO,OAAO;EACpD,OAAO,IAAI,SAAS,wBAAwB;GAC1C,IAAI,IAAI,QAAQ;EAClB,OAAO,IAAI,SAAS,uBAAuB;GACzC,IAAI,IAAI,QAAQ;EAClB,OAAO;GACL,IAAI,IAAI,QAAQ;EAClB;CACF;AACF;AACA,MAAM,qCAAqC,IAAI,QAAQ;AACvD,MAAM,gBAAgB,KAAK,KAAK,KAAK,MAAM,YAAY;CACrD,MAAM,UAAU,MAAM,SAAS,YAAY;EACzC,MAAM,YAAY,QAAQ,QAAQ,OAAO,EAAE;EAC3C,IAAI,SAAS,QAAQ;GAAE;GAAK,KAAK,OAAO,GAAG;GAAG,SAAS;EAAU,CAAC;OAC7D,SAAS,MAAM,GAAG,UAAU,IAAI,SAAS;CAChD;CACA,IAAI,OAAO,QAAQ,UAAU;EAC3B,IAAI,OAAO,OAAO;EAClB;CACF;CACA,MAAM,aAAa,uBAAuB,IAAI;CAC9C,IAAI,eAAe,mBAAmB,IAAI,UAAU;CACpD,IAAI,CAAC,cAAc;EACjB,+BAA+B,IAAI,IAAI;EACvC,mBAAmB,IAAI,YAAY,YAAY;CACjD;CACA,IAAI,SAAS,aAAa,IAAI,GAAG;CACjC,IAAI,CAAC,QAAQ;EACX,SAAS;GAAE,MAAM;GAAM,SAAS;GAAM,OAAO;EAAK;EAClD,wBAAwB,KAAK,wBAAwB;GACnD,QAAQ;GACR,cAAc,oBAAoB,IAAI;GACtC,KAAK;GACL,SAAS;GACT,YAAY;GACZ,UAAU;EACZ,CAAC;EACD,IAAI,aAAa,QAAQ,KAAK;GAC5B,aAAa,MAAM;EACrB;EACA,aAAa,IAAI,KAAK,MAAM;CAC9B;CACA,IAAI,OAAO,UAAU,MAAM;EACzB,OACE,SAAS,IAAI,GAAG,OAChB,gBAAgB,IAAI,IAAI,IAAI,MAAM,OAAO,SACzC,WACF;EACA;CACF;CACA,MAAM,EAAE,MAAM,YAAY;CAC1B,IAAI,SAAS,MAAM;EACjB,IAAI,OAAO,OAAO;CACpB;CACA,IAAI,CAAC,SAAS;CACd,KAAK,MAAM,CAAC,SAAS,cAAc,SAAS;EAC1C,IAAI;EACJ,IAAI,UAAU;EACd,KAAK,MAAM,CAAC,UAAU,SAAS,WAAW;GACxC,IAAI,SAAS,sBAAsB;IACjC,YAAY,gBAAgB,QAAQ;IACpC;GACF;GACA,IAAI,SAAS,mBAAmB;IAC9B,IAAI,cAAc,KAAK,GAAG;KACxB,OACE,cAAc,IAAI,GAAG,OACrB,gBAAgB,IAAI,IAAI,IAAI,OAAO,UAAU,GAAG,SAAS,uGACzD,sBACF;KACA,UAAU;KACV;IACF;IACA,YAAY;IACZ;GACF;GACA,OACE,wBAAwB,YACxB,gBAAgB,IAAI,IAAI,IAAI,OAAO,SAAS,4HAC5C,sBACF;GACA,UAAU;GACV;EACF;EACA,IAAI,CAAC,SAAS;EACd,IAAI,cAAc,KAAK,GAAG;GACxB,IAAI,OAAO,OAAO;EACpB,OAAO;GACL;GACA,CAAC,CAAC,IAAI,WAAW,CAAC,EAAC,CAAE,eAAe,CAAC,EAAC,CAAE,OAAO;EACjD;CACF;AACF;AACA,MAAM,6BAA6B,IAAI,QAAQ;AAC/C,SAAS,yBAAyB,OAAO,MAAM,SAAS;CACtD,IAAI,SAAS;CACb,IAAI,WAAW;CACf,KAAK,MAAM,OAAO,OAAO;EACvB,IAAI,mBAAmB,MAAM;EAC7B,SAAS;EACT,MAAM,QAAQ,MAAM;EACpB,IAAI,SAAS,MAAM;EACnB,MAAM,aAAa,qBAAqB,KAAK;EAC7C,YAAY,GAAG,IAAI,OAAO,GAAG,MAAM,WAAW,OAAO,GAAG;CAC1D;CACA,IAAI,CAAC,QAAQ,OAAO;CACpB,MAAM,aAAa,uBAAuB,IAAI;CAC9C,IAAI,eAAe,WAAW,IAAI,UAAU;CAC5C,IAAI,CAAC,cAAc;EACjB,+BAA+B,IAAI,IAAI;EACvC,WAAW,IAAI,YAAY,YAAY;CACzC;CACA,MAAM,SAAS,UAAU,KAAK,IAAI,aAAa,IAAI,QAAQ;CAC3D,IAAI,QAAQ,OAAO;CACnB,MAAM,MAAM;EAAE,QAAQ,CAAC;EAAG,QAAQ;CAAK;CACvC,KAAK,MAAM,OAAO,OAAO;EACvB,IAAI,mBAAmB,MAAM;EAC7B,MAAM,QAAQ,MAAM;EACpB,IAAI,SAAS,MAAM;EACnB,aAAa,KAAK,KAAK,OAAO,MAAM,OAAO;CAC7C;CACA,MAAM,QAAQ;EACZ,QAAQ,IAAI;EACZ,QAAQ,IAAI,UAAU,KAAK;CAC7B;CACA,IAAI,CAAC,SAAS;EACZ,IAAI,aAAa,QAAQ,KAAK;GAC5B,aAAa,MAAM;EACrB;EACA,aAAa,IAAI,UAAU,KAAK;CAClC;CACA,OAAO;AACT;AACA,MAAM,mCAAmC,IAAI,QAAQ;AACrD,SAAS,qBAAqB,aAAa,QAAQ,WAAW,MAAM;CAClE,MAAM,aAAa,uBAAuB,IAAI;CAC9C,MAAM,OAAO,aAAa;CAC1B,MAAM,eAAe,SAAS,UAAU,KAAK,WAAW,OAAO,IAAI,SAAS;CAC5E,MAAM,cAAc,qBAAqB,OAAO,MAAM;CACtD,IAAI;CACJ,IAAI,YAAY,QAAQ;EACtB,MAAM,WAAW,KAAK,QAAQ,cAAc,EAAE;EAC9C,KAAK,MAAM,cAAc,aAAa;GACpC,IAAI,QAAQ,IAAI,aAAa,eAAe;IAC1C,yBAAyB,YAAY,IAAI;GAC3C;GACA,IAAI,aAAa,cAAc,SAAS,WAAW,GAAG,WAAW,EAAE,GAAG;IACpE,YAAY,CAAC;IACb,QAAQ,KAAK,UAAU;GACzB;EACF;CACF;CACA,MAAM,WAAW,GAAG,mBAAmB,MAAM,EAAE,GAAG,aAAa,GAAG,UAAU,QAAQ,KAAK,GAAG,IAAI;CAChG,MAAM,eAAe,YAAY;CACjC,IAAI,cAAc,eAAe,cAAc,aAAa,QAAQ,UAAU;EAC5E,OAAO;CACT;CACA,IAAI,kBAAkB,iBAAiB,IAAI,UAAU;CACrD,IAAI,QAAQ,iBAAiB,IAAI,WAAW;CAC5C,MAAM,SAAS,OAAO,IAAI,QAAQ;CAClC,IAAI,QAAQ,OAAO;CACnB,MAAM,SAAS,OAAO,UAAU,CAAC;CACjC,MAAM,SAAS,OAAO,UAAU,CAAC;CACjC,MAAM,QAAQ,OAAO,SAAS,CAAC;CAC/B,MAAM,OAAO,OAAO,QAAQ,CAAC;CAC7B,MAAM,OAAO,EAAE,GAAG,OAAO;CACzB,IAAI,SAAS;EACX,KAAK,MAAM,cAAc,SAAS;GAChC,OAAO,OAAO,MAAM,OAAO,WAAW;EACxC;CACF;CACA,MAAM,YAAY;EAAE,GAAG;EAAM,GAAG,iBAAiB,SAAS,OAAO;CAAM;CACvE,MAAM,WAAW;EAAE,GAAG;EAAM,GAAG,iBAAiB,SAAS,QAAQ;CAAK;CACtE,MAAM,UAAU,oBAAoB,MAAM;CAC1C,MAAM,SAAS,eAAe,IAAI;CAClC,MAAM,cAAc,OAAO,QAAQ;EACjC,IAAI,MAAM;EACV,IAAI,QAAQ,IAAI;EAChB,OAAO,OAAO,UAAU,UAAU;GAChC,MAAM,QAAQ;GACd,IAAI,SAAS,OAAO,CAAC,SAAS,IAAI,KAAK,GAAG;IACxC,MAAM;IACN,QAAQ,IAAI;IACZ;GACF;GACA,MAAM,aAAa,YAAY;GAC/B,IAAI,eAAe,KAAK,GAAG;IACzB,OAAO,WAAW,UAAU,IAAI,WAAW,MAAM;GACnD;GACA,MAAM,QAAQ,kBAAkB,KAAK,cAAc,KAAK;GACxD,IAAI,OAAO,OAAO,MAAM;GACxB,OAAO;EACT;EACA,IAAI,SAAS,OAAO,UAAU,UAAU;GACtC,OAAO,MAAM;EACf;EACA,OAAO;CACT;CACA,MAAM,OAAO;EACX,KAAK;EACL;EAIA,YAAY,IAAI,IAAI,cAAc,UAAU;EAC5C,OAAO,EAAE,GAAG,cAAc,MAAM;CAClC;CACA,MAAM,SAAS,EAAE,GAAG,YAAY;CAChC,IAAI,cAAc;CAClB,KAAK,MAAM,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,KAAK,GAAG;EAC/C,IAAI,SAAS,IAAI,GAAG,GAAG;EACvB,IAAI,UAAU,QAAQ,MAAM;EAC5B,IAAI,CAAC,OAAO,IAAI,GAAG,GAAG;GACpB,SACE,WAAW,OACX,wBAAwB,IAAI,gLAC9B;GACA;EACF;EACA,MAAM,MAAM,WAAW,KAAK,SAAS;EACrC,IAAI,QAAQ,KAAK,GAAG;EACpB,cAAc;EACd,OAAO,OAAO,eAAe;GAAE;GAAK,MAAM;GAAK,KAAK;EAAI,CAAC;EACzD,KAAK,WAAW,IAAI,GAAG;EACvB,OAAO,KAAK,MAAM;EAClB,MAAM,gBAAgB,UAAU;EAChC,MAAM,kBAAkB,SAAS;EACjC,MAAM,aAAa,MAAM,OAAO,MAAM,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,CAAC,kBAAkB,KAAK,cAAc,CAAC,KAAK,OAAO,MAAM;EACvJ,IAAI,UAAU,aAAa,KAAK,UAAU,eAAe,GAAG;GAC1D,KAAK,MAAM,OAAO;IAChB,OAAO,iBAAiB,UAAU,gBAAgB;IAClD,MAAM,iBAAiB,SAAS,gBAAgB;GAClD;EACF;CACF;CACA,IAAI,CAAC,aAAa;EAChB,OAAO;CACT;CACA,OAAO,eAAe,QAAQ,qBAAqB;EACjD,OAAO;EACP,YAAY;CACd,CAAC;CACD,0BAA0B,IAAI,IAAI;CAClC,IAAI,CAAC,iBAAiB;EACpB,kCAAkC,IAAI,QAAQ;EAC9C,iBAAiB,IAAI,YAAY,eAAe;CAClD;CACA,gBAAgB,IAAI,aAAa,KAAK;CACtC,IAAI,MAAM,QAAQ,KAAK;EACrB,MAAM,MAAM;CACd;CACA,MAAM,IAAI,UAAU,MAAM;CAC1B,OAAO;AACT"}