@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,180 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { extractVariables } from "./variable-extractor.js";
4
+ import { defaultConfig } from "./config.js";
5
+ import { processDirectives } from "./process.js";
6
+ export async function renderView(templatePath, props = {}, options = {}) {
7
+ const content = await Bun.file(templatePath).text(), scriptMatch = content.match(/<script\s+server\s*>([\s\S]*?)<\/script>/i), scriptContent = scriptMatch ? scriptMatch[1] : "";
8
+ let templateContent = scriptMatch ? content.replace(/<script\s+server\s*>[\s\S]*?<\/script>/i, "") : content;
9
+ templateContent = templateContent.replace(/<script\s+client\s*>/gi, "<script>");
10
+ const context = {
11
+ __filename: templatePath,
12
+ __dirname: path.dirname(templatePath),
13
+ props,
14
+ ...props
15
+ };
16
+ if (scriptContent)
17
+ await extractVariables(scriptContent, context, templatePath);
18
+ const config = {
19
+ ...defaultConfig,
20
+ ...options
21
+ };
22
+ return await processDirectives(templateContent, context, templatePath, config, new Set);
23
+ }
24
+ export async function buildViews(options) {
25
+ const startTime = performance.now(), result = {
26
+ success: !0,
27
+ views: [],
28
+ errors: [],
29
+ duration: 0
30
+ }, {
31
+ viewsDir,
32
+ outputDir,
33
+ componentsDir = path.join(viewsDir, "components"),
34
+ layoutsDir = path.join(viewsDir, "layouts"),
35
+ partialsDir = path.join(viewsDir, "partials"),
36
+ globalProps = {},
37
+ placeholders = {},
38
+ views,
39
+ debug = !1,
40
+ generateManifest = !0
41
+ } = options;
42
+ if (debug) {
43
+ console.log("Building STX views...");
44
+ console.log(` Source: ${viewsDir}`);
45
+ console.log(` Output: ${outputDir}`);
46
+ }
47
+ fs.mkdirSync(outputDir, { recursive: !0 });
48
+ const stxOptions = {
49
+ componentsDir,
50
+ layoutsDir,
51
+ partialsDir,
52
+ debug
53
+ };
54
+ let viewsToBuild;
55
+ if (views && views.length > 0)
56
+ viewsToBuild = views;
57
+ else
58
+ viewsToBuild = fs.readdirSync(viewsDir).filter((f) => f.endsWith(".stx")).map((f) => ({ input: f }));
59
+ for (const view of viewsToBuild) {
60
+ const inputPath = path.join(viewsDir, view.input), outputName = view.output || view.input.replace(/\.stx$/, ".html"), outputPath = path.join(outputDir, outputName);
61
+ if (debug)
62
+ console.log(` Building ${view.input}...`);
63
+ try {
64
+ const props = {
65
+ ...globalProps,
66
+ ...view.props,
67
+ ...placeholders
68
+ }, html = await renderView(inputPath, props, stxOptions);
69
+ await Bun.write(outputPath, html);
70
+ result.views.push(outputName);
71
+ } catch (error) {
72
+ const errorMessage = error instanceof Error ? error.message : String(error);
73
+ result.errors.push({ file: view.input, error: errorMessage });
74
+ result.success = !1;
75
+ if (debug)
76
+ console.error(` Error: ${errorMessage}`);
77
+ }
78
+ }
79
+ if (generateManifest) {
80
+ const manifest = {
81
+ buildTime: new Date().toISOString(),
82
+ views: result.views,
83
+ placeholders,
84
+ errors: result.errors.length > 0 ? result.errors : void 0
85
+ };
86
+ await Bun.write(path.join(outputDir, "manifest.json"), JSON.stringify(manifest, null, 2));
87
+ }
88
+ result.duration = performance.now() - startTime;
89
+ if (debug)
90
+ if (result.success)
91
+ console.log(`
92
+ \u2705 Built ${result.views.length} views in ${result.duration.toFixed(0)}ms`);
93
+ else
94
+ console.log(`
95
+ \u26A0\uFE0F Built ${result.views.length} views with ${result.errors.length} errors`);
96
+ return result;
97
+ }
98
+ export function watchViews(options, callback) {
99
+ const watcher = fs.watch(options.viewsDir, { recursive: !0 }, async (eventType, filename) => {
100
+ if (!filename)
101
+ return;
102
+ if (filename.endsWith(".stx") || filename.endsWith(".ts") || filename.endsWith(".js")) {
103
+ if (options.debug)
104
+ console.log(`
105
+ File changed: ${filename}, rebuilding...`);
106
+ const result = await buildViews(options);
107
+ callback?.(result);
108
+ }
109
+ });
110
+ return {
111
+ close: () => watcher.close()
112
+ };
113
+ }
114
+ export async function renderEmail(templatePath, props = {}, options = {}) {
115
+ const emailOptions = {
116
+ ...options,
117
+ skipDefaultSeoTags: !0,
118
+ skipSignalsRuntime: !0
119
+ };
120
+ let html = await renderView(templatePath, props, emailOptions);
121
+ html = await inlineCssClasses(html);
122
+ html = html.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi, "");
123
+ html = html.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi, "");
124
+ html = html.replace(/<!--\s*stx SEO Tags\s*-->/gi, "");
125
+ html = html.replace(/\n\s*\n\s*\n/g, `
126
+
127
+ `).trim();
128
+ const text = htmlToPlainText(html);
129
+ return { html, text };
130
+ }
131
+ async function inlineCssClasses(html) {
132
+ try {
133
+ const { generateCss, extractClassNames } = await import("./dev-server/ts-css.js");
134
+ if (extractClassNames(html).size === 0)
135
+ return html;
136
+ const css = await generateCss(html);
137
+ if (!css)
138
+ return html;
139
+ const classStyles = parseCssToMap(css);
140
+ if (classStyles.size === 0)
141
+ return html;
142
+ return html.replace(/(<[a-z][a-z0-9]*)((?:\s+[a-z][a-z0-9-]*(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]*))?)*\s+)class\s*=\s*"([^"]*)"((?:\s+[a-z][a-z0-9-]*(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]*))?)*\s*)(\/?>)/gi, (_match, tag, beforeClass, classValue, afterClass, closing) => {
143
+ const classNames = classValue.split(/\s+/).filter(Boolean), inlineProps = [];
144
+ for (const cls of classNames) {
145
+ const styles = classStyles.get(cls);
146
+ if (styles)
147
+ inlineProps.push(styles);
148
+ }
149
+ if (inlineProps.length === 0)
150
+ return `${tag}${beforeClass}class="${classValue}"${afterClass}${closing}`;
151
+ const inlineStyle = inlineProps.join("; "), existingStyleMatch = `${beforeClass}${afterClass}`.match(/style\s*=\s*"([^"]*)"/);
152
+ if (existingStyleMatch) {
153
+ const merged = `${inlineStyle}; ${existingStyleMatch[1]}`, updatedBefore = beforeClass.replace(/style\s*=\s*"[^"]*"/, `style="${merged}"`), updatedAfter = afterClass.replace(/style\s*=\s*"[^"]*"/, `style="${merged}"`);
154
+ return `${tag}${updatedBefore}class="${classValue}"${updatedAfter}${closing}`;
155
+ }
156
+ return `${tag}${beforeClass}class="${classValue}" style="${inlineStyle}"${afterClass}${closing}`;
157
+ });
158
+ } catch {
159
+ return html;
160
+ }
161
+ }
162
+ function parseCssToMap(css) {
163
+ const map = new Map, ruleRegex = /\.([a-zA-Z0-9_-]+(?:\\:[a-zA-Z0-9_-]+)*)\s*\{([^}]+)\}/g;
164
+ let match = ruleRegex.exec(css);
165
+ while (match !== null) {
166
+ const className = match[1].replace(/\\/g, ""), properties = match[2].split(";").map((p) => p.trim()).filter(Boolean).join("; ");
167
+ if (properties)
168
+ map.set(className, properties);
169
+ match = ruleRegex.exec(css);
170
+ }
171
+ return map;
172
+ }
173
+ function htmlToPlainText(html) {
174
+ return html.replace(/<br\s*\/?>/gi, `
175
+ `).replace(/<\/(p|div|h[1-6]|li|tr)>/gi, `
176
+ `).replace(/<\/td>/gi, "\t").replace(/<[^>]*>/g, "").replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"').replace(/&#39;/g, "'").replace(/&copy;/g, "(c)").replace(/&middot;/g, "-").replace(/\n\s*\n\s*\n/g, `
177
+
178
+ `).trim();
179
+ }
180
+ export default buildViews;
@@ -0,0 +1,31 @@
1
+ import type { BuildMode } from './build-mode-detector';
2
+ import type { ProductionBuildOptions, ProductionBuildResult } from './production-builder';
3
+ import type { SSGConfig, SSGResult } from './ssg';
4
+ /**
5
+ * Unified build entry point for stx applications.
6
+ *
7
+ * Build mode is determined by the `ssr` field in `stx.config.ts`:
8
+ *
9
+ * - **`ssr: false`** (default) → SSG → `dist/` (flat HTML files for S3 + CloudFront).
10
+ * `<script server>` blocks are executed at build time and their output is
11
+ * baked into the static HTML. The server block is stripped from the output.
12
+ *
13
+ * - **`ssr: true`** → SSR → `.output/` (server bundle for EC2 behind CloudFront).
14
+ * `<script server>` blocks run per-request on the Bun server.
15
+ *
16
+ * `<script server>` works in both modes — the `ssr` flag controls *when* it
17
+ * runs (build time vs request time), not whether it's allowed.
18
+ */
19
+ export declare function buildApp(options?: UnifiedBuildOptions): Promise<UnifiedBuildResult>;
20
+ export declare interface UnifiedBuildOptions {
21
+ root?: string
22
+ debug?: boolean
23
+ ssg?: Partial<SSGConfig>
24
+ ssr?: Partial<ProductionBuildOptions>
25
+ }
26
+ export declare interface UnifiedBuildResult {
27
+ mode: BuildMode
28
+ ssg?: SSGResult
29
+ ssr?: ProductionBuildResult
30
+ duration: number
31
+ }
package/dist/build.js ADDED
@@ -0,0 +1,34 @@
1
+ import path from "node:path";
2
+ import { loadStxConfig } from "./config.js";
3
+ export async function buildApp(options = {}) {
4
+ const startTime = performance.now(), root = options.root || process.cwd(), config = await loadStxConfig(), mode = config.ssr ? "ssr" : "ssg";
5
+ console.log(`[stx build] Mode: ${mode.toUpperCase()}${config.ssr ? " (ssr: true in stx.config.ts)" : " (default \u2014 ssr is false)"}`);
6
+ let ssgResult, ssrResult;
7
+ if (mode === "ssg") {
8
+ const { generateStaticSite } = await import("./ssg.js");
9
+ ssgResult = await generateStaticSite({
10
+ pagesDir: path.join(config.root || ".", config.pagesDir || config.build?.pagesDir || "pages"),
11
+ publicDir: config.publicDir || config.build?.publicDir || "public",
12
+ outputDir: config.build?.outputDir || "dist",
13
+ generate404: config.build?.generate404 ?? !0,
14
+ minify: config.build?.minify ?? !0,
15
+ cleanOutput: config.build?.cleanOutput ?? !0,
16
+ router: config.router,
17
+ ...options.ssg
18
+ });
19
+ } else {
20
+ const { buildForProduction } = await import("./production-builder.js");
21
+ ssrResult = await buildForProduction({
22
+ outputDir: ".output",
23
+ debug: options.debug,
24
+ ...options.ssr
25
+ });
26
+ }
27
+ const duration = Math.round(performance.now() - startTime);
28
+ return {
29
+ mode,
30
+ ssg: ssgResult,
31
+ ssr: ssrResult,
32
+ duration
33
+ };
34
+ }
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Attribute pass-through for builtin components.
3
+ *
4
+ * `<StxLink>`, `<StxImage>` and `<SafeImage>` all consume the props they know
5
+ * about and forward whatever is left onto the element they render, so an author
6
+ * can write `<StxLink to="/x" aria-label="Shop" data-testid="nav">` and have the
7
+ * last two land on the `<a>`. Each of them grew its own copy of that loop, which
8
+ * meant each of them independently forwarded the *camelized* prop key — emitting
9
+ * `ariaLabel="Shop"`, an attribute no browser knows.
10
+ *
11
+ * One implementation, so the naming round-trip is right in one place.
12
+ *
13
+ * @module builtins/attrs
14
+ */
15
+ import type { ResolvedProps } from '../component-registry';
16
+ /**
17
+ * Render the static props a builtin did not consume as HTML attributes.
18
+ *
19
+ * Names come back spelled the way the author wrote them: prop resolution
20
+ * camelizes static attributes so a `.stx` component can destructure them, and
21
+ * `staticNames` carries the original for exactly this case. Values are escaped —
22
+ * a static attribute can still hold hostile text (`aria-label="<script>…"`).
23
+ *
24
+ * Boolean props render as bare attributes when true and are dropped when false,
25
+ * matching how HTML boolean attributes work.
26
+ *
27
+ * @param props - The component's resolved props.
28
+ * @param consumed - Prop names the builtin has already rendered itself.
29
+ */
30
+ export declare function forwardStaticAttrs(props: ResolvedProps, consumed: Set<string>): string[];
31
+ /**
32
+ * Render the server-evaluated `:prop` bindings a builtin did not consume.
33
+ *
34
+ * Only `static` was ever forwarded, so `<StxLink to="/x" :title="pageTitle">`
35
+ * emitted an `<a>` with no title and no warning — the binding was resolved,
36
+ * stored, and thrown away (stacksjs/stx#1930). Client-reactive `:prop` and
37
+ * `@event` bindings already reach the element by another route (the component
38
+ * renderer re-applies them to the root), which is what made the gap specific to
39
+ * the server-evaluated ones and easy to miss.
40
+ *
41
+ * `null`, `undefined` and `false` DROP the attribute rather than rendering the
42
+ * word — that is what makes `:aria-current="active ? 'page' : null"` express
43
+ * "this attribute is conditional", which is the whole reason to reach for a
44
+ * binding instead of a literal. `true` renders bare, as HTML booleans do.
45
+ *
46
+ * @param props - The component's resolved props.
47
+ * @param consumed - Prop names the builtin has already rendered itself.
48
+ */
49
+ export declare function forwardResolvedAttrs(props: ResolvedProps, consumed: Set<string>): string[];
@@ -0,0 +1,39 @@
1
+ import { escapeAttr } from "./escape.js";
2
+ import { BOOLEAN_ATTRIBUTE_SENTINEL, stripControlChars } from "../prop-sentinels.js";
3
+ export function forwardStaticAttrs(props, consumed) {
4
+ const attrs = [];
5
+ for (const [key, value] of Object.entries(props.static)) {
6
+ if (consumed.has(key))
7
+ continue;
8
+ const name = props.staticNames?.[key] ?? key;
9
+ if (typeof value === "boolean") {
10
+ if (value)
11
+ attrs.push(escapeAttr(name));
12
+ continue;
13
+ }
14
+ if (value === BOOLEAN_ATTRIBUTE_SENTINEL) {
15
+ attrs.push(escapeAttr(name));
16
+ continue;
17
+ }
18
+ attrs.push(`${escapeAttr(name)}="${escapeAttr(stripControlChars(String(value)))}"`);
19
+ }
20
+ return attrs;
21
+ }
22
+ export function forwardResolvedAttrs(props, consumed) {
23
+ const attrs = [];
24
+ for (const [key, value] of Object.entries(props.serverDynamic ?? {})) {
25
+ if (consumed.has(key))
26
+ continue;
27
+ if (value === null || value === void 0 || value === !1)
28
+ continue;
29
+ const name = props.serverDynamicNames?.[key] ?? key;
30
+ if (value === !0) {
31
+ attrs.push(escapeAttr(name));
32
+ continue;
33
+ }
34
+ if (typeof value === "object")
35
+ continue;
36
+ attrs.push(`${escapeAttr(name)}="${escapeAttr(stripControlChars(String(value)))}"`);
37
+ }
38
+ return attrs;
39
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * StxDrawer Builtin Component
3
+ *
4
+ * Renders a hidden slide-in panel with slot content. Opened/closed via
5
+ * the runtime `drawer.open(id)` / `drawer.close(id)` / `drawer.toggle(id)` globals.
6
+ *
7
+ * Usage:
8
+ * <StxDrawer id="settings" side="right" size="md">
9
+ * <h2>Settings</h2>
10
+ * <p>Drawer content here</p>
11
+ * </StxDrawer>
12
+ *
13
+ * Props:
14
+ * - id (required) — unique drawer identifier
15
+ * - side — 'left' | 'right' (default: 'right')
16
+ * - size — 'sm' | 'md' | 'lg' | 'xl' (default: 'md')
17
+ * - closeOnBackdrop — whether clicking backdrop closes drawer (default: true)
18
+ * - closeOnEscape — whether Escape key closes drawer (default: true)
19
+ * - overlay — whether to show backdrop overlay (default: true)
20
+ *
21
+ * @module builtins/drawer
22
+ */
23
+ import type { BuiltinComponentDef } from '../component-registry';
24
+ export declare const StxDrawerBuiltin: BuiltinComponentDef;
@@ -0,0 +1,37 @@
1
+ import { escapeAttr } from "./escape.js";
2
+ function resolveProp(props, key) {
3
+ if (props.serverDynamic[key] !== void 0)
4
+ return String(props.serverDynamic[key]);
5
+ const val = props.static[key];
6
+ if (typeof val === "string")
7
+ return val;
8
+ return;
9
+ }
10
+ const SIZE_WIDTHS = {
11
+ sm: "16rem",
12
+ md: "24rem",
13
+ lg: "32rem",
14
+ xl: "40rem"
15
+ };
16
+ export const StxDrawerBuiltin = {
17
+ name: "StxDrawer",
18
+ aliases: ["stx-drawer"],
19
+ render(props, slotContent, _ctx) {
20
+ const rawId = resolveProp(props, "id");
21
+ if (!rawId) {
22
+ console.warn('[stx] <StxDrawer> requires an "id" prop');
23
+ return "<!-- StxDrawer: missing id prop -->";
24
+ }
25
+ const id = escapeAttr(rawId), side = resolveProp(props, "side") || "right", size = resolveProp(props, "size") || "md", closeOnBackdrop = resolveProp(props, "closeOnBackdrop") !== "false", closeOnEscape = resolveProp(props, "closeOnEscape") !== "false", overlay = resolveProp(props, "overlay") !== "false", width = SIZE_WIDTHS[size] || SIZE_WIDTHS.md, isLeft = side === "left", positionStyle = isLeft ? "left:0" : "right:0", translateHidden = isLeft ? "translateX(-100%)" : "translateX(100%)", animName = isLeft ? "stx-drawer-slide-left" : "stx-drawer-slide-right";
26
+ return `<div id="stx-drawer-${id}" class="stx-drawer-backdrop" data-stx-drawer="${id}" data-close-backdrop="${closeOnBackdrop}" data-close-escape="${closeOnEscape}" style="display:none;position:fixed;inset:0;z-index:99999;${overlay ? "background:rgba(0,0,0,0.5);backdrop-filter:blur(2px)" : "background:transparent;pointer-events:none"};opacity:0;transition:opacity 0.2s ease" role="dialog" aria-modal="true">
27
+ <div class="stx-drawer-panel" style="position:fixed;top:0;bottom:0;${positionStyle};width:${width};max-width:100vw;transform:${translateHidden};transition:transform 0.3s cubic-bezier(0.4,0,0.2,1);background:var(--stx-drawer-bg,#fff);color:var(--stx-drawer-text,#1f2937);box-shadow:0 20px 60px rgba(0,0,0,0.3);overflow-y:auto;pointer-events:auto">
28
+ <div style="padding:1.5rem">${slotContent}</div>
29
+ </div>
30
+ </div>
31
+ <style>
32
+ @media(prefers-color-scheme:dark){[data-stx-drawer]{--stx-drawer-bg:#1f2937;--stx-drawer-text:#f3f4f6}}
33
+ .stx-drawer-backdrop[data-stx-drawer-open]{display:block!important;opacity:1}
34
+ .stx-drawer-backdrop[data-stx-drawer-open] .stx-drawer-panel{transform:translateX(0)}
35
+ </style>`;
36
+ }
37
+ };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Shared HTML-attribute escaping for builtin components.
3
+ *
4
+ * Builtins interpolate prop values directly into their rendered markup. Any value
5
+ * that can come from untrusted data (a `:prop="userData.x"` lands in
6
+ * `serverDynamic`) must be escaped before it goes into an attribute, or a value
7
+ * like `x" onload="alert(1)` breaks out of the attribute — an XSS sink.
8
+ *
9
+ * Escapes the five attribute-significant characters. Safe for both double- and
10
+ * single-quoted attribute contexts.
11
+ */
12
+ export declare function escapeAttr(value: string): string;
@@ -0,0 +1,3 @@
1
+ export function escapeAttr(value) {
2
+ return value.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/'/g, "&#39;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
3
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Icon Builtin Component
3
+ *
4
+ * Renders an inline SVG from the Iconify icon library at template processing
5
+ * time. No client-side runtime needed — the SVG is baked into the HTML.
6
+ *
7
+ * Usage:
8
+ * <Icon name="house" />
9
+ * <Icon name="lucide:house" size="20" class="text-gray-500" />
10
+ * <Icon name="chevron-right" size="16" color="red" />
11
+ *
12
+ * Default collection: lucide. Override with prefix: <Icon name="heroicons:home" />
13
+ *
14
+ * @module builtins/icon
15
+ */
16
+ import type { BuiltinComponentDef } from '../component-registry';
17
+ /**
18
+ * Resolve the on-disk path of an icon collection JSON.
19
+ *
20
+ * Two packaging conventions are accepted. `@iconify/json` ships every
21
+ * collection in one ~120MB dependency; `@iconify-json/<prefix>` ships a single
22
+ * collection in about a megabyte and is what most projects actually install.
23
+ * Supporting only the monolith meant an app with `@iconify-json/lucide`
24
+ * installed rendered nothing at all for every icon on every page, with no
25
+ * error to explain it.
26
+ *
27
+ * Each convention is checked through the package resolver first, then against
28
+ * `node_modules/` and Stacks-style `pantry/` (which sits parallel to
29
+ * node_modules in apps that vendor there).
30
+ */
31
+ export declare function resolveCollectionPath(prefix: string): string | null;
32
+ export declare const IconBuiltin: BuiltinComponentDef;
33
+ /**
34
+ * Pre-load icon collections so they're available synchronously during render.
35
+ * Call this before template processing starts.
36
+ *
37
+ * Silent when the collection is not installed. Callers preload on the chance a
38
+ * template wants it, so an absent collection here is a normal outcome and not
39
+ * a problem to report; the render path still says so if a template actually
40
+ * asks for one that is missing. Pass `speculative: false` when the caller knows
41
+ * the collection is required.
42
+ */
43
+ export declare function preloadIconCollection(prefix?: string, options?: {
44
+ speculative?: boolean;
45
+ }): Promise<void>;
@@ -0,0 +1,100 @@
1
+ var {require}=import.meta;import { escapeAttr } from "./escape.js";
2
+ import { existsSync, readFileSync } from "node:fs";
3
+ const collectionCache = new Map, warnedMissingCollections = new Set;
4
+ function warnMissingCollection(prefix) {
5
+ if (warnedMissingCollections.has(prefix))
6
+ return;
7
+ warnedMissingCollections.add(prefix);
8
+ console.warn(`[stx] icon collection "${prefix}" is not installed, so its icons render as nothing. Install it with \`bun add -d @iconify-json/${prefix}\`.`);
9
+ }
10
+ export function resolveCollectionPath(prefix) {
11
+ const cwd = process.cwd();
12
+ for (const candidate of [
13
+ `${cwd}/node_modules/@iconify-json/${prefix}/icons.json`,
14
+ `${cwd}/pantry/@iconify-json/${prefix}/icons.json`,
15
+ `${cwd}/node_modules/@iconify/json/json/${prefix}.json`,
16
+ `${cwd}/pantry/@iconify/json/json/${prefix}.json`
17
+ ])
18
+ if (existsSync(candidate))
19
+ return candidate;
20
+ for (const specifier of [
21
+ `@iconify-json/${prefix}/icons.json`,
22
+ `@iconify/json/json/${prefix}.json`
23
+ ])
24
+ try {
25
+ return require.resolve(specifier);
26
+ } catch {}
27
+ return null;
28
+ }
29
+ function loadCollectionSync(prefix) {
30
+ if (collectionCache.has(prefix))
31
+ return collectionCache.get(prefix);
32
+ const jsonPath = resolveCollectionPath(prefix);
33
+ if (!jsonPath) {
34
+ warnMissingCollection(prefix);
35
+ return null;
36
+ }
37
+ try {
38
+ const data = JSON.parse(readFileSync(jsonPath, "utf8"));
39
+ collectionCache.set(prefix, data.icons);
40
+ return data.icons;
41
+ } catch {
42
+ return null;
43
+ }
44
+ }
45
+ async function loadCollection(prefix, speculative = !1) {
46
+ if (collectionCache.has(prefix))
47
+ return collectionCache.get(prefix);
48
+ const jsonPath = resolveCollectionPath(prefix);
49
+ if (!jsonPath) {
50
+ if (!speculative)
51
+ warnMissingCollection(prefix);
52
+ return null;
53
+ }
54
+ try {
55
+ const data = await Bun.file(jsonPath).json();
56
+ collectionCache.set(prefix, data.icons);
57
+ return data.icons;
58
+ } catch {
59
+ return null;
60
+ }
61
+ }
62
+ function resolveProp(props, key) {
63
+ if (props.serverDynamic[key] !== void 0)
64
+ return String(props.serverDynamic[key]);
65
+ if (props.static[key] !== void 0)
66
+ return String(props.static[key]);
67
+ if (props.clientReactive[key] !== void 0)
68
+ return props.clientReactive[key];
69
+ return;
70
+ }
71
+ export const IconBuiltin = {
72
+ name: "Icon",
73
+ aliases: ["icon", "stx-icon"],
74
+ render(props, _slotContent, _ctx) {
75
+ const nameRaw = resolveProp(props, "name") ?? resolveProp(props, "icon");
76
+ if (!nameRaw)
77
+ return "<!-- Icon: missing name/icon prop -->";
78
+ let collection = "lucide", iconName = nameRaw;
79
+ if (nameRaw.includes(":")) {
80
+ const parts = nameRaw.split(":");
81
+ collection = parts[0];
82
+ iconName = parts[1];
83
+ }
84
+ const size = escapeAttr(resolveProp(props, "size") || "24"), color = escapeAttr(resolveProp(props, "color") || "currentColor"), className = escapeAttr(resolveProp(props, "class") || ""), style = escapeAttr(resolveProp(props, "style") || ""), icons = collectionCache.get(collection) ?? loadCollectionSync(collection);
85
+ if (!icons)
86
+ return `<!-- Icon: collection "${collection}" not loaded -->`;
87
+ const iconData = icons[iconName];
88
+ if (!iconData)
89
+ return `<!-- Icon: "${iconName}" not found in ${collection} -->`;
90
+ const width = iconData.width || 24, height = iconData.height || 24, viewBox = `0 0 ${width} ${height}`;
91
+ let body = iconData.body;
92
+ if (color !== "currentColor")
93
+ body = body.replace(/currentColor/g, color);
94
+ const classAttr = className ? ` class="${className}"` : "", styleAttr = style ? ` style="${style}"` : "";
95
+ return `<svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="${viewBox}" fill="none"${classAttr}${styleAttr}>${body}</svg>`;
96
+ }
97
+ };
98
+ export async function preloadIconCollection(prefix = "lucide", options = {}) {
99
+ await loadCollection(prefix, options.speculative ?? !0);
100
+ }
@@ -0,0 +1,16 @@
1
+ import type { ImageDeliveryManifest } from 'ts-images/delivery';
2
+ /** Return build-time delivery metadata for one public image URL. */
3
+ export declare function getImageDelivery(src: string): ImageDeliveryManifest | undefined;
4
+ /** Clear process-global delivery state between builds and tests. */
5
+ export declare function clearImageDeliveryCatalog(): void;
6
+ /**
7
+ * Optimize every raster in the public directory before templates render.
8
+ *
9
+ * The builtin render pass is synchronous, so it consumes this in-memory
10
+ * catalog. Its content fingerprint is folded into the SSG cache key to ensure
11
+ * changing image bytes can never reuse HTML pointing at an older asset hash.
12
+ */
13
+ export declare function prepareImageDelivery(publicDir: string, outputDir: string): Promise<{
14
+ count: number;
15
+ fingerprint: string;
16
+ }>;