@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
package/README.md ADDED
@@ -0,0 +1,1042 @@
1
+ ![Social Card of Bun Plugin blade](https://github.com/stacksjs/stx/blob/main/.github/art/cover.jpg)
2
+
3
+ [![npm version][npm-version-src]][npm-version-href]
4
+ [![GitHub Actions][github-actions-src]][github-actions-href]
5
+ [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
6
+ [![npm downloads][npm-downloads-src]][npm-downloads-href]
7
+ <!-- [![Codecov][codecov-src]][codecov-href] -->
8
+
9
+ # stx
10
+
11
+ A Blade-like template engine plugin for Bun, enabling simple and powerful templating with .stx files.
12
+
13
+ ## Features
14
+
15
+ - 🦋 Laravel Blade-like syntax
16
+ - âš¡ Reactive bindings (`:class`, `:style`, `:text`, `@click`, `@model`)
17
+ - 📡 Signals system (`state`, `derived`, `effect`)
18
+ - 🧩 35+ browser composables (`useRef`, `useFetch`, `useLocalStorage`, etc.)
19
+ - 🚀 Fast and lightweight
20
+ - 📦 Zero config
21
+
22
+ ## Installation
23
+
24
+ ```bash
25
+ bun add bun-plugin-stx
26
+ ```
27
+
28
+ ## Setup
29
+
30
+ Add the plugin to your `bunfig.toml`:
31
+
32
+ ```toml
33
+ preload = [ "bun-plugin-stx" ]
34
+
35
+ # or as a serve plugin
36
+ [serve.static]
37
+ plugins = [ "bun-plugin-stx" ]
38
+ ```
39
+
40
+ Or register the plugin in your build script:
41
+
42
+ ```ts
43
+ import { build } from 'bun'
44
+ import stxPlugin from 'bun-plugin-stx'
45
+
46
+ await build({
47
+ entrypoints: ['./src/index.ts', './templates/home.stx'],
48
+ outdir: './dist',
49
+ plugins: [stxPlugin],
50
+ })
51
+ ```
52
+
53
+ ## Usage with ESM
54
+
55
+ ### 1. Configure Bun to use the plugin
56
+
57
+ In your build script or Bun configuration:
58
+
59
+ ```js
60
+ // build.js
61
+ import { build } from 'bun'
62
+ import stxPlugin from 'bun-plugin-stx'
63
+
64
+ await build({
65
+ entrypoints: ['./src/index.ts', './templates/home.stx'],
66
+ outdir: './dist',
67
+ plugins: [stxPlugin],
68
+ })
69
+ ```
70
+
71
+ ### 2. Import and use .stx files directly
72
+
73
+ You can import .stx files directly in your ESM code:
74
+
75
+ ```js
76
+ // app.js
77
+ import homeTemplate from './templates/home.stx'
78
+
79
+ // Use the processed HTML content
80
+ document.body.innerHTML = homeTemplate
81
+ ```
82
+
83
+ ### 3. Use with Bun's server
84
+
85
+ You can serve .stx files directly with Bun's server:
86
+
87
+ ```js
88
+ // server.js
89
+ import { serve } from 'bun'
90
+ import homeTemplate from './home.stx'
91
+
92
+ serve({
93
+ port: 3000,
94
+ fetch(req) {
95
+ return new Response(homeTemplate, {
96
+ headers: { 'Content-Type': 'text/html' }
97
+ })
98
+ }
99
+ })
100
+ ```
101
+
102
+ Or use as route handlers:
103
+
104
+ ```js
105
+ import about from './about.stx'
106
+ // server.js
107
+ import home from './home.stx'
108
+
109
+ export default {
110
+ port: 3000,
111
+ routes: {
112
+ '/': home,
113
+ '/about': about
114
+ }
115
+ }
116
+ ```
117
+
118
+ ## stx Template Syntax
119
+
120
+ stx templates use a syntax inspired by Laravel Blade. Templates can contain HTML with special directives for rendering dynamic content.
121
+
122
+ ### Basic Example
123
+
124
+ ```html
125
+ <!DOCTYPE html>
126
+ <html>
127
+ <head>
128
+ <title>stx Example</title>
129
+ <script>
130
+ // Define your data as an ESM export
131
+ export const title = "Hello World";
132
+ export const items = ["Apple", "Banana", "Cherry"];
133
+ export const showFooter = true;
134
+ </script>
135
+ </head>
136
+ <body>
137
+ <h1>{{ title }}</h1>
138
+
139
+ <ul>
140
+ @foreach (items as item)
141
+ <li>{{ item }}</li>
142
+ @endforeach
143
+ </ul>
144
+
145
+ @if (showFooter)
146
+ <footer>Copyright 2023</footer>
147
+ @endif
148
+ </body>
149
+ </html>
150
+ ```
151
+
152
+ ### Data Export Options
153
+
154
+ There are two ways to expose data in your stx templates:
155
+
156
+ #### 1. ESM exports (recommended)
157
+
158
+ ```html
159
+ <script>
160
+ // Modern ESM named exports
161
+ export const title = "Hello World";
162
+ export const count = 42;
163
+
164
+ // Export functions
165
+ export function getFullName(first, last) {
166
+ return `${first} ${last}`;
167
+ }
168
+
169
+ // Export default object
170
+ export default {
171
+ items: ["Apple", "Banana", "Cherry"],
172
+ showDetails: true
173
+ };
174
+ </script>
175
+ ```
176
+
177
+ #### 2. Legacy CommonJS (module.exports)
178
+
179
+ ```html
180
+ <script>
181
+ // Legacy CommonJS exports
182
+ module.exports = {
183
+ title: "Hello World",
184
+ items: ["Apple", "Banana", "Cherry"],
185
+ showFooter: true
186
+ };
187
+ </script>
188
+ ```
189
+
190
+ ### Template Directives
191
+
192
+ #### Custom Directives
193
+
194
+ stx supports defining your own custom directives for template processing:
195
+
196
+ ```ts
197
+ import type { CustomDirective } from 'bun-plugin-stx'
198
+ // Configure custom directives
199
+ import stxPlugin from 'bun-plugin-stx'
200
+
201
+ // Create custom directives
202
+ const uppercaseDirective: CustomDirective = {
203
+ name: 'uppercase',
204
+ handler: (content, params) => {
205
+ return params[0] ? params[0].toUpperCase() : content.toUpperCase()
206
+ },
207
+ // No hasEndTag needed for single-parameter directives
208
+ }
209
+
210
+ const wrapDirective: CustomDirective = {
211
+ name: 'wrap',
212
+ handler: (content, params) => {
213
+ const className = params[0] || 'default-wrapper'
214
+ return `<div class="${className}">${content}</div>`
215
+ },
216
+ hasEndTag: true, // This directive requires an end tag (@wrap...@endwrap)
217
+ }
218
+
219
+ // Register custom directives
220
+ await build({
221
+ entrypoints: ['./src/index.ts', './templates/home.stx'],
222
+ outdir: './dist',
223
+ plugins: [stxPlugin],
224
+ stx: {
225
+ customDirectives: [uppercaseDirective, wrapDirective],
226
+ },
227
+ })
228
+ ```
229
+
230
+ Then use them in your templates:
231
+
232
+ ```html
233
+ <!-- Single-parameter directive -->
234
+ <p>@uppercase('hello world')</p>
235
+
236
+ <!-- Block directive with content and optional parameter -->
237
+ @wrap(highlight)
238
+ <p>This content will be wrapped in a div with class "highlight"</p>
239
+ @endwrap
240
+ ```
241
+
242
+ Custom directives have access to:
243
+
244
+ - `content`: The content between start and end tags (for block directives)
245
+ - `params`: Array of parameters passed to the directive
246
+ - `context`: The template data context (all variables)
247
+ - `filePath`: The current template file path
248
+
249
+ #### Variables
250
+
251
+ Display content with double curly braces:
252
+
253
+ ```html
254
+ <h1>{{ title }}</h1>
255
+ <p>{{ user.name }}</p>
256
+ ```
257
+
258
+ #### Conditionals
259
+
260
+ Use `@if`, `@elseif`, and `@else` for conditional rendering:
261
+
262
+ ```html
263
+ @if (user.isAdmin)
264
+ <div class="admin-panel">Admin content</div>
265
+ @elseif (user.isEditor)
266
+ <div class="editor-tools">Editor tools</div>
267
+ @else
268
+ <div class="user-view">Regular user view</div>
269
+ @endif
270
+ ```
271
+
272
+ #### Loops
273
+
274
+ Iterate over arrays with `@foreach`:
275
+
276
+ ```html
277
+ <ul>
278
+ @foreach (items as item)
279
+ <li>{{ item }}</li>
280
+ @endforeach
281
+ </ul>
282
+ ```
283
+
284
+ Use `@for` for numeric loops:
285
+
286
+ ```html
287
+ <ol>
288
+ @for (let i = 1; i <= 5; i++)
289
+ <li>Item {{ i }}</li>
290
+ @endfor
291
+ </ol>
292
+ ```
293
+
294
+ #### Raw HTML
295
+
296
+ Output unescaped HTML content:
297
+
298
+ ```html
299
+ {!! rawHtmlContent !!}
300
+ ```
301
+
302
+ ### Reactive Bindings (Signals)
303
+
304
+ stx includes a built-in signals system for client-side reactivity. Define reactive state in your `<script>` block and bind it directly to your template using `:class`, `:style`, `:text`, and other directive bindings.
305
+
306
+ #### State & Reactivity
307
+
308
+ ```html
309
+ <script>
310
+ const count = state(0)
311
+ const doubled = derived(() => count() * 2)
312
+
313
+ effect(() => {
314
+ console.log('Count changed:', count())
315
+ })
316
+
317
+ function increment() {
318
+ count.set(count() + 1)
319
+ }
320
+ </script>
321
+
322
+ <button @click="increment()">Count: {{ count() }}</button>
323
+ <p>Doubled: {{ doubled() }}</p>
324
+ ```
325
+
326
+ - `state(initialValue)` — creates a reactive signal. Read with `signal()`, write with `signal.set(value)`
327
+ - `derived(fn)` — creates a computed value that auto-tracks dependencies
328
+ - `effect(fn)` — runs a side effect whenever its tracked signals change
329
+ - `batch(fn)` — batches multiple signal updates into a single re-render
330
+
331
+ #### Dynamic Class Binding (`:class`)
332
+
333
+ Bind classes reactively using `:class` with object, array, or string syntax. The static `class` attribute is preserved — `:class` adds/removes classes on top of it.
334
+
335
+ **Object syntax** — toggle classes based on conditions:
336
+
337
+ ```html
338
+ <script>
339
+ const activeTab = state('home')
340
+ </script>
341
+
342
+ <button
343
+ class="tab-btn px-3 py-1.5 rounded text-sm font-medium"
344
+ :class="{ active: activeTab() === 'home' }"
345
+ @click="activeTab.set('home')"
346
+ >
347
+ Home
348
+ </button>
349
+
350
+ <button
351
+ class="tab-btn px-3 py-1.5 rounded text-sm font-medium"
352
+ :class="{ active: activeTab() === 'settings', disabled: !isAdmin() }"
353
+ @click="activeTab.set('settings')"
354
+ >
355
+ Settings
356
+ </button>
357
+ ```
358
+
359
+ **Array syntax** — apply a list of classes:
360
+
361
+ ```html
362
+ <div :class="[baseClass(), isLarge() ? 'text-lg' : 'text-sm']">
363
+ Content
364
+ </div>
365
+ ```
366
+
367
+ **String syntax** — bind a dynamic class string:
368
+
369
+ ```html
370
+ <div :class="isError() ? 'bg-red-500 text-white' : 'bg-zinc-800'">
371
+ Content
372
+ </div>
373
+ ```
374
+
375
+ All three syntaxes are reactive — when the underlying signals change, the classes update automatically.
376
+
377
+ #### Dynamic Style Binding (`:style`)
378
+
379
+ Bind inline styles reactively:
380
+
381
+ ```html
382
+ <div :style="{ color: textColor(), fontSize: size() + 'px' }">
383
+ Styled content
384
+ </div>
385
+ ```
386
+
387
+ #### Dynamic Text & HTML (`:text`, `:html`)
388
+
389
+ ```html
390
+ <span :text="message()"></span>
391
+ <div :html="richContent()"></div>
392
+ ```
393
+
394
+ #### Dynamic Attribute Binding (`:attr`)
395
+
396
+ Bind any HTML attribute reactively:
397
+
398
+ ```html
399
+ <input :disabled="isLoading()" :placeholder="hint()" />
400
+ <a :href="linkUrl()">Dynamic link</a>
401
+ ```
402
+
403
+ #### Event Handling (`@click`, `@submit`, etc.)
404
+
405
+ Bind event handlers directly in the template:
406
+
407
+ ```html
408
+ <button @click="count.set(count() + 1)">Increment</button>
409
+ <form @submit.prevent="handleSubmit()">...</form>
410
+ <input @keydown.enter="search()" />
411
+ ```
412
+
413
+ Supported modifiers: `.prevent`, `.stop`, `.self`, `.once`, `.capture`, `.passive`, `.ctrl`, `.alt`, `.shift`, `.meta`, `.enter`, `.escape`, `.space`, `.tab`
414
+
415
+ #### Conditional Rendering (`@if`, `@show`)
416
+
417
+ ```html
418
+ <div @if="isLoggedIn()">Welcome back!</div>
419
+ <div @show="isVisible()">Toggles display</div>
420
+ ```
421
+
422
+ #### List Rendering (`@for`)
423
+
424
+ ```html
425
+ <ul>
426
+ <li @for="item in items()">{{ item.name }}</li>
427
+ </ul>
428
+ ```
429
+
430
+ #### Two-way Binding (`@model`)
431
+
432
+ ```html
433
+ <input @model="username" />
434
+ <p>Hello, {{ username() }}</p>
435
+ ```
436
+
437
+ #### Lifecycle Hooks
438
+
439
+ ```html
440
+ <script>
441
+ onMount(() => {
442
+ console.log('Component mounted')
443
+ fetchData()
444
+ })
445
+
446
+ onDestroy(() => {
447
+ console.log('Cleaning up')
448
+ })
449
+ </script>
450
+ ```
451
+
452
+ #### Browser Composables
453
+
454
+ stx provides 35+ utility composables for common browser tasks:
455
+
456
+ ```html
457
+ <script>
458
+ // Refs
459
+ const el = useRef('my-element')
460
+
461
+ // Events
462
+ useEventListener('click', handler, { target: '#my-btn' })
463
+ useClickOutside(el, () => closeDropdown())
464
+
465
+ // Storage
466
+ const theme = useLocalStorage('theme', 'dark')
467
+
468
+ // Routing
469
+ const route = useRoute()
470
+ const path = route.path
471
+
472
+ // Async data
473
+ const { data, isLoading, error } = useFetch('/api/data')
474
+
475
+ // Timing
476
+ const debouncedSearch = useDebounce(search, 300)
477
+
478
+ // Responsive
479
+ const { width } = useWindowSize()
480
+ const isMobile = useMediaQuery('(max-width: 768px)')
481
+
482
+ // State utilities
483
+ const [isDark, toggleDark] = useToggle(false)
484
+ const { count, inc, dec } = useCounter(0)
485
+ </script>
486
+ ```
487
+
488
+ #### Markdown Support
489
+
490
+ stx supports rendering Markdown content directly in your templates using the `@markdown` directive:
491
+
492
+ ```html
493
+ <div class="content">
494
+ @markdown
495
+ # Heading 1
496
+
497
+ This is a paragraph with **bold text** and *italic text*.
498
+
499
+ - List item 1
500
+ - List item 2
501
+ - List item 3
502
+
503
+ ```js
504
+ // Code block
505
+ function hello() {
506
+ console.log('Hello world');
507
+ }
508
+ ```
509
+
510
+ @endmarkdown
511
+ </div>
512
+ ```
513
+
514
+ You can also pass options to the markdown renderer:
515
+
516
+ ```html
517
+ <!-- Enable line breaks (converts single line breaks to <br>) -->
518
+ @markdown(breaks)
519
+ Line 1
520
+ Line 2
521
+ @endmarkdown
522
+
523
+ <!-- Disable GitHub Flavored Markdown -->
524
+ @markdown(no-gfm)
525
+ Content here
526
+ @endmarkdown
527
+ ```
528
+
529
+ ### Internationalization (i18n)
530
+
531
+ stx supports internationalization to help you build multilingual applications. Translation files are stored in YAML format (JSON also supported) and support nested keys and parameter replacements.
532
+
533
+ #### Configuration
534
+
535
+ Configure i18n in your build script:
536
+
537
+ ```js
538
+ import stxPlugin from 'bun-plugin-stx'
539
+
540
+ await build({
541
+ entrypoints: ['./templates/home.stx'],
542
+ outdir: './dist',
543
+ plugins: [stxPlugin],
544
+ stx: {
545
+ i18n: {
546
+ locale: 'en', // Current locale
547
+ defaultLocale: 'en', // Fallback locale
548
+ translationsDir: 'translations', // Directory containing translations
549
+ format: 'yaml', // Format of translation files (yaml, yml, json, or js)
550
+ fallbackToKey: true, // Use key as fallback when translation not found
551
+ cache: true // Cache translations in memory
552
+ }
553
+ }
554
+ })
555
+ ```
556
+
557
+ #### Translation Files
558
+
559
+ Create translation files in your translationsDir:
560
+
561
+ ```yaml
562
+ # translations/en.yaml
563
+ welcome: Welcome to stx
564
+ greeting: Hello, :name!
565
+ nav:
566
+ home: Home
567
+ about: About
568
+ contact: Contact
569
+ ```
570
+
571
+ ```yaml
572
+ # translations/de.yaml
573
+ welcome: Willkommen bei stx
574
+ greeting: Hallo, :name!
575
+ nav:
576
+ home: Startseite
577
+ about: Über uns
578
+ contact: Kontakt
579
+ ```
580
+
581
+ #### Using Translations
582
+
583
+ stx provides multiple ways to use translations in your templates:
584
+
585
+ 1. **@translate Directive**
586
+
587
+ ```html
588
+ <!-- Basic translation -->
589
+ <p>@translate('welcome')</p>
590
+
591
+ <!-- With parameters -->
592
+ <p>@translate('greeting', { "name": "John" })</p>
593
+
594
+ <!-- Nested keys -->
595
+ <p>@translate('nav.home')</p>
596
+
597
+ <!-- With fallback content -->
598
+ <p>@translate('missing.key')Fallback Content@endtranslate</p>
599
+ ```
600
+
601
+ 2. **Filter Syntax**
602
+
603
+ ```html
604
+ <!-- Basic translation as filter -->
605
+ <p>{{ 'welcome' | translate }}</p>
606
+
607
+ <!-- With parameters -->
608
+ <p>{{ 'greeting' | translate({ "name": "Alice" }) }}</p>
609
+
610
+ <!-- Short alias -->
611
+ <p>{{ 'nav.home' | t }}</p>
612
+ ```
613
+
614
+ Parameters in translations use the `:param` syntax, similar to Laravel:
615
+
616
+ ```yaml
617
+ greeting: Hello, :name!
618
+ items: You have :count items in your cart.
619
+ ```
620
+
621
+ Then in your template:
622
+
623
+ ```html
624
+ <p>@translate('greeting', { "name": "John" })</p>
625
+ <p>@translate('items', { "count": 5 })</p>
626
+ ```
627
+
628
+ ### Web Components Integration
629
+
630
+ stx now provides seamless integration with Web Components, allowing you to automatically build and use custom elements from your stx components.
631
+
632
+ #### Configuration
633
+
634
+ Enable web component integration in your build configuration:
635
+
636
+ ```ts
637
+ import { build } from 'bun'
638
+ import stxPlugin from 'bun-plugin-stx'
639
+
640
+ await build({
641
+ entrypoints: ['./templates/home.stx'],
642
+ outdir: './dist',
643
+ plugins: [stxPlugin],
644
+ config: {
645
+ stx: {
646
+ webComponents: {
647
+ enabled: true,
648
+ outputDir: 'dist/web-components',
649
+ components: [
650
+ {
651
+ name: 'MyButton', // Class name for the component
652
+ tag: 'my-button', // HTML tag name (must contain a hyphen)
653
+ file: 'components/button.stx', // Path to the stx component
654
+ attributes: ['type', 'text', 'disabled'] // Observed attributes
655
+ },
656
+ {
657
+ name: 'MyCard',
658
+ tag: 'my-card',
659
+ file: 'components/card.stx',
660
+ shadowDOM: true, // Use Shadow DOM (default: true)
661
+ template: true, // Use template element (default: true)
662
+ styleSource: 'styles/card.css', // Optional external stylesheet
663
+ attributes: ['title', 'footer']
664
+ }
665
+ ]
666
+ }
667
+ }
668
+ }
669
+ })
670
+ ```
671
+
672
+ #### Using Web Components in Templates
673
+
674
+ Include web components in your templates with the `@webcomponent` directive:
675
+
676
+ ```html
677
+ <!DOCTYPE html>
678
+ <html>
679
+ <head>
680
+ <title>Web Component Demo</title>
681
+
682
+ <!-- Include the web components -->
683
+ @webcomponent('my-button')
684
+ @webcomponent('my-card')
685
+ </head>
686
+ <body>
687
+ <h1>Web Components Demo</h1>
688
+
689
+ <!-- Use the custom elements -->
690
+ <my-button type="primary" text="Click Me"></my-button>
691
+
692
+ <my-card title="Card Title" footer="Card Footer">
693
+ This is the card content
694
+ </my-card>
695
+ </body>
696
+ </html>
697
+ ```
698
+
699
+ #### Source stx Components
700
+
701
+ The original stx components can be simple:
702
+
703
+ ```html
704
+ <!-- components/button.stx -->
705
+ <button class="btn {{ type ? 'btn-' + type : '' }}" {{ disabled ? 'disabled' : '' }}>
706
+ {{ text || slot }}
707
+ </button>
708
+
709
+ <!-- components/card.stx -->
710
+ <div class="card">
711
+ <div class="card-header">{{ title }}</div>
712
+ <div class="card-body">
713
+ {{ slot }}
714
+ </div>
715
+ <div class="card-footer">{{ footer }}</div>
716
+ </div>
717
+ ```
718
+
719
+ #### Advanced Options
720
+
721
+ Web components support several configuration options:
722
+
723
+ - `shadowDOM`: Enable/disable Shadow DOM (default: true)
724
+ - `template`: Use template element for better performance (default: true)
725
+ - `extends`: Extend a specific HTML element class
726
+ - `styleSource`: Path to external stylesheet
727
+ - `attributes`: List of attributes to observe for changes
728
+
729
+ ## TypeScript Support
730
+
731
+ stx ships its TypeScript declarations as part of the package. As soon as
732
+ `@stacksjs/stx` is installed, TypeScript automatically picks up:
733
+
734
+ - `*.stx` and `*.md` module declarations (so `.stx` imports typecheck)
735
+ - Ambient runtime globals injected into `<script client>` blocks: `state`,
736
+ `derived`, `effect`, `batch`, `onMount`, `onDestroy`, `defineStore`,
737
+ `useStore`, `useHead`, `useSeoMeta`, `navigate`, `useRoute`, etc.
738
+ - The `window.stx` registry interface
739
+
740
+ You do **not** need to create your own `stx.d.ts`. Just include `.stx`
741
+ files in your `tsconfig.json`:
742
+
743
+ ```jsonc
744
+ {
745
+ "compilerOptions": {
746
+ "types": ["bun"],
747
+ "moduleResolution": "bundler"
748
+ },
749
+ "include": ["**/*.ts", "**/*.stx"]
750
+ }
751
+ ```
752
+
753
+ If you have an old `stx.d.ts` from a previous version declaring `*.stx`
754
+ or runtime globals, it's now redundant and can be deleted.
755
+
756
+ ## Example Server
757
+
758
+ Run a development server with your stx templates:
759
+
760
+ ```ts
761
+ // serve.ts
762
+ import home from './home.stx'
763
+
764
+ const server = Bun.serve({
765
+ routes: {
766
+ '/': home,
767
+ },
768
+ development: true,
769
+
770
+ fetch(req) {
771
+ return new Response('Not Found', { status: 404 })
772
+ },
773
+ })
774
+
775
+ console.log(`Listening on ${server.url}`)
776
+ ```
777
+
778
+ ## Testing This Plugin
779
+
780
+ To test the plugin with the included examples:
781
+
782
+ 1. Build the test file:
783
+
784
+ ```bash
785
+ bun run test-build.ts
786
+ ```
787
+
788
+ 2. Run the test server:
789
+
790
+ ```bash
791
+ bun run serve-test.ts
792
+ ```
793
+
794
+ 3. Open your browser to the displayed URL (typically `http://localhost:3000`).
795
+
796
+ ## How It Works
797
+
798
+ The plugin works by:
799
+
800
+ 1. Extracting script tags from .stx files
801
+ 2. Creating an execution context with variables from the script
802
+ 3. Processing Blade-like directives (@if, @foreach, etc.) into HTML
803
+ 4. Processing variable tags ({{ var }}) with their values
804
+ 5. Returning the processed HTML content
805
+
806
+ ## Testing
807
+
808
+ ```bash
809
+ bun test
810
+ ```
811
+
812
+ ## CSS Generation with Headwind
813
+
814
+ stx uses [Headwind](https://headwind.stacksjs.org) for utility-first CSS generation. Headwind is a blazingly fast CSS framework built with Bun that generates only the CSS you need.
815
+
816
+ ### Building CSS
817
+
818
+ ```bash
819
+ # Build CSS from your .stx templates
820
+ bun run build:css
821
+
822
+ # The CSS will be generated at ./examples/dist/styles.css
823
+ ```
824
+
825
+ ### Headwind Configuration
826
+
827
+ Headwind is configured via `headwind.config.ts`:
828
+
829
+ ```typescript
830
+ import type { HeadwindConfig } from 'headwind'
831
+ import path from 'node:path'
832
+
833
+ const config: Partial<HeadwindConfig> = {
834
+ content: [
835
+ './examples/**/*.stx',
836
+ './examples/**/*.{html,js,ts,jsx,tsx}',
837
+ ],
838
+ output: './examples/dist/styles.css',
839
+ minify: true,
840
+ }
841
+
842
+ export default config
843
+ ```
844
+
845
+ ### Using Utility Classes
846
+
847
+ stx templates support all Headwind/Tailwind-compatible utility classes:
848
+
849
+ ```html
850
+ <div class="flex items-center justify-between p-4 bg-white rounded-lg shadow-md hover:shadow-lg">
851
+ <h1 class="text-2xl font-bold text-gray-900">Hello World</h1>
852
+ <button class="px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600 transition">
853
+ Click Me
854
+ </button>
855
+ </div>
856
+ ```
857
+
858
+ The build process automatically scans all your `.stx` files and generates only the CSS classes you actually use. For more information, visit the [Headwind documentation](https://headwind.stacksjs.org).
859
+
860
+ ## Changelog
861
+
862
+ Please see our [releases](https://github.com/stacksjs/stx/releases) page for more information on what has changed recently.
863
+
864
+ ## Contributing
865
+
866
+ Please review the [Contributing Guide](https://github.com/stacksjs/contributing) for details.
867
+
868
+ ## Community
869
+
870
+ For help, discussion about best practices, or any other conversation that would benefit from being searchable:
871
+
872
+ [Discussions on GitHub](https://github.com/stacksjs/stacks/discussions)
873
+
874
+ For casual chit-chat with others using this package:
875
+
876
+ [Join the Stacks Discord Server](https://stacksjs.com/discord)
877
+
878
+ ## Postcardware
879
+
880
+ You will always be free to use any of the Stacks OSS software. We would also love to see which parts of the world Stacks ends up in. _Receiving postcards makes us happy—and we will publish them on our website._
881
+
882
+ Our address: Stacks.js, 12665 Village Ln #2306, Playa Vista, CA 90094, United States 🌎
883
+
884
+ ## Sponsors
885
+
886
+ We would like to extend our thanks to the following sponsors for funding Stacks development. If you are interested in becoming a sponsor, please reach out to us.
887
+
888
+ - [JetBrains](https://www.jetbrains.com/)
889
+ - [The Solana Foundation](https://solana.com/)
890
+
891
+ ## Credits
892
+
893
+ Many thanks to the following core technologies & people who have contributed to this package:
894
+
895
+ - [Laravel](https://laravel.com)
896
+ - [Anthony Fu](https://github.com/antfu)
897
+ - [Chris Breuer](https://github.com/chrisbbreuer)
898
+ - [All Contributors](../../contributors)
899
+
900
+ ## License
901
+
902
+ The MIT License (MIT). Please see [LICENSE](https://github.com/stacksjs/stx/tree/main/LICENSE.md) for more information.
903
+
904
+ Made with 💙
905
+
906
+ <!-- Badges -->
907
+ [npm-version-src]: <https://img.shields.io/npm/v/bun-plugin-stx?style=flat-square>
908
+ [npm-version-href]: <https://npmjs.com/package/bun-plugin-stx>
909
+ [npm-downloads-src]: <https://img.shields.io/npm/dm/bun-plugin-stx?style=flat-square>
910
+ [npm-downloads-href]: <https://npmjs.com/package/bun-plugin-stx>
911
+ [github-actions-src]: <https://img.shields.io/github/actions/workflow/status/stacksjs/stx/ci.yml?style=flat-square&branch=main>
912
+ [github-actions-href]: <https://github.com/stacksjs/stx/actions?query=workflow%3Aci>
913
+
914
+ <!-- [codecov-src]: https://img.shields.io/codecov/c/gh/stacksjs/stx/main?style=flat-square
915
+ [codecov-href]: https://codecov.io/gh/stacksjs/stx -->
916
+
917
+ ## Documentation Generation
918
+
919
+ stx can automatically generate documentation for your components, templates, and directives. This helps developers understand your UI components and how to use them.
920
+
921
+ ### Command Line
922
+
923
+ Generate documentation using the CLI:
924
+
925
+ ```bash
926
+ # Generate markdown documentation (default)
927
+ stx docs
928
+
929
+ # Generate HTML documentation
930
+ stx docs --format html
931
+
932
+ # Generate JSON documentation
933
+ stx docs --format json
934
+
935
+ # Specify output directory
936
+ stx docs --output my-docs
937
+
938
+ # Only generate specific sections
939
+ stx docs --no-components
940
+ stx docs --no-templates
941
+ stx docs --no-directives
942
+
943
+ # Specify custom directories
944
+ stx docs --components-dir src/components --templates-dir src/views
945
+ ```
946
+
947
+ ### Configuration
948
+
949
+ You can configure documentation generation in your `stx.config.ts` file:
950
+
951
+ ```ts
952
+ export default {
953
+ // ...other config options
954
+ docs: {
955
+ enabled: true,
956
+ outputDir: 'docs',
957
+ format: 'markdown', // 'markdown', 'html', or 'json'
958
+ components: true,
959
+ templates: true,
960
+ directives: true,
961
+ extraContent: '## Getting Started\n\nThis is additional content to include in the documentation.',
962
+ },
963
+ }
964
+ ```
965
+
966
+ ### Component Documentation
967
+
968
+ stx can extract component metadata from JSDoc comments in your component files:
969
+
970
+ ```html
971
+ <!--
972
+ Alert component for displaying messages to the user.
973
+ This component supports different types (success, warning, error).
974
+ -->
975
+ <div class="alert alert-{{ type }}">
976
+ <div class="alert-title">{{ title }}</div>
977
+ <div class="alert-body">{{ message }}</div>
978
+ </div>
979
+
980
+ <script>
981
+ /**
982
+ * The type of alert to display
983
+ * @type {string}
984
+ * @default "info"
985
+ */
986
+ const type = module.exports.type || "info";
987
+
988
+ /**
989
+ * The alert title
990
+ * @type {string}
991
+ * @required
992
+ */
993
+ const title = module.exports.title;
994
+
995
+ /**
996
+ * The alert message
997
+ * @type {string}
998
+ */
999
+ const message = module.exports.message || "";
1000
+
1001
+ // Prepare the component's context
1002
+ module.exports = {
1003
+ type,
1004
+ title,
1005
+ message
1006
+ };
1007
+ </script>
1008
+ ```
1009
+
1010
+ This component will be documented with all its properties, types, default values, and requirements.
1011
+
1012
+ ### Web Component Documentation
1013
+
1014
+ stx will automatically document web components defined in your configuration:
1015
+
1016
+ ```ts
1017
+ export default {
1018
+ // ... other config
1019
+ webComponents: {
1020
+ enabled: true,
1021
+ outputDir: 'dist/web-components',
1022
+ components: [
1023
+ {
1024
+ name: 'MyButton',
1025
+ tag: 'my-button',
1026
+ file: 'components/button.stx',
1027
+ attributes: ['type', 'text', 'disabled'],
1028
+ description: 'A customizable button component'
1029
+ }
1030
+ ]
1031
+ }
1032
+ }
1033
+ ```
1034
+
1035
+ The documentation will include:
1036
+
1037
+ - Component name and description
1038
+ - Custom element tag
1039
+ - Observed attributes
1040
+ - Usage examples
1041
+
1042
+ This makes it easy for developers to understand how to use your web components in their HTML.