@ohos-ports/stacksjs-stx 0.2.287-beta.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 (946) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +1042 -0
  3. package/dist/a11y.d.ts +256 -0
  4. package/dist/a11y.js +671 -0
  5. package/dist/analytics.d.ts +40 -0
  6. package/dist/analytics.js +159 -0
  7. package/dist/analyzer.d.ts +68 -0
  8. package/dist/analyzer.js +240 -0
  9. package/dist/animation.d.ts +123 -0
  10. package/dist/animation.js +688 -0
  11. package/dist/app-shell.d.ts +76 -0
  12. package/dist/app-shell.js +209 -0
  13. package/dist/app.d.ts +65 -0
  14. package/dist/app.js +79 -0
  15. package/dist/appearance-bootstrap.d.ts +54 -0
  16. package/dist/appearance-bootstrap.js +92 -0
  17. package/dist/asset-roots.d.ts +32 -0
  18. package/dist/asset-roots.js +7 -0
  19. package/dist/assets.d.ts +21 -0
  20. package/dist/assets.js +155 -0
  21. package/dist/ast.d.ts +265 -0
  22. package/dist/ast.js +630 -0
  23. package/dist/async-components.d.ts +123 -0
  24. package/dist/async-components.js +428 -0
  25. package/dist/auth.d.ts +13 -0
  26. package/dist/auth.js +12 -0
  27. package/dist/broadcasting.d.ts +77 -0
  28. package/dist/broadcasting.js +103 -0
  29. package/dist/browser-composables.d.ts +348 -0
  30. package/dist/browser-composables.js +606 -0
  31. package/dist/browser-core-imports.d.ts +12 -0
  32. package/dist/browser-core-imports.js +28 -0
  33. package/dist/build-assets.d.ts +32 -0
  34. package/dist/build-assets.js +29 -0
  35. package/dist/build-externalize-repeated.d.ts +34 -0
  36. package/dist/build-externalize-repeated.js +101 -0
  37. package/dist/build-externalize.d.ts +73 -0
  38. package/dist/build-externalize.js +80 -0
  39. package/dist/build-id.d.ts +57 -0
  40. package/dist/build-id.js +25 -0
  41. package/dist/build-message.d.ts +81 -0
  42. package/dist/build-message.js +65 -0
  43. package/dist/build-mode-detector.d.ts +26 -0
  44. package/dist/build-mode-detector.js +50 -0
  45. package/dist/build-optimizer.d.ts +101 -0
  46. package/dist/build-optimizer.js +433 -0
  47. package/dist/build-views.d.ts +56 -0
  48. package/dist/build-views.js +180 -0
  49. package/dist/build.d.ts +31 -0
  50. package/dist/build.js +34 -0
  51. package/dist/builtins/attrs.d.ts +49 -0
  52. package/dist/builtins/attrs.js +39 -0
  53. package/dist/builtins/drawer.d.ts +24 -0
  54. package/dist/builtins/drawer.js +37 -0
  55. package/dist/builtins/escape.d.ts +12 -0
  56. package/dist/builtins/escape.js +3 -0
  57. package/dist/builtins/icon.d.ts +45 -0
  58. package/dist/builtins/icon.js +100 -0
  59. package/dist/builtins/image-delivery.d.ts +16 -0
  60. package/dist/builtins/image-delivery.js +115 -0
  61. package/dist/builtins/image-placeholder.d.ts +78 -0
  62. package/dist/builtins/image-placeholder.js +137 -0
  63. package/dist/builtins/index.d.ts +26 -0
  64. package/dist/builtins/index.js +34 -0
  65. package/dist/builtins/modal.d.ts +26 -0
  66. package/dist/builtins/modal.js +38 -0
  67. package/dist/builtins/safe-image.d.ts +44 -0
  68. package/dist/builtins/safe-image.js +45 -0
  69. package/dist/builtins/stx-image.d.ts +29 -0
  70. package/dist/builtins/stx-image.js +222 -0
  71. package/dist/builtins/stx-link.d.ts +11 -0
  72. package/dist/builtins/stx-link.js +35 -0
  73. package/dist/builtins/stx-loading-indicator.d.ts +13 -0
  74. package/dist/builtins/stx-loading-indicator.js +35 -0
  75. package/dist/builtins/suspense.d.ts +30 -0
  76. package/dist/builtins/suspense.js +24 -0
  77. package/dist/builtins/toast.d.ts +19 -0
  78. package/dist/builtins/toast.js +42 -0
  79. package/dist/builtins/tooltip.d.ts +18 -0
  80. package/dist/builtins/tooltip.js +106 -0
  81. package/dist/builtins/transition-group.d.ts +27 -0
  82. package/dist/builtins/transition-group.js +22 -0
  83. package/dist/bun-shim.js +496 -0
  84. package/dist/bundle-analyzer/collector.d.ts +66 -0
  85. package/dist/bundle-analyzer/collector.js +233 -0
  86. package/dist/bundle-analyzer/index.d.ts +98 -0
  87. package/dist/bundle-analyzer/index.js +82 -0
  88. package/dist/bundle-analyzer/report.d.ts +39 -0
  89. package/dist/bundle-analyzer/report.js +318 -0
  90. package/dist/bundle-analyzer/treemap.d.ts +19 -0
  91. package/dist/bundle-analyzer/treemap.js +594 -0
  92. package/dist/bundle-analyzer.js +499 -0
  93. package/dist/caching.d.ts +69 -0
  94. package/dist/caching.js +135 -0
  95. package/dist/chunk-0y46fbkx.js +3 -0
  96. package/dist/chunk-122tyfre.js +2 -0
  97. package/dist/chunk-19nfvxfw.js +43 -0
  98. package/dist/chunk-1kah92n2.js +3 -0
  99. package/dist/chunk-1kms3b9d.js +2 -0
  100. package/dist/chunk-1q4y74mh.js +1194 -0
  101. package/dist/chunk-248e84r1.js +4 -0
  102. package/dist/chunk-24ps8kft.js +2 -0
  103. package/dist/chunk-2et5hxfv.js +2 -0
  104. package/dist/chunk-2r1rd8f0.js +2 -0
  105. package/dist/chunk-2tk1zkrz.js +2 -0
  106. package/dist/chunk-38ejahd9.js +3 -0
  107. package/dist/chunk-3zv4wz87.js +2 -0
  108. package/dist/chunk-4122k1bh.js +2 -0
  109. package/dist/chunk-45az9zht.js +2 -0
  110. package/dist/chunk-4qr85f07.js +2 -0
  111. package/dist/chunk-4ww3znrr.js +15 -0
  112. package/dist/chunk-54st8g2j.js +397 -0
  113. package/dist/chunk-58f0mthg.js +3 -0
  114. package/dist/chunk-5a19dhx5.js +2 -0
  115. package/dist/chunk-5kk8gsj2.js +3 -0
  116. package/dist/chunk-5w1e3yxs.js +499 -0
  117. package/dist/chunk-6gdycmxr.js +2 -0
  118. package/dist/chunk-6hmnaza7.js +4473 -0
  119. package/dist/chunk-71t0yan0.js +5 -0
  120. package/dist/chunk-74cv4ta1.js +3 -0
  121. package/dist/chunk-74v15e8z.js +2 -0
  122. package/dist/chunk-7b329e5v.js +3 -0
  123. package/dist/chunk-7q9mwh4v.js +84 -0
  124. package/dist/chunk-866y9d8b.js +8169 -0
  125. package/dist/chunk-8fwerspy.js +2 -0
  126. package/dist/chunk-8mjdpr94.js +147 -0
  127. package/dist/chunk-92mj1t26.js +60 -0
  128. package/dist/chunk-9b22663r.js +2 -0
  129. package/dist/chunk-9hjdgm4d.js +2 -0
  130. package/dist/chunk-9n0gvfrg.js +4 -0
  131. package/dist/chunk-9wr7zcad.js +18 -0
  132. package/dist/chunk-9y0g8kzt.js +358 -0
  133. package/dist/chunk-a0nfbmeh.js +3 -0
  134. package/dist/chunk-acn1b56m.js +1280 -0
  135. package/dist/chunk-awkq3xfx.js +2 -0
  136. package/dist/chunk-b6ej2fdf.js +1814 -0
  137. package/dist/chunk-b8rrnqry.js +2 -0
  138. package/dist/chunk-bfqfs07m.js +3022 -0
  139. package/dist/chunk-bs6kapy7.js +2 -0
  140. package/dist/chunk-btav940g.js +2 -0
  141. package/dist/chunk-bz820epz.js +3 -0
  142. package/dist/chunk-ccspd3mc.js +2 -0
  143. package/dist/chunk-csbgwaa5.js +2 -0
  144. package/dist/chunk-d8t4sjsp.js +2 -0
  145. package/dist/chunk-dap191q2.js +2 -0
  146. package/dist/chunk-de7fye10.js +4 -0
  147. package/dist/chunk-dgrt76d2.js +2 -0
  148. package/dist/chunk-dhh5q7qt.js +3 -0
  149. package/dist/chunk-dsffsqnt.js +2 -0
  150. package/dist/chunk-dtq7y5ym.js +2 -0
  151. package/dist/chunk-fed3xsp9.js +3 -0
  152. package/dist/chunk-ferav3bw.js +19 -0
  153. package/dist/chunk-fvhm8psm.js +3 -0
  154. package/dist/chunk-g4vpzv6b.js +2 -0
  155. package/dist/chunk-g9csmj0s.js +2 -0
  156. package/dist/chunk-gtcrpmz1.js +2 -0
  157. package/dist/chunk-h4xh8cms.js +4 -0
  158. package/dist/chunk-h8yqsz9m.js +2 -0
  159. package/dist/chunk-hcq5dw7a.js +2 -0
  160. package/dist/chunk-hm0xha6c.js +12 -0
  161. package/dist/chunk-hpybjwwf.js +8 -0
  162. package/dist/chunk-jegt35zh.js +2 -0
  163. package/dist/chunk-jr3jp3ev.js +8 -0
  164. package/dist/chunk-k56rjjc0.js +24 -0
  165. package/dist/chunk-kdh37tp8.js +194 -0
  166. package/dist/chunk-kxzb4et3.js +29 -0
  167. package/dist/chunk-mf4n3x1j.js +14 -0
  168. package/dist/chunk-mkd9kjgb.js +3 -0
  169. package/dist/chunk-mxfh1nxg.js +2 -0
  170. package/dist/chunk-n3ggrhb3.js +3 -0
  171. package/dist/chunk-nkb3scg6.js +8 -0
  172. package/dist/chunk-nnd4wq8j.js +231 -0
  173. package/dist/chunk-nsp1cw38.js +11 -0
  174. package/dist/chunk-nx5qkm8k.js +30 -0
  175. package/dist/chunk-p3242nck.js +2 -0
  176. package/dist/chunk-p98kfh94.js +2 -0
  177. package/dist/chunk-pkaabd8h.js +3 -0
  178. package/dist/chunk-pzm13sdc.js +3 -0
  179. package/dist/chunk-q4p5k2p3.js +2 -0
  180. package/dist/chunk-q9n5swx7.js +3 -0
  181. package/dist/chunk-qc1f74ek.js +3 -0
  182. package/dist/chunk-qpyjak7z.js +2 -0
  183. package/dist/chunk-qr82je1m.js +22 -0
  184. package/dist/chunk-qy73j6m4.js +288 -0
  185. package/dist/chunk-qzkhpsam.js +505 -0
  186. package/dist/chunk-r3ayvdz3.js +2 -0
  187. package/dist/chunk-r7r66978.js +2 -0
  188. package/dist/chunk-rbb7dvja.js +30 -0
  189. package/dist/chunk-refwkt87.js +71 -0
  190. package/dist/chunk-rj4kajww.js +2 -0
  191. package/dist/chunk-rp4rjjmf.js +2 -0
  192. package/dist/chunk-se0p17c2.js +898 -0
  193. package/dist/chunk-sj9pmene.js +2 -0
  194. package/dist/chunk-sscwkffs.js +2 -0
  195. package/dist/chunk-svpqxn2c.js +2 -0
  196. package/dist/chunk-t6nseeb9.js +351 -0
  197. package/dist/chunk-t8y1ggdy.js +2 -0
  198. package/dist/chunk-tndhnk9e.js +2 -0
  199. package/dist/chunk-v5e1gxwm.js +3 -0
  200. package/dist/chunk-vqxmxgaj.js +4 -0
  201. package/dist/chunk-vrrax298.js +2 -0
  202. package/dist/chunk-w3ycm4na.js +3 -0
  203. package/dist/chunk-wcm80anz.js +321 -0
  204. package/dist/chunk-wrzwgkbx.js +22 -0
  205. package/dist/chunk-x650vjcp.js +302 -0
  206. package/dist/chunk-xgnc1wy6.js +116 -0
  207. package/dist/chunk-xpp135ad.js +11 -0
  208. package/dist/chunk-xttsqmkm.js +216 -0
  209. package/dist/chunk-y11cxbxd.js +3757 -0
  210. package/dist/chunk-y7m2dpd3.js +341 -0
  211. package/dist/chunk-y98jsjqq.js +2 -0
  212. package/dist/chunk-ya386h70.js +2 -0
  213. package/dist/chunk-ydrz60kr.js +2 -0
  214. package/dist/chunk-ypmqf7tm.js +4 -0
  215. package/dist/chunk-z4jhj5e5.js +28 -0
  216. package/dist/chunk-zg75gjns.js +2 -0
  217. package/dist/chunk-zqqx1qaj.js +2 -0
  218. package/dist/cli-flags.d.ts +34 -0
  219. package/dist/cli-flags.js +20 -0
  220. package/dist/cli.js +174 -0
  221. package/dist/client/directive.d.ts +17 -0
  222. package/dist/client/directive.js +14 -0
  223. package/dist/client/index.d.ts +7 -0
  224. package/dist/client/index.js +2 -0
  225. package/dist/client-helpers.d.ts +317 -0
  226. package/dist/client-helpers.js +312 -0
  227. package/dist/client-script-bundler.d.ts +103 -0
  228. package/dist/client-script-bundler.js +390 -0
  229. package/dist/client-script.d.ts +215 -0
  230. package/dist/client-script.js +865 -0
  231. package/dist/client.d.ts +21 -0
  232. package/dist/client.js +73 -0
  233. package/dist/codemod.d.ts +33 -0
  234. package/dist/codemod.js +244 -0
  235. package/dist/color-mode-boot.d.ts +92 -0
  236. package/dist/color-mode-boot.js +72 -0
  237. package/dist/component-client-factories.d.ts +33 -0
  238. package/dist/component-client-factories.js +77 -0
  239. package/dist/component-hmr.d.ts +107 -0
  240. package/dist/component-hmr.js +585 -0
  241. package/dist/component-library.d.ts +38 -0
  242. package/dist/component-library.js +994 -0
  243. package/dist/component-processing.d.ts +198 -0
  244. package/dist/component-processing.js +677 -0
  245. package/dist/component-registry.d.ts +127 -0
  246. package/dist/component-registry.js +90 -0
  247. package/dist/component-renderer.d.ts +52 -0
  248. package/dist/component-renderer.js +790 -0
  249. package/dist/components/StxImage.stx +12 -0
  250. package/dist/components/StxLink.stx +18 -0
  251. package/dist/components.d.ts +28 -0
  252. package/dist/components.js +213 -0
  253. package/dist/composable-loader.d.ts +62 -0
  254. package/dist/composable-loader.js +190 -0
  255. package/dist/composables/index.d.ts +417 -0
  256. package/dist/composables/index.js +222 -0
  257. package/dist/composables/use-battery.d.ts +46 -0
  258. package/dist/composables/use-battery.js +101 -0
  259. package/dist/composables/use-broadcast-channel.d.ts +59 -0
  260. package/dist/composables/use-broadcast-channel.js +80 -0
  261. package/dist/composables/use-channel.d.ts +67 -0
  262. package/dist/composables/use-channel.js +124 -0
  263. package/dist/composables/use-clipboard.d.ts +30 -0
  264. package/dist/composables/use-clipboard.js +90 -0
  265. package/dist/composables/use-color-mode.d.ts +67 -0
  266. package/dist/composables/use-color-mode.js +152 -0
  267. package/dist/composables/use-cookie.d.ts +59 -0
  268. package/dist/composables/use-cookie.js +86 -0
  269. package/dist/composables/use-device-orientation.d.ts +116 -0
  270. package/dist/composables/use-device-orientation.js +181 -0
  271. package/dist/composables/use-event-listener.d.ts +35 -0
  272. package/dist/composables/use-event-listener.js +27 -0
  273. package/dist/composables/use-event-source.d.ts +90 -0
  274. package/dist/composables/use-event-source.js +166 -0
  275. package/dist/composables/use-eye-dropper.d.ts +117 -0
  276. package/dist/composables/use-eye-dropper.js +142 -0
  277. package/dist/composables/use-fetch.d.ts +59 -0
  278. package/dist/composables/use-fetch.js +273 -0
  279. package/dist/composables/use-form.d.ts +91 -0
  280. package/dist/composables/use-form.js +112 -0
  281. package/dist/composables/use-fullscreen.d.ts +47 -0
  282. package/dist/composables/use-fullscreen.js +110 -0
  283. package/dist/composables/use-geolocation.d.ts +62 -0
  284. package/dist/composables/use-geolocation.js +101 -0
  285. package/dist/composables/use-idle.d.ts +102 -0
  286. package/dist/composables/use-idle.js +182 -0
  287. package/dist/composables/use-intersection-observer.d.ts +83 -0
  288. package/dist/composables/use-intersection-observer.js +168 -0
  289. package/dist/composables/use-keyboard.d.ts +100 -0
  290. package/dist/composables/use-keyboard.js +224 -0
  291. package/dist/composables/use-media-query.d.ts +56 -0
  292. package/dist/composables/use-media-query.js +62 -0
  293. package/dist/composables/use-meta.d.ts +35 -0
  294. package/dist/composables/use-meta.js +48 -0
  295. package/dist/composables/use-mouse.d.ts +65 -0
  296. package/dist/composables/use-mouse.js +286 -0
  297. package/dist/composables/use-mutation-observer.d.ts +101 -0
  298. package/dist/composables/use-mutation-observer.js +129 -0
  299. package/dist/composables/use-network.d.ts +40 -0
  300. package/dist/composables/use-network.js +85 -0
  301. package/dist/composables/use-notification.d.ts +98 -0
  302. package/dist/composables/use-notification.js +94 -0
  303. package/dist/composables/use-permissions.d.ts +119 -0
  304. package/dist/composables/use-permissions.js +132 -0
  305. package/dist/composables/use-query.d.ts +48 -0
  306. package/dist/composables/use-query.js +0 -0
  307. package/dist/composables/use-resize-observer.d.ts +60 -0
  308. package/dist/composables/use-resize-observer.js +157 -0
  309. package/dist/composables/use-router.d.ts +80 -0
  310. package/dist/composables/use-router.js +105 -0
  311. package/dist/composables/use-scroll-lock.d.ts +13 -0
  312. package/dist/composables/use-scroll-lock.js +55 -0
  313. package/dist/composables/use-share.d.ts +74 -0
  314. package/dist/composables/use-share.js +104 -0
  315. package/dist/composables/use-speech.d.ts +117 -0
  316. package/dist/composables/use-speech.js +294 -0
  317. package/dist/composables/use-storage.d.ts +69 -0
  318. package/dist/composables/use-storage.js +196 -0
  319. package/dist/composables/use-text-selection.d.ts +121 -0
  320. package/dist/composables/use-text-selection.js +205 -0
  321. package/dist/composables/use-timer.d.ts +92 -0
  322. package/dist/composables/use-timer.js +193 -0
  323. package/dist/composables/use-utilities.d.ts +103 -0
  324. package/dist/composables/use-utilities.js +176 -0
  325. package/dist/composables/use-wake-lock.d.ts +85 -0
  326. package/dist/composables/use-wake-lock.js +122 -0
  327. package/dist/composables/use-websocket.d.ts +70 -0
  328. package/dist/composables/use-websocket.js +165 -0
  329. package/dist/composables/use-window.d.ts +84 -0
  330. package/dist/composables/use-window.js +163 -0
  331. package/dist/composables.d.ts +287 -0
  332. package/dist/composables.js +562 -0
  333. package/dist/composition-api.d.ts +197 -0
  334. package/dist/composition-api.js +199 -0
  335. package/dist/compression.d.ts +30 -0
  336. package/dist/compression.js +107 -0
  337. package/dist/computed.d.ts +138 -0
  338. package/dist/computed.js +382 -0
  339. package/dist/conditionals.d.ts +48 -0
  340. package/dist/conditionals.js +626 -0
  341. package/dist/config.d.ts +77 -0
  342. package/dist/config.js +828 -0
  343. package/dist/cookie-serialize.d.ts +40 -0
  344. package/dist/cookie-serialize.js +18 -0
  345. package/dist/craft-bridge.d.ts +525 -0
  346. package/dist/craft-bridge.js +511 -0
  347. package/dist/craft-compiler.d.ts +245 -0
  348. package/dist/craft-compiler.js +810 -0
  349. package/dist/craft-components.d.ts +739 -0
  350. package/dist/craft-components.js +1074 -0
  351. package/dist/craft-entry.d.ts +6 -0
  352. package/dist/craft-entry.js +9 -0
  353. package/dist/craft-ssr.d.ts +147 -0
  354. package/dist/craft-ssr.js +559 -0
  355. package/dist/craft.js +9 -0
  356. package/dist/csp.d.ts +295 -0
  357. package/dist/csp.js +220 -0
  358. package/dist/csrf.d.ts +38 -0
  359. package/dist/csrf.js +38 -0
  360. package/dist/custom-directives.d.ts +5 -0
  361. package/dist/custom-directives.js +136 -0
  362. package/dist/database.d.ts +391 -0
  363. package/dist/database.js +5 -0
  364. package/dist/defer.d.ts +28 -0
  365. package/dist/defer.js +156 -0
  366. package/dist/deploy/config-generators.d.ts +75 -0
  367. package/dist/deploy/config-generators.js +214 -0
  368. package/dist/deploy/index.d.ts +88 -0
  369. package/dist/deploy/index.js +203 -0
  370. package/dist/deploy/netlify.d.ts +109 -0
  371. package/dist/deploy/netlify.js +167 -0
  372. package/dist/desktop.d.ts +16 -0
  373. package/dist/desktop.js +1 -0
  374. package/dist/dev-server/index.d.ts +22 -0
  375. package/dist/dev-server/index.js +7 -0
  376. package/dist/dev-server/keyboard-shortcuts.d.ts +34 -0
  377. package/dist/dev-server/keyboard-shortcuts.js +81 -0
  378. package/dist/dev-server/native-window.d.ts +59 -0
  379. package/dist/dev-server/native-window.js +91 -0
  380. package/dist/dev-server/port-utils.d.ts +27 -0
  381. package/dist/dev-server/port-utils.js +40 -0
  382. package/dist/dev-server/serve-app.d.ts +15 -0
  383. package/dist/dev-server/serve-app.js +727 -0
  384. package/dist/dev-server/serve-file.d.ts +3 -0
  385. package/dist/dev-server/serve-file.js +443 -0
  386. package/dist/dev-server/serve-markdown.d.ts +3 -0
  387. package/dist/dev-server/serve-markdown.js +284 -0
  388. package/dist/dev-server/serve-multi.d.ts +5 -0
  389. package/dist/dev-server/serve-multi.js +596 -0
  390. package/dist/dev-server/terminal-colors.d.ts +56 -0
  391. package/dist/dev-server/terminal-colors.js +45 -0
  392. package/dist/dev-server/theme-selector.d.ts +32 -0
  393. package/dist/dev-server/theme-selector.js +111 -0
  394. package/dist/dev-server/ts-css.d.ts +108 -0
  395. package/dist/dev-server/ts-css.js +438 -0
  396. package/dist/dev-server/types.d.ts +99 -0
  397. package/dist/dev-server/types.js +43 -0
  398. package/dist/dev-server.d.ts +6 -0
  399. package/dist/dev-server.js +4 -0
  400. package/dist/devtools.d.ts +182 -0
  401. package/dist/devtools.js +593 -0
  402. package/dist/directive-api.d.ts +154 -0
  403. package/dist/directive-api.js +355 -0
  404. package/dist/docs.d.ts +56 -0
  405. package/dist/docs.js +567 -0
  406. package/dist/doctor.d.ts +29 -0
  407. package/dist/doctor.js +123 -0
  408. package/dist/document-shell.d.ts +218 -0
  409. package/dist/document-shell.js +338 -0
  410. package/dist/dynamic-components.d.ts +23 -0
  411. package/dist/dynamic-components.js +197 -0
  412. package/dist/edge-runtime.d.ts +193 -0
  413. package/dist/edge-runtime.js +525 -0
  414. package/dist/env.d.ts +3 -0
  415. package/dist/env.js +9 -0
  416. package/dist/error-boundaries.d.ts +78 -0
  417. package/dist/error-boundaries.js +281 -0
  418. package/dist/error-handling.d.ts +14 -0
  419. package/dist/error-handling.js +1 -0
  420. package/dist/errors/codes.d.ts +92 -0
  421. package/dist/errors/codes.js +97 -0
  422. package/dist/errors/formatter.d.ts +84 -0
  423. package/dist/errors/formatter.js +196 -0
  424. package/dist/errors/index.d.ts +12 -0
  425. package/dist/errors/index.js +44 -0
  426. package/dist/errors/logger.d.ts +135 -0
  427. package/dist/errors/logger.js +250 -0
  428. package/dist/errors/sanitizer.d.ts +73 -0
  429. package/dist/errors/sanitizer.js +181 -0
  430. package/dist/errors/types.d.ts +92 -0
  431. package/dist/errors/types.js +86 -0
  432. package/dist/events.d.ts +145 -0
  433. package/dist/events.js +396 -0
  434. package/dist/expressions.d.ts +180 -0
  435. package/dist/expressions.js +719 -0
  436. package/dist/find-body-tag.d.ts +50 -0
  437. package/dist/find-body-tag.js +57 -0
  438. package/dist/formatter.d.ts +19 -0
  439. package/dist/formatter.js +265 -0
  440. package/dist/forms-validation.d.ts +189 -0
  441. package/dist/forms-validation.js +421 -0
  442. package/dist/forms.d.ts +224 -0
  443. package/dist/forms.js +729 -0
  444. package/dist/fragment-container.d.ts +57 -0
  445. package/dist/fragment-container.js +123 -0
  446. package/dist/framework-composables.d.ts +73 -0
  447. package/dist/framework-composables.js +126 -0
  448. package/dist/head-injection.d.ts +61 -0
  449. package/dist/head-injection.js +28 -0
  450. package/dist/head.d.ts +282 -0
  451. package/dist/head.js +231 -0
  452. package/dist/heatmap.d.ts +206 -0
  453. package/dist/heatmap.js +566 -0
  454. package/dist/hot-reload.d.ts +87 -0
  455. package/dist/hot-reload.js +373 -0
  456. package/dist/html-masking.d.ts +125 -0
  457. package/dist/html-masking.js +196 -0
  458. package/dist/hydration-runtime.d.ts +44 -0
  459. package/dist/hydration-runtime.js +195 -0
  460. package/dist/hydration.d.ts +135 -0
  461. package/dist/hydration.js +654 -0
  462. package/dist/i18n.d.ts +342 -0
  463. package/dist/i18n.js +678 -0
  464. package/dist/image-optimization/auto-sibling.d.ts +42 -0
  465. package/dist/image-optimization/auto-sibling.js +88 -0
  466. package/dist/image-optimization/build-plugin.d.ts +54 -0
  467. package/dist/image-optimization/build-plugin.js +241 -0
  468. package/dist/image-optimization/component.d.ts +46 -0
  469. package/dist/image-optimization/component.js +244 -0
  470. package/dist/image-optimization/directive.d.ts +30 -0
  471. package/dist/image-optimization/directive.js +203 -0
  472. package/dist/image-optimization/index.d.ts +156 -0
  473. package/dist/image-optimization/index.js +54 -0
  474. package/dist/image-optimization/processor.d.ts +140 -0
  475. package/dist/image-optimization/processor.js +262 -0
  476. package/dist/image-optimization/serve.d.ts +54 -0
  477. package/dist/image-optimization/serve.js +102 -0
  478. package/dist/import-rebase.d.ts +16 -0
  479. package/dist/import-rebase.js +16 -0
  480. package/dist/imported-signals.d.ts +43 -0
  481. package/dist/imported-signals.js +35 -0
  482. package/dist/includes.d.ts +171 -0
  483. package/dist/includes.js +764 -0
  484. package/dist/index.d.ts +365 -0
  485. package/dist/index.js +202 -0
  486. package/dist/init.d.ts +39 -0
  487. package/dist/init.js +505 -0
  488. package/dist/inline-assets.d.ts +28 -0
  489. package/dist/inline-assets.js +82 -0
  490. package/dist/interactive.d.ts +14 -0
  491. package/dist/interactive.js +383 -0
  492. package/dist/internal-markdown.d.ts +22 -0
  493. package/dist/internal-markdown.js +141 -0
  494. package/dist/island-chunking.d.ts +48 -0
  495. package/dist/island-chunking.js +52 -0
  496. package/dist/isolated-build.d.ts +12 -0
  497. package/dist/isolated-build.js +18 -0
  498. package/dist/js-ts.d.ts +10 -0
  499. package/dist/js-ts.js +60 -0
  500. package/dist/jsx-runtime.d.ts +92 -0
  501. package/dist/jsx-runtime.js +289 -0
  502. package/dist/keep-alive.d.ts +108 -0
  503. package/dist/keep-alive.js +421 -0
  504. package/dist/layout-types.d.ts +45 -0
  505. package/dist/layout-types.js +56 -0
  506. package/dist/lazy-loader.d.ts +90 -0
  507. package/dist/lazy-loader.js +245 -0
  508. package/dist/lazy-module.d.ts +11 -0
  509. package/dist/lazy-module.js +18 -0
  510. package/dist/loading-indicator.d.ts +50 -0
  511. package/dist/loading-indicator.js +322 -0
  512. package/dist/loops.d.ts +91 -0
  513. package/dist/loops.js +690 -0
  514. package/dist/manifest.d.ts +41 -0
  515. package/dist/manifest.js +31 -0
  516. package/dist/markdown-view.d.ts +25 -0
  517. package/dist/markdown-view.js +39 -0
  518. package/dist/markdown.d.ts +10 -0
  519. package/dist/markdown.js +68 -0
  520. package/dist/media/client/blur-up.d.ts +66 -0
  521. package/dist/media/client/blur-up.js +217 -0
  522. package/dist/media/client/index.d.ts +93 -0
  523. package/dist/media/client/index.js +53 -0
  524. package/dist/media/client/lazy-load.d.ts +74 -0
  525. package/dist/media/client/lazy-load.js +283 -0
  526. package/dist/media/client/upload-handler.d.ts +80 -0
  527. package/dist/media/client/upload-handler.js +354 -0
  528. package/dist/media/image/component.d.ts +60 -0
  529. package/dist/media/image/component.js +574 -0
  530. package/dist/media/image/directive.d.ts +23 -0
  531. package/dist/media/image/directive.js +160 -0
  532. package/dist/media/image/editing.d.ts +212 -0
  533. package/dist/media/image/editing.js +193 -0
  534. package/dist/media/image/index.d.ts +142 -0
  535. package/dist/media/image/index.js +80 -0
  536. package/dist/media/image/placeholder.d.ts +89 -0
  537. package/dist/media/image/placeholder.js +188 -0
  538. package/dist/media/image/processor/cache.d.ts +53 -0
  539. package/dist/media/image/processor/cache.js +51 -0
  540. package/dist/media/image/processor/index.d.ts +11 -0
  541. package/dist/media/image/processor/index.js +3 -0
  542. package/dist/media/image/processor/optimizer.d.ts +24 -0
  543. package/dist/media/image/processor/optimizer.js +202 -0
  544. package/dist/media/image/processor/responsive.d.ts +28 -0
  545. package/dist/media/image/processor/responsive.js +162 -0
  546. package/dist/media/image/srcset.d.ts +157 -0
  547. package/dist/media/image/srcset.js +194 -0
  548. package/dist/media/index.d.ts +331 -0
  549. package/dist/media/index.js +198 -0
  550. package/dist/media/manager/embed.d.ts +25 -0
  551. package/dist/media/manager/embed.js +253 -0
  552. package/dist/media/protected/component.d.ts +33 -0
  553. package/dist/media/protected/component.js +235 -0
  554. package/dist/media/protected/index.d.ts +47 -0
  555. package/dist/media/protected/index.js +20 -0
  556. package/dist/media/protected/signature.d.ts +72 -0
  557. package/dist/media/protected/signature.js +205 -0
  558. package/dist/media/shared/cache.d.ts +76 -0
  559. package/dist/media/shared/cache.js +132 -0
  560. package/dist/media/shared/hash.d.ts +31 -0
  561. package/dist/media/shared/hash.js +35 -0
  562. package/dist/media/shared/index.d.ts +7 -0
  563. package/dist/media/shared/index.js +2 -0
  564. package/dist/media/types.d.ts +1477 -0
  565. package/dist/media/types.js +0 -0
  566. package/dist/media/upload/component.d.ts +9 -0
  567. package/dist/media/upload/component.js +320 -0
  568. package/dist/media/upload/index.d.ts +8 -0
  569. package/dist/media/upload/index.js +1 -0
  570. package/dist/media/video/directive.d.ts +23 -0
  571. package/dist/media/video/directive.js +142 -0
  572. package/dist/media/video/index.d.ts +76 -0
  573. package/dist/media/video/index.js +583 -0
  574. package/dist/media/video/processor/cache.d.ts +55 -0
  575. package/dist/media/video/processor/cache.js +52 -0
  576. package/dist/media/video/processor/index.d.ts +12 -0
  577. package/dist/media/video/processor/index.js +4 -0
  578. package/dist/media/video/processor/streaming.d.ts +26 -0
  579. package/dist/media/video/processor/streaming.js +197 -0
  580. package/dist/media/video/processor/thumbnail.d.ts +35 -0
  581. package/dist/media/video/processor/thumbnail.js +134 -0
  582. package/dist/media/video/processor/transcoder.d.ts +19 -0
  583. package/dist/media/video/processor/transcoder.js +283 -0
  584. package/dist/menubar.d.ts +65 -0
  585. package/dist/menubar.js +99 -0
  586. package/dist/method-spoofing.d.ts +20 -0
  587. package/dist/method-spoofing.js +17 -0
  588. package/dist/middleware.d.ts +112 -0
  589. package/dist/middleware.js +40 -0
  590. package/dist/misc-directives.d.ts +55 -0
  591. package/dist/misc-directives.js +328 -0
  592. package/dist/native-build.d.ts +88 -0
  593. package/dist/native-build.js +575 -0
  594. package/dist/owned-routes.d.ts +42 -0
  595. package/dist/owned-routes.js +26 -0
  596. package/dist/page-action.d.ts +73 -0
  597. package/dist/page-action.js +91 -0
  598. package/dist/page-meta.d.ts +38 -0
  599. package/dist/page-meta.js +16 -0
  600. package/dist/page-response.d.ts +120 -0
  601. package/dist/page-response.js +117 -0
  602. package/dist/parser/directive-parser.d.ts +119 -0
  603. package/dist/parser/directive-parser.js +249 -0
  604. package/dist/parser/expression-parser.d.ts +58 -0
  605. package/dist/parser/expression-parser.js +358 -0
  606. package/dist/parser/index.d.ts +13 -0
  607. package/dist/parser/index.js +23 -0
  608. package/dist/parser/tokenizer.d.ts +77 -0
  609. package/dist/parser/tokenizer.js +534 -0
  610. package/dist/partial-hydration.d.ts +123 -0
  611. package/dist/partial-hydration.js +427 -0
  612. package/dist/performance-utils.d.ts +318 -0
  613. package/dist/performance-utils.js +466 -0
  614. package/dist/placeholder.d.ts +54 -0
  615. package/dist/placeholder.js +35 -0
  616. package/dist/plugin-system.d.ts +301 -0
  617. package/dist/plugin-system.js +214 -0
  618. package/dist/plugin.d.ts +3 -0
  619. package/dist/plugin.js +174 -0
  620. package/dist/precompiler.d.ts +43 -0
  621. package/dist/precompiler.js +670 -0
  622. package/dist/process.d.ts +16 -0
  623. package/dist/process.js +879 -0
  624. package/dist/production-build.d.ts +163 -0
  625. package/dist/production-build.js +596 -0
  626. package/dist/production-builder.d.ts +42 -0
  627. package/dist/production-builder.js +146 -0
  628. package/dist/production-server.d.ts +19 -0
  629. package/dist/production-server.js +208 -0
  630. package/dist/prop-sentinels.d.ts +31 -0
  631. package/dist/prop-sentinels.js +7 -0
  632. package/dist/props.d.ts +216 -0
  633. package/dist/props.js +224 -0
  634. package/dist/public-env.d.ts +29 -0
  635. package/dist/public-env.js +19 -0
  636. package/dist/pwa/audit.d.ts +42 -0
  637. package/dist/pwa/audit.js +255 -0
  638. package/dist/pwa/directives.d.ts +38 -0
  639. package/dist/pwa/directives.js +332 -0
  640. package/dist/pwa/icons.d.ts +42 -0
  641. package/dist/pwa/icons.js +109 -0
  642. package/dist/pwa/index.d.ts +104 -0
  643. package/dist/pwa/index.js +47 -0
  644. package/dist/pwa/inject.d.ts +32 -0
  645. package/dist/pwa/inject.js +102 -0
  646. package/dist/pwa/manifest.d.ts +104 -0
  647. package/dist/pwa/manifest.js +186 -0
  648. package/dist/pwa/offline.d.ts +8 -0
  649. package/dist/pwa/offline.js +259 -0
  650. package/dist/pwa/precache.d.ts +35 -0
  651. package/dist/pwa/precache.js +116 -0
  652. package/dist/pwa/service-worker.d.ts +33 -0
  653. package/dist/pwa/service-worker.js +860 -0
  654. package/dist/pwa/workbox-strategies.d.ts +100 -0
  655. package/dist/pwa/workbox-strategies.js +167 -0
  656. package/dist/pwa/workbox.d.ts +51 -0
  657. package/dist/pwa/workbox.js +382 -0
  658. package/dist/pwa.d.ts +52 -0
  659. package/dist/pwa.js +236 -0
  660. package/dist/reactive-bindings.d.ts +47 -0
  661. package/dist/reactive-bindings.js +268 -0
  662. package/dist/reactive-tracking.d.ts +81 -0
  663. package/dist/reactive-tracking.js +49 -0
  664. package/dist/reactive.d.ts +117 -0
  665. package/dist/reactive.js +593 -0
  666. package/dist/reactivity.d.ts +206 -0
  667. package/dist/reactivity.js +574 -0
  668. package/dist/release.d.ts +1 -0
  669. package/dist/release.js +1 -0
  670. package/dist/render-memo.d.ts +40 -0
  671. package/dist/render-memo.js +33 -0
  672. package/dist/render.d.ts +54 -0
  673. package/dist/render.js +153 -0
  674. package/dist/resolve-stx-targets.d.ts +49 -0
  675. package/dist/resolve-stx-targets.js +38 -0
  676. package/dist/route-middleware.d.ts +2 -0
  677. package/dist/route-middleware.js +17 -0
  678. package/dist/route-types.d.ts +134 -0
  679. package/dist/route-types.js +24 -0
  680. package/dist/router.d.ts +9 -0
  681. package/dist/router.js +9 -0
  682. package/dist/routes.d.ts +6 -0
  683. package/dist/routes.js +14 -0
  684. package/dist/runtime-globals.d.ts +236 -0
  685. package/dist/runtime-globals.js +230 -0
  686. package/dist/runtime-injection.d.ts +113 -0
  687. package/dist/runtime-injection.js +156 -0
  688. package/dist/runtime.d.ts +140 -0
  689. package/dist/runtime.js +94 -0
  690. package/dist/safe-evaluator.d.ts +165 -0
  691. package/dist/safe-evaluator.js +461 -0
  692. package/dist/scaffolding.d.ts +113 -0
  693. package/dist/scaffolding.js +897 -0
  694. package/dist/screenshot.d.ts +22 -0
  695. package/dist/screenshot.js +100 -0
  696. package/dist/script-classifier.d.ts +41 -0
  697. package/dist/script-classifier.js +51 -0
  698. package/dist/script-emit.d.ts +50 -0
  699. package/dist/script-emit.js +11 -0
  700. package/dist/script-json.d.ts +36 -0
  701. package/dist/script-json.js +6 -0
  702. package/dist/script-validation.d.ts +26 -0
  703. package/dist/script-validation.js +179 -0
  704. package/dist/seo.d.ts +225 -0
  705. package/dist/seo.js +486 -0
  706. package/dist/serve.d.ts +44 -0
  707. package/dist/serve.js +233 -0
  708. package/dist/server-bindings.d.ts +39 -0
  709. package/dist/server-bindings.js +171 -0
  710. package/dist/server-components.d.ts +138 -0
  711. package/dist/server-components.js +427 -0
  712. package/dist/sfc-template.d.ts +17 -0
  713. package/dist/sfc-template.js +32 -0
  714. package/dist/signal-processing.d.ts +222 -0
  715. package/dist/signal-processing.js +1081 -0
  716. package/dist/signals-api.d.ts +459 -0
  717. package/dist/signals-api.js +172 -0
  718. package/dist/signals.d.ts +41 -0
  719. package/dist/signals.js +8233 -0
  720. package/dist/site-builder/build.d.ts +18 -0
  721. package/dist/site-builder/build.js +252 -0
  722. package/dist/site-builder/i18n.d.ts +104 -0
  723. package/dist/site-builder/i18n.js +150 -0
  724. package/dist/site-builder/index.d.ts +27 -0
  725. package/dist/site-builder/index.js +16 -0
  726. package/dist/site-builder/robots.d.ts +2 -0
  727. package/dist/site-builder/robots.js +26 -0
  728. package/dist/site-builder/router.d.ts +10 -0
  729. package/dist/site-builder/router.js +27 -0
  730. package/dist/site-builder/seo.d.ts +8 -0
  731. package/dist/site-builder/seo.js +67 -0
  732. package/dist/site-builder/sitemap.d.ts +10 -0
  733. package/dist/site-builder/sitemap.js +26 -0
  734. package/dist/site-builder/theme.d.ts +12 -0
  735. package/dist/site-builder/theme.js +38 -0
  736. package/dist/site-builder/types.d.ts +74 -0
  737. package/dist/site-builder/types.js +0 -0
  738. package/dist/site-url.d.ts +46 -0
  739. package/dist/site-url.js +70 -0
  740. package/dist/slots.d.ts +129 -0
  741. package/dist/slots.js +286 -0
  742. package/dist/source-maps.d.ts +98 -0
  743. package/dist/source-maps.js +350 -0
  744. package/dist/source-signature.d.ts +45 -0
  745. package/dist/source-signature.js +20 -0
  746. package/dist/spa-nav.d.ts +49 -0
  747. package/dist/spa-nav.js +12 -0
  748. package/dist/spa-shell.d.ts +21 -0
  749. package/dist/spa-shell.js +34 -0
  750. package/dist/ssg.d.ts +357 -0
  751. package/dist/ssg.js +94 -0
  752. package/dist/ssr.d.ts +116 -0
  753. package/dist/ssr.js +339 -0
  754. package/dist/state-dir.d.ts +36 -0
  755. package/dist/state-dir.js +22 -0
  756. package/dist/state-management.d.ts +299 -0
  757. package/dist/state-management.js +519 -0
  758. package/dist/store-imports.d.ts +47 -0
  759. package/dist/store-imports.js +16 -0
  760. package/dist/store-loader.d.ts +15 -0
  761. package/dist/store-loader.js +111 -0
  762. package/dist/stores-client.d.ts +70 -0
  763. package/dist/stores-client.js +132 -0
  764. package/dist/story/addons.d.ts +123 -0
  765. package/dist/story/addons.js +261 -0
  766. package/dist/story/analytics.d.ts +163 -0
  767. package/dist/story/analytics.js +235 -0
  768. package/dist/story/auto-stories.d.ts +38 -0
  769. package/dist/story/auto-stories.js +158 -0
  770. package/dist/story/bookmarks.d.ts +102 -0
  771. package/dist/story/bookmarks.js +277 -0
  772. package/dist/story/bun-test.d.ts +45 -0
  773. package/dist/story/bun-test.js +102 -0
  774. package/dist/story/cli.d.ts +132 -0
  775. package/dist/story/cli.js +155 -0
  776. package/dist/story/collect/analyzer.d.ts +33 -0
  777. package/dist/story/collect/analyzer.js +305 -0
  778. package/dist/story/collect/index.d.ts +31 -0
  779. package/dist/story/collect/index.js +27 -0
  780. package/dist/story/collect/parser.d.ts +17 -0
  781. package/dist/story/collect/parser.js +129 -0
  782. package/dist/story/collect/scanner.d.ts +17 -0
  783. package/dist/story/collect/scanner.js +101 -0
  784. package/dist/story/collect/tree.d.ts +24 -0
  785. package/dist/story/collect/tree.js +110 -0
  786. package/dist/story/commands/build.d.ts +19 -0
  787. package/dist/story/commands/build.js +172 -0
  788. package/dist/story/commands/dev.d.ts +23 -0
  789. package/dist/story/commands/dev.js +78 -0
  790. package/dist/story/commands/index.d.ts +9 -0
  791. package/dist/story/commands/index.js +3 -0
  792. package/dist/story/commands/preview.d.ts +21 -0
  793. package/dist/story/commands/preview.js +56 -0
  794. package/dist/story/compiled-output.d.ts +27 -0
  795. package/dist/story/compiled-output.js +151 -0
  796. package/dist/story/composition.d.ts +47 -0
  797. package/dist/story/composition.js +261 -0
  798. package/dist/story/config-watcher.d.ts +33 -0
  799. package/dist/story/config-watcher.js +67 -0
  800. package/dist/story/config.d.ts +29 -0
  801. package/dist/story/config.js +64 -0
  802. package/dist/story/context.d.ts +27 -0
  803. package/dist/story/context.js +27 -0
  804. package/dist/story/controls/index.d.ts +54 -0
  805. package/dist/story/controls/index.js +320 -0
  806. package/dist/story/desktop-preview.d.ts +34 -0
  807. package/dist/story/desktop-preview.js +105 -0
  808. package/dist/story/docs-generator.d.ts +30 -0
  809. package/dist/story/docs-generator.js +187 -0
  810. package/dist/story/errors.d.ts +47 -0
  811. package/dist/story/errors.js +239 -0
  812. package/dist/story/figma-export.d.ts +169 -0
  813. package/dist/story/figma-export.js +224 -0
  814. package/dist/story/generator.d.ts +21 -0
  815. package/dist/story/generator.js +165 -0
  816. package/dist/story/hmr.d.ts +62 -0
  817. package/dist/story/hmr.js +131 -0
  818. package/dist/story/hot-swap.d.ts +46 -0
  819. package/dist/story/hot-swap.js +207 -0
  820. package/dist/story/index.d.ts +99 -0
  821. package/dist/story/index.js +49 -0
  822. package/dist/story/interactions.d.ts +53 -0
  823. package/dist/story/interactions.js +225 -0
  824. package/dist/story/keyboard-shortcuts.d.ts +39 -0
  825. package/dist/story/keyboard-shortcuts.js +345 -0
  826. package/dist/story/output.d.ts +115 -0
  827. package/dist/story/output.js +153 -0
  828. package/dist/story/performance.d.ts +129 -0
  829. package/dist/story/performance.js +252 -0
  830. package/dist/story/presets.d.ts +123 -0
  831. package/dist/story/presets.js +289 -0
  832. package/dist/story/props-validation.d.ts +45 -0
  833. package/dist/story/props-validation.js +215 -0
  834. package/dist/story/renderer.d.ts +69 -0
  835. package/dist/story/renderer.js +209 -0
  836. package/dist/story/search-index.d.ts +47 -0
  837. package/dist/story/search-index.js +106 -0
  838. package/dist/story/search.d.ts +56 -0
  839. package/dist/story/search.js +140 -0
  840. package/dist/story/server.d.ts +31 -0
  841. package/dist/story/server.js +965 -0
  842. package/dist/story/setup.d.ts +56 -0
  843. package/dist/story/setup.js +78 -0
  844. package/dist/story/snapshots.d.ts +65 -0
  845. package/dist/story/snapshots.js +171 -0
  846. package/dist/story/testing.d.ts +83 -0
  847. package/dist/story/testing.js +164 -0
  848. package/dist/story/theme.d.ts +68 -0
  849. package/dist/story/theme.js +170 -0
  850. package/dist/story/ts-css.d.ts +29 -0
  851. package/dist/story/ts-css.js +189 -0
  852. package/dist/story/types.d.ts +342 -0
  853. package/dist/story/types.js +0 -0
  854. package/dist/story/ui/code-panel.d.ts +43 -0
  855. package/dist/story/ui/code-panel.js +175 -0
  856. package/dist/story/ui/controls-panel.d.ts +25 -0
  857. package/dist/story/ui/controls-panel.js +168 -0
  858. package/dist/story/ui/index.d.ts +8 -0
  859. package/dist/story/ui/index.js +4 -0
  860. package/dist/story/ui/navigation.d.ts +55 -0
  861. package/dist/story/ui/navigation.js +250 -0
  862. package/dist/story/ui/preview.d.ts +46 -0
  863. package/dist/story/ui/preview.js +251 -0
  864. package/dist/story/visual-testing.d.ts +45 -0
  865. package/dist/story/visual-testing.js +248 -0
  866. package/dist/streaming.d.ts +238 -0
  867. package/dist/streaming.js +537 -0
  868. package/dist/strict-lint.d.ts +52 -0
  869. package/dist/strict-lint.js +269 -0
  870. package/dist/strip-literals.d.ts +40 -0
  871. package/dist/strip-literals.js +149 -0
  872. package/dist/stx-virtual-ts.d.ts +358 -0
  873. package/dist/stx-virtual-ts.js +670 -0
  874. package/dist/stx.d.ts +924 -0
  875. package/dist/style-scoping.d.ts +42 -0
  876. package/dist/style-scoping.js +82 -0
  877. package/dist/suspense.d.ts +98 -0
  878. package/dist/suspense.js +398 -0
  879. package/dist/teleport.d.ts +31 -0
  880. package/dist/teleport.js +109 -0
  881. package/dist/template-compiler.d.ts +33 -0
  882. package/dist/template-compiler.js +68 -0
  883. package/dist/template-hydrator.d.ts +28 -0
  884. package/dist/template-hydrator.js +95 -0
  885. package/dist/template-tag-balance.d.ts +32 -0
  886. package/dist/template-tag-balance.js +93 -0
  887. package/dist/testing.d.ts +330 -0
  888. package/dist/testing.js +588 -0
  889. package/dist/theme-tokens.d.ts +88 -0
  890. package/dist/theme-tokens.js +71 -0
  891. package/dist/transitions.d.ts +99 -0
  892. package/dist/transitions.js +443 -0
  893. package/dist/ts-css-config.d.ts +71 -0
  894. package/dist/ts-css-config.js +44 -0
  895. package/dist/type-checker.d.ts +85 -0
  896. package/dist/type-checker.js +581 -0
  897. package/dist/typecheck.d.ts +70 -0
  898. package/dist/typecheck.js +365 -0
  899. package/dist/types/component-types.d.ts +248 -0
  900. package/dist/types/component-types.js +0 -0
  901. package/dist/types/config-types.d.ts +938 -0
  902. package/dist/types/config-types.js +0 -0
  903. package/dist/types/context-types.d.ts +122 -0
  904. package/dist/types/context-types.js +0 -0
  905. package/dist/types/csp-types.d.ts +83 -0
  906. package/dist/types/csp-types.js +0 -0
  907. package/dist/types/directive-types.d.ts +315 -0
  908. package/dist/types/directive-types.js +3 -0
  909. package/dist/types/index.d.ts +20 -0
  910. package/dist/types/index.js +1 -0
  911. package/dist/types/pwa-types.d.ts +338 -0
  912. package/dist/types/pwa-types.js +0 -0
  913. package/dist/types.d.ts +27 -0
  914. package/dist/types.js +1 -0
  915. package/dist/typescript-templates.d.ts +156 -0
  916. package/dist/typescript-templates.js +386 -0
  917. package/dist/unresolved-identifiers.d.ts +52 -0
  918. package/dist/unresolved-identifiers.js +148 -0
  919. package/dist/utils.d.ts +112 -0
  920. package/dist/utils.js +1170 -0
  921. package/dist/validator.d.ts +80 -0
  922. package/dist/validator.js +171 -0
  923. package/dist/variable-extractor.d.ts +142 -0
  924. package/dist/variable-extractor.js +1306 -0
  925. package/dist/view-composers.d.ts +171 -0
  926. package/dist/view-composers.js +29 -0
  927. package/dist/virtual-scrolling.d.ts +127 -0
  928. package/dist/virtual-scrolling.js +454 -0
  929. package/dist/visual-editor.d.ts +185 -0
  930. package/dist/visual-editor.js +735 -0
  931. package/dist/visual-testing.d.ts +135 -0
  932. package/dist/visual-testing.js +126 -0
  933. package/dist/vue-template.d.ts +39 -0
  934. package/dist/vue-template.js +476 -0
  935. package/dist/web-components/css-scoping.d.ts +64 -0
  936. package/dist/web-components/css-scoping.js +210 -0
  937. package/dist/web-components/index.d.ts +29 -0
  938. package/dist/web-components/index.js +13 -0
  939. package/dist/web-components/reactive-generator.d.ts +72 -0
  940. package/dist/web-components/reactive-generator.js +484 -0
  941. package/dist/web-components.d.ts +253 -0
  942. package/dist/web-components.js +1466 -0
  943. package/dist/x-element.d.ts +42 -0
  944. package/dist/x-element.js +301 -0
  945. package/package.json +107 -0
  946. package/stx.d.ts +924 -0
