@stacksjs/stx 0.2.94 → 0.2.96

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 (614) hide show
  1. package/dist/a11y.js +598 -2
  2. package/dist/analytics.js +159 -2
  3. package/dist/analyzer.js +240 -2
  4. package/dist/animation.js +688 -2
  5. package/dist/app-shell.js +220 -2
  6. package/dist/app.js +79 -2
  7. package/dist/assets.js +155 -2
  8. package/dist/ast.js +630 -2
  9. package/dist/async-components.js +428 -2
  10. package/dist/auth.js +12 -2
  11. package/dist/broadcasting.js +102 -2
  12. package/dist/browser-composables.js +565 -2
  13. package/dist/build-assets.js +29 -2
  14. package/dist/build-mode-detector.js +50 -2
  15. package/dist/build-optimizer.js +433 -2
  16. package/dist/build-views.js +180 -2
  17. package/dist/build.js +33 -2
  18. package/dist/builtins/drawer.js +37 -2
  19. package/dist/builtins/escape.js +3 -2
  20. package/dist/builtins/icon.js +83 -2
  21. package/dist/builtins/index.js +34 -2
  22. package/dist/builtins/modal.js +38 -2
  23. package/dist/builtins/safe-image.js +51 -2
  24. package/dist/builtins/stx-image.js +200 -2
  25. package/dist/builtins/stx-link.js +41 -2
  26. package/dist/builtins/stx-loading-indicator.js +35 -2
  27. package/dist/builtins/suspense.js +24 -2
  28. package/dist/builtins/toast.js +42 -2
  29. package/dist/builtins/tooltip.js +106 -2
  30. package/dist/builtins/transition-group.js +22 -2
  31. package/dist/bundle-analyzer/collector.js +233 -2
  32. package/dist/bundle-analyzer/index.js +82 -2
  33. package/dist/bundle-analyzer/report.js +318 -2
  34. package/dist/bundle-analyzer/treemap.js +594 -2
  35. package/dist/caching.js +131 -2
  36. package/dist/cli.js +11317 -10982
  37. package/dist/client/directive.js +14 -2
  38. package/dist/client/index.js +2 -2
  39. package/dist/client-helpers.js +312 -2
  40. package/dist/client-script-bundler.js +216 -6
  41. package/dist/client-script.js +754 -2
  42. package/dist/client.js +73 -4
  43. package/dist/component-hmr.js +585 -2
  44. package/dist/component-library.d.ts +6 -0
  45. package/dist/component-library.js +683 -0
  46. package/dist/component-processing.js +613 -2
  47. package/dist/component-registry.js +90 -2
  48. package/dist/component-renderer.js +660 -2
  49. package/dist/components.js +213 -2
  50. package/dist/composables/index.js +220 -2
  51. package/dist/composables/use-battery.js +101 -2
  52. package/dist/composables/use-broadcast-channel.js +80 -2
  53. package/dist/composables/use-channel.js +124 -2
  54. package/dist/composables/use-clipboard.js +79 -2
  55. package/dist/composables/use-color-mode.js +131 -2
  56. package/dist/composables/use-cookie.js +86 -2
  57. package/dist/composables/use-device-orientation.js +181 -2
  58. package/dist/composables/use-event-listener.js +27 -2
  59. package/dist/composables/use-event-source.js +166 -2
  60. package/dist/composables/use-eye-dropper.js +142 -2
  61. package/dist/composables/use-fetch.js +223 -2
  62. package/dist/composables/use-fullscreen.js +110 -2
  63. package/dist/composables/use-geolocation.js +101 -2
  64. package/dist/composables/use-idle.js +182 -2
  65. package/dist/composables/use-intersection-observer.js +168 -2
  66. package/dist/composables/use-keyboard.js +224 -2
  67. package/dist/composables/use-media-query.js +62 -2
  68. package/dist/composables/use-meta.js +48 -2
  69. package/dist/composables/use-mouse.js +286 -2
  70. package/dist/composables/use-mutation-observer.js +129 -2
  71. package/dist/composables/use-network.js +85 -2
  72. package/dist/composables/use-notification.js +94 -2
  73. package/dist/composables/use-permissions.js +132 -2
  74. package/dist/composables/use-query.js +0 -1
  75. package/dist/composables/use-resize-observer.js +157 -2
  76. package/dist/composables/use-router.js +51 -2
  77. package/dist/composables/use-share.js +104 -2
  78. package/dist/composables/use-speech.js +294 -2
  79. package/dist/composables/use-storage.js +130 -2
  80. package/dist/composables/use-text-selection.js +205 -4
  81. package/dist/composables/use-timer.js +183 -2
  82. package/dist/composables/use-utilities.js +176 -2
  83. package/dist/composables/use-wake-lock.js +122 -2
  84. package/dist/composables/use-websocket.js +165 -2
  85. package/dist/composables/use-window.js +163 -2
  86. package/dist/composables.js +552 -2
  87. package/dist/composition-api.js +190 -2
  88. package/dist/computed.js +376 -8
  89. package/dist/conditionals.js +599 -2
  90. package/dist/config.js +751 -2
  91. package/dist/craft-bridge.js +432 -2
  92. package/dist/craft-compiler.js +810 -2
  93. package/dist/craft-components.js +945 -2
  94. package/dist/craft-entry.js +5 -2
  95. package/dist/craft-ssr.js +559 -2
  96. package/dist/csp.js +220 -2
  97. package/dist/csrf.js +38 -2
  98. package/dist/custom-directives.js +136 -2
  99. package/dist/defer.js +156 -2
  100. package/dist/deploy/config-generators.js +214 -2
  101. package/dist/deploy/index.js +203 -2
  102. package/dist/deploy/netlify.js +167 -2
  103. package/dist/dev-server/crosswind.js +379 -2
  104. package/dist/dev-server/index.js +7 -2
  105. package/dist/dev-server/keyboard-shortcuts.js +81 -2
  106. package/dist/dev-server/native-window.js +91 -2
  107. package/dist/dev-server/port-utils.js +40 -2
  108. package/dist/dev-server/serve-app.js +682 -7
  109. package/dist/dev-server/serve-file.js +439 -7
  110. package/dist/dev-server/serve-markdown.js +281 -2
  111. package/dist/dev-server/serve-multi.js +424 -17
  112. package/dist/dev-server/terminal-colors.js +45 -2
  113. package/dist/dev-server/theme-selector.js +111 -2
  114. package/dist/dev-server/types.js +43 -2
  115. package/dist/dev-server.js +4 -2
  116. package/dist/devtools.js +462 -18
  117. package/dist/directive-api.js +355 -2
  118. package/dist/docs.js +567 -2
  119. package/dist/doctor.js +123 -2
  120. package/dist/document-shell.js +105 -2
  121. package/dist/dynamic-components.js +78 -2
  122. package/dist/edge-runtime.js +539 -2
  123. package/dist/env.js +9 -2
  124. package/dist/error-boundaries.js +62 -12
  125. package/dist/error-handling.js +1 -2
  126. package/dist/errors/codes.js +97 -2
  127. package/dist/errors/formatter.js +196 -2
  128. package/dist/errors/index.js +44 -2
  129. package/dist/errors/logger.js +250 -2
  130. package/dist/errors/sanitizer.js +181 -2
  131. package/dist/errors/types.js +86 -2
  132. package/dist/events.js +382 -2
  133. package/dist/expressions.js +650 -2
  134. package/dist/formatter.js +265 -2
  135. package/dist/forms-validation.js +510 -4
  136. package/dist/forms.js +709 -2
  137. package/dist/head.js +224 -2
  138. package/dist/heatmap.js +566 -2
  139. package/dist/hot-reload.js +367 -2
  140. package/dist/html-masking.js +73 -2
  141. package/dist/hydration-runtime.js +195 -2
  142. package/dist/hydration.js +654 -2
  143. package/dist/i18n.js +633 -2
  144. package/dist/image-optimization/auto-sibling.js +88 -2
  145. package/dist/image-optimization/build-plugin.js +241 -2
  146. package/dist/image-optimization/component.js +244 -2
  147. package/dist/image-optimization/directive.js +203 -2
  148. package/dist/image-optimization/index.js +54 -2
  149. package/dist/image-optimization/processor.js +262 -2
  150. package/dist/image-optimization/serve.js +102 -2
  151. package/dist/includes.js +733 -2
  152. package/dist/index.d.ts +1 -0
  153. package/dist/index.js +134 -2
  154. package/dist/init.js +505 -2
  155. package/dist/inline-assets.js +82 -2
  156. package/dist/interactive.js +383 -2
  157. package/dist/internal-markdown.js +141 -2
  158. package/dist/island-chunking.js +52 -2
  159. package/dist/js-ts.js +57 -2
  160. package/dist/jsx-runtime.js +289 -2
  161. package/dist/keep-alive.js +421 -2
  162. package/dist/lazy-loader.js +245 -2
  163. package/dist/loading-indicator.js +322 -2
  164. package/dist/loops.js +643 -2
  165. package/dist/manifest.js +31 -2
  166. package/dist/markdown.js +68 -2
  167. package/dist/media/client/blur-up.js +217 -2
  168. package/dist/media/client/index.js +53 -2
  169. package/dist/media/client/lazy-load.js +283 -2
  170. package/dist/media/client/upload-handler.js +354 -2
  171. package/dist/media/image/component.js +574 -2
  172. package/dist/media/image/directive.js +160 -2
  173. package/dist/media/image/editing.js +193 -2
  174. package/dist/media/image/index.js +80 -2
  175. package/dist/media/image/placeholder.js +188 -2
  176. package/dist/media/image/processor/cache.js +51 -2
  177. package/dist/media/image/processor/index.js +3 -2
  178. package/dist/media/image/processor/optimizer.js +202 -2
  179. package/dist/media/image/processor/responsive.js +162 -2
  180. package/dist/media/image/srcset.js +194 -2
  181. package/dist/media/index.js +198 -2
  182. package/dist/media/manager/embed.js +253 -2
  183. package/dist/media/protected/component.js +235 -2
  184. package/dist/media/protected/index.js +20 -2
  185. package/dist/media/protected/signature.js +205 -2
  186. package/dist/media/shared/cache.js +132 -2
  187. package/dist/media/shared/hash.js +35 -2
  188. package/dist/media/shared/index.js +2 -2
  189. package/dist/media/types.js +0 -1
  190. package/dist/media/upload/component.js +320 -2
  191. package/dist/media/upload/index.js +1 -2
  192. package/dist/media/video/directive.js +142 -2
  193. package/dist/media/video/index.js +583 -2
  194. package/dist/media/video/processor/cache.js +52 -2
  195. package/dist/media/video/processor/index.js +4 -2
  196. package/dist/media/video/processor/streaming.js +197 -2
  197. package/dist/media/video/processor/thumbnail.js +134 -2
  198. package/dist/media/video/processor/transcoder.js +283 -2
  199. package/dist/method-spoofing.js +17 -2
  200. package/dist/middleware.js +40 -2
  201. package/dist/misc-directives.js +222 -2
  202. package/dist/native-build.js +511 -2
  203. package/dist/parser/directive-parser.js +239 -2
  204. package/dist/parser/expression-parser.js +358 -2
  205. package/dist/parser/index.js +23 -2
  206. package/dist/parser/tokenizer.js +534 -2
  207. package/dist/partial-hydration.js +427 -2
  208. package/dist/performance-utils.js +430 -2
  209. package/dist/placeholder.js +35 -2
  210. package/dist/plugin-system.js +214 -2
  211. package/dist/plugin.js +173 -2
  212. package/dist/precompiler.js +660 -81
  213. package/dist/process.js +711 -2
  214. package/dist/production-build.js +596 -2
  215. package/dist/production-builder.js +132 -2
  216. package/dist/production-server.js +188 -2
  217. package/dist/props.js +224 -2
  218. package/dist/public-env.js +19 -2
  219. package/dist/pwa/audit.js +255 -2
  220. package/dist/pwa/directives.js +332 -2
  221. package/dist/pwa/icons.js +109 -2
  222. package/dist/pwa/index.js +47 -2
  223. package/dist/pwa/inject.js +102 -2
  224. package/dist/pwa/manifest.js +186 -2
  225. package/dist/pwa/offline.js +259 -2
  226. package/dist/pwa/precache.js +116 -2
  227. package/dist/pwa/service-worker.js +860 -2
  228. package/dist/pwa/workbox-strategies.js +167 -2
  229. package/dist/pwa/workbox.js +382 -2
  230. package/dist/pwa.js +427 -427
  231. package/dist/reactive-bindings.js +266 -2
  232. package/dist/reactive.js +569 -2
  233. package/dist/reactivity.js +559 -2
  234. package/dist/release.js +1 -2
  235. package/dist/render.js +165 -2
  236. package/dist/route-middleware.js +17 -2
  237. package/dist/router.js +9 -2
  238. package/dist/routes.js +14 -2
  239. package/dist/runtime-injection.js +120 -2
  240. package/dist/runtime.js +94 -2
  241. package/dist/safe-evaluator.js +444 -2
  242. package/dist/scaffolding.js +897 -2
  243. package/dist/screenshot.js +87 -2
  244. package/dist/script-classifier.js +32 -2
  245. package/dist/script-validation.js +158 -2
  246. package/dist/seo.js +457 -2
  247. package/dist/serve.js +237 -2
  248. package/dist/server-bindings.js +108 -2
  249. package/dist/server-components.js +338 -11
  250. package/dist/signal-processing.js +946 -2
  251. package/dist/signals-api.js +154 -2
  252. package/dist/signals.js +5287 -2
  253. package/dist/site-builder/build.js +224 -2
  254. package/dist/site-builder/i18n.js +140 -2
  255. package/dist/site-builder/index.js +15 -2
  256. package/dist/site-builder/robots.js +26 -2
  257. package/dist/site-builder/router.js +27 -2
  258. package/dist/site-builder/seo.js +36 -2
  259. package/dist/site-builder/sitemap.js +26 -2
  260. package/dist/site-builder/theme.js +33 -2
  261. package/dist/site-builder/types.js +0 -1
  262. package/dist/slots.js +201 -2
  263. package/dist/source-maps.js +350 -2
  264. package/dist/spa-shell.js +34 -2
  265. package/dist/ssg.js +389 -389
  266. package/dist/ssr.js +355 -2
  267. package/dist/state-management.js +533 -2
  268. package/dist/store-imports.js +13 -2
  269. package/dist/store-loader.js +72 -5
  270. package/dist/stores-client.js +132 -2
  271. package/dist/story/addons.js +261 -2
  272. package/dist/story/analytics.js +235 -2
  273. package/dist/story/auto-stories.js +158 -2
  274. package/dist/story/bookmarks.js +277 -2
  275. package/dist/story/bun-test.js +102 -2
  276. package/dist/story/cli.js +155 -2
  277. package/dist/story/collect/analyzer.js +305 -2
  278. package/dist/story/collect/index.js +27 -2
  279. package/dist/story/collect/parser.js +129 -2
  280. package/dist/story/collect/scanner.js +101 -2
  281. package/dist/story/collect/tree.js +110 -2
  282. package/dist/story/commands/build.js +172 -2
  283. package/dist/story/commands/dev.js +78 -2
  284. package/dist/story/commands/index.js +3 -2
  285. package/dist/story/commands/preview.js +56 -2
  286. package/dist/story/compiled-output.js +151 -2
  287. package/dist/story/composition.js +261 -2
  288. package/dist/story/config-watcher.js +67 -2
  289. package/dist/story/config.js +64 -2
  290. package/dist/story/context.js +27 -2
  291. package/dist/story/controls/index.js +320 -2
  292. package/dist/story/crosswind.js +189 -2
  293. package/dist/story/desktop-preview.js +105 -2
  294. package/dist/story/docs-generator.js +186 -2
  295. package/dist/story/errors.js +239 -2
  296. package/dist/story/figma-export.js +224 -2
  297. package/dist/story/generator.js +165 -2
  298. package/dist/story/hmr.js +131 -2
  299. package/dist/story/hot-swap.js +207 -2
  300. package/dist/story/index.js +49 -2
  301. package/dist/story/interactions.js +225 -2
  302. package/dist/story/keyboard-shortcuts.js +345 -2
  303. package/dist/story/output.js +153 -2
  304. package/dist/story/performance.js +252 -2
  305. package/dist/story/presets.js +289 -2
  306. package/dist/story/props-validation.js +215 -2
  307. package/dist/story/renderer.js +209 -2
  308. package/dist/story/search-index.js +106 -2
  309. package/dist/story/search.js +140 -2
  310. package/dist/story/server.js +965 -2
  311. package/dist/story/setup.js +78 -2
  312. package/dist/story/snapshots.js +170 -2
  313. package/dist/story/testing.js +163 -2
  314. package/dist/story/theme.js +170 -2
  315. package/dist/story/types.js +0 -2
  316. package/dist/story/ui/code-panel.js +175 -2
  317. package/dist/story/ui/controls-panel.js +168 -2
  318. package/dist/story/ui/index.js +4 -2
  319. package/dist/story/ui/navigation.js +250 -2
  320. package/dist/story/ui/preview.js +251 -2
  321. package/dist/story/visual-testing.js +247 -2
  322. package/dist/streaming.js +537 -2
  323. package/dist/strict-lint.js +288 -2
  324. package/dist/style-scoping.js +50 -2
  325. package/dist/suspense.js +398 -2
  326. package/dist/teleport.js +109 -2
  327. package/dist/template-compiler.js +63 -2
  328. package/dist/template-hydrator.js +82 -2
  329. package/dist/template-tag-balance.js +93 -2
  330. package/dist/testing.js +581 -2
  331. package/dist/transitions.js +443 -2
  332. package/dist/type-checker.js +581 -2
  333. package/dist/types/component-types.d.ts +54 -0
  334. package/dist/types/component-types.js +0 -1
  335. package/dist/types/config-types.js +0 -1
  336. package/dist/types/context-types.js +0 -1
  337. package/dist/types/csp-types.js +0 -1
  338. package/dist/types/directive-types.js +3 -2
  339. package/dist/types/index.d.ts +5 -0
  340. package/dist/types/index.js +1 -2
  341. package/dist/types/pwa-types.js +0 -1
  342. package/dist/types.js +1 -2
  343. package/dist/typescript-templates.js +386 -4
  344. package/dist/utils.js +942 -2
  345. package/dist/validator.js +171 -2
  346. package/dist/variable-extractor.js +1094 -2
  347. package/dist/view-composers.js +29 -2
  348. package/dist/virtual-scrolling.js +454 -2
  349. package/dist/visual-editor.js +688 -28
  350. package/dist/vue-template.js +475 -2
  351. package/dist/web-components/css-scoping.js +177 -2
  352. package/dist/web-components/index.js +13 -2
  353. package/dist/web-components/reactive-generator.js +121 -56
  354. package/dist/web-components.js +1447 -2
  355. package/dist/x-element.js +17 -5
  356. package/package.json +6 -7
  357. package/dist/chunk-03c26pjz.js +0 -3
  358. package/dist/chunk-04mvcmcr.js +0 -106
  359. package/dist/chunk-05hgyyqc.js +0 -4
  360. package/dist/chunk-095s3972.js +0 -99
  361. package/dist/chunk-0b9w2w1y.js +0 -1
  362. package/dist/chunk-0dz85jrp.js +0 -3
  363. package/dist/chunk-0g4gece6.js +0 -4
  364. package/dist/chunk-0jd0pndq.js +0 -3
  365. package/dist/chunk-0jkwrcwj.js +0 -3
  366. package/dist/chunk-0m9tdm7t.js +0 -71
  367. package/dist/chunk-0qakwen3.js +0 -1
  368. package/dist/chunk-0qnz93q2.js +0 -3
  369. package/dist/chunk-0tatqxj2.js +0 -57
  370. package/dist/chunk-0wdar532.js +0 -102
  371. package/dist/chunk-13yz561y.js +0 -3
  372. package/dist/chunk-174z0cd0.js +0 -3
  373. package/dist/chunk-1mmykse5.js +0 -81
  374. package/dist/chunk-1z2yq9em.js +0 -3
  375. package/dist/chunk-1z5nhbjt.js +0 -90
  376. package/dist/chunk-1zgsgk4b.js +0 -1
  377. package/dist/chunk-25s7bckb.js +0 -171
  378. package/dist/chunk-268adc7r.js +0 -2230
  379. package/dist/chunk-26r6zh3t.js +0 -194
  380. package/dist/chunk-2w3302dh.js +0 -3
  381. package/dist/chunk-2xen423s.js +0 -3
  382. package/dist/chunk-39gm08bn.js +0 -39
  383. package/dist/chunk-3bjtemm6.js +0 -128
  384. package/dist/chunk-3jm3snz8.js +0 -3
  385. package/dist/chunk-3ngm57nt.js +0 -12
  386. package/dist/chunk-3rh7va1z.js +0 -3
  387. package/dist/chunk-3yg9hbmb.js +0 -4
  388. package/dist/chunk-44hd3kab.js +0 -1
  389. package/dist/chunk-46mkpbkk.js +0 -12
  390. package/dist/chunk-48cw2nde.js +0 -2
  391. package/dist/chunk-48r3qe0k.js +0 -3
  392. package/dist/chunk-4aj7ftqb.js +0 -1
  393. package/dist/chunk-4bt81cg3.js +0 -61
  394. package/dist/chunk-4j188175.js +0 -3
  395. package/dist/chunk-4k7d8p8d.js +0 -188
  396. package/dist/chunk-4qq8ffke.js +0 -28
  397. package/dist/chunk-50vqeesm.js +0 -142
  398. package/dist/chunk-52agge4n.js +0 -38
  399. package/dist/chunk-55yp0q8t.js +0 -201
  400. package/dist/chunk-57p201gb.js +0 -83
  401. package/dist/chunk-5ggw1dyv.js +0 -3
  402. package/dist/chunk-5kt3ay7x.js +0 -10
  403. package/dist/chunk-5p568px4.js +0 -1166
  404. package/dist/chunk-5ppkfyn2.js +0 -3
  405. package/dist/chunk-5q87fgkk.js +0 -3
  406. package/dist/chunk-5qb761h2.js +0 -3
  407. package/dist/chunk-5xvbq2gs.js +0 -30
  408. package/dist/chunk-647849kf.js +0 -34
  409. package/dist/chunk-6b5k6w2q.js +0 -7
  410. package/dist/chunk-6cr3eeh4.js +0 -23
  411. package/dist/chunk-6djgb0hr.js +0 -3
  412. package/dist/chunk-6dqzky7x.js +0 -35
  413. package/dist/chunk-6e4c6g46.js +0 -3
  414. package/dist/chunk-6w03t7h6.js +0 -3
  415. package/dist/chunk-6wn85hn6.js +0 -4
  416. package/dist/chunk-6y4gqs1q.js +0 -169
  417. package/dist/chunk-75rndzbd.js +0 -6
  418. package/dist/chunk-77tga15w.js +0 -3
  419. package/dist/chunk-7a51hkpf.js +0 -3
  420. package/dist/chunk-7b0xdy5h.js +0 -386
  421. package/dist/chunk-7cgmq685.js +0 -33
  422. package/dist/chunk-7dy588as.js +0 -6
  423. package/dist/chunk-7rvh2wwv.js +0 -721
  424. package/dist/chunk-7sm05m0j.js +0 -351
  425. package/dist/chunk-7sqdeqsw.js +0 -1
  426. package/dist/chunk-7xcfy2fn.js +0 -4
  427. package/dist/chunk-82t27pvd.js +0 -5
  428. package/dist/chunk-87kx8byz.js +0 -1115
  429. package/dist/chunk-8fgwhhb8.js +0 -6
  430. package/dist/chunk-8qbax8xn.js +0 -347
  431. package/dist/chunk-91s2hres.js +0 -8
  432. package/dist/chunk-94g3cahw.js +0 -11
  433. package/dist/chunk-957amb71.js +0 -8
  434. package/dist/chunk-95w08s8v.js +0 -3
  435. package/dist/chunk-9agvhp1x.js +0 -93
  436. package/dist/chunk-9tmbrwwx.js +0 -219
  437. package/dist/chunk-9yz5d003.js +0 -51
  438. package/dist/chunk-a3hyn4we.js +0 -79
  439. package/dist/chunk-a69tvya5.js +0 -53
  440. package/dist/chunk-adjcg6wa.js +0 -498
  441. package/dist/chunk-adqh2m9z.js +0 -45
  442. package/dist/chunk-asarebzq.js +0 -292
  443. package/dist/chunk-aw3rp9ac.js +0 -24
  444. package/dist/chunk-b0cyc09a.js +0 -109
  445. package/dist/chunk-b3kkjcdh.js +0 -3
  446. package/dist/chunk-b3prs7y0.js +0 -5
  447. package/dist/chunk-b5zc9y0y.js +0 -90
  448. package/dist/chunk-baa7h4yz.js +0 -3
  449. package/dist/chunk-bgec9r1v.js +0 -5224
  450. package/dist/chunk-bjnjpsgn.js +0 -3
  451. package/dist/chunk-bk8ew8ze.js +0 -24
  452. package/dist/chunk-bn08k7yy.js +0 -3
  453. package/dist/chunk-bpgg59wa.js +0 -3
  454. package/dist/chunk-bwxda6n1.js +0 -3
  455. package/dist/chunk-bykjk6vj.js +0 -4
  456. package/dist/chunk-c53hyw5c.js +0 -477
  457. package/dist/chunk-c7jg8w13.js +0 -3
  458. package/dist/chunk-ca6qd1dx.js +0 -3
  459. package/dist/chunk-cdbwprfv.js +0 -6
  460. package/dist/chunk-ceg2c2q2.js +0 -11
  461. package/dist/chunk-cn409b69.js +0 -3
  462. package/dist/chunk-cn8az1b4.js +0 -1
  463. package/dist/chunk-cp3kwv17.js +0 -8
  464. package/dist/chunk-cpcc11vp.js +0 -5
  465. package/dist/chunk-cr3wbrcr.js +0 -10
  466. package/dist/chunk-cygfdk1n.js +0 -3
  467. package/dist/chunk-cyp4m0vh.js +0 -16
  468. package/dist/chunk-cz25azze.js +0 -4
  469. package/dist/chunk-d77yxcds.js +0 -3
  470. package/dist/chunk-dvfs1h3c.js +0 -117
  471. package/dist/chunk-dyjnn5k8.js +0 -262
  472. package/dist/chunk-dzw95th7.js +0 -3
  473. package/dist/chunk-e0zytzdh.js +0 -179
  474. package/dist/chunk-e53h9qhd.js +0 -84
  475. package/dist/chunk-eds0f8f1.js +0 -3
  476. package/dist/chunk-eh8hact1.js +0 -5
  477. package/dist/chunk-epj957jf.js +0 -4
  478. package/dist/chunk-eqeyaq6g.js +0 -77
  479. package/dist/chunk-fbxt2mrx.js +0 -5
  480. package/dist/chunk-fch9tk1k.js +0 -3
  481. package/dist/chunk-fe7r1mq1.js +0 -9
  482. package/dist/chunk-fhawx87n.js +0 -8
  483. package/dist/chunk-fk51yyrw.js +0 -3
  484. package/dist/chunk-fms20x0n.js +0 -21
  485. package/dist/chunk-fs0qezn5.js +0 -341
  486. package/dist/chunk-fzm3y0r3.js +0 -267
  487. package/dist/chunk-g2hekckm.js +0 -161
  488. package/dist/chunk-g4ps1dj8.js +0 -140
  489. package/dist/chunk-g8b81pzc.js +0 -3
  490. package/dist/chunk-ganag9dm.js +0 -3
  491. package/dist/chunk-gc84b1d2.js +0 -58
  492. package/dist/chunk-gcf5v18y.js +0 -60
  493. package/dist/chunk-ghrx0hn1.js +0 -4
  494. package/dist/chunk-gqpkp459.js +0 -3
  495. package/dist/chunk-h45py5w5.js +0 -2
  496. package/dist/chunk-h5wa62ek.js +0 -145
  497. package/dist/chunk-h82kjdr4.js +0 -83
  498. package/dist/chunk-haecq01c.js +0 -3
  499. package/dist/chunk-hepg894w.js +0 -3
  500. package/dist/chunk-hjdc99kb.js +0 -3
  501. package/dist/chunk-hje9v2zh.js +0 -3
  502. package/dist/chunk-hjv76kcw.js +0 -1
  503. package/dist/chunk-hke99a0v.js +0 -3
  504. package/dist/chunk-hpqr9e3x.js +0 -3
  505. package/dist/chunk-hq5cem49.js +0 -236
  506. package/dist/chunk-hrampcrj.js +0 -3
  507. package/dist/chunk-ht4j68cs.js +0 -3
  508. package/dist/chunk-hxx3za24.js +0 -62
  509. package/dist/chunk-j4s5qwd7.js +0 -4
  510. package/dist/chunk-jbejwejg.js +0 -8
  511. package/dist/chunk-jc0fc4ht.js +0 -11
  512. package/dist/chunk-jcs0ymw7.js +0 -3
  513. package/dist/chunk-jfm69keq.js +0 -231
  514. package/dist/chunk-jfrn43vh.js +0 -2
  515. package/dist/chunk-jjamhxpm.js +0 -139
  516. package/dist/chunk-jjvp4t5w.js +0 -27
  517. package/dist/chunk-jt44av4j.js +0 -3
  518. package/dist/chunk-jt98jhpt.js +0 -10
  519. package/dist/chunk-k8440jxh.js +0 -6
  520. package/dist/chunk-kdxa9epn.js +0 -21
  521. package/dist/chunk-kfd2hf6f.js +0 -3
  522. package/dist/chunk-kgym7ch9.js +0 -8
  523. package/dist/chunk-kh6rfz2v.js +0 -4
  524. package/dist/chunk-kkp6rs2n.js +0 -36
  525. package/dist/chunk-ktkmvaa8.js +0 -1
  526. package/dist/chunk-m59y310j.js +0 -3
  527. package/dist/chunk-mgmyr1b9.js +0 -6
  528. package/dist/chunk-mqwbpamc.js +0 -3
  529. package/dist/chunk-mrehzhxv.js +0 -5
  530. package/dist/chunk-mv03qb75.js +0 -3
  531. package/dist/chunk-mv4fb50w.js +0 -1
  532. package/dist/chunk-mwbng54r.js +0 -2
  533. package/dist/chunk-n46a5g1g.js +0 -3
  534. package/dist/chunk-n944baxp.js +0 -3
  535. package/dist/chunk-nanw7yhz.js +0 -14
  536. package/dist/chunk-nap11ntr.js +0 -21
  537. package/dist/chunk-ncnfa8ae.js +0 -29
  538. package/dist/chunk-ngxfwzq3.js +0 -3
  539. package/dist/chunk-nvwb4x04.js +0 -3
  540. package/dist/chunk-nw34xajc.js +0 -8
  541. package/dist/chunk-payfb24w.js +0 -207
  542. package/dist/chunk-pc31m5x5.js +0 -398
  543. package/dist/chunk-pg1fvqb9.js +0 -167
  544. package/dist/chunk-q60knhjf.js +0 -3
  545. package/dist/chunk-q6h6yvzb.js +0 -10
  546. package/dist/chunk-qd5461tt.js +0 -3
  547. package/dist/chunk-qdc3aav1.js +0 -3
  548. package/dist/chunk-qfwzdffx.js +0 -3
  549. package/dist/chunk-qgxwmagw.js +0 -134
  550. package/dist/chunk-qhdtssn1.js +0 -19
  551. package/dist/chunk-qk584whs.js +0 -3
  552. package/dist/chunk-qm4yppj5.js +0 -57
  553. package/dist/chunk-qwyd9a1d.js +0 -2
  554. package/dist/chunk-qxs6et76.js +0 -196
  555. package/dist/chunk-rb1e4cnb.js +0 -3
  556. package/dist/chunk-rh80q1nd.js +0 -1
  557. package/dist/chunk-rkffm9sy.js +0 -128
  558. package/dist/chunk-rv002yn0.js +0 -14
  559. package/dist/chunk-s6ja2bdg.js +0 -66
  560. package/dist/chunk-sjagg9qz.js +0 -66
  561. package/dist/chunk-sn07azv3.js +0 -3
  562. package/dist/chunk-svahbw0w.js +0 -12
  563. package/dist/chunk-svhtdb0s.js +0 -6
  564. package/dist/chunk-t37dp99j.js +0 -3
  565. package/dist/chunk-tj6zfxeb.js +0 -64
  566. package/dist/chunk-tmgz5t2g.js +0 -3
  567. package/dist/chunk-tr0z0e1g.js +0 -3
  568. package/dist/chunk-tx6br9r4.js +0 -274
  569. package/dist/chunk-v97390pe.js +0 -1
  570. package/dist/chunk-vcr5pzpx.js +0 -233
  571. package/dist/chunk-vdfwv0fp.js +0 -6
  572. package/dist/chunk-vp2395eb.js +0 -3
  573. package/dist/chunk-vpe6napb.js +0 -28
  574. package/dist/chunk-vv9wfz1c.js +0 -12
  575. package/dist/chunk-vw6ejgmy.js +0 -21
  576. package/dist/chunk-vx22he47.js +0 -1
  577. package/dist/chunk-w01y57f5.js +0 -1539
  578. package/dist/chunk-w21mwxdd.js +0 -4
  579. package/dist/chunk-w4n8fqp7.js +0 -216
  580. package/dist/chunk-w959hm8j.js +0 -358
  581. package/dist/chunk-wf7zrjsw.js +0 -138
  582. package/dist/chunk-wk07pwtd.js +0 -321
  583. package/dist/chunk-wvef3ngh.js +0 -127
  584. package/dist/chunk-wxvyj65q.js +0 -2
  585. package/dist/chunk-x1hjv24z.js +0 -11
  586. package/dist/chunk-x39sfpvm.js +0 -302
  587. package/dist/chunk-x4fze3q2.js +0 -314
  588. package/dist/chunk-x64kb787.js +0 -15
  589. package/dist/chunk-xcb0pbr6.js +0 -4
  590. package/dist/chunk-xhkjhxsp.js +0 -3
  591. package/dist/chunk-xhnpsngj.js +0 -5
  592. package/dist/chunk-xsqbk4yk.js +0 -3
  593. package/dist/chunk-xygc53vr.js +0 -68
  594. package/dist/chunk-y0qg6rrv.js +0 -3
  595. package/dist/chunk-y25pr13j.js +0 -19
  596. package/dist/chunk-y4c744dk.js +0 -3
  597. package/dist/chunk-y4md9hp0.js +0 -3
  598. package/dist/chunk-y5wazw6j.js +0 -7
  599. package/dist/chunk-y5xz0jc4.js +0 -141
  600. package/dist/chunk-y86m1wr4.js +0 -4
  601. package/dist/chunk-yaan98dd.js +0 -3
  602. package/dist/chunk-yach037f.js +0 -32
  603. package/dist/chunk-yexjrg9d.js +0 -7
  604. package/dist/chunk-ygvyc6wv.js +0 -90
  605. package/dist/chunk-yj560gp8.js +0 -8
  606. package/dist/chunk-yn38c15w.js +0 -4
  607. package/dist/chunk-yr1gdceh.js +0 -3
  608. package/dist/chunk-yw2fzq86.js +0 -3
  609. package/dist/chunk-ywkrxp2h.js +0 -147
  610. package/dist/chunk-z37xq5rx.js +0 -3
  611. package/dist/chunk-z4djtgt0.js +0 -71
  612. package/dist/chunk-z8cjr9n9.js +0 -7
  613. package/dist/chunk-znxp3zha.js +0 -71
  614. package/dist/chunk-zt2yag10.js +0 -429
