@stacksjs/stx 0.2.95 → 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 (612) 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 -2
  109. package/dist/dev-server/serve-file.js +439 -2
  110. package/dist/dev-server/serve-markdown.js +281 -2
  111. package/dist/dev-server/serve-multi.js +579 -2
  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 +5 -6
  357. package/dist/chunk-04n64bnt.js +0 -5
  358. package/dist/chunk-06w68hyg.js +0 -7
  359. package/dist/chunk-07y6m5xx.js +0 -3
  360. package/dist/chunk-095s3972.js +0 -99
  361. package/dist/chunk-09k66d8a.js +0 -3
  362. package/dist/chunk-0a61y94n.js +0 -24
  363. package/dist/chunk-0b9w2w1y.js +0 -1
  364. package/dist/chunk-0dx4q6yq.js +0 -3
  365. package/dist/chunk-0dz85jrp.js +0 -3
  366. package/dist/chunk-0jd0pndq.js +0 -3
  367. package/dist/chunk-0p0nyq50.js +0 -6
  368. package/dist/chunk-0p1h3p3w.js +0 -3
  369. package/dist/chunk-0qakwen3.js +0 -1
  370. package/dist/chunk-0qnz93q2.js +0 -3
  371. package/dist/chunk-10debkj5.js +0 -71
  372. package/dist/chunk-15nesxgt.js +0 -5224
  373. package/dist/chunk-1sr54zp8.js +0 -3
  374. package/dist/chunk-1v49fwr5.js +0 -3
  375. package/dist/chunk-1xz0w746.js +0 -1539
  376. package/dist/chunk-1z5nhbjt.js +0 -90
  377. package/dist/chunk-1zgsgk4b.js +0 -1
  378. package/dist/chunk-20swzkx3.js +0 -216
  379. package/dist/chunk-27zsyhrd.js +0 -4
  380. package/dist/chunk-29y0hk5z.js +0 -3
  381. package/dist/chunk-2cdvw21b.js +0 -274
  382. package/dist/chunk-2j21d3ka.js +0 -161
  383. package/dist/chunk-2jxbwnkz.js +0 -2
  384. package/dist/chunk-31dr4bys.js +0 -6
  385. package/dist/chunk-35faj94w.js +0 -15
  386. package/dist/chunk-39gm08bn.js +0 -39
  387. package/dist/chunk-3a4qsygv.js +0 -51
  388. package/dist/chunk-3te20hqw.js +0 -3
  389. package/dist/chunk-43t7faps.js +0 -24
  390. package/dist/chunk-44hd3kab.js +0 -1
  391. package/dist/chunk-47kpewks.js +0 -71
  392. package/dist/chunk-4aj7ftqb.js +0 -1
  393. package/dist/chunk-4d2y57k7.js +0 -3
  394. package/dist/chunk-4deg33rw.js +0 -57
  395. package/dist/chunk-4k7d8p8d.js +0 -188
  396. package/dist/chunk-4qcy5tx6.js +0 -53
  397. package/dist/chunk-4x7kae4j.js +0 -3
  398. package/dist/chunk-55nwdnsd.js +0 -3
  399. package/dist/chunk-55yp0q8t.js +0 -201
  400. package/dist/chunk-5f43yz6z.js +0 -12
  401. package/dist/chunk-5shey2e4.js +0 -3
  402. package/dist/chunk-6b5k6w2q.js +0 -7
  403. package/dist/chunk-6djzdes9.js +0 -14
  404. package/dist/chunk-6e4c6g46.js +0 -3
  405. package/dist/chunk-6eqbxcrd.js +0 -8
  406. package/dist/chunk-7074g241.js +0 -3
  407. package/dist/chunk-7b6s3g65.js +0 -179
  408. package/dist/chunk-7cgmq685.js +0 -33
  409. package/dist/chunk-7dkz6z2s.js +0 -3
  410. package/dist/chunk-7ed3tean.js +0 -3
  411. package/dist/chunk-7gd339hd.js +0 -109
  412. package/dist/chunk-7j5e8sdj.js +0 -3
  413. package/dist/chunk-7n8g0nfn.js +0 -38
  414. package/dist/chunk-7sqdeqsw.js +0 -1
  415. package/dist/chunk-80g54ncj.js +0 -3
  416. package/dist/chunk-8a5bxece.js +0 -4
  417. package/dist/chunk-8ahwt6a4.js +0 -721
  418. package/dist/chunk-8b3z0zd5.js +0 -8
  419. package/dist/chunk-8dhdpa5h.js +0 -4
  420. package/dist/chunk-8n9nnqr6.js +0 -3
  421. package/dist/chunk-8qc1bsym.js +0 -3
  422. package/dist/chunk-8va64c9n.js +0 -3
  423. package/dist/chunk-8vtm0m84.js +0 -3
  424. package/dist/chunk-8xj7c3mf.js +0 -8
  425. package/dist/chunk-988dw6q3.js +0 -9
  426. package/dist/chunk-9b6cec0v.js +0 -321
  427. package/dist/chunk-9cf97f9p.js +0 -3
  428. package/dist/chunk-9ecv8aqj.js +0 -14
  429. package/dist/chunk-9eq3ht5f.js +0 -8
  430. package/dist/chunk-9jtj77jx.js +0 -3
  431. package/dist/chunk-9t14se2t.js +0 -83
  432. package/dist/chunk-9wmq2272.js +0 -3
  433. package/dist/chunk-9zbk5zx5.js +0 -57
  434. package/dist/chunk-a2g2qb2y.js +0 -386
  435. package/dist/chunk-a3hyn4we.js +0 -79
  436. package/dist/chunk-a87qqft6.js +0 -194
  437. package/dist/chunk-ah88wzbg.js +0 -10
  438. package/dist/chunk-akf1r75r.js +0 -102
  439. package/dist/chunk-amaa1bev.js +0 -2
  440. package/dist/chunk-avx8aydt.js +0 -3
  441. package/dist/chunk-ay9qf4zj.js +0 -6
  442. package/dist/chunk-aywxfqev.js +0 -3
  443. package/dist/chunk-azkegjd8.js +0 -61
  444. package/dist/chunk-b77wjyn7.js +0 -84
  445. package/dist/chunk-baf1hfwh.js +0 -231
  446. package/dist/chunk-bdk6g1vj.js +0 -3
  447. package/dist/chunk-bhqgmyqw.js +0 -36
  448. package/dist/chunk-bk3j0n82.js +0 -341
  449. package/dist/chunk-bndmdahk.js +0 -3
  450. package/dist/chunk-bpgg59wa.js +0 -3
  451. package/dist/chunk-bs3gmfxz.js +0 -5
  452. package/dist/chunk-bxc7kjsk.js +0 -32
  453. package/dist/chunk-c7jg8w13.js +0 -3
  454. package/dist/chunk-ckxjqqn9.js +0 -3
  455. package/dist/chunk-cn8az1b4.js +0 -1
  456. package/dist/chunk-d0zjtdw4.js +0 -29
  457. package/dist/chunk-d1qh1x2g.js +0 -3
  458. package/dist/chunk-djddhmcc.js +0 -60
  459. package/dist/chunk-dqn9gyhb.js +0 -21
  460. package/dist/chunk-drjq2zwg.js +0 -3
  461. package/dist/chunk-dvfs1h3c.js +0 -117
  462. package/dist/chunk-e2q9c5vq.js +0 -8
  463. package/dist/chunk-e98v1bc6.js +0 -12
  464. package/dist/chunk-ejayeex8.js +0 -2
  465. package/dist/chunk-ejh8fyak.js +0 -3
  466. package/dist/chunk-ek2w6zvy.js +0 -4
  467. package/dist/chunk-ewa88139.js +0 -6
  468. package/dist/chunk-fjk3x41y.js +0 -3
  469. package/dist/chunk-frg705zq.js +0 -302
  470. package/dist/chunk-fzm3y0r3.js +0 -267
  471. package/dist/chunk-g1vt329s.js +0 -21
  472. package/dist/chunk-g4ps1dj8.js +0 -140
  473. package/dist/chunk-gkzq8zw4.js +0 -23
  474. package/dist/chunk-gz5fmp3q.js +0 -3
  475. package/dist/chunk-h0hjy0kn.js +0 -292
  476. package/dist/chunk-h5jxydqq.js +0 -147
  477. package/dist/chunk-h5wa62ek.js +0 -145
  478. package/dist/chunk-h7aq56qj.js +0 -28
  479. package/dist/chunk-h82kjdr4.js +0 -83
  480. package/dist/chunk-hbehnm18.js +0 -3
  481. package/dist/chunk-hbgxbgam.js +0 -58
  482. package/dist/chunk-hc2mf5h6.js +0 -4
  483. package/dist/chunk-hjm2xab3.js +0 -3
  484. package/dist/chunk-hjv76kcw.js +0 -1
  485. package/dist/chunk-hrnnh4tq.js +0 -142
  486. package/dist/chunk-ht43ds42.js +0 -236
  487. package/dist/chunk-hxx3za24.js +0 -62
  488. package/dist/chunk-hy8820vc.js +0 -6
  489. package/dist/chunk-j447q024.js +0 -28
  490. package/dist/chunk-j58vh0w6.js +0 -314
  491. package/dist/chunk-j8tn8enq.js +0 -3
  492. package/dist/chunk-jc0fc4ht.js +0 -11
  493. package/dist/chunk-jcs0ymw7.js +0 -3
  494. package/dist/chunk-jjamhxpm.js +0 -139
  495. package/dist/chunk-jjb05d21.js +0 -3
  496. package/dist/chunk-jjdq01dv.js +0 -128
  497. package/dist/chunk-jnmgm2xw.js +0 -5
  498. package/dist/chunk-jpndqst5.js +0 -3
  499. package/dist/chunk-jt0ezawy.js +0 -351
  500. package/dist/chunk-jz73j3qs.js +0 -169
  501. package/dist/chunk-k21df0pg.js +0 -10
  502. package/dist/chunk-k848dzsa.js +0 -429
  503. package/dist/chunk-kdfe4t91.js +0 -3
  504. package/dist/chunk-keawsbpn.js +0 -5
  505. package/dist/chunk-kgym7ch9.js +0 -8
  506. package/dist/chunk-khdn7jwe.js +0 -3
  507. package/dist/chunk-km25cwz6.js +0 -3
  508. package/dist/chunk-knm8a8yx.js +0 -398
  509. package/dist/chunk-krqn0ddk.js +0 -3
  510. package/dist/chunk-ktkmvaa8.js +0 -1
  511. package/dist/chunk-kx6eb6ma.js +0 -4
  512. package/dist/chunk-kypas8vy.js +0 -4
  513. package/dist/chunk-m167kjhv.js +0 -4
  514. package/dist/chunk-m491r0rj.js +0 -358
  515. package/dist/chunk-m8448qby.js +0 -11
  516. package/dist/chunk-mgj88zeq.js +0 -64
  517. package/dist/chunk-mhgk632d.js +0 -3
  518. package/dist/chunk-mv4fb50w.js +0 -1
  519. package/dist/chunk-n5kg7fpx.js +0 -7
  520. package/dist/chunk-n98x35xd.js +0 -8
  521. package/dist/chunk-n9dhs1dw.js +0 -106
  522. package/dist/chunk-nd9rmddh.js +0 -6
  523. package/dist/chunk-ngxfwzq3.js +0 -3
  524. package/dist/chunk-nhv099jv.js +0 -19
  525. package/dist/chunk-nm15ccsg.js +0 -5
  526. package/dist/chunk-npfmdb6y.js +0 -71
  527. package/dist/chunk-nvwb4x04.js +0 -3
  528. package/dist/chunk-nw34xajc.js +0 -8
  529. package/dist/chunk-p077sw22.js +0 -3
  530. package/dist/chunk-p1h8065h.js +0 -3
  531. package/dist/chunk-p3e0cqtt.js +0 -34
  532. package/dist/chunk-p3fpb79v.js +0 -477
  533. package/dist/chunk-p52yzjq6.js +0 -498
  534. package/dist/chunk-p73meypx.js +0 -134
  535. package/dist/chunk-pa9zb7ty.js +0 -4
  536. package/dist/chunk-payfb24w.js +0 -207
  537. package/dist/chunk-pcm1vd8w.js +0 -3
  538. package/dist/chunk-pcntd9h4.js +0 -3
  539. package/dist/chunk-pg1fvqb9.js +0 -167
  540. package/dist/chunk-psc3wfcf.js +0 -1115
  541. package/dist/chunk-pznnww6k.js +0 -6
  542. package/dist/chunk-q6zhd9yf.js +0 -3
  543. package/dist/chunk-qa59zejf.js +0 -246
  544. package/dist/chunk-qvrbjpdc.js +0 -3
  545. package/dist/chunk-qygvvygy.js +0 -12
  546. package/dist/chunk-r0jcmpv6.js +0 -68
  547. package/dist/chunk-r5m9xtm7.js +0 -3
  548. package/dist/chunk-rh80q1nd.js +0 -1
  549. package/dist/chunk-rkffm9sy.js +0 -128
  550. package/dist/chunk-rpx5fa65.js +0 -3
  551. package/dist/chunk-rqxf5hns.js +0 -3
  552. package/dist/chunk-rtr974rc.js +0 -30
  553. package/dist/chunk-rvptcndz.js +0 -3
  554. package/dist/chunk-rw26rpek.js +0 -171
  555. package/dist/chunk-rw7937v4.js +0 -19
  556. package/dist/chunk-rwrv9wbf.js +0 -3
  557. package/dist/chunk-rz2ec6g7.js +0 -347
  558. package/dist/chunk-s6ja2bdg.js +0 -66
  559. package/dist/chunk-scpkdrdb.js +0 -4
  560. package/dist/chunk-shv88d2d.js +0 -10
  561. package/dist/chunk-t0c9wvpr.js +0 -3
  562. package/dist/chunk-tffh3b1e.js +0 -35
  563. package/dist/chunk-tg2f1mzq.js +0 -11
  564. package/dist/chunk-trfswy66.js +0 -77
  565. package/dist/chunk-tzwtg722.js +0 -3
  566. package/dist/chunk-v7f8jj15.js +0 -4
  567. package/dist/chunk-v8j49spx.js +0 -3
  568. package/dist/chunk-v97390pe.js +0 -1
  569. package/dist/chunk-vcr5pzpx.js +0 -233
  570. package/dist/chunk-veeerpwa.js +0 -3
  571. package/dist/chunk-vg5kt6az.js +0 -4
  572. package/dist/chunk-vgv7jvyz.js +0 -219
  573. package/dist/chunk-vjbefncc.js +0 -3
  574. package/dist/chunk-vmxjghsm.js +0 -3
  575. package/dist/chunk-vw7vqd76.js +0 -3
  576. package/dist/chunk-vx22he47.js +0 -1
  577. package/dist/chunk-w3b6m427.js +0 -45
  578. package/dist/chunk-wazkqv7n.js +0 -3
  579. package/dist/chunk-wf7zrjsw.js +0 -138
  580. package/dist/chunk-wfg2gm11.js +0 -3
  581. package/dist/chunk-wg9k6h8w.js +0 -12
  582. package/dist/chunk-wkz2vwkr.js +0 -81
  583. package/dist/chunk-wvef3ngh.js +0 -127
  584. package/dist/chunk-wvf31nzs.js +0 -3
  585. package/dist/chunk-x05nxhyv.js +0 -262
  586. package/dist/chunk-x0770gt9.js +0 -4
  587. package/dist/chunk-x24s4heg.js +0 -1166
  588. package/dist/chunk-x3r64r0c.js +0 -6
  589. package/dist/chunk-x5g9w4hh.js +0 -5
  590. package/dist/chunk-xgkv66q5.js +0 -2230
  591. package/dist/chunk-xqq1vxb6.js +0 -1
  592. package/dist/chunk-xs03kc1h.js +0 -196
  593. package/dist/chunk-xv34zbp4.js +0 -3
  594. package/dist/chunk-xw36p73h.js +0 -90
  595. package/dist/chunk-xyg1r5w0.js +0 -4
  596. package/dist/chunk-xys2sxh6.js +0 -16
  597. package/dist/chunk-y0qg6rrv.js +0 -3
  598. package/dist/chunk-y1k17c8b.js +0 -21
  599. package/dist/chunk-y5xz0jc4.js +0 -141
  600. package/dist/chunk-y6xsqe9a.js +0 -10
  601. package/dist/chunk-yb1t2h8h.js +0 -11
  602. package/dist/chunk-ygvyc6wv.js +0 -90
  603. package/dist/chunk-yj4x5ehw.js +0 -21
  604. package/dist/chunk-yn38c15w.js +0 -4
  605. package/dist/chunk-ynhngsdh.js +0 -3
  606. package/dist/chunk-yrsb6j3z.js +0 -3
  607. package/dist/chunk-yywfvfph.js +0 -2
  608. package/dist/chunk-zcxzdrn7.js +0 -5
  609. package/dist/chunk-zen6ax1y.js +0 -27
  610. package/dist/chunk-zf2pek72.js +0 -3
  611. package/dist/chunk-zk3d0jjf.js +0 -7
  612. package/dist/chunk-zy3rp1ab.js +0 -93
