@tamagui/web 3.0.0-beta.755.1 → 3.0.0-beta.804.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 (424) hide show
  1. package/dist/cjs/createComponent.cjs +83 -86
  2. package/dist/cjs/createComponent.native.cjs +96 -103
  3. package/dist/cjs/createComponent.native.js +96 -103
  4. package/dist/cjs/createComponent.native.js.map +1 -1
  5. package/dist/cjs/createTamagui.cjs +10 -8
  6. package/dist/cjs/createTamagui.native.cjs +10 -8
  7. package/dist/cjs/createTamagui.native.js +10 -8
  8. package/dist/cjs/createTamagui.native.js.map +1 -1
  9. package/dist/cjs/dom/htmlRuntime.native.cjs +1 -0
  10. package/dist/cjs/dom/htmlRuntime.native.js +1 -0
  11. package/dist/cjs/dom/htmlRuntime.native.js.map +1 -1
  12. package/dist/cjs/helpers/defaultAnimationDriver.cjs +0 -1
  13. package/dist/cjs/helpers/defaultAnimationDriver.native.cjs +0 -1
  14. package/dist/cjs/helpers/defaultAnimationDriver.native.js +0 -1
  15. package/dist/cjs/helpers/defaultAnimationDriver.native.js.map +1 -1
  16. package/dist/cjs/helpers/directStyleCSS.cjs +348 -0
  17. package/dist/cjs/helpers/directStyleCSS.native.cjs +20 -0
  18. package/dist/cjs/helpers/directStyleCSS.native.js +22 -0
  19. package/dist/cjs/helpers/directStyleCSS.native.js.map +1 -0
  20. package/dist/cjs/helpers/directStyleCSSCompiled.cjs +40 -0
  21. package/dist/cjs/helpers/directStyleCSSCompiled.native.cjs +46 -0
  22. package/dist/cjs/helpers/directStyleCSSCompiled.native.js +48 -0
  23. package/dist/cjs/helpers/directStyleCSSCompiled.native.js.map +1 -0
  24. package/dist/cjs/helpers/getCSSStylesAtomic.cjs +92 -74
  25. package/dist/cjs/helpers/{getFontLanguage.native.cjs → getCSSStylesAtomicCompiled.cjs} +12 -8
  26. package/dist/cjs/helpers/{getFontLanguage.native.js → getCSSStylesAtomicCompiled.native.cjs} +12 -8
  27. package/dist/cjs/helpers/getCSSStylesAtomicCompiled.native.js +36 -0
  28. package/dist/cjs/helpers/getCSSStylesAtomicCompiled.native.js.map +1 -0
  29. package/dist/cjs/helpers/getSplitStyles.cjs +2417 -548
  30. package/dist/cjs/helpers/getSplitStyles.native.cjs +2758 -621
  31. package/dist/cjs/helpers/getSplitStyles.native.js +2758 -621
  32. package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
  33. package/dist/cjs/helpers/getVariantExtras.cjs +8 -3
  34. package/dist/cjs/helpers/getVariantExtras.native.cjs +8 -3
  35. package/dist/cjs/helpers/getVariantExtras.native.js +8 -3
  36. package/dist/cjs/helpers/getVariantExtras.native.js.map +1 -1
  37. package/dist/cjs/helpers/insertStyleRule.cjs +3 -2
  38. package/dist/cjs/helpers/insertStyleRule.native.cjs +70 -7
  39. package/dist/cjs/helpers/insertStyleRule.native.js +70 -7
  40. package/dist/cjs/helpers/insertStyleRule.native.js.map +1 -1
  41. package/dist/cjs/helpers/mediaState.cjs +12 -0
  42. package/dist/cjs/helpers/mediaState.native.cjs +12 -0
  43. package/dist/cjs/helpers/mediaState.native.js +12 -0
  44. package/dist/cjs/helpers/mediaState.native.js.map +1 -1
  45. package/dist/cjs/helpers/normalizeStyle.cjs +16 -2
  46. package/dist/cjs/helpers/normalizeStyle.native.cjs +16 -2
  47. package/dist/cjs/helpers/normalizeStyle.native.js +16 -2
  48. package/dist/cjs/helpers/normalizeStyle.native.js.map +1 -1
  49. package/dist/cjs/helpers/resolveRem.cjs +1 -1
  50. package/dist/cjs/helpers/skipProps.cjs +6 -1
  51. package/dist/cjs/helpers/skipProps.native.cjs +6 -1
  52. package/dist/cjs/helpers/skipProps.native.js +6 -1
  53. package/dist/cjs/helpers/skipProps.native.js.map +1 -1
  54. package/dist/cjs/helpers/styleFrontend.cjs +2 -8
  55. package/dist/cjs/helpers/styleFrontend.native.cjs +2 -10
  56. package/dist/cjs/helpers/styleFrontend.native.js +2 -10
  57. package/dist/cjs/helpers/styleFrontend.native.js.map +1 -1
  58. package/dist/cjs/helpers/styleToCSS.cjs +59 -0
  59. package/dist/cjs/helpers/{normalizeStylePropKeys.cjs → styleToCSS.native.cjs} +6 -4
  60. package/dist/cjs/helpers/{getFontLanguage.cjs → styleToCSS.native.js} +8 -4
  61. package/dist/cjs/helpers/styleToCSS.native.js.map +1 -0
  62. package/dist/cjs/helpers/subscribeToContextGroup.cjs +28 -1
  63. package/dist/cjs/helpers/subscribeToContextGroup.native.cjs +45 -1
  64. package/dist/cjs/helpers/subscribeToContextGroup.native.js +45 -1
  65. package/dist/cjs/helpers/subscribeToContextGroup.native.js.map +1 -1
  66. package/dist/cjs/helpers/variables.cjs +3 -2
  67. package/dist/cjs/helpers/variables.native.cjs +3 -2
  68. package/dist/cjs/helpers/variables.native.js +3 -2
  69. package/dist/cjs/helpers/variables.native.js.map +1 -1
  70. package/dist/cjs/helpers/wrapStyleTags.cjs +5 -3
  71. package/dist/cjs/helpers/wrapStyleTags.native.cjs +3 -1
  72. package/dist/cjs/helpers/wrapStyleTags.native.js +3 -1
  73. package/dist/cjs/helpers/wrapStyleTags.native.js.map +1 -1
  74. package/dist/cjs/hooks/useComponentState.cjs +70 -89
  75. package/dist/cjs/hooks/useComponentState.native.cjs +70 -88
  76. package/dist/cjs/hooks/useComponentState.native.js +70 -88
  77. package/dist/cjs/hooks/useComponentState.native.js.map +1 -1
  78. package/dist/cjs/hooks/useMedia.cjs +3 -15
  79. package/dist/cjs/hooks/useMedia.native.cjs +3 -15
  80. package/dist/cjs/hooks/useMedia.native.js +3 -15
  81. package/dist/cjs/hooks/useMedia.native.js.map +1 -1
  82. package/dist/cjs/hooks/useProps.cjs +7 -5
  83. package/dist/cjs/hooks/useProps.native.cjs +7 -5
  84. package/dist/cjs/hooks/useProps.native.js +7 -5
  85. package/dist/cjs/hooks/useProps.native.js.map +1 -1
  86. package/dist/cjs/hooks/useSplitStyles.cjs +42 -0
  87. package/dist/cjs/hooks/useSplitStyles.native.cjs +42 -0
  88. package/dist/cjs/hooks/useSplitStyles.native.js +44 -0
  89. package/dist/cjs/hooks/useSplitStyles.native.js.map +1 -0
  90. package/dist/cjs/index.cjs +184 -70
  91. package/dist/cjs/index.native.cjs +184 -70
  92. package/dist/cjs/index.native.js +184 -70
  93. package/dist/cjs/index.native.js.map +1 -1
  94. package/dist/cjs/insertFont.cjs +1 -1
  95. package/dist/cjs/insertFont.native.cjs +1 -0
  96. package/dist/cjs/insertFont.native.js +1 -0
  97. package/dist/cjs/insertFont.native.js.map +1 -1
  98. package/dist/cjs/internal-runtime.cjs +33 -6
  99. package/dist/cjs/internal-runtime.native.cjs +33 -6
  100. package/dist/cjs/internal-runtime.native.js +33 -6
  101. package/dist/cjs/internal-runtime.native.js.map +1 -1
  102. package/dist/cjs/setupReactNative.cjs +1 -29
  103. package/dist/cjs/setupReactNative.native.cjs +1 -3
  104. package/dist/cjs/setupReactNative.native.js +1 -3
  105. package/dist/cjs/setupReactNative.native.js.map +1 -1
  106. package/dist/cjs/static-resolve.cjs +229 -0
  107. package/dist/cjs/static-resolve.native.cjs +242 -0
  108. package/dist/cjs/static-resolve.native.js +244 -0
  109. package/dist/cjs/static-resolve.native.js.map +1 -0
  110. package/dist/cjs/styled.cjs +23 -37
  111. package/dist/cjs/styled.native.cjs +22 -37
  112. package/dist/cjs/styled.native.js +22 -37
  113. package/dist/cjs/styled.native.js.map +1 -1
  114. package/dist/cjs/views/TamaguiProvider.cjs +4 -8
  115. package/dist/cjs/views/TamaguiProvider.native.cjs +4 -8
  116. package/dist/cjs/views/TamaguiProvider.native.js +4 -8
  117. package/dist/cjs/views/TamaguiProvider.native.js.map +1 -1
  118. package/dist/cjs/views/ThemeUpdate.cjs +1 -1
  119. package/dist/cjs/views/ThemeUpdate.native.cjs +1 -1
  120. package/dist/cjs/views/ThemeUpdate.native.js +1 -1
  121. package/dist/cjs/views/ThemeUpdate.native.js.map +1 -1
  122. package/dist/esm/createComponent.mjs +85 -88
  123. package/dist/esm/createComponent.mjs.map +1 -1
  124. package/dist/esm/createComponent.native.js +98 -105
  125. package/dist/esm/createComponent.native.js.map +1 -1
  126. package/dist/esm/createTamagui.mjs +10 -8
  127. package/dist/esm/createTamagui.mjs.map +1 -1
  128. package/dist/esm/createTamagui.native.js +10 -8
  129. package/dist/esm/createTamagui.native.js.map +1 -1
  130. package/dist/esm/dom/htmlRuntime.native.js +1 -0
  131. package/dist/esm/dom/htmlRuntime.native.js.map +1 -1
  132. package/dist/esm/helpers/defaultAnimationDriver.mjs +0 -1
  133. package/dist/esm/helpers/defaultAnimationDriver.mjs.map +1 -1
  134. package/dist/esm/helpers/defaultAnimationDriver.native.js +0 -1
  135. package/dist/esm/helpers/defaultAnimationDriver.native.js.map +1 -1
  136. package/dist/esm/helpers/directStyleCSS.mjs +320 -0
  137. package/dist/esm/helpers/directStyleCSS.mjs.map +1 -0
  138. package/dist/esm/helpers/directStyleCSS.native.js +1 -0
  139. package/dist/esm/helpers/directStyleCSSCompiled.mjs +11 -0
  140. package/dist/esm/helpers/directStyleCSSCompiled.mjs.map +1 -0
  141. package/dist/esm/helpers/directStyleCSSCompiled.native.js +15 -0
  142. package/dist/esm/helpers/directStyleCSSCompiled.native.js.map +1 -0
  143. package/dist/esm/helpers/getCSSStylesAtomic.mjs +86 -72
  144. package/dist/esm/helpers/getCSSStylesAtomic.mjs.map +1 -1
  145. package/dist/esm/helpers/getCSSStylesAtomicCompiled.mjs +9 -0
  146. package/dist/esm/helpers/getCSSStylesAtomicCompiled.mjs.map +1 -0
  147. package/dist/esm/helpers/getCSSStylesAtomicCompiled.native.js +9 -0
  148. package/dist/esm/helpers/getCSSStylesAtomicCompiled.native.js.map +1 -0
  149. package/dist/esm/helpers/getSplitStyles.mjs +2406 -545
  150. package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
  151. package/dist/esm/helpers/getSplitStyles.native.js +2751 -618
  152. package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
  153. package/dist/esm/helpers/getVariantExtras.mjs +8 -3
  154. package/dist/esm/helpers/getVariantExtras.mjs.map +1 -1
  155. package/dist/esm/helpers/getVariantExtras.native.js +8 -3
  156. package/dist/esm/helpers/getVariantExtras.native.js.map +1 -1
  157. package/dist/esm/helpers/insertStyleRule.mjs +3 -2
  158. package/dist/esm/helpers/insertStyleRule.mjs.map +1 -1
  159. package/dist/esm/helpers/insertStyleRule.native.js +71 -5
  160. package/dist/esm/helpers/insertStyleRule.native.js.map +1 -1
  161. package/dist/esm/helpers/mediaState.mjs +12 -1
  162. package/dist/esm/helpers/mediaState.mjs.map +1 -1
  163. package/dist/esm/helpers/mediaState.native.js +12 -1
  164. package/dist/esm/helpers/mediaState.native.js.map +1 -1
  165. package/dist/esm/helpers/normalizeStyle.mjs +16 -2
  166. package/dist/esm/helpers/normalizeStyle.mjs.map +1 -1
  167. package/dist/esm/helpers/normalizeStyle.native.js +16 -2
  168. package/dist/esm/helpers/normalizeStyle.native.js.map +1 -1
  169. package/dist/esm/helpers/resolveRem.mjs +1 -1
  170. package/dist/esm/helpers/resolveRem.mjs.map +1 -1
  171. package/dist/esm/helpers/skipProps.mjs +3 -1
  172. package/dist/esm/helpers/skipProps.mjs.map +1 -1
  173. package/dist/esm/helpers/skipProps.native.js +3 -1
  174. package/dist/esm/helpers/skipProps.native.js.map +1 -1
  175. package/dist/esm/helpers/styleFrontend.mjs +2 -4
  176. package/dist/esm/helpers/styleFrontend.mjs.map +1 -1
  177. package/dist/esm/helpers/styleFrontend.native.js +2 -6
  178. package/dist/esm/helpers/styleFrontend.native.js.map +1 -1
  179. package/dist/esm/helpers/styleToCSS.mjs +40 -0
  180. package/dist/esm/helpers/styleToCSS.mjs.map +1 -0
  181. package/dist/esm/helpers/styleToCSS.native.js +4 -0
  182. package/dist/esm/helpers/styleToCSS.native.js.map +1 -0
  183. package/dist/esm/helpers/subscribeToContextGroup.mjs +25 -1
  184. package/dist/esm/helpers/subscribeToContextGroup.mjs.map +1 -1
  185. package/dist/esm/helpers/subscribeToContextGroup.native.js +42 -1
  186. package/dist/esm/helpers/subscribeToContextGroup.native.js.map +1 -1
  187. package/dist/esm/helpers/variables.mjs +2 -1
  188. package/dist/esm/helpers/variables.mjs.map +1 -1
  189. package/dist/esm/helpers/variables.native.js +2 -1
  190. package/dist/esm/helpers/variables.native.js.map +1 -1
  191. package/dist/esm/helpers/wrapStyleTags.mjs +5 -3
  192. package/dist/esm/helpers/wrapStyleTags.mjs.map +1 -1
  193. package/dist/esm/helpers/wrapStyleTags.native.js +3 -1
  194. package/dist/esm/helpers/wrapStyleTags.native.js.map +1 -1
  195. package/dist/esm/hooks/useComponentState.mjs +71 -90
  196. package/dist/esm/hooks/useComponentState.mjs.map +1 -1
  197. package/dist/esm/hooks/useComponentState.native.js +71 -89
  198. package/dist/esm/hooks/useComponentState.native.js.map +1 -1
  199. package/dist/esm/hooks/useMedia.mjs +2 -15
  200. package/dist/esm/hooks/useMedia.mjs.map +1 -1
  201. package/dist/esm/hooks/useMedia.native.js +2 -15
  202. package/dist/esm/hooks/useMedia.native.js.map +1 -1
  203. package/dist/esm/hooks/useProps.mjs +7 -5
  204. package/dist/esm/hooks/useProps.mjs.map +1 -1
  205. package/dist/esm/hooks/useProps.native.js +7 -5
  206. package/dist/esm/hooks/useProps.native.js.map +1 -1
  207. package/dist/esm/hooks/useSplitStyles.mjs +17 -0
  208. package/dist/esm/hooks/useSplitStyles.mjs.map +1 -0
  209. package/dist/esm/hooks/useSplitStyles.native.js +14 -0
  210. package/dist/esm/hooks/useSplitStyles.native.js.map +1 -0
  211. package/dist/esm/index.js +57 -137
  212. package/dist/esm/index.mjs +57 -137
  213. package/dist/esm/index.native.js +57 -137
  214. package/dist/esm/insertFont.mjs +1 -1
  215. package/dist/esm/insertFont.mjs.map +1 -1
  216. package/dist/esm/insertFont.native.js +1 -0
  217. package/dist/esm/insertFont.native.js.map +1 -1
  218. package/dist/esm/internal-runtime.mjs +23 -4
  219. package/dist/esm/internal-runtime.mjs.map +1 -1
  220. package/dist/esm/internal-runtime.native.js +23 -4
  221. package/dist/esm/internal-runtime.native.js.map +1 -1
  222. package/dist/esm/setupReactNative.mjs +1 -29
  223. package/dist/esm/setupReactNative.mjs.map +1 -1
  224. package/dist/esm/setupReactNative.native.js +1 -3
  225. package/dist/esm/setupReactNative.native.js.map +1 -1
  226. package/dist/esm/static-resolve.mjs +194 -0
  227. package/dist/esm/static-resolve.mjs.map +1 -0
  228. package/dist/esm/static-resolve.native.js +205 -0
  229. package/dist/esm/static-resolve.native.js.map +1 -0
  230. package/dist/esm/styled.mjs +24 -40
  231. package/dist/esm/styled.mjs.map +1 -1
  232. package/dist/esm/styled.native.js +23 -40
  233. package/dist/esm/styled.native.js.map +1 -1
  234. package/dist/esm/views/TamaguiProvider.mjs +4 -8
  235. package/dist/esm/views/TamaguiProvider.mjs.map +1 -1
  236. package/dist/esm/views/TamaguiProvider.native.js +4 -8
  237. package/dist/esm/views/TamaguiProvider.native.js.map +1 -1
  238. package/dist/esm/views/ThemeUpdate.mjs +1 -1
  239. package/dist/esm/views/ThemeUpdate.mjs.map +1 -1
  240. package/dist/esm/views/ThemeUpdate.native.js +1 -1
  241. package/dist/esm/views/ThemeUpdate.native.js.map +1 -1
  242. package/package.json +25 -15
  243. package/reset.css +3 -3
  244. package/src/createComponent.tsx +175 -192
  245. package/src/createTamagui.ts +13 -10
  246. package/src/dom/html.native.tsx +99 -92
  247. package/src/dom/html.tsx +105 -98
  248. package/src/dom/htmlRuntime.native.tsx +1 -0
  249. package/src/helpers/defaultAnimationDriver.tsx +0 -1
  250. package/src/helpers/directStyleCSS.native.ts +1 -0
  251. package/src/helpers/directStyleCSS.ts +534 -0
  252. package/src/helpers/directStyleCSSCompiled.ts +32 -0
  253. package/src/helpers/getCSSStylesAtomic.ts +168 -88
  254. package/src/helpers/getCSSStylesAtomicCompiled.ts +9 -0
  255. package/src/helpers/getSplitStyles.tsx +4653 -1003
  256. package/src/helpers/getVariantExtras.tsx +15 -3
  257. package/src/helpers/insertStyleRule.tsx +8 -3
  258. package/src/helpers/mediaState.ts +15 -0
  259. package/src/helpers/normalizeStyle.ts +27 -2
  260. package/src/helpers/resolveRem.ts +1 -1
  261. package/src/helpers/skipProps.ts +3 -0
  262. package/src/helpers/styleFrontend.ts +20 -27
  263. package/src/helpers/styleToCSS.native.ts +1 -0
  264. package/src/helpers/styleToCSS.ts +43 -0
  265. package/src/helpers/subscribeToContextGroup.tsx +30 -0
  266. package/src/helpers/variables.ts +2 -1
  267. package/src/helpers/warnOnce.ts +3 -4
  268. package/src/helpers/wrapStyleTags.tsx +1 -1
  269. package/src/hooks/useComponentState.ts +118 -158
  270. package/src/hooks/useMedia.tsx +2 -18
  271. package/src/hooks/useProps.tsx +19 -15
  272. package/src/hooks/useSplitStyles.tsx +26 -0
  273. package/src/index.ts +298 -73
  274. package/src/insertFont.ts +5 -1
  275. package/src/internal-runtime.ts +49 -24
  276. package/src/internalRuntimeTypes.ts +2 -7
  277. package/src/setupReactNative.ts +7 -30
  278. package/src/static-resolve.ts +396 -0
  279. package/src/styled.tsx +34 -11
  280. package/src/types.tsx +41 -31
  281. package/src/views/TamaguiProvider.tsx +23 -22
  282. package/src/views/ThemeUpdate.tsx +3 -1
  283. package/types/createComponent.d.ts.map +1 -1
  284. package/types/createTamagui.d.ts.map +1 -1
  285. package/types/dom/html.d.ts +54 -50
  286. package/types/dom/html.d.ts.map +1 -1
  287. package/types/dom/html.native.d.ts +51 -47
  288. package/types/dom/html.native.d.ts.map +1 -1
  289. package/types/dom/htmlRuntime.native.d.ts.map +1 -1
  290. package/types/helpers/defaultAnimationDriver.d.ts.map +1 -1
  291. package/types/helpers/directStyleCSS.d.ts +28 -0
  292. package/types/helpers/directStyleCSS.d.ts.map +1 -0
  293. package/types/helpers/directStyleCSS.native.d.ts +2 -0
  294. package/types/helpers/directStyleCSS.native.d.ts.map +1 -0
  295. package/types/helpers/directStyleCSSCompiled.d.ts +10 -0
  296. package/types/helpers/directStyleCSSCompiled.d.ts.map +1 -0
  297. package/types/helpers/getCSSStylesAtomic.d.ts +22 -1
  298. package/types/helpers/getCSSStylesAtomic.d.ts.map +1 -1
  299. package/types/helpers/getCSSStylesAtomicCompiled.d.ts +4 -0
  300. package/types/helpers/getCSSStylesAtomicCompiled.d.ts.map +1 -0
  301. package/types/helpers/getSplitStyles.d.ts +11 -4
  302. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  303. package/types/helpers/getVariantExtras.d.ts.map +1 -1
  304. package/types/helpers/insertStyleRule.d.ts.map +1 -1
  305. package/types/helpers/mediaState.d.ts +4 -0
  306. package/types/helpers/mediaState.d.ts.map +1 -1
  307. package/types/helpers/normalizeStyle.d.ts +1 -1
  308. package/types/helpers/normalizeStyle.d.ts.map +1 -1
  309. package/types/helpers/skipProps.d.ts +2 -0
  310. package/types/helpers/skipProps.d.ts.map +1 -1
  311. package/types/helpers/styleFrontend.d.ts +13 -17
  312. package/types/helpers/styleFrontend.d.ts.map +1 -1
  313. package/types/helpers/styleToCSS.d.ts +2 -0
  314. package/types/helpers/styleToCSS.d.ts.map +1 -0
  315. package/types/helpers/styleToCSS.native.d.ts +2 -0
  316. package/types/helpers/styleToCSS.native.d.ts.map +1 -0
  317. package/types/helpers/subscribeToContextGroup.d.ts +1 -0
  318. package/types/helpers/subscribeToContextGroup.d.ts.map +1 -1
  319. package/types/helpers/variables.d.ts.map +1 -1
  320. package/types/helpers/warnOnce.d.ts.map +1 -1
  321. package/types/helpers/webPropsToSkip.native.d.ts +5 -0
  322. package/types/helpers/webPropsToSkip.native.d.ts.map +1 -1
  323. package/types/hooks/useComponentState.d.ts +3 -2
  324. package/types/hooks/useComponentState.d.ts.map +1 -1
  325. package/types/hooks/useMedia.d.ts +1 -5
  326. package/types/hooks/useMedia.d.ts.map +1 -1
  327. package/types/hooks/useProps.d.ts.map +1 -1
  328. package/types/hooks/useSplitStyles.d.ts +3 -0
  329. package/types/hooks/useSplitStyles.d.ts.map +1 -0
  330. package/types/index.d.ts +58 -72
  331. package/types/index.d.ts.map +1 -1
  332. package/types/insertFont.d.ts.map +1 -1
  333. package/types/internal-runtime.d.ts +24 -11
  334. package/types/internal-runtime.d.ts.map +1 -1
  335. package/types/internalRuntimeTypes.d.ts +1 -6
  336. package/types/internalRuntimeTypes.d.ts.map +1 -1
  337. package/types/setupReactNative.d.ts +2 -3
  338. package/types/setupReactNative.d.ts.map +1 -1
  339. package/types/static-resolve.d.ts +79 -0
  340. package/types/static-resolve.d.ts.map +1 -0
  341. package/types/styled.d.ts.map +1 -1
  342. package/types/types.d.ts +30 -23
  343. package/types/types.d.ts.map +1 -1
  344. package/types/views/TamaguiProvider.d.ts.map +1 -1
  345. package/types/views/ThemeUpdate.d.ts.map +1 -1
  346. package/dist/cjs/constants/accessibilityDirectMap.cjs +0 -34
  347. package/dist/cjs/constants/accessibilityDirectMap.native.cjs +0 -36
  348. package/dist/cjs/constants/accessibilityDirectMap.native.js +0 -38
  349. package/dist/cjs/constants/accessibilityDirectMap.native.js.map +0 -1
  350. package/dist/cjs/helpers/directStyle.cjs +0 -962
  351. package/dist/cjs/helpers/directStyle.native.cjs +0 -1165
  352. package/dist/cjs/helpers/directStyle.native.js +0 -1167
  353. package/dist/cjs/helpers/directStyle.native.js.map +0 -1
  354. package/dist/cjs/helpers/frontendProgram.cjs +0 -43
  355. package/dist/cjs/helpers/frontendProgram.native.cjs +0 -49
  356. package/dist/cjs/helpers/frontendProgram.native.js +0 -51
  357. package/dist/cjs/helpers/frontendProgram.native.js.map +0 -1
  358. package/dist/cjs/helpers/getFontLanguage.native.js.map +0 -1
  359. package/dist/cjs/helpers/normalizeStylePropKeys.native.cjs +0 -37
  360. package/dist/cjs/helpers/normalizeStylePropKeys.native.js +0 -39
  361. package/dist/cjs/helpers/normalizeStylePropKeys.native.js.map +0 -1
  362. package/dist/cjs/helpers/propMapper.cjs +0 -384
  363. package/dist/cjs/helpers/propMapper.native.cjs +0 -536
  364. package/dist/cjs/helpers/propMapper.native.js +0 -538
  365. package/dist/cjs/helpers/propMapper.native.js.map +0 -1
  366. package/dist/cjs/helpers/useRenderElement.cjs +0 -47
  367. package/dist/cjs/helpers/useRenderElement.native.cjs +0 -53
  368. package/dist/cjs/helpers/useRenderElement.native.js +0 -55
  369. package/dist/cjs/helpers/useRenderElement.native.js.map +0 -1
  370. package/dist/esm/constants/accessibilityDirectMap.mjs +0 -8
  371. package/dist/esm/constants/accessibilityDirectMap.mjs.map +0 -1
  372. package/dist/esm/constants/accessibilityDirectMap.native.js +0 -8
  373. package/dist/esm/constants/accessibilityDirectMap.native.js.map +0 -1
  374. package/dist/esm/helpers/directStyle.mjs +0 -929
  375. package/dist/esm/helpers/directStyle.mjs.map +0 -1
  376. package/dist/esm/helpers/directStyle.native.js +0 -1132
  377. package/dist/esm/helpers/directStyle.native.js.map +0 -1
  378. package/dist/esm/helpers/frontendProgram.mjs +0 -20
  379. package/dist/esm/helpers/frontendProgram.mjs.map +0 -1
  380. package/dist/esm/helpers/frontendProgram.native.js +0 -24
  381. package/dist/esm/helpers/frontendProgram.native.js.map +0 -1
  382. package/dist/esm/helpers/getFontLanguage.mjs +0 -4
  383. package/dist/esm/helpers/getFontLanguage.mjs.map +0 -1
  384. package/dist/esm/helpers/getFontLanguage.native.js +0 -6
  385. package/dist/esm/helpers/getFontLanguage.native.js.map +0 -1
  386. package/dist/esm/helpers/normalizeStylePropKeys.mjs +0 -4
  387. package/dist/esm/helpers/normalizeStylePropKeys.mjs.map +0 -1
  388. package/dist/esm/helpers/normalizeStylePropKeys.native.js +0 -15
  389. package/dist/esm/helpers/normalizeStylePropKeys.native.js.map +0 -1
  390. package/dist/esm/helpers/propMapper.mjs +0 -360
  391. package/dist/esm/helpers/propMapper.mjs.map +0 -1
  392. package/dist/esm/helpers/propMapper.native.js +0 -511
  393. package/dist/esm/helpers/propMapper.native.js.map +0 -1
  394. package/dist/esm/helpers/useRenderElement.mjs +0 -26
  395. package/dist/esm/helpers/useRenderElement.mjs.map +0 -1
  396. package/dist/esm/helpers/useRenderElement.native.js +0 -31
  397. package/dist/esm/helpers/useRenderElement.native.js.map +0 -1
  398. package/src/constants/accessibilityDirectMap.native.tsx +0 -10
  399. package/src/constants/accessibilityDirectMap.tsx +0 -11
  400. package/src/helpers/directStyle.ts +0 -2294
  401. package/src/helpers/frontendProgram.ts +0 -48
  402. package/src/helpers/getFontLanguage.ts +0 -2
  403. package/src/helpers/normalizeStylePropKeys.native.ts +0 -12
  404. package/src/helpers/normalizeStylePropKeys.ts +0 -3
  405. package/src/helpers/propMapper.ts +0 -721
  406. package/src/helpers/useRenderElement.tsx +0 -73
  407. package/types/constants/accessibilityDirectMap.d.ts +0 -6
  408. package/types/constants/accessibilityDirectMap.d.ts.map +0 -1
  409. package/types/constants/accessibilityDirectMap.native.d.ts +0 -6
  410. package/types/constants/accessibilityDirectMap.native.d.ts.map +0 -1
  411. package/types/helpers/directStyle.d.ts +0 -15
  412. package/types/helpers/directStyle.d.ts.map +0 -1
  413. package/types/helpers/frontendProgram.d.ts +0 -10
  414. package/types/helpers/frontendProgram.d.ts.map +0 -1
  415. package/types/helpers/getFontLanguage.d.ts +0 -2
  416. package/types/helpers/getFontLanguage.d.ts.map +0 -1
  417. package/types/helpers/normalizeStylePropKeys.d.ts +0 -2
  418. package/types/helpers/normalizeStylePropKeys.d.ts.map +0 -1
  419. package/types/helpers/normalizeStylePropKeys.native.d.ts +0 -13
  420. package/types/helpers/normalizeStylePropKeys.native.d.ts.map +0 -1
  421. package/types/helpers/propMapper.d.ts +0 -6
  422. package/types/helpers/propMapper.d.ts.map +0 -1
  423. package/types/helpers/useRenderElement.d.ts +0 -13
  424. package/types/helpers/useRenderElement.d.ts.map +0 -1