@@ -1,134 +0,0 @@
1
- // @bun
2
- function V(B){let q={refs:B.refs||{},reactive:B.reactive||{},props:B.props||{},routeParams:B.routeParams||{},stores:B.stores||{},meta:B.meta||{},timestamp:Date.now()};return q.checksum=W(q),JSON.stringify(q).replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/&/g,"\\u0026").replace(/'/g,"\\u0027")}function W(B){let q=JSON.stringify({refs:Object.keys(B.refs||{}),reactive:Object.keys(B.reactive||{}),props:Object.keys(B.props||{})}),D=0;for(let F=0;F<q.length;F++){let G=q.charCodeAt(F);D=(D<<5)-D+G,D=D&D}return Math.abs(D).toString(36)}function X(B){return`<script id="__STX_STATE__" type="application/json">${V(B)}</script>`}function w(B){if(B.length===0)return"";return`data-stx-events='${JSON.stringify(B)}'`}function Y(){if(typeof window>"u")return null;let B=document.getElementById("__STX_STATE__");if(!B)return null;try{let q=JSON.parse(B.textContent||"{}");if(q.checksum){if(W(q)!==q.checksum)console.warn("[Hydration] State checksum mismatch - state may be corrupted")}return q}catch(q){return console.error("[Hydration] Failed to parse state:",q),null}}class Q{state=null;options;root=null;isHydrated=!1;pendingComponents=new Map;hydratedComponents=new Set;constructor(B={}){this.options={root:B.root||"#app",strict:B.strict??!1,onHydrating:B.onHydrating||(()=>{}),onHydrated:B.onHydrated||(()=>{}),onError:B.onError||console.error,performance:B.performance??!1,timeout:B.timeout??1e4}}async hydrate(){if(typeof window>"u")return;if(this.isHydrated)return;let B=this.options.performance?performance.now():0;try{this.root=typeof this.options.root==="string"?document.querySelector(this.options.root)||document.body:this.options.root,this.state=Y(),this.options.onHydrating(),this.root.classList.add("stx-hydrating");let q=new Promise((D,F)=>{setTimeout(()=>F(Error("Hydration timeout")),this.options.timeout)});if(await Promise.race([this.runHydration(),q]),this.isHydrated=!0,this.root.classList.remove("stx-hydrating"),this.root.classList.add("stx-hydrated"),this.options.performance){let D=performance.now()-B;console.log(`[Hydration] Completed in ${D.toFixed(2)}ms`)}this.options.onHydrated(),window.dispatchEvent(new CustomEvent("stx:hydrated"))}catch(q){this.root?.classList.remove("stx-hydrating"),this.root?.classList.add("stx-hydration-error"),this.options.onError(q),window.dispatchEvent(new CustomEvent("stx:hydration-error",{detail:{error:q}}))}}async runHydration(){if(!this.root)return;this.restoreGlobalState(),await this.hydrateComponents(),this.bindEventHandlers(),this.initializeReactiveBindings(),this.setupRouterIntegration()}restoreGlobalState(){if(!this.state)return;let B=window.stx;if(!B)return;if(this.state.routeParams&&B.setRouteParams)B.setRouteParams(this.state.routeParams);if(this.state.stores&&B.registerStore)Object.entries(this.state.stores).forEach(([q,D])=>{B.registerStore(q,D)});window.dispatchEvent(new CustomEvent("stx:state-restored",{detail:this.state}))}async hydrateComponents(){if(!this.root)return;let B=this.root.querySelectorAll("[data-stx-component]");for(let q of Array.from(B)){let D=q.getAttribute("data-stx-component"),F=q.getAttribute("data-stx-name")||D,G=q.getAttribute("data-stx-hydrate")||"eager",J=q.getAttribute("data-stx-props");if(!D)continue;let L={id:D,name:F||D,strategy:G,props:J?JSON.parse(J):{},events:[]};switch(this.pendingComponents.set(D,L),L.strategy){case"eager":await this.hydrateComponent(q,L);break;case"lazy":case"visible":this.setupVisibleHydration(q,L);break;case"idle":this.setupIdleHydration(q,L);break;case"interaction":this.setupInteractionHydration(q,L);break}}}async hydrateComponent(B,q){if(this.hydratedComponents.has(q.id))return;try{let D=this.state?.refs[q.id]||this.state?.reactive[q.id]||{};this.restoreComponentState(B,D),this.bindComponentEvents(B),this.initializeComponentReactivity(B,q),this.hydratedComponents.add(q.id),B.classList.add("stx-hydrated"),B.setAttribute("data-hydrated","true"),B.dispatchEvent(new CustomEvent("stx:component-hydrated",{detail:{id:q.id,name:q.name},bubbles:!0}))}catch(D){if(console.error(`[Hydration] Failed to hydrate component ${q.id}:`,D),B.classList.add("stx-hydration-error"),this.options.strict)throw D}}restoreComponentState(B,q){if(!q||typeof q!=="object")return;B.querySelectorAll("[data-stx-bind]").forEach((F)=>{let G=F.getAttribute("data-stx-bind");if(!G||!q[G])return;let J=q[G];if(F instanceof HTMLInputElement)if(F.type==="checkbox"||F.type==="radio")F.checked=Boolean(J);else F.value=String(J);else if(F instanceof HTMLSelectElement)F.value=String(J);else if(F instanceof HTMLTextAreaElement)F.value=String(J);else F.textContent=String(J)})}setupVisibleHydration(B,q){if(!("IntersectionObserver"in window)){this.hydrateComponent(B,q);return}let D=new IntersectionObserver((F)=>{F.forEach((G)=>{if(G.isIntersecting)D.disconnect(),this.hydrateComponent(B,q)})},{rootMargin:"100px",threshold:0});D.observe(B)}setupIdleHydration(B,q){let D=()=>this.hydrateComponent(B,q);if("requestIdleCallback"in window)window.requestIdleCallback(D,{timeout:2000});else setTimeout(D,200)}setupInteractionHydration(B,q){let D=["mouseenter","touchstart","focusin"],F=()=>{D.forEach((G)=>B.removeEventListener(G,F)),this.hydrateComponent(B,q)};D.forEach((G)=>{B.addEventListener(G,F,{once:!0,passive:!0})})}bindEventHandlers(){if(!this.root)return;this.root.querySelectorAll("[data-stx-events]").forEach((q)=>this.bindElementEvents(q)),this.bindDirectiveEvents()}bindElementEvents(B){let q=B.getAttribute("data-stx-events");if(!q)return;try{JSON.parse(q).forEach((F)=>{this.bindSingleEvent(B,F)})}catch(D){console.error("[Hydration] Failed to parse events:",D)}}bindDirectiveEvents(){if(!this.root)return;["click","submit","input","change","focus","blur","keydown","keyup","keypress","mouseenter","mouseleave","touchstart","touchend","scroll","resize"].forEach((q)=>{let D=`data-stx-on-${q}`;this.root.querySelectorAll(`[${D}]`).forEach((G)=>{let J=G.getAttribute(D);if(!J)return;this.bindSingleEvent(G,{type:q,handler:J,modifiers:this.parseModifiers(G,q)})})})}parseModifiers(B,q){let D=[],F=B.getAttribute(`data-stx-${q}-modifiers`);if(F)D.push(...F.split(",").map((G)=>G.trim()));return D}bindSingleEvent(B,q){let D=this.resolveHandler(q.handler);if(!D){console.warn(`[Hydration] Handler not found: ${q.handler}`);return}let F=(J)=>{if(q.modifiers?.includes("prevent")||q.preventDefault)J.preventDefault();if(q.modifiers?.includes("stop")||q.stopPropagation)J.stopPropagation();try{D.call(B,J)}catch(L){console.error("[Hydration] Event handler error:",L)}},G={};if(q.modifiers?.includes("once"))G.once=!0;if(q.modifiers?.includes("passive"))G.passive=!0;if(q.modifiers?.includes("capture"))G.capture=!0;B.addEventListener(q.type,F,G)}resolveHandler(B){let q=window.stx;if(q&&q[B])return q[B];if(window[B])return window[B];try{if(B.match(/^\w+\+\+$/)||B.match(/^\w+--$/)){let G=B.replace(/[+-]+$/,"");return()=>{if(q&&q[G]){if(typeof q[G].value<"u")if(B.includes("++"))q[G].value++;else q[G].value--}}}let D=B.match(/^(\w+)\s*=\s*(.+)$/);if(D){let[,G,J]=D;return()=>{if(q&&q[G]){let L=Function(`return ${J}`)();if(typeof q[G].value<"u")q[G].value=L}}}let F=B.match(/^(\w+)\((.*)\)$/);if(F){let[,G,J]=F;return(L)=>{let U=q?.[G]||window[G];if(U){let _=J?Function("$event",`return [${J}]`)(L):[];U(..._)}}}return(G)=>{Function("$event","stx",B)(G,q)}}catch{return null}}bindComponentEvents(B){B.querySelectorAll("[data-stx-events]").forEach((D)=>{this.bindElementEvents(D)})}initializeComponentReactivity(B,q){if(!window.stx)return;B.querySelectorAll("[data-stx-reactive]").forEach((G)=>{let J=G.getAttribute("data-stx-reactive");if(!J)return;this.setupReactiveBinding(G,J)})}initializeReactiveBindings(){if(!this.root)return;this.getTextNodesWithExpressions(this.root).forEach(({node:D,expressions:F})=>{F.forEach((G)=>{this.setupTextNodeBinding(D,G)})}),this.root.querySelectorAll("[data-stx-bind-attrs]").forEach((D)=>{let F=D.getAttribute("data-stx-bind-attrs");if(!F)return;try{let G=JSON.parse(F);Object.entries(G).forEach(([J,L])=>{this.setupAttributeBinding(D,J,L)})}catch{}})}getTextNodesWithExpressions(B){let q=[],D=document.createTreeWalker(B,NodeFilter.SHOW_TEXT),F;while(F=D.nextNode()){let J=(F.textContent||"").match(/\{\{\s*([^}]+)\s*\}\}/g);if(J)q.push({node:F,expressions:J.map((L)=>L.replace(/\{\{\s*|\s*\}\}/g,""))})}return q}setupTextNodeBinding(B,q){let D=window.stx;if(!D)return;let F=B.textContent||"",G=()=>{try{let L=Function("stx",`with(stx) { return ${q} }`)(D);B.textContent=F.replace(new RegExp(`\\{\\{\\s*${q.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\}\\}`),String(L))}catch{}};G();let J=q.match(/^(\w+)(\.value)?$/);if(J&&D[J[1]]?.subscribe)D[J[1]].subscribe(G)}setupAttributeBinding(B,q,D){let F=window.stx;if(!F)return;let G=()=>{try{let L=Function("stx",`with(stx) { return ${D} }`)(F);if(typeof L==="boolean")if(L)B.setAttribute(q,"");else B.removeAttribute(q);else B.setAttribute(q,String(L))}catch{}};G();let J=D.match(/^(\w+)(\.value)?$/);if(J&&F[J[1]]?.subscribe)F[J[1]].subscribe(G)}setupReactiveBinding(B,q){let D=window.stx;if(!D)return;let F=()=>{try{let J=Function("stx",`with(stx) { return ${q} }`)(D);B.textContent=String(J)}catch{}};F();let G=q.match(/^(\w+)(\.value)?$/);if(G&&D[G[1]]?.subscribe)D[G[1]].subscribe(F)}setupRouterIntegration(){window.addEventListener("stx:navigate",(B)=>{let{url:q}=B.detail||{};if(q){if(window.stx?.setRouteParams){let F=new URL(q,window.location.origin)}}}),window.addEventListener("stx:load",()=>{this.hydrateComponents(),this.bindEventHandlers()})}get hydrated(){return this.isHydrated}getState(){return this.state}async hydrateById(B){let q=this.pendingComponents.get(B),D=document.querySelector(`[data-stx-component="${B}"]`);if(q&&D)await this.hydrateComponent(D,q)}}function $(B){return`
3
- ${B?X(B):""}
4
- <script data-stx-hydration-runtime>
5
- (function() {
6
- 'use strict';
7
-
8
- // Wait for DOM and stx runtime
9
- function init() {
10
- if (!window.stx) {
11
- setTimeout(init, 10);
12
- return;
13
- }
14
-
15
- // Extract state
16
- const stateEl = document.getElementById('__STX_STATE__');
17
- const state = stateEl ? JSON.parse(stateEl.textContent || '{}') : {};
18
-
19
- // Restore stores
20
- if (state.stores) {
21
- Object.entries(state.stores).forEach(([name, storeState]) => {
22
- window.stx.registerStore(name, storeState);
23
- });
24
- }
25
-
26
- // Restore route params
27
- if (state.routeParams) {
28
- window.stx.setRouteParams(state.routeParams);
29
- }
30
-
31
- // Hydrate components
32
- const components = document.querySelectorAll('[data-stx-component]');
33
- components.forEach(el => {
34
- const id = el.getAttribute('data-stx-component');
35
- const strategy = el.getAttribute('data-stx-hydrate') || 'eager';
36
-
37
- const hydrate = () => {
38
- // Bind events
39
- el.querySelectorAll('[data-stx-on-click]').forEach(eventEl => {
40
- const handler = eventEl.getAttribute('data-stx-on-click');
41
- if (handler) {
42
- eventEl.addEventListener('click', (e) => {
43
- try {
44
- new Function('$event', 'stx', handler)(e, window.stx);
45
- }
46
- catch (err) {
47
- console.error('[Hydration] Event error:', err);
48
- }
49
- });
50
- }
51
- });
52
-
53
- // Mark hydrated
54
- el.classList.add('stx-hydrated');
55
- el.setAttribute('data-hydrated', 'true');
56
- el.dispatchEvent(new CustomEvent('stx:hydrated', { bubbles: true }));
57
- };
58
-
59
- // Execute based on strategy
60
- if (strategy === 'eager') {
61
- hydrate();
62
- }
63
- else if (strategy === 'idle') {
64
- if ('requestIdleCallback' in window) {
65
- requestIdleCallback(hydrate, { timeout: 2000 });
66
- }
67
- else {
68
- setTimeout(hydrate, 100);
69
- }
70
- }
71
- else if (strategy === 'visible') {
72
- const observer = new IntersectionObserver(entries => {
73
- if (entries[0].isIntersecting) {
74
- observer.disconnect();
75
- hydrate();
76
- }
77
- });
78
- observer.observe(el);
79
- }
80
- else if (strategy === 'interaction') {
81
- ['mouseenter', 'focusin', 'touchstart'].forEach(event => {
82
- el.addEventListener(event, hydrate, { once: true });
83
- });
84
- }
85
- });
86
-
87
- // Dispatch global hydrated event
88
- window.dispatchEvent(new CustomEvent('stx:hydrated'));
89
- document.body.classList.add('stx-hydrated');
90
- }
91
-
92
- if (document.readyState === 'loading') {
93
- document.addEventListener('DOMContentLoaded', init);
94
- }
95
- else {
96
- init();
97
- }
98
- })();
99
- </script>
100
- `}var O=null;function Z(B){if(!O)O=new Q(B);return O}async function P(B){await Z(B).hydrate()}function j(){return`
101
- <style data-stx-hydration-styles>
102
- /* Pre-hydration state */
103
- [data-stx-component]:not(.stx-hydrated) {
104
- /* Prevent layout shift with min dimensions */
105
- min-height: 1px;
106
- }
107
-
108
- /* Loading state */
109
- .stx-hydrating {
110
- cursor: wait;
111
- }
112
-
113
- /* Hydrated state */
114
- .stx-hydrated {
115
- /* Ready for interaction */
116
- }
117
-
118
- /* Error state */
119
- .stx-hydration-error {
120
- outline: 2px dashed red;
121
- outline-offset: -2px;
122
- }
123
-
124
- /* Progressive enhancement */
125
- @supports not (IntersectionObserver) {
126
- /* Fallback for old browsers */
127
- [data-stx-hydrate="visible"],
128
- [data-stx-hydrate="lazy"] {
129
- /* Hydrate immediately */
130
- }
131
- }
132
- </style>
133
- `}var z={HydrationRuntime:Q,serializeState:V,generateStateScript:X,generateHydrationScript:$,generateHydrationCSS:j,extractState:Y,getHydrationRuntime:Z,hydrate:P};
134
- export{V as qm,X as rm,w as sm,Y as tm,Q as um,$ as vm,Z as wm,P as xm,j as ym,z as zm};
@@ -1,19 +0,0 @@
1
- // @bun
2
- import{Ls as T,Rr as E,mr as b,or as k}from"./chunk-w01y57f5.js";import{et as j}from"./chunk-nap11ntr.js";import{St as H}from"./chunk-kdxa9epn.js";import{rB as w}from"./chunk-3jm3snz8.js";import{dirname as R,resolve as I}from"path";function y(L){let K=L,z=L.match(/<template\b(?![^>]*(?:\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=|\s#[\w-]|\bv-slot|\bslot\s*=))[^>]*>/i);if(z&&z.index!==void 0){let G=z.index+z[0].length,N=1,Q=G;while(N>0&&Q<L.length){let J=L.indexOf("<template",Q),X=L.indexOf("</template>",Q);if(X===-1)break;if(J!==-1&&J<X){let U=L[J+9];if(U===">"||U===" "||U===`
3
- `||U==="\t")N++;Q=J+9}else{if(N--,N===0){K=L.slice(G,X).trim();break}Q=X+11}}}let A=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,Y=[],W=[],Z=[],$=(G)=>/\b(?:state|derived|effect|batch)\s*(?:<[^<>()]*>)?\s*\(/.test(G),_;while((_=A.exec(L))!==null){let G=_[1],N=_[2],Q=_[0],J=G.includes("server");if($(N))Z.push(Q);else if(J)W.push(N);else Y.push(Q)}let q=K;{let G=/<script\b(?![^>]*\b(?:client|type\s*=\s*["']module["']|src\s*=))[^>]*>/gi,N,Q=[];while((N=G.exec(q))!==null){let J=N.index+N[0].length,X=1,U=J;while(U<q.length&&X>0){let V=q.indexOf("<script",U),B=q.indexOf("</script>",U);if(B===-1)break;if(V!==-1&&V<B)X++,U=V+7;else{if(X--,X===0){Q.push({start:N.index,end:B+9});break}U=B+9}}}for(let J=Q.length-1;J>=0;J--)q=q.substring(0,Q[J].start)+q.substring(Q[J].end)}for(let G of Y)q=q.replace(G,"");return{templateContent:q,serverScripts:W,clientScripts:Y,signalsScripts:Z}}function D(L,K){return`<!DOCTYPE html>
4
- <html lang="en">
5
- <head>
6
- <meta charset="UTF-8">
7
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
8
- <title>${(K||"stx").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}</title>
9
- </head>
10
- <body>
11
- ${L}
12
- </body>
13
- </html>`}async function x(L,K={}){let z=I(L),A=Bun.file(z);if(!await A.exists())throw Error(`Template file not found: ${z}`);let Y=await A.text();if(K.layout){let W=I(K.layout),Z=Bun.file(W);if(!await Z.exists())throw Error(`Layout template not found: ${W}`);let{layout:$,injectCSS:_,...q}=K,G=await F(Y,z,{...q,injectCSS:!1}),N=await Z.text(),Q={...K.context||{},content:G},J={...q,context:Q,injectCSS:_};return F(N,W,J)}return F(Y,z,K)}async function m(L,K={},z){return F(L,process.cwd(),{context:K,...z})}async function F(L,K,z={}){let{templateContent:A,serverScripts:Y,clientScripts:W}=y(L),Z={...E,...z.options},$={__filename:K,__dirname:R(K),__stx:{},__stx_options:Z,__stx_sfc_mode:!0,__stx_inject_css:z.injectCSS!==!1,...z.context||{}};for(let G of Y)await j(G,$,K);let _=new Set,q=A;if(q=await T(q,$,K,Z,_),z.templateOnly){if(q=q.replace(/<script data-stx-scoped>[\s\S]*?<\/script>\s*/gi,""),q=q.replace(/<!-- stx SEO Tags -->[\s\S]*?(?=<)/i,""),W.length>0)q+=`
14
- ${W.join(`
15
- `)}`}else{if(z.processClientScripts!==!1&&W.length>0){let G=$.__stx_event_bindings||[],N=b($),J=(await Promise.all(W.map(async(U)=>{let V=U.match(/<script\b[^>]*>([\s\S]*?)<\/script>/);if(!V)return U;return await k(V[1],{eventBindings:G,templateContent:q,serverData:N})}))).join(`
16
- `);if(q.match(/(<\/body>)/i))q=q.replace(/(<\/body>)/i,`${J}
17
- $1`);else q+=`
18
- ${J}`}q=await H(q)}if(z.wrapInDocument){if(!q.trim().toLowerCase().startsWith("<!doctype")&&!q.trim().toLowerCase().startsWith("<html"))q=D(q,z.title)}if(z.injectCSS)try{let{injectCrosswindCSS:G}=await import("./dev-server/crosswind.js");q=await G(q)}catch{}return q}
19
- export{x as vi,m as wi};
@@ -1,3 +0,0 @@
1
- // @bun
2
- var{WebView:A}=globalThis.Bun;import{existsSync as K,mkdirSync as U,readdirSync as E,statSync as V}from"fs";import R from"path";var Z=16384;function O(j){if(/^https?:\/\//.test(j)||j.startsWith("file://"))return j;return`file://${R.resolve(j)}`}function C(j,B,z){return new Promise((L)=>{let P=!1,J=()=>{if(!P)P=!0,L()};j.onNavigated=()=>setTimeout(J,B),setTimeout(J,z)})}async function H(j,B,z){let L=`!!document.querySelector(${JSON.stringify(B)})`,P=Date.now()+z;while(Date.now()<P){try{if(await j.evaluate(L))return}catch{}await new Promise((J)=>setTimeout(J,100))}}async function W(j){try{let B=await j.evaluate("Math.ceil(Math.max(document.documentElement.scrollHeight, document.documentElement.offsetHeight, document.body ? document.body.scrollHeight : 0, document.body ? document.body.offsetHeight : 0))");return typeof B==="number"&&Number.isFinite(B)&&B>0?Math.min(B,Z):0}catch{return 0}}async function X(j,B,z={}){let L=Math.min(z.width??1440,Z),P=Math.min(z.height??2200,Z),J=z.waitMs??800,G=z.timeoutMs??15000,T=z.format??"png",k=O(j),$=(Y)=>new A({url:k,width:L,height:Y,headless:!0,...z.backend?{backend:z.backend}:{}}),Q=$(P);try{if(await C(Q,J,G),z.waitSelector)await H(Q,z.waitSelector,G);if(z.fullPage){let q=await W(Q);if(q>P){if(Q.close(),Q=$(q),await C(Q,J,G),z.waitSelector)await H(Q,z.waitSelector,G)}}let Y=await Q.screenshot({encoding:"buffer",format:T});U(R.dirname(R.resolve(B)),{recursive:!0}),await Bun.write(B,Y)}finally{Q.close()}if(!K(B))throw Error(`Screenshot was not produced for ${j}`);return{input:j,output:B,bytes:V(B).size}}async function F(j,B,z={}){U(B,{recursive:!0});let L;if(!/^https?:\/\//.test(j)&&K(j)&&V(j).isDirectory())L=E(j).filter((G)=>G.endsWith(".html")).map((G)=>R.join(j,G));else L=[j];let P=z.format??"png",J=[];for(let G of L){let T=/^https?:\/\//.test(G)?new URL(G).pathname.replace(/\W+/g,"-").replace(/^-|-$/g,"")||"index":R.basename(G).replace(/\.html?$/,"");J.push(await X(G,R.join(B,`${T}.${P}`),z))}return J}
3
- export{X as Zh,F as _h};
@@ -1,57 +0,0 @@
1
- // @bun
2
- import{Tj as _,Uj as M,Yj as R}from"./chunk-eqeyaq6g.js";async function y(q){let{src:w,alt:j="",signatureEndpoint:z="/api/sign",signatureConfig:F={},auth:J,fallback:K,oneTimeUse:G=!0}=q,W=q.class,X=q.style;if(J){if(!await _(J)){if(K)return{html:`<img src="${B(K)}" alt="${B(j)}"${W?` class="${B(W)}"`:""}${X?` style="${B(X)}"`:""} />`};return{html:"<!-- Protected content: access denied -->"}}}let $={endpoint:z,oneTimeUse:G,...F,params:J?M(J):F.params},Y=`stx-protected-${Math.random().toString(36).slice(2,8)}`,O=[`id="${Y}"`,`data-protected-src="${B(w)}"`,`data-signature-endpoint="${B(z)}"`,`alt="${B(j)}"`];if(K)O.push(`data-fallback="${B(K)}"`),O.push(`src="${B(K)}"`);else O.push('src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"');if(W)O.push(`class="${B(W)}"`);if(X)O.push(`style="${B(X)}"`);let Z=`
3
- (function() {
4
- var el = document.getElementById('${Y}');
5
- if (!el) return;
6
-
7
- STX.loadProtectedMedia(el, {
8
- endpoint: '${B(z)}',
9
- oneTimeUse: ${G},
10
- expirationSeconds: ${F.expirationSeconds||3600}
11
- });
12
- })();
13
- `.trim();return{html:`<img ${O.join(" ")} />`,script:Z}}async function C(q){let{src:w,signatureEndpoint:j="/api/sign",signatureConfig:z={},auth:F,fallback:J,oneTimeUse:K=!0,poster:G,controls:W=!0,autoplay:X=!1,muted:$=!1,loop:Y=!1}=q,O=q.class,Z=q.style,P=q.alt;if(F){if(!await _(F))return{html:"<!-- Protected video: access denied -->"}}let H=`stx-protected-video-${Math.random().toString(36).slice(2,8)}`,Q=[`id="${H}"`,`data-protected-src="${B(w)}"`,`data-signature-endpoint="${B(j)}"`];if(G)Q.push(`poster="${B(G)}"`);if(W)Q.push("controls");if(X)Q.push("autoplay");if($)Q.push("muted");if(Y)Q.push("loop");if(O)Q.push(`class="${B(O)}"`);if(Z)Q.push(`style="${B(Z)}"`);if(J)Q.push(`data-fallback="${B(J)}"`);let V=`
14
- (function() {
15
- var el = document.getElementById('${H}');
16
- if (!el) return;
17
-
18
- STX.loadProtectedMedia(el, {
19
- endpoint: '${B(j)}',
20
- oneTimeUse: ${K},
21
- expirationSeconds: ${z.expirationSeconds||3600}
22
- });
23
- })();
24
- `.trim();return{html:`<video ${Q.join(" ")}></video>`,script:V}}async function x(q,w){let j=/data-protected-src="([^"]+)"/g,z=[],F;while((F=j.exec(q))!==null)z.push(F[1]);if(z.length===0)return{html:q,script:""};let J=R()+`
25
-
26
- `;return J+=`
27
- (function() {
28
- var sources = ${JSON.stringify(z)};
29
- var endpoint = '${B(w)}';
30
-
31
- // Batch sign all URLs
32
- STX.batchSignUrls(sources, { endpoint: endpoint })
33
- .then(function(data) {
34
- sources.forEach(function(src) {
35
- var els = document.querySelectorAll('[data-protected-src="' + src + '"]');
36
- var signedUrl = data.signatures && data.signatures[src];
37
-
38
- els.forEach(function(el) {
39
- if (signedUrl) {
40
- if (el.tagName === 'IMG') el.src = signedUrl.url;
41
- else if (el.tagName === 'VIDEO') { el.src = signedUrl.url; el.load(); }
42
- }
43
- else if (el.dataset.fallback) {
44
- el.src = el.dataset.fallback;
45
- }
46
- });
47
- });
48
- })
49
- .catch(function(error) {
50
- console.error('Failed to sign protected media:', error);
51
- document.querySelectorAll('[data-protected-src]').forEach(function(el) {
52
- if (el.dataset.fallback) el.src = el.dataset.fallback;
53
- });
54
- });
55
- })();
56
- `.trim(),{html:q,script:J}}function E(q,w,j){if(w.src)return{src:String(w.src),alt:String(w.alt||""),signatureEndpoint:String(w.signatureEndpoint||"/api/sign"),auth:w.auth,fallback:w.fallback?String(w.fallback):void 0,oneTimeUse:w.oneTimeUse!==!1};let z=q.trim();if(z.startsWith("@protected(")||z.startsWith("("))z=z.replace(/^@protected\(/,"").replace(/^\(/,"").replace(/\)$/,"");let F=D(z);return{src:L(F[0],j)||"",alt:L(F[1],j)||"",...typeof F[2]==="object"?F[2]:{}}}function D(q){let w=[],j="",z=!1,F="",J=0;for(let K=0;K<q.length;K++){let G=q[K],W=K>0?q[K-1]:"";if((G==='"'||G==="'")&&W!=="\\"){if(!z)z=!0,F=G;else if(G===F)z=!1;else j+=G;continue}if(!z){if(G==="{")J++;if(G==="}")J--;if(G===","&&J===0){w.push(j.trim()),j="";continue}}j+=G}if(j.trim())w.push(j.trim());return w}function L(q,w){if(typeof q!=="string")return q;let j=q.trim();if(j.startsWith('"')&&j.endsWith('"')||j.startsWith("'")&&j.endsWith("'"))return j.slice(1,-1);if(w[j]!==void 0)return w[j];if(j.startsWith("{"))try{return JSON.parse(j)}catch{}return j}function B(q){return q.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#039;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}
57
- export{y as Jj,C as Kj,x as Lj,E as Mj};
@@ -1,2 +0,0 @@
1
- // @bun
2
- export{o as Zn,p as _n,f as $n,m as ao,i as bo};
@@ -1,196 +0,0 @@
1
- // @bun
2
- class G{clients=new Set;server=null;options;constructor(j={}){this.options={wsPort:j.wsPort??3001,showOverlay:j.showOverlay??!0,reconnectInterval:j.reconnectInterval??1000,maxReconnectAttempts:j.maxReconnectAttempts??10,verbose:j.verbose??!1}}start(j){let k=j??this.options.wsPort,B=20;for(let z=0;z<B;z++)try{if(this.server=Bun.serve({port:k,fetch(u,C){if(C.upgrade(u,{data:{}}))return;return new Response("stx Hot Reload Server",{headers:{"Content-Type":"text/plain"}})},websocket:{open:(u)=>{if(this.clients.add(u),this.options.verbose)console.log(`[HMR] Client connected (${this.clients.size} total)`);u.send(JSON.stringify({type:"connected",timestamp:Date.now()}))},close:(u)=>{if(this.clients.delete(u),this.options.verbose)console.log(`[HMR] Client disconnected (${this.clients.size} total)`)},message:(u,C)=>{let F=typeof C==="string"?C:C.toString();if(F==="ping")return;try{let D=JSON.parse(F);if(D.type==="console"&&Array.isArray(D.args)){let J=D.args.join(" "),K={log:"\x1B[36m",warn:"\x1B[33m",error:"\x1B[31m",info:"\x1B[34m"}[D.level]??"\x1B[36m";console.log(`${K}[browser]${D.level!=="log"?` ${D.level}`:""}\x1B[0m ${J}`)}}catch{}}}}),this.options.verbose)console.log(`[HMR] WebSocket server started on port ${k}`);return k}catch(u){if(u?.code==="EADDRINUSE"){k++;continue}throw u}throw Error(`Could not find an available port after ${B} attempts starting from ${j??this.options.wsPort}`)}stop(){for(let j of this.clients)try{j.close()}catch{}if(this.clients.clear(),this.server)this.server.stop(),this.server=null;if(this.options.verbose)console.log("[HMR] Server stopped")}broadcast(j){let k=JSON.stringify(j),B=0;for(let z of this.clients)try{if(z.readyState===1)z.send(k),B++}catch{this.clients.delete(z)}if(this.options.verbose&&B>0)console.log(`[HMR] Broadcast ${j.type} to ${B} client(s)`)}reload(j){if(this.options.verbose)console.log(`[HMR] Sending reload to ${this.clients.size} client(s) for: ${j||"all"}`);this.broadcast({type:"reload",path:j,timestamp:Date.now()})}updateCss(j,k){this.broadcast({type:"css-update",path:j,content:k,timestamp:Date.now()})}error(j){this.broadcast({type:"error",content:j,timestamp:Date.now()})}get clientCount(){return this.clients.size}get port(){return this.options.wsPort}}function L(j,k={}){let{showOverlay:B=!0,reconnectInterval:z=1000,maxReconnectAttempts:u=10}=k;return`
3
- <script>
4
- (function() {
5
- // stx Hot Reload Client
6
- var wsUrl = 'ws://' + window.location.hostname + ':${j}';
7
- var reconnectAttempts = 0;
8
- var maxAttempts = ${u};
9
- var reconnectInterval = ${z};
10
- var socket = null;
11
- var overlay = null;
12
- var wasConnected = false; // Track if we ever connected successfully
13
-
14
- ${B?`
15
- // Create connection status overlay
16
- function createOverlay() {
17
- overlay = document.createElement('div');
18
- overlay.id = 'stx-hmr-overlay';
19
- overlay.style.cssText = 'position:fixed;top:0;left:0;right:0;padding:8px 16px;background:#f59e0b;color:#000;font-family:system-ui,sans-serif;font-size:14px;text-align:center;z-index:999999;display:none;';
20
- document.body.appendChild(overlay);
21
- }
22
-
23
- function showOverlay(message, isError) {
24
- // Only show overlay if we were previously connected (don't show during initial connection)
25
- if (!wasConnected && !isError) return;
26
- if (!overlay) createOverlay();
27
- overlay.textContent = message;
28
- overlay.style.background = isError ? '#ef4444' : '#f59e0b';
29
- overlay.style.color = isError ? '#fff' : '#000';
30
- overlay.style.display = 'block';
31
- }
32
-
33
- function hideOverlay() {
34
- if (overlay) overlay.style.display = 'none';
35
- }
36
- `:`
37
- function showOverlay() {}
38
- function hideOverlay() {}
39
- `}
40
-
41
- function connect() {
42
- try {
43
- socket = new WebSocket(wsUrl);
44
- }
45
- catch (e) {
46
- // Silent fail for initial connection attempts
47
- if (wasConnected) {
48
- scheduleReconnect();
49
- }
50
- return;
51
- }
52
-
53
- socket.onopen = function() {
54
- // connected silently
55
- wasConnected = true;
56
- reconnectAttempts = 0;
57
- hideOverlay();
58
- };
59
-
60
- socket.onmessage = function(event) {
61
- try {
62
- var msg = JSON.parse(event.data);
63
-
64
- switch (msg.type) {
65
- case 'reload':
66
- console.log('[stx] Reloading...', msg.path || '');
67
- // Use SPA router for progressive update instead of full page reload.
68
- // Falls back to hard reload only when the router isn't available.
69
- if (typeof window.navigate === 'function') {
70
- window.navigate(window.location.pathname + window.location.search, false, true);
71
- } else {
72
- window.location.reload();
73
- }
74
- break;
75
-
76
- case 'css-update':
77
- console.log('[stx] CSS update:', msg.path);
78
- updateCss(msg.path, msg.content);
79
- break;
80
-
81
- case 'error':
82
- console.error('[stx] Error:', msg.content);
83
- showOverlay('Build Error: ' + msg.content, true);
84
- break;
85
-
86
- case 'connected':
87
- break;
88
- }
89
- }
90
- catch (e) {
91
- console.error('[stx] Invalid message:', e);
92
- }
93
- };
94
-
95
- socket.onclose = function() {
96
- socket = null;
97
- // Only log and show overlay if we were previously connected
98
- if (wasConnected) {
99
- console.log('[stx] Connection closed, reconnecting...');
100
- scheduleReconnect();
101
- }
102
- else {
103
- // Silently retry initial connection
104
- setTimeout(connect, reconnectInterval);
105
- }
106
- };
107
-
108
- socket.onerror = function() {
109
- // Errors are handled in onclose
110
- };
111
- }
112
-
113
- function scheduleReconnect() {
114
- if (reconnectAttempts < maxAttempts) {
115
- reconnectAttempts++;
116
- showOverlay('Reconnecting... (' + reconnectAttempts + '/' + maxAttempts + ')');
117
- setTimeout(connect, reconnectInterval);
118
- }
119
- else {
120
- showOverlay('Connection lost. Refresh to reconnect.', true);
121
- }
122
- }
123
-
124
- // CSS hot update without full reload
125
- function updateCss(path, content) {
126
- // Try to find and update existing stylesheet
127
- var links = document.querySelectorAll('link[rel="stylesheet"]');
128
- for (var i = 0; i < links.length; i++) {
129
- var href = links[i].getAttribute('href');
130
- if (href && href.indexOf(path) !== -1) {
131
- // Add cache-busting query param
132
- var newHref = href.split('?')[0] + '?t=' + Date.now();
133
- links[i].setAttribute('href', newHref);
134
- return;
135
- }
136
- }
137
-
138
- // If content provided, inject as style tag
139
- if (content) {
140
- var style = document.createElement('style');
141
- style.setAttribute('data-stx-hmr', path);
142
- style.textContent = content;
143
-
144
- // Remove old injected style
145
- var old = document.querySelector('style[data-stx-hmr="' + path + '"]');
146
- if (old) old.remove();
147
-
148
- document.head.appendChild(style);
149
- }
150
- }
151
-
152
- // Start connection when DOM is ready
153
- if (document.readyState === 'loading') {
154
- document.addEventListener('DOMContentLoaded', connect);
155
- }
156
- else {
157
- connect();
158
- }
159
-
160
- // Forward browser console to the dev server terminal
161
- var _origLog = console.log;
162
- var _origError = console.error;
163
- var _origWarn = console.warn;
164
- var _origInfo = console.info;
165
-
166
- function _fwd(level, args) {
167
- if (socket && socket.readyState === 1) {
168
- try {
169
- socket.send(JSON.stringify({
170
- type: 'console',
171
- level: level,
172
- args: Array.prototype.slice.call(args).map(function(a) {
173
- if (a === null) return 'null';
174
- if (a === undefined) return 'undefined';
175
- if (typeof a === 'object') { try { return JSON.stringify(a); } catch(e) { return String(a); } }
176
- return String(a);
177
- })
178
- }));
179
- } catch(e) {}
180
- }
181
- }
182
-
183
- console.log = function() { _origLog.apply(console, arguments); _fwd('log', arguments); };
184
- console.error = function() { _origError.apply(console, arguments); _fwd('error', arguments); };
185
- console.warn = function() { _origWarn.apply(console, arguments); _fwd('warn', arguments); };
186
- console.info = function() { _origInfo.apply(console, arguments); _fwd('info', arguments); };
187
-
188
- // Expose for debugging
189
- window.__stxHmr = {
190
- reconnect: connect,
191
- status: function() { return socket ? socket.readyState : -1; }
192
- };
193
- })();
194
- </script>
195
- `}function Q(j,k,B={}){let z=L(k,B),u=j.lastIndexOf("</body>");if(u!==-1)return j.slice(0,u)+z+j.slice(u);if(j.includes("</html>"))return j.replace("</html>",`${z}</html>`);return j+z}function T(j){let k=j.toLowerCase();return k.endsWith(".css")||k.endsWith(".scss")||k.endsWith(".sass")||k.endsWith(".less")}function U(j){let k=j.toLowerCase();return[".stx",".html",".htm",".md",".js",".ts",".jsx",".tsx",".json"].some((z)=>k.endsWith(z))}function V(j){return[/^\./,/node_modules/,/\.stx\/output/,/\.stx\/cache/,/~$/,/\.swp$/,/\.swo$/].some((B)=>B.test(j))}var E=null;function W(j){if(!E)E=new G(j);return E}function X(){if(E)E.stop(),E=null}
196
- export{G as em,L as fm,Q as gm,T as hm,U as im,V as jm,W as km,X as lm};
@@ -1,3 +0,0 @@
1
- // @bun
2
- var M=/<script\b[^>]*>/iy,Q=/<\/script\s*>/ig,U=/<style\b[^>]*>/iy,V=/<\/style\s*>/ig;function J(f,j,w,B){w.lastIndex=j;let z=w.exec(f);if(!z||z.index!==j)return-1;B.lastIndex=w.lastIndex;let v=B.exec(f);if(!v)return-1;return v.index+v[0].length}function W(f,j){return J(f,j,M,Q)}function Z(f,j){return J(f,j,U,V)}function $(f,j){if(!f.startsWith("<!--",j))return-1;let w=f.indexOf("-->",j+4);if(w===-1)return-1;return w+3}function X(f,j,w){let B=[],z="",v=0,K=f.length,H=!1,F=null;while(v<K){let D=f[v];if(H){if(z+=D,F){if(D===F)F=null}else if(D==='"'||D==="'")F=D;else if(D===">")H=!1;v++;continue}if(D==="<"){let G=j(f,v);if(G>v){z+=w(f.slice(v,G),B.length),B.push(f.slice(v,G)),v=G;continue}if(/^<\/?[a-zA-Z]/.test(f.slice(v,v+2)))H=!0;z+=D,v++;continue}z+=D,v++}return{output:z,tokens:B}}function b(f){let{output:j,tokens:w}=X(f,W,(B,z)=>`\x00STX_SCRIPT_${z}\x00`);return{output:j,scripts:w}}function y(f,j){if(j.length===0)return f;return f.replace(/\x00STX_SCRIPT_(\d+)\x00/g,(w,B)=>j[+B]??"")}
3
- export{W as lv,Z as mv,$ as nv,X as ov,b as pv,y as qv};
@@ -1 +0,0 @@
1
- // @bun
@@ -1,128 +0,0 @@
1
- // @bun
2
- import O from"fs";import Q from"path";var V="node_modules/@stacksjs/crosswind/dist/crosswind.css";async function k(b){let j=Q.join(b,V);try{return await O.promises.access(j),!0}catch{return!1}}async function X(b,j={}){let z=j.cssPath||Q.join(b.root,V);try{return await O.promises.readFile(z,"utf-8")}catch{return Y()}}function Y(){return`
3
- /* Minimal utility classes (Crosswind fallback) */
4
-
5
- /* Display */
6
- .block { display: block; }
7
- .inline-block { display: inline-block; }
8
- .inline { display: inline; }
9
- .flex { display: flex; }
10
- .inline-flex { display: inline-flex; }
11
- .grid { display: grid; }
12
- .hidden { display: none; }
13
-
14
- /* Flexbox */
15
- .flex-row { flex-direction: row; }
16
- .flex-col { flex-direction: column; }
17
- .flex-wrap { flex-wrap: wrap; }
18
- .items-start { align-items: flex-start; }
19
- .items-center { align-items: center; }
20
- .items-end { align-items: flex-end; }
21
- .justify-start { justify-content: flex-start; }
22
- .justify-center { justify-content: center; }
23
- .justify-end { justify-content: flex-end; }
24
- .justify-between { justify-content: space-between; }
25
- .gap-1 { gap: 0.25rem; }
26
- .gap-2 { gap: 0.5rem; }
27
- .gap-3 { gap: 0.75rem; }
28
- .gap-4 { gap: 1rem; }
29
-
30
- /* Spacing */
31
- .p-0 { padding: 0; }
32
- .p-1 { padding: 0.25rem; }
33
- .p-2 { padding: 0.5rem; }
34
- .p-3 { padding: 0.75rem; }
35
- .p-4 { padding: 1rem; }
36
- .px-1 { padding-left: 0.25rem; padding-right: 0.25rem; }
37
- .px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
38
- .px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
39
- .px-4 { padding-left: 1rem; padding-right: 1rem; }
40
- .py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
41
- .py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
42
- .py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
43
- .py-4 { padding-top: 1rem; padding-bottom: 1rem; }
44
- .m-0 { margin: 0; }
45
- .m-1 { margin: 0.25rem; }
46
- .m-2 { margin: 0.5rem; }
47
- .m-3 { margin: 0.75rem; }
48
- .m-4 { margin: 1rem; }
49
- .mx-auto { margin-left: auto; margin-right: auto; }
50
-
51
- /* Typography */
52
- .text-xs { font-size: 0.75rem; }
53
- .text-sm { font-size: 0.875rem; }
54
- .text-base { font-size: 1rem; }
55
- .text-lg { font-size: 1.125rem; }
56
- .text-xl { font-size: 1.25rem; }
57
- .text-2xl { font-size: 1.5rem; }
58
- .font-normal { font-weight: 400; }
59
- .font-medium { font-weight: 500; }
60
- .font-semibold { font-weight: 600; }
61
- .font-bold { font-weight: 700; }
62
- .text-left { text-align: left; }
63
- .text-center { text-align: center; }
64
- .text-right { text-align: right; }
65
-
66
- /* Colors */
67
- .text-white { color: #ffffff; }
68
- .text-black { color: #000000; }
69
- .text-gray-500 { color: #6b7280; }
70
- .text-gray-700 { color: #374151; }
71
- .bg-white { background-color: #ffffff; }
72
- .bg-black { background-color: #000000; }
73
- .bg-gray-100 { background-color: #f3f4f6; }
74
- .bg-gray-200 { background-color: #e5e7eb; }
75
- .bg-blue-500 { background-color: #3b82f6; }
76
- .bg-green-500 { background-color: #22c55e; }
77
- .bg-red-500 { background-color: #ef4444; }
78
-
79
- /* Borders */
80
- .border { border-width: 1px; }
81
- .border-0 { border-width: 0; }
82
- .border-2 { border-width: 2px; }
83
- .border-gray-200 { border-color: #e5e7eb; }
84
- .border-gray-300 { border-color: #d1d5db; }
85
- .rounded { border-radius: 0.25rem; }
86
- .rounded-md { border-radius: 0.375rem; }
87
- .rounded-lg { border-radius: 0.5rem; }
88
- .rounded-full { border-radius: 9999px; }
89
-
90
- /* Sizing */
91
- .w-full { width: 100%; }
92
- .h-full { height: 100%; }
93
- .w-auto { width: auto; }
94
- .h-auto { height: auto; }
95
- .min-w-0 { min-width: 0; }
96
- .max-w-full { max-width: 100%; }
97
-
98
- /* Position */
99
- .relative { position: relative; }
100
- .absolute { position: absolute; }
101
- .fixed { position: fixed; }
102
- .inset-0 { top: 0; right: 0; bottom: 0; left: 0; }
103
-
104
- /* Overflow */
105
- .overflow-auto { overflow: auto; }
106
- .overflow-hidden { overflow: hidden; }
107
- .overflow-scroll { overflow: scroll; }
108
-
109
- /* Cursor */
110
- .cursor-pointer { cursor: pointer; }
111
- .cursor-default { cursor: default; }
112
-
113
- /* Opacity */
114
- .opacity-0 { opacity: 0; }
115
- .opacity-50 { opacity: 0.5; }
116
- .opacity-100 { opacity: 1; }
117
-
118
- /* Transitions */
119
- .transition { transition-property: all; transition-duration: 150ms; }
120
- .duration-150 { transition-duration: 150ms; }
121
- .duration-300 { transition-duration: 300ms; }
122
- `}async function M(b,j={}){return`<style id="crosswind-css">
123
- ${await X(b,j)}
124
- </style>`}function w(b){let j=/class=["']([^"']+)["']/g,z=new Set,v=j.exec(b);while(v!==null){let G=v[1].split(/\s+/);for(let B of G)if(B.trim())z.add(B.trim());v=j.exec(b)}return Array.from(z)}function y(b,j){let z=b.split(`
125
- `),v=[],G=!1,B="",K=!1;for(let q of z)if(q.includes("{")){G=!0,B=q;for(let J of j)if(q.includes(`.${J}`)||q.includes(`.${J} `)||q.includes(`.${J},`)||q.includes(`.${J}:`)){K=!0;break}}else if(q.includes("}")){if(K)v.push(B),v.push(q);G=!1,B="",K=!1}else if(G)B+=`
126
- ${q}`;else v.push(q);return v.join(`
127
- `)}
128
- export{k as qa,X as ra,M as sa,w as ta,y as ua};
@@ -1,14 +0,0 @@
1
- // @bun
2
- class I{cache=new Map;maxSize;constructor(j=100){this.maxSize=j}get(j){if(!this.cache.has(j))return;let F=this.cache.get(j);return this.cache.delete(j),this.cache.set(j,F),F}set(j,F){if(this.cache.has(j))this.cache.delete(j);else if(this.cache.size>=this.maxSize){let D=this.cache.keys().next().value;if(D!==void 0)this.cache.delete(D)}this.cache.set(j,F)}has(j){return this.cache.has(j)}delete(j){return this.cache.delete(j)}clear(){this.cache.clear()}get size(){return this.cache.size}keys(){return this.cache.keys()}values(){return this.cache.values()}}var U=new Map,V=500;function z(j,F){if(F?.includes("g"))return new RegExp(j,F);let D=`${j}:${F||""}`;if(!U.has(D)){if(U.size>=V){let J=U.keys().next().value;if(J)U.delete(J)}U.set(D,new RegExp(j,F))}return U.get(D)}function A(){U.clear()}class G{cache=new Map;maxSize;ttl;constructor(j=1000,F=300000){this.maxSize=j,this.ttl=F}get(j){let F=this.cache.get(j);if(!F)return null;if(Date.now()-F.timestamp>this.ttl)return this.cache.delete(j),null;return F.result}set(j,F,D=new Set){if(this.cache.size>=this.maxSize){let J=this.cache.keys().next().value;if(J)this.cache.delete(J)}this.cache.set(j,{result:F,timestamp:Date.now(),dependencies:D})}invalidateDependency(j){let F=0;for(let[D,J]of this.cache.entries())if(J.dependencies.has(j))this.cache.delete(D),F++;return F}clear(){this.cache.clear()}getStats(){return{size:this.cache.size,maxSize:this.maxSize}}}function X(j,F){let D;return(...J)=>{if(D)clearTimeout(D);D=setTimeout(()=>{j(...J)},F)}}function M(j,F){let D=0,J;return(...N)=>{let Q=Date.now();if(Q-D>=F)D=Q,J=j(...N);return J}}function P(j,F=100){let D=new Map;return(...J)=>{let N;try{N=JSON.stringify(J)}catch{return j(...J)}if(D.has(N))return D.get(N);if(D.size>=F){let O=D.keys().next().value;if(O)D.delete(O)}let Q=j(...J);return D.set(N,Q),Q}}function R(j,F,D,J){if(typeof F==="string"){let N=z(F,J);if(typeof D==="string"&&J?.includes("i")){let Q=D;return j.replace(N,(O)=>{if(O===O.toUpperCase()&&O!==O.toLowerCase())return Q.toUpperCase();else if(O[0]===O[0].toUpperCase()&&O[0]!==O[0].toLowerCase())return Q[0].toUpperCase()+Q.slice(1).toLowerCase();else return Q.toLowerCase()})}return j.replace(N,D)}return j.replace(F,D)}class L{pool=[];maxPoolSize=10;fnCache=new Map;fnCacheMaxSize=200;getEvaluator(j){let F=Array.from(new Set(j)),D=F.sort().join(","),J=this.pool.find((T)=>T.context.join(",")===D);if(J)return J.func;let N=this.fnCache,Q=this.fnCacheMaxSize,O=(...T)=>{return(Y)=>{try{let Z=`${D}:${Y}`,$=N.get(Z);if(!$){if(N.size>=Q){let q=N.keys().next().value;if(q)N.delete(q)}$=Function(...F,`
3
- 'use strict';
4
- try {
5
- return ${Y};
6
- }
7
- catch (e) {
8
- if (e instanceof ReferenceError || e instanceof TypeError) {
9
- return undefined;
10
- }
11
- throw e;
12
- }
13
- `),N.set(Z,$)}return $(...T)}catch{return}}};if(this.pool.length<this.maxPoolSize)this.pool.push({func:O,context:F.slice()});return O}clear(){this.pool.length=0,this.fnCache.clear()}}var S=new L;class W{metrics=new Map;budgets=new Map;violations=[];maxViolations=100;violationHandlers=[];enabled=!0;setEnabled(j){this.enabled=j}isEnabled(){return this.enabled}setBudget(j,F){this.budgets.set(j,{warnThreshold:0.8,action:"warn",...F})}setBudgets(j){for(let[F,D]of Object.entries(j))this.setBudget(F,D)}removeBudget(j){this.budgets.delete(j)}getBudgets(){let j={};for(let[F,D]of this.budgets.entries())j[F]=D;return j}onViolation(j){this.violationHandlers.push(j)}offViolation(j){let F=this.violationHandlers.indexOf(j);if(F!==-1)this.violationHandlers.splice(F,1)}time(j,F){if(!this.enabled)return F();let D=performance.now(),J=F(),N=performance.now()-D;return this.recordTime(j,N),this.checkBudget(j,N),J}async timeAsync(j,F){if(!this.enabled)return F();let D=performance.now(),J=await F(),N=performance.now()-D;return this.recordTime(j,N),this.checkBudget(j,N),J}checkBudget(j,F){let D=this.budgets.get(j);if(!D)return;let J=F/D.maxTime*100,N=D.warnThreshold!==void 0?F>=D.maxTime*D.warnThreshold&&F<D.maxTime:!1,Q=F>=D.maxTime;if(!N&&!Q)return;let O={label:j,actualTime:F,budgetTime:D.maxTime,exceedancePercent:J,timestamp:new Date,isWarning:N};this.violations.push(O);while(this.violations.length>this.maxViolations)this.violations.shift();for(let Y of this.violationHandlers)try{Y(O)}catch{}let T=N?`[Performance Warning] "${j}" took ${F.toFixed(2)}ms (${J.toFixed(1)}% of ${D.maxTime}ms budget)`:`[Performance Budget Exceeded] "${j}" took ${F.toFixed(2)}ms (exceeded ${D.maxTime}ms budget by ${(J-100).toFixed(1)}%)`;switch(D.action){case"log":console.log(T);break;case"warn":console.warn(T);break;case"error":console.error(T);break;case"throw":if(Q)throw Error(T);else console.warn(T);break}}recordTime(j,F){let D=this.metrics.get(j);if(D)D.count++,D.totalTime+=F,D.maxTime=Math.max(D.maxTime,F),D.minTime=Math.min(D.minTime,F);else this.metrics.set(j,{count:1,totalTime:F,maxTime:F,minTime:F})}getStats(j){if(j){let D=this.metrics.get(j);if(!D)return{};let J=this.budgets.get(j);return{count:D.count,avgTime:D.totalTime/D.count,totalTime:D.totalTime,maxTime:D.maxTime,minTime:D.minTime,budget:J?.maxTime,budgetUtilization:J?D.totalTime/D.count/J.maxTime*100:void 0}}let F={};for(let[D,J]of this.metrics.entries()){let N=this.budgets.get(D);F[D]={count:J.count,avgTime:J.totalTime/J.count,totalTime:J.totalTime,maxTime:J.maxTime,minTime:J.minTime,budget:N?.maxTime,budgetUtilization:N?J.totalTime/J.count/N.maxTime*100:void 0}}return F}getViolations(j){if(j)return this.violations.filter((F)=>F.label===j);return[...this.violations]}getViolationStats(){let j={},F=0,D=0;for(let J of this.violations)if(j[J.label]=(j[J.label]||0)+1,J.isWarning)F++;else D++;return{total:this.violations.length,byLabel:j,warnings:F,errors:D}}clear(){this.metrics.clear()}clearViolations(){this.violations.length=0}clearBudgets(){this.budgets.clear()}reset(){this.clear(),this.clearViolations(),this.clearBudgets(),this.violationHandlers.length=0}}var H={processDirectives:{maxTime:500,warnThreshold:0.8,action:"warn"},processTemplate:{maxTime:200,warnThreshold:0.8,action:"warn"},processIncludes:{maxTime:100,warnThreshold:0.8,action:"warn"},processLoops:{maxTime:50,warnThreshold:0.8,action:"warn"},processConditionals:{maxTime:50,warnThreshold:0.8,action:"warn"},processExpressions:{maxTime:100,warnThreshold:0.8,action:"warn"},renderComponent:{maxTime:150,warnThreshold:0.8,action:"warn"},buildWebComponents:{maxTime:1000,warnThreshold:0.8,action:"warn"}},B=null;function w(){if(!B)B=new W;return B}var _=new Proxy({},{get(j,F){return w()[F]}});function v(j=w()){j.setBudgets(H)}function K(){B=null}
14
- export{I as Bx,z as Cx,A as Dx,G as Ex,X as Fx,M as Gx,P as Hx,R as Ix,S as Jx,W as Kx,H as Lx,w as Mx,_ as Nx,v as Ox,K as Px};