@@ -0,0 +1,18 @@
1
+ import type { BuildOptions, SiteConfig } from './types';
2
+ /**
3
+ * Build a static stx site end-to-end:
4
+ * 1. Bundle all pages with bun-plugin-stx
5
+ * 2. Inject Css CSS into each HTML file
6
+ * 3. Replace stx default SEO tags with site-specific ones
7
+ * 4. Drop the empty bundle chunks bun-plugin-stx leaves behind
8
+ * 5. Copy public/ assets verbatim
9
+ * 6. Synthesize 404.html (uses pages/404.stx if present, else clones index)
10
+ * 7. Generate sitemap.xml and robots.txt
11
+ */
12
+ export declare function buildStaticSite(options: BuildOptions): Promise<BuildResult>;
13
+ export declare function defineSiteConfig<T extends SiteConfig>(config: T): T;
14
+ export declare interface BuildResult {
15
+ outDir: string
16
+ pages: string[]
17
+ durationMs: number
18
+ }
@@ -0,0 +1,252 @@
1
+ import { Glob, default as Bun } from "../bun-shim.js";
2
+ import {
3
+ cpSync,
4
+ existsSync,
5
+ mkdirSync,
6
+ readFileSync,
7
+ readdirSync,
8
+ rmSync,
9
+ statSync,
10
+ unlinkSync,
11
+ writeFileSync
12
+ } from "node:fs";
13
+ import { dirname, join, relative } from "node:path";
14
+ import process from "node:process";
15
+ import stxPlugin from "bun-plugin-stx";
16
+ import { CONVENTIONAL_ASSET_OUTPUT, resolveConventionalAssetRoot } from "../asset-roots.js";
17
+ import { externalizeSharedAssets } from "../build-externalize.js";
18
+ import { externalizeRepeatedAssets } from "../build-externalize-repeated.js";
19
+ import { injectCss } from "../dev-server/ts-css.js";
20
+ import { injectSeo } from "./seo.js";
21
+ import { generateSitemap } from "./sitemap.js";
22
+ import { generateRobots } from "./robots.js";
23
+ import { injectRouterScript } from "./router.js";
24
+ import { injectThemeBootstrap } from "./theme.js";
25
+ import { buildIsolatingFailures } from "../isolated-build.js";
26
+ import {
27
+ applyTranslations,
28
+ buildAlternateLinks,
29
+ buildLangPickerScript,
30
+ localizePath,
31
+ resolveI18n,
32
+ stampLocaleLayoutGroup
33
+ } from "./i18n.js";
34
+ export async function buildStaticSite(options) {
35
+ const start = Date.now(), pagesDir = options.pagesDir ?? "pages", outDir = options.outDir ?? "dist", publicDir = options.publicDir ?? "public";
36
+ if (!options.noClean)
37
+ rmSync(outDir, { recursive: !0, force: !0 });
38
+ mkdirSync(outDir, { recursive: !0 });
39
+ const glob = new Glob(`${pagesDir}/**/*.stx`), discovered = await Array.fromAsync(glob.scan(".")), excludeDirs = options.excludeDirs ?? ["layouts", "partials", "components"], excluded = [], entrypoints = discovered.filter((file) => {
40
+ const rel = file.slice(pagesDir.length).replace(/^[\\/]+/, "");
41
+ if (rel.split(/[\\/]/).slice(0, -1).some((seg) => excludeDirs.includes(seg))) {
42
+ excluded.push(file);
43
+ return !1;
44
+ }
45
+ return !rel.split(/[\\/]/).some((seg) => seg.startsWith("_"));
46
+ });
47
+ if (excluded.length > 0)
48
+ console.warn(`[stx] ${excluded.length} file(s) under ${pagesDir}/ skipped as non-pages: ${excludeDirs.join(", ")}`);
49
+ if (entrypoints.length === 0)
50
+ throw Error(`No .stx files found in ${pagesDir}/`);
51
+ const isolated = await buildIsolatingFailures(entrypoints, (subset) => Bun.build({
52
+ entrypoints: subset,
53
+ outdir: outDir,
54
+ plugins: [stxPlugin()],
55
+ naming: { entry: "[name].[ext]" }
56
+ }));
57
+ if (isolated.failed.length > 0) {
58
+ for (const { entrypoint, error } of isolated.failed)
59
+ console.error(`[stx] failed to build ${entrypoint}:
60
+ ${error}`);
61
+ if (isolated.succeeded.length === 0)
62
+ throw Error(`Build failed: none of the ${entrypoints.length} page(s) could be built`);
63
+ console.error(`[stx] ${isolated.failed.length} of ${entrypoints.length} page(s) skipped; the rest were built.`);
64
+ }
65
+ pruneEmptyJsChunks(outDir);
66
+ const htmlFiles = listFiles(outDir).filter((f) => f.endsWith(".html")), i18n = resolveI18n(options, process.cwd()), knownPaths = new Set(htmlFiles.map(pathFromFile));
67
+ for (const file of htmlFiles) {
68
+ const fullPath = join(outDir, file), sourceHtml = readFileSync(fullPath, "utf8"), basePath = pathFromFile(file), localesToEmit = i18n ? i18n.locales : [options.seo?.locale?.split(/[_-]/)[0] ?? "en"];
69
+ for (const locale of localesToEmit) {
70
+ let html = sourceHtml;
71
+ html = stripDeadScriptTags(html);
72
+ if (i18n)
73
+ html = applyTranslations(html, i18n, locale);
74
+ html = await injectCss(html, process.cwd());
75
+ html = injectSeo(html, options, options.pages?.[basePath], basePath);
76
+ if (i18n) {
77
+ html = applyLocaleHead(html, options, i18n, locale, basePath);
78
+ html = localizeInternalLinks(html, locale, i18n.defaultLocale, knownPaths);
79
+ html = stampLocaleLayoutGroup(html, locale);
80
+ }
81
+ html = injectThemeBootstrap(html, options);
82
+ html = autoWrapContent(html);
83
+ if (i18n)
84
+ html = html.replace(/<\/body>/i, `${buildLangPickerScript(i18n, locale)}
85
+ </body>`);
86
+ if (options.spa !== !1)
87
+ html = await injectRouterScript(html, options.router);
88
+ const targetFile = i18n ? localePathToFile(basePath, locale, i18n.defaultLocale) : file, targetPath = join(outDir, targetFile);
89
+ mkdirSync(dirnameOf(targetPath), { recursive: !0 });
90
+ writeFileSync(targetPath, html);
91
+ if (i18n && locale !== i18n.defaultLocale && targetFile !== file)
92
+ ;
93
+ }
94
+ }
95
+ const externalized = externalizeSharedAssets(outDir);
96
+ if (externalized.assets > 0)
97
+ console.log(`[stx] externalized ${externalized.assets} asset(s) from ${externalized.pages} page(s) (${(externalized.bytesInlined / 1024).toFixed(1)}KB removed from HTML)`);
98
+ const repeated = externalizeRepeatedAssets(outDir);
99
+ if (repeated.assets > 0)
100
+ console.log(`[stx] externalized ${repeated.assets} repeated asset(s) from ${repeated.pages} page(s) (${(repeated.bytesInlined / 1024).toFixed(1)}KB removed from HTML)`);
101
+ if (existsSync(publicDir))
102
+ cpSync(publicDir, outDir, { recursive: !0 });
103
+ const conventionalAssets = resolveConventionalAssetRoot();
104
+ if (conventionalAssets)
105
+ cpSync(conventionalAssets, join(outDir, CONVENTIONAL_ASSET_OUTPUT), { recursive: !0 });
106
+ const fourOhFourSrc = join(outDir, "404.html");
107
+ if (!existsSync(fourOhFourSrc) && existsSync(join(outDir, "index.html"))) {
108
+ const fallback = readFileSync(join(outDir, "index.html"), "utf8").replace(/<title>[^<]*<\/title>/i, `<title>404 \u2014 ${escapeText(options.name)}</title>`);
109
+ writeFileSync(fourOhFourSrc, fallback);
110
+ }
111
+ if (options.sitemap !== !1) {
112
+ const entries = [], basePaths = htmlFiles.filter((f) => f !== "404.html").map(pathFromFile), sitemapLocales = i18n ? i18n.locales : [null];
113
+ for (const basePath of basePaths) {
114
+ const meta = options.pages?.[basePath];
115
+ for (const loc of sitemapLocales) {
116
+ const path = loc && i18n ? localizePath(basePath, loc, i18n.defaultLocale) : basePath;
117
+ entries.push({ path, page: meta });
118
+ }
119
+ }
120
+ writeFileSync(join(outDir, "sitemap.xml"), generateSitemap(options, entries));
121
+ }
122
+ const robots = generateRobots(options);
123
+ if (robots !== null)
124
+ writeFileSync(join(outDir, "robots.txt"), robots);
125
+ const builtPages = htmlFiles.map(pathFromFile);
126
+ return { outDir, pages: builtPages, durationMs: Date.now() - start };
127
+ }
128
+ function dirnameOf(p) {
129
+ return dirname(p);
130
+ }
131
+ function localePathToFile(basePath, locale, defaultLocale) {
132
+ const localized = localizePath(basePath, locale, defaultLocale);
133
+ if (localized === "/")
134
+ return "index.html";
135
+ const trimmed = localized.replace(/^\//, "").replace(/\/$/, "");
136
+ if (!trimmed.includes("/")) {
137
+ if (locale !== defaultLocale && trimmed === locale)
138
+ return `${locale}/index.html`;
139
+ return `${trimmed}.html`;
140
+ }
141
+ return `${trimmed}.html`.replace(/\.html\.html$/, ".html");
142
+ }
143
+ function pathFromFile(file) {
144
+ if (file === "index.html")
145
+ return "/";
146
+ return `/${file.replace(/\.html$/, "").replace(/\/index$/, "")}`;
147
+ }
148
+ function listFiles(dir, base = dir) {
149
+ const out = [];
150
+ if (!existsSync(dir))
151
+ return out;
152
+ for (const entry of readdirSync(dir, { withFileTypes: !0 })) {
153
+ const full = join(dir, entry.name);
154
+ if (entry.isDirectory())
155
+ out.push(...listFiles(full, base));
156
+ else
157
+ out.push(relative(base, full));
158
+ }
159
+ return out;
160
+ }
161
+ function pruneEmptyJsChunks(outDir) {
162
+ for (const file of listFiles(outDir)) {
163
+ if (!/^chunk-.*\.js(?:\.map)?$/.test(file))
164
+ continue;
165
+ const full = join(outDir, file);
166
+ try {
167
+ if (statSync(full).size === 0)
168
+ unlinkSync(full);
169
+ } catch {}
170
+ }
171
+ }
172
+ function stripDeadScriptTags(html) {
173
+ return html.replace(/<script[^>]*src=["']\.\/chunk-[^"']*\.js["'][^>]*><\/script>\s*/g, "");
174
+ }
175
+ function applyLocaleHead(html, site, i18n, locale, basePath) {
176
+ if (!i18n)
177
+ return html;
178
+ if (/<html\b[^>]*\blang=/i.test(html))
179
+ html = html.replace(/<html\b([^>]*)\blang="[^"]*"/i, `<html$1lang="${locale}"`);
180
+ else
181
+ html = html.replace(/<html\b([^>]*)>/i, `<html$1 lang="${locale}">`);
182
+ const localizedUrl = `${site.url.replace(/\/$/, "")}${localizePath(basePath, locale, i18n.defaultLocale)}`;
183
+ if (/<link rel="canonical"/.test(html))
184
+ html = html.replace(/<link rel="canonical"[^>]*>/, `<link rel="canonical" href="${escapeAttr(localizedUrl)}">`);
185
+ const ogLocale = locale.includes("_") || locale.includes("-") ? locale : locale.toLowerCase();
186
+ if (/<meta property="og:locale"/.test(html))
187
+ html = html.replace(/<meta property="og:locale"[^>]*>/, `<meta property="og:locale" content="${escapeAttr(ogLocale)}">`);
188
+ if (/<meta property="og:url"/.test(html))
189
+ html = html.replace(/<meta property="og:url"[^>]*>/, `<meta property="og:url" content="${escapeAttr(localizedUrl)}">`);
190
+ const alternates = buildAlternateLinks(site.url, basePath, i18n);
191
+ if (!html.includes("hreflang="))
192
+ html = html.replace(/<link rel="canonical"[^>]*>/, (m) => `${alternates}
193
+ ${m}`);
194
+ return html;
195
+ }
196
+ function escapeAttr(s) {
197
+ return s.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
198
+ }
199
+ function localizeInternalLinks(html, locale, defaultLocale, knownPaths) {
200
+ if (locale === defaultLocale)
201
+ return html;
202
+ return html.replace(/<a\b([^>]*?)\bhref="(\/[^"]*)"([^>]*)>/gi, (full, before, href, after) => {
203
+ if (href.startsWith("//"))
204
+ return full;
205
+ if (href === `/${locale}` || href === `/${locale}/` || href.startsWith(`/${locale}/`))
206
+ return full;
207
+ const m = href.match(/^(\/[^?#]*)(.*)$/);
208
+ if (!m)
209
+ return full;
210
+ const [, pathOnly, rest] = m, normalized = pathOnly === "/" ? "/" : pathOnly.replace(/\/$/, "");
211
+ if (!knownPaths.has(normalized))
212
+ return full;
213
+ const localized = normalized === "/" ? `/${locale}/` : `/${locale}${normalized}`;
214
+ return `<a${before}href="${localized}${rest}"${after}>`;
215
+ });
216
+ }
217
+ function autoWrapContent(html) {
218
+ if (/<main\b/i.test(html) || /\bdata-stx-content\b/i.test(html))
219
+ return html;
220
+ const bodyOpenMatch = html.match(/<body\b[^>]*>/i), bodyCloseIdx = html.search(/<\/body\s*>/i);
221
+ if (!bodyOpenMatch || bodyCloseIdx < 0)
222
+ return html;
223
+ const bodyContentStart = bodyOpenMatch.index + bodyOpenMatch[0].length, inner = html.slice(bodyContentStart, bodyCloseIdx);
224
+ let wrapStart = 0;
225
+ const navClose = [...inner.matchAll(/<\/nav>/gi)];
226
+ if (navClose.length > 0) {
227
+ const last = navClose[navClose.length - 1];
228
+ wrapStart = last.index + last[0].length;
229
+ }
230
+ let wrapEnd = inner.length;
231
+ const footerOpen = inner.search(/<footer\b/i);
232
+ if (footerOpen !== -1)
233
+ wrapEnd = Math.min(wrapEnd, footerOpen);
234
+ const trailingScript = inner.search(/<script\b[^>]*data-stx-(?:theme-toggle|reparent-progress)\b/i);
235
+ if (trailingScript !== -1)
236
+ wrapEnd = Math.min(wrapEnd, trailingScript);
237
+ if (wrapEnd <= wrapStart)
238
+ return html;
239
+ const middle = inner.slice(wrapStart, wrapEnd);
240
+ if (!middle.trim())
241
+ return html;
242
+ const newInner = `${inner.slice(0, wrapStart)}
243
+ <main>${middle}</main>
244
+ ${inner.slice(wrapEnd)}`;
245
+ return `${html.slice(0, bodyContentStart)}${newInner}${html.slice(bodyCloseIdx)}`;
246
+ }
247
+ function escapeText(s) {
248
+ return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
249
+ }
250
+ export function defineSiteConfig(config) {
251
+ return config;
252
+ }
@@ -0,0 +1,104 @@
1
+ import type { SiteConfig, SiteI18nOptions } from './types';
2
+ export type { SiteI18nOptions };
3
+ /**
4
+ * Resolve i18n config into the runtime shape used by the build.
5
+ *
6
+ * Translations are merged from two sources, in priority order:
7
+ * 1. `i18n.translations[<locale>]` — inline strings from `site.config.ts`
8
+ * 2. `<translationsDir>/<locale>.<format>` on disk — JSON or YAML files
9
+ *
10
+ * Inline strings win on key conflicts, so config-level overrides don't
11
+ * require editing the shared translation files. Missing locales/files
12
+ * are silently tolerated; the file loader returns `{}` for anything it
13
+ * can't read so the default locale's table can still serve as a
14
+ * fallback at translate-time.
15
+ */
16
+ export declare function resolveI18n(site: SiteConfig, projectRoot?: string): ResolvedI18n | null;
17
+ /**
18
+ * Translate a key for a locale, falling back to the default locale's
19
+ * value, then to the key itself. The fallback chain keeps prototypes
20
+ * shippable even when only a subset of strings is translated.
21
+ */
22
+ export declare function translate(i18n: ResolvedI18n, locale: string, key: string): string;
23
+ /**
24
+ * Replace `{t:key}` and `{t!:key}` markers in HTML with the translated
25
+ * string for the given locale. The key syntax sidesteps stx's
26
+ * `{{ ... }}` templating (which evaluates as JS at build time and
27
+ * would render `t(...)` calls as empty when no `t` binding exists
28
+ * in scope).
29
+ *
30
+ * Two variants:
31
+ * - `{t:key}` — value is HTML-escaped before substitution. Default
32
+ * for ordinary text. Safe for any translator-supplied string.
33
+ * - `{t!:key}` — value is substituted *raw*, without escaping. Use
34
+ * this when the translation needs inline markup (e.g. `<strong>`,
35
+ * `<a>`, `<br>`) so different languages can place emphasis where
36
+ * their grammar requires. Translation values for these keys live
37
+ * in the project's own translation files, so the trust boundary
38
+ * is the same as the page template itself.
39
+ *
40
+ * Keys may use letters, digits, `_`, `.`, `-`. Anything that doesn't
41
+ * match the pattern is left alone — runs after stx has finished its
42
+ * own templating pass.
43
+ */
44
+ export declare function applyTranslations(html: string, i18n: ResolvedI18n, locale: string): string;
45
+ /**
46
+ * URL path for a built page in the given locale.
47
+ *
48
+ * - `/` stays `/` for the default locale; for non-default locales it
49
+ * becomes `/<code>/` (with the trailing slash). The slash matters
50
+ * because most static hosts (S3+CloudFront, GitHub Pages, etc.)
51
+ * only serve the directory's `index.html` when the URL ends in `/`
52
+ * — `/de` 404s, `/de/` resolves. Linking with the slash avoids a
53
+ * client-side redirect dance and lets SPA hops succeed without
54
+ * falling back to a full page load.
55
+ * - `/about` becomes `/<code>/about` for non-default locales (no
56
+ * trailing slash — those map to `<code>/about.html`).
57
+ * - `/404.html` keeps its filename and lives under the locale prefix.
58
+ */
59
+ export declare function localizePath(path: string, locale: string, defaultLocale: string): string;
60
+ /**
61
+ * Reverse of `localizePath`: strip a locale prefix off a path so we
62
+ * can compute the equivalent path in another locale.
63
+ */
64
+ export declare function stripLocalePrefix(path: string, locales: string[]): { locale: string | null, path: string };
65
+ /**
66
+ * `<link rel="alternate" hreflang>` block + `<link rel="canonical">`
67
+ * for the page being rendered. Search engines treat each as the
68
+ * authoritative copy for its locale.
69
+ */
70
+ export declare function buildAlternateLinks(siteUrl: string, pagePath: string, i18n: ResolvedI18n): string;
71
+ /**
72
+ * Tag a rendered page with its locale, via the SPA router's "layout group".
73
+ *
74
+ * The router's default swap replaces the container only, so `<nav>` and
75
+ * `<footer>` keep the markup of whatever page loaded first. That is fine for
76
+ * a same-locale hop and wrong for every cross-locale one: the chrome holds
77
+ * `{t:key}` text and locale-prefixed hrefs, both of which the server already
78
+ * resolved for the *destination* locale. A differing layout group is the
79
+ * router's signal to swap the whole body instead, which brings the chrome
80
+ * along — still a client-side navigation, no reload.
81
+ *
82
+ * Both renderers call this. They used to each carry their own copy of the
83
+ * markup, and only the dev server's copy actually existed: the static build
84
+ * shipped no group meta at all, so a built site translated `<main>` on a
85
+ * language switch and left the nav in the previous language until a hard
86
+ * reload — the one place the bug could not be seen while developing.
87
+ */
88
+ export declare function stampLocaleLayoutGroup(html: string, locale: string): string;
89
+ /**
90
+ * Inline script that wires up the language picker.
91
+ *
92
+ * Per-page logic: each `<button data-lang="…">` inside the configured
93
+ * picker selector navigates to the equivalent path in the chosen
94
+ * locale, using the locale list shipped in `window.__stxI18n`. Marks
95
+ * the active button with `aria-current="true"` for styling.
96
+ */
97
+ export declare function buildLangPickerScript(i18n: ResolvedI18n, currentLocale: string): string;
98
+ export declare interface ResolvedI18n {
99
+ locales: string[]
100
+ defaultLocale: string
101
+ labels: Record<string, string>
102
+ translations: Record<string, Record<string, string>>
103
+ pickerSelector: string
104
+ }
@@ -0,0 +1,150 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { join, resolve } from "node:path";
3
+ import process from "node:process";
4
+ export function resolveI18n(site, projectRoot = process.cwd()) {
5
+ const i18n = site.i18n;
6
+ if (!i18n || !Array.isArray(i18n.locales) || i18n.locales.length === 0)
7
+ return null;
8
+ const defaultLocale = i18n.defaultLocale ?? i18n.locales[0], translations = mergeTranslations(i18n, projectRoot);
9
+ return {
10
+ locales: i18n.locales,
11
+ defaultLocale,
12
+ labels: i18n.labels ?? Object.fromEntries(i18n.locales.map((c) => [c, c.toUpperCase()])),
13
+ translations,
14
+ pickerSelector: i18n.pickerSelector ?? "#lang-picker"
15
+ };
16
+ }
17
+ function mergeTranslations(i18n, projectRoot) {
18
+ const inline = i18n.translations ?? {}, out = {}, dir = i18n.translationsDir, dirAbs = dir === !1 ? null : resolve(projectRoot, typeof dir === "string" && dir ? dir : "translations"), format = i18n.format ?? "json";
19
+ for (const locale of i18n.locales) {
20
+ const fromFile = dirAbs ? loadFromFile(dirAbs, locale, format) : {};
21
+ out[locale] = { ...fromFile, ...inline[locale] ?? {} };
22
+ }
23
+ return out;
24
+ }
25
+ function loadFromFile(dir, locale, format) {
26
+ const candidates = format === "json" ? [`${locale}.json`] : [`${locale}.${format}`, `${locale}.${format === "yaml" ? "yml" : "yaml"}`];
27
+ for (const name of candidates) {
28
+ const file = join(dir, name);
29
+ if (!existsSync(file))
30
+ continue;
31
+ try {
32
+ const raw = readFileSync(file, "utf8"), data = format === "json" ? JSON.parse(raw) : parseSimpleYaml(raw);
33
+ return flatten(data);
34
+ } catch {
35
+ continue;
36
+ }
37
+ }
38
+ return {};
39
+ }
40
+ function flatten(obj, prefix = "", out = {}) {
41
+ if (!obj || typeof obj !== "object")
42
+ return out;
43
+ for (const [k, v] of Object.entries(obj)) {
44
+ const key = prefix ? `${prefix}.${k}` : k;
45
+ if (v && typeof v === "object" && !Array.isArray(v))
46
+ flatten(v, key, out);
47
+ else if (typeof v === "string")
48
+ out[key] = v;
49
+ else if (typeof v === "number" || typeof v === "boolean")
50
+ out[key] = String(v);
51
+ }
52
+ return out;
53
+ }
54
+ function parseSimpleYaml(content) {
55
+ const result = {}, stack = [{ obj: result, indent: -1 }];
56
+ for (const rawLine of content.split(`
57
+ `)) {
58
+ const line = rawLine.replace(/#.*$/, "").trimEnd();
59
+ if (!line.trim())
60
+ continue;
61
+ const indent = line.search(/\S/);
62
+ if (indent === -1)
63
+ continue;
64
+ while (stack.length > 1 && stack[stack.length - 1].indent >= indent)
65
+ stack.pop();
66
+ const currentObj = stack[stack.length - 1].obj, match = line.match(/^(\s*)(\S[^:]*):\s*(.*)$/);
67
+ if (!match)
68
+ continue;
69
+ const [, , key, rawValue] = match, trimmedKey = key.trim(), trimmedValue = rawValue.trim();
70
+ if (trimmedValue === "") {
71
+ currentObj[trimmedKey] = {};
72
+ stack.push({ obj: currentObj[trimmedKey], indent });
73
+ } else
74
+ currentObj[trimmedKey] = unquote(trimmedValue);
75
+ }
76
+ return result;
77
+ }
78
+ function unquote(v) {
79
+ if (v.startsWith("'") && v.endsWith("'") || v.startsWith('"') && v.endsWith('"'))
80
+ return v.slice(1, -1);
81
+ return v;
82
+ }
83
+ export function translate(i18n, locale, key) {
84
+ const local = i18n.translations[locale]?.[key];
85
+ if (typeof local === "string")
86
+ return local;
87
+ const fallback = i18n.translations[i18n.defaultLocale]?.[key];
88
+ if (typeof fallback === "string")
89
+ return fallback;
90
+ return key;
91
+ }
92
+ export function applyTranslations(html, i18n, locale) {
93
+ return html.replace(/\{t(!?):([a-zA-Z][\w.-]*)\}/g, (_match, raw, key) => {
94
+ const value = translate(i18n, locale, key);
95
+ return raw === "!" ? value : escapeHtml(value);
96
+ });
97
+ }
98
+ export function localizePath(path, locale, defaultLocale) {
99
+ if (locale === defaultLocale)
100
+ return path;
101
+ if (path === "/")
102
+ return `/${locale}/`;
103
+ if (path === "/404.html")
104
+ return `/${locale}/404.html`;
105
+ return `/${locale}${path}`;
106
+ }
107
+ export function stripLocalePrefix(path, locales) {
108
+ for (const loc of locales) {
109
+ if (path === `/${loc}` || path === `/${loc}/`)
110
+ return { locale: loc, path: "/" };
111
+ if (path.startsWith(`/${loc}/`))
112
+ return { locale: loc, path: path.slice(loc.length + 1) };
113
+ }
114
+ return { locale: null, path };
115
+ }
116
+ export function buildAlternateLinks(siteUrl, pagePath, i18n) {
117
+ const base = siteUrl.replace(/\/$/, ""), lines = [];
118
+ for (const loc of i18n.locales) {
119
+ const url = `${base}${localizePath(pagePath, loc, i18n.defaultLocale)}`;
120
+ lines.push(`<link rel="alternate" hreflang="${escapeAttr(loc)}" href="${escapeAttr(url)}">`);
121
+ }
122
+ const def = `${base}${localizePath(pagePath, i18n.defaultLocale, i18n.defaultLocale)}`;
123
+ lines.push(`<link rel="alternate" hreflang="x-default" href="${escapeAttr(def)}">`);
124
+ return lines.join(`
125
+ `);
126
+ }
127
+ export function stampLocaleLayoutGroup(html, locale) {
128
+ const groupMeta = `<meta name="stx-layout-group" content="i18n:${escapeAttr(locale)}">`;
129
+ if (/<meta name="stx-layout-group"[^>]*>/i.test(html))
130
+ return html.replace(/<meta name="stx-layout-group"[^>]*>/i, groupMeta);
131
+ if (/<\/head>/i.test(html))
132
+ return html.replace(/<\/head>/i, `${groupMeta}
133
+ </head>`);
134
+ return `${groupMeta}
135
+ ${html}`;
136
+ }
137
+ export function buildLangPickerScript(i18n, currentLocale) {
138
+ return `<script data-stx-lang-picker="1">window.__stxI18n=${JSON.stringify({
139
+ locales: i18n.locales,
140
+ defaultLocale: i18n.defaultLocale,
141
+ current: currentLocale,
142
+ pickerSelector: i18n.pickerSelector
143
+ })};(function(){function cfg(){return window.__stxI18n}function localeFromPath(p){var d=cfg();for(var i=0;i<d.locales.length;i++){var c=d.locales[i];if(p==='/'+c||p==='/'+c+'/')return c;if(p.indexOf('/'+c+'/')===0)return c}return d.defaultLocale}function localePathFor(loc,p){var d=cfg();var stripped=p;for(var i=0;i<d.locales.length;i++){var c=d.locales[i];if(p==='/'+c||p==='/'+c+'/'){stripped='/';break}if(p.indexOf('/'+c+'/')===0){stripped=p.slice(c.length+1);break}}if(loc===d.defaultLocale)return stripped;if(stripped==='/')return '/'+loc+'/';return '/'+loc+stripped}cfg().localizeHref=function(href){try{var u=new URL(href,location.origin);if(u.origin!==location.origin)return href;return localePathFor(localeFromPath(location.pathname),u.pathname)+(u.search||'')+(u.hash||'')}catch(_){return href}};function syncFromUrl(){var d=cfg();var loc=localeFromPath(location.pathname);d.current=loc;var picker=document.querySelector(d.pickerSelector);if(picker){var btns=picker.querySelectorAll('[data-lang]');for(var i=0;i<btns.length;i++){var b=btns[i];if(b.getAttribute('data-lang')===loc)b.setAttribute('aria-current','true');else b.removeAttribute('aria-current')}}if(document.documentElement.lang!==loc)document.documentElement.lang=loc}function onLangClick(e){var d=cfg();var btn=e.target&&e.target.closest&&e.target.closest('[data-lang]');if(!btn)return;var picker=document.querySelector(d.pickerSelector);if(!picker||!picker.contains(btn))return;e.preventDefault();e.stopPropagation();var loc=btn.getAttribute('data-lang');if(!loc||loc===localeFromPath(location.pathname))return;var dest=localePathFor(loc,location.pathname);var r=window.__stxRouter;if(r&&r.navigate)r.navigate(dest,true,true);else location.assign(dest)}syncFromUrl();if(window.__stxLangPickerBound){document.removeEventListener('click',window.__stxLangPickerClick,true);window.removeEventListener('stx:navigate',window.__stxLangPickerSync);window.removeEventListener('popstate',window.__stxLangPickerSync)}window.__stxLangPickerClick=onLangClick;window.__stxLangPickerSync=syncFromUrl;window.__stxLangPickerBound=1;document.addEventListener('click',onLangClick,true);window.addEventListener('stx:navigate',syncFromUrl);window.addEventListener('popstate',syncFromUrl)})();</script>`;
144
+ }
145
+ function escapeAttr(s) {
146
+ return s.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
147
+ }
148
+ function escapeHtml(s) {
149
+ return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
150
+ }
@@ -0,0 +1,27 @@
1
+ export type { ResolvedI18n } from './i18n';
2
+ export type {
3
+ BuildOptions,
4
+ PageMeta,
5
+ SiteConfig,
6
+ SiteI18nOptions,
7
+ SiteRouterOptions,
8
+ SiteSeo,
9
+ SiteSocial,
10
+ SiteThemeOptions,
11
+ } from './types';
12
+ export { buildStaticSite, defineSiteConfig, type BuildResult } from './build';
13
+ export { injectSeo } from './seo';
14
+ export { generateSitemap, type SitemapEntry } from './sitemap';
15
+ export { generateRobots } from './robots';
16
+ export { injectRouterScript, type RouterOptions } from './router';
17
+ export { injectThemeBootstrap, type ThemeOptions } from './theme';
18
+ export {
19
+ applyTranslations,
20
+ buildAlternateLinks,
21
+ buildLangPickerScript,
22
+ localizePath,
23
+ resolveI18n,
24
+ stampLocaleLayoutGroup,
25
+ stripLocalePrefix,
26
+ translate,
27
+ } from './i18n';
@@ -0,0 +1,16 @@
1
+ export { buildStaticSite, defineSiteConfig } from "./build.js";
2
+ export { injectSeo } from "./seo.js";
3
+ export { generateSitemap } from "./sitemap.js";
4
+ export { generateRobots } from "./robots.js";
5
+ export { injectRouterScript } from "./router.js";
6
+ export { injectThemeBootstrap } from "./theme.js";
7
+ export {
8
+ applyTranslations,
9
+ buildAlternateLinks,
10
+ buildLangPickerScript,
11
+ localizePath,
12
+ resolveI18n,
13
+ stampLocaleLayoutGroup,
14
+ stripLocalePrefix,
15
+ translate
16
+ } from "./i18n.js";
@@ -0,0 +1,2 @@
1
+ import type { SiteConfig } from './types';
2
+ export declare function generateRobots(site: SiteConfig): string | null;
@@ -0,0 +1,26 @@
1
+ export function generateRobots(site) {
2
+ const mode = site.robots ?? "allow";
3
+ if (mode === !1)
4
+ return null;
5
+ if (typeof mode === "string" && mode !== "allow" && mode !== "disallow")
6
+ return mode.endsWith(`
7
+ `) ? mode : `${mode}
8
+ `;
9
+ const sitemapLine = site.sitemap !== !1 ? `Sitemap: ${site.url.replace(/\/$/, "")}/sitemap.xml
10
+ ` : "";
11
+ if (mode === "disallow")
12
+ return [
13
+ "User-agent: *",
14
+ "Disallow: /",
15
+ "",
16
+ sitemapLine
17
+ ].filter(Boolean).join(`
18
+ `);
19
+ return [
20
+ "User-agent: *",
21
+ "Allow: /",
22
+ "",
23
+ sitemapLine
24
+ ].filter(Boolean).join(`
25
+ `);
26
+ }
@@ -0,0 +1,10 @@
1
+ import type { SiteRouterOptions } from './types';
2
+ /**
3
+ * Inject the stx SPA router into HTML. The script is appended just
4
+ * before `</body>` (or at the end of the document if there is no body
5
+ * close). Configuration from `options` is exposed as
6
+ * `window.__stxRouterConfig` ahead of the runtime so the runtime picks
7
+ * it up on init.
8
+ */
9
+ export declare function injectRouterScript(html: string, options?: RouterOptions): Promise<string>;
10
+ export type RouterOptions = SiteRouterOptions;
@@ -0,0 +1,27 @@
1
+ let _cachedRouterScript = null;
2
+ async function getRouterScript() {
3
+ if (_cachedRouterScript !== null)
4
+ return _cachedRouterScript;
5
+ try {
6
+ const mod = await import("stx-router");
7
+ if (typeof mod.getRouterScript === "function")
8
+ _cachedRouterScript = mod.getRouterScript();
9
+ else
10
+ _cachedRouterScript = "";
11
+ } catch {
12
+ _cachedRouterScript = "";
13
+ }
14
+ return _cachedRouterScript;
15
+ }
16
+ export async function injectRouterScript(html, options) {
17
+ const script = await getRouterScript();
18
+ if (!script)
19
+ return html;
20
+ const merged = { interceptAllLinks: !0, container: "main", ...options }, block = `${`<script>window.__stxRouterConfig=${JSON.stringify(merged)};</script>
21
+ `}<script>${script}</script>`;
22
+ if (/<\/body>/i.test(html))
23
+ return html.replace(/<\/body>/i, `${block}
24
+ </body>`);
25
+ return `${html}
26
+ ${block}`;
27
+ }
@@ -0,0 +1,8 @@
1
+ import type { PageMeta, SiteConfig } from './types';
2
+ /**
3
+ * Replace stx's auto-injected default SEO block (which says "stx Project")
4
+ * with site-specific tags. Looks for the marker comment stx inserts and
5
+ * swaps the wrapped meta tags. If the block isn't found, prepends the
6
+ * tags after <head>.
7
+ */
8
+ export declare function injectSeo(html: string, site: SiteConfig, page?: PageMeta, pagePath?: string): string;