@@ -1,962 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all) __defProp(target, name, {
7
- get: all[name],
8
- enumerable: true
9
- });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
- get: () => from[key],
15
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
- });
17
- }
18
- return to;
19
- };
20
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
- var directStyle_exports = {};
22
- __export(directStyle_exports, {
23
- clearDirectStyle: () => clearDirectStyle,
24
- contributeFrontendValue: () => contributeFrontendValue,
25
- contributeStyleString: () => contributeStyleString,
26
- contributeStyleValue: () => contributeStyleValue,
27
- contributeVariantClauseValue: () => contributeVariantClauseValue,
28
- directStyleSignature: () => directStyleSignature,
29
- flushDirectStyles: () => flushDirectStyles,
30
- getDirectDynamicThemeAccess: () => getDirectDynamicThemeAccess,
31
- isConditionalStyleObject: () => isConditionalStyleObject,
32
- platformMatches: () => platformMatches,
33
- resolveClauseChain: () => resolveClauseChain
34
- });
35
- module.exports = __toCommonJS(directStyle_exports);
36
- var import_constants = require("@tamagui/constants");
37
- var import_helpers = require("@tamagui/helpers");
38
- var import_runtime = require("@tamagui/style-grammar/runtime");
39
- var import_createVariable = require("../createVariable.cjs");
40
- var import_useMedia = require("../hooks/useMedia.cjs");
41
- var import_warnOnce = require("./warnOnce.cjs");
42
- var import_expandStyle = require("./expandStyle.cjs");
43
- var import_getCSSStylesAtomic = require("./getCSSStylesAtomic.cjs");
44
- var import_grammarConfig = require("./grammarConfig.cjs");
45
- var import_getDynamicVal = require("./getDynamicVal.cjs");
46
- var import_insertStyleRule = require("./insertStyleRule.cjs");
47
- var import_normalizeColor = require("./normalizeColor.cjs");
48
- require("./parseNativeStyle.native.cjs");
49
- require("./parseNativeTransform.native.cjs");
50
- var import_tokenCategories = require("./tokenCategories.cjs");
51
- var import_resolveSafeAreaVariable = require("./resolveSafeAreaVariable.cjs");
52
- var import_resolveSafeArea = require("./resolveSafeArea.cjs");
53
- var import_resolveVariableValue = require("./resolveVariableValue.cjs");
54
- var import_themeRef = require("./themeRef.cjs");
55
- var import_transformsToString = require("./transformsToString.cjs");
56
- const directStyleHandler = {
57
- segment(state, start, end, isBase, valid, source, chainStart, chainEnd, chainValid, chainCount, _result, failure, failureIndex, property, merge, originalValue, contextOnly) {
58
- if (isBase) {
59
- if (start === end) return;
60
- if (!valid) {
61
- if (process.env.NODE_ENV === "development") (0, import_warnOnce.warnRefusedValue)(property, source, failure === "invalid-character" ? `"${source[failureIndex]}" would end the declaration or rule` : failure === "unterminated-string" ? "an unterminated string" : failure === "unterminated-comment" ? "an unterminated \"/*\" comment" : failure === "stray-comment-close" ? "a stray \"*/\"" : "an unterminated \"(\"");
62
- return;
63
- }
64
- const value = source.slice(start, end);
65
- emitValue(state, property, value, 0, "", void 0, "", "", merge, value, contextOnly);
66
- return 5;
67
- }
68
- if (!chainValid) {
69
- if (process.env.NODE_ENV === "development") (0, import_warnOnce.warnRefusedValue)(property, source, failure === "invalid-character" ? `"${source[failureIndex]}" would end the declaration or rule` : failure === "unterminated-string" ? "an unterminated string" : failure === "unterminated-comment" ? "an unterminated \"/*\" comment" : failure === "stray-comment-close" ? "a stray \"*/\"" : "an unterminated \"(\"");
70
- return;
71
- }
72
- if (start === end) {
73
- if (process.env.NODE_ENV === "development") (0, import_warnOnce.warnRefusedValue)(property, source, "a conditional clause has no value");
74
- return;
75
- }
76
- if (property === "aspectRatio" && chainCount === 1) {
77
- const left = Number(source.slice(chainStart, chainEnd));
78
- const right = Number(source.slice(start, end));
79
- if (chainStart < chainEnd && Number.isFinite(left) && left > 0 && Number.isFinite(right) && right > 0) return 12;
80
- }
81
- const condition = resolveClauseChain(state, source, chainStart, chainEnd, property, void 0, valid ? merge : void 0, void 0, contextOnly, start, end, 1);
82
- if (!condition) return;
83
- if (!valid) {
84
- if (process.env.NODE_ENV === "development") (0, import_warnOnce.warnRefusedValue)(property, source, failure === "invalid-character" ? `"${source[failureIndex]}" would end the declaration or rule` : failure === "unterminated-string" ? "an unterminated string" : failure === "unterminated-comment" ? "an unterminated \"/*\" comment" : failure === "stray-comment-close" ? "a stray \"*/\"" : "an unterminated \"(\"");
85
- return;
86
- }
87
- return 4 | (condition & 12 ? 2 : 0);
88
- },
89
- chain() {
90
- return true;
91
- },
92
- end(state, source, result, lastPayloadStart, chainCount, property, merge, originalValue, contextOnly) {
93
- let hasBase = !!(result & 1);
94
- if (result & 8 && chainCount === 1) {
95
- emitValue(state, property, source, 0, "", void 0, "", "", merge, originalValue ?? source, contextOnly);
96
- hasBase = true;
97
- }
98
- if (process.env.NODE_ENV === "development" && !hasBase && result & 4 && (property in import_helpers.tokenCategories.color || property in import_tokenCategories.tokenCategoryByProperty) && splitComponents(source.slice(lastPayloadStart)).length > 1) (0, import_warnOnce.warnOnce)(`${property}="${source}" has multiple values after its first conditional. Write the base value before the first conditional.`);
99
- if ((!import_constants.isWeb || !state.flatShouldDoClasses) && result & 2 && !hasBase) {
100
- const value = implicitLifecycleBase(property);
101
- if (value !== null) emitValue(state, property, value, 0, "", void 0, "", "", merge, value, contextOnly);
102
- }
103
- }
104
- };
105
- function implicitLifecycleBase(property) {
106
- return property === "opacity" || property === "scale" || property === "scaleX" || property === "scaleY" ? 1 : property === "rotate" ? "0deg" : property === "x" || property === "y" ? 0 : null;
107
- }
108
- const legacyTransformParts = /* @__PURE__ */ new Set([
109
- "matrix",
110
- "perspective",
111
- "rotateX",
112
- "rotateY",
113
- "rotateZ",
114
- "scaleZ",
115
- "skewX",
116
- "skewY"
117
- ]);
118
- const webShadowParts = /* @__PURE__ */ new Set([
119
- "shadowColor",
120
- "shadowOffset",
121
- "shadowOpacity",
122
- "shadowRadius"
123
- ]);
124
- const webTextShadowParts = /* @__PURE__ */ new Set([
125
- "textShadowColor",
126
- "textShadowOffset",
127
- "textShadowRadius"
128
- ]);
129
- const lineStyles = /* @__PURE__ */ new Set([
130
- "none",
131
- "hidden",
132
- "dotted",
133
- "dashed",
134
- "solid",
135
- "double",
136
- "groove",
137
- "ridge",
138
- "inset",
139
- "outset"
140
- ]);
141
- const borderTargets = {
142
- border: {
143
- width: [
144
- "borderTopWidth",
145
- "borderRightWidth",
146
- "borderBottomWidth",
147
- "borderLeftWidth"
148
- ],
149
- style: [
150
- "borderTopStyle",
151
- "borderRightStyle",
152
- "borderBottomStyle",
153
- "borderLeftStyle"
154
- ],
155
- color: [
156
- "borderTopColor",
157
- "borderRightColor",
158
- "borderBottomColor",
159
- "borderLeftColor"
160
- ]
161
- },
162
- borderTop: {
163
- width: ["borderTopWidth"],
164
- style: ["borderTopStyle"],
165
- color: ["borderTopColor"]
166
- },
167
- borderRight: {
168
- width: ["borderRightWidth"],
169
- style: ["borderRightStyle"],
170
- color: ["borderRightColor"]
171
- },
172
- borderBottom: {
173
- width: ["borderBottomWidth"],
174
- style: ["borderBottomStyle"],
175
- color: ["borderBottomColor"]
176
- },
177
- borderLeft: {
178
- width: ["borderLeftWidth"],
179
- style: ["borderLeftStyle"],
180
- color: ["borderLeftColor"]
181
- },
182
- outline: {
183
- width: ["outlineWidth"],
184
- style: ["outlineStyle"],
185
- color: ["outlineColor"]
186
- },
187
- borderBlock: {
188
- width: ["borderBlockStartWidth", "borderBlockEndWidth"],
189
- style: ["borderBlockStartStyle", "borderBlockEndStyle"],
190
- color: ["borderBlockStartColor", "borderBlockEndColor"]
191
- },
192
- borderInline: {
193
- width: ["borderInlineStartWidth", "borderInlineEndWidth"],
194
- style: ["borderInlineStartStyle", "borderInlineEndStyle"],
195
- color: ["borderInlineStartColor", "borderInlineEndColor"]
196
- }
197
- };
198
- const borderStyleDefaults = {
199
- borderWidth: "borderStyle",
200
- borderTopWidth: "borderTopStyle",
201
- borderRightWidth: "borderRightStyle",
202
- borderBottomWidth: "borderBottomStyle",
203
- borderLeftWidth: "borderLeftStyle"
204
- };
205
- function platformMatches(name) {
206
- if (name === "web") return import_constants.isWeb;
207
- if (name === "native") return !import_constants.isWeb;
208
- if (name === "ios") return import_constants.isIos;
209
- if (name === "android") return import_constants.isAndroid;
210
- if (name === "tvos") return import_constants.isIos && import_constants.isTV;
211
- if (name === "androidtv") return import_constants.isAndroid && import_constants.isTV;
212
- return name === "tv" && import_constants.isTV;
213
- }
214
- function resolveClauseChain(state, source, start, end, property, raw, merge, originalValue, contextOnly = false, payloadStart = -1, payloadEnd = -1, warning = 0) {
215
- const compiled = (0, import_grammarConfig.getConfigRevisionState)(state.conf);
216
- const sourceStart = start;
217
- let key = "";
218
- let active = true;
219
- let emit = true;
220
- let selector = "";
221
- let wrappers;
222
- let theme = "";
223
- let enter = false;
224
- let exit = false;
225
- let unsupportedState = "";
226
- let platformRank = 0;
227
- let depth = 0;
228
- let categoryRank = 0;
229
- let withinRank = 0;
230
- let selfStateSpecificity = 0;
231
- for (let index = start; index <= end; index++) {
232
- if (index !== end && source.charCodeAt(index) !== 58) continue;
233
- let modifier = source.slice(start, index);
234
- start = index + 1;
235
- let code = compiled.modifiers[modifier];
236
- let kind = code & 7;
237
- let rank = code >> 3;
238
- let stateSelector = "";
239
- let conditionStateName = "";
240
- let groupName = "";
241
- let containerSize = "";
242
- let containerName = "";
243
- let containerQuery = "";
244
- if (kind === import_runtime.modifierKindState) {
245
- modifier = import_runtime.canonicalStateModifierNames[rank];
246
- stateSelector = import_runtime.stateModifierSelectors[rank];
247
- } else if (!kind && modifier.startsWith("group-")) {
248
- const slash = modifier.indexOf("/");
249
- const authoredState = modifier.slice(6, slash === -1 ? void 0 : slash);
250
- code = compiled.modifiers[authoredState];
251
- if ((code & 7) !== import_runtime.modifierKindState) kind = 0;
252
- else {
253
- rank = code >> 3;
254
- groupName = slash === -1 ? "true" : modifier.slice(slash + 1);
255
- if (rank === 6 || rank === 7 || slash !== -1 && !(0, import_runtime.isModifierName)(groupName, 0, groupName.length)) kind = 0;
256
- else {
257
- kind = 5;
258
- const stateName = import_runtime.canonicalStateModifierNames[rank];
259
- conditionStateName = stateName;
260
- stateSelector = import_runtime.stateModifierSelectors[rank];
261
- modifier = `group-${stateName}${slash === -1 ? "" : modifier.slice(slash)}`;
262
- }
263
- }
264
- } else if (!kind && modifier.charCodeAt(0) === 64) {
265
- const slash = modifier.indexOf("/");
266
- containerSize = modifier.slice(1, slash === -1 ? void 0 : slash);
267
- containerName = slash === -1 ? "" : modifier.slice(slash + 1);
268
- if ((0, import_runtime.isModifierName)(containerSize, 0, containerSize.length) && (slash === -1 || (0, import_runtime.isModifierName)(containerName, 0, containerName.length)) && ((code = compiled.modifiers[containerSize]) & 7) === import_runtime.modifierKindMedia && (containerQuery = compiled.mediaQueries[containerSize]) && (0, import_runtime.isContainerSizeQueryText)(containerQuery)) {
269
- kind = 6;
270
- rank = code >> 3;
271
- }
272
- }
273
- if (!kind) {
274
- if (warning && process.env.NODE_ENV === "development") (0, import_warnOnce.warnRefusedValue)(property, warning === 1 ? source : raw, `unknown modifier "${source.slice(sourceStart, end)}"`);
275
- return 0;
276
- }
277
- let slotStart = 0;
278
- let duplicate = false;
279
- let inserted = !key;
280
- if (!key) key = modifier;
281
- else {
282
- while (slotStart <= key.length) {
283
- let slotEnd = key.indexOf(":", slotStart);
284
- if (slotEnd === -1) slotEnd = key.length;
285
- let order = 0;
286
- const compareLength = Math.min(modifier.length, slotEnd - slotStart);
287
- for (let offset = 0; offset < compareLength; offset++) {
288
- order = modifier.charCodeAt(offset) - key.charCodeAt(slotStart + offset);
289
- if (order) break;
290
- }
291
- order ||= modifier.length - (slotEnd - slotStart);
292
- if (!order) {
293
- duplicate = true;
294
- break;
295
- }
296
- if (order < 0) {
297
- key = `${key.slice(0, slotStart)}${modifier}:${key.slice(slotStart)}`;
298
- inserted = true;
299
- break;
300
- }
301
- if (slotEnd === key.length) break;
302
- slotStart = slotEnd + 1;
303
- }
304
- if (!duplicate && !inserted) key += `:${modifier}`;
305
- }
306
- if (duplicate) continue;
307
- if (kind === import_runtime.modifierKindPlatform) {
308
- if (rank > platformRank) platformRank = rank;
309
- const matches = platformMatches(modifier);
310
- active &&= matches;
311
- emit &&= matches;
312
- continue;
313
- }
314
- depth++;
315
- const nextCategory = kind === import_runtime.modifierKindMedia ? 0 : kind === 6 ? 1 : kind === import_runtime.modifierKindTheme ? 2 : kind === 5 ? 3 : 4;
316
- if (nextCategory > categoryRank) {
317
- categoryRank = nextCategory;
318
- withinRank = rank;
319
- } else if (nextCategory === categoryRank && rank > withinRank) withinRank = rank;
320
- if (kind === import_runtime.modifierKindMedia) {
321
- const query = compiled.mediaQueries[modifier];
322
- if (!query) return 0;
323
- (wrappers ||= []).push(`@media ${query}`);
324
- active &&= !!state.flatMediaState?.[modifier];
325
- (state.flatMediaKeys ||= /* @__PURE__ */ new Set()).add(modifier);
326
- } else if (kind === import_runtime.modifierKindTheme) {
327
- theme = modifier;
328
- selector += `:where(.t_${modifier}, .t_${modifier} *)`;
329
- active &&= state.flatThemeName === modifier || state.flatThemeName?.startsWith(`${modifier}_`) === true;
330
- } else if (kind === 5) {
331
- selector += `:where(.t_group_${groupName}${stateSelector} *)`;
332
- if (rank === 0) (wrappers ||= []).push("@media (hover: hover)");
333
- const component = state.componentState.group?.[groupName];
334
- const context = state.flatGroupContext?.[groupName];
335
- active &&= !!(component?.pseudo ?? context?.state.pseudo)?.[conditionStateName];
336
- (state.flatGroupKeys ||= /* @__PURE__ */ new Set()).add(groupName);
337
- } else if (kind === 6) {
338
- const groupKey = `@${containerName}`;
339
- (wrappers ||= []).push(containerName ? `@container ${containerName} ${containerQuery}` : `@container ${containerQuery}`);
340
- const component = state.componentState.group?.[groupKey];
341
- const context = state.flatGroupContext?.[groupKey];
342
- const match = component?.media?.[containerSize];
343
- active &&= match === void 0 ? !!(context?.state.layout && (0, import_useMedia.mediaKeyMatch)(containerSize, context.state.layout)) : !!match;
344
- (state.flatGroupKeys ||= /* @__PURE__ */ new Set()).add(groupKey);
345
- (state.flatGroupMedia ||= /* @__PURE__ */ new Set()).add(containerSize);
346
- } else {
347
- selfStateSpecificity++;
348
- if (!import_constants.isWeb && stateSelector[0] === "[" && modifier !== "disabled") unsupportedState = modifier;
349
- if (stateSelector[0] === ".") {
350
- selector += `:is(${stateSelector}, ${stateSelector} *)`;
351
- if (rank === 6) enter = true;
352
- else exit = true;
353
- } else selector += stateSelector;
354
- if (rank === 0) (wrappers ||= []).push("@media (hover: hover)");
355
- const component = state.componentState;
356
- active &&= rank === 0 ? !!component.hover : rank === 4 ? !!(component.press || component.pressIn) : rank === 2 ? !!component.focus : rank === 3 ? !!component.focusVisible : rank === 1 ? !!component.focusWithin : rank === 5 ? !!(component.disabled || state.props.disabled) : rank === 6 ? !!component.unmounted : rank === 7 ? !!state.styleProps.isExiting : false;
357
- if (stateSelector[0] === ":") (state.flatStateKeys ||= /* @__PURE__ */ new Set()).add(modifier);
358
- }
359
- }
360
- if (depth > 5) throw new Error(`a flat value clause supports at most 5 non-platform conditions; received ${depth} in "${source.slice(sourceStart, end)}:"`);
361
- const condition = (platformRank << 26 | depth << 23 | categoryRank << 20 | withinRank) * 256 + selfStateSpecificity * 32 + 16 + (active ? 1 : 0) + (emit ? 2 : 0) + (enter ? 4 : 0) + (exit ? 8 : 0);
362
- if (warning && unsupportedState && process.env.NODE_ENV === "development") (0, import_warnOnce.warnOnce)(`${property}: "${unsupportedState}:" has no native component-state source; dropping the clause`);
363
- if (merge && property && condition & 2 && (condition & 1 || import_constants.isWeb && state.flatShouldDoClasses || warning === 1 && !import_constants.isWeb && theme && import_constants.supportsDynamicColorIOS && (0, import_getDynamicVal.isColorStyleKey)(property))) {
364
- const value = payloadStart === -1 ? raw : source.slice(payloadStart, payloadEnd);
365
- emitValue(state, property, value, condition, key, wrappers, selector, theme, merge, warning === 2 ? originalValue : originalValue ?? value, contextOnly);
366
- }
367
- return condition;
368
- }
369
- const tokenLookup = {
370
- value: void 0,
371
- fromTheme: false,
372
- themeKey: ""
373
- };
374
- function fillTokenLookup(value, fromTheme, themeKey) {
375
- tokenLookup.value = value;
376
- tokenLookup.fromTheme = fromTheme;
377
- tokenLookup.themeKey = themeKey;
378
- return tokenLookup;
379
- }
380
- function tokenVariable(state, property, name) {
381
- let lookupName = name.charCodeAt(0) === 36 ? name.slice(1) : name;
382
- if (property === "fontFamily") {
383
- const family = state.conf.fontsParsed[lookupName]?.family;
384
- return family ? fillTokenLookup(family, false, lookupName) : void 0;
385
- }
386
- const fontKey = property === "fontSize" ? "size" : property === "fontWeight" ? "weight" : property === "lineHeight" || property === "letterSpacing" ? property : void 0;
387
- if (fontKey) {
388
- const value = (state.conf.fontsParsed[state.fontFamily || state.conf.defaultFontToken] || state.conf.fontsParsed[state.conf.defaultFontToken])?.[fontKey]?.[lookupName];
389
- return value ? fillTokenLookup(value, false, lookupName) : void 0;
390
- }
391
- const category = (0, import_tokenCategories.getTokenCategoryForProperty)(property);
392
- const dot = lookupName.indexOf(".");
393
- if (dot !== -1) {
394
- const prefix = lookupName.slice(0, dot);
395
- if (!category || prefix === category || prefix === "color") lookupName = lookupName.slice(dot + 1);
396
- }
397
- if (category) {
398
- const own = state.conf.tokensParsed[category]?.[lookupName];
399
- if (own) return fillTokenLookup(own, false, lookupName);
400
- for (const sibling of [
401
- "color",
402
- "space",
403
- "size",
404
- "radius",
405
- "zIndex"
406
- ]) if (sibling !== category && state.conf.tokensParsed[sibling]?.[lookupName]) return;
407
- } else {
408
- const first = lookupName.charCodeAt(0);
409
- if (first >= 48 && first <= 57 || first === 43 || first === 45 || first === 46) return;
410
- }
411
- const theme = state.theme?.[lookupName] || state.conf.themes?.[state.flatThemeName || ""]?.[lookupName];
412
- if (theme) return fillTokenLookup(theme, true, lookupName);
413
- if (category) return;
414
- const token = state.conf.tokensParsed.space?.[lookupName] || state.conf.tokensParsed.color?.[lookupName];
415
- return token ? fillTokenLookup(token, false, lookupName) : void 0;
416
- }
417
- function configuredValue(state, property, raw) {
418
- let name = raw;
419
- let opacity;
420
- const slash = raw.lastIndexOf("/");
421
- if (slash > 0) {
422
- const amount = Number(raw.slice(slash + 1));
423
- if (Number.isInteger(amount) && amount >= 0 && amount <= 100) {
424
- name = raw.slice(0, slash);
425
- opacity = amount;
426
- }
427
- }
428
- const safeArea = (0, import_resolveSafeAreaVariable.resolveSafeAreaVariable)(name);
429
- if (safeArea !== void 0) {
430
- state.flatUsesSafeArea = true;
431
- return safeArea;
432
- }
433
- const lookup = tokenVariable(state, property, name);
434
- if (!lookup || !(0, import_createVariable.isVariable)(lookup.value)) {
435
- if (process.env.NODE_ENV === "development" && import_tokenCategories.tokenCategoryByProperty[property] && state.conf.tokensParsed.color?.[name]) (0, import_warnOnce.warnOnce)(`"${name}" contributes to "color", not "${property}"; keeping it literal`);
436
- return raw;
437
- }
438
- const resolveValues = import_constants.isWeb && !state.flatShouldDoClasses && state.styleProps.resolveValues === "auto" ? "value" : state.styleProps.resolveValues;
439
- if (resolveValues === "except-theme" && lookup.fromTheme) return `${import_themeRef.THEME_REF_PREFIX}${lookup.themeKey}${opacity !== void 0 ? `/${opacity}` : ""}`;
440
- let value = (0, import_resolveVariableValue.resolveVariableValue)(property, lookup.value, resolveValues);
441
- if (opacity !== void 0) value = import_constants.isWeb ? `color-mix(in srgb, ${value} ${opacity}%, transparent)` : (0, import_normalizeColor.normalizeColor)(value, opacity / 100);
442
- return value;
443
- }
444
- const letterFreeCallPattern = /^[A-Za-z-]+\([^A-Za-z]*\)$/;
445
- function resolveEmbeddedTokens(state, property, raw) {
446
- if (letterFreeCallPattern.test(raw)) return raw;
447
- return raw.replace(/[$A-Za-z_][\w.$-]*(?:\/\d+)?/g, (word, index) => {
448
- if (word.charCodeAt(0) !== 36) {
449
- const before = raw.charCodeAt(index - 1);
450
- if (before >= 48 && before <= 57 || before === 35 || before === 45 && raw.charCodeAt(index - 2) === 45 || raw.charCodeAt(index + word.length) === 40) return word;
451
- }
452
- const value = configuredValue(state, property, word);
453
- return value === word ? word : String(value);
454
- });
455
- }
456
- function normalizeTransitionNames(state, raw) {
457
- let quote = 0;
458
- let depth = 0;
459
- let copyFrom = 0;
460
- let out = "";
461
- for (let index = 0; index < raw.length; index++) {
462
- const code = raw.charCodeAt(index);
463
- if (quote) {
464
- if (code === 92) index++;
465
- else if (code === quote) quote = 0;
466
- continue;
467
- }
468
- if (code === 34 || code === 39) {
469
- quote = code;
470
- continue;
471
- }
472
- if (code === 40) {
473
- depth++;
474
- continue;
475
- }
476
- if (code === 41) {
477
- depth--;
478
- continue;
479
- }
480
- if (depth || !(code >= 65 && code <= 90 || code >= 97 && code <= 122 || code === 95) || index > 1 && raw.charCodeAt(index - 1) === 45 && raw.charCodeAt(index - 2) === 45) continue;
481
- let end = index + 1;
482
- while (end < raw.length) {
483
- const next = raw.charCodeAt(end);
484
- if (next >= 48 && next <= 57 || next >= 65 && next <= 90 || next >= 97 && next <= 122 || next === 45 || next === 95) end++;
485
- else break;
486
- }
487
- if (raw.charCodeAt(end) !== 40) {
488
- const authored = raw.slice(index, end);
489
- let property = state.conf.shorthands[authored] || authored;
490
- if (property === "x" || property === "y") property = "translate";
491
- else if (property === "scaleX" || property === "scaleY") property = "scale";
492
- else if (legacyTransformParts.has(property)) property = "transform";
493
- if (property !== authored || /[A-Z]/.test(property)) {
494
- out += raw.slice(copyFrom, index);
495
- out += property.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`);
496
- copyFrom = end;
497
- }
498
- }
499
- index = end - 1;
500
- }
501
- return copyFrom ? out + raw.slice(copyFrom) : raw;
502
- }
503
- function directStyleSignature(property, value, conditionKey = "") {
504
- return `${property}${conditionKey}${String(value)}`;
505
- }
506
- function directAtomic(state, property, value, condition, conditionKey, conditionWrappers, conditionSelector, isDefault = false) {
507
- const atomics = state.flatAtomics ||= {};
508
- const atomicKey = property.startsWith("transition") ? "transition" : property;
509
- const existing = atomics[atomicKey];
510
- const contribution = directStyleSignature(property, value, conditionKey);
511
- const signature = existing ? existing.signature + contribution : contribution;
512
- const next = (0, import_getCSSStylesAtomic.getCSSStyleAtomic)(property, value, conditionSelector, conditionWrappers, signature, 2, atomicKey, condition ? 1 + (Math.floor(condition / 256) >>> 23 & 7) + (Math.floor(condition / 256) >>> 26) * 6 - (condition >>> 5 & 7) : void 0);
513
- if (!next) return;
514
- const identifier = next[import_helpers.StyleObjectIdentifier];
515
- const nextRules = next[import_helpers.StyleObjectRules];
516
- const slotted = condition || atomicKey === "transition";
517
- if (!existing) {
518
- const atomic = {
519
- baseRules: slotted ? 0 : nextRules.length,
520
- conditions: void 0,
521
- signature,
522
- styleObject: next
523
- };
524
- if (slotted) atomic.conditions = { [atomicKey === "transition" ? `${conditionKey}\0${property}` : conditionKey]: {
525
- count: nextRules.length,
526
- index: 0,
527
- precedence: condition ? Math.floor(condition / 256) : 0,
528
- default: isDefault
529
- } };
530
- atomics[atomicKey] = atomic;
531
- } else {
532
- const previousIdentifier = existing.styleObject[import_helpers.StyleObjectIdentifier];
533
- const rules = existing.styleObject[import_helpers.StyleObjectRules].slice();
534
- existing.styleObject[import_helpers.StyleObjectRules] = rules;
535
- if (!condition && !isDefault && existing.conditions) for (const key in existing.conditions) {
536
- const entry = existing.conditions[key];
537
- if (!entry.default) continue;
538
- rules.splice(entry.index, entry.count);
539
- delete existing.conditions[key];
540
- for (const otherKey in existing.conditions) {
541
- const other = existing.conditions[otherKey];
542
- if (other.index > entry.index) other.index -= entry.count;
543
- }
544
- }
545
- if (previousIdentifier !== identifier) {
546
- const oldSelector = `.${previousIdentifier}`;
547
- const newSelector = `.${identifier}`;
548
- for (let index = 0; index < rules.length; index++) rules[index] = rules[index].replaceAll(oldSelector, newSelector);
549
- }
550
- if (slotted) {
551
- const slot = atomicKey === "transition" ? `${conditionKey}\0${property}` : conditionKey;
552
- const previous = existing.conditions?.[slot];
553
- if (previous) {
554
- rules.splice(previous.index, previous.count);
555
- if (existing.conditions) for (const key in existing.conditions) {
556
- const entry = existing.conditions[key];
557
- if (entry !== previous && entry.index > previous.index) entry.index -= previous.count;
558
- }
559
- delete existing.conditions[slot];
560
- }
561
- const precedence = condition ? Math.floor(condition / 256) : 0;
562
- let insertionIndex = rules.length;
563
- if (existing.conditions) {
564
- for (const key in existing.conditions) {
565
- const entry = existing.conditions[key];
566
- if (entry.precedence > precedence && entry.index < insertionIndex) insertionIndex = entry.index;
567
- }
568
- for (const key in existing.conditions) {
569
- const entry = existing.conditions[key];
570
- if (entry.index >= insertionIndex) entry.index += nextRules.length;
571
- }
572
- }
573
- (existing.conditions ||= {})[slot] = {
574
- count: nextRules.length,
575
- index: insertionIndex,
576
- precedence,
577
- default: isDefault
578
- };
579
- rules.splice(insertionIndex, 0, ...nextRules);
580
- } else {
581
- const difference = nextRules.length - existing.baseRules;
582
- rules.splice(0, existing.baseRules, ...nextRules);
583
- if (difference && existing.conditions) for (const key in existing.conditions) existing.conditions[key].index += difference;
584
- existing.baseRules = nextRules.length;
585
- }
586
- existing.signature = signature;
587
- existing.styleObject[import_helpers.StyleObjectIdentifier] = identifier;
588
- existing.styleObject[1] = next[1];
589
- }
590
- state.classNames[atomicKey] = identifier;
591
- }
592
- function emitBorderStyleDefault(state, property, condition, conditionKey, conditionWrappers, conditionSelector) {
593
- if (!import_constants.isWeb || !state.flatShouldDoClasses || state.styleProps.noNormalize === false) return;
594
- const target = borderStyleDefaults[property];
595
- if (!target) return;
596
- const atomic = state.flatAtomics?.[target];
597
- if (atomic?.baseRules || state.classNames[target] && !atomic || condition && atomic?.conditions?.[conditionKey]) return;
598
- directAtomic(state, target, "solid", condition, conditionKey, conditionWrappers, conditionSelector, true);
599
- }
600
- function flushDirectStyles(state, clear = false) {
601
- const direct = state;
602
- const atomics = direct.flatAtomics;
603
- if (!atomics) return;
604
- for (const property in atomics) {
605
- const styleObject = atomics[property].styleObject;
606
- const identifier = styleObject[import_helpers.StyleObjectIdentifier];
607
- if ((0, import_insertStyleRule.shouldInsertStyleRules)(identifier)) {
608
- const rules = styleObject[import_helpers.StyleObjectRules].slice();
609
- styleObject[import_helpers.StyleObjectRules] = rules;
610
- (0, import_insertStyleRule.updateRules)(identifier, rules);
611
- state.flatRulesToInsert[identifier] = styleObject;
612
- }
613
- }
614
- if (clear) direct.flatAtomics = void 0;
615
- }
616
- function getDirectDynamicThemeAccess(state) {
617
- return state.flatDynamicThemeAccess;
618
- }
619
- function emitProperty(state, property, value, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly) {
620
- const direct = state;
621
- if (condition & 4) (state.flatEnterKeys ||= /* @__PURE__ */ new Set()).add(property);
622
- if (condition & 8) (state.flatExitKeys ||= /* @__PURE__ */ new Set()).add(property);
623
- if (!import_constants.isWeb && conditionTheme) {
624
- if (import_constants.supportsDynamicColorIOS && (0, import_getDynamicVal.isColorStyleKey)(property)) {
625
- const schemes = (direct.flatDynamicColors ||= {})[property] ||= {};
626
- schemes[conditionTheme] = typeof originalValue === "string" && /^[a-z]+$/i.test(originalValue) ? originalValue : value;
627
- merge(state, property, { dynamic: { ...schemes } }, 1, false, originalValue);
628
- return;
629
- }
630
- direct.flatDynamicThemeAccess = true;
631
- }
632
- if (contextOnly) {
633
- if (!condition || condition & 1) (state.overriddenContextProps ||= {})[property] = originalValue;
634
- return;
635
- }
636
- const shouldPromoteAnimatedStyle = import_constants.isWeb && !condition && !state.flatShouldDoClasses && !state.styleProps.noMergeStyle && state.styleProps.isAnimated && !state.animationDriver?.isReactNative && property in import_helpers.nonAnimatableStyleProps;
637
- if (import_constants.isWeb && (state.flatShouldDoClasses || shouldPromoteAnimatedStyle)) {
638
- if (!condition) {
639
- if (state.style) delete state.style[property];
640
- }
641
- directAtomic(state, property, value, condition, conditionKey, conditionWrappers, conditionSelector);
642
- return;
643
- }
644
- if (condition) {
645
- if (!(condition & 1)) return;
646
- const precedence = Math.floor(condition / 256);
647
- const previous = direct.flatPrecedence?.[property];
648
- if (previous !== void 0 && precedence < previous) return;
649
- (direct.flatPrecedence ||= {})[property] = precedence;
650
- (state.flatActiveConditions ||= {})[property] = true;
651
- } else if (state.flatActiveConditions?.[property]) return;
652
- merge(state, property, value, 1, true, originalValue);
653
- }
654
- function splitComponents(value) {
655
- const parts = [];
656
- let start = 0;
657
- let quote = 0;
658
- let depth = 0;
659
- for (let index = 0; index <= value.length; index++) {
660
- const code = index === value.length ? 32 : value.charCodeAt(index);
661
- if (quote) {
662
- if (code === 92) index++;
663
- else if (code === quote) quote = 0;
664
- continue;
665
- }
666
- if (code === 34 || code === 39) quote = code;
667
- else if (code === 40) depth++;
668
- else if (code === 41) depth--;
669
- else if (!depth && code <= 32) {
670
- if (index > start) parts.push(value.slice(start, index));
671
- start = index + 1;
672
- }
673
- }
674
- return parts;
675
- }
676
- function emitBorder(state, property, raw, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly) {
677
- if (!import_constants.isWeb && (property === "borderBlock" || property === "borderInline")) {
678
- if (process.env.NODE_ENV === "development") (0, import_warnOnce.warnOnce)(`RN has no logical border shorthand "${property}"; dropping it`);
679
- return;
680
- }
681
- const targets = borderTargets[property];
682
- let width;
683
- let style;
684
- let color;
685
- for (const part of splitComponents(raw)) {
686
- const lower = part.toLowerCase();
687
- if (lineStyles.has(lower) || property === "outline" && lower === "auto") style = part;
688
- else if (lower === "thin" || lower === "medium" || lower === "thick" || /^-?(?:\d+\.?\d*|\.\d+)(?:[a-z%]+)?$/i.test(part) || /^(?:calc|var|min|max|clamp)\(/i.test(part)) width = part;
689
- else color = part;
690
- }
691
- if (style === "none" && width === void 0) width = "0";
692
- if (width !== void 0) for (const target of targets.width) emitResolved(state, target, width, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly);
693
- if (style !== void 0) {
694
- const styleTargets = !import_constants.isWeb && property === "border" ? ["borderStyle"] : targets.style;
695
- for (const target of styleTargets) emitProperty(state, target, style, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly);
696
- }
697
- if (color !== void 0) for (const target of targets.color) emitResolved(state, target, color, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly);
698
- }
699
- function emitTextDecoration(state, raw, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly) {
700
- for (const part of splitComponents(raw)) emitResolved(state, part === "solid" || part === "double" || part === "dotted" || part === "dashed" || part === "wavy" ? "textDecorationStyle" : part === "underline" || part === "overline" || part === "line-through" || part === "none" ? "textDecorationLine" : "textDecorationColor", part, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly);
701
- }
702
- function addComposition(state, property) {
703
- if (state.classNames[property]) return;
704
- const value = property === "translate" ? "var(--t-x, 0px) var(--t-y, 0px)" : "var(--t-scale-x, 1) var(--t-scale-y, 1)";
705
- const defaults = property === "translate" ? "--t-x:0px;--t-y:0px" : "--t-scale-x:1;--t-scale-y:1";
706
- const styleObject = (0, import_getCSSStylesAtomic.getCSSStyleAtomic)(property, value, "", void 0, void 0, true);
707
- const identifier = styleObject[import_helpers.StyleObjectIdentifier];
708
- styleObject[import_helpers.StyleObjectRules].unshift(`:where(.${identifier}){${defaults}}`);
709
- if ((0, import_insertStyleRule.shouldInsertStyleRules)(identifier)) {
710
- (0, import_insertStyleRule.updateRules)(identifier, styleObject[import_helpers.StyleObjectRules]);
711
- state.flatRulesToInsert[identifier] = styleObject;
712
- }
713
- state.classNames[property] = identifier;
714
- }
715
- function emitTransform(state, property, value, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly) {
716
- if (!import_constants.isWeb || !state.flatShouldDoClasses) {
717
- if (!import_constants.isWeb && property === "scale") {
718
- emitProperty(state, "scaleX", value, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly);
719
- emitProperty(state, "scaleY", value, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly);
720
- } else emitProperty(state, property, value, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly);
721
- return;
722
- }
723
- const targets = property === "scale" ? ["--t-scale-x", "--t-scale-y"] : [property === "x" ? "--t-x" : property === "y" ? "--t-y" : property === "scaleX" ? "--t-scale-x" : property === "scaleY" ? "--t-scale-y" : "rotate"];
724
- for (const target of targets) {
725
- let targetValue = value;
726
- if (typeof targetValue === "number") {
727
- if (target === "--t-x" || target === "--t-y") targetValue = `${targetValue}px`;
728
- else if (target === "rotate") targetValue = `${targetValue}deg`;
729
- }
730
- emitProperty(state, target, targetValue, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly);
731
- if (target === "--t-x" || target === "--t-y") addComposition(state, "translate");
732
- else if (target.startsWith("--t-scale")) addComposition(state, "scale");
733
- }
734
- }
735
- function emitResolved(state, property, raw, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly) {
736
- let value = configuredValue(state, property, raw);
737
- if (value === raw && /[\s,(]/.test(raw)) value = resolveEmbeddedTokens(state, property, raw);
738
- if ((!import_constants.isWeb || !state.flatShouldDoClasses) && typeof value === "string") {
739
- if (/^-?(?:\d+\.?\d*|\.\d+)(?:px|dp)$/i.test(value)) value = Number.parseFloat(value);
740
- else if (value !== "" && Number.isFinite(Number(value))) value = Number(value);
741
- }
742
- emitProperty(state, property, value, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly);
743
- }
744
- function shadowUnit(part) {
745
- return typeof part === "number" ? `${part}px` : part || "0px";
746
- }
747
- function emitWebShadow(state, property, value, merge, originalValue, contextOnly) {
748
- const shadow = state.flatWebShadow ||= {};
749
- shadow[property] = value;
750
- const offset = shadow.shadowOffset || {
751
- width: 0,
752
- height: 0
753
- };
754
- const color = (0, import_normalizeColor.normalizeColor)(shadow.shadowColor, shadow.shadowOpacity ?? 1);
755
- if (!color) return;
756
- const next = `${shadowUnit(offset.width)} ${shadowUnit(offset.height)} ${shadowUnit(shadow.shadowRadius)} ${color}`;
757
- emitProperty(state, "boxShadow", state.flatBoxShadow ? `${state.flatBoxShadow}, ${next}` : next, 0, "", void 0, "", "", merge, originalValue, contextOnly);
758
- }
759
- function emitWebTextShadow(state, property, value, merge, originalValue, contextOnly) {
760
- const shadow = state.flatTextShadow ||= {};
761
- shadow[property] = value;
762
- const offset = shadow.textShadowOffset || {
763
- width: 0,
764
- height: 0
765
- };
766
- if (!shadow.textShadowColor) return;
767
- emitProperty(state, "textShadow", `${shadowUnit(offset.width)} ${shadowUnit(offset.height)} ${shadowUnit(shadow.textShadowRadius)} ${shadow.textShadowColor}`, 0, "", void 0, "", "", merge, originalValue, contextOnly);
768
- }
769
- function emitValue(state, property, raw, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly) {
770
- if (typeof raw === "string") raw = raw.trim();
771
- if ((0, import_createVariable.isVariable)(raw)) raw = (0, import_resolveVariableValue.resolveVariableValue)(property, raw, import_constants.isWeb && !state.flatShouldDoClasses && state.styleProps.resolveValues === "auto" ? "value" : state.styleProps.resolveValues);
772
- emitBorderStyleDefault(state, property, condition, conditionKey, conditionWrappers, conditionSelector);
773
- if (typeof raw === "string" && (property === "transition" || property === "transitionProperty")) raw = normalizeTransitionNames(state, raw);
774
- if (legacyTransformParts.has(property)) {
775
- if (import_constants.isWeb && state.flatShouldDoClasses && state.classNames.transform) {
776
- if (process.env.NODE_ENV === "development") (0, import_warnOnce.warnOnce)(`legacy transform part "${property}" is dropped because "transform" owns the property`);
777
- return;
778
- }
779
- const value2 = typeof raw === "string" ? configuredValue(state, property, raw) : raw;
780
- if (import_constants.isWeb && state.flatShouldDoClasses && !condition) {
781
- const direct = state;
782
- (direct.flatLegacyTransforms ||= {})[property] = value2;
783
- emitProperty(state, "transform", (0, import_transformsToString.transformsToString)(Object.keys(direct.flatLegacyTransforms).sort().map((key) => ({ [key]: direct.flatLegacyTransforms[key] }))), 0, "", void 0, "", "", merge, originalValue, contextOnly);
784
- } else if (condition && import_constants.isWeb && state.flatShouldDoClasses) emitProperty(state, "transform", `${property}(${value2})`, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly);
785
- else merge(state, property, value2, 1, false, originalValue);
786
- return;
787
- }
788
- if (import_constants.isWeb && webShadowParts.has(property)) {
789
- const value2 = typeof raw === "string" ? configuredValue(state, property, raw) : raw;
790
- if (state.flatShouldDoClasses) emitWebShadow(state, property, value2, merge, originalValue, contextOnly);
791
- else merge(state, property, value2, 1, false, originalValue);
792
- return;
793
- }
794
- if (import_constants.isWeb && webTextShadowParts.has(property)) {
795
- const value2 = typeof raw === "string" ? configuredValue(state, property, raw) : raw;
796
- if (state.flatShouldDoClasses) emitWebTextShadow(state, property, value2, merge, originalValue, contextOnly);
797
- else merge(state, property, value2, 1, false, originalValue);
798
- return;
799
- }
800
- if (import_constants.isWeb && state.flatShouldDoClasses) {
801
- if (property === "transform") {
802
- const direct = state;
803
- if (process.env.NODE_ENV === "development" && direct.flatLegacyTransforms) for (const part in direct.flatLegacyTransforms) (0, import_warnOnce.warnOnce)(`legacy transform part "${part}" is dropped because "transform" owns the property`);
804
- direct.flatLegacyTransforms = void 0;
805
- if (state.flatTransforms) {
806
- if (process.env.NODE_ENV === "development") for (const part in state.flatTransforms) (0, import_warnOnce.warnOnce)(`legacy transform part "${part}" is dropped because "transform" owns the property`);
807
- state.flatTransforms = void 0;
808
- }
809
- }
810
- }
811
- if (import_constants.isWeb && state.flatShouldDoClasses && property === "transform" && Array.isArray(raw)) raw = (0, import_transformsToString.transformsToString)(raw);
812
- if (typeof raw === "string" && property in borderTargets) {
813
- emitBorder(state, property, raw, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly);
814
- return;
815
- }
816
- if (typeof raw === "string" && property === "textDecoration") {
817
- emitTextDecoration(state, raw, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly);
818
- return;
819
- }
820
- if (typeof raw === "string" && property === "background") {
821
- const parts = splitComponents(raw);
822
- if (parts.length === 1 && !/^(?:url|image-set|.*gradient)\(/i.test(parts[0])) {
823
- emitResolved(state, "backgroundColor", parts[0], condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly);
824
- return;
825
- }
826
- if (!import_constants.isWeb) {
827
- if (process.env.NODE_ENV === "development") (0, import_warnOnce.warnOnce)(`native background cannot represent "${raw}"; dropping it`);
828
- return;
829
- }
830
- }
831
- if (property === "x" || property === "y" || property === "scale" || property === "scaleX" || property === "scaleY" || property === "rotate") {
832
- let value2 = typeof raw === "string" ? configuredValue(state, property, raw) : raw;
833
- if ((!import_constants.isWeb || !state.flatShouldDoClasses) && typeof value2 === "string" && !value2.startsWith(import_themeRef.THEME_REF_PREFIX)) {
834
- if (property === "rotate" && !/^-?(?:\d+\.?\d*|\.\d+)(?:deg|rad)$/i.test(value2)) {
835
- if (process.env.NODE_ENV === "development") (0, import_warnOnce.warnOnce)(`native transform "${property}" cannot represent "${value2}"; dropping it`);
836
- if (condition & 1 && state.flatTransforms) delete state.flatTransforms[property];
837
- return;
838
- }
839
- if (/^-?(?:\d+\.?\d*|\.\d+)(?:px|dp)$/i.test(value2)) value2 = Number.parseFloat(value2);
840
- else if (Number.isFinite(Number(value2))) value2 = Number(value2);
841
- }
842
- emitTransform(state, property, value2, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly);
843
- return;
844
- }
845
- if (import_constants.isWeb && !state.flatShouldDoClasses && !condition && property === "borderRadius") {
846
- if (typeof raw === "string") emitResolved(state, property, raw, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly);
847
- else emitProperty(state, property, raw, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly);
848
- return;
849
- }
850
- let value = raw;
851
- if (typeof raw === "string") {
852
- value = configuredValue(state, property, raw);
853
- if (value === raw && /[\s,(]/.test(raw)) value = resolveEmbeddedTokens(state, property, raw);
854
- }
855
- if ((!import_constants.isWeb || !state.flatShouldDoClasses) && typeof value === "string") {
856
- if (/^-?(?:\d+\.?\d*|\.\d+)(?:px|dp)$/i.test(value)) value = Number.parseFloat(value);
857
- else if (value !== "" && Number.isFinite(Number(value))) value = Number(value);
858
- }
859
- if (import_constants.isWeb && state.flatShouldDoClasses && property === "boxShadow" && !condition) state.flatBoxShadow = value;
860
- if (!import_constants.isWeb && property === "fontVariant" && typeof value === "string") value = value.split(/[,\s]+/).filter(Boolean);
861
- const expanded = state.styleProps.noExpand ? null : (0, import_expandStyle.expandStyle)(property, value, state.conf.settings.styleCompat || "web");
862
- if (!expanded) {
863
- emitProperty(state, property, value, condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly);
864
- return;
865
- }
866
- if (typeof raw === "string" && expanded.length > 1) {
867
- const parts = splitComponents(raw);
868
- if (parts.length > 0 && parts.length <= (expanded.length === 4 ? 4 : 2)) {
869
- for (let index = 0; index < expanded.length; index++) {
870
- const partIndex = index === 0 || parts.length === 1 ? 0 : index === 1 || index === 3 && parts.length < 4 ? 1 : index === 2 && parts.length < 3 ? 0 : index;
871
- emitResolved(state, expanded[index][0], parts[partIndex], condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly);
872
- }
873
- return;
874
- }
875
- }
876
- for (let index = 0; index < expanded.length; index++) emitProperty(state, expanded[index][0], expanded[index][1], condition, conditionKey, conditionWrappers, conditionSelector, conditionTheme, merge, originalValue, contextOnly);
877
- }
878
- function contributeStyleString(state, property, source, merge, originalValue, contextOnly = false) {
879
- if (import_constants.isWeb && source.indexOf(":") !== -1 && (webShadowParts.has(property) || legacyTransformParts.has(property))) {
880
- if (process.env.NODE_ENV === "development") (0, import_warnOnce.warnOnce)(`conditional "${property}" needs its composite property; dropping it`);
881
- return true;
882
- }
883
- if (source.indexOf(":") === -1) {
884
- emitValue(state, property, source, 0, "", void 0, "", "", merge, originalValue ?? source, contextOnly);
885
- return true;
886
- }
887
- (0, import_runtime.scanFlatValue)(source, directStyleHandler, state, property, merge, originalValue, contextOnly);
888
- return true;
889
- }
890
- function contributeFrontendValue(state, property, value, merge, contextOnly = false) {
891
- if (value.base !== null) emitValue(state, property, value.base, 0, "", void 0, "", "", merge, value.base, contextOnly);
892
- for (const clause of value.clauses) {
893
- const source = clause.modifiers.join(":");
894
- resolveClauseChain(state, source, 0, source.length, property, clause.payload, merge, clause.payload, contextOnly);
895
- }
896
- return true;
897
- }
898
- function isConditionalStyleObject(state, value) {
899
- if (Object.prototype.hasOwnProperty.call(value, "default")) return true;
900
- for (const key in value) return key.length > 0 && !!resolveClauseChain(state, key, 0, key.length);
901
- return false;
902
- }
903
- function contributeVariantClauseValue(state, property, value, conditionSource, merge, originalValue, contextOnly = false) {
904
- if (value && typeof value === "object" && !Array.isArray(value) && !(0, import_createVariable.isVariable)(value) && isConditionalStyleObject(state, value)) {
905
- for (const key in value) {
906
- const payload = value[key];
907
- if (payload == null) continue;
908
- const source = key === "default" ? conditionSource : `${conditionSource}:${key}`;
909
- resolveClauseChain(state, source, 0, source.length, property, payload, merge, payload, contextOnly, -1, -1, 2);
910
- }
911
- return;
912
- }
913
- resolveClauseChain(state, conditionSource, 0, conditionSource.length, property, value, merge, originalValue, contextOnly, -1, -1, 2);
914
- }
915
- function contributeStyleObject(state, property, value, merge, contextOnly) {
916
- if (!isConditionalStyleObject(state, value)) return false;
917
- if (import_constants.isWeb && (webShadowParts.has(property) || legacyTransformParts.has(property))) {
918
- if (process.env.NODE_ENV === "development") (0, import_warnOnce.warnOnce)(`conditional "${property}" needs its composite property; dropping it`);
919
- return true;
920
- }
921
- let hasBase = false;
922
- const base = value.default;
923
- if (base != null) {
924
- emitValue(state, property, base, 0, "", void 0, "", "", merge, base, contextOnly);
925
- hasBase = true;
926
- }
927
- let conditions = 0;
928
- for (const key in value) {
929
- if (key === "default") continue;
930
- const payload = value[key];
931
- if (payload == null) continue;
932
- conditions |= resolveClauseChain(state, key, 0, key.length, property, payload, merge, payload, contextOnly, -1, -1, 1);
933
- }
934
- if ((!import_constants.isWeb || !state.flatShouldDoClasses) && conditions & 12 && !hasBase) {
935
- const resting = implicitLifecycleBase(property);
936
- if (resting !== null) emitValue(state, property, resting, 0, "", void 0, "", "", merge, resting, contextOnly);
937
- }
938
- return true;
939
- }
940
- function contributeStyleValue(state, property, value, merge, originalValue, contextOnly = false) {
941
- if (value === "safe" && (0, import_resolveSafeArea.isSafeAreaKey)(property)) {
942
- const expanded = (0, import_resolveSafeArea.expandSafeAreaValue)(property);
943
- if (expanded) {
944
- state.flatUsesSafeArea = true;
945
- for (const [key, resolved] of expanded) emitValue(state, key, resolved, 0, "", void 0, "", "", merge, originalValue ?? value, contextOnly);
946
- return true;
947
- }
948
- }
949
- if (typeof value === "string") return contributeStyleString(state, property, value, merge, originalValue, contextOnly);
950
- if (value && typeof value === "object" && !Array.isArray(value) && !(0, import_createVariable.isVariable)(value) && contributeStyleObject(state, property, value, merge, contextOnly)) return true;
951
- if (value != null) {
952
- emitValue(state, property, value, 0, "", void 0, "", "", merge, originalValue ?? value, contextOnly);
953
- return true;
954
- }
955
- return false;
956
- }
957
- function clearDirectStyle(state, property) {
958
- const direct = state;
959
- const atomicKey = property.startsWith("transition") ? "transition" : webShadowParts.has(property) ? "boxShadow" : webTextShadowParts.has(property) ? "textShadow" : legacyTransformParts.has(property) ? "transform" : property;
960
- if (direct.flatAtomics) delete direct.flatAtomics[atomicKey];
961
- delete state.classNames[atomicKey];
962
- }