@tamagui/style-grammar 0.0.0-bootstrap.0 → 3.0.0-beta.643.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 (458) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +33 -1
  3. package/dist/cjs/backgroundFamily.cjs +176 -0
  4. package/dist/cjs/backgroundFamily.native.cjs +195 -0
  5. package/dist/cjs/backgroundFamily.native.js +197 -0
  6. package/dist/cjs/backgroundFamily.native.js.map +1 -0
  7. package/dist/cjs/borderFamily.cjs +169 -0
  8. package/dist/cjs/borderFamily.native.cjs +247 -0
  9. package/dist/cjs/borderFamily.native.js +249 -0
  10. package/dist/cjs/borderFamily.native.js.map +1 -0
  11. package/dist/cjs/candidate.cjs +608 -0
  12. package/dist/cjs/candidate.native.cjs +821 -0
  13. package/dist/cjs/candidate.native.js +823 -0
  14. package/dist/cjs/candidate.native.js.map +1 -0
  15. package/dist/cjs/candidateTarget.cjs +50 -0
  16. package/dist/cjs/candidateTarget.native.cjs +88 -0
  17. package/dist/cjs/candidateTarget.native.js +90 -0
  18. package/dist/cjs/candidateTarget.native.js.map +1 -0
  19. package/dist/cjs/clauseCapability.cjs +130 -0
  20. package/dist/cjs/clauseCapability.native.cjs +152 -0
  21. package/dist/cjs/clauseCapability.native.js +154 -0
  22. package/dist/cjs/clauseCapability.native.js.map +1 -0
  23. package/dist/cjs/clausePrecedence.cjs +153 -0
  24. package/dist/cjs/clausePrecedence.native.cjs +204 -0
  25. package/dist/cjs/clausePrecedence.native.js +206 -0
  26. package/dist/cjs/clausePrecedence.native.js.map +1 -0
  27. package/dist/cjs/clauseSources.cjs +47 -0
  28. package/dist/cjs/clauseSources.native.cjs +49 -0
  29. package/dist/cjs/clauseSources.native.js +51 -0
  30. package/dist/cjs/clauseSources.native.js.map +1 -0
  31. package/dist/cjs/config.cjs +130 -0
  32. package/dist/cjs/config.native.cjs +185 -0
  33. package/dist/cjs/config.native.js +187 -0
  34. package/dist/cjs/config.native.js.map +1 -0
  35. package/dist/cjs/evaluateProgram.cjs +65 -0
  36. package/dist/cjs/evaluateProgram.native.cjs +70 -0
  37. package/dist/cjs/evaluateProgram.native.js +72 -0
  38. package/dist/cjs/evaluateProgram.native.js.map +1 -0
  39. package/dist/cjs/fontShorthand.cjs +207 -0
  40. package/dist/cjs/fontShorthand.native.cjs +260 -0
  41. package/dist/cjs/fontShorthand.native.js +262 -0
  42. package/dist/cjs/fontShorthand.native.js.map +1 -0
  43. package/dist/cjs/geometricShorthand.cjs +122 -0
  44. package/dist/cjs/geometricShorthand.native.cjs +128 -0
  45. package/dist/cjs/geometricShorthand.native.js +130 -0
  46. package/dist/cjs/geometricShorthand.native.js.map +1 -0
  47. package/dist/cjs/index.cjs +19 -0
  48. package/dist/cjs/index.native.cjs +21 -0
  49. package/dist/cjs/index.native.js +23 -0
  50. package/dist/cjs/index.native.js.map +1 -0
  51. package/dist/cjs/lowerProgram.cjs +205 -0
  52. package/dist/cjs/lowerProgram.native.cjs +257 -0
  53. package/dist/cjs/lowerProgram.native.js +259 -0
  54. package/dist/cjs/lowerProgram.native.js.map +1 -0
  55. package/dist/cjs/mergeFlatValues.cjs +50 -0
  56. package/dist/cjs/mergeFlatValues.native.cjs +71 -0
  57. package/dist/cjs/mergeFlatValues.native.js +73 -0
  58. package/dist/cjs/mergeFlatValues.native.js.map +1 -0
  59. package/dist/cjs/modifierRegistry.cjs +246 -0
  60. package/dist/cjs/modifierRegistry.native.cjs +426 -0
  61. package/dist/cjs/modifierRegistry.native.js +428 -0
  62. package/dist/cjs/modifierRegistry.native.js.map +1 -0
  63. package/dist/cjs/payloadShape.cjs +69 -0
  64. package/dist/cjs/payloadShape.native.cjs +71 -0
  65. package/dist/cjs/payloadShape.native.js +73 -0
  66. package/dist/cjs/payloadShape.native.js.map +1 -0
  67. package/dist/cjs/programEligibility.cjs +46 -0
  68. package/dist/cjs/programEligibility.native.cjs +48 -0
  69. package/dist/cjs/programEligibility.native.js +50 -0
  70. package/dist/cjs/programEligibility.native.js.map +1 -0
  71. package/dist/cjs/programHash.cjs +86 -0
  72. package/dist/cjs/programHash.native.cjs +106 -0
  73. package/dist/cjs/programHash.native.js +108 -0
  74. package/dist/cjs/programHash.native.js.map +1 -0
  75. package/dist/cjs/programs.cjs +128 -0
  76. package/dist/cjs/programs.native.cjs +220 -0
  77. package/dist/cjs/programs.native.js +222 -0
  78. package/dist/cjs/programs.native.js.map +1 -0
  79. package/dist/cjs/registry.cjs +629 -0
  80. package/dist/cjs/registry.native.cjs +635 -0
  81. package/dist/cjs/registry.native.js +637 -0
  82. package/dist/cjs/registry.native.js.map +1 -0
  83. package/dist/cjs/resolvePayload.cjs +296 -0
  84. package/dist/cjs/resolvePayload.native.cjs +302 -0
  85. package/dist/cjs/resolvePayload.native.js +304 -0
  86. package/dist/cjs/resolvePayload.native.js.map +1 -0
  87. package/dist/cjs/runtime.cjs +50 -0
  88. package/dist/cjs/runtime.native.cjs +52 -0
  89. package/dist/cjs/runtime.native.js +54 -0
  90. package/dist/cjs/runtime.native.js.map +1 -0
  91. package/dist/cjs/safeAreaVariables.cjs +42 -0
  92. package/dist/cjs/safeAreaVariables.native.cjs +44 -0
  93. package/dist/cjs/safeAreaVariables.native.js +46 -0
  94. package/dist/cjs/safeAreaVariables.native.js.map +1 -0
  95. package/dist/cjs/scanFlatValue.cjs +181 -0
  96. package/dist/cjs/scanFlatValue.native.cjs +183 -0
  97. package/dist/cjs/scanFlatValue.native.js +185 -0
  98. package/dist/cjs/scanFlatValue.native.js.map +1 -0
  99. package/dist/cjs/serializePayload.cjs +149 -0
  100. package/dist/cjs/serializePayload.native.cjs +187 -0
  101. package/dist/cjs/serializePayload.native.js +189 -0
  102. package/dist/cjs/serializePayload.native.js.map +1 -0
  103. package/dist/cjs/stateModifiers.cjs +43 -0
  104. package/dist/cjs/stateModifiers.native.cjs +45 -0
  105. package/dist/cjs/stateModifiers.native.js +47 -0
  106. package/dist/cjs/stateModifiers.native.js.map +1 -0
  107. package/dist/cjs/states.cjs +97 -0
  108. package/dist/cjs/states.native.cjs +131 -0
  109. package/dist/cjs/states.native.js +133 -0
  110. package/dist/cjs/states.native.js.map +1 -0
  111. package/dist/cjs/table.cjs +54 -0
  112. package/dist/cjs/table.native.cjs +135 -0
  113. package/dist/cjs/table.native.js +137 -0
  114. package/dist/cjs/table.native.js.map +1 -0
  115. package/dist/cjs/textDecorationFamily.cjs +129 -0
  116. package/dist/cjs/textDecorationFamily.native.cjs +199 -0
  117. package/dist/cjs/textDecorationFamily.native.js +201 -0
  118. package/dist/cjs/textDecorationFamily.native.js.map +1 -0
  119. package/dist/cjs/tooling.cjs +26 -0
  120. package/dist/cjs/tooling.native.cjs +28 -0
  121. package/dist/cjs/tooling.native.js +30 -0
  122. package/dist/cjs/tooling.native.js.map +1 -0
  123. package/dist/cjs/toolingAnnotations.cjs +105 -0
  124. package/dist/cjs/toolingAnnotations.native.cjs +133 -0
  125. package/dist/cjs/toolingAnnotations.native.js +135 -0
  126. package/dist/cjs/toolingAnnotations.native.js.map +1 -0
  127. package/dist/cjs/toolingDiagnostics.cjs +459 -0
  128. package/dist/cjs/toolingDiagnostics.native.cjs +788 -0
  129. package/dist/cjs/toolingDiagnostics.native.js +790 -0
  130. package/dist/cjs/toolingDiagnostics.native.js.map +1 -0
  131. package/dist/cjs/toolingRegistry.cjs +159 -0
  132. package/dist/cjs/toolingRegistry.native.cjs +164 -0
  133. package/dist/cjs/toolingRegistry.native.js +166 -0
  134. package/dist/cjs/toolingRegistry.native.js.map +1 -0
  135. package/dist/cjs/transformFamily.cjs +425 -0
  136. package/dist/cjs/transformFamily.native.cjs +517 -0
  137. package/dist/cjs/transformFamily.native.js +519 -0
  138. package/dist/cjs/transformFamily.native.js.map +1 -0
  139. package/dist/cjs/transition.cjs +459 -0
  140. package/dist/cjs/transition.native.cjs +499 -0
  141. package/dist/cjs/transition.native.js +501 -0
  142. package/dist/cjs/transition.native.js.map +1 -0
  143. package/dist/cjs/transitionAlign.cjs +115 -0
  144. package/dist/cjs/transitionAlign.native.cjs +154 -0
  145. package/dist/cjs/transitionAlign.native.js +156 -0
  146. package/dist/cjs/transitionAlign.native.js.map +1 -0
  147. package/dist/cjs/transitionLegacy.cjs +217 -0
  148. package/dist/cjs/transitionLegacy.native.cjs +260 -0
  149. package/dist/cjs/transitionLegacy.native.js +262 -0
  150. package/dist/cjs/transitionLegacy.native.js.map +1 -0
  151. package/dist/cjs/transitionNative.cjs +281 -0
  152. package/dist/cjs/transitionNative.native.cjs +285 -0
  153. package/dist/cjs/transitionNative.native.js +287 -0
  154. package/dist/cjs/transitionNative.native.js.map +1 -0
  155. package/dist/cjs/unitlessNumbers.cjs +86 -0
  156. package/dist/cjs/unitlessNumbers.native.cjs +106 -0
  157. package/dist/cjs/unitlessNumbers.native.js +108 -0
  158. package/dist/cjs/unitlessNumbers.native.js.map +1 -0
  159. package/dist/cjs/v6ThemeNames.cjs +47 -0
  160. package/dist/cjs/v6ThemeNames.native.cjs +53 -0
  161. package/dist/cjs/v6ThemeNames.native.js +55 -0
  162. package/dist/cjs/v6ThemeNames.native.js.map +1 -0
  163. package/dist/cjs/valueParser.cjs +148 -0
  164. package/dist/cjs/valueParser.native.cjs +150 -0
  165. package/dist/cjs/valueParser.native.js +152 -0
  166. package/dist/cjs/valueParser.native.js.map +1 -0
  167. package/dist/cjs/valueTypes.cjs +38 -0
  168. package/dist/cjs/valueTypes.native.cjs +40 -0
  169. package/dist/cjs/valueTypes.native.js +42 -0
  170. package/dist/cjs/valueTypes.native.js.map +1 -0
  171. package/dist/esm/backgroundFamily.mjs +150 -0
  172. package/dist/esm/backgroundFamily.mjs.map +1 -0
  173. package/dist/esm/backgroundFamily.native.js +167 -0
  174. package/dist/esm/backgroundFamily.native.js.map +1 -0
  175. package/dist/esm/borderFamily.mjs +146 -0
  176. package/dist/esm/borderFamily.mjs.map +1 -0
  177. package/dist/esm/borderFamily.native.js +222 -0
  178. package/dist/esm/borderFamily.native.js.map +1 -0
  179. package/dist/esm/candidate.mjs +581 -0
  180. package/dist/esm/candidate.mjs.map +1 -0
  181. package/dist/esm/candidate.native.js +792 -0
  182. package/dist/esm/candidate.native.js.map +1 -0
  183. package/dist/esm/candidateTarget.mjs +29 -0
  184. package/dist/esm/candidateTarget.mjs.map +1 -0
  185. package/dist/esm/candidateTarget.native.js +65 -0
  186. package/dist/esm/candidateTarget.native.js.map +1 -0
  187. package/dist/esm/clauseCapability.mjs +107 -0
  188. package/dist/esm/clauseCapability.mjs.map +1 -0
  189. package/dist/esm/clauseCapability.native.js +127 -0
  190. package/dist/esm/clauseCapability.native.js.map +1 -0
  191. package/dist/esm/clausePrecedence.mjs +121 -0
  192. package/dist/esm/clausePrecedence.mjs.map +1 -0
  193. package/dist/esm/clausePrecedence.native.js +170 -0
  194. package/dist/esm/clausePrecedence.native.js.map +1 -0
  195. package/dist/esm/clauseSources.mjs +23 -0
  196. package/dist/esm/clauseSources.mjs.map +1 -0
  197. package/dist/esm/clauseSources.native.js +23 -0
  198. package/dist/esm/clauseSources.native.js.map +1 -0
  199. package/dist/esm/config.mjs +103 -0
  200. package/dist/esm/config.mjs.map +1 -0
  201. package/dist/esm/config.native.js +156 -0
  202. package/dist/esm/config.native.js.map +1 -0
  203. package/dist/esm/evaluateProgram.mjs +45 -0
  204. package/dist/esm/evaluateProgram.mjs.map +1 -0
  205. package/dist/esm/evaluateProgram.native.js +48 -0
  206. package/dist/esm/evaluateProgram.native.js.map +1 -0
  207. package/dist/esm/fontShorthand.mjs +184 -0
  208. package/dist/esm/fontShorthand.mjs.map +1 -0
  209. package/dist/esm/fontShorthand.native.js +235 -0
  210. package/dist/esm/fontShorthand.native.js.map +1 -0
  211. package/dist/esm/geometricShorthand.mjs +102 -0
  212. package/dist/esm/geometricShorthand.mjs.map +1 -0
  213. package/dist/esm/geometricShorthand.native.js +106 -0
  214. package/dist/esm/geometricShorthand.native.js.map +1 -0
  215. package/dist/esm/index.mjs +1 -0
  216. package/dist/esm/index.native.js +1 -0
  217. package/dist/esm/lowerProgram.mjs +182 -0
  218. package/dist/esm/lowerProgram.mjs.map +1 -0
  219. package/dist/esm/lowerProgram.native.js +232 -0
  220. package/dist/esm/lowerProgram.native.js.map +1 -0
  221. package/dist/esm/mergeFlatValues.mjs +27 -0
  222. package/dist/esm/mergeFlatValues.mjs.map +1 -0
  223. package/dist/esm/mergeFlatValues.native.js +46 -0
  224. package/dist/esm/mergeFlatValues.native.js.map +1 -0
  225. package/dist/esm/modifierRegistry.mjs +219 -0
  226. package/dist/esm/modifierRegistry.mjs.map +1 -0
  227. package/dist/esm/modifierRegistry.native.js +397 -0
  228. package/dist/esm/modifierRegistry.native.js.map +1 -0
  229. package/dist/esm/payloadShape.mjs +49 -0
  230. package/dist/esm/payloadShape.mjs.map +1 -0
  231. package/dist/esm/payloadShape.native.js +49 -0
  232. package/dist/esm/payloadShape.native.js.map +1 -0
  233. package/dist/esm/programEligibility.mjs +22 -0
  234. package/dist/esm/programEligibility.mjs.map +1 -0
  235. package/dist/esm/programEligibility.native.js +22 -0
  236. package/dist/esm/programEligibility.native.js.map +1 -0
  237. package/dist/esm/programHash.mjs +62 -0
  238. package/dist/esm/programHash.mjs.map +1 -0
  239. package/dist/esm/programHash.native.js +80 -0
  240. package/dist/esm/programHash.native.js.map +1 -0
  241. package/dist/esm/programs.mjs +103 -0
  242. package/dist/esm/programs.mjs.map +1 -0
  243. package/dist/esm/programs.native.js +193 -0
  244. package/dist/esm/programs.native.js.map +1 -0
  245. package/dist/esm/registry.mjs +595 -0
  246. package/dist/esm/registry.mjs.map +1 -0
  247. package/dist/esm/registry.native.js +599 -0
  248. package/dist/esm/registry.native.js.map +1 -0
  249. package/dist/esm/resolvePayload.mjs +273 -0
  250. package/dist/esm/resolvePayload.mjs.map +1 -0
  251. package/dist/esm/resolvePayload.native.js +277 -0
  252. package/dist/esm/resolvePayload.native.js.map +1 -0
  253. package/dist/esm/runtime.mjs +63 -0
  254. package/dist/esm/runtime.native.js +63 -0
  255. package/dist/esm/safeAreaVariables.mjs +18 -0
  256. package/dist/esm/safeAreaVariables.mjs.map +1 -0
  257. package/dist/esm/safeAreaVariables.native.js +18 -0
  258. package/dist/esm/safeAreaVariables.native.js.map +1 -0
  259. package/dist/esm/scanFlatValue.mjs +160 -0
  260. package/dist/esm/scanFlatValue.mjs.map +1 -0
  261. package/dist/esm/scanFlatValue.native.js +160 -0
  262. package/dist/esm/scanFlatValue.native.js.map +1 -0
  263. package/dist/esm/serializePayload.mjs +125 -0
  264. package/dist/esm/serializePayload.mjs.map +1 -0
  265. package/dist/esm/serializePayload.native.js +161 -0
  266. package/dist/esm/serializePayload.native.js.map +1 -0
  267. package/dist/esm/stateModifiers.mjs +19 -0
  268. package/dist/esm/stateModifiers.mjs.map +1 -0
  269. package/dist/esm/stateModifiers.native.js +19 -0
  270. package/dist/esm/stateModifiers.native.js.map +1 -0
  271. package/dist/esm/states.mjs +69 -0
  272. package/dist/esm/states.mjs.map +1 -0
  273. package/dist/esm/states.native.js +101 -0
  274. package/dist/esm/states.native.js.map +1 -0
  275. package/dist/esm/table.mjs +31 -0
  276. package/dist/esm/table.mjs.map +1 -0
  277. package/dist/esm/table.native.js +110 -0
  278. package/dist/esm/table.native.js.map +1 -0
  279. package/dist/esm/textDecorationFamily.mjs +106 -0
  280. package/dist/esm/textDecorationFamily.mjs.map +1 -0
  281. package/dist/esm/textDecorationFamily.native.js +174 -0
  282. package/dist/esm/textDecorationFamily.native.js.map +1 -0
  283. package/dist/esm/tooling.mjs +15 -0
  284. package/dist/esm/tooling.native.js +15 -0
  285. package/dist/esm/toolingAnnotations.mjs +85 -0
  286. package/dist/esm/toolingAnnotations.mjs.map +1 -0
  287. package/dist/esm/toolingAnnotations.native.js +111 -0
  288. package/dist/esm/toolingAnnotations.native.js.map +1 -0
  289. package/dist/esm/toolingDiagnostics.mjs +428 -0
  290. package/dist/esm/toolingDiagnostics.mjs.map +1 -0
  291. package/dist/esm/toolingDiagnostics.native.js +755 -0
  292. package/dist/esm/toolingDiagnostics.native.js.map +1 -0
  293. package/dist/esm/toolingRegistry.mjs +135 -0
  294. package/dist/esm/toolingRegistry.mjs.map +1 -0
  295. package/dist/esm/toolingRegistry.native.js +138 -0
  296. package/dist/esm/toolingRegistry.native.js.map +1 -0
  297. package/dist/esm/transformFamily.mjs +392 -0
  298. package/dist/esm/transformFamily.mjs.map +1 -0
  299. package/dist/esm/transformFamily.native.js +482 -0
  300. package/dist/esm/transformFamily.native.js.map +1 -0
  301. package/dist/esm/transition.mjs +434 -0
  302. package/dist/esm/transition.mjs.map +1 -0
  303. package/dist/esm/transition.native.js +472 -0
  304. package/dist/esm/transition.native.js.map +1 -0
  305. package/dist/esm/transitionAlign.mjs +95 -0
  306. package/dist/esm/transitionAlign.mjs.map +1 -0
  307. package/dist/esm/transitionAlign.native.js +132 -0
  308. package/dist/esm/transitionAlign.native.js.map +1 -0
  309. package/dist/esm/transitionLegacy.mjs +197 -0
  310. package/dist/esm/transitionLegacy.mjs.map +1 -0
  311. package/dist/esm/transitionLegacy.native.js +238 -0
  312. package/dist/esm/transitionLegacy.native.js.map +1 -0
  313. package/dist/esm/transitionNative.mjs +257 -0
  314. package/dist/esm/transitionNative.mjs.map +1 -0
  315. package/dist/esm/transitionNative.native.js +259 -0
  316. package/dist/esm/transitionNative.native.js.map +1 -0
  317. package/dist/esm/unitlessNumbers.mjs +65 -0
  318. package/dist/esm/unitlessNumbers.mjs.map +1 -0
  319. package/dist/esm/unitlessNumbers.native.js +83 -0
  320. package/dist/esm/unitlessNumbers.native.js.map +1 -0
  321. package/dist/esm/v6ThemeNames.mjs +23 -0
  322. package/dist/esm/v6ThemeNames.mjs.map +1 -0
  323. package/dist/esm/v6ThemeNames.native.js +27 -0
  324. package/dist/esm/v6ThemeNames.native.js.map +1 -0
  325. package/dist/esm/valueParser.mjs +125 -0
  326. package/dist/esm/valueParser.mjs.map +1 -0
  327. package/dist/esm/valueParser.native.js +125 -0
  328. package/dist/esm/valueParser.native.js.map +1 -0
  329. package/dist/esm/valueTypes.mjs +14 -0
  330. package/dist/esm/valueTypes.mjs.map +1 -0
  331. package/dist/esm/valueTypes.native.js +14 -0
  332. package/dist/esm/valueTypes.native.js.map +1 -0
  333. package/package.json +98 -4
  334. package/src/backgroundFamily.ts +182 -0
  335. package/src/borderFamily.ts +172 -0
  336. package/src/candidate.ts +691 -0
  337. package/src/candidateTarget.ts +67 -0
  338. package/src/clauseCapability.ts +209 -0
  339. package/src/clausePrecedence.ts +198 -0
  340. package/src/clauseSources.ts +29 -0
  341. package/src/config.ts +169 -0
  342. package/src/evaluateProgram.ts +91 -0
  343. package/src/fontShorthand.ts +177 -0
  344. package/src/geometricShorthand.ts +105 -0
  345. package/src/index.ts +1 -0
  346. package/src/lowerProgram.ts +398 -0
  347. package/src/modifierRegistry.ts +340 -0
  348. package/src/payloadShape.ts +92 -0
  349. package/src/programEligibility.ts +46 -0
  350. package/src/programHash.ts +128 -0
  351. package/src/programs.ts +95 -0
  352. package/src/registry.ts +367 -0
  353. package/src/resolvePayload.ts +480 -0
  354. package/src/runtime.ts +32 -0
  355. package/src/safeAreaVariables.ts +19 -0
  356. package/src/scanFlatValue.ts +327 -0
  357. package/src/serializePayload.ts +199 -0
  358. package/src/stateModifiers.ts +36 -0
  359. package/src/states.ts +128 -0
  360. package/src/table.ts +47 -0
  361. package/src/textDecorationFamily.ts +119 -0
  362. package/src/tooling.ts +8 -0
  363. package/src/toolingAnnotations.ts +151 -0
  364. package/src/toolingDiagnostics.ts +735 -0
  365. package/src/toolingRegistry.ts +130 -0
  366. package/src/transformFamily.ts +590 -0
  367. package/src/transition.ts +553 -0
  368. package/src/transitionAlign.ts +165 -0
  369. package/src/transitionLegacy.ts +237 -0
  370. package/src/transitionNative.ts +357 -0
  371. package/src/unitlessNumbers.ts +61 -0
  372. package/src/v6ThemeNames.ts +40 -0
  373. package/src/valueParser.ts +193 -0
  374. package/src/valueTypes.ts +136 -0
  375. package/types/backgroundFamily.d.ts +17 -0
  376. package/types/backgroundFamily.d.ts.map +11 -0
  377. package/types/borderFamily.d.ts +23 -0
  378. package/types/borderFamily.d.ts.map +11 -0
  379. package/types/candidate.d.ts +52 -0
  380. package/types/candidate.d.ts.map +11 -0
  381. package/types/candidateTarget.d.ts +32 -0
  382. package/types/candidateTarget.d.ts.map +11 -0
  383. package/types/clauseCapability.d.ts +69 -0
  384. package/types/clauseCapability.d.ts.map +11 -0
  385. package/types/clausePrecedence.d.ts +30 -0
  386. package/types/clausePrecedence.d.ts.map +11 -0
  387. package/types/clauseSources.d.ts +12 -0
  388. package/types/clauseSources.d.ts.map +11 -0
  389. package/types/config.d.ts +44 -0
  390. package/types/config.d.ts.map +11 -0
  391. package/types/evaluateProgram.d.ts +27 -0
  392. package/types/evaluateProgram.d.ts.map +11 -0
  393. package/types/fontShorthand.d.ts +25 -0
  394. package/types/fontShorthand.d.ts.map +11 -0
  395. package/types/geometricShorthand.d.ts +21 -0
  396. package/types/geometricShorthand.d.ts.map +11 -0
  397. package/types/index.d.ts +3 -0
  398. package/types/index.d.ts.map +11 -0
  399. package/types/lowerProgram.d.ts +73 -0
  400. package/types/lowerProgram.d.ts.map +11 -0
  401. package/types/mergeFlatValues.d.ts +14 -0
  402. package/types/mergeFlatValues.d.ts.map +11 -0
  403. package/types/modifierRegistry.d.ts +70 -0
  404. package/types/modifierRegistry.d.ts.map +11 -0
  405. package/types/payloadShape.d.ts +15 -0
  406. package/types/payloadShape.d.ts.map +11 -0
  407. package/types/programEligibility.d.ts +23 -0
  408. package/types/programEligibility.d.ts.map +11 -0
  409. package/types/programHash.d.ts +20 -0
  410. package/types/programHash.d.ts.map +11 -0
  411. package/types/programs.d.ts +18 -0
  412. package/types/programs.d.ts.map +11 -0
  413. package/types/registry.d.ts +24 -0
  414. package/types/registry.d.ts.map +11 -0
  415. package/types/resolvePayload.d.ts +75 -0
  416. package/types/resolvePayload.d.ts.map +11 -0
  417. package/types/runtime.d.ts +34 -0
  418. package/types/runtime.d.ts.map +11 -0
  419. package/types/safeAreaVariables.d.ts +5 -0
  420. package/types/safeAreaVariables.d.ts.map +11 -0
  421. package/types/scanFlatValue.d.ts +29 -0
  422. package/types/scanFlatValue.d.ts.map +11 -0
  423. package/types/serializePayload.d.ts +13 -0
  424. package/types/serializePayload.d.ts.map +11 -0
  425. package/types/stateModifiers.d.ts +14 -0
  426. package/types/stateModifiers.d.ts.map +11 -0
  427. package/types/states.d.ts +22 -0
  428. package/types/states.d.ts.map +11 -0
  429. package/types/table.d.ts +4 -0
  430. package/types/table.d.ts.map +11 -0
  431. package/types/textDecorationFamily.d.ts +23 -0
  432. package/types/textDecorationFamily.d.ts.map +11 -0
  433. package/types/tooling.d.ts +10 -0
  434. package/types/tooling.d.ts.map +11 -0
  435. package/types/toolingAnnotations.d.ts +29 -0
  436. package/types/toolingAnnotations.d.ts.map +11 -0
  437. package/types/toolingDiagnostics.d.ts +114 -0
  438. package/types/toolingDiagnostics.d.ts.map +11 -0
  439. package/types/toolingRegistry.d.ts +10 -0
  440. package/types/toolingRegistry.d.ts.map +11 -0
  441. package/types/transformFamily.d.ts +83 -0
  442. package/types/transformFamily.d.ts.map +11 -0
  443. package/types/transition.d.ts +65 -0
  444. package/types/transition.d.ts.map +11 -0
  445. package/types/transitionAlign.d.ts +15 -0
  446. package/types/transitionAlign.d.ts.map +11 -0
  447. package/types/transitionLegacy.d.ts +9 -0
  448. package/types/transitionLegacy.d.ts.map +11 -0
  449. package/types/transitionNative.d.ts +41 -0
  450. package/types/transitionNative.d.ts.map +11 -0
  451. package/types/unitlessNumbers.d.ts +3 -0
  452. package/types/unitlessNumbers.d.ts.map +11 -0
  453. package/types/v6ThemeNames.d.ts +7 -0
  454. package/types/v6ThemeNames.d.ts.map +11 -0
  455. package/types/valueParser.d.ts +36 -0
  456. package/types/valueParser.d.ts.map +11 -0
  457. package/types/valueTypes.d.ts +66 -0
  458. package/types/valueTypes.d.ts.map +11 -0
