@velarscript/web 0.31.0 → 0.32.0

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 (385) hide show
  1. package/README.md +1 -1
  2. package/dist/analysis/calls/intrinsics/config.d.ts +10 -0
  3. package/dist/analysis/calls/intrinsics/config.d.ts.map +1 -0
  4. package/dist/analysis/calls/intrinsics/config.js +19 -0
  5. package/dist/analysis/calls/intrinsics/config.js.map +1 -0
  6. package/dist/analysis/calls/intrinsics/forms.d.ts +10 -0
  7. package/dist/analysis/calls/intrinsics/forms.d.ts.map +1 -0
  8. package/dist/analysis/calls/intrinsics/forms.js +38 -0
  9. package/dist/analysis/calls/intrinsics/forms.js.map +1 -0
  10. package/dist/analysis/calls/intrinsics/http.d.ts +10 -0
  11. package/dist/analysis/calls/intrinsics/http.d.ts.map +1 -0
  12. package/dist/analysis/calls/intrinsics/http.js +37 -0
  13. package/dist/analysis/calls/intrinsics/http.js.map +1 -0
  14. package/dist/analysis/calls/intrinsics/reactive.d.ts +10 -0
  15. package/dist/analysis/calls/intrinsics/reactive.d.ts.map +1 -0
  16. package/dist/analysis/calls/intrinsics/reactive.js +30 -0
  17. package/dist/analysis/calls/intrinsics/reactive.js.map +1 -0
  18. package/dist/analysis/calls/intrinsics/storage.d.ts +12 -0
  19. package/dist/analysis/calls/intrinsics/storage.d.ts.map +1 -0
  20. package/dist/analysis/calls/intrinsics/storage.js +86 -0
  21. package/dist/analysis/calls/intrinsics/storage.js.map +1 -0
  22. package/dist/analysis/calls/intrinsics/web.d.ts +10 -0
  23. package/dist/analysis/calls/intrinsics/web.d.ts.map +1 -0
  24. package/dist/analysis/calls/intrinsics/web.js +100 -0
  25. package/dist/analysis/calls/intrinsics/web.js.map +1 -0
  26. package/dist/analysis/calls/intrinsics.d.ts +13 -0
  27. package/dist/analysis/calls/intrinsics.d.ts.map +1 -0
  28. package/dist/analysis/calls/intrinsics.js +31 -0
  29. package/dist/analysis/calls/intrinsics.js.map +1 -0
  30. package/dist/analysis/components/contracts.d.ts +19 -0
  31. package/dist/analysis/components/contracts.d.ts.map +1 -0
  32. package/dist/analysis/components/contracts.js +83 -0
  33. package/dist/analysis/components/contracts.js.map +1 -0
  34. package/dist/analysis/components/declaration.d.ts +4 -0
  35. package/dist/analysis/components/declaration.d.ts.map +1 -0
  36. package/dist/analysis/components/declaration.js +163 -0
  37. package/dist/analysis/components/declaration.js.map +1 -0
  38. package/dist/analysis/components/host.d.ts +61 -0
  39. package/dist/analysis/components/host.d.ts.map +1 -0
  40. package/dist/analysis/components/host.js +22 -0
  41. package/dist/analysis/components/host.js.map +1 -0
  42. package/dist/analysis/components/lifecycle.d.ts +22 -0
  43. package/dist/analysis/components/lifecycle.d.ts.map +1 -0
  44. package/dist/analysis/components/lifecycle.js +33 -0
  45. package/dist/analysis/components/lifecycle.js.map +1 -0
  46. package/dist/analysis/components/ownership.d.ts +74 -0
  47. package/dist/analysis/components/ownership.d.ts.map +1 -0
  48. package/dist/analysis/components/ownership.js +106 -0
  49. package/dist/analysis/components/ownership.js.map +1 -0
  50. package/dist/analysis/declarations.d.ts +99 -0
  51. package/dist/analysis/declarations.d.ts.map +1 -0
  52. package/dist/analysis/declarations.js +176 -0
  53. package/dist/analysis/declarations.js.map +1 -0
  54. package/dist/analysis/inference.d.ts +67 -0
  55. package/dist/analysis/inference.d.ts.map +1 -0
  56. package/dist/analysis/inference.js +236 -0
  57. package/dist/analysis/inference.js.map +1 -0
  58. package/dist/analysis/jsx/attributes.d.ts +103 -0
  59. package/dist/analysis/jsx/attributes.d.ts.map +1 -0
  60. package/dist/analysis/jsx/attributes.js +601 -0
  61. package/dist/analysis/jsx/attributes.js.map +1 -0
  62. package/dist/analysis/jsx/elements.d.ts +17 -0
  63. package/dist/analysis/jsx/elements.d.ts.map +1 -0
  64. package/dist/analysis/jsx/elements.js +213 -0
  65. package/dist/analysis/jsx/elements.js.map +1 -0
  66. package/dist/analysis/jsx/host.d.ts +61 -0
  67. package/dist/analysis/jsx/host.d.ts.map +1 -0
  68. package/dist/analysis/jsx/host.js +15 -0
  69. package/dist/analysis/jsx/host.js.map +1 -0
  70. package/dist/analysis/jsx/keys.d.ts +15 -0
  71. package/dist/analysis/jsx/keys.d.ts.map +1 -0
  72. package/dist/analysis/jsx/keys.js +67 -0
  73. package/dist/analysis/jsx/keys.js.map +1 -0
  74. package/dist/analysis/jsx/security.d.ts +29 -0
  75. package/dist/analysis/jsx/security.d.ts.map +1 -0
  76. package/dist/analysis/jsx/security.js +61 -0
  77. package/dist/analysis/jsx/security.js.map +1 -0
  78. package/dist/analysis/jsx-detection.d.ts +49 -0
  79. package/dist/analysis/jsx-detection.d.ts.map +1 -0
  80. package/dist/analysis/jsx-detection.js +196 -0
  81. package/dist/analysis/jsx-detection.js.map +1 -0
  82. package/dist/analysis/keyed-rebuild.d.ts +148 -0
  83. package/dist/analysis/keyed-rebuild.d.ts.map +1 -0
  84. package/dist/analysis/keyed-rebuild.js +299 -0
  85. package/dist/analysis/keyed-rebuild.js.map +1 -0
  86. package/dist/analysis/keyframes-analysis.d.ts +6 -0
  87. package/dist/analysis/keyframes-analysis.d.ts.map +1 -0
  88. package/dist/analysis/keyframes-analysis.js +79 -0
  89. package/dist/analysis/keyframes-analysis.js.map +1 -0
  90. package/dist/analysis/look/builders.d.ts +29 -0
  91. package/dist/analysis/look/builders.d.ts.map +1 -0
  92. package/dist/analysis/look/builders.js +168 -0
  93. package/dist/analysis/look/builders.js.map +1 -0
  94. package/dist/analysis/look/conditions.d.ts +13 -0
  95. package/dist/analysis/look/conditions.d.ts.map +1 -0
  96. package/dist/analysis/look/conditions.js +84 -0
  97. package/dist/analysis/look/conditions.js.map +1 -0
  98. package/dist/analysis/look/edits.d.ts +25 -0
  99. package/dist/analysis/look/edits.d.ts.map +1 -0
  100. package/dist/analysis/look/edits.js +57 -0
  101. package/dist/analysis/look/edits.js.map +1 -0
  102. package/dist/analysis/look/entries.d.ts +56 -0
  103. package/dist/analysis/look/entries.d.ts.map +1 -0
  104. package/dist/analysis/look/entries.js +223 -0
  105. package/dist/analysis/look/entries.js.map +1 -0
  106. package/dist/analysis/look/host.d.ts +47 -0
  107. package/dist/analysis/look/host.d.ts.map +1 -0
  108. package/dist/analysis/look/host.js +16 -0
  109. package/dist/analysis/look/host.js.map +1 -0
  110. package/dist/analysis/look/tokens.d.ts +75 -0
  111. package/dist/analysis/look/tokens.d.ts.map +1 -0
  112. package/dist/analysis/look/tokens.js +151 -0
  113. package/dist/analysis/look/tokens.js.map +1 -0
  114. package/dist/analysis/look/values.d.ts +45 -0
  115. package/dist/analysis/look/values.d.ts.map +1 -0
  116. package/dist/analysis/look/values.js +148 -0
  117. package/dist/analysis/look/values.js.map +1 -0
  118. package/dist/analysis/look-conditions.d.ts +47 -0
  119. package/dist/analysis/look-conditions.d.ts.map +1 -0
  120. package/dist/analysis/look-conditions.js +157 -0
  121. package/dist/analysis/look-conditions.js.map +1 -0
  122. package/dist/analysis/look-sites.d.ts +54 -0
  123. package/dist/analysis/look-sites.d.ts.map +1 -0
  124. package/dist/analysis/look-sites.js +104 -0
  125. package/dist/analysis/look-sites.js.map +1 -0
  126. package/dist/analysis/look-vocabulary-guidance.d.ts +76 -0
  127. package/dist/analysis/look-vocabulary-guidance.d.ts.map +1 -0
  128. package/dist/analysis/look-vocabulary-guidance.js +338 -0
  129. package/dist/analysis/look-vocabulary-guidance.js.map +1 -0
  130. package/dist/analysis/media-conditions.d.ts +33 -0
  131. package/dist/analysis/media-conditions.d.ts.map +1 -0
  132. package/dist/analysis/media-conditions.js +92 -0
  133. package/dist/analysis/media-conditions.js.map +1 -0
  134. package/dist/analysis/program-passes.d.ts +106 -0
  135. package/dist/analysis/program-passes.d.ts.map +1 -0
  136. package/dist/analysis/program-passes.js +149 -0
  137. package/dist/analysis/program-passes.js.map +1 -0
  138. package/dist/analysis/reactivity/bindings.d.ts +37 -0
  139. package/dist/analysis/reactivity/bindings.d.ts.map +1 -0
  140. package/dist/analysis/reactivity/bindings.js +88 -0
  141. package/dist/analysis/reactivity/bindings.js.map +1 -0
  142. package/dist/analysis/reactivity/derived.d.ts +39 -0
  143. package/dist/analysis/reactivity/derived.d.ts.map +1 -0
  144. package/dist/analysis/reactivity/derived.js +80 -0
  145. package/dist/analysis/reactivity/derived.js.map +1 -0
  146. package/dist/analysis/reactivity/host.d.ts +38 -0
  147. package/dist/analysis/reactivity/host.d.ts.map +1 -0
  148. package/dist/analysis/reactivity/host.js +14 -0
  149. package/dist/analysis/reactivity/host.js.map +1 -0
  150. package/dist/analysis/reactivity/retired-accessors.d.ts +82 -0
  151. package/dist/analysis/reactivity/retired-accessors.d.ts.map +1 -0
  152. package/dist/analysis/reactivity/retired-accessors.js +118 -0
  153. package/dist/analysis/reactivity/retired-accessors.js.map +1 -0
  154. package/dist/analysis/renderable.d.ts +47 -0
  155. package/dist/analysis/renderable.d.ts.map +1 -0
  156. package/dist/analysis/renderable.js +105 -0
  157. package/dist/analysis/renderable.js.map +1 -0
  158. package/dist/analysis/routes.d.ts +64 -0
  159. package/dist/analysis/routes.d.ts.map +1 -0
  160. package/dist/analysis/routes.js +182 -0
  161. package/dist/analysis/routes.js.map +1 -0
  162. package/dist/analysis/url-attributes.d.ts +12 -0
  163. package/dist/analysis/url-attributes.d.ts.map +1 -0
  164. package/dist/analysis/url-attributes.js +48 -0
  165. package/dist/analysis/url-attributes.js.map +1 -0
  166. package/dist/analysis/watch-cycles.d.ts +102 -0
  167. package/dist/analysis/watch-cycles.d.ts.map +1 -1
  168. package/dist/analysis/watch-cycles.js +240 -1
  169. package/dist/analysis/watch-cycles.js.map +1 -1
  170. package/dist/analysis/watch-subject.d.ts +45 -0
  171. package/dist/analysis/watch-subject.d.ts.map +1 -0
  172. package/dist/analysis/watch-subject.js +272 -0
  173. package/dist/analysis/watch-subject.js.map +1 -0
  174. package/dist/analysis/web-types.d.ts +27 -0
  175. package/dist/analysis/web-types.d.ts.map +1 -0
  176. package/dist/analysis/web-types.js +170 -0
  177. package/dist/analysis/web-types.js.map +1 -0
  178. package/dist/analyzer.d.ts +18 -617
  179. package/dist/analyzer.d.ts.map +1 -1
  180. package/dist/analyzer.js +208 -4853
  181. package/dist/analyzer.js.map +1 -1
  182. package/dist/compiler.d.ts +20 -0
  183. package/dist/compiler.d.ts.map +1 -1
  184. package/dist/compiler.js +29 -864
  185. package/dist/compiler.js.map +1 -1
  186. package/dist/documentation.d.ts +28 -0
  187. package/dist/documentation.d.ts.map +1 -0
  188. package/dist/documentation.js +67 -0
  189. package/dist/documentation.js.map +1 -0
  190. package/dist/editor/completions.d.ts +12 -0
  191. package/dist/editor/completions.d.ts.map +1 -0
  192. package/dist/editor/completions.js +6 -0
  193. package/dist/editor/completions.js.map +1 -0
  194. package/dist/editor/jsx-completion.d.ts +12 -0
  195. package/dist/editor/jsx-completion.d.ts.map +1 -0
  196. package/dist/editor/jsx-completion.js +137 -0
  197. package/dist/editor/jsx-completion.js.map +1 -0
  198. package/dist/editor/look-completion.d.ts +29 -0
  199. package/dist/editor/look-completion.d.ts.map +1 -0
  200. package/dist/editor/look-completion.js +159 -0
  201. package/dist/editor/look-completion.js.map +1 -0
  202. package/dist/editor.d.ts.map +1 -1
  203. package/dist/editor.js +12 -288
  204. package/dist/editor.js.map +1 -1
  205. package/dist/emit/components.d.ts +33 -0
  206. package/dist/emit/components.d.ts.map +1 -0
  207. package/dist/emit/components.js +135 -0
  208. package/dist/emit/components.js.map +1 -0
  209. package/dist/emit/jsx.d.ts +57 -0
  210. package/dist/emit/jsx.d.ts.map +1 -0
  211. package/dist/emit/jsx.js +384 -0
  212. package/dist/emit/jsx.js.map +1 -0
  213. package/dist/emit/look-css.d.ts +44 -0
  214. package/dist/emit/look-css.d.ts.map +1 -0
  215. package/dist/emit/look-css.js +177 -0
  216. package/dist/emit/look-css.js.map +1 -0
  217. package/dist/emit/look.d.ts +39 -0
  218. package/dist/emit/look.d.ts.map +1 -0
  219. package/dist/emit/look.js +218 -0
  220. package/dist/emit/look.js.map +1 -0
  221. package/dist/emit/runtime-imports.d.ts +40 -0
  222. package/dist/emit/runtime-imports.d.ts.map +1 -0
  223. package/dist/emit/runtime-imports.js +184 -0
  224. package/dist/emit/runtime-imports.js.map +1 -0
  225. package/dist/emitter.d.ts +15 -68
  226. package/dist/emitter.d.ts.map +1 -1
  227. package/dist/emitter.js +79 -1008
  228. package/dist/emitter.js.map +1 -1
  229. package/dist/look/animation.d.ts +7 -0
  230. package/dist/look/animation.d.ts.map +1 -0
  231. package/dist/look/animation.js +13 -0
  232. package/dist/look/animation.js.map +1 -0
  233. package/dist/look/builders.d.ts +35 -0
  234. package/dist/look/builders.d.ts.map +1 -0
  235. package/dist/look/builders.js +74 -0
  236. package/dist/look/builders.js.map +1 -0
  237. package/dist/look/css-functions.d.ts +28 -0
  238. package/dist/look/css-functions.d.ts.map +1 -0
  239. package/dist/look/css-functions.js +54 -0
  240. package/dist/look/css-functions.js.map +1 -0
  241. package/dist/look/keyword-sets.d.ts +41 -0
  242. package/dist/look/keyword-sets.d.ts.map +1 -0
  243. package/dist/look/keyword-sets.js +117 -0
  244. package/dist/look/keyword-sets.js.map +1 -0
  245. package/dist/look/keywords.d.ts +55 -0
  246. package/dist/look/keywords.d.ts.map +1 -0
  247. package/dist/look/keywords.js +387 -0
  248. package/dist/look/keywords.js.map +1 -0
  249. package/dist/look/media.d.ts +19 -0
  250. package/dist/look/media.d.ts.map +1 -0
  251. package/dist/look/media.js +27 -0
  252. package/dist/look/media.js.map +1 -0
  253. package/dist/look/naming.d.ts +9 -0
  254. package/dist/look/naming.d.ts.map +1 -0
  255. package/dist/look/naming.js +45 -0
  256. package/dist/look/naming.js.map +1 -0
  257. package/dist/look/properties.d.ts +16 -0
  258. package/dist/look/properties.d.ts.map +1 -0
  259. package/dist/look/properties.js +52 -0
  260. package/dist/look/properties.js.map +1 -0
  261. package/dist/look/shorthands.d.ts +25 -0
  262. package/dist/look/shorthands.d.ts.map +1 -0
  263. package/dist/look/shorthands.js +130 -0
  264. package/dist/look/shorthands.js.map +1 -0
  265. package/dist/look/tokens.d.ts +38 -0
  266. package/dist/look/tokens.d.ts.map +1 -0
  267. package/dist/look/tokens.js +59 -0
  268. package/dist/look/tokens.js.map +1 -0
  269. package/dist/look/units.d.ts +24 -0
  270. package/dist/look/units.d.ts.map +1 -0
  271. package/dist/look/units.js +33 -0
  272. package/dist/look/units.js.map +1 -0
  273. package/dist/look.d.ts +32 -227
  274. package/dist/look.d.ts.map +1 -1
  275. package/dist/look.js +28 -933
  276. package/dist/look.js.map +1 -1
  277. package/dist/module-roster.d.ts +16 -0
  278. package/dist/module-roster.d.ts.map +1 -0
  279. package/dist/module-roster.js +28 -0
  280. package/dist/module-roster.js.map +1 -0
  281. package/dist/modules/app.d.ts +9 -0
  282. package/dist/modules/app.d.ts.map +1 -0
  283. package/dist/modules/app.js +20 -0
  284. package/dist/modules/app.js.map +1 -0
  285. package/dist/modules/browser-test.d.ts +9 -0
  286. package/dist/modules/browser-test.d.ts.map +1 -0
  287. package/dist/modules/browser-test.js +67 -0
  288. package/dist/modules/browser-test.js.map +1 -0
  289. package/dist/modules/browser.d.ts +10 -0
  290. package/dist/modules/browser.d.ts.map +1 -0
  291. package/dist/modules/browser.js +89 -0
  292. package/dist/modules/browser.js.map +1 -0
  293. package/dist/modules/config.d.ts +9 -0
  294. package/dist/modules/config.d.ts.map +1 -0
  295. package/dist/modules/config.js +14 -0
  296. package/dist/modules/config.js.map +1 -0
  297. package/dist/modules/files.d.ts +9 -0
  298. package/dist/modules/files.d.ts.map +1 -0
  299. package/dist/modules/files.js +16 -0
  300. package/dist/modules/files.js.map +1 -0
  301. package/dist/modules/forms.d.ts +9 -0
  302. package/dist/modules/forms.d.ts.map +1 -0
  303. package/dist/modules/forms.js +26 -0
  304. package/dist/modules/forms.js.map +1 -0
  305. package/dist/modules/http.d.ts +9 -0
  306. package/dist/modules/http.d.ts.map +1 -0
  307. package/dist/modules/http.js +127 -0
  308. package/dist/modules/http.js.map +1 -0
  309. package/dist/modules/look.d.ts +9 -0
  310. package/dist/modules/look.d.ts.map +1 -0
  311. package/dist/modules/look.js +58 -0
  312. package/dist/modules/look.js.map +1 -0
  313. package/dist/modules/realtime.d.ts +9 -0
  314. package/dist/modules/realtime.d.ts.map +1 -0
  315. package/dist/modules/realtime.js +163 -0
  316. package/dist/modules/realtime.js.map +1 -0
  317. package/dist/modules/storage.d.ts +9 -0
  318. package/dist/modules/storage.d.ts.map +1 -0
  319. package/dist/modules/storage.js +59 -0
  320. package/dist/modules/storage.js.map +1 -0
  321. package/dist/modules/types.d.ts +78 -0
  322. package/dist/modules/types.d.ts.map +1 -0
  323. package/dist/modules/types.js +154 -0
  324. package/dist/modules/types.js.map +1 -0
  325. package/dist/modules/web.d.ts +9 -0
  326. package/dist/modules/web.d.ts.map +1 -0
  327. package/dist/modules/web.js +63 -0
  328. package/dist/modules/web.js.map +1 -0
  329. package/dist/modules/websocket.d.ts +11 -0
  330. package/dist/modules/websocket.d.ts.map +1 -0
  331. package/dist/modules/websocket.js +75 -0
  332. package/dist/modules/websocket.js.map +1 -0
  333. package/dist/parser/expressions/jsx.d.ts +17 -0
  334. package/dist/parser/expressions/jsx.d.ts.map +1 -0
  335. package/dist/parser/expressions/jsx.js +43 -0
  336. package/dist/parser/expressions/jsx.js.map +1 -0
  337. package/dist/parser/expressions/keyframes.d.ts +15 -0
  338. package/dist/parser/expressions/keyframes.d.ts.map +1 -0
  339. package/dist/parser/expressions/keyframes.js +33 -0
  340. package/dist/parser/expressions/keyframes.js.map +1 -0
  341. package/dist/parser/expressions/look.d.ts +16 -0
  342. package/dist/parser/expressions/look.d.ts.map +1 -0
  343. package/dist/parser/expressions/look.js +37 -0
  344. package/dist/parser/expressions/look.js.map +1 -0
  345. package/dist/parser/expressions/visual-block.d.ts +17 -0
  346. package/dist/parser/expressions/visual-block.d.ts.map +1 -0
  347. package/dist/parser/expressions/visual-block.js +21 -0
  348. package/dist/parser/expressions/visual-block.js.map +1 -0
  349. package/dist/parser/keyframes-source.d.ts +24 -0
  350. package/dist/parser/keyframes-source.d.ts.map +1 -0
  351. package/dist/parser/keyframes-source.js +133 -0
  352. package/dist/parser/keyframes-source.js.map +1 -0
  353. package/dist/parser/look-source.d.ts +25 -0
  354. package/dist/parser/look-source.d.ts.map +1 -0
  355. package/dist/parser/look-source.js +189 -0
  356. package/dist/parser/look-source.js.map +1 -0
  357. package/dist/parser/spans.d.ts +24 -0
  358. package/dist/parser/spans.d.ts.map +1 -0
  359. package/dist/parser/spans.js +113 -0
  360. package/dist/parser/spans.js.map +1 -0
  361. package/dist/parser/statements/components.d.ts +37 -0
  362. package/dist/parser/statements/components.d.ts.map +1 -0
  363. package/dist/parser/statements/components.js +185 -0
  364. package/dist/parser/statements/components.js.map +1 -0
  365. package/dist/parser/statements/heads.d.ts +38 -0
  366. package/dist/parser/statements/heads.d.ts.map +1 -0
  367. package/dist/parser/statements/heads.js +55 -0
  368. package/dist/parser/statements/heads.js.map +1 -0
  369. package/dist/parser/statements/imports.d.ts +9 -0
  370. package/dist/parser/statements/imports.d.ts.map +1 -0
  371. package/dist/parser/statements/imports.js +31 -0
  372. package/dist/parser/statements/imports.js.map +1 -0
  373. package/dist/parser/statements/reactive.d.ts +31 -0
  374. package/dist/parser/statements/reactive.d.ts.map +1 -0
  375. package/dist/parser/statements/reactive.js +68 -0
  376. package/dist/parser/statements/reactive.js.map +1 -0
  377. package/dist/parser/statements/unsafe-css.d.ts +21 -0
  378. package/dist/parser/statements/unsafe-css.d.ts.map +1 -0
  379. package/dist/parser/statements/unsafe-css.js +42 -0
  380. package/dist/parser/statements/unsafe-css.js.map +1 -0
  381. package/dist/parser.d.ts +37 -50
  382. package/dist/parser.d.ts.map +1 -1
  383. package/dist/parser.js +98 -882
  384. package/dist/parser.js.map +1 -1
  385. package/package.json +2 -2
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The condition half of a Look literal: `if @hover:`, `if viewport.width >
3
+ * 40rem`, and the media subjects the language publishes.
4
+ *
5
+ * D115 P4 R3b. A viewport breakpoint has to resolve at compile time — it
6
+ * becomes a media query, and a media query has no run time — so the threshold
7
+ * check reads the module's static Look scope rather than the inferred type.
8
+ */
9
+ import { type Expression, type ValueType } from "@velarscript/compiler/extension";
10
+ import { type LookAnalysisHost } from "./host.ts";
11
+ export declare function inferLookCondition(host: LookAnalysisHost, expression: Expression): ValueType;
12
+ export declare function checkViewportThreshold(host: LookAnalysisHost, value: Expression): void;
13
+ //# sourceMappingURL=conditions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditions.d.ts","sourceRoot":"","sources":["../../../src/analysis/look/conditions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAY,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAM5F,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,GAAG,SAAS,CA+D5F;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAWtF"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * The condition half of a Look literal: `if @hover:`, `if viewport.width >
3
+ * 40rem`, and the media subjects the language publishes.
4
+ *
5
+ * D115 P4 R3b. A viewport breakpoint has to resolve at compile time — it
6
+ * becomes a media query, and a media query has no run time — so the threshold
7
+ * check reads the module's static Look scope rather than the inferred type.
8
+ */
9
+ import { boolType } from "@velarscript/compiler/extension";
10
+ import { isWebExpression } from "../../ast.js";
11
+ import { evaluateLookStaticExpression } from "../../look-static.js";
12
+ import { LOOK_ABSENT_MEDIA_SUBJECTS, LOOK_HOOKS, LOOK_MEDIA_LENGTH_UNITS, LOOK_MEDIA_SUBJECTS, LOOK_TARGETS, nearestLookName } from "../../look.js";
13
+ import { flippedViewportComparison, isSchemeCondition, isViewportComparison, lookMediaVocabulary, lookSourceOf, mediaSubjectShape } from "../media-conditions.js";
14
+ import { diagnostic, lookLength } from "../web-types.js";
15
+ import {} from "./host.js";
16
+ export function inferLookCondition(host, expression) {
17
+ if (isWebExpression(expression) && expression.kind === "ExtensionExpression:web:look-hook") {
18
+ if (!LOOK_HOOKS.has(expression.name)) {
19
+ // LOK-I2: the target position redirects a hook to 'if @hook:', so the
20
+ // condition position redirects a target to its block spelling.
21
+ const nearest = nearestLookName(expression.name, LOOK_HOOKS);
22
+ host.diagnostics.push(diagnostic("VEL5038", LOOK_TARGETS.has(expression.name)
23
+ ? `Use '@${expression.name}:' as a target block; '@${expression.name}' is a pseudo-element target, not an element state condition`
24
+ : nearest
25
+ ? `Unknown Look hook '@${expression.name}'; did you mean '@${nearest}'?`
26
+ : `Unknown Look hook '@${expression.name}'; Look hooks are ${[...LOOK_HOOKS].map((name) => `@${name}`).join(", ")}`, expression.span));
27
+ }
28
+ return boolType;
29
+ }
30
+ if (expression.kind === "UnaryExpression" && expression.operator === "not") {
31
+ const value = inferLookCondition(host, expression.operand);
32
+ host.requireCondition(value, expression.operand);
33
+ return boolType;
34
+ }
35
+ if (expression.kind === "BinaryExpression" && (expression.operator === "and" || expression.operator === "or")) {
36
+ const left = inferLookCondition(host, expression.left);
37
+ const right = inferLookCondition(host, expression.right);
38
+ host.requireCondition(left, expression.left);
39
+ host.requireCondition(right, expression.right);
40
+ return boolType;
41
+ }
42
+ if (isViewportComparison(expression)) {
43
+ const comparison = expression;
44
+ host.inferExpression(comparison.right, lookLength);
45
+ checkViewportThreshold(host, comparison.right);
46
+ return boolType;
47
+ }
48
+ const flipped = flippedViewportComparison(expression);
49
+ if (flipped) {
50
+ host.inferExpression(flipped.threshold, lookLength);
51
+ host.diagnostics.push(diagnostic("VEL5052", `Write the viewport on the left of a breakpoint: 'viewport.${flipped.property} ${flipped.operator} ${lookSourceOf(flipped.threshold)}'`, expression.span));
52
+ checkViewportThreshold(host, flipped.threshold);
53
+ return boolType;
54
+ }
55
+ if (isSchemeCondition(expression))
56
+ return boolType;
57
+ // LOK-U3: the media-subject set is closed. A subject the reader reached for
58
+ // and Look does not carry names the whole set instead of reporting the
59
+ // subject as an unknown Core name. A comparison carries its subject on
60
+ // either side, so both operands are examined.
61
+ const operands = expression.kind === "BinaryExpression" ? [expression.left, expression.right] : [expression];
62
+ for (const operand of operands) {
63
+ const subject = mediaSubjectShape(operand);
64
+ if (!subject || host.lookup(subject.subject))
65
+ continue;
66
+ if (!LOOK_MEDIA_SUBJECTS.has(subject.subject) && !LOOK_ABSENT_MEDIA_SUBJECTS.has(subject.subject))
67
+ continue;
68
+ host.diagnostics.push(diagnostic("VEL5038", `Look media conditions are ${lookMediaVocabulary()}; '${subject.subject}.${subject.feature}' is not one of them`, expression.span));
69
+ return boolType;
70
+ }
71
+ const type = host.inferExpression(expression);
72
+ host.requireCondition(type, expression);
73
+ return boolType;
74
+ }
75
+ export function checkViewportThreshold(host, value) {
76
+ const threshold = evaluateLookStaticExpression(value, host.lookStatic.values);
77
+ if (threshold?.kind !== "unit") {
78
+ host.diagnostics.push(diagnostic("VEL5052", "A viewport breakpoint must resolve at compile time to a px, rem, or em value; use a const unit token or an imported const unit token", value.span));
79
+ }
80
+ else if (!LOOK_MEDIA_LENGTH_UNITS.has(threshold.unit)) {
81
+ host.diagnostics.push(diagnostic("VEL5052", `Viewport breakpoints do not support '${threshold.unit}'; use px, rem, or em`, value.span));
82
+ }
83
+ }
84
+ //# sourceMappingURL=conditions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditions.js","sourceRoot":"","sources":["../../../src/analysis/look/conditions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * The three edits a Look diagnostic offers when its remedy names a builder.
3
+ *
4
+ * D115 P4 R3b. `values.ts` rewrites a raw CSS filter into the builder that
5
+ * spells it and `tokens.ts` rewrites a `var(--x)` passthrough into `token()`,
6
+ * so both need the same two answers — what this module already calls the
7
+ * builder locally, and the import edit that gives the module the name when it
8
+ * has none. They live here rather than in either caller because a helper both
9
+ * read from the other would make the two import each other.
10
+ */
11
+ import { type DiagnosticEdit } from "@velarscript/compiler";
12
+ import { type Expression } from "@velarscript/compiler/extension";
13
+ import { type LookValueSite } from "../look-sites.ts";
14
+ import { type LookFilterRewrite } from "../look-vocabulary-guidance.ts";
15
+ import { type LookAnalysisHost } from "./host.ts";
16
+ /** Uses an existing alias when present and lists only builders the fix must import. */
17
+ export declare function localizeLookBuilderCall(host: LookAnalysisHost, rewrite: LookFilterRewrite): {
18
+ readonly call: string;
19
+ readonly missingImports: readonly string[];
20
+ };
21
+ /** Rewrites either a Look entry expression or the synthetic value of a JSX Look directive. */
22
+ export declare function lookBuilderRewrite(host: LookAnalysisHost, value: Expression, call: string, site: LookValueSite, missingImports: readonly string[]): readonly DiagnosticEdit[];
23
+ /** Adds missing builders to the module's one velar/look import in stable order. */
24
+ export declare function lookBuilderImportEdit(host: LookAnalysisHost, builders: readonly string[]): DiagnosticEdit;
25
+ //# sourceMappingURL=edits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edits.d.ts","sourceRoot":"","sources":["../../../src/analysis/look/edits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD,uFAAuF;AACvF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,iBAAiB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAUjK;AAED,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,aAAa,EACnB,cAAc,EAAE,SAAS,MAAM,EAAE,GAChC,SAAS,cAAc,EAAE,CAQ3B;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,cAAc,CAczG"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * The three edits a Look diagnostic offers when its remedy names a builder.
3
+ *
4
+ * D115 P4 R3b. `values.ts` rewrites a raw CSS filter into the builder that
5
+ * spells it and `tokens.ts` rewrites a `var(--x)` passthrough into `token()`,
6
+ * so both need the same two answers — what this module already calls the
7
+ * builder locally, and the import edit that gives the module the name when it
8
+ * has none. They live here rather than in either caller because a helper both
9
+ * read from the other would make the two import each other.
10
+ */
11
+ import {} from "@velarscript/compiler";
12
+ import {} from "@velarscript/compiler/extension";
13
+ import { byCodeUnit } from "../../stable-order.js";
14
+ import {} from "../look-sites.js";
15
+ import {} from "../look-vocabulary-guidance.js";
16
+ import {} from "./host.js";
17
+ /** Uses an existing alias when present and lists only builders the fix must import. */
18
+ export function localizeLookBuilderCall(host, rewrite) {
19
+ let call = rewrite.call;
20
+ const missingImports = [];
21
+ for (const builder of rewrite.builders) {
22
+ const imported = [...host.lookBuilderNames].find(([, candidate]) => candidate === builder);
23
+ const local = imported?.[0] ?? builder;
24
+ if (!imported)
25
+ missingImports.push(builder);
26
+ call = call.replace(new RegExp(`\\b${builder}(?=\\()`, "gu"), local);
27
+ }
28
+ return { call, missingImports };
29
+ }
30
+ /** Rewrites either a Look entry expression or the synthetic value of a JSX Look directive. */
31
+ export function lookBuilderRewrite(host, value, call, site, missingImports) {
32
+ const wholeAttribute = site.directive !== null
33
+ && value.span.start === site.entrySpan.start && value.span.end === site.entrySpan.end;
34
+ const edit = {
35
+ span: value.span,
36
+ text: wholeAttribute ? `${site.directive}:${site.property}={${call}}` : call,
37
+ };
38
+ return missingImports.length === 0 ? [edit] : [lookBuilderImportEdit(host, missingImports), edit];
39
+ }
40
+ /** Adds missing builders to the module's one velar/look import in stable order. */
41
+ export function lookBuilderImportEdit(host, builders) {
42
+ const site = host.lookImport ?? { declaration: null, insertAt: 0, leadingBlankLine: true };
43
+ const existing = site.declaration?.specifiers ?? [];
44
+ const imported = new Set(existing.map((specifier) => specifier.imported));
45
+ const specifiers = [
46
+ ...existing,
47
+ ...builders.filter((builder) => !imported.has(builder)).map((builder) => ({ imported: builder, local: builder })),
48
+ ];
49
+ const line = `import {${specifiers
50
+ .sort((left, right) => byCodeUnit(left.imported, right.imported))
51
+ .map((specifier) => specifier.imported === specifier.local ? specifier.imported : `${specifier.imported} as ${specifier.local}`)
52
+ .join(", ")}} from "velar/look"`;
53
+ if (site.declaration)
54
+ return { span: site.declaration.span, text: line };
55
+ return { span: { start: site.insertAt, end: site.insertAt }, text: site.leadingBlankLine ? `${line}\n\n` : `\n${line}` };
56
+ }
57
+ //# sourceMappingURL=edits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edits.js","sourceRoot":"","sources":["../../../src/analysis/look/edits.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * The walk over a Look literal's entries: composition, conditions, targets, and
3
+ * the ordinary `property = value` pairs, plus the two rules that read a scope
4
+ * rather than one entry — duplicate properties and shorthand overlap.
5
+ *
6
+ * D115 P4 R3b. LOK-D1 also lives here: a Look literal is constructed once where
7
+ * it is written, so a reactive read inside one is a snapshot and is rejected
8
+ * with the two spellings that stay live.
9
+ */
10
+ import { type Span } from "@velarscript/compiler";
11
+ import { type Expression } from "@velarscript/compiler/extension";
12
+ import { type WebJsxElementExpression as JSXElementExpression, type WebLookExpression } from "../../ast.ts";
13
+ import { type LookAnalysisHost } from "./host.ts";
14
+ export declare function analyzeLookEntries(host: LookAnalysisHost, entries: WebLookExpression["entries"], insideTarget: boolean, nested: boolean, inheritedTerms: number, scopeKey?: string): void;
15
+ /**
16
+ * LOK-D1: a `look:` literal is constructed once, where it is written. Its
17
+ * conditions and its values are snapshot positions — a reactive read inside
18
+ * one compiles cleanly and then never updates, which is the quietest trap in
19
+ * the visual language. The two spellings that stay live are the JSX
20
+ * expression position and the `look:property` directive, so the read is
21
+ * rejected here and both are taught.
22
+ */
23
+ export declare function reportLookSnapshotReads(host: LookAnalysisHost, expression: Expression): void;
24
+ /**
25
+ * Records one entry in its lowered scope (condition signature plus target) so
26
+ * two sibling blocks with the same condition report the property they both
27
+ * set. Returns false when the entry repeats. LOK-I4: the charter's duplicate
28
+ * promise used to hold only inside a single indented scope.
29
+ */
30
+ export declare function recordLookEntry(host: LookAnalysisHost, scopeKey: string, name: string): boolean;
31
+ /**
32
+ * The vocabulary checks a Look property shares between the block spelling and
33
+ * the `look:`/`style:` directives. Returns false when the entry is already
34
+ * reported and its value needs no further checking. LOK-I1: an unrecognized
35
+ * property no longer co-reports a `stringType` fallback assignment error.
36
+ */
37
+ export declare function analyzeLookValue(host: LookAnalysisHost, name: string, value: Expression, entrySpan: Span, directive: "look" | "style" | null): boolean;
38
+ /**
39
+ * D104 rule 2 — the wider half of the promise VEL5039 already made. A
40
+ * repeated property name is refused because the second entry overwrites the
41
+ * first and Look has no source order to settle which is meant; a shorthand
42
+ * beside a longhand it writes is the same defect with two spellings, and it
43
+ * is the one that hid thirty-six dead declarations in a consumer's shell.
44
+ * Reports once against the entry that completes the pair.
45
+ */
46
+ export declare function reportLookShorthandOverlap(host: LookAnalysisHost, scopeKey: string, name: string, span: Span): void;
47
+ /**
48
+ * The same rule where the properties are written as element directives. A
49
+ * `look:` directive lowers to exactly the rule a block entry does, so an
50
+ * element carrying `look:padding` and `look:paddingTop` has the pair in the
51
+ * same scope as surely as a block does. The `style:` directives are not
52
+ * checked here: they compose one inline style object, where the browser's own
53
+ * source order settles the pair.
54
+ */
55
+ export declare function reportLookDirectiveOverlap(host: LookAnalysisHost, expression: JSXElementExpression): void;
56
+ //# sourceMappingURL=entries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../../src/analysis/look/entries.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,KAAK,UAAU,EAAc,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,KAAK,uBAAuB,IAAI,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAO5G,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAIlD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,EACrC,YAAY,EAAE,OAAO,EACrB,MAAM,EAAE,OAAO,EACf,cAAc,EAAE,MAAM,EACtB,QAAQ,SAAK,GACZ,IAAI,CAsDN;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAuB5F;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAM/F;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,CAkDtJ;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAOnH;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAYzG"}
@@ -0,0 +1,223 @@
1
+ /**
2
+ * The walk over a Look literal's entries: composition, conditions, targets, and
3
+ * the ordinary `property = value` pairs, plus the two rules that read a scope
4
+ * rather than one entry — duplicate properties and shorthand overlap.
5
+ *
6
+ * D115 P4 R3b. LOK-D1 also lives here: a Look literal is constructed once where
7
+ * it is written, so a reactive read inside one is a snapshot and is rejected
8
+ * with the two spellings that stay live.
9
+ */
10
+ import {} from "@velarscript/compiler";
11
+ import { stringType } from "@velarscript/compiler/extension";
12
+ import {} from "../../ast.js";
13
+ import { LOOK_EXCLUDED_PROPERTIES, LOOK_HOOKS, LOOK_PROPERTIES, LOOK_TARGETS, lookShorthandOverlap, nearestLookName } from "../../look.js";
14
+ import { LOOK_CONDITION_TERM_LIMIT, lookConditionKey } from "../look-conditions.js";
15
+ import { lookConditionTermCount, lookLiteralZero, mentionsLookUnitType } from "../look-sites.js";
16
+ import { lookShorthandOverlapMessage, lookShorthandStringGuidance } from "../look-vocabulary-guidance.js";
17
+ import { diagnostic, LOOK_PROPERTY_TYPES } from "../web-types.js";
18
+ import { inferLookCondition } from "./conditions.js";
19
+ import {} from "./host.js";
20
+ import { adviseLookTokenSpelling, isLookTokenCall } from "./tokens.js";
21
+ import { adviseLookFilterSpelling, reportLookNumberWithoutUnit, validateLookStringVocabulary } from "./values.js";
22
+ export function analyzeLookEntries(host, entries, insideTarget, nested, inheritedTerms, scopeKey = "") {
23
+ for (const entry of entries) {
24
+ if (entry.kind === "LookSpread") {
25
+ const type = host.inferExpression(entry.value, { kind: "named", name: "Look" });
26
+ host.requireAssignable(type, { kind: "named", name: "Look" }, entry.value.span);
27
+ reportLookSnapshotReads(host, entry.value);
28
+ if (nested)
29
+ host.diagnostics.push(diagnostic("VEL5044", "Look composition is only valid at the outer level; compose first, then place the result in a condition or target", entry.span));
30
+ continue;
31
+ }
32
+ if (entry.kind === "LookIf") {
33
+ inferLookCondition(host, entry.condition);
34
+ reportLookSnapshotReads(host, entry.condition);
35
+ const thenTerms = lookConditionTermCount(entry.condition);
36
+ const elseTerms = lookConditionTermCount(entry.condition, true);
37
+ if (inheritedTerms * Math.max(thenTerms, elseTerms) > LOOK_CONDITION_TERM_LIMIT) {
38
+ host.diagnostics.push(diagnostic("VEL5045", `A Look condition may expand to at most ${LOOK_CONDITION_TERM_LIMIT} selector/runtime terms; split this visual decision into ordinary values`, entry.condition.span));
39
+ }
40
+ const thenKey = lookConditionKey(entry.condition, false, host.lookStatic.values);
41
+ const elseKey = lookConditionKey(entry.condition, true, host.lookStatic.values);
42
+ analyzeLookEntries(host, entry.thenEntries, insideTarget, true, Math.min(LOOK_CONDITION_TERM_LIMIT, inheritedTerms * thenTerms), `${scopeKey}&${thenKey}`);
43
+ analyzeLookEntries(host, entry.elseEntries, insideTarget, true, Math.min(LOOK_CONDITION_TERM_LIMIT, inheritedTerms * elseTerms), `${scopeKey}&${elseKey}`);
44
+ continue;
45
+ }
46
+ if (entry.kind === "LookTarget") {
47
+ if (!LOOK_TARGETS.has(entry.name)) {
48
+ const nearest = nearestLookName(entry.name, LOOK_TARGETS);
49
+ host.diagnostics.push(diagnostic("VEL5038", LOOK_HOOKS.has(entry.name)
50
+ ? `Use 'if @${entry.name}:'; '@${entry.name}' is an element state condition, not a pseudo-element target`
51
+ : nearest
52
+ ? `Unknown Look target '@${entry.name}'; did you mean '@${nearest}'?`
53
+ : `Unknown Look target '@${entry.name}'; Look targets are ${[...LOOK_TARGETS].map((name) => `@${name}`).join(", ")}`, entry.span));
54
+ }
55
+ if (insideTarget)
56
+ host.diagnostics.push(diagnostic("VEL5038", "Look targets cannot be nested", entry.span));
57
+ // A repeated target is reported once; its body then gets a private scope
58
+ // so the properties inside are not reported a second time as duplicates.
59
+ const repeated = !recordLookEntry(host, `${scopeKey}#target`, entry.name);
60
+ if (repeated)
61
+ host.diagnostics.push(diagnostic("VEL5039", `Look target '@${entry.name}' is defined more than once in the same scope`, entry.span));
62
+ analyzeLookEntries(host, entry.entries, true, true, inheritedTerms, repeated ? `${scopeKey}@${entry.name}#${entry.span.start}` : `${scopeKey}@${entry.name}`);
63
+ continue;
64
+ }
65
+ reportLookShorthandOverlap(host, scopeKey, entry.name, entry.span);
66
+ if (!recordLookEntry(host, scopeKey, entry.name)) {
67
+ host.diagnostics.push(diagnostic("VEL5039", `Look property '${entry.name}' is defined more than once in the same scope`, entry.span));
68
+ }
69
+ if (!analyzeLookValue(host, entry.name, entry.value, entry.span, null))
70
+ continue;
71
+ const expected = LOOK_PROPERTY_TYPES.get(entry.name) ?? stringType;
72
+ const actual = host.inferExpression(entry.value, expected);
73
+ reportLookSnapshotReads(host, entry.value);
74
+ // Zero is the one unitless CSS length, so `padding = 0` stays legal while
75
+ // every other bare number is answered with the unit it needs (LOK-D3).
76
+ if (mentionsLookUnitType(expected) && lookLiteralZero(entry.value))
77
+ continue;
78
+ if (reportLookNumberWithoutUnit(host, entry.name, actual, expected, entry.value.span))
79
+ continue;
80
+ if (actual.kind !== "null" && expected.kind !== "unknown")
81
+ host.requireAssignable(actual, expected, entry.value.span);
82
+ }
83
+ }
84
+ /**
85
+ * LOK-D1: a `look:` literal is constructed once, where it is written. Its
86
+ * conditions and its values are snapshot positions — a reactive read inside
87
+ * one compiles cleanly and then never updates, which is the quietest trap in
88
+ * the visual language. The two spellings that stay live are the JSX
89
+ * expression position and the `look:property` directive, so the read is
90
+ * rejected here and both are taught.
91
+ */
92
+ export function reportLookSnapshotReads(host, expression) {
93
+ const visit = (value) => {
94
+ if (Array.isArray(value)) {
95
+ for (const item of value)
96
+ visit(item);
97
+ return;
98
+ }
99
+ if (!value || typeof value !== "object")
100
+ return;
101
+ const record = value;
102
+ if (record.kind === "IdentifierExpression" && typeof record.name === "string") {
103
+ const name = record.name;
104
+ const reactive = host.reactiveBindingKind(name) !== null || host.derivedReactiveRead(name);
105
+ if (reactive) {
106
+ host.diagnostics.push(diagnostic("VEL5058", `A Look literal is built once where it is written, so '${name}' is read as a snapshot and the visual never follows it. Put the reactive decision on the element instead: 'look={${name} ? oneLook : otherLook}' chooses a whole Look, and 'look:property={...}' sets one property`, record.span));
107
+ }
108
+ return;
109
+ }
110
+ for (const [key, child] of Object.entries(record))
111
+ if (key !== "span")
112
+ visit(child);
113
+ };
114
+ visit(expression);
115
+ }
116
+ /**
117
+ * Records one entry in its lowered scope (condition signature plus target) so
118
+ * two sibling blocks with the same condition report the property they both
119
+ * set. Returns false when the entry repeats. LOK-I4: the charter's duplicate
120
+ * promise used to hold only inside a single indented scope.
121
+ */
122
+ export function recordLookEntry(host, scopeKey, name) {
123
+ const seen = host.lookEntryScopes.get(scopeKey) ?? new Set();
124
+ host.lookEntryScopes.set(scopeKey, seen);
125
+ if (seen.has(name))
126
+ return false;
127
+ seen.add(name);
128
+ return true;
129
+ }
130
+ /**
131
+ * The vocabulary checks a Look property shares between the block spelling and
132
+ * the `look:`/`style:` directives. Returns false when the entry is already
133
+ * reported and its value needs no further checking. LOK-I1: an unrecognized
134
+ * property no longer co-reports a `stringType` fallback assignment error.
135
+ */
136
+ export function analyzeLookValue(host, name, value, entrySpan, directive) {
137
+ const inline = directive !== null;
138
+ const label = directive === "style" ? "inline Style" : directive === "look" ? "inline Look" : "Look";
139
+ if (name === "animation" && value.kind === "LiteralExpression" && typeof value.value === "string") {
140
+ host.diagnostics.push(diagnostic("VEL5038", "Look animation does not accept CSS shorthand text; declare a checked 'keyframes:' value and pass animate(frames, duration, ...) instead", entrySpan));
141
+ if (!inline)
142
+ host.inferExpression(value);
143
+ return false;
144
+ }
145
+ // D103 rule 1 meets D49. `animation` is the one Look property whose value
146
+ // names another rule rather than describing one: the `@keyframes` name in
147
+ // an animation shorthand. Look owns those names — they are generated from
148
+ // the `keyframes:` value that defines the motion — so a shorthand arriving
149
+ // from outside this compile is a reference the compiler can check on
150
+ // neither side, which is the surface D50 rule 92 calls worse than none. The
151
+ // type refuses it either way; this replaces a bare union dump with the two
152
+ // spellings that do work.
153
+ if (name === "animation" && isLookTokenCall(host, value)) {
154
+ host.diagnostics.push(diagnostic("VEL5038", "Look animation is the one property a design token cannot carry: an animation value names a '@keyframes' rule, and Look generates those names from the 'keyframes:' value that defines the motion, so a shorthand from a design system names a rule this compile never emitted. Declare a checked 'keyframes:' value and pass animate(frames, duration, ...); token() is legal in every other Look property, and a module-level 'import css unsafe \"./styles.css\" before look' carries a design system's own animation when that boundary is intentional", entrySpan));
155
+ if (!inline)
156
+ host.inferExpression(value);
157
+ return false;
158
+ }
159
+ if (!LOOK_PROPERTIES.has(name)) {
160
+ const nearest = nearestLookName(name, LOOK_PROPERTIES);
161
+ const exclusion = LOOK_EXCLUDED_PROPERTIES.get(name);
162
+ host.diagnostics.push(diagnostic("VEL5038", exclusion
163
+ ? `CSS property '${name}' is outside checked Look: ${exclusion}. Use a module-level 'import css unsafe "./styles.css" before look' when that boundary is intentional`
164
+ : nearest
165
+ ? `Unknown ${label} property '${name}'; did you mean '${nearest}'?`
166
+ : `Unknown ${label} property '${name}'; ${inline ? `${directive}:* uses the same camelCase property names as a Look block` : "Look properties use the DOM camelCase spelling of a CSS property"}`, entrySpan));
167
+ if (!inline)
168
+ host.inferExpression(value);
169
+ return false;
170
+ }
171
+ const shorthandGuidance = lookShorthandStringGuidance(name, value);
172
+ if (shorthandGuidance) {
173
+ host.diagnostics.push(diagnostic("VEL5038", shorthandGuidance, value.span));
174
+ return false;
175
+ }
176
+ const site = { property: name, entrySpan, directive };
177
+ adviseLookFilterSpelling(host, name, value, site);
178
+ adviseLookTokenSpelling(host, name, value, site);
179
+ if (!validateLookStringVocabulary(host, name, value, undefined, site))
180
+ return false;
181
+ return true;
182
+ }
183
+ /**
184
+ * D104 rule 2 — the wider half of the promise VEL5039 already made. A
185
+ * repeated property name is refused because the second entry overwrites the
186
+ * first and Look has no source order to settle which is meant; a shorthand
187
+ * beside a longhand it writes is the same defect with two spellings, and it
188
+ * is the one that hid thirty-six dead declarations in a consumer's shell.
189
+ * Reports once against the entry that completes the pair.
190
+ */
191
+ export function reportLookShorthandOverlap(host, scopeKey, name, span) {
192
+ for (const other of host.lookEntryScopes.get(scopeKey) ?? []) {
193
+ const overlap = lookShorthandOverlap(other, name);
194
+ if (!overlap)
195
+ continue;
196
+ host.diagnostics.push(diagnostic("VEL5039", lookShorthandOverlapMessage(overlap.shorthand, overlap.longhand, "This Look scope"), span));
197
+ return;
198
+ }
199
+ }
200
+ /**
201
+ * The same rule where the properties are written as element directives. A
202
+ * `look:` directive lowers to exactly the rule a block entry does, so an
203
+ * element carrying `look:padding` and `look:paddingTop` has the pair in the
204
+ * same scope as surely as a block does. The `style:` directives are not
205
+ * checked here: they compose one inline style object, where the browser's own
206
+ * source order settles the pair.
207
+ */
208
+ export function reportLookDirectiveOverlap(host, expression) {
209
+ const written = [];
210
+ for (const attribute of expression.attributes) {
211
+ if (!attribute.name.startsWith("look:"))
212
+ continue;
213
+ const property = attribute.name.slice("look:".length);
214
+ if (!LOOK_PROPERTIES.has(property))
215
+ continue;
216
+ const overlapping = written.map((other) => lookShorthandOverlap(other, property)).find(Boolean);
217
+ if (overlapping) {
218
+ host.diagnostics.push(diagnostic("VEL5039", lookShorthandOverlapMessage(overlapping.shorthand, overlapping.longhand, `Element '<${expression.tag}>'`), attribute.span));
219
+ }
220
+ written.push(property);
221
+ }
222
+ }
223
+ //# sourceMappingURL=entries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entries.js","sourceRoot":"","sources":["../../../src/analysis/look/entries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * What the Look rules and the keyframes analysis ask of the analyzer that
3
+ * hosts them: the module-wide Look tables its walk fills, and the analyzer
4
+ * operations those rules perform.
5
+ *
6
+ * D115 P4 R3b. The tables are `private` on the analyzer, so the object
7
+ * satisfying this interface is built inside that class and nowhere else
8
+ * (TS2341, D114 line 512). The four the walk replaces once per program arrive
9
+ * through getters, so a collaborator reading one mid-walk reads the live table
10
+ * rather than the one that existed when the host was made.
11
+ */
12
+ import { type Diagnostic, type DiagnosticFix, type Span } from "@velarscript/compiler";
13
+ import { type Expression, type ValueType } from "@velarscript/compiler/extension";
14
+ import { type LookStaticScope } from "../../look-static.ts";
15
+ import { type LookImportSite } from "../look-sites.ts";
16
+ export interface LookAnalysisHost {
17
+ /** Every builder call whose arguments have been checked, so one call is checked once however often the walk reaches it. */
18
+ readonly checkedBuilderCalls: Set<string>;
19
+ /** Local name → the velar/look builder it names. Replaced per program. */
20
+ readonly lookBuilderNames: ReadonlyMap<string, string>;
21
+ /** Scope key → the property names already written in that scope, which is how a repeat is recognised. */
22
+ readonly lookEntryScopes: Map<string, Set<string>>;
23
+ /** Where this module imports velar/look, so an import edit knows what to extend. Replaced per program. */
24
+ readonly lookImport: LookImportSite | null;
25
+ /** The module's compile-time Look values and the sites that wrote them. Replaced per program. */
26
+ readonly lookStatic: LookStaticScope;
27
+ /** The spans of builder calls whose own arguments were refused, so a `keyframes:` stop drops the consequence. */
28
+ readonly refusedBuilderCalls: Span[];
29
+ readonly diagnostics: Diagnostic[];
30
+ readonly extensionLiterals: Map<string, string>;
31
+ advise(code: string, message: string, adviceSpan: Span, fix?: DiagnosticFix): void;
32
+ /**
33
+ * A name that both belongs to a derived reactive declaration and still
34
+ * resolves to one here. The reading belongs to the analyzer's reactive-name
35
+ * group; the two snapshot rules ask it about a name they found in a Look.
36
+ */
37
+ derivedReactiveRead(name: string): boolean;
38
+ expandAliases(type: ValueType): ValueType;
39
+ inferExpression(expression: Expression, contextualType?: ValueType): ValueType;
40
+ lookup(name: string): {
41
+ readonly type: ValueType;
42
+ } | null;
43
+ reactiveBindingKind(name: string): "state" | "prop" | null;
44
+ requireAssignable(actual: ValueType, expected: ValueType, valueSpan: Span): void;
45
+ requireCondition(type: ValueType, condition: Expression): void;
46
+ }
47
+ //# sourceMappingURL=host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../src/analysis/look/host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,KAAK,IAAI,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,2HAA2H;IAC3H,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,0EAA0E;IAC1E,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvD,yGAAyG;IACzG,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,0GAA0G;IAC1G,QAAQ,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IAC3C,iGAAiG;IACjG,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,iHAAiH;IACjH,QAAQ,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC;IAErC,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC;IACnC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACnF;;;;OAIG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3C,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC1C,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/E,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1D,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3D,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACjF,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;CAChE"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * What the Look rules and the keyframes analysis ask of the analyzer that
3
+ * hosts them: the module-wide Look tables its walk fills, and the analyzer
4
+ * operations those rules perform.
5
+ *
6
+ * D115 P4 R3b. The tables are `private` on the analyzer, so the object
7
+ * satisfying this interface is built inside that class and nowhere else
8
+ * (TS2341, D114 line 512). The four the walk replaces once per program arrive
9
+ * through getters, so a collaborator reading one mid-walk reads the live table
10
+ * rather than the one that existed when the host was made.
11
+ */
12
+ import {} from "@velarscript/compiler";
13
+ import {} from "@velarscript/compiler/extension";
14
+ import {} from "../../look-static.js";
15
+ import {} from "../look-sites.js";
16
+ //# sourceMappingURL=host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../../src/analysis/look/host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAkD,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAmC,MAAM,iCAAiC,CAAC;AAClF,OAAO,EAAwB,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAuB,MAAM,kBAAkB,CAAC"}