@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,76 @@
1
+ import type { StxOptions } from './types';
2
+ export type { LayoutMetadata } from 'stx-router/layout-metadata';
3
+ /**
4
+ * Detect an app shell file in the given directory.
5
+ *
6
+ * @deprecated Use `layouts/default.stx` instead. The framework now auto-generates
7
+ * the document shell from `stx.config.ts` `app.head` configuration.
8
+ * The app.stx shell pattern is kept for backwards compatibility.
9
+ *
10
+ * Checks for `app.stx` in the project root (or configured shell path).
11
+ * Returns the absolute path if found, null otherwise.
12
+ */
13
+ export declare function detectShell(appDir: string, shellConfig?: string | false): Promise<string | null>;
14
+ /**
15
+ * Process the app shell template and split it at the `<slot />` injection point.
16
+ *
17
+ * The shell is processed through `processDirectives()` with a placeholder
18
+ * for the slot, then split into before/after parts for fast page composition.
19
+ */
20
+ export declare function processShell(shellPath: string, options: StxOptions): Promise<ProcessedShell | null>;
21
+ /**
22
+ * Compose a full page by injecting page content into the processed shell.
23
+ *
24
+ * Wraps the page content in a document structure with the shell's layout,
25
+ * shell scripts, shell styles, and the router.
26
+ */
27
+ export declare function composeShellWithPage(shell: ProcessedShell, pageContent: string, pageTitle?: string): string;
28
+ /**
29
+ * Strip document wrapper (DOCTYPE, html, head, body) from page content,
30
+ * returning just the body content as a fragment.
31
+ *
32
+ * If the content has no document wrapper, it's returned as-is.
33
+ *
34
+ * Preserves:
35
+ * - `<script>` tags from `<body>` (page scripts)
36
+ * - `<style>` tags from `<head>` (page styles, moved to fragment)
37
+ * - Body content
38
+ *
39
+ * Strips:
40
+ * - `<!DOCTYPE>`, `<html>`, `<head>`, `<body>` wrappers
41
+ * - `<meta>`, `<title>`, `<link>` tags from `<head>` — unless
42
+ * `preserveHead` is set, which carries them through the fragment as an
43
+ * inert marker comment for `composeShellWithPage` to hoist (#1756)
44
+ */
45
+ export declare function stripDocumentWrapper(html: string, options?: { preserveHead?: boolean }): string;
46
+ /**
47
+ * Check if a request is an SPA navigation request (from the stx router).
48
+ */
49
+ export declare function isSpaNavigation(request: Request): boolean;
50
+ /**
51
+ * Extract the inner content of the router container element from a full HTML
52
+ * document, preserving page styles and route state found in `<head>`.
53
+ *
54
+ * This is what fragment files should contain — NOT the whole body. The SPA
55
+ * router injects fragments directly into the container element via innerHTML,
56
+ * so the fragment must already match the shape of the container's content.
57
+ * If you pass it the whole body (nav + main + footer), the router will dump
58
+ * all of that inside `<main>`, producing a duplicated nav.
59
+ *
60
+ * Falls back to `stripDocumentWrapper` if the container cannot be located.
61
+ *
62
+ * @param html - Full HTML document (with or without doctype/html/head/body)
63
+ * @param containerSelector - Tag name or selector for the router container (e.g. `main`)
64
+ */
65
+ export declare function extractContainerContent(html: string, containerSelector?: string): string;
66
+ /**
67
+ * Processed shell ready for page injection
68
+ */
69
+ export declare interface ProcessedShell {
70
+ beforeSlot: string
71
+ afterSlot: string
72
+ filePath: string
73
+ shellScripts: string[]
74
+ shellStyles: string[]
75
+ }
76
+ export { extractLayoutMetadata } from 'stx-router/layout-metadata';
@@ -0,0 +1,209 @@
1
+ var {require}=import.meta;import path from "node:path";
2
+ import { classifyAllScripts } from "./script-classifier.js";
3
+ import { startsDocument } from "./document-shell.js";
4
+ import { findContainerRegion } from "./fragment-container.js";
5
+ import { isSpaNavRequest } from "./spa-nav.js";
6
+ export { extractLayoutMetadata } from "stx-router/layout-metadata";
7
+ const PAGE_HEAD_MARKER = "stx-page-head:", PAGE_HEAD_MARKER_RE = /<!--stx-page-head:([A-Za-z0-9+/=]+)-->\n?/;
8
+ let _cachedRouterScript = null;
9
+ function getRouterScriptCached() {
10
+ if (_cachedRouterScript !== null)
11
+ return _cachedRouterScript;
12
+ try {
13
+ const { getRouterScript } = require("stx-router");
14
+ _cachedRouterScript = `<script>${getRouterScript()}</script>`;
15
+ } catch {
16
+ _cachedRouterScript = "";
17
+ }
18
+ return _cachedRouterScript;
19
+ }
20
+ export async function detectShell(appDir, shellConfig) {
21
+ if (shellConfig === !1)
22
+ return null;
23
+ if (shellConfig && typeof shellConfig === "string") {
24
+ const shellPath = path.resolve(appDir, shellConfig);
25
+ if (await Bun.file(shellPath).exists())
26
+ return shellPath;
27
+ return null;
28
+ }
29
+ const defaultShellPath = path.join(appDir, "app.stx");
30
+ if (await Bun.file(defaultShellPath).exists())
31
+ return defaultShellPath;
32
+ return null;
33
+ }
34
+ export async function processShell(shellPath, options) {
35
+ try {
36
+ const content = await Bun.file(shellPath).text();
37
+ let shellTemplate = content;
38
+ const templateMatch = content.match(/<template\b[^>]*>([\s\S]*?)<\/template>/i);
39
+ if (templateMatch)
40
+ shellTemplate = templateMatch[1].trim();
41
+ const classified = classifyAllScripts(content), shellScripts = [
42
+ ...classified.client.map((s) => s.fullTag),
43
+ ...classified.signals.map((s) => s.fullTag)
44
+ ], shellStyles = [], styleRegex = /<style\b[^>]*>([\s\S]*?)<\/style>/gi;
45
+ let styleMatch;
46
+ while ((styleMatch = styleRegex.exec(content)) !== null)
47
+ shellStyles.push(styleMatch[0]);
48
+ let cleanTemplate = shellTemplate;
49
+ for (const s of classified.server)
50
+ cleanTemplate = cleanTemplate.replace(s.fullTag, "");
51
+ for (const s of classified.client)
52
+ cleanTemplate = cleanTemplate.replace(s.fullTag, "");
53
+ cleanTemplate = cleanTemplate.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi, "");
54
+ const SLOT_PLACEHOLDER = "<!--__STX_PAGE_SLOT__-->";
55
+ cleanTemplate = cleanTemplate.replace(/<slot\s*\/>/gi, SLOT_PLACEHOLDER).replace(/<slot\s*>\s*<\/slot>/gi, SLOT_PLACEHOLDER);
56
+ if (!cleanTemplate.includes(SLOT_PLACEHOLDER)) {
57
+ console.warn(`[stx] Shell ${shellPath} has no <slot /> \u2014 pages won't be injected`);
58
+ return null;
59
+ }
60
+ const { processDirectives, extractVariables, defaultConfig, loadStxConfig } = await import("./index.js"), projectConfig = await loadStxConfig(), shellContext = {
61
+ __filename: shellPath,
62
+ __dirname: path.dirname(shellPath)
63
+ };
64
+ for (const script of shellScripts) {
65
+ const scriptContent = script.match(/<script\b[^>]*>([\s\S]*?)<\/script>/i);
66
+ if (scriptContent && !script.includes("client") && !script.includes('type="module"'))
67
+ await extractVariables(scriptContent[1], shellContext, shellPath);
68
+ }
69
+ const processedShell = await processDirectives(cleanTemplate, shellContext, shellPath, { ...defaultConfig, ...projectConfig, ...options }, new Set), slotIndex = processedShell.indexOf(SLOT_PLACEHOLDER);
70
+ if (slotIndex === -1) {
71
+ console.warn("[stx] Shell slot placeholder lost during processing");
72
+ return null;
73
+ }
74
+ return {
75
+ beforeSlot: processedShell.substring(0, slotIndex),
76
+ afterSlot: processedShell.substring(slotIndex + SLOT_PLACEHOLDER.length),
77
+ filePath: shellPath,
78
+ shellScripts,
79
+ shellStyles
80
+ };
81
+ } catch (error) {
82
+ console.error(`[stx] Error processing shell ${shellPath}:`, error);
83
+ return null;
84
+ }
85
+ }
86
+ export function composeShellWithPage(shell, pageContent, pageTitle) {
87
+ let hoistedTitle, hoistedHead = "";
88
+ const markerMatch = pageContent.match(PAGE_HEAD_MARKER_RE);
89
+ if (markerMatch) {
90
+ pageContent = pageContent.replace(markerMatch[0], "");
91
+ try {
92
+ const tags = Buffer.from(markerMatch[1], "base64").toString("utf8"), titleMatch = tags.match(/<title[^>]*>([\s\S]*?)<\/title>/i);
93
+ if (titleMatch)
94
+ hoistedTitle = titleMatch[1].trim();
95
+ hoistedHead = tags.replace(/<title[^>]*>[\s\S]*?<\/title>/i, "").trim();
96
+ } catch {}
97
+ }
98
+ const title = pageTitle || hoistedTitle || "stx App", routerScript = getRouterScriptCached(), routerConfig = "<script>window.__stxRouterConfig={container:'[data-stx-content]'};</script>";
99
+ return `<!DOCTYPE html>
100
+ <html lang="en">
101
+ <head>
102
+ <meta charset="UTF-8">
103
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
104
+ <title>${title}</title>
105
+ ${hoistedHead ? ` ${hoistedHead}
106
+ ` : ""} ${shell.shellStyles.join(`
107
+ `)}
108
+ </head>
109
+ <body>
110
+ ${shell.beforeSlot}
111
+ <div data-stx-content>${pageContent}</div>
112
+ ${shell.afterSlot}
113
+ ${shell.shellScripts.filter((s) => !s.includes("server")).join(`
114
+ `)}
115
+ ${routerConfig}
116
+ ${routerScript}
117
+ </body>
118
+ </html>`;
119
+ }
120
+ export function stripDocumentWrapper(html, options = {}) {
121
+ const trimmed = html.trim();
122
+ if (!startsDocument(trimmed))
123
+ return html;
124
+ const headStyles = [], headMatch = trimmed.match(/<head\b[^>]*>([\s\S]*?)<\/head>/i);
125
+ if (headMatch) {
126
+ const headContent = headMatch[1], styleRegex = /<style\b[^>]*>[\s\S]*?<\/style>/gi;
127
+ let m;
128
+ while ((m = styleRegex.exec(headContent)) !== null)
129
+ headStyles.push(m[0]);
130
+ }
131
+ if (options.preserveHead && headMatch) {
132
+ const headTags = [], tagRegex = /<title\b[^>]*>[\s\S]*?<\/title>|<meta\b[^>]*>|<link\b[^>]*>/gi;
133
+ let m;
134
+ while ((m = tagRegex.exec(headMatch[1])) !== null) {
135
+ if (/<meta\b[^>]*(?:\bcharset|name="viewport")/i.test(m[0]))
136
+ continue;
137
+ headTags.push(m[0]);
138
+ }
139
+ if (headTags.length > 0)
140
+ headStyles.unshift(`<!--${PAGE_HEAD_MARKER}${Buffer.from(headTags.join(`
141
+ `), "utf8").toString("base64")}-->`);
142
+ }
143
+ const bodyOpenMatch = trimmed.match(/<body\b[^>]*>/i), bodyCloseIdx = trimmed.lastIndexOf("</body>");
144
+ if (bodyOpenMatch && bodyCloseIdx !== -1) {
145
+ const bodyStart = bodyOpenMatch.index + bodyOpenMatch[0].length, bodyContent = trimmed.slice(bodyStart, bodyCloseIdx).trim();
146
+ if (headStyles.length > 0)
147
+ return headStyles.join(`
148
+ `) + `
149
+ ` + bodyContent;
150
+ return bodyContent;
151
+ }
152
+ let result = trimmed;
153
+ result = result.replace(/<!DOCTYPE\b[^>]*>/i, "");
154
+ result = result.replace(/<html\b[^>]*>/i, "");
155
+ result = result.replace(/<\/html\s*>/i, "");
156
+ if (headMatch)
157
+ result = result.replace(/<head\b[^>]*>[\s\S]*?<\/head>/i, headStyles.join(`
158
+ `));
159
+ result = result.replace(/<body\b[^>]*>/i, "");
160
+ result = result.replace(/<\/body\s*>/i, "");
161
+ return result.trim();
162
+ }
163
+ export function isSpaNavigation(request) {
164
+ return isSpaNavRequest(request);
165
+ }
166
+ export function extractContainerContent(html, containerSelector = "main") {
167
+ const trimmed = html.trim(), headStyles = [], headScripts = [], headMatch = trimmed.match(/<head\b[^>]*>([\s\S]*?)<\/head>/i);
168
+ if (headMatch) {
169
+ const headContent = headMatch[1], styleRegex = /<style\b[^>]*>[\s\S]*?<\/style>/gi;
170
+ let m;
171
+ while ((m = styleRegex.exec(headContent)) !== null)
172
+ headStyles.push(m[0]);
173
+ const routeParamsRegex = /<script\b[^>]*data-stx-route-params[^>]*>[\s\S]*?<\/script>/gi;
174
+ while ((m = routeParamsRegex.exec(headContent)) !== null)
175
+ headScripts.push(m[0]);
176
+ }
177
+ const containerRegion = findContainerRegion(trimmed, containerSelector);
178
+ if (!containerRegion)
179
+ return stripDocumentWrapper(html);
180
+ const { tagName: tag, start: openEnd, end: closeIdx } = containerRegion, innerContent = trimmed.slice(openEnd, closeIdx).trim(), bodyScripts = [], bodyOpenMatch = trimmed.match(/<body\b[^>]*>/i), bodyCloseIdx = trimmed.lastIndexOf("</body>");
181
+ if (bodyOpenMatch && bodyOpenMatch.index !== void 0 && bodyCloseIdx !== -1) {
182
+ const regions = [
183
+ [bodyOpenMatch.index + bodyOpenMatch[0].length, containerRegion.openIndex],
184
+ [closeIdx + `</${tag}>`.length, bodyCloseIdx]
185
+ ], scriptRe = /<script\b[^>]*>[\s\S]*?<\/script>/gi;
186
+ for (const [start, end] of regions) {
187
+ if (start >= end)
188
+ continue;
189
+ const region = trimmed.slice(start, end);
190
+ let sm;
191
+ scriptRe.lastIndex = 0;
192
+ while ((sm = scriptRe.exec(region)) !== null)
193
+ bodyScripts.push(sm[0]);
194
+ }
195
+ }
196
+ const parts = [];
197
+ if (headStyles.length > 0)
198
+ parts.push(headStyles.join(`
199
+ `));
200
+ if (headScripts.length > 0)
201
+ parts.push(headScripts.join(`
202
+ `));
203
+ if (bodyScripts.length > 0)
204
+ parts.push(bodyScripts.join(`
205
+ `));
206
+ parts.push(innerContent);
207
+ return parts.join(`
208
+ `);
209
+ }
package/dist/app.d.ts ADDED
@@ -0,0 +1,65 @@
1
+ import type { CustomDirective } from './types';
2
+ /**
3
+ * Create an stx application instance.
4
+ *
5
+ * ```ts
6
+ * import { createApp } from '@stacksjs/stx'
7
+ *
8
+ * const app = createApp()
9
+ *
10
+ * app.use(myPlugin)
11
+ * app.provide('theme', 'dark')
12
+ * app.component('MyButton', MyButton)
13
+ * app.mount('#app')
14
+ * ```
15
+ *
16
+ * @param rootComponent - Optional root component definition
17
+ * @param rootProps - Optional props for the root component
18
+ */
19
+ export declare function createApp(_rootComponent?: any, _rootProps?: Record<string, any>): StxApp;
20
+ /**
21
+ * Define a custom element from a component definition.
22
+ *
23
+ * Wraps the component as an HTMLElement subclass suitable for
24
+ * `customElements.define()`.
25
+ *
26
+ * ```ts
27
+ * import { defineCustomElement } from '@stacksjs/stx'
28
+ * import MyComponent from './MyComponent.stx'
29
+ *
30
+ * const MyElement = defineCustomElement(MyComponent)
31
+ * customElements.define('my-component', MyElement)
32
+ * ```
33
+ */
34
+ export declare function defineCustomElement(component: any): CustomElementConstructor;
35
+ /** A Vue-compatible plugin with install method */
36
+ export declare interface StxAppPlugin {
37
+ install: (app: StxApp, ...options: any[]) => void
38
+ }
39
+ /** The stx application instance */
40
+ export declare interface StxApp {
41
+ use(plugin: StxPluginInput, ...options: any[]): StxApp
42
+ provide<T>(key: string | symbol, value: T): StxApp
43
+ component(name: string, definition?: any): StxApp | any
44
+ directive(name: string, definition?: CustomDirective | Record<string, any>): StxApp | any
45
+ mount(rootContainer?: string | Element): StxApp
46
+ unmount(): void
47
+ config: StxAppConfig
48
+ _components: Map<string, any>
49
+ _directives: Map<string, any>
50
+ _installedPlugins: Set<StxPluginInput>
51
+ }
52
+ /** Application configuration */
53
+ export declare interface StxAppConfig {
54
+ errorHandler?: (error: Error, instance: any, info: string) => void
55
+ warnHandler?: (msg: string, instance: any, trace: string) => void
56
+ globalProperties: Record<string, any>
57
+ performance: boolean
58
+ compilerOptions: {
59
+ isCustomElement?: (tag: string) => boolean
60
+ whitespace?: 'condense' | 'preserve'
61
+ }
62
+ }
63
+ /** Plugin can be an object with install() or a plain function */
64
+ // eslint-disable-next-line pickier/no-unused-vars
65
+ export type StxPluginInput = StxAppPlugin | ((app: StxApp, ...options: any[]) => void);
package/dist/app.js ADDED
@@ -0,0 +1,79 @@
1
+ import { setGlobalProvide } from "./composition-api.js";
2
+ export function createApp(_rootComponent, _rootProps) {
3
+ const installedPlugins = new Set, components = new Map, directives = new Map, config = {
4
+ globalProperties: {},
5
+ performance: !1,
6
+ compilerOptions: {}
7
+ }, app = {
8
+ config,
9
+ _components: components,
10
+ _directives: directives,
11
+ _installedPlugins: installedPlugins,
12
+ use(plugin, ...options) {
13
+ if (installedPlugins.has(plugin))
14
+ return app;
15
+ installedPlugins.add(plugin);
16
+ if (typeof plugin === "function")
17
+ plugin(app, ...options);
18
+ else if (typeof plugin.install === "function")
19
+ plugin.install(app, ...options);
20
+ return app;
21
+ },
22
+ provide(key, value) {
23
+ setGlobalProvide(key, value);
24
+ return app;
25
+ },
26
+ component(name, definition) {
27
+ if (!definition)
28
+ return components.get(name);
29
+ components.set(name, definition);
30
+ return app;
31
+ },
32
+ directive(name, definition) {
33
+ if (!definition)
34
+ return directives.get(name);
35
+ directives.set(name, definition);
36
+ return app;
37
+ },
38
+ mount(_rootContainer) {
39
+ if (typeof document < "u") {
40
+ const globalObj = globalThis.__stx_globals || (globalThis.__stx_globals = {});
41
+ Object.assign(globalObj, config.globalProperties);
42
+ document.querySelectorAll("[v-cloak]").forEach((el) => {
43
+ el.removeAttribute("v-cloak");
44
+ });
45
+ }
46
+ return app;
47
+ },
48
+ unmount() {
49
+ components.clear();
50
+ directives.clear();
51
+ installedPlugins.clear();
52
+ }
53
+ };
54
+ return app;
55
+ }
56
+ export function defineCustomElement(component) {
57
+ return class extends HTMLElement {
58
+ _component;
59
+ _shadow;
60
+ constructor() {
61
+ super();
62
+ this._shadow = this.attachShadow({ mode: "open" });
63
+ this._component = component;
64
+ }
65
+ connectedCallback() {
66
+ if (this._component?.render) {
67
+ const result = this._component.render();
68
+ if (typeof result === "string")
69
+ this._shadow.innerHTML = result;
70
+ } else if (this._component?.template)
71
+ this._shadow.innerHTML = this._component.template;
72
+ else if (typeof this._component === "string")
73
+ this._shadow.innerHTML = this._component;
74
+ }
75
+ disconnectedCallback() {
76
+ this._shadow.innerHTML = "";
77
+ }
78
+ };
79
+ }
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Declarative pre-paint appearance bootstrapping.
3
+ *
4
+ * Client composables apply appearance reactively after mount, but that is too
5
+ * late for the first paint. This directive emits a compiler-owned synchronous
6
+ * script at the directive location so persisted root attributes and the dark
7
+ * class are present before the browser parses the application shell.
8
+ *
9
+ * @example
10
+ * ```stx
11
+ * @appearanceBootstrap({
12
+ * storageKey: 'app-appearance',
13
+ * appearance: {
14
+ * key: 'sidebarStyle',
15
+ * attribute: 'appearance',
16
+ * allowed: ['macos', 'arc'],
17
+ * default: 'macos',
18
+ * },
19
+ * colorMode: {
20
+ * key: 'colorMode',
21
+ * attribute: 'color-mode',
22
+ * default: 'system',
23
+ * },
24
+ * })
25
+ * ```
26
+ */
27
+ export interface AppearanceBootstrapValue {
28
+ /** Property read from the persisted JSON object. */
29
+ key: string;
30
+ /** Root data attribute name without the `data-` prefix. */
31
+ attribute: string;
32
+ /** Persisted values accepted by the bootstrap. */
33
+ allowed: string[];
34
+ /** Value used when storage is absent, malformed, or outside the allowlist. */
35
+ default: string;
36
+ }
37
+ export interface ColorModeBootstrapValue {
38
+ /** Property read from the persisted JSON object. */
39
+ key: string;
40
+ /** Root data attribute name without the `data-` prefix. */
41
+ attribute: string;
42
+ /** Mode used when storage is absent or malformed. */
43
+ default: 'light' | 'dark' | 'system';
44
+ }
45
+ export interface AppearanceBootstrapOptions {
46
+ /** localStorage key containing the persisted JSON preference object. */
47
+ storageKey: string;
48
+ appearance: AppearanceBootstrapValue;
49
+ colorMode: ColorModeBootstrapValue;
50
+ }
51
+ /**
52
+ * Transform every `@appearanceBootstrap({...})` directive in a template.
53
+ */
54
+ export declare function processAppearanceBootstrapDirective(template: string, context: Record<string, unknown>): string;
@@ -0,0 +1,92 @@
1
+ import { safeEvaluate } from "./safe-evaluator.js";
2
+ const DATA_ATTRIBUTE_PATTERN = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, PROPERTY_PATTERN = /^[A-Za-z_$][\w$]*$/, COLOR_MODES = new Set(["light", "dark", "system"]);
3
+ function assertString(value, label) {
4
+ if (typeof value !== "string" || value.length === 0)
5
+ throw Error(`@appearanceBootstrap ${label} must be a non-empty string`);
6
+ }
7
+ function normalizeOptions(value) {
8
+ if (!value || typeof value !== "object" || Array.isArray(value))
9
+ throw Error("@appearanceBootstrap expects an options object");
10
+ const input = value, appearance = input.appearance, colorMode = input.colorMode;
11
+ assertString(input.storageKey, "storageKey");
12
+ if (!appearance || typeof appearance !== "object" || Array.isArray(appearance))
13
+ throw Error("@appearanceBootstrap appearance must be an object");
14
+ if (!colorMode || typeof colorMode !== "object" || Array.isArray(colorMode))
15
+ throw Error("@appearanceBootstrap colorMode must be an object");
16
+ assertString(appearance.key, "appearance.key");
17
+ assertString(appearance.attribute, "appearance.attribute");
18
+ assertString(appearance.default, "appearance.default");
19
+ assertString(colorMode.key, "colorMode.key");
20
+ assertString(colorMode.attribute, "colorMode.attribute");
21
+ assertString(colorMode.default, "colorMode.default");
22
+ if (!PROPERTY_PATTERN.test(appearance.key) || !PROPERTY_PATTERN.test(colorMode.key))
23
+ throw Error("@appearanceBootstrap preference keys must be JavaScript property names");
24
+ if (!DATA_ATTRIBUTE_PATTERN.test(appearance.attribute) || !DATA_ATTRIBUTE_PATTERN.test(colorMode.attribute))
25
+ throw Error("@appearanceBootstrap attributes must be lowercase data attribute names");
26
+ if (!Array.isArray(appearance.allowed) || appearance.allowed.length === 0 || appearance.allowed.some((item) => typeof item !== "string" || item.length === 0))
27
+ throw Error("@appearanceBootstrap appearance.allowed must contain one or more strings");
28
+ if (!appearance.allowed.includes(appearance.default))
29
+ throw Error("@appearanceBootstrap appearance.default must be in appearance.allowed");
30
+ if (!COLOR_MODES.has(colorMode.default))
31
+ throw Error("@appearanceBootstrap colorMode.default must be light, dark, or system");
32
+ return {
33
+ storageKey: input.storageKey,
34
+ appearance: {
35
+ key: appearance.key,
36
+ attribute: appearance.attribute,
37
+ allowed: [...new Set(appearance.allowed)],
38
+ default: appearance.default
39
+ },
40
+ colorMode: {
41
+ key: colorMode.key,
42
+ attribute: colorMode.attribute,
43
+ default: colorMode.default
44
+ }
45
+ };
46
+ }
47
+ function serializeForScript(value) {
48
+ return JSON.stringify(value).replace(/</g, "\\u003c").replace(/>/g, "\\u003e").replace(/&/g, "\\u0026").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
49
+ }
50
+ function generateBootstrap(options) {
51
+ return `<script data-stx-scoped data-stx-appearance-bootstrap>(function(){"use strict";const config=${serializeForScript(options)};const root=document.documentElement;const MODES=["light","dark","system"];function read(){let stored={};try{const raw=localStorage.getItem(config.storageKey);const parsed=raw?JSON.parse(raw):{};if(parsed&&typeof parsed==="object"&&!Array.isArray(parsed))stored=parsed}catch{}return stored}function write(stored){try{localStorage.setItem(config.storageKey,JSON.stringify(stored))}catch{}}function resolve(){const stored=read();return{appearance:config.appearance.allowed.includes(stored[config.appearance.key])?stored[config.appearance.key]:config.appearance.default,colorMode:MODES.includes(stored[config.colorMode.key])?stored[config.colorMode.key]:config.colorMode.default}}function prefersDark(){try{return matchMedia("(prefers-color-scheme: dark)").matches}catch{return false}}function apply(){const state=resolve();const dark=state.colorMode==="dark"||(state.colorMode==="system"&&prefersDark());root.setAttribute("data-"+config.appearance.attribute,state.appearance);root.setAttribute("data-"+config.colorMode.attribute,state.colorMode);root.classList.toggle("dark",dark);root.dataset.theme=dark?"dark":"light";state.dark=dark;try{window.dispatchEvent(new CustomEvent("stx:appearance",{detail:state}))}catch{}return state}function store(key,allowed,value){if(allowed.includes(value)){const stored=read();stored[key]=value;write(stored)}return apply()}window.__stxAppearance={config:config,read:read,resolve:resolve,apply:apply,setColorMode:function(mode){return store(config.colorMode.key,MODES,mode)},setAppearance:function(name){return store(config.appearance.key,config.appearance.allowed,name)},watchSystem:function(){try{matchMedia("(prefers-color-scheme: dark)").addEventListener("change",function(){if(resolve().colorMode==="system")apply()})}catch{}}};apply()}());</script>`;
52
+ }
53
+ function findClosingParenthesis(source, openIndex) {
54
+ let depth = 1, quote = null, escaped = !1;
55
+ for (let index = openIndex + 1;index < source.length; index++) {
56
+ const character = source[index];
57
+ if (escaped) {
58
+ escaped = !1;
59
+ continue;
60
+ }
61
+ if (quote) {
62
+ if (character === "\\")
63
+ escaped = !0;
64
+ else if (character === quote)
65
+ quote = null;
66
+ continue;
67
+ }
68
+ if (character === '"' || character === "'" || character === "`") {
69
+ quote = character;
70
+ continue;
71
+ }
72
+ if (character === "(")
73
+ depth++;
74
+ else if (character === ")" && --depth === 0)
75
+ return index;
76
+ }
77
+ return -1;
78
+ }
79
+ export function processAppearanceBootstrapDirective(template, context) {
80
+ let output = template;
81
+ const pattern = /@appearanceBootstrap\s*\(/g;
82
+ let match;
83
+ while ((match = pattern.exec(output)) !== null) {
84
+ const openIndex = match.index + match[0].length - 1, closeIndex = findClosingParenthesis(output, openIndex);
85
+ if (closeIndex === -1)
86
+ throw Error("@appearanceBootstrap has an unclosed options object");
87
+ const expression = output.slice(openIndex + 1, closeIndex).trim(), evaluated = safeEvaluate(`(${expression})`, context), replacement = generateBootstrap(normalizeOptions(evaluated));
88
+ output = output.slice(0, match.index) + replacement + output.slice(closeIndex + 1);
89
+ pattern.lastIndex = match.index + replacement.length;
90
+ }
91
+ return output;
92
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * The conventional asset root, shared by the serve path and every build path.
3
+ *
4
+ * `serve()` resolves `/assets/*` from `resources/assets/*` as well as from
5
+ * `publicDir` — the Stacks/Laravel-style layout that `buddy make:*` produces.
6
+ * No build path had ever heard of it: they copy `publicDir` and nothing else.
7
+ *
8
+ * So `<script src="/assets/scripts/site-mode.js">` resolved under `stx dev` and
9
+ * 404'd in `dist/`, with nothing in the build reporting it. The only way to
10
+ * notice was to diff the build output against the served tree
11
+ * (stacksjs/stx#1876).
12
+ *
13
+ * It lives here rather than in one of the three builders because there are
14
+ * three of them — ssg.ts, site-builder/build.ts and production-builder.ts —
15
+ * each with its own copy mechanism, and a convention restated three times is
16
+ * one that will be fixed in one place and left behind in the others.
17
+ *
18
+ * @module asset-roots
19
+ */
20
+ /**
21
+ * Directory whose contents are served at `/assets/*`, in addition to
22
+ * `publicDir`. Relative to the project root, and deliberately not a config
23
+ * option — it mirrors what `serve()` hardcodes.
24
+ */
25
+ export declare const CONVENTIONAL_ASSET_ROOT = "resources/assets";
26
+ /** Where its contents must land so `/assets/*` resolves in built output. */
27
+ export declare const CONVENTIONAL_ASSET_OUTPUT = "assets";
28
+ /**
29
+ * Absolute path to the conventional asset root, or `null` when the project
30
+ * does not use that layout.
31
+ */
32
+ export declare function resolveConventionalAssetRoot(root?: string): string | null;
@@ -0,0 +1,7 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ export const CONVENTIONAL_ASSET_ROOT = "resources/assets", CONVENTIONAL_ASSET_OUTPUT = "assets";
4
+ export function resolveConventionalAssetRoot(root = process.cwd()) {
5
+ const dir = path.resolve(root, CONVENTIONAL_ASSET_ROOT);
6
+ return fs.existsSync(dir) && fs.statSync(dir).isDirectory() ? dir : null;
7
+ }
@@ -0,0 +1,21 @@
1
+ import type { StxOptions } from './types';
2
+ export declare const markdownCache: Map<string, {
3
+ content: string;
4
+ data: Record<string, any>;
5
+ updatedAt: number;
6
+ }>;
7
+ /**
8
+ * Read and parse a markdown file with frontmatter
9
+ * @param filePath Path to the markdown file
10
+ * @param options stx options
11
+ * @returns Object containing parsed content and frontmatter data
12
+ */
13
+ export declare function readMarkdownFile(filePath: string, options?: StxOptions): Promise<{
14
+ content: string;
15
+ data: Record<string, any>;
16
+ }>;
17
+ /**
18
+ * Process @markdown-file directive
19
+ * This directive includes markdown files in templates
20
+ */
21
+ export declare function processMarkdownFileDirectives(template: string, context: Record<string, any>, filePath?: string, options?: StxOptions): Promise<string>;