@vigla/svelte 0.0.0-stage → 5.57.3

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 (373) hide show
  1. package/action.d.ts +2 -0
  2. package/animate.d.ts +2 -0
  3. package/compiler/index.js +43266 -0
  4. package/compiler/index.js.map +1 -0
  5. package/compiler/package.json +3 -0
  6. package/compiler.d.ts +2 -0
  7. package/dist/compiler/diagnostics.d.ts +70 -0
  8. package/dist/compiler/diagnostics.d.ts.map +1 -0
  9. package/dist/compiler/diagnostics.js +166 -0
  10. package/dist/compiler/diagnostics.js.map +1 -0
  11. package/dist/compiler/index.d.ts +72 -0
  12. package/dist/compiler/index.d.ts.map +1 -0
  13. package/dist/compiler/index.js +178 -0
  14. package/dist/compiler/index.js.map +1 -0
  15. package/dist/compiler/options.d.ts +7 -0
  16. package/dist/compiler/options.d.ts.map +1 -0
  17. package/dist/compiler/options.js +126 -0
  18. package/dist/compiler/options.js.map +1 -0
  19. package/dist/compiler/preprocess/decode.d.ts +3 -0
  20. package/dist/compiler/preprocess/decode.d.ts.map +1 -0
  21. package/dist/compiler/preprocess/decode.js +60 -0
  22. package/dist/compiler/preprocess/decode.js.map +1 -0
  23. package/dist/compiler/preprocess/index.d.ts +27 -0
  24. package/dist/compiler/preprocess/index.d.ts.map +1 -0
  25. package/dist/compiler/preprocess/index.js +208 -0
  26. package/dist/compiler/preprocess/index.js.map +1 -0
  27. package/dist/compiler/preprocess/mapped.d.ts +25 -0
  28. package/dist/compiler/preprocess/mapped.d.ts.map +1 -0
  29. package/dist/compiler/preprocess/mapped.js +129 -0
  30. package/dist/compiler/preprocess/mapped.js.map +1 -0
  31. package/dist/compiler/proxy.d.ts +3 -0
  32. package/dist/compiler/proxy.d.ts.map +1 -0
  33. package/dist/compiler/proxy.js +133 -0
  34. package/dist/compiler/proxy.js.map +1 -0
  35. package/dist/entries/action.d.ts +2 -0
  36. package/dist/entries/action.d.ts.map +1 -0
  37. package/dist/entries/action.js +1 -0
  38. package/dist/entries/action.js.map +1 -0
  39. package/dist/entries/animate.d.ts +2 -0
  40. package/dist/entries/animate.d.ts.map +1 -0
  41. package/dist/entries/animate.js +2 -0
  42. package/dist/entries/animate.js.map +1 -0
  43. package/dist/entries/attachments.d.ts +2 -0
  44. package/dist/entries/attachments.d.ts.map +1 -0
  45. package/dist/entries/attachments.js +2 -0
  46. package/dist/entries/attachments.js.map +1 -0
  47. package/dist/entries/context.d.ts +15 -0
  48. package/dist/entries/context.d.ts.map +1 -0
  49. package/dist/entries/context.js +32 -0
  50. package/dist/entries/context.js.map +1 -0
  51. package/dist/entries/easing.d.ts +2 -0
  52. package/dist/entries/easing.d.ts.map +1 -0
  53. package/dist/entries/easing.js +2 -0
  54. package/dist/entries/easing.js.map +1 -0
  55. package/dist/entries/events.d.ts +2 -0
  56. package/dist/entries/events.d.ts.map +1 -0
  57. package/dist/entries/events.js +2 -0
  58. package/dist/entries/events.js.map +1 -0
  59. package/dist/entries/index-server.d.ts +4 -0
  60. package/dist/entries/index-server.d.ts.map +1 -0
  61. package/dist/entries/index-server.js +11 -0
  62. package/dist/entries/index-server.js.map +1 -0
  63. package/dist/entries/index.d.ts +10 -0
  64. package/dist/entries/index.d.ts.map +1 -0
  65. package/dist/entries/index.js +24 -0
  66. package/dist/entries/index.js.map +1 -0
  67. package/dist/entries/internal/client.d.ts +4 -0
  68. package/dist/entries/internal/client.d.ts.map +1 -0
  69. package/dist/entries/internal/client.js +9 -0
  70. package/dist/entries/internal/client.js.map +1 -0
  71. package/dist/entries/internal/disclose-version.d.ts +2 -0
  72. package/dist/entries/internal/disclose-version.d.ts.map +1 -0
  73. package/dist/entries/internal/disclose-version.js +4 -0
  74. package/dist/entries/internal/disclose-version.js.map +1 -0
  75. package/dist/entries/internal/index.d.ts +2 -0
  76. package/dist/entries/internal/index.d.ts.map +1 -0
  77. package/dist/entries/internal/index.js +2 -0
  78. package/dist/entries/internal/index.js.map +1 -0
  79. package/dist/entries/internal/server.d.ts +2 -0
  80. package/dist/entries/internal/server.d.ts.map +1 -0
  81. package/dist/entries/internal/server.js +7 -0
  82. package/dist/entries/internal/server.js.map +1 -0
  83. package/dist/entries/internal/tracing.d.ts +2 -0
  84. package/dist/entries/internal/tracing.d.ts.map +1 -0
  85. package/dist/entries/internal/tracing.js +2 -0
  86. package/dist/entries/internal/tracing.js.map +1 -0
  87. package/dist/entries/motion-server.d.ts +2 -0
  88. package/dist/entries/motion-server.d.ts.map +1 -0
  89. package/dist/entries/motion-server.js +2 -0
  90. package/dist/entries/motion-server.js.map +1 -0
  91. package/dist/entries/motion.d.ts +2 -0
  92. package/dist/entries/motion.d.ts.map +1 -0
  93. package/dist/entries/motion.js +2 -0
  94. package/dist/entries/motion.js.map +1 -0
  95. package/dist/entries/proxy.d.ts +6 -0
  96. package/dist/entries/proxy.d.ts.map +1 -0
  97. package/dist/entries/proxy.js +77 -0
  98. package/dist/entries/proxy.js.map +1 -0
  99. package/dist/entries/reactivity-server.d.ts +2 -0
  100. package/dist/entries/reactivity-server.d.ts.map +1 -0
  101. package/dist/entries/reactivity-server.js +2 -0
  102. package/dist/entries/reactivity-server.js.map +1 -0
  103. package/dist/entries/reactivity.d.ts +2 -0
  104. package/dist/entries/reactivity.d.ts.map +1 -0
  105. package/dist/entries/reactivity.js +2 -0
  106. package/dist/entries/reactivity.js.map +1 -0
  107. package/dist/entries/report.d.ts +3 -0
  108. package/dist/entries/report.d.ts.map +1 -0
  109. package/dist/entries/report.js +66 -0
  110. package/dist/entries/report.js.map +1 -0
  111. package/dist/entries/server.d.ts +8 -0
  112. package/dist/entries/server.d.ts.map +1 -0
  113. package/dist/entries/server.js +48 -0
  114. package/dist/entries/server.js.map +1 -0
  115. package/dist/entries/store-client.d.ts +12 -0
  116. package/dist/entries/store-client.d.ts.map +1 -0
  117. package/dist/entries/store-client.js +63 -0
  118. package/dist/entries/store-client.js.map +1 -0
  119. package/dist/entries/store-server.d.ts +12 -0
  120. package/dist/entries/store-server.d.ts.map +1 -0
  121. package/dist/entries/store-server.js +30 -0
  122. package/dist/entries/store-server.js.map +1 -0
  123. package/dist/entries/store.d.ts +25 -0
  124. package/dist/entries/store.d.ts.map +1 -0
  125. package/dist/entries/store.js +139 -0
  126. package/dist/entries/store.js.map +1 -0
  127. package/dist/entries/transition.d.ts +2 -0
  128. package/dist/entries/transition.d.ts.map +1 -0
  129. package/dist/entries/transition.js +2 -0
  130. package/dist/entries/transition.js.map +1 -0
  131. package/dist/entries/window-server.d.ts +2 -0
  132. package/dist/entries/window-server.d.ts.map +1 -0
  133. package/dist/entries/window-server.js +2 -0
  134. package/dist/entries/window-server.js.map +1 -0
  135. package/dist/entries/window.d.ts +2 -0
  136. package/dist/entries/window.d.ts.map +1 -0
  137. package/dist/entries/window.js +2 -0
  138. package/dist/entries/window.js.map +1 -0
  139. package/dist/front/ast.d.ts +290 -0
  140. package/dist/front/ast.d.ts.map +1 -0
  141. package/dist/front/ast.js +1 -0
  142. package/dist/front/ast.js.map +1 -0
  143. package/dist/front/diagnostics.d.ts +13 -0
  144. package/dist/front/diagnostics.d.ts.map +1 -0
  145. package/dist/front/diagnostics.js +38 -0
  146. package/dist/front/diagnostics.js.map +1 -0
  147. package/dist/front/ignores.d.ts +12 -0
  148. package/dist/front/ignores.d.ts.map +1 -0
  149. package/dist/front/ignores.js +75 -0
  150. package/dist/front/ignores.js.map +1 -0
  151. package/dist/front/index.d.ts +17 -0
  152. package/dist/front/index.d.ts.map +1 -0
  153. package/dist/front/index.js +65 -0
  154. package/dist/front/index.js.map +1 -0
  155. package/dist/front/legacy.d.ts +5 -0
  156. package/dist/front/legacy.d.ts.map +1 -0
  157. package/dist/front/legacy.js +408 -0
  158. package/dist/front/legacy.js.map +1 -0
  159. package/dist/front/locate.d.ts +4 -0
  160. package/dist/front/locate.d.ts.map +1 -0
  161. package/dist/front/locate.js +19 -0
  162. package/dist/front/locate.js.map +1 -0
  163. package/dist/front/lower.d.ts +39 -0
  164. package/dist/front/lower.d.ts.map +1 -0
  165. package/dist/front/lower.js +470 -0
  166. package/dist/front/lower.js.map +1 -0
  167. package/dist/front/parse/attribute.d.ts +12 -0
  168. package/dist/front/parse/attribute.d.ts.map +1 -0
  169. package/dist/front/parse/attribute.js +288 -0
  170. package/dist/front/parse/attribute.js.map +1 -0
  171. package/dist/front/parse/bracket.d.ts +3 -0
  172. package/dist/front/parse/bracket.d.ts.map +1 -0
  173. package/dist/front/parse/bracket.js +102 -0
  174. package/dist/front/parse/bracket.js.map +1 -0
  175. package/dist/front/parse/characters.d.ts +4 -0
  176. package/dist/front/parse/characters.d.ts.map +1 -0
  177. package/dist/front/parse/characters.js +6 -0
  178. package/dist/front/parse/characters.js.map +1 -0
  179. package/dist/front/parse/decode.d.ts +2 -0
  180. package/dist/front/parse/decode.d.ts.map +1 -0
  181. package/dist/front/parse/decode.js +89 -0
  182. package/dist/front/parse/decode.js.map +1 -0
  183. package/dist/front/parse/element.d.ts +3 -0
  184. package/dist/front/parse/element.d.ts.map +1 -0
  185. package/dist/front/parse/element.js +311 -0
  186. package/dist/front/parse/element.js.map +1 -0
  187. package/dist/front/parse/entities.d.ts +2 -0
  188. package/dist/front/parse/entities.d.ts.map +1 -0
  189. package/dist/front/parse/entities.js +2234 -0
  190. package/dist/front/parse/entities.js.map +1 -0
  191. package/dist/front/parse/expression.d.ts +5 -0
  192. package/dist/front/parse/expression.d.ts.map +1 -0
  193. package/dist/front/parse/expression.js +86 -0
  194. package/dist/front/parse/expression.js.map +1 -0
  195. package/dist/front/parse/html.d.ts +8 -0
  196. package/dist/front/parse/html.d.ts.map +1 -0
  197. package/dist/front/parse/html.js +146 -0
  198. package/dist/front/parse/html.js.map +1 -0
  199. package/dist/front/parse/identifier.d.ts +4 -0
  200. package/dist/front/parse/identifier.d.ts.map +1 -0
  201. package/dist/front/parse/identifier.js +24 -0
  202. package/dist/front/parse/identifier.js.map +1 -0
  203. package/dist/front/parse/index.d.ts +13 -0
  204. package/dist/front/parse/index.d.ts.map +1 -0
  205. package/dist/front/parse/index.js +74 -0
  206. package/dist/front/parse/index.js.map +1 -0
  207. package/dist/front/parse/js.d.ts +27 -0
  208. package/dist/front/parse/js.d.ts.map +1 -0
  209. package/dist/front/parse/js.js +241 -0
  210. package/dist/front/parse/js.js.map +1 -0
  211. package/dist/front/parse/options.d.ts +3 -0
  212. package/dist/front/parse/options.d.ts.map +1 -0
  213. package/dist/front/parse/options.js +198 -0
  214. package/dist/front/parse/options.js.map +1 -0
  215. package/dist/front/parse/parser.d.ts +50 -0
  216. package/dist/front/parse/parser.d.ts.map +1 -0
  217. package/dist/front/parse/parser.js +157 -0
  218. package/dist/front/parse/parser.js.map +1 -0
  219. package/dist/front/parse/pattern.d.ts +4 -0
  220. package/dist/front/parse/pattern.d.ts.map +1 -0
  221. package/dist/front/parse/pattern.js +53 -0
  222. package/dist/front/parse/pattern.js.map +1 -0
  223. package/dist/front/parse/script.d.ts +4 -0
  224. package/dist/front/parse/script.d.ts.map +1 -0
  225. package/dist/front/parse/script.js +60 -0
  226. package/dist/front/parse/script.js.map +1 -0
  227. package/dist/front/parse/style.d.ts +7 -0
  228. package/dist/front/parse/style.d.ts.map +1 -0
  229. package/dist/front/parse/style.js +397 -0
  230. package/dist/front/parse/style.js.map +1 -0
  231. package/dist/front/parse/tag.d.ts +3 -0
  232. package/dist/front/parse/tag.d.ts.map +1 -0
  233. package/dist/front/parse/tag.js +591 -0
  234. package/dist/front/parse/tag.js.map +1 -0
  235. package/dist/front/print/css.d.ts +5 -0
  236. package/dist/front/print/css.d.ts.map +1 -0
  237. package/dist/front/print/css.js +234 -0
  238. package/dist/front/print/css.js.map +1 -0
  239. package/dist/front/print/index.d.ts +18 -0
  240. package/dist/front/print/index.d.ts.map +1 -0
  241. package/dist/front/print/index.js +24 -0
  242. package/dist/front/print/index.js.map +1 -0
  243. package/dist/front/print/layout.d.ts +11 -0
  244. package/dist/front/print/layout.d.ts.map +1 -0
  245. package/dist/front/print/layout.js +73 -0
  246. package/dist/front/print/layout.js.map +1 -0
  247. package/dist/front/print/template.d.ts +5 -0
  248. package/dist/front/print/template.d.ts.map +1 -0
  249. package/dist/front/print/template.js +455 -0
  250. package/dist/front/print/template.js.map +1 -0
  251. package/dist/front/runes.d.ts +13 -0
  252. package/dist/front/runes.d.ts.map +1 -0
  253. package/dist/front/runes.js +253 -0
  254. package/dist/front/runes.js.map +1 -0
  255. package/dist/front/stores.d.ts +5 -0
  256. package/dist/front/stores.d.ts.map +1 -0
  257. package/dist/front/stores.js +84 -0
  258. package/dist/front/stores.js.map +1 -0
  259. package/dist/front/typescript.d.ts +2 -0
  260. package/dist/front/typescript.d.ts.map +1 -0
  261. package/dist/front/typescript.js +182 -0
  262. package/dist/front/typescript.js.map +1 -0
  263. package/dist/front/validate/anchors.d.ts +15 -0
  264. package/dist/front/validate/anchors.d.ts.map +1 -0
  265. package/dist/front/validate/anchors.js +43 -0
  266. package/dist/front/validate/anchors.js.map +1 -0
  267. package/dist/front/validate/index.d.ts +16 -0
  268. package/dist/front/validate/index.d.ts.map +1 -0
  269. package/dist/front/validate/index.js +139 -0
  270. package/dist/front/validate/index.js.map +1 -0
  271. package/dist/front/validate/legacy.d.ts +9 -0
  272. package/dist/front/validate/legacy.d.ts.map +1 -0
  273. package/dist/front/validate/legacy.js +102 -0
  274. package/dist/front/validate/legacy.js.map +1 -0
  275. package/dist/front/validate/report.d.ts +14 -0
  276. package/dist/front/validate/report.d.ts.map +1 -0
  277. package/dist/front/validate/report.js +29 -0
  278. package/dist/front/validate/report.js.map +1 -0
  279. package/dist/front/validate/template.d.ts +31 -0
  280. package/dist/front/validate/template.d.ts.map +1 -0
  281. package/dist/front/validate/template.js +507 -0
  282. package/dist/front/validate/template.js.map +1 -0
  283. package/dist/front/wording.d.ts +4 -0
  284. package/dist/front/wording.d.ts.map +1 -0
  285. package/dist/front/wording.js +110 -0
  286. package/dist/front/wording.js.map +1 -0
  287. package/dist/shared/format.d.ts +3 -0
  288. package/dist/shared/format.d.ts.map +1 -0
  289. package/dist/shared/format.js +7 -0
  290. package/dist/shared/format.js.map +1 -0
  291. package/easing.d.ts +2 -0
  292. package/elements.d.ts +1220 -0
  293. package/index.d.ts +2 -0
  294. package/motion.d.ts +2 -0
  295. package/package.json +123 -5
  296. package/src/compiler/diagnostics.ts +233 -0
  297. package/src/compiler/index.ts +292 -0
  298. package/src/compiler/options.ts +140 -0
  299. package/src/compiler/preprocess/decode.ts +85 -0
  300. package/src/compiler/preprocess/index.ts +299 -0
  301. package/src/compiler/preprocess/mapped.ts +146 -0
  302. package/src/compiler/proxy.ts +154 -0
  303. package/src/entries/action.ts +1 -0
  304. package/src/entries/animate.ts +1 -0
  305. package/src/entries/attachments.ts +1 -0
  306. package/src/entries/context.ts +50 -0
  307. package/src/entries/easing.ts +1 -0
  308. package/src/entries/events.ts +1 -0
  309. package/src/entries/index-server.ts +17 -0
  310. package/src/entries/index.ts +41 -0
  311. package/src/entries/internal/client.ts +15 -0
  312. package/src/entries/internal/disclose-version.ts +4 -0
  313. package/src/entries/internal/index.ts +3 -0
  314. package/src/entries/internal/server.ts +8 -0
  315. package/src/entries/internal/tracing.ts +1 -0
  316. package/src/entries/motion-server.ts +1 -0
  317. package/src/entries/motion.ts +1 -0
  318. package/src/entries/proxy.ts +86 -0
  319. package/src/entries/reactivity-server.ts +9 -0
  320. package/src/entries/reactivity.ts +9 -0
  321. package/src/entries/report.ts +81 -0
  322. package/src/entries/server.ts +76 -0
  323. package/src/entries/store-client.ts +80 -0
  324. package/src/entries/store-server.ts +44 -0
  325. package/src/entries/store.ts +201 -0
  326. package/src/entries/transition.ts +1 -0
  327. package/src/entries/window-server.ts +1 -0
  328. package/src/entries/window.ts +1 -0
  329. package/src/front/ast.ts +369 -0
  330. package/src/front/diagnostics.ts +53 -0
  331. package/src/front/ignores.ts +84 -0
  332. package/src/front/index.ts +86 -0
  333. package/src/front/legacy.ts +414 -0
  334. package/src/front/locate.ts +20 -0
  335. package/src/front/lower.ts +509 -0
  336. package/src/front/parse/attribute.ts +319 -0
  337. package/src/front/parse/bracket.ts +99 -0
  338. package/src/front/parse/characters.ts +19 -0
  339. package/src/front/parse/decode.ts +87 -0
  340. package/src/front/parse/element.ts +354 -0
  341. package/src/front/parse/entities.ts +2233 -0
  342. package/src/front/parse/expression.ts +85 -0
  343. package/src/front/parse/html.ts +158 -0
  344. package/src/front/parse/identifier.ts +29 -0
  345. package/src/front/parse/index.ts +88 -0
  346. package/src/front/parse/js.ts +284 -0
  347. package/src/front/parse/options.ts +194 -0
  348. package/src/front/parse/parser.ts +189 -0
  349. package/src/front/parse/pattern.ts +57 -0
  350. package/src/front/parse/script.ts +74 -0
  351. package/src/front/parse/style.ts +399 -0
  352. package/src/front/parse/tag.ts +601 -0
  353. package/src/front/print/css.ts +239 -0
  354. package/src/front/print/index.ts +40 -0
  355. package/src/front/print/layout.ts +87 -0
  356. package/src/front/print/template.ts +448 -0
  357. package/src/front/runes.ts +267 -0
  358. package/src/front/stores.ts +98 -0
  359. package/src/front/typescript.ts +178 -0
  360. package/src/front/validate/anchors.ts +54 -0
  361. package/src/front/validate/index.ts +174 -0
  362. package/src/front/validate/legacy.ts +119 -0
  363. package/src/front/validate/report.ts +38 -0
  364. package/src/front/validate/template.ts +549 -0
  365. package/src/front/wording.ts +112 -0
  366. package/src/shared/format.ts +8 -0
  367. package/store.d.ts +2 -0
  368. package/svelte-html.d.ts +53 -0
  369. package/transition.d.ts +2 -0
  370. package/types/compiler/interfaces.d.ts +2 -0
  371. package/types/compiler/preprocess.d.ts +2 -0
  372. package/types/index.d.ts +1453 -0
  373. package/README.md +0 -3