@@ -0,0 +1,428 @@
1
+ import { resolveCandidateTarget } from "./candidateTarget.mjs";
2
+ import { createGrammarConfigView } from "./config.mjs";
3
+ import { splitGeometricShorthandValue } from "./geometricShorthand.mjs";
4
+ import { formatParsedValue } from "./mergeFlatValues.mjs";
5
+ import { validatePayloadShape } from "./payloadShape.mjs";
6
+ import { legacyPartComposite, programEligibility } from "./programEligibility.mjs";
7
+ import { resolvePayload } from "./resolvePayload.mjs";
8
+ import { fontWeightNames, grammarEntries, standaloneValueProps } from "./registry.mjs";
9
+ import { parseValue, parseValueWithSourceSpans } from "./valueParser.mjs";
10
+ import { v6RemovedThemeNames, v6ThemeNameReplacements } from "./v6ThemeNames.mjs";
11
+
12
+ function canonicalizeStyleValue(input, registry) {
13
+ const parsed = parseValue(input, registry);
14
+ if (!parsed.ok) return parsed;
15
+ return {
16
+ ok: true,
17
+ value: formatParsedValue(parsed.value),
18
+ parsed: parsed.value
19
+ };
20
+ }
21
+ function forEachName(names, visit) {
22
+ if (!names) return;
23
+ if (Array.isArray(names)) {
24
+ for (const name of names) visit(name);
25
+ return;
26
+ }
27
+ if (names instanceof Set) {
28
+ for (const name of names) visit(name);
29
+ return;
30
+ }
31
+ for (const name in names) visit(name);
32
+ }
33
+ function createCandidatePropertyVocabulary(config) {
34
+ const byName = /* @__PURE__ */ new Map();
35
+ const entriesByCategory = /* @__PURE__ */ new Map();
36
+ for (const entry of grammarEntries) {
37
+ if (!entry.tokenCategory) continue;
38
+ const contributions = entriesByCategory.get(entry.tokenCategory) || [];
39
+ contributions.push({
40
+ property: entry.prop,
41
+ tokenCategory: entry.tokenCategory
42
+ });
43
+ entriesByCategory.set(entry.tokenCategory, contributions);
44
+ }
45
+ for (const [category, contributions] of entriesByCategory) {
46
+ forEachName(config.tokenNames?.[category], (name) => {
47
+ const existing = byName.get(name) || [];
48
+ for (const contribution of contributions) {
49
+ if (!existing.some((item) => item.property === contribution.property)) {
50
+ existing.push(contribution);
51
+ }
52
+ }
53
+ byName.set(name, existing);
54
+ });
55
+ }
56
+ return byName;
57
+ }
58
+ function createGrammarConfigViewFromSerializedConfig(config, metadata) {
59
+ const isVersioned = typeof metadata === "object" && metadata !== null && metadata.themeFields === "values-only";
60
+ if (metadata !== void 0 && !isVersioned) {
61
+ throw new Error("@tamagui/style-grammar: unsupported serialized config themeFields format");
62
+ }
63
+ const themes = {};
64
+ for (const themeName in config.themes) {
65
+ const serializedTheme = config.themes[themeName];
66
+ if (!serializedTheme || typeof serializedTheme !== "object") continue;
67
+ const runtimeTheme = {};
68
+ for (const key in serializedTheme) {
69
+ if (isVersioned || key !== "id") {
70
+ runtimeTheme[key] = serializedTheme[key];
71
+ }
72
+ }
73
+ themes[themeName] = runtimeTheme;
74
+ }
75
+ return createGrammarConfigView({
76
+ shorthands: config.shorthands,
77
+ media: config.media,
78
+ themes,
79
+ tokensParsed: config.tokens,
80
+ fontsParsed: config.fonts
81
+ });
82
+ }
83
+ const removedThemeNames = new Set(v6RemovedThemeNames);
84
+ const grammarProperties = new Set(grammarEntries.map((entry) => entry.prop));
85
+ const categoryReferenceKind = {
86
+ color: "color",
87
+ space: "length",
88
+ size: "length",
89
+ radius: "length",
90
+ zIndex: "number",
91
+ fontFamily: "other",
92
+ fontSize: "length",
93
+ fontWeight: "number",
94
+ lineHeight: "length",
95
+ letterSpacing: "length"
96
+ };
97
+ function referenceKindFor(contributions, targetProperty) {
98
+ let fallback;
99
+ for (const contribution of contributions) {
100
+ const kind = contribution.tokenCategory ? categoryReferenceKind[contribution.tokenCategory] : "other";
101
+ if (contribution.property === targetProperty) return kind;
102
+ if (fallback !== "color") fallback = kind;
103
+ }
104
+ return fallback ?? "other";
105
+ }
106
+ function parseErrorSpan(input, error) {
107
+ const length = input.length;
108
+ if (error.code === "unregistered-modifier" && error.modifier) {
109
+ return {
110
+ start: error.index,
111
+ end: error.index + error.modifier.length
112
+ };
113
+ }
114
+ if (error.code === "unterminated-string" || error.code === "unterminated-function" || error.code === "unterminated-comment") {
115
+ return {
116
+ start: Math.max(0, Math.min(error.index, length - 1)),
117
+ end: length
118
+ };
119
+ }
120
+ const start = Math.max(0, Math.min(error.index, length - 1));
121
+ const width = error.code === "stray-comment-close" ? 2 : 1;
122
+ return {
123
+ start,
124
+ end: Math.min(length, start + width)
125
+ };
126
+ }
127
+ function candidateEndWithSuffix(payload, end) {
128
+ if (payload.charCodeAt(end) !== 47) return end;
129
+ let cursor = end + 1;
130
+ while (cursor < payload.length) {
131
+ const code = payload.charCodeAt(cursor);
132
+ if (code === 32 || code === 9 || code === 10 || code === 13 || code === 12) break;
133
+ if (code === 44 || code === 40 || code === 41) break;
134
+ cursor++;
135
+ }
136
+ return cursor;
137
+ }
138
+ function diagnoseStyleValue(property, input, options) {
139
+ const { result, spans } = parseValueWithSourceSpans(input, options.registry);
140
+ if (!result.ok) {
141
+ return result.errors.map((error) => {
142
+ const span = parseErrorSpan(input, error);
143
+ return {
144
+ code: error.code,
145
+ index: span.start,
146
+ ...span,
147
+ message: error.message
148
+ };
149
+ });
150
+ }
151
+ const targetProperty = options.config.shorthands?.[property] || property;
152
+ const targetIsKnown = grammarProperties.has(targetProperty);
153
+ const candidates = options.candidates || createCandidatePropertyVocabulary(options.config);
154
+ const diagnostics = [];
155
+ const diagnosed = /* @__PURE__ */ new Set();
156
+ const push = (key, diagnostic) => {
157
+ if (diagnosed.has(key)) return;
158
+ diagnosed.add(key);
159
+ diagnostics.push({
160
+ index: diagnostic.start,
161
+ ...diagnostic
162
+ });
163
+ };
164
+ const diagnoseSegment = (payload, offset) => {
165
+ const sightings = [];
166
+ const resolved = resolvePayload(payload, {
167
+ lookup(name) {
168
+ const contributions2 = candidates.get(name);
169
+ if (!contributions2) return void 0;
170
+ return {
171
+ name,
172
+ kind: referenceKindFor(contributions2, targetProperty)
173
+ };
174
+ },
175
+ onCandidate(start, end, name, reference) {
176
+ sightings.push({
177
+ start,
178
+ end,
179
+ name,
180
+ resolved: reference
181
+ });
182
+ if (reference) return;
183
+ const replacement = v6ThemeNameReplacements[name];
184
+ if (replacement) {
185
+ push(`v6-theme-name-replaced:${name}`, {
186
+ code: "v6-theme-name-replaced",
187
+ start: offset + start,
188
+ end: offset + end,
189
+ candidate: name,
190
+ replacement,
191
+ message: `"${name}" is not a v6 built-in name; use "${replacement}"`
192
+ });
193
+ } else if (removedThemeNames.has(name)) {
194
+ push(`v6-theme-name-removed:${name}`, {
195
+ code: "v6-theme-name-removed",
196
+ start: offset + start,
197
+ end: offset + end,
198
+ candidate: name,
199
+ message: `"${name}" was removed from the v6 built-in theme vocabulary`
200
+ });
201
+ }
202
+ }
203
+ });
204
+ if (targetIsKnown) {
205
+ for (const error of resolved.errors) {
206
+ const sighting2 = sightings.find((entry) => entry.start === error.index);
207
+ if (!sighting2?.resolved) continue;
208
+ push(`${error.code}:${error.name}:${error.opacity}`, {
209
+ code: error.code,
210
+ start: offset + error.index,
211
+ end: offset + candidateEndWithSuffix(payload, sighting2.end),
212
+ candidate: error.name,
213
+ message: error.message
214
+ });
215
+ }
216
+ }
217
+ const candidate = resolved.segments.length === 1 && typeof resolved.segments[0] !== "string" ? resolved.segments[0].name : null;
218
+ if (candidate === null || !targetIsKnown) return;
219
+ const contributions = candidates.get(candidate);
220
+ if (!contributions) return;
221
+ const target = resolveCandidateTarget(targetProperty, candidate, contributions);
222
+ if (target.ok) return;
223
+ const sighting = sightings.find((entry) => entry.name === candidate && entry.resolved);
224
+ push(`${target.diagnostic.code}:${candidate}:${targetProperty}`, {
225
+ ...target.diagnostic,
226
+ start: offset + (sighting?.start ?? 0),
227
+ end: offset + (sighting?.end ?? payload.length)
228
+ });
229
+ };
230
+ for (const span of spans) {
231
+ if (span.kind !== "base" && span.kind !== "payload") continue;
232
+ if (span.start >= span.end) continue;
233
+ diagnoseSegment(input.slice(span.start, span.end), span.start);
234
+ }
235
+ return diagnostics;
236
+ }
237
+ function modifierChainBefore(input, spans, start) {
238
+ const byEnd = /* @__PURE__ */ new Map();
239
+ for (const span of spans) {
240
+ if (span.kind === "modifier") byEnd.set(span.end, span);
241
+ }
242
+ const reversed = [];
243
+ let colon = start - 1;
244
+ while (colon >= 0 && input.charCodeAt(colon) === 58) {
245
+ const span = byEnd.get(colon);
246
+ if (!span) break;
247
+ reversed.push(input.slice(span.start, span.end));
248
+ colon = span.start - 1;
249
+ }
250
+ reversed.reverse();
251
+ return reversed;
252
+ }
253
+ function createStylePropSet(config) {
254
+ const styleProps = /* @__PURE__ */ new Set([...grammarEntries.map((entry) => entry.prop), ...Object.keys(legacyPartComposite)]);
255
+ for (const shorthand in config.shorthands) {
256
+ styleProps.add(shorthand);
257
+ styleProps.add(config.shorthands[shorthand]);
258
+ }
259
+ return styleProps;
260
+ }
261
+ function payloadSpan(input, payload) {
262
+ const at = input.indexOf(payload);
263
+ return at === -1 ? {
264
+ start: 0,
265
+ end: input.length
266
+ } : {
267
+ start: at,
268
+ end: at + payload.length
269
+ };
270
+ }
271
+ function diagnoseStyleValueProgram(property, input, options) {
272
+ const candidates = options.candidates || createCandidatePropertyVocabulary(options.config);
273
+ const scoped = {
274
+ ...options,
275
+ candidates
276
+ };
277
+ const diagnostics = diagnoseStyleValue(property, input, scoped);
278
+ if (diagnostics.length > 0) return diagnostics;
279
+ const parsed = parseValue(input, options.registry);
280
+ if (!parsed.ok) return diagnostics;
281
+ const targetProperty = options.config.shorthands?.[property] || property;
282
+ if (parsed.value.clauses.length > 0 && programEligibility(targetProperty) === "legacy-part") {
283
+ return [{
284
+ code: "legacy-part-conditional",
285
+ index: 0,
286
+ start: 0,
287
+ end: input.length,
288
+ property: targetProperty,
289
+ message: `conditional values are not supported on part prop "${targetProperty}"; move the condition onto \`${legacyPartComposite[targetProperty]}\``
290
+ }];
291
+ }
292
+ const results = [];
293
+ const reported = /* @__PURE__ */ new Set();
294
+ const geometric = splitGeometricShorthandValue(targetProperty, parsed.value);
295
+ const programs = geometric && geometric.errors.length === 0 ? geometric.entries : [{
296
+ property: targetProperty,
297
+ value: parsed.value
298
+ }];
299
+ for (const program of programs) {
300
+ const { base, clauses } = program.value;
301
+ const payloads = [...base === null ? [] : [base], ...clauses.map((clause) => clause.payload)];
302
+ for (const payload of payloads) {
303
+ for (const diagnostic of diagnoseStyleValueProgramSlot(program.property, payload, scoped)) {
304
+ const key = `${diagnostic.code}:${diagnostic.candidate}:${program.property}`;
305
+ if (reported.has(key)) continue;
306
+ reported.add(key);
307
+ const span = payloadSpan(input, payload);
308
+ results.push({
309
+ ...diagnostic,
310
+ index: span.start,
311
+ ...span
312
+ });
313
+ }
314
+ }
315
+ if (base !== null) {
316
+ pushShapeDiagnostic(results, reported, input, program.property, base, true);
317
+ }
318
+ for (const clause of clauses) {
319
+ pushShapeDiagnostic(results, reported, input, program.property, clause.payload, base !== null);
320
+ }
321
+ }
322
+ return results;
323
+ }
324
+ function diagnoseStyleValueProgramSlot(property, payload, options) {
325
+ const slotDiagnostics = diagnoseStyleValue(property, payload, options);
326
+ return slotDiagnostics.filter((diagnostic) => diagnostic.code === "candidate-property-mismatch");
327
+ }
328
+ function pushShapeDiagnostic(results, reported, input, property, payload, hasBase) {
329
+ const diagnostic = validatePayloadShape(property, payload, hasBase);
330
+ if (!diagnostic) return;
331
+ const key = `${diagnostic.code}:${diagnostic.payload}:${property}`;
332
+ if (reported.has(key)) return;
333
+ reported.add(key);
334
+ const span = payloadSpan(input, payload);
335
+ results.push({
336
+ code: diagnostic.code,
337
+ index: span.start,
338
+ ...span,
339
+ property,
340
+ message: diagnostic.message
341
+ });
342
+ }
343
+ function completeStyleValue(property, options) {
344
+ const candidates = options.candidates || createCandidatePropertyVocabulary(options.config);
345
+ const targetProperty = options.config.shorthands?.[property] || property;
346
+ if (!grammarProperties.has(targetProperty)) return [];
347
+ const byValue = /* @__PURE__ */ new Map();
348
+ for (const [value, contributions] of candidates) {
349
+ if (resolveCandidateTarget(targetProperty, value, contributions).ok) {
350
+ byValue.set(value, "configured");
351
+ }
352
+ }
353
+ const standalone = standaloneValueProps[targetProperty];
354
+ if (standalone) {
355
+ for (const value in standalone) {
356
+ if (!byValue.has(value)) byValue.set(value, "keyword");
357
+ }
358
+ }
359
+ if (targetProperty === "fontWeight") {
360
+ for (const value in fontWeightNames) {
361
+ if (!byValue.has(value)) byValue.set(value, "keyword");
362
+ }
363
+ }
364
+ const completions = [];
365
+ for (const [value, kind] of byValue) {
366
+ if (diagnoseStyleValue(property, value, {
367
+ ...options,
368
+ candidates
369
+ }).length === 0) {
370
+ completions.push({
371
+ value,
372
+ kind
373
+ });
374
+ }
375
+ }
376
+ completions.sort((a, b) => a.value < b.value ? -1 : a.value > b.value ? 1 : 0);
377
+ return completions;
378
+ }
379
+ function completeStyleValueAtCursor(property, input, cursor, options) {
380
+ if (cursor < 0 || cursor > input.length) return null;
381
+ const parsed = parseValueWithSourceSpans(input, options.registry);
382
+ const active = parsed.spans.find((span) => cursor >= span.start && cursor <= span.end && span.kind === "modifier") ?? parsed.spans.find((span) => cursor >= span.start && cursor <= span.end && span.kind === "word" && span.start > 0 && parsed.result.ok && parsed.spans.some((segment) => (segment.kind === "base" || segment.kind === "payload") && segment.start < span.start && segment.end >= span.end)) ?? parsed.spans.find((span) => cursor >= span.start && cursor <= span.end && span.kind !== "modifier" && span.kind !== "word");
383
+ if (active?.kind === "modifier" || active?.kind === "word") {
384
+ if (!parsed.result.ok && parsed.result.errors.some((error) => error.code !== "unregistered-modifier" && error.code !== "empty-modifier" && error.code !== "empty-payload")) {
385
+ return null;
386
+ }
387
+ return {
388
+ replaceStart: active.start,
389
+ replaceLength: active.end - active.start,
390
+ completions: completeModifiers(options, input.charCodeAt(active.end) !== 58, active.kind === "modifier" ? modifierChainBefore(input, parsed.spans, active.start) : [])
391
+ };
392
+ }
393
+ if (active) {
394
+ if (!parsed.result.ok && parsed.result.errors.some((error) => error.code !== "empty-payload")) {
395
+ return null;
396
+ }
397
+ return {
398
+ replaceStart: active.start,
399
+ replaceLength: active.end - active.start,
400
+ completions: active.kind === "payload" && input.charCodeAt(active.start - 1) === 58 ? [...completeModifiers(options, true, modifierChainBefore(input, parsed.spans, active.start)), ...completeStyleValue(property, options)] : completeStyleValue(property, options)
401
+ };
402
+ }
403
+ if (parsed.result.ok && cursor === input.length) {
404
+ return {
405
+ replaceStart: cursor,
406
+ replaceLength: 0,
407
+ completions: completeModifiers(options, true, [])
408
+ };
409
+ }
410
+ return null;
411
+ }
412
+ function completeModifiers(options, appendColon, modifiers) {
413
+ const names = options.registry.next?.(modifiers);
414
+ if (!names) return [];
415
+ const completions = [];
416
+ for (const name of names) {
417
+ completions.push({
418
+ value: name,
419
+ kind: "modifier",
420
+ insertText: appendColon ? `${name}:` : name
421
+ });
422
+ }
423
+ completions.sort((a, b) => a.value < b.value ? -1 : a.value > b.value ? 1 : 0);
424
+ return completions;
425
+ }
426
+
427
+ export { canonicalizeStyleValue, completeStyleValue, completeStyleValueAtCursor, createCandidatePropertyVocabulary, createGrammarConfigViewFromSerializedConfig, createStylePropSet, diagnoseStyleValue, diagnoseStyleValueProgram, modifierChainBefore, referenceKindFor };
428
+ //# sourceMappingURL=toolingDiagnostics.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolingDiagnostics.js","names":[],"sources":["esm/toolingDiagnostics.js"],"sourcesContent":["import {\n resolveCandidateTarget\n} from \"./candidateTarget\";\nimport { createGrammarConfigView } from \"./config\";\nimport { splitGeometricShorthandValue } from \"./geometricShorthand\";\nimport { formatParsedValue } from \"./mergeFlatValues\";\nimport { validatePayloadShape } from \"./payloadShape\";\nimport { legacyPartComposite, programEligibility } from \"./programEligibility\";\nimport {\n resolvePayload\n} from \"./resolvePayload\";\nimport {\n fontWeightNames,\n grammarEntries,\n standaloneValueProps\n} from \"./registry\";\nimport {\n parseValue,\n parseValueWithSourceSpans\n} from \"./valueParser\";\nimport { v6RemovedThemeNames, v6ThemeNameReplacements } from \"./v6ThemeNames\";\nfunction canonicalizeStyleValue(input, registry) {\n const parsed = parseValue(input, registry);\n if (!parsed.ok) return parsed;\n return {\n ok: true,\n value: formatParsedValue(parsed.value),\n parsed: parsed.value\n };\n}\nfunction forEachName(names, visit) {\n if (!names) return;\n if (Array.isArray(names)) {\n for (const name of names) visit(name);\n return;\n }\n if (names instanceof Set) {\n for (const name of names) visit(name);\n return;\n }\n for (const name in names) visit(name);\n}\nfunction createCandidatePropertyVocabulary(config) {\n const byName = /* @__PURE__ */ new Map();\n const entriesByCategory = /* @__PURE__ */ new Map();\n for (const entry of grammarEntries) {\n if (!entry.tokenCategory) continue;\n const contributions = entriesByCategory.get(entry.tokenCategory) || [];\n contributions.push({ property: entry.prop, tokenCategory: entry.tokenCategory });\n entriesByCategory.set(entry.tokenCategory, contributions);\n }\n for (const [category, contributions] of entriesByCategory) {\n forEachName(config.tokenNames?.[category], (name) => {\n const existing = byName.get(name) || [];\n for (const contribution of contributions) {\n if (!existing.some((item) => item.property === contribution.property)) {\n existing.push(contribution);\n }\n }\n byName.set(name, existing);\n });\n }\n return byName;\n}\nfunction createGrammarConfigViewFromSerializedConfig(config, metadata) {\n const isVersioned = typeof metadata === \"object\" && metadata !== null && metadata.themeFields === \"values-only\";\n if (metadata !== void 0 && !isVersioned) {\n throw new Error(\n \"@tamagui/style-grammar: unsupported serialized config themeFields format\"\n );\n }\n const themes = {};\n for (const themeName in config.themes) {\n const serializedTheme = config.themes[themeName];\n if (!serializedTheme || typeof serializedTheme !== \"object\") continue;\n const runtimeTheme = {};\n for (const key in serializedTheme) {\n if (isVersioned || key !== \"id\") {\n runtimeTheme[key] = serializedTheme[key];\n }\n }\n themes[themeName] = runtimeTheme;\n }\n return createGrammarConfigView({\n shorthands: config.shorthands,\n media: config.media,\n themes,\n tokensParsed: config.tokens,\n fontsParsed: config.fonts\n });\n}\nconst removedThemeNames = new Set(v6RemovedThemeNames);\nconst grammarProperties = new Set(\n grammarEntries.map((entry) => entry.prop)\n);\nconst categoryReferenceKind = {\n color: \"color\",\n space: \"length\",\n size: \"length\",\n radius: \"length\",\n zIndex: \"number\",\n fontFamily: \"other\",\n fontSize: \"length\",\n fontWeight: \"number\",\n lineHeight: \"length\",\n letterSpacing: \"length\"\n};\nfunction referenceKindFor(contributions, targetProperty) {\n let fallback;\n for (const contribution of contributions) {\n const kind = contribution.tokenCategory ? categoryReferenceKind[contribution.tokenCategory] : \"other\";\n if (contribution.property === targetProperty) return kind;\n if (fallback !== \"color\") fallback = kind;\n }\n return fallback ?? \"other\";\n}\nfunction parseErrorSpan(input, error) {\n const length = input.length;\n if (error.code === \"unregistered-modifier\" && error.modifier) {\n return { start: error.index, end: error.index + error.modifier.length };\n }\n if (error.code === \"unterminated-string\" || error.code === \"unterminated-function\" || error.code === \"unterminated-comment\") {\n return { start: Math.max(0, Math.min(error.index, length - 1)), end: length };\n }\n const start = Math.max(0, Math.min(error.index, length - 1));\n const width = error.code === \"stray-comment-close\" ? 2 : 1;\n return { start, end: Math.min(length, start + width) };\n}\nfunction candidateEndWithSuffix(payload, end) {\n if (payload.charCodeAt(end) !== 47) return end;\n let cursor = end + 1;\n while (cursor < payload.length) {\n const code = payload.charCodeAt(cursor);\n if (code === 32 || code === 9 || code === 10 || code === 13 || code === 12) break;\n if (code === 44 || code === 40 || code === 41) break;\n cursor++;\n }\n return cursor;\n}\nfunction diagnoseStyleValue(property, input, options) {\n const { result, spans } = parseValueWithSourceSpans(input, options.registry);\n if (!result.ok) {\n return result.errors.map((error) => {\n const span = parseErrorSpan(input, error);\n return {\n code: error.code,\n index: span.start,\n ...span,\n message: error.message\n };\n });\n }\n const targetProperty = options.config.shorthands?.[property] || property;\n const targetIsKnown = grammarProperties.has(targetProperty);\n const candidates = options.candidates || createCandidatePropertyVocabulary(options.config);\n const diagnostics = [];\n const diagnosed = /* @__PURE__ */ new Set();\n const push = (key, diagnostic) => {\n if (diagnosed.has(key)) return;\n diagnosed.add(key);\n diagnostics.push({ index: diagnostic.start, ...diagnostic });\n };\n const diagnoseSegment = (payload, offset) => {\n const sightings = [];\n const resolved = resolvePayload(payload, {\n lookup(name) {\n const contributions2 = candidates.get(name);\n if (!contributions2) return void 0;\n return { name, kind: referenceKindFor(contributions2, targetProperty) };\n },\n onCandidate(start, end, name, reference) {\n sightings.push({ start, end, name, resolved: reference });\n if (reference) return;\n const replacement = v6ThemeNameReplacements[name];\n if (replacement) {\n push(`v6-theme-name-replaced:${name}`, {\n code: \"v6-theme-name-replaced\",\n start: offset + start,\n end: offset + end,\n candidate: name,\n replacement,\n message: `\"${name}\" is not a v6 built-in name; use \"${replacement}\"`\n });\n } else if (removedThemeNames.has(name)) {\n push(`v6-theme-name-removed:${name}`, {\n code: \"v6-theme-name-removed\",\n start: offset + start,\n end: offset + end,\n candidate: name,\n message: `\"${name}\" was removed from the v6 built-in theme vocabulary`\n });\n }\n }\n });\n if (targetIsKnown) {\n for (const error of resolved.errors) {\n const sighting2 = sightings.find((entry) => entry.start === error.index);\n if (!sighting2?.resolved) continue;\n push(`${error.code}:${error.name}:${error.opacity}`, {\n code: error.code,\n start: offset + error.index,\n end: offset + candidateEndWithSuffix(payload, sighting2.end),\n candidate: error.name,\n message: error.message\n });\n }\n }\n const candidate = resolved.segments.length === 1 && typeof resolved.segments[0] !== \"string\" ? resolved.segments[0].name : null;\n if (candidate === null || !targetIsKnown) return;\n const contributions = candidates.get(candidate);\n if (!contributions) return;\n const target = resolveCandidateTarget(targetProperty, candidate, contributions);\n if (target.ok) return;\n const sighting = sightings.find((entry) => entry.name === candidate && entry.resolved);\n push(`${target.diagnostic.code}:${candidate}:${targetProperty}`, {\n ...target.diagnostic,\n start: offset + (sighting?.start ?? 0),\n end: offset + (sighting?.end ?? payload.length)\n });\n };\n for (const span of spans) {\n if (span.kind !== \"base\" && span.kind !== \"payload\") continue;\n if (span.start >= span.end) continue;\n diagnoseSegment(input.slice(span.start, span.end), span.start);\n }\n return diagnostics;\n}\nfunction modifierChainBefore(input, spans, start) {\n const byEnd = /* @__PURE__ */ new Map();\n for (const span of spans) {\n if (span.kind === \"modifier\") byEnd.set(span.end, span);\n }\n const reversed = [];\n let colon = start - 1;\n while (colon >= 0 && input.charCodeAt(colon) === 58) {\n const span = byEnd.get(colon);\n if (!span) break;\n reversed.push(input.slice(span.start, span.end));\n colon = span.start - 1;\n }\n reversed.reverse();\n return reversed;\n}\nfunction createStylePropSet(config) {\n const styleProps = /* @__PURE__ */ new Set([\n ...grammarEntries.map((entry) => entry.prop),\n ...Object.keys(legacyPartComposite)\n ]);\n for (const shorthand in config.shorthands) {\n styleProps.add(shorthand);\n styleProps.add(config.shorthands[shorthand]);\n }\n return styleProps;\n}\nfunction payloadSpan(input, payload) {\n const at = input.indexOf(payload);\n return at === -1 ? { start: 0, end: input.length } : { start: at, end: at + payload.length };\n}\nfunction diagnoseStyleValueProgram(property, input, options) {\n const candidates = options.candidates || createCandidatePropertyVocabulary(options.config);\n const scoped = { ...options, candidates };\n const diagnostics = diagnoseStyleValue(property, input, scoped);\n if (diagnostics.length > 0) return diagnostics;\n const parsed = parseValue(input, options.registry);\n if (!parsed.ok) return diagnostics;\n const targetProperty = options.config.shorthands?.[property] || property;\n if (parsed.value.clauses.length > 0 && programEligibility(targetProperty) === \"legacy-part\") {\n return [\n {\n code: \"legacy-part-conditional\",\n index: 0,\n start: 0,\n end: input.length,\n property: targetProperty,\n message: `conditional values are not supported on part prop \"${targetProperty}\"; move the condition onto \\`${legacyPartComposite[targetProperty]}\\``\n }\n ];\n }\n const results = [];\n const reported = /* @__PURE__ */ new Set();\n const geometric = splitGeometricShorthandValue(targetProperty, parsed.value);\n const programs = geometric && geometric.errors.length === 0 ? geometric.entries : [{ property: targetProperty, value: parsed.value }];\n for (const program of programs) {\n const { base, clauses } = program.value;\n const payloads = [\n ...base === null ? [] : [base],\n ...clauses.map((clause) => clause.payload)\n ];\n for (const payload of payloads) {\n for (const diagnostic of diagnoseStyleValueProgramSlot(\n program.property,\n payload,\n scoped\n )) {\n const key = `${diagnostic.code}:${diagnostic.candidate}:${program.property}`;\n if (reported.has(key)) continue;\n reported.add(key);\n const span = payloadSpan(input, payload);\n results.push({ ...diagnostic, index: span.start, ...span });\n }\n }\n if (base !== null) {\n pushShapeDiagnostic(results, reported, input, program.property, base, true);\n }\n for (const clause of clauses) {\n pushShapeDiagnostic(\n results,\n reported,\n input,\n program.property,\n clause.payload,\n base !== null\n );\n }\n }\n return results;\n}\nfunction diagnoseStyleValueProgramSlot(property, payload, options) {\n const slotDiagnostics = diagnoseStyleValue(property, payload, options);\n return slotDiagnostics.filter(\n (diagnostic) => diagnostic.code === \"candidate-property-mismatch\"\n );\n}\nfunction pushShapeDiagnostic(results, reported, input, property, payload, hasBase) {\n const diagnostic = validatePayloadShape(property, payload, hasBase);\n if (!diagnostic) return;\n const key = `${diagnostic.code}:${diagnostic.payload}:${property}`;\n if (reported.has(key)) return;\n reported.add(key);\n const span = payloadSpan(input, payload);\n results.push({\n code: diagnostic.code,\n index: span.start,\n ...span,\n property,\n message: diagnostic.message\n });\n}\nfunction completeStyleValue(property, options) {\n const candidates = options.candidates || createCandidatePropertyVocabulary(options.config);\n const targetProperty = options.config.shorthands?.[property] || property;\n if (!grammarProperties.has(targetProperty)) return [];\n const byValue = /* @__PURE__ */ new Map();\n for (const [value, contributions] of candidates) {\n if (resolveCandidateTarget(targetProperty, value, contributions).ok) {\n byValue.set(value, \"configured\");\n }\n }\n const standalone = standaloneValueProps[targetProperty];\n if (standalone) {\n for (const value in standalone) {\n if (!byValue.has(value)) byValue.set(value, \"keyword\");\n }\n }\n if (targetProperty === \"fontWeight\") {\n for (const value in fontWeightNames) {\n if (!byValue.has(value)) byValue.set(value, \"keyword\");\n }\n }\n const completions = [];\n for (const [value, kind] of byValue) {\n if (diagnoseStyleValue(property, value, {\n ...options,\n candidates\n }).length === 0) {\n completions.push({ value, kind });\n }\n }\n completions.sort((a, b) => a.value < b.value ? -1 : a.value > b.value ? 1 : 0);\n return completions;\n}\nfunction completeStyleValueAtCursor(property, input, cursor, options) {\n if (cursor < 0 || cursor > input.length) return null;\n const parsed = parseValueWithSourceSpans(input, options.registry);\n const active = parsed.spans.find(\n (span) => cursor >= span.start && cursor <= span.end && span.kind === \"modifier\"\n ) ?? parsed.spans.find(\n (span) => cursor >= span.start && cursor <= span.end && span.kind === \"word\" && span.start > 0 && parsed.result.ok && parsed.spans.some(\n (segment) => (segment.kind === \"base\" || segment.kind === \"payload\") && segment.start < span.start && segment.end >= span.end\n )\n ) ?? parsed.spans.find(\n (span) => cursor >= span.start && cursor <= span.end && span.kind !== \"modifier\" && span.kind !== \"word\"\n );\n if (active?.kind === \"modifier\" || active?.kind === \"word\") {\n if (!parsed.result.ok && parsed.result.errors.some(\n (error) => error.code !== \"unregistered-modifier\" && error.code !== \"empty-modifier\" && error.code !== \"empty-payload\"\n )) {\n return null;\n }\n return {\n replaceStart: active.start,\n replaceLength: active.end - active.start,\n completions: completeModifiers(\n options,\n input.charCodeAt(active.end) !== 58,\n active.kind === \"modifier\" ? modifierChainBefore(input, parsed.spans, active.start) : []\n )\n };\n }\n if (active) {\n if (!parsed.result.ok && parsed.result.errors.some((error) => error.code !== \"empty-payload\")) {\n return null;\n }\n return {\n replaceStart: active.start,\n replaceLength: active.end - active.start,\n // the first payload word is also where another modifier in the chain\n // begins, so both vocabularies remain available until the author picks.\n completions: active.kind === \"payload\" && input.charCodeAt(active.start - 1) === 58 ? [\n ...completeModifiers(\n options,\n true,\n modifierChainBefore(input, parsed.spans, active.start)\n ),\n ...completeStyleValue(property, options)\n ] : completeStyleValue(property, options)\n };\n }\n if (parsed.result.ok && cursor === input.length) {\n return {\n replaceStart: cursor,\n replaceLength: 0,\n completions: completeModifiers(options, true, [])\n };\n }\n return null;\n}\nfunction completeModifiers(options, appendColon, modifiers) {\n const names = options.registry.next?.(modifiers);\n if (!names) return [];\n const completions = [];\n for (const name of names) {\n completions.push({\n value: name,\n kind: \"modifier\",\n insertText: appendColon ? `${name}:` : name\n });\n }\n completions.sort((a, b) => a.value < b.value ? -1 : a.value > b.value ? 1 : 0);\n return completions;\n}\nexport {\n canonicalizeStyleValue,\n completeStyleValue,\n completeStyleValueAtCursor,\n createCandidatePropertyVocabulary,\n createGrammarConfigViewFromSerializedConfig,\n createStylePropSet,\n diagnoseStyleValue,\n diagnoseStyleValueProgram,\n modifierChainBefore,\n referenceKindFor\n};\n//# sourceMappingURL=toolingDiagnostics.js.map\n"],"mappings":";;;;;;;;;;;;AAqBA,SAAS,uBAAuB,OAAO,UAAU;CAC/C,MAAM,SAAS,WAAW,OAAO,QAAQ;CACzC,IAAI,CAAC,OAAO,IAAI,OAAO;CACvB,OAAO;EACL,IAAI;EACJ,OAAO,kBAAkB,OAAO,KAAK;EACrC,QAAQ,OAAO;CACjB;AACF;AACA,SAAS,YAAY,OAAO,OAAO;CACjC,IAAI,CAAC,OAAO;CACZ,IAAI,MAAM,QAAQ,KAAK,GAAG;EACxB,KAAK,MAAM,QAAQ,OAAO,MAAM,IAAI;EACpC;CACF;CACA,IAAI,iBAAiB,KAAK;EACxB,KAAK,MAAM,QAAQ,OAAO,MAAM,IAAI;EACpC;CACF;CACA,KAAK,MAAM,QAAQ,OAAO,MAAM,IAAI;AACtC;AACA,SAAS,kCAAkC,QAAQ;CACjD,MAAM,yBAAyB,IAAI,IAAI;CACvC,MAAM,oCAAoC,IAAI,IAAI;CAClD,KAAK,MAAM,SAAS,gBAAgB;EAClC,IAAI,CAAC,MAAM,eAAe;EAC1B,MAAM,gBAAgB,kBAAkB,IAAI,MAAM,aAAa,KAAK,CAAC;EACrE,cAAc,KAAK;GAAE,UAAU,MAAM;GAAM,eAAe,MAAM;EAAc,CAAC;EAC/E,kBAAkB,IAAI,MAAM,eAAe,aAAa;CAC1D;CACA,KAAK,MAAM,CAAC,UAAU,kBAAkB,mBAAmB;EACzD,YAAY,OAAO,aAAa,YAAY,SAAS;GACnD,MAAM,WAAW,OAAO,IAAI,IAAI,KAAK,CAAC;GACtC,KAAK,MAAM,gBAAgB,eAAe;IACxC,IAAI,CAAC,SAAS,MAAM,SAAS,KAAK,aAAa,aAAa,QAAQ,GAAG;KACrE,SAAS,KAAK,YAAY;IAC5B;GACF;GACA,OAAO,IAAI,MAAM,QAAQ;EAC3B,CAAC;CACH;CACA,OAAO;AACT;AACA,SAAS,4CAA4C,QAAQ,UAAU;CACrE,MAAM,cAAc,OAAO,aAAa,YAAY,aAAa,QAAQ,SAAS,gBAAgB;CAClG,IAAI,aAAa,KAAK,KAAK,CAAC,aAAa;EACvC,MAAM,IAAI,MACR,0EACF;CACF;CACA,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,aAAa,OAAO,QAAQ;EACrC,MAAM,kBAAkB,OAAO,OAAO;EACtC,IAAI,CAAC,mBAAmB,OAAO,oBAAoB,UAAU;EAC7D,MAAM,eAAe,CAAC;EACtB,KAAK,MAAM,OAAO,iBAAiB;GACjC,IAAI,eAAe,QAAQ,MAAM;IAC/B,aAAa,OAAO,gBAAgB;GACtC;EACF;EACA,OAAO,aAAa;CACtB;CACA,OAAO,wBAAwB;EAC7B,YAAY,OAAO;EACnB,OAAO,OAAO;EACd;EACA,cAAc,OAAO;EACrB,aAAa,OAAO;CACtB,CAAC;AACH;AACA,MAAM,oBAAoB,IAAI,IAAI,mBAAmB;AACrD,MAAM,oBAAoB,IAAI,IAC5B,eAAe,KAAK,UAAU,MAAM,IAAI,CAC1C;AACA,MAAM,wBAAwB;CAC5B,OAAO;CACP,OAAO;CACP,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,YAAY;CACZ,UAAU;CACV,YAAY;CACZ,YAAY;CACZ,eAAe;AACjB;AACA,SAAS,iBAAiB,eAAe,gBAAgB;CACvD,IAAI;CACJ,KAAK,MAAM,gBAAgB,eAAe;EACxC,MAAM,OAAO,aAAa,gBAAgB,sBAAsB,aAAa,iBAAiB;EAC9F,IAAI,aAAa,aAAa,gBAAgB,OAAO;EACrD,IAAI,aAAa,SAAS,WAAW;CACvC;CACA,OAAO,YAAY;AACrB;AACA,SAAS,eAAe,OAAO,OAAO;CACpC,MAAM,SAAS,MAAM;CACrB,IAAI,MAAM,SAAS,2BAA2B,MAAM,UAAU;EAC5D,OAAO;GAAE,OAAO,MAAM;GAAO,KAAK,MAAM,QAAQ,MAAM,SAAS;EAAO;CACxE;CACA,IAAI,MAAM,SAAS,yBAAyB,MAAM,SAAS,2BAA2B,MAAM,SAAS,wBAAwB;EAC3H,OAAO;GAAE,OAAO,KAAK,IAAI,GAAG,KAAK,IAAI,MAAM,OAAO,SAAS,CAAC,CAAC;GAAG,KAAK;EAAO;CAC9E;CACA,MAAM,QAAQ,KAAK,IAAI,GAAG,KAAK,IAAI,MAAM,OAAO,SAAS,CAAC,CAAC;CAC3D,MAAM,QAAQ,MAAM,SAAS,wBAAwB,IAAI;CACzD,OAAO;EAAE;EAAO,KAAK,KAAK,IAAI,QAAQ,QAAQ,KAAK;CAAE;AACvD;AACA,SAAS,uBAAuB,SAAS,KAAK;CAC5C,IAAI,QAAQ,WAAW,GAAG,MAAM,IAAI,OAAO;CAC3C,IAAI,SAAS,MAAM;CACnB,OAAO,SAAS,QAAQ,QAAQ;EAC9B,MAAM,OAAO,QAAQ,WAAW,MAAM;EACtC,IAAI,SAAS,MAAM,SAAS,KAAK,SAAS,MAAM,SAAS,MAAM,SAAS,IAAI;EAC5E,IAAI,SAAS,MAAM,SAAS,MAAM,SAAS,IAAI;EAC/C;CACF;CACA,OAAO;AACT;AACA,SAAS,mBAAmB,UAAU,OAAO,SAAS;CACpD,MAAM,EAAE,QAAQ,UAAU,0BAA0B,OAAO,QAAQ,QAAQ;CAC3E,IAAI,CAAC,OAAO,IAAI;EACd,OAAO,OAAO,OAAO,KAAK,UAAU;GAClC,MAAM,OAAO,eAAe,OAAO,KAAK;GACxC,OAAO;IACL,MAAM,MAAM;IACZ,OAAO,KAAK;IACZ,GAAG;IACH,SAAS,MAAM;GACjB;EACF,CAAC;CACH;CACA,MAAM,iBAAiB,QAAQ,OAAO,aAAa,aAAa;CAChE,MAAM,gBAAgB,kBAAkB,IAAI,cAAc;CAC1D,MAAM,aAAa,QAAQ,cAAc,kCAAkC,QAAQ,MAAM;CACzF,MAAM,cAAc,CAAC;CACrB,MAAM,4BAA4B,IAAI,IAAI;CAC1C,MAAM,QAAQ,KAAK,eAAe;EAChC,IAAI,UAAU,IAAI,GAAG,GAAG;EACxB,UAAU,IAAI,GAAG;EACjB,YAAY,KAAK;GAAE,OAAO,WAAW;GAAO,GAAG;EAAW,CAAC;CAC7D;CACA,MAAM,mBAAmB,SAAS,WAAW;EAC3C,MAAM,YAAY,CAAC;EACnB,MAAM,WAAW,eAAe,SAAS;GACvC,OAAO,MAAM;IACX,MAAM,iBAAiB,WAAW,IAAI,IAAI;IAC1C,IAAI,CAAC,gBAAgB,OAAO,KAAK;IACjC,OAAO;KAAE;KAAM,MAAM,iBAAiB,gBAAgB,cAAc;IAAE;GACxE;GACA,YAAY,OAAO,KAAK,MAAM,WAAW;IACvC,UAAU,KAAK;KAAE;KAAO;KAAK;KAAM,UAAU;IAAU,CAAC;IACxD,IAAI,WAAW;IACf,MAAM,cAAc,wBAAwB;IAC5C,IAAI,aAAa;KACf,KAAK,0BAA0B,QAAQ;MACrC,MAAM;MACN,OAAO,SAAS;MAChB,KAAK,SAAS;MACd,WAAW;MACX;MACA,SAAS,IAAI,KAAK,oCAAoC,YAAY;KACpE,CAAC;IACH,OAAO,IAAI,kBAAkB,IAAI,IAAI,GAAG;KACtC,KAAK,yBAAyB,QAAQ;MACpC,MAAM;MACN,OAAO,SAAS;MAChB,KAAK,SAAS;MACd,WAAW;MACX,SAAS,IAAI,KAAK;KACpB,CAAC;IACH;GACF;EACF,CAAC;EACD,IAAI,eAAe;GACjB,KAAK,MAAM,SAAS,SAAS,QAAQ;IACnC,MAAM,YAAY,UAAU,MAAM,UAAU,MAAM,UAAU,MAAM,KAAK;IACvE,IAAI,CAAC,WAAW,UAAU;IAC1B,KAAK,GAAG,MAAM,KAAK,GAAG,MAAM,KAAK,GAAG,MAAM,WAAW;KACnD,MAAM,MAAM;KACZ,OAAO,SAAS,MAAM;KACtB,KAAK,SAAS,uBAAuB,SAAS,UAAU,GAAG;KAC3D,WAAW,MAAM;KACjB,SAAS,MAAM;IACjB,CAAC;GACH;EACF;EACA,MAAM,YAAY,SAAS,SAAS,WAAW,KAAK,OAAO,SAAS,SAAS,OAAO,WAAW,SAAS,SAAS,GAAG,OAAO;EAC3H,IAAI,cAAc,QAAQ,CAAC,eAAe;EAC1C,MAAM,gBAAgB,WAAW,IAAI,SAAS;EAC9C,IAAI,CAAC,eAAe;EACpB,MAAM,SAAS,uBAAuB,gBAAgB,WAAW,aAAa;EAC9E,IAAI,OAAO,IAAI;EACf,MAAM,WAAW,UAAU,MAAM,UAAU,MAAM,SAAS,aAAa,MAAM,QAAQ;EACrF,KAAK,GAAG,OAAO,WAAW,KAAK,GAAG,UAAU,GAAG,kBAAkB;GAC/D,GAAG,OAAO;GACV,OAAO,UAAU,UAAU,SAAS;GACpC,KAAK,UAAU,UAAU,OAAO,QAAQ;EAC1C,CAAC;CACH;CACA,KAAK,MAAM,QAAQ,OAAO;EACxB,IAAI,KAAK,SAAS,UAAU,KAAK,SAAS,WAAW;EACrD,IAAI,KAAK,SAAS,KAAK,KAAK;EAC5B,gBAAgB,MAAM,MAAM,KAAK,OAAO,KAAK,GAAG,GAAG,KAAK,KAAK;CAC/D;CACA,OAAO;AACT;AACA,SAAS,oBAAoB,OAAO,OAAO,OAAO;CAChD,MAAM,wBAAwB,IAAI,IAAI;CACtC,KAAK,MAAM,QAAQ,OAAO;EACxB,IAAI,KAAK,SAAS,YAAY,MAAM,IAAI,KAAK,KAAK,IAAI;CACxD;CACA,MAAM,WAAW,CAAC;CAClB,IAAI,QAAQ,QAAQ;CACpB,OAAO,SAAS,KAAK,MAAM,WAAW,KAAK,MAAM,IAAI;EACnD,MAAM,OAAO,MAAM,IAAI,KAAK;EAC5B,IAAI,CAAC,MAAM;EACX,SAAS,KAAK,MAAM,MAAM,KAAK,OAAO,KAAK,GAAG,CAAC;EAC/C,QAAQ,KAAK,QAAQ;CACvB;CACA,SAAS,QAAQ;CACjB,OAAO;AACT;AACA,SAAS,mBAAmB,QAAQ;CAClC,MAAM,6BAA6B,IAAI,IAAI,CACzC,GAAG,eAAe,KAAK,UAAU,MAAM,IAAI,GAC3C,GAAG,OAAO,KAAK,mBAAmB,CACpC,CAAC;CACD,KAAK,MAAM,aAAa,OAAO,YAAY;EACzC,WAAW,IAAI,SAAS;EACxB,WAAW,IAAI,OAAO,WAAW,UAAU;CAC7C;CACA,OAAO;AACT;AACA,SAAS,YAAY,OAAO,SAAS;CACnC,MAAM,KAAK,MAAM,QAAQ,OAAO;CAChC,OAAO,OAAO,CAAC,IAAI;EAAE,OAAO;EAAG,KAAK,MAAM;CAAO,IAAI;EAAE,OAAO;EAAI,KAAK,KAAK,QAAQ;CAAO;AAC7F;AACA,SAAS,0BAA0B,UAAU,OAAO,SAAS;CAC3D,MAAM,aAAa,QAAQ,cAAc,kCAAkC,QAAQ,MAAM;CACzF,MAAM,SAAS;EAAE,GAAG;EAAS;CAAW;CACxC,MAAM,cAAc,mBAAmB,UAAU,OAAO,MAAM;CAC9D,IAAI,YAAY,SAAS,GAAG,OAAO;CACnC,MAAM,SAAS,WAAW,OAAO,QAAQ,QAAQ;CACjD,IAAI,CAAC,OAAO,IAAI,OAAO;CACvB,MAAM,iBAAiB,QAAQ,OAAO,aAAa,aAAa;CAChE,IAAI,OAAO,MAAM,QAAQ,SAAS,KAAK,mBAAmB,cAAc,MAAM,eAAe;EAC3F,OAAO,CACL;GACE,MAAM;GACN,OAAO;GACP,OAAO;GACP,KAAK,MAAM;GACX,UAAU;GACV,SAAS,sDAAsD,eAAe,+BAA+B,oBAAoB,gBAAgB;EACnJ,CACF;CACF;CACA,MAAM,UAAU,CAAC;CACjB,MAAM,2BAA2B,IAAI,IAAI;CACzC,MAAM,YAAY,6BAA6B,gBAAgB,OAAO,KAAK;CAC3E,MAAM,WAAW,aAAa,UAAU,OAAO,WAAW,IAAI,UAAU,UAAU,CAAC;EAAE,UAAU;EAAgB,OAAO,OAAO;CAAM,CAAC;CACpI,KAAK,MAAM,WAAW,UAAU;EAC9B,MAAM,EAAE,MAAM,YAAY,QAAQ;EAClC,MAAM,WAAW,CACf,GAAG,SAAS,OAAO,CAAC,IAAI,CAAC,IAAI,GAC7B,GAAG,QAAQ,KAAK,WAAW,OAAO,OAAO,CAC3C;EACA,KAAK,MAAM,WAAW,UAAU;GAC9B,KAAK,MAAM,cAAc,8BACvB,QAAQ,UACR,SACA,MACF,GAAG;IACD,MAAM,MAAM,GAAG,WAAW,KAAK,GAAG,WAAW,UAAU,GAAG,QAAQ;IAClE,IAAI,SAAS,IAAI,GAAG,GAAG;IACvB,SAAS,IAAI,GAAG;IAChB,MAAM,OAAO,YAAY,OAAO,OAAO;IACvC,QAAQ,KAAK;KAAE,GAAG;KAAY,OAAO,KAAK;KAAO,GAAG;IAAK,CAAC;GAC5D;EACF;EACA,IAAI,SAAS,MAAM;GACjB,oBAAoB,SAAS,UAAU,OAAO,QAAQ,UAAU,MAAM,IAAI;EAC5E;EACA,KAAK,MAAM,UAAU,SAAS;GAC5B,oBACE,SACA,UACA,OACA,QAAQ,UACR,OAAO,SACP,SAAS,IACX;EACF;CACF;CACA,OAAO;AACT;AACA,SAAS,8BAA8B,UAAU,SAAS,SAAS;CACjE,MAAM,kBAAkB,mBAAmB,UAAU,SAAS,OAAO;CACrE,OAAO,gBAAgB,QACpB,eAAe,WAAW,SAAS,6BACtC;AACF;AACA,SAAS,oBAAoB,SAAS,UAAU,OAAO,UAAU,SAAS,SAAS;CACjF,MAAM,aAAa,qBAAqB,UAAU,SAAS,OAAO;CAClE,IAAI,CAAC,YAAY;CACjB,MAAM,MAAM,GAAG,WAAW,KAAK,GAAG,WAAW,QAAQ,GAAG;CACxD,IAAI,SAAS,IAAI,GAAG,GAAG;CACvB,SAAS,IAAI,GAAG;CAChB,MAAM,OAAO,YAAY,OAAO,OAAO;CACvC,QAAQ,KAAK;EACX,MAAM,WAAW;EACjB,OAAO,KAAK;EACZ,GAAG;EACH;EACA,SAAS,WAAW;CACtB,CAAC;AACH;AACA,SAAS,mBAAmB,UAAU,SAAS;CAC7C,MAAM,aAAa,QAAQ,cAAc,kCAAkC,QAAQ,MAAM;CACzF,MAAM,iBAAiB,QAAQ,OAAO,aAAa,aAAa;CAChE,IAAI,CAAC,kBAAkB,IAAI,cAAc,GAAG,OAAO,CAAC;CACpD,MAAM,0BAA0B,IAAI,IAAI;CACxC,KAAK,MAAM,CAAC,OAAO,kBAAkB,YAAY;EAC/C,IAAI,uBAAuB,gBAAgB,OAAO,aAAa,EAAE,IAAI;GACnE,QAAQ,IAAI,OAAO,YAAY;EACjC;CACF;CACA,MAAM,aAAa,qBAAqB;CACxC,IAAI,YAAY;EACd,KAAK,MAAM,SAAS,YAAY;GAC9B,IAAI,CAAC,QAAQ,IAAI,KAAK,GAAG,QAAQ,IAAI,OAAO,SAAS;EACvD;CACF;CACA,IAAI,mBAAmB,cAAc;EACnC,KAAK,MAAM,SAAS,iBAAiB;GACnC,IAAI,CAAC,QAAQ,IAAI,KAAK,GAAG,QAAQ,IAAI,OAAO,SAAS;EACvD;CACF;CACA,MAAM,cAAc,CAAC;CACrB,KAAK,MAAM,CAAC,OAAO,SAAS,SAAS;EACnC,IAAI,mBAAmB,UAAU,OAAO;GACtC,GAAG;GACH;EACF,CAAC,EAAE,WAAW,GAAG;GACf,YAAY,KAAK;IAAE;IAAO;GAAK,CAAC;EAClC;CACF;CACA,YAAY,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,IAAI,CAAC;CAC7E,OAAO;AACT;AACA,SAAS,2BAA2B,UAAU,OAAO,QAAQ,SAAS;CACpE,IAAI,SAAS,KAAK,SAAS,MAAM,QAAQ,OAAO;CAChD,MAAM,SAAS,0BAA0B,OAAO,QAAQ,QAAQ;CAChE,MAAM,SAAS,OAAO,MAAM,MACzB,SAAS,UAAU,KAAK,SAAS,UAAU,KAAK,OAAO,KAAK,SAAS,UACxE,KAAK,OAAO,MAAM,MACf,SAAS,UAAU,KAAK,SAAS,UAAU,KAAK,OAAO,KAAK,SAAS,UAAU,KAAK,QAAQ,KAAK,OAAO,OAAO,MAAM,OAAO,MAAM,MAChI,aAAa,QAAQ,SAAS,UAAU,QAAQ,SAAS,cAAc,QAAQ,QAAQ,KAAK,SAAS,QAAQ,OAAO,KAAK,GAC5H,CACF,KAAK,OAAO,MAAM,MACf,SAAS,UAAU,KAAK,SAAS,UAAU,KAAK,OAAO,KAAK,SAAS,cAAc,KAAK,SAAS,MACpG;CACA,IAAI,QAAQ,SAAS,cAAc,QAAQ,SAAS,QAAQ;EAC1D,IAAI,CAAC,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAC3C,UAAU,MAAM,SAAS,2BAA2B,MAAM,SAAS,oBAAoB,MAAM,SAAS,eACzG,GAAG;GACD,OAAO;EACT;EACA,OAAO;GACL,cAAc,OAAO;GACrB,eAAe,OAAO,MAAM,OAAO;GACnC,aAAa,kBACX,SACA,MAAM,WAAW,OAAO,GAAG,MAAM,IACjC,OAAO,SAAS,aAAa,oBAAoB,OAAO,OAAO,OAAO,OAAO,KAAK,IAAI,CAAC,CACzF;EACF;CACF;CACA,IAAI,QAAQ;EACV,IAAI,CAAC,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,MAAM,UAAU,MAAM,SAAS,eAAe,GAAG;GAC7F,OAAO;EACT;EACA,OAAO;GACL,cAAc,OAAO;GACrB,eAAe,OAAO,MAAM,OAAO;GAGnC,aAAa,OAAO,SAAS,aAAa,MAAM,WAAW,OAAO,QAAQ,CAAC,MAAM,KAAK,CACpF,GAAG,kBACD,SACA,MACA,oBAAoB,OAAO,OAAO,OAAO,OAAO,KAAK,CACvD,GACA,GAAG,mBAAmB,UAAU,OAAO,CACzC,IAAI,mBAAmB,UAAU,OAAO;EAC1C;CACF;CACA,IAAI,OAAO,OAAO,MAAM,WAAW,MAAM,QAAQ;EAC/C,OAAO;GACL,cAAc;GACd,eAAe;GACf,aAAa,kBAAkB,SAAS,MAAM,CAAC,CAAC;EAClD;CACF;CACA,OAAO;AACT;AACA,SAAS,kBAAkB,SAAS,aAAa,WAAW;CAC1D,MAAM,QAAQ,QAAQ,SAAS,OAAO,SAAS;CAC/C,IAAI,CAAC,OAAO,OAAO,CAAC;CACpB,MAAM,cAAc,CAAC;CACrB,KAAK,MAAM,QAAQ,OAAO;EACxB,YAAY,KAAK;GACf,OAAO;GACP,MAAM;GACN,YAAY,cAAc,GAAG,KAAK,KAAK;EACzC,CAAC;CACH;CACA,YAAY,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,IAAI,CAAC;CAC7E,OAAO;AACT"}