@@ -1,2 +1,163 @@
1
- // @bun
2
- import"../chunk-xv34zbp4.js";function I(){let D=new Set,B=typeof window<"u",q={width:B?window.innerWidth:0,height:B?window.innerHeight:0};if(B){let j=()=>{q={width:window.innerWidth,height:window.innerHeight};for(let F of D)try{F(q)}catch(G){console.error("[useWindowSize] Subscriber error:",G)}};window.addEventListener("resize",j,{passive:!0})}return{get width(){return q.width},get height(){return q.height},subscribe:(j)=>{return D.add(j),j(q),()=>D.delete(j)}}}function J(){let D=new Set,B=typeof window<"u",q={x:B?window.scrollX:0,y:B?window.scrollY:0};if(B){let j=()=>{q={x:window.scrollX,y:window.scrollY};for(let F of D)try{F(q)}catch(G){console.error("[useScroll] Subscriber error:",G)}};window.addEventListener("scroll",j,{passive:!0})}return{get x(){return q.x},get y(){return q.y},subscribe:(j)=>{return D.add(j),j(q),()=>D.delete(j)},scrollTo:(j,F)=>{if(!B)return;if(typeof j==="number")window.scrollTo(j,F??0);else window.scrollTo(j)},scrollToTop:()=>{if(!B)return;window.scrollTo({top:0,behavior:"smooth"})},scrollToBottom:()=>{if(!B)return;window.scrollTo({top:document.body.scrollHeight,behavior:"smooth"})}}}function K(){let D=new Set,B=typeof document<"u",q=B?document.visibilityState==="visible":!0;if(B)document.addEventListener("visibilitychange",()=>{q=document.visibilityState==="visible";for(let j of D)try{j(q)}catch(F){console.error("[useVisibility] Subscriber error:",F)}});return{get isVisible(){return q},subscribe:(j)=>{return D.add(j),j(q),()=>D.delete(j)}}}function O(D){let B=typeof document<"u";if(D&&B)document.title=D;return{get value(){return B?document.title:""},set value(q){if(B)document.title=q},set:(q)=>{if(B)document.title=q}}}function Q(D){let B=typeof document<"u",q=()=>{if(!B)return null;let j=document.querySelector('link[rel*="icon"]');if(!j)j=document.createElement("link"),j.rel="icon",document.head.appendChild(j);return j};if(D){let j=q();if(j)j.href=D}return{get value(){return q()?.href||""},set value(j){let F=q();if(F)F.href=j},set:(j)=>{let F=q();if(F)F.href=j}}}export{I as useWindowSize,K as useVisibility,O as useTitle,J as useScroll,Q as useFavicon};
1
+ export function useWindowSize() {
2
+ const subscribers = new Set, isClient = typeof window < "u";
3
+ let currentSize = {
4
+ width: isClient ? window.innerWidth : 0,
5
+ height: isClient ? window.innerHeight : 0
6
+ };
7
+ if (isClient) {
8
+ const handler = () => {
9
+ currentSize = {
10
+ width: window.innerWidth,
11
+ height: window.innerHeight
12
+ };
13
+ for (const callback of subscribers)
14
+ try {
15
+ callback(currentSize);
16
+ } catch (e) {
17
+ console.error("[useWindowSize] Subscriber error:", e);
18
+ }
19
+ };
20
+ window.addEventListener("resize", handler, { passive: !0 });
21
+ }
22
+ return {
23
+ get width() {
24
+ return currentSize.width;
25
+ },
26
+ get height() {
27
+ return currentSize.height;
28
+ },
29
+ subscribe: (callback) => {
30
+ subscribers.add(callback);
31
+ callback(currentSize);
32
+ return () => subscribers.delete(callback);
33
+ }
34
+ };
35
+ }
36
+ export function useScroll() {
37
+ const subscribers = new Set, isClient = typeof window < "u";
38
+ let currentPosition = {
39
+ x: isClient ? window.scrollX : 0,
40
+ y: isClient ? window.scrollY : 0
41
+ };
42
+ if (isClient) {
43
+ const handler = () => {
44
+ currentPosition = {
45
+ x: window.scrollX,
46
+ y: window.scrollY
47
+ };
48
+ for (const callback of subscribers)
49
+ try {
50
+ callback(currentPosition);
51
+ } catch (e) {
52
+ console.error("[useScroll] Subscriber error:", e);
53
+ }
54
+ };
55
+ window.addEventListener("scroll", handler, { passive: !0 });
56
+ }
57
+ return {
58
+ get x() {
59
+ return currentPosition.x;
60
+ },
61
+ get y() {
62
+ return currentPosition.y;
63
+ },
64
+ subscribe: (callback) => {
65
+ subscribers.add(callback);
66
+ callback(currentPosition);
67
+ return () => subscribers.delete(callback);
68
+ },
69
+ scrollTo: (options, y) => {
70
+ if (!isClient)
71
+ return;
72
+ if (typeof options === "number")
73
+ window.scrollTo(options, y ?? 0);
74
+ else
75
+ window.scrollTo(options);
76
+ },
77
+ scrollToTop: () => {
78
+ if (!isClient)
79
+ return;
80
+ window.scrollTo({ top: 0, behavior: "smooth" });
81
+ },
82
+ scrollToBottom: () => {
83
+ if (!isClient)
84
+ return;
85
+ window.scrollTo({ top: document.body.scrollHeight, behavior: "smooth" });
86
+ }
87
+ };
88
+ }
89
+ export function useVisibility() {
90
+ const subscribers = new Set, isClient = typeof document < "u";
91
+ let isVisible = isClient ? document.visibilityState === "visible" : !0;
92
+ if (isClient)
93
+ document.addEventListener("visibilitychange", () => {
94
+ isVisible = document.visibilityState === "visible";
95
+ for (const callback of subscribers)
96
+ try {
97
+ callback(isVisible);
98
+ } catch (e) {
99
+ console.error("[useVisibility] Subscriber error:", e);
100
+ }
101
+ });
102
+ return {
103
+ get isVisible() {
104
+ return isVisible;
105
+ },
106
+ subscribe: (callback) => {
107
+ subscribers.add(callback);
108
+ callback(isVisible);
109
+ return () => subscribers.delete(callback);
110
+ }
111
+ };
112
+ }
113
+ export function useTitle(initialTitle) {
114
+ const isClient = typeof document < "u";
115
+ if (initialTitle && isClient)
116
+ document.title = initialTitle;
117
+ return {
118
+ get value() {
119
+ return isClient ? document.title : "";
120
+ },
121
+ set value(newTitle) {
122
+ if (isClient)
123
+ document.title = newTitle;
124
+ },
125
+ set: (title) => {
126
+ if (isClient)
127
+ document.title = title;
128
+ }
129
+ };
130
+ }
131
+ export function useFavicon(href) {
132
+ const isClient = typeof document < "u", getLinkElement = () => {
133
+ if (!isClient)
134
+ return null;
135
+ let link = document.querySelector('link[rel*="icon"]');
136
+ if (!link) {
137
+ link = document.createElement("link");
138
+ link.rel = "icon";
139
+ document.head.appendChild(link);
140
+ }
141
+ return link;
142
+ };
143
+ if (href) {
144
+ const link = getLinkElement();
145
+ if (link)
146
+ link.href = href;
147
+ }
148
+ return {
149
+ get value() {
150
+ return getLinkElement()?.href || "";
151
+ },
152
+ set value(newHref) {
153
+ const link = getLinkElement();
154
+ if (link)
155
+ link.href = newHref;
156
+ },
157
+ set: (newHref) => {
158
+ const link = getLinkElement();
159
+ if (link)
160
+ link.href = newHref;
161
+ }
162
+ };
163
+ }
@@ -1,2 +1,552 @@
1
- // @bun
2
- import{Az as b,Bz as c,Cz as d,Dz as e,Ez as f,Fz as g,Gz as h,Hz as i,Iz as j,Jz as k,Kz as l,Lz as m,Mz as n,Nz as o,Oz as p,Pz as q,Qz as r,Rz as s,Sz as t,Tz as u,Uz as v,Vz as w,Wz as x,Xz as y,Yz as z,Zz as A,_z as B,zz as a}from"./chunk-rz2ec6g7.js";import"./chunk-xv34zbp4.js";export{x as withInjectionScope,l as watch,p as updateComponent,n as setupComponent,b as setCurrentInstance,j as ref,v as pushInjectionScope,t as provide,w as popInjectionScope,i as onUpdated,f as onUpdate,h as onUnmounted,g as onMounted,d as onMount,e as onDestroy,k as namedRef,o as mountComponent,u as inject,c as getCurrentInstance,r as generateLifecycleRuntime,q as destroyComponent,j as createRef,s as createInjectionKey,a as createComponentInstance,m as computed,y as clearInjections,z as ThemeKey,A as RouterKey,B as I18nKey};
1
+ let currentInstance = null;
2
+ const instances = new Map;
3
+ let componentIdCounter = 0;
4
+ function generateId() {
5
+ return `stx-${++componentIdCounter}-${Date.now().toString(36)}`;
6
+ }
7
+ export function createComponentInstance(element) {
8
+ const instance = {
9
+ id: generateId(),
10
+ element: element || null,
11
+ mountHooks: [],
12
+ destroyHooks: [],
13
+ updateHooks: [],
14
+ refs: new Map,
15
+ watchers: [],
16
+ isMounted: !1
17
+ };
18
+ instances.set(instance.id, instance);
19
+ return instance;
20
+ }
21
+ export function setCurrentInstance(instance) {
22
+ currentInstance = instance;
23
+ }
24
+ export function getCurrentInstance() {
25
+ return currentInstance;
26
+ }
27
+ function getOrWarnInstance(hookName) {
28
+ if (!currentInstance) {
29
+ console.warn(`[stx] ${hookName} must be called within a component setup.`);
30
+ return null;
31
+ }
32
+ return currentInstance;
33
+ }
34
+ export function onMount(hook) {
35
+ const instance = getOrWarnInstance("onMount");
36
+ if (instance)
37
+ instance.mountHooks.push(hook);
38
+ }
39
+ export function onDestroy(hook) {
40
+ const instance = getOrWarnInstance("onDestroy");
41
+ if (instance)
42
+ instance.destroyHooks.push(hook);
43
+ }
44
+ export function onUpdate(hook) {
45
+ const instance = getOrWarnInstance("onUpdate");
46
+ if (instance)
47
+ instance.updateHooks.push(hook);
48
+ }
49
+ export const onMounted = onMount, onUnmounted = onDestroy, onUpdated = onUpdate;
50
+ export function ref(initialValue = null) {
51
+ const r = {
52
+ value: initialValue,
53
+ get current() {
54
+ return this.value;
55
+ }
56
+ }, instance = getCurrentInstance();
57
+ if (instance) {
58
+ const refId = `ref-${instance.refs.size}`;
59
+ instance.refs.set(refId, r);
60
+ }
61
+ return r;
62
+ }
63
+ export function namedRef(name, initialValue = null) {
64
+ const r = ref(initialValue), instance = getCurrentInstance();
65
+ if (instance)
66
+ instance.refs.set(name, r);
67
+ return r;
68
+ }
69
+ export function watch(source, callback, options = {}) {
70
+ let oldValue, cleanup, isActive = !0;
71
+ const run = () => {
72
+ if (!isActive)
73
+ return;
74
+ const newValue = source();
75
+ if (oldValue !== newValue || options.immediate) {
76
+ if (cleanup)
77
+ cleanup();
78
+ cleanup = callback(newValue, oldValue);
79
+ oldValue = newValue;
80
+ }
81
+ };
82
+ if (options.immediate)
83
+ run();
84
+ else
85
+ oldValue = source();
86
+ const intervalId = setInterval(run, 16), stop = () => {
87
+ isActive = !1;
88
+ clearInterval(intervalId);
89
+ if (cleanup)
90
+ cleanup();
91
+ }, instance = getCurrentInstance();
92
+ if (instance) {
93
+ instance.watchers.push({ stop });
94
+ instance.destroyHooks.push(stop);
95
+ }
96
+ return stop;
97
+ }
98
+ export function computed(getter) {
99
+ let cachedValue, isDirty = !0;
100
+ return {
101
+ get value() {
102
+ if (isDirty) {
103
+ cachedValue = getter();
104
+ isDirty = !1;
105
+ queueMicrotask(() => {
106
+ isDirty = !0;
107
+ });
108
+ }
109
+ return cachedValue;
110
+ }
111
+ };
112
+ }
113
+ export function setupComponent(element, setup) {
114
+ const instance = createComponentInstance(element);
115
+ setCurrentInstance(instance);
116
+ try {
117
+ setup();
118
+ } finally {
119
+ setCurrentInstance(null);
120
+ }
121
+ return instance;
122
+ }
123
+ export function mountComponent(instance) {
124
+ if (instance.isMounted)
125
+ return;
126
+ instance.isMounted = !0;
127
+ for (const hook of instance.mountHooks)
128
+ try {
129
+ const cleanup = hook();
130
+ if (typeof cleanup === "function")
131
+ instance.destroyHooks.push(cleanup);
132
+ } catch (error) {
133
+ console.error("[stx] Error in onMount hook:", error);
134
+ }
135
+ }
136
+ export function updateComponent(instance) {
137
+ if (!instance.isMounted)
138
+ return;
139
+ for (const hook of instance.updateHooks)
140
+ try {
141
+ const cleanup = hook();
142
+ if (typeof cleanup === "function")
143
+ instance.destroyHooks.push(cleanup);
144
+ } catch (error) {
145
+ console.error("[stx] Error in onUpdate hook:", error);
146
+ }
147
+ }
148
+ export function destroyComponent(instance) {
149
+ if (!instance.isMounted)
150
+ return;
151
+ for (const watcher of instance.watchers)
152
+ watcher.stop();
153
+ for (const hook of instance.destroyHooks)
154
+ try {
155
+ hook();
156
+ } catch (error) {
157
+ console.error("[stx] Error in onDestroy hook:", error);
158
+ }
159
+ for (const ref of instance.refs.values())
160
+ ref.value = null;
161
+ instance.isMounted = !1;
162
+ instances.delete(instance.id);
163
+ }
164
+ export function generateLifecycleRuntime() {
165
+ return `
166
+ // STX Lifecycle Runtime
167
+ (function() {
168
+ if (typeof window === 'undefined') return;
169
+
170
+ const instances = new Map();
171
+ let currentInstance = null;
172
+ let idCounter = 0;
173
+
174
+ function generateId() {
175
+ return 'stx-' + (++idCounter) + '-' + Date.now().toString(36);
176
+ }
177
+
178
+ function createInstance(element) {
179
+ const instance = {
180
+ id: generateId(),
181
+ element: element,
182
+ mountHooks: [],
183
+ destroyHooks: [],
184
+ updateHooks: [],
185
+ refs: new Map(),
186
+ watchers: [],
187
+ isMounted: false
188
+ };
189
+ instances.set(instance.id, instance);
190
+ return instance;
191
+ }
192
+
193
+ window.STX = window.STX || {};
194
+
195
+ // Lifecycle hooks
196
+ window.STX.onMount = function(hook) {
197
+ if (currentInstance) currentInstance.mountHooks.push(hook);
198
+ };
199
+
200
+ window.STX.onDestroy = function(hook) {
201
+ if (currentInstance) currentInstance.destroyHooks.push(hook);
202
+ };
203
+
204
+ window.STX.onUpdate = function(hook) {
205
+ if (currentInstance) currentInstance.updateHooks.push(hook);
206
+ };
207
+
208
+ // Aliases
209
+ window.STX.onMounted = window.STX.onMount;
210
+ window.STX.onUnmounted = window.STX.onDestroy;
211
+ window.STX.onUpdated = window.STX.onUpdate;
212
+
213
+ // Refs
214
+ window.STX.ref = function(initialValue) {
215
+ const r = { value: initialValue || null };
216
+ Object.defineProperty(r, 'current', {
217
+ get: function() { return this.value; }
218
+ });
219
+ if (currentInstance) {
220
+ currentInstance.refs.set('ref-' + currentInstance.refs.size, r);
221
+ }
222
+ return r;
223
+ };
224
+
225
+ // Watch
226
+ window.STX.watch = function(source, callback, options) {
227
+ options = options || {};
228
+ let oldValue;
229
+ let cleanup;
230
+ let isActive = true;
231
+
232
+ function run() {
233
+ if (!isActive) return;
234
+ const newValue = source();
235
+ if (oldValue !== newValue || options.immediate) {
236
+ if (cleanup) cleanup();
237
+ cleanup = callback(newValue, oldValue);
238
+ oldValue = newValue;
239
+ }
240
+ }
241
+
242
+ if (options.immediate) {
243
+ run();
244
+ }
245
+ else {
246
+ oldValue = source();
247
+ }
248
+
249
+ const intervalId = setInterval(run, 16);
250
+
251
+ function stop() {
252
+ isActive = false;
253
+ clearInterval(intervalId);
254
+ if (cleanup) cleanup();
255
+ }
256
+
257
+ if (currentInstance) {
258
+ currentInstance.watchers.push({ stop: stop });
259
+ currentInstance.destroyHooks.push(stop);
260
+ }
261
+
262
+ return stop;
263
+ };
264
+
265
+ // Computed
266
+ window.STX.computed = function(getter) {
267
+ let cached;
268
+ let dirty = true;
269
+ return {
270
+ get value() {
271
+ if (dirty) {
272
+ cached = getter();
273
+ dirty = false;
274
+ queueMicrotask(function() { dirty = true; });
275
+ }
276
+ return cached;
277
+ }
278
+ };
279
+ };
280
+
281
+ // Component management
282
+ window.STX.setupComponent = function(element, setup) {
283
+ const instance = createInstance(element);
284
+ currentInstance = instance;
285
+ try {
286
+ setup();
287
+ }
288
+ finally {
289
+ currentInstance = null;
290
+ }
291
+ return instance;
292
+ };
293
+
294
+ window.STX.mountComponent = function(instance) {
295
+ if (instance.isMounted) return;
296
+ instance.isMounted = true;
297
+ instance.mountHooks.forEach(function(hook) {
298
+ try {
299
+ const cleanup = hook();
300
+ if (typeof cleanup === 'function') {
301
+ instance.destroyHooks.push(cleanup);
302
+ }
303
+ }
304
+ catch (e) {
305
+ console.error('[stx] onMount error:', e);
306
+ }
307
+ });
308
+ };
309
+
310
+ window.STX.destroyComponent = function(instance) {
311
+ if (!instance.isMounted) return;
312
+ instance.watchers.forEach(function(w) { w.stop(); });
313
+ instance.destroyHooks.forEach(function(hook) {
314
+ try { hook(); }
315
+ catch (e) { console.error('[stx] onDestroy error:', e); }
316
+ });
317
+ instance.refs.forEach(function(ref) { ref.value = null; });
318
+ instance.isMounted = false;
319
+ instances.delete(instance.id);
320
+ };
321
+
322
+ // ==========================================================================
323
+ // Vue-Style Refs System - No document.** required!
324
+ // ==========================================================================
325
+
326
+ // Internal: Query for ref elements without exposing document API
327
+ function queryRef(name, root) {
328
+ return (root || document).querySelector('[data-stx-ref="' + name + '"], [data-ref="' + name + '"]');
329
+ }
330
+
331
+ function queryAllRefs(root) {
332
+ return (root || document).querySelectorAll('[data-stx-ref], [data-ref]');
333
+ }
334
+
335
+ // Auto-bind refs from ref attributes (Vue-style)
336
+ window.STX.bindRefs = function(root, refs) {
337
+ if (!root) return;
338
+ queryAllRefs(root).forEach(function(el) {
339
+ var refName = el.getAttribute('data-stx-ref') || el.getAttribute('data-ref');
340
+ if (refs[refName]) {
341
+ refs[refName].value = el;
342
+ }
343
+ });
344
+ };
345
+
346
+ // Vue-style useRefs() - returns object with all refs as direct elements
347
+ // Usage: const { input, button, container } = STX.useRefs()
348
+ window.STX.useRefs = function(root) {
349
+ var refs = {};
350
+ queryAllRefs(root).forEach(function(el) {
351
+ var refName = el.getAttribute('data-stx-ref') || el.getAttribute('data-ref');
352
+ if (refName) {
353
+ refs[refName] = el;
354
+ }
355
+ });
356
+ return refs;
357
+ };
358
+
359
+ // Get a single ref by name - Vue's useTemplateRef equivalent
360
+ // Usage: const input = STX.useRef('input')
361
+ window.STX.useRef = function(name, root) {
362
+ return queryRef(name, root);
363
+ };
364
+
365
+ // Two-way binding helper for form elements
366
+ // Usage: STX.model(inputEl, state, 'username')
367
+ window.STX.model = function(el, state, key) {
368
+ if (!el || !state) return;
369
+
370
+ var isCheckbox = el.type === 'checkbox';
371
+ var isRadio = el.type === 'radio';
372
+ var isSelect = el.tagName === 'SELECT';
373
+
374
+ // Set initial value
375
+ if (isCheckbox) {
376
+ el.checked = !!state[key];
377
+ }
378
+ else if (isRadio) {
379
+ el.checked = el.value === state[key];
380
+ }
381
+ else {
382
+ el.value = state[key] || '';
383
+ }
384
+
385
+ // Listen for changes
386
+ var eventType = isCheckbox || isRadio ? 'change' : 'input';
387
+ el.addEventListener(eventType, function() {
388
+ if (isCheckbox) {
389
+ state[key] = el.checked;
390
+ }
391
+ else if (isRadio) {
392
+ if (el.checked) state[key] = el.value;
393
+ }
394
+ else {
395
+ state[key] = el.value;
396
+ }
397
+ });
398
+
399
+ // Return cleanup function
400
+ return function() {
401
+ el.removeEventListener(eventType, arguments.callee);
402
+ };
403
+ };
404
+
405
+ // Batch event binding helper - cleaner than manual addEventListener
406
+ // Usage: STX.on({ click: [btn1, btn2], input: [textField] }, handler)
407
+ window.STX.on = function(el, event, handler) {
408
+ if (!el) return function() {};
409
+ el.addEventListener(event, handler);
410
+ return function() { el.removeEventListener(event, handler); };
411
+ };
412
+
413
+ // Bind multiple events at once
414
+ // Usage: STX.events(refs.btn, { click: handleClick, mouseenter: handleHover })
415
+ window.STX.events = function(el, eventMap) {
416
+ if (!el) return function() {};
417
+ var cleanups = [];
418
+ Object.keys(eventMap).forEach(function(event) {
419
+ el.addEventListener(event, eventMap[event]);
420
+ cleanups.push(function() { el.removeEventListener(event, eventMap[event]); });
421
+ });
422
+ return function() { cleanups.forEach(function(c) { c(); }); };
423
+ };
424
+
425
+ // ==========================================================================
426
+ // DOM Helpers - Eliminate document.* usage
427
+ // ==========================================================================
428
+
429
+ // Global keyboard event listener
430
+ // Usage: STX.onKey('Escape', () => closeModal())
431
+ window.STX.onKey = function(key, handler, options) {
432
+ var listener = function(e) {
433
+ if (e.key === key) {
434
+ handler(e);
435
+ }
436
+ };
437
+ document.addEventListener('keydown', listener, options);
438
+ return function() { document.removeEventListener('keydown', listener, options); };
439
+ };
440
+
441
+ // Create element helper
442
+ // Usage: STX.el('div', { class: 'foo' }, 'text content')
443
+ window.STX.el = function(tag, attrs, content) {
444
+ var el = document.createElement(tag);
445
+ if (attrs) {
446
+ Object.keys(attrs).forEach(function(key) {
447
+ if (key === 'class') {
448
+ el.className = attrs[key];
449
+ }
450
+ else if (key.startsWith('on')) {
451
+ el.addEventListener(key.slice(2).toLowerCase(), attrs[key]);
452
+ }
453
+ else {
454
+ el.setAttribute(key, attrs[key]);
455
+ }
456
+ });
457
+ }
458
+ if (content) {
459
+ if (typeof content === 'string') {
460
+ el.textContent = content;
461
+ }
462
+ else if (Array.isArray(content)) {
463
+ content.forEach(function(child) { el.appendChild(child); });
464
+ }
465
+ else {
466
+ el.appendChild(content);
467
+ }
468
+ }
469
+ return el;
470
+ };
471
+
472
+ // Get currently focused element
473
+ // Usage: const focused = STX.activeElement()
474
+ window.STX.activeElement = function() {
475
+ return document.activeElement;
476
+ };
477
+
478
+ // Escape HTML helper
479
+ // Usage: const safe = STX.escapeHtml(userInput)
480
+ window.STX.escapeHtml = function(text) {
481
+ var div = document.createElement('div');
482
+ div.textContent = text;
483
+ return div.innerHTML;
484
+ };
485
+
486
+ // MutationObserver for automatic lifecycle management
487
+ const observer = new MutationObserver(function(mutations) {
488
+ mutations.forEach(function(mutation) {
489
+ // Handle removed nodes
490
+ mutation.removedNodes.forEach(function(node) {
491
+ if (node.nodeType === 1 && node.__stx_instance__) {
492
+ window.STX.destroyComponent(node.__stx_instance__);
493
+ }
494
+ });
495
+ });
496
+ });
497
+
498
+ // Start observing when DOM is ready
499
+ if (document.readyState === 'loading') {
500
+ document.addEventListener('DOMContentLoaded', function() {
501
+ observer.observe(document.body, { childList: true, subtree: true });
502
+ });
503
+ }
504
+ else {
505
+ observer.observe(document.body, { childList: true, subtree: true });
506
+ }
507
+
508
+ console.log('[stx] Lifecycle runtime initialized');
509
+ })();
510
+ `;
511
+ }
512
+ const injectionContext = new Map, injectionScopes = [];
513
+ export function createInjectionKey(description) {
514
+ return Symbol(description);
515
+ }
516
+ export function provide(key, value) {
517
+ (injectionScopes.length > 0 ? injectionScopes[injectionScopes.length - 1] : injectionContext).set(key, value);
518
+ }
519
+ export function inject(key, defaultValue) {
520
+ for (let i = injectionScopes.length - 1;i >= 0; i--) {
521
+ const scope = injectionScopes[i];
522
+ if (scope.has(key))
523
+ return scope.get(key);
524
+ }
525
+ if (injectionContext.has(key))
526
+ return injectionContext.get(key);
527
+ if (arguments.length > 1)
528
+ return defaultValue;
529
+ console.warn(`[stx] Injection "${String(key)}" not found.`);
530
+ return;
531
+ }
532
+ export function pushInjectionScope() {
533
+ injectionScopes.push(new Map);
534
+ }
535
+ export function popInjectionScope() {
536
+ injectionScopes.pop();
537
+ }
538
+ export async function withInjectionScope(fn) {
539
+ pushInjectionScope();
540
+ try {
541
+ return await fn();
542
+ } finally {
543
+ popInjectionScope();
544
+ }
545
+ }
546
+ export function clearInjections() {
547
+ injectionContext.clear();
548
+ injectionScopes.length = 0;
549
+ }
550
+ export const ThemeKey = createInjectionKey("theme"), RouterKey = createInjectionKey("router"), I18nKey = createInjectionKey("i18n");
551
+
552
+ export { ref as createRef };