@@ -0,0 +1,44 @@
1
+ import { get, writable, type Readable, type Writable } from './store.ts';
2
+
3
+ export { derived, get, readable, readonly, writable } from './store.ts';
4
+ export type {
5
+ Readable,
6
+ StartStopNotifier,
7
+ Subscriber,
8
+ Unsubscriber,
9
+ Updater,
10
+ Writable
11
+ } from './store.ts';
12
+
13
+ export function toStore<T>(read: () => T, write: (value: T) => void): Writable<T>;
14
+ export function toStore<T>(read: () => T): Readable<T>;
15
+ export function toStore<T>(read: () => T, write?: (value: T) => void): Readable<T> | Writable<T> {
16
+ const store = writable(read());
17
+ return write === undefined
18
+ ? { subscribe: store.subscribe, subscribeSync: store.subscribeSync }
19
+ : {
20
+ subscribe: store.subscribe,
21
+ subscribeSync: store.subscribeSync,
22
+ set: write,
23
+ update: (fn) => write(fn(read()))
24
+ };
25
+ }
26
+
27
+ export function fromStore<T>(store: Writable<T>): { current: T };
28
+ export function fromStore<T>(store: Readable<T>): { readonly current: T };
29
+ export function fromStore<T>(store: Readable<T>): { readonly current: T } {
30
+ return 'set' in store
31
+ ? {
32
+ get current() {
33
+ return get(store);
34
+ },
35
+ set current(value: T) {
36
+ (store as Writable<T>).set(value);
37
+ }
38
+ }
39
+ : {
40
+ get current() {
41
+ return get(store);
42
+ }
43
+ };
44
+ }
@@ -0,0 +1,201 @@
1
+ import { untrack } from 'vigla/internal/index-client';
2
+ import type { Subscribable } from 'vigla';
3
+
4
+ export type Subscriber<T> = (value: T) => void;
5
+ export type Unsubscriber = () => void;
6
+ export type Updater<T> = (value: T) => T;
7
+ export type StartStopNotifier<T> = (
8
+ set: (value: T) => void,
9
+ update: (fn: Updater<T>) => void
10
+ ) => void | Unsubscriber;
11
+
12
+ export interface Readable<T> extends Subscribable<T> {
13
+ subscribe(this: void, run: Subscriber<T>, invalidate?: () => void): Unsubscriber;
14
+ subscribeSync?(run: Subscriber<T>): Unsubscriber;
15
+ }
16
+
17
+ export interface Writable<T> extends Readable<T> {
18
+ set(this: void, value: T): void;
19
+ update(this: void, updater: Updater<T>): void;
20
+ }
21
+
22
+ interface Subscription<T> {
23
+ readonly run: Subscriber<T>;
24
+ readonly invalidate: () => void;
25
+ readonly sync: boolean;
26
+ version: number;
27
+ }
28
+
29
+ export type Stores = Readable<unknown> | readonly Readable<unknown>[];
30
+ export type StoresValues<S> =
31
+ S extends Readable<infer T> ? T : { [K in keyof S]: S[K] extends Readable<infer T> ? T : never };
32
+
33
+ const notifications: (() => void)[] = [];
34
+ let publishing = false;
35
+ const noop = (): void => {};
36
+
37
+ function changed<T>(before: T, after: T): boolean {
38
+ return before !== before
39
+ ? after === after
40
+ : before !== after ||
41
+ (before !== null && typeof before === 'object') ||
42
+ typeof before === 'function';
43
+ }
44
+
45
+ export function subscribe<T>(
46
+ store: Readable<T> | null | undefined,
47
+ run: Subscriber<T>,
48
+ invalidate?: () => void,
49
+ sync = false
50
+ ): Unsubscriber {
51
+ if (store == null) {
52
+ run(undefined as T);
53
+ invalidate?.();
54
+ return noop;
55
+ }
56
+ const release = untrack(() =>
57
+ sync && store.subscribeSync ? store.subscribeSync(run) : store.subscribe(run, invalidate)
58
+ );
59
+ return typeof release === 'function'
60
+ ? release
61
+ : () => (release as { unsubscribe(): void }).unsubscribe();
62
+ }
63
+
64
+ export function writable<T = undefined>(value?: T, start?: StartStopNotifier<T>): Writable<T> {
65
+ let current = value as T;
66
+ let stop: Unsubscriber | undefined;
67
+ let version = 0;
68
+ const subscribers = new Set<Subscription<T>>();
69
+ const set = (next: T): void => {
70
+ if (!changed(current, next)) return;
71
+ current = next;
72
+ if (stop === undefined) return;
73
+ const publication = ++version;
74
+ const drain = !publishing;
75
+ publishing = true;
76
+ try {
77
+ for (const subscriber of subscribers) {
78
+ subscriber.invalidate();
79
+ if (!subscriber.sync) {
80
+ const value = current;
81
+ notifications.push(() => subscriber.run(value));
82
+ }
83
+ }
84
+ for (const subscriber of subscribers) {
85
+ if (subscriber.sync && subscriber.version < publication) {
86
+ subscriber.version = publication;
87
+ subscriber.run(current);
88
+ }
89
+ }
90
+ if (drain) {
91
+ for (let index = 0; index < notifications.length; index++) notifications[index]?.();
92
+ }
93
+ } finally {
94
+ if (drain) {
95
+ notifications.length = 0;
96
+ publishing = false;
97
+ }
98
+ }
99
+ };
100
+ const update = (fn: Updater<T>): void => set(fn(current));
101
+ const listen = (run: Subscriber<T>, invalidate: () => void, sync: boolean): Unsubscriber => {
102
+ const subscriber = { run, invalidate, sync, version };
103
+ subscribers.add(subscriber);
104
+ if (subscribers.size === 1) stop = start?.(set, update) || noop;
105
+ run(current);
106
+ return () => {
107
+ subscribers.delete(subscriber);
108
+ if (subscribers.size === 0 && stop !== undefined) {
109
+ stop();
110
+ stop = undefined;
111
+ }
112
+ };
113
+ };
114
+ return {
115
+ set,
116
+ update,
117
+ subscribe: (run, invalidate = noop) => listen(run, invalidate, false),
118
+ subscribeSync: (run) => listen(run, noop, true)
119
+ };
120
+ }
121
+
122
+ export function readable<T = undefined>(value?: T, start?: StartStopNotifier<T>): Readable<T> {
123
+ const store = writable(value, start);
124
+ return { subscribe: store.subscribe, subscribeSync: store.subscribeSync };
125
+ }
126
+
127
+ export function derived<S extends Stores, T>(
128
+ stores: S,
129
+ fn: (
130
+ values: StoresValues<S>,
131
+ set: (value: T) => void,
132
+ update: (fn: Updater<T>) => void
133
+ ) => Unsubscriber | void,
134
+ initial?: T
135
+ ): Readable<T>;
136
+ export function derived<S extends Stores, T>(
137
+ stores: S,
138
+ fn: (values: StoresValues<S>) => T,
139
+ initial?: T
140
+ ): Readable<T>;
141
+ export function derived<S extends Stores, T>(
142
+ stores: S,
143
+ fn: (
144
+ values: StoresValues<S>,
145
+ set: (value: T) => void,
146
+ update: (fn: Updater<T>) => void
147
+ ) => T | Unsubscriber | void,
148
+ initial?: T
149
+ ): Readable<T> {
150
+ const inputs: readonly Readable<unknown>[] = Array.isArray(stores)
151
+ ? stores
152
+ : [stores as Readable<unknown>];
153
+ if (inputs.some((input) => !input))
154
+ throw new Error('derived() expects stores as input, got a falsy value');
155
+ return readable(initial, (set, update) => {
156
+ const values: unknown[] = [];
157
+ const pending = new Set<number>();
158
+ let active = false;
159
+ let cleanup: Unsubscriber = noop;
160
+ const sync = (): void => {
161
+ if (pending.size > 0) return;
162
+ cleanup();
163
+ const value = (Array.isArray(stores) ? values : values[0]) as StoresValues<S>;
164
+ const result = fn(value, set, update);
165
+ if (fn.length < 2) set(result as T);
166
+ else cleanup = typeof result === 'function' ? (result as Unsubscriber) : noop;
167
+ };
168
+ const releases = inputs.map((input, index) =>
169
+ subscribe(
170
+ input,
171
+ (value) => {
172
+ values[index] = value;
173
+ pending.delete(index);
174
+ if (active) sync();
175
+ },
176
+ () => pending.add(index)
177
+ )
178
+ );
179
+ active = true;
180
+ sync();
181
+ return () => {
182
+ for (const release of releases) release();
183
+ cleanup();
184
+ active = false;
185
+ };
186
+ });
187
+ }
188
+
189
+ export function readonly<T>(store: Readable<T>): Readable<T> {
190
+ const sync = store.subscribeSync;
191
+ return {
192
+ subscribe: (run, invalidate) => store.subscribe(run, invalidate),
193
+ ...(sync ? { subscribeSync: (run: Subscriber<T>) => sync.call(store, run) } : {})
194
+ };
195
+ }
196
+
197
+ export function get<T>(store: Readable<T>): T {
198
+ let value: T;
199
+ subscribe(store, (current) => (value = current))();
200
+ return value!;
201
+ }
@@ -0,0 +1 @@
1
+ export * from 'vigla/transition';
@@ -0,0 +1 @@
1
+ export * from 'vigla/internal/window-server';
@@ -0,0 +1 @@
1
+ export * from 'vigla/internal/window-client';
@@ -0,0 +1,369 @@
1
+ import type * as ES from 'estree';
2
+
3
+ export interface Located {
4
+ start: number;
5
+ end: number;
6
+ }
7
+
8
+ export interface Position {
9
+ line: number;
10
+ column: number;
11
+ character: number;
12
+ }
13
+
14
+ export interface NameLocation {
15
+ start: Position;
16
+ end: Position;
17
+ }
18
+
19
+ export type Expression = ES.Expression & Partial<Located>;
20
+
21
+ export type Pattern = ES.Pattern & Partial<Located>;
22
+
23
+ export interface JSComment extends Located {
24
+ type: 'Line' | 'Block';
25
+ value: string;
26
+ loc?: { start: { line: number; column: number }; end: { line: number; column: number } };
27
+ }
28
+
29
+ export interface Fragment {
30
+ type: 'Fragment';
31
+ nodes: TemplateNode[];
32
+ }
33
+
34
+ export interface Text extends Located {
35
+ type: 'Text';
36
+ raw: string;
37
+ data: string;
38
+ }
39
+
40
+ export interface Comment extends Located {
41
+ type: 'Comment';
42
+ data: string;
43
+ }
44
+
45
+ export interface ExpressionTag extends Located {
46
+ type: 'ExpressionTag';
47
+ expression: Expression;
48
+ }
49
+
50
+ export interface HtmlTag extends Located {
51
+ type: 'HtmlTag';
52
+ expression: Expression;
53
+ }
54
+
55
+ export interface ConstTag extends Located {
56
+ type: 'ConstTag';
57
+ declaration: ES.VariableDeclaration &
58
+ Located & { declarations: [ES.VariableDeclarator & Located] };
59
+ }
60
+
61
+ export interface DeclarationTag extends Located {
62
+ type: 'DeclarationTag';
63
+ declaration: ES.VariableDeclaration & Located;
64
+ }
65
+
66
+ export interface DebugTag extends Located {
67
+ type: 'DebugTag';
68
+ identifiers: (ES.Identifier & Located)[];
69
+ }
70
+
71
+ export interface RenderTag extends Located {
72
+ type: 'RenderTag';
73
+ expression: (ES.SimpleCallExpression | ES.ChainExpression) & Located;
74
+ }
75
+
76
+ export interface AttachTag extends Located {
77
+ type: 'AttachTag';
78
+ expression: Expression;
79
+ }
80
+
81
+ export type AttributeValue = true | ExpressionTag | (Text | ExpressionTag)[];
82
+
83
+ export interface Attribute extends Located {
84
+ type: 'Attribute';
85
+ name: string;
86
+ name_loc: NameLocation | null;
87
+ value: AttributeValue;
88
+ }
89
+
90
+ export interface SpreadAttribute extends Located {
91
+ type: 'SpreadAttribute';
92
+ expression: Expression;
93
+ }
94
+
95
+ export type DirectiveType =
96
+ | 'AnimateDirective'
97
+ | 'BindDirective'
98
+ | 'ClassDirective'
99
+ | 'LetDirective'
100
+ | 'OnDirective'
101
+ | 'TransitionDirective'
102
+ | 'UseDirective';
103
+
104
+ export interface Directive extends Located {
105
+ type: DirectiveType;
106
+ name: string;
107
+ name_loc: NameLocation | null;
108
+ expression: Expression | null;
109
+ modifiers: string[];
110
+ intro?: boolean;
111
+ outro?: boolean;
112
+ }
113
+
114
+ export interface StyleDirective extends Located {
115
+ type: 'StyleDirective';
116
+ name: string;
117
+ name_loc: NameLocation | null;
118
+ modifiers: string[];
119
+ value: AttributeValue;
120
+ }
121
+
122
+ export type AttributeLike = Attribute | SpreadAttribute | Directive | StyleDirective | AttachTag;
123
+
124
+ export type ElementType =
125
+ | 'RegularElement'
126
+ | 'Component'
127
+ | 'TitleElement'
128
+ | 'SlotElement'
129
+ | 'SvelteHead'
130
+ | 'SvelteOptions'
131
+ | 'SvelteWindow'
132
+ | 'SvelteDocument'
133
+ | 'SvelteBody'
134
+ | 'SvelteElement'
135
+ | 'SvelteComponent'
136
+ | 'SvelteSelf'
137
+ | 'SvelteFragment'
138
+ | 'SvelteBoundary';
139
+
140
+ export interface ElementLike extends Located {
141
+ type: ElementType;
142
+ name: string;
143
+ name_loc: NameLocation;
144
+ attributes: AttributeLike[];
145
+ fragment: Fragment;
146
+ tag?: Expression;
147
+ expression?: Expression;
148
+ }
149
+
150
+ export interface IfBlock extends Located {
151
+ type: 'IfBlock';
152
+ elseif: boolean;
153
+ test: Expression;
154
+ consequent: Fragment;
155
+ alternate: Fragment | null;
156
+ }
157
+
158
+ export interface EachBlock extends Located {
159
+ type: 'EachBlock';
160
+ expression: Expression;
161
+ context: Pattern | null;
162
+ body: Fragment;
163
+ fallback?: Fragment;
164
+ index?: string;
165
+ key?: Expression;
166
+ }
167
+
168
+ export interface AwaitBlock extends Located {
169
+ type: 'AwaitBlock';
170
+ expression: Expression;
171
+ value: Pattern | null;
172
+ error: Pattern | null;
173
+ pending: Fragment | null;
174
+ then: Fragment | null;
175
+ catch: Fragment | null;
176
+ }
177
+
178
+ export interface KeyBlock extends Located {
179
+ type: 'KeyBlock';
180
+ expression: Expression;
181
+ fragment: Fragment;
182
+ }
183
+
184
+ export interface SnippetBlock extends Located {
185
+ type: 'SnippetBlock';
186
+ expression: ES.Identifier & Located;
187
+ typeParams?: string;
188
+ parameters: Pattern[];
189
+ body: Fragment;
190
+ }
191
+
192
+ export type Tag = ExpressionTag | HtmlTag | ConstTag | DeclarationTag | DebugTag | RenderTag;
193
+
194
+ export type Block = IfBlock | EachBlock | AwaitBlock | KeyBlock | SnippetBlock;
195
+
196
+ export type TemplateNode = Text | Comment | Tag | Block | ElementLike;
197
+
198
+ export interface Script extends Located {
199
+ type: 'Script';
200
+ context: 'default' | 'module';
201
+ content: ES.Program & Located;
202
+ attributes: AttributeLike[];
203
+ }
204
+
205
+ export interface CustomElementProp {
206
+ type?: 'String' | 'Number' | 'Boolean' | 'Array' | 'Object';
207
+ reflect?: boolean;
208
+ attribute?: string;
209
+ }
210
+
211
+ export interface CustomElementOptions {
212
+ tag?: string;
213
+ shadow?: 'open' | 'none' | ES.ObjectExpression;
214
+ props?: Record<string, CustomElementProp>;
215
+ extend?: Expression;
216
+ }
217
+
218
+ export interface SvelteOptions extends Located {
219
+ attributes: AttributeLike[];
220
+ runes?: boolean;
221
+ immutable?: boolean;
222
+ accessors?: boolean;
223
+ preserveWhitespace?: boolean;
224
+ namespace?: 'html' | 'svg' | 'mathml';
225
+ css?: 'injected';
226
+ customElement?: CustomElementOptions;
227
+ }
228
+
229
+ export interface Root extends Located {
230
+ type: 'Root';
231
+ css: Css.StyleSheet | null;
232
+ js: never[];
233
+ fragment: Fragment;
234
+ options: SvelteOptions | null;
235
+ comments: JSComment[];
236
+ instance?: Script;
237
+ module?: Script;
238
+ }
239
+
240
+ export namespace Css {
241
+ export interface Comment extends Located {
242
+ type: 'CSSComment';
243
+ value: string;
244
+ position?: number;
245
+ }
246
+
247
+ export interface StyleSheet extends Located {
248
+ type: 'StyleSheet';
249
+ attributes: AttributeLike[];
250
+ children: (Rule | Atrule)[];
251
+ comments: Comment[];
252
+ content: {
253
+ start: number;
254
+ end: number;
255
+ styles: string;
256
+ comment: import('./ast.ts').Comment | null;
257
+ };
258
+ }
259
+
260
+ export interface Atrule extends Located {
261
+ type: 'Atrule';
262
+ name: string;
263
+ prelude: string;
264
+ block: Block | null;
265
+ }
266
+
267
+ export interface Rule extends Located {
268
+ type: 'Rule';
269
+ prelude: SelectorList;
270
+ block: Block;
271
+ }
272
+
273
+ export interface SelectorList extends Located {
274
+ type: 'SelectorList';
275
+ children: ComplexSelector[];
276
+ }
277
+
278
+ export interface ComplexSelector extends Located {
279
+ type: 'ComplexSelector';
280
+ children: RelativeSelector[];
281
+ }
282
+
283
+ export interface RelativeSelector extends Located {
284
+ type: 'RelativeSelector';
285
+ combinator: Combinator | null;
286
+ selectors: SimpleSelector[];
287
+ }
288
+
289
+ export interface Combinator extends Located {
290
+ type: 'Combinator';
291
+ name: string;
292
+ }
293
+
294
+ export interface Named extends Located {
295
+ name: string;
296
+ }
297
+
298
+ export interface TypeSelector extends Named {
299
+ type: 'TypeSelector';
300
+ namespace?: string;
301
+ }
302
+
303
+ export interface IdSelector extends Named {
304
+ type: 'IdSelector';
305
+ }
306
+
307
+ export interface ClassSelector extends Named {
308
+ type: 'ClassSelector';
309
+ }
310
+
311
+ export interface NestingSelector extends Named {
312
+ type: 'NestingSelector';
313
+ }
314
+
315
+ export interface PseudoElementSelector extends Named {
316
+ type: 'PseudoElementSelector';
317
+ args?: SelectorList;
318
+ }
319
+
320
+ export interface PseudoClassSelector extends Named {
321
+ type: 'PseudoClassSelector';
322
+ args: SelectorList | null;
323
+ }
324
+
325
+ export interface AttributeSelector extends Named {
326
+ type: 'AttributeSelector';
327
+ matcher: string | null;
328
+ value: string | null;
329
+ flags: string | null;
330
+ }
331
+
332
+ export interface Nth extends Located {
333
+ type: 'Nth';
334
+ value: string;
335
+ }
336
+
337
+ export interface Percentage extends Located {
338
+ type: 'Percentage';
339
+ value: string;
340
+ }
341
+
342
+ export type SimpleSelector =
343
+ | TypeSelector
344
+ | IdSelector
345
+ | ClassSelector
346
+ | NestingSelector
347
+ | PseudoElementSelector
348
+ | PseudoClassSelector
349
+ | AttributeSelector
350
+ | Nth
351
+ | Percentage;
352
+
353
+ export interface Block extends Located {
354
+ type: 'Block';
355
+ children: (Declaration | Rule | Atrule)[];
356
+ }
357
+
358
+ export interface Declaration extends Located {
359
+ type: 'Declaration';
360
+ property: string;
361
+ value: string;
362
+ }
363
+
364
+ export interface StyleSheetFile extends Located {
365
+ type: 'StyleSheetFile';
366
+ children: (Rule | Atrule)[];
367
+ comments: Comment[];
368
+ }
369
+ }
@@ -0,0 +1,53 @@
1
+ import { CompileError, errorMessage, warningMessage, type Diagnostic } from 'vigla/compiler';
2
+ import { warningCodes as codes, wording } from './wording.ts';
3
+
4
+ export type At = number | { readonly start?: number | null; readonly end?: number | null };
5
+
6
+ export type Args = Readonly<Record<string, string | null | undefined>>;
7
+
8
+ function span(at: At): { start: number; end: number } {
9
+ if (typeof at === 'number') return { start: at, end: at };
10
+ const start = at.start ?? 0;
11
+ return { start, end: at.end ?? start };
12
+ }
13
+
14
+ export function diagnostic(code: string, at: At, args: Args = {}): Diagnostic {
15
+ return { code, message: errorMessage(code, args, wording), ...span(at) };
16
+ }
17
+
18
+ export function fail(code: string, at: At, args: Args = {}): never {
19
+ throw new CompileError(diagnostic(code, at, args));
20
+ }
21
+
22
+ const legacyMessages: Readonly<Record<string, (args: Args) => string>> = {
23
+ component_event_directive_invalid: ({ name }) =>
24
+ `\`on:${name}\` on a component is Svelte 4 event syntax, which is not supported — pass a callback prop such as \`on${name}={...}\` instead`,
25
+ let_directive_invalid: () =>
26
+ '`let:` directives belong to Svelte 4 slots, which are not supported — use snippets instead',
27
+ svelte_fragment_invalid: () =>
28
+ '`<svelte:fragment>` belongs to Svelte 4 slots, which are not supported — use snippets instead',
29
+ slot_attribute_unsupported: () =>
30
+ "The `slot` attribute assigns content to a component's Svelte 4 slot, which is not supported — pass a snippet instead",
31
+ runes_mode_required: () =>
32
+ 'Components must use runes mode — `runes: false` and legacy mode are not supported'
33
+ };
34
+
35
+ export function legacy(code: string, at: At, args: Args = {}): never {
36
+ const own = legacyMessages[code];
37
+ const message = own === undefined ? warningMessage(code, args, wording) : own(args);
38
+ throw new CompileError({ code, message, ...span(at) });
39
+ }
40
+
41
+ export function unsupported(what: string, at: At): never {
42
+ throw new CompileError({
43
+ code: 'unsupported',
44
+ message: `${what} is not supported yet`,
45
+ ...span(at)
46
+ });
47
+ }
48
+
49
+ export function warning(code: string, at: At, args: Args = {}): Diagnostic {
50
+ return { code, message: warningMessage(code, args, wording), ...span(at) };
51
+ }
52
+
53
+ export const warningCodes: readonly string[] = codes;