@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,219 +0,0 @@
1
- // @bun
2
- function Y(q){let{src:E,apiKey:G,bucket:B,allowedTypes:D,maxFileSize:J,multiple:L=!1,customStyles:M={},callbacks:Q={}}=q,O=`stx-media-manager-${Math.random().toString(36).slice(2,8)}`,j={container:`#${O}`};if(G)j.apiKey=G;if(B)j.bucket=B;if(D)j.allowedTypes=D;if(J)j.maxFileSize=J;if(L)j.multiple=L;if(Object.keys(M).length>0)j.styles=M;let R=`<div id="${O}" class="stx-media-manager"></div>`,U=Object.entries(Q).filter(([,N])=>N).map(([N,W])=>{return`manager.on('${N.replace(/^on/,"").toLowerCase()}', ${W});`}).join(`
3
- `),V=`
4
- (function() {
5
- // Load media manager script
6
- var script = document.createElement('script');
7
- script.src = '${P(E)}';
8
- script.async = true;
9
-
10
- script.onload = function() {
11
- // Initialize manager
12
- if (typeof MediaManager !== 'undefined') {
13
- var manager = new MediaManager(${JSON.stringify(j)});
14
- ${U}
15
- manager.init();
16
-
17
- // Expose manager instance
18
- window.STX = window.STX || {};
19
- window.STX.mediaManager = manager;
20
- }
21
- };
22
-
23
- script.onerror = function() {
24
- console.error('[stx] Failed to load media manager from:', '${P(E)}');
25
- };
26
-
27
- document.head.appendChild(script);
28
- })();
29
- `.trim();return{html:R,script:V}}function Z(q){let{accept:E="image/*",multiple:G=!1,onSelect:B="handleMediaSelect"}=q,D=`stx-picker-${Math.random().toString(36).slice(2,8)}`,J=`
30
- <div id="${D}" class="stx-media-picker" style="display:none;">
31
- <div class="stx-media-picker-backdrop"></div>
32
- <div class="stx-media-picker-modal">
33
- <div class="stx-media-picker-header">
34
- <h3>Select Media</h3>
35
- <button class="stx-media-picker-close" data-close>&times;</button>
36
- </div>
37
- <div class="stx-media-picker-body">
38
- <input type="file" accept="${E}" ${G?"multiple":""} data-input />
39
- <div class="stx-media-picker-preview" data-preview></div>
40
- </div>
41
- <div class="stx-media-picker-footer">
42
- <button class="stx-media-picker-cancel" data-close>Cancel</button>
43
- <button class="stx-media-picker-confirm" data-confirm>Select</button>
44
- </div>
45
- </div>
46
- </div>
47
- `.trim(),L=`
48
- (function() {
49
- var picker = document.getElementById('${D}');
50
- if (!picker) return;
51
-
52
- var input = picker.querySelector('[data-input]');
53
- var preview = picker.querySelector('[data-preview]');
54
- var selectedFiles = [];
55
-
56
- // Open picker
57
- window.STX = window.STX || {};
58
- window.STX.openMediaPicker = function() {
59
- picker.style.display = 'flex';
60
- };
61
-
62
- window.STX.closeMediaPicker = function() {
63
- picker.style.display = 'none';
64
- input.value = '';
65
- preview.innerHTML = '';
66
- selectedFiles = [];
67
- };
68
-
69
- // Close handlers
70
- picker.querySelectorAll('[data-close]').forEach(function(btn) {
71
- btn.addEventListener('click', window.STX.closeMediaPicker);
72
- });
73
-
74
- picker.querySelector('.stx-media-picker-backdrop').addEventListener('click', window.STX.closeMediaPicker);
75
-
76
- // File selection
77
- input.addEventListener('change', function(e) {
78
- selectedFiles = Array.from(e.target.files);
79
- preview.innerHTML = '';
80
-
81
- selectedFiles.forEach(function(file) {
82
- var item = document.createElement('div');
83
- item.className = 'stx-media-picker-item';
84
-
85
- if (file.type.startsWith('image/')) {
86
- var reader = new FileReader();
87
- reader.onload = function(e) {
88
- item.innerHTML = '<img src="' + e.target.result + '" alt="' + file.name + '" />';
89
- };
90
- reader.readAsDataURL(file);
91
- }
92
- else {
93
- item.textContent = file.name;
94
- }
95
-
96
- preview.appendChild(item);
97
- });
98
- });
99
-
100
- // Confirm selection
101
- picker.querySelector('[data-confirm]').addEventListener('click', function() {
102
- if (selectedFiles.length > 0 && typeof ${B} === 'function') {
103
- ${B}(selectedFiles);
104
- }
105
- window.STX.closeMediaPicker();
106
- });
107
- })();
108
- `.trim(),M=`
109
- .stx-media-picker {
110
- position: fixed;
111
- top: 0;
112
- left: 0;
113
- right: 0;
114
- bottom: 0;
115
- display: flex;
116
- align-items: center;
117
- justify-content: center;
118
- z-index: 10000;
119
- }
120
-
121
- .stx-media-picker-backdrop {
122
- position: absolute;
123
- top: 0;
124
- left: 0;
125
- right: 0;
126
- bottom: 0;
127
- background: rgba(0, 0, 0, 0.5);
128
- }
129
-
130
- .stx-media-picker-modal {
131
- position: relative;
132
- background: white;
133
- border-radius: 0.5rem;
134
- box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
135
- width: 90%;
136
- max-width: 600px;
137
- max-height: 80vh;
138
- display: flex;
139
- flex-direction: column;
140
- }
141
-
142
- .stx-media-picker-header {
143
- display: flex;
144
- justify-content: space-between;
145
- align-items: center;
146
- padding: 1rem;
147
- border-bottom: 1px solid #e5e7eb;
148
- }
149
-
150
- .stx-media-picker-header h3 {
151
- margin: 0;
152
- font-size: 1.125rem;
153
- }
154
-
155
- .stx-media-picker-close {
156
- background: none;
157
- border: none;
158
- font-size: 1.5rem;
159
- cursor: pointer;
160
- color: #6b7280;
161
- }
162
-
163
- .stx-media-picker-body {
164
- padding: 1rem;
165
- flex: 1;
166
- overflow-y: auto;
167
- }
168
-
169
- .stx-media-picker-preview {
170
- display: grid;
171
- grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
172
- gap: 0.5rem;
173
- margin-top: 1rem;
174
- }
175
-
176
- .stx-media-picker-item {
177
- aspect-ratio: 1;
178
- background: #f3f4f6;
179
- border-radius: 0.25rem;
180
- display: flex;
181
- align-items: center;
182
- justify-content: center;
183
- overflow: hidden;
184
- }
185
-
186
- .stx-media-picker-item img {
187
- width: 100%;
188
- height: 100%;
189
- object-fit: cover;
190
- }
191
-
192
- .stx-media-picker-footer {
193
- display: flex;
194
- justify-content: flex-end;
195
- gap: 0.5rem;
196
- padding: 1rem;
197
- border-top: 1px solid #e5e7eb;
198
- }
199
-
200
- .stx-media-picker-footer button {
201
- padding: 0.5rem 1rem;
202
- border-radius: 0.25rem;
203
- cursor: pointer;
204
- font-size: 0.875rem;
205
- }
206
-
207
- .stx-media-picker-cancel {
208
- background: white;
209
- border: 1px solid #d1d5db;
210
- color: #374151;
211
- }
212
-
213
- .stx-media-picker-confirm {
214
- background: #3b82f6;
215
- border: none;
216
- color: white;
217
- }
218
- `.trim();return{html:J,script:L,css:M}}function P(q){return q.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#039;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}
219
- export{Y as Kj,Z as Lj};
@@ -1,3 +0,0 @@
1
- // @bun
2
- function z(j){return j.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function B(j,F){if(j.serverDynamic[F]!==void 0)return String(j.serverDynamic[F]);let G=j.static[F];if(typeof G==="string")return G;return}var $="<script>window.__stxSafeImageHandler||(window.__stxSafeImageHandler=function(i){if(i.__stx_fb)return;i.__stx_fb=1;var f=i.getAttribute('data-fallback')||'/images/safe-image-default.svg';var c=i.getAttribute('data-fallback-class');i.src=f;if(c)i.className=c;});</script>",w={name:"SafeImage",aliases:["safe-image","safe-img"],render(j,F,G){let W=B(j,"src")||"",X=B(j,"alt")||"",Y=B(j,"fallback")||"/images/safe-image-default.svg",O=B(j,"class")||B(j,"className")||"",Q=B(j,"fallbackClassName")||"",q=[];if(q.push(`src="${z(W)}"`),q.push(`alt="${z(X)}"`),O)q.push(`class="${z(O)}"`);if(q.push(`data-fallback="${z(Y)}"`),Q)q.push(`data-fallback-class="${z(Q)}"`);q.push('onerror="window.__stxSafeImageHandler(this)"');let Z=new Set(["src","alt","fallback","class","className","fallbackClassName"]);for(let[J,K]of Object.entries(j.static)){if(Z.has(J))continue;if(typeof K==="boolean"){if(K)q.push(z(J))}else q.push(`${z(J)}="${z(K)}"`)}let U=`<img ${q.join(" ")} />`,V=G.context;if(!V.__safeImageHandlerEmitted)return V.__safeImageHandlerEmitted=!0,`${$}${U}`;return U}};
3
- export{w as hz};
@@ -1,3 +0,0 @@
1
- // @bun
2
- var Z=Symbol.for("stx.Fragment"),R=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),V=new Set(["allowfullscreen","async","autofocus","autoplay","checked","controls","default","defer","disabled","formnovalidate","hidden","inert","ismap","itemscope","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected"]),I={className:"class",htmlFor:"for",tabIndex:"tabindex",autoFocus:"autofocus",autoPlay:"autoplay",crossOrigin:"crossorigin",dateTime:"datetime",encType:"enctype",formAction:"formaction",formEncType:"formenctype",formMethod:"formmethod",formNoValidate:"formnovalidate",formTarget:"formtarget",frameBorder:"frameborder",hrefLang:"hreflang",httpEquiv:"http-equiv",inputMode:"inputmode",maxLength:"maxlength",mediaGroup:"mediagroup",minLength:"minlength",noModule:"nomodule",noValidate:"novalidate",playsInline:"playsinline",readOnly:"readonly",rowSpan:"rowspan",colSpan:"colspan",srcDoc:"srcdoc",srcLang:"srclang",srcSet:"srcset",useMap:"usemap"};function D(q){return q.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function J(q){return q.replace(/&/g,"&amp;").replace(/"/g,"&quot;")}function f(q){if(q==null||typeof q==="boolean")return[];if(!Array.isArray(q))return[B(q)];return q.flat(1/0).map(B).filter((w)=>w!=="")}function B(q){if(q==null||typeof q==="boolean")return"";if(typeof q==="string")return q;if(typeof q==="number")return String(q);return q}function $(q,w,K){let{children:G,ref:Q,key:U,...X}=w||{};return{type:q,props:Object.keys(X).length>0?X:null,children:f(G),key:K??U??void 0,ref:Q??void 0}}var j=$,E=$;function z(q){return Object.entries(q).filter(([,w])=>w!=null&&w!==!1).map(([w,K])=>{let G=w.replace(/[A-Z]/g,(U)=>`-${U.toLowerCase()}`),Q=typeof K==="number"&&!G.startsWith("--")&&G!=="opacity"&&G!=="z-index"&&G!=="flex-grow"&&G!=="flex-shrink"&&G!=="order"&&G!=="font-weight"&&G!=="line-height"?`${K}px`:String(K);return`${G}: ${Q}`}).join("; ")}function W(q){if(typeof q==="string")return q;if(Array.isArray(q))return q.filter(Boolean).map(W).join(" ");if(typeof q==="object"&&q!==null)return Object.entries(q).filter(([,w])=>w).map(([w])=>w).join(" ");return""}function F(q){if(!q)return"";let w=[];for(let[K,G]of Object.entries(q)){if(K==="key"||K==="ref"||K==="children"||K==="innerHTML"||K==="dangerouslySetInnerHTML")continue;if(K.startsWith("on")&&typeof G==="function")continue;let Q=I[K]||K;if(Q==="class"||Q==="className"){let U=W(G);if(U)w.push(` class="${J(U)}"`);continue}if(Q==="style"){let U=typeof G==="string"?G:z(G);if(U)w.push(` style="${J(U)}"`);continue}if(V.has(Q)){if(G)w.push(` ${Q}`);continue}if(G!=null&&G!==!1)w.push(` ${Q}="${J(String(G))}"`)}return w.join("")}function Y(q){if(q==null||typeof q==="boolean")return"";if(typeof q==="string")return D(q);if(typeof q==="number")return String(q);if(Array.isArray(q))return q.map(Y).join("");if(q.type===Z)return q.children.map(Y).join("");if(typeof q.type==="function"){let U=q.type({...q.props,children:q.children.length===1?q.children[0]:q.children.length>0?q.children:void 0});return Y(U)}let w=q.type,K=F(q.props),G=q.props?.innerHTML??q.props?.dangerouslySetInnerHTML?.__html;if(G!=null)return`<${w}${K}>${G}</${w}>`;if(R.has(w))return`<${w}${K}>`;let Q=q.children.map(Y).join("");return`<${w}${K}>${Q}</${w}>`}function H(q){return new ReadableStream({start(w){w.enqueue(Y(q)),w.close()}})}function _(q,w){if(!w)return;for(let[K,G]of Object.entries(w)){if(K==="key"||K==="ref"||K==="children"||K==="innerHTML"||K==="dangerouslySetInnerHTML")continue;let Q=I[K]||K;if(K.startsWith("on")&&typeof G==="function"){let U=K.slice(2).toLowerCase();q.addEventListener(U,G);continue}if(Q==="class"||Q==="className"){let U=W(G);if(U)q.setAttribute("class",U);continue}if(Q==="style"){let U=typeof G==="string"?G:z(G);if(U)q.setAttribute("style",U);continue}if(V.has(Q)){if(G)q.setAttribute(Q,"");continue}if(G!=null&&G!==!1)q.setAttribute(Q,String(G))}}function b(q,w){if(q==null||typeof q==="boolean")return;if(typeof q==="string"){w.appendChild(document.createTextNode(q));return}if(typeof q==="number"){w.appendChild(document.createTextNode(String(q)));return}if(Array.isArray(q)){for(let Q of q)b(Q,w);return}if(q.type===Z){for(let Q of q.children)b(Q,w);return}if(typeof q.type==="function"){let Q=q.type({...q.props,children:q.children.length===1?q.children[0]:q.children.length>0?q.children:void 0});b(Q,w);return}let K=document.createElement(q.type);_(K,q.props);let G=q.props?.innerHTML??q.props?.dangerouslySetInnerHTML?.__html;if(G!=null)K.innerHTML=G;else for(let Q of q.children)b(Q,K);if(q.ref){if(typeof q.ref==="function")q.ref(K)}w.appendChild(K)}function C(q){if(q.when)return $(Z,{children:q.children});return q.fallback??null}function L(q){let w=q.each;if(!w||w.length===0)return q.fallback??null;let K=Array.isArray(q.children)?q.children[0]:q.children,G=w.map((Q,U)=>K(Q,U));return $(Z,{children:G})}function M(q){return $(Z,{children:q.children})}function P(q,w,...K){let{key:G,ref:Q,...U}=w||{};return{type:q,props:Object.keys(U).length>0?U:{},children:f(K.length===1?K[0]:K),key:G??void 0,ref:Q??void 0}}
3
- export{Z as El,$ as Fl,j as Gl,E as Hl,Y as Il,H as Jl,b as Kl,C as Ll,L as Ml,M as Nl,P as Ol};
@@ -1,3 +0,0 @@
1
- // @bun
2
- function D(j){return j}class F{plugins=new Map;sortedPlugins=[];initialized=!1;async register(j,q){if(this.plugins.has(j.name))throw Error(`Plugin "${j.name}" is already registered`);if(j.dependencies){for(let w of j.dependencies)if(!this.plugins.has(w))throw Error(`Plugin "${j.name}" depends on "${w}" which is not registered`)}if(this.plugins.set(j.name,j),j.onRegister)await j.onRegister(q);this.sortPlugins()}async unregister(j){let q=this.plugins.get(j);if(!q)return!1;for(let[w,z]of this.plugins)if(z.dependencies?.includes(j))throw Error(`Cannot unregister "${j}" because "${w}" depends on it`);if(q.onUnregister)await q.onUnregister();return this.plugins.delete(j),this.sortPlugins(),!0}get(j){return this.plugins.get(j)}has(j){return this.plugins.has(j)}getAll(){return[...this.sortedPlugins]}getAllDirectives(){let j=[];for(let q of this.sortedPlugins)if(q.registerDirectives)j.push(...q.registerDirectives());return j}getAllFilters(){let j={};for(let q of this.sortedPlugins)if(q.registerFilters)Object.assign(j,q.registerFilters());return j}async runBeforeProcess(j){return this.runHooks("beforeProcess",j)}async runAfterParse(j){return this.runHooks("afterParse",j)}async runBeforeDirective(j,q){return this.runDirectiveHooks("beforeDirective",j,q)}async runAfterDirective(j,q){return this.runDirectiveHooks("afterDirective",j,q)}async runBeforeRender(j){return this.runHooks("beforeRender",j)}async runAfterRender(j){return this.runHooks("afterRender",j)}async runOnError(j){for(let q of this.sortedPlugins)if(q.onError)try{let w=await q.onError(j);if(w){if(w.template!==void 0)j.template=w.template;if(w.context)j.context={...j.context,...w.context};if(w.metadata)j.metadata={...j.metadata,...w.metadata};if(w.skip)return j}}catch(w){console.error(`Error in plugin "${q.name}" onError hook:`,w)}return null}sortPlugins(){this.sortedPlugins=Array.from(this.plugins.values()).sort((j,q)=>(j.priority??100)-(q.priority??100))}async runHooks(j,q){let w={...q};for(let z of this.sortedPlugins){let B=z[j];if(B)try{let y=await B(w);if(y){if(y.template!==void 0)w.template=y.template;if(y.context)w.context={...w.context,...y.context};if(y.metadata)w.metadata={...w.metadata,...y.metadata};if(y.skip)break}}catch(y){console.error(`Error in plugin "${z.name}" ${j} hook:`,y)}}return w}async runDirectiveHooks(j,q,w){let z={...w};for(let B of this.sortedPlugins){let y=B[j];if(y)try{let A=await y(q,z);if(A){if(A.template!==void 0)z.template=A.template;if(A.context)z.context={...z.context,...A.context};if(A.metadata)z.metadata={...z.metadata,...A.metadata};if(A.skip)break}}catch(A){console.error(`Error in plugin "${B.name}" ${j} hook:`,A)}}return z}}var G=new F;function H(j,q,w={}){return{name:j,...w,registerDirectives:()=>q}}function I(j,q,w={}){return{name:j,...w,registerFilters:()=>q}}var J=D({name:"stx-debug",version:"1.0.0",description:"Logs all plugin lifecycle events for debugging",priority:0,beforeProcess(j){console.log("[stx-debug] beforeProcess:",j.filePath)},afterParse(j){console.log("[stx-debug] afterParse:",j.template.length,"chars")},beforeDirective(j,q){console.log("[stx-debug] beforeDirective:",j)},afterDirective(j,q){console.log("[stx-debug] afterDirective:",j)},beforeRender(j){console.log("[stx-debug] beforeRender")},afterRender(j){console.log("[stx-debug] afterRender:",j.template.length,"chars")},onError(j){console.error("[stx-debug] onError:",j.error.message,"in phase:",j.phase)}}),K=D({name:"stx-timing",version:"1.0.0",description:"Measures template processing time",priority:1,beforeProcess(j){j.metadata.startTime=performance.now()},afterRender(j){let q=j.metadata.startTime;if(q){let w=performance.now()-q;console.log(`[stx-timing] Processing took ${w.toFixed(2)}ms`)}}});function L(j){return D({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess(q){return{context:{...q.context,...j}}}})}
3
- export{D as oj,F as pj,G as qj,H as rj,I as sj,J as tj,K as uj,L as vj};
@@ -1 +0,0 @@
1
- // @bun
@@ -1,45 +0,0 @@
1
- // @bun
2
- var D={maxSanitizeDepth:10,allowBracketNotation:!1},B={...D};function g(J){B={...B,...J}}function C(){B={...D}}function b(){return{...B}}var M=[/\b(eval|Function|setTimeout|setInterval|setImmediate)\b/,/\b(process|require|import|exports|module)\b/,/\b(window|document|global|globalThis)\b/,/\b(constructor|prototype|__proto__)\b/,/\b(Reflect|Proxy)\b/,/\bSymbol\b/,/\b(WeakMap|WeakSet|WeakRef|FinalizationRegistry)\b/,/\b(Generator|AsyncGenerator)\b/,/__\w+__/,/\.(bind|call|apply)\s*\(/,/\bnew\s+/,/\bdelete\s+/,/\bthis\b/],K=new Set(["eval","Function","setTimeout","setInterval","setImmediate","process","require","import","exports","module","window","document","global","globalThis","constructor","prototype","Reflect","Proxy","Symbol","WeakMap","WeakSet","WeakRef","FinalizationRegistry","Generator","AsyncGenerator","delete","this"]),k=new Set(["__proto__","constructor","prototype"]),A=/[\w)\]]\s*\[\s*['"]/;function N(J){let q="",Q=null,Z=!1;for(let $=0;$<J.length;$++){let H=J[$];if(Z){Z=!1;continue}if(H==="\\"&&Q){Z=!0;continue}if(Q){if(Q==="`"&&H==="$"&&$+1<J.length&&J[$+1]==="{"){let W=1;$+=2;while($<J.length&&W>0){if(J[$]==="{")W++;else if(J[$]==="}")W--;if(W>0)q+=J[$],$++}continue}if(H===Q)Q=null;continue}if(H==='"'||H==="'"||H==="`"){Q=H;continue}q+=H}return q}function R(J,q){let Q=/[$A-Z_a-z][$\w]*/g,Z;while((Z=Q.exec(J))!==null){let $=Z[0],H=J[Z.index-1];if(K.has($))throw Error(`Potentially unsafe expression (matched /\\b${$}\\b/; identifier ${$}): ${q}`);if(H==="."&&k.has($))throw Error(`Potentially unsafe expression (matched /.${$}/; property ${$}): ${q}`)}}function j(J){let q=/\[\s*(['"])(.*?)\1\s*\]/g,Q;while((Q=q.exec(J))!==null){let Z=Q[2];if(!k.has(Z))continue;let $=J.slice(0,Q.index).match(/\S(?=\s*$)/)?.[0],H=J.slice(Q.index+Q[0].length).match(/^\s*(\S)/)?.[1];if(!(($==="{"||$===",")&&H===":"))throw Error(`Potentially unsafe expression (bracket key ${Q[2]}): ${J}`)}}function z(J){let q=J.trim(),Q=N(q);R(Q,q),j(q);for(let Z of M)if(Z.test(Q))throw Error(`Potentially unsafe expression (matched /${Z.source}/): ${q}`);if(!B.allowBracketNotation&&A.test(q))throw Error(`Bracket notation with strings not allowed: ${q}. Enable with configureSafeEvaluator({ allowBracketNotation: true })`);return q}function T(J){let q={};q.Math=Math,q.JSON=JSON,q.Date=Date,q.String=String,q.Number=Number,q.Boolean=Boolean,q.Array=Array,q.parseInt=Number.parseInt,q.parseFloat=Number.parseFloat,q.isNaN=Number.isNaN,q.isFinite=Number.isFinite,q.encodeURIComponent=encodeURIComponent,q.decodeURIComponent=decodeURIComponent;for(let[Q,Z]of Object.entries(J)){if(Q.startsWith("__")||M.some(($)=>$.test(Q)))continue;if(Z&&typeof Z==="object"&&!Array.isArray(Z))q[Q]=G(Z);else q[Q]=Z}return q}function G(J,q=0){if(q>=B.maxSanitizeDepth)return"[Object too deep]";if(J===null||typeof J!=="object")return J;if(Array.isArray(J))return J.map((Z)=>G(Z,q+1));if(J instanceof Date||J instanceof RegExp||J instanceof Map||J instanceof Set||J instanceof Error)return J;let Q={};for(let[Z,$]of Object.entries(J)){if(Z.startsWith("__")||Z==="constructor"||Z==="prototype")continue;if($&&typeof $==="object")Q[Z]=G($,q+1);else Q[Z]=$}return Q}function P(J,q){try{let Q=T(q),Z=Object.keys(Q),$=Object.values(Q);return h(J,Z)(...$)}catch{return}}function y(J){try{return z(J),!0}catch{return!1}}function E(J){try{return z(J),null}catch(q){return q instanceof Error?q.message:String(q)}}function m(J,q){try{let Q=P(J,q);return Boolean(Q)}catch{return!1}}function u(J,q){try{let Q=P(J,q);if(Array.isArray(Q))return Q;if(Q&&typeof Q==="object"&&"length"in Q){let Z=Q.length;if(typeof Z==="number"&&Number.isFinite(Z)&&Z>=0&&Number.isInteger(Z))return Array.from(Q)}return[]}catch{return[]}}function f(J,q){try{let Q=P(J,q);if(Q&&typeof Q==="object"&&!Array.isArray(Q))return Q;return{}}catch{return{}}}var v=new Set(["break","case","catch","class","const","continue","debugger","default","delete","do","else","enum","export","extends","false","finally","for","function","if","import","in","instanceof","new","null","return","super","switch","this","throw","true","try","typeof","var","void","while","with","yield","let","static","implements","interface","package","private","protected","public","arguments","eval","await"]);function h(J,q){let Q=z(J),Z=/^[A-Za-z_$][\w$]*$/,$=[],H=[];for(let X=0;X<q.length;X++){let V=q[X];if(!Z.test(V))continue;if(v.has(V))continue;$.push(X),H.push(V)}let W=(X)=>Function(...H,...X,`
3
- 'use strict';
4
- try {
5
- return ${Q};
6
- }
7
- catch (e) {
8
- if (e instanceof TypeError) {
9
- return undefined;
10
- }
11
- throw e;
12
- }
13
- `),Y=W([]);if(H.length===q.length)return O(Y,H,W);return O((...X)=>{let V=Array($.length);for(let w=0;w<$.length;w++)V[w]=X[$[w]];return Y(...V)},H,W,(X)=>{Y=W(X)})}function O(J,q,Q,Z){let H=/^(\w+) is not defined$/,W=J,Y=[],U=new Set(q);return(...X)=>{for(let V=0;V<=8;V++)try{return W(...X)}catch(w){let _=w instanceof Error?w.message:"",F=H.exec(_);if(!(w instanceof ReferenceError)||!F)return;let L=F[1];if(U.has(L)||v.has(L))return;U.add(L),Y.push(L),W=Q(Y),Z?.(Y)}return}}var I=65536;function l(J,q){try{if(typeof J!=="string")return;if(J.length>I)throw Error(`safeEvaluateCode: input exceeds ${I} chars`);for(let W of M)if(W.test(J))throw Error("Potentially unsafe code detected");let Q=T(q),Z=Object.keys(Q),$=Object.values(Q);return Function(...Z,`
14
- 'use strict';
15
- ${J}
16
- `)(...$)}catch{return}}function S(J){let q=J.trim(),Q=[/\beval\s*\(/i,/\bFunction\s*\(/i,/\bimport\s*\(/i,/\brequire\s*\(/i,/\bprocess\b/i,/\b__proto__\b/i,/\bconstructor\s*[.(]/i,/\bglobalThis\b/i,/\bwindow\b/i,/\bdocument\b/i,/\bfetch\s*\(/i,/\bBun\b/i,/\bDeno\b/i,/\bconsole\b/i,/\bthis\b/i,/\bReflect\b/i,/\bProxy\b/i,/\bprototype\b/i,/\.(bind|call|apply)\s*\(/i];for(let Z of Q)if(Z.test(q))return!1;return!0}function d(J,q,Q,Z,$=1000){if(!S(q))throw Error(`Unsafe expression in @${J}: ${q}`);let H=Q.replace(/`/g,"\\`").replace(/\$\{/g,"\\${").replace(/\{\{([^}]+)\}\}/g,(W,Y)=>{return`\${${Y}}`});if(J==="for")return Function(...Z,`
17
- 'use strict';
18
- let result = '';
19
- for (${q}) {
20
- result += \`${H}\`;
21
- }
22
- return result;
23
- // eslint-disable-next-line pickier/no-unused-vars
24
- `);else return Function(...Z,`
25
- 'use strict';
26
- let result = '';
27
- let __safeCounter = 0;
28
- const __maxIterations = ${$};
29
- while (${q} && __safeCounter < __maxIterations) {
30
- __safeCounter++;
31
- result += \`${H}\`;
32
- }
33
- // Surface the truncation both inline (for end users) and via
34
- // console.warn (for developers running \`stx dev\`). A silent cut-off
35
- // made pages render half a list with no breadcrumb.
36
- if (__safeCounter >= __maxIterations) {
37
- result += '<!-- [Loop Error]: Maximum iterations exceeded -->';
38
- if (typeof console !== 'undefined' && typeof console.warn === 'function') {
39
- console.warn('[stx] @while loop hit max iterations (' + __maxIterations + '); template output was truncated. Raise via createSafeForLoop(..., maxIterations) if intentional.');
40
- }
41
- }
42
- return result;
43
- // eslint-disable-next-line pickier/no-unused-vars
44
- `)}
45
- export{g as kz,C as lz,b as mz,z as nz,T as oz,P as pz,y as qz,E as rz,m as sz,u as tz,f as uz,h as vz,l as wz,S as xz,d as yz};
@@ -1,3 +0,0 @@
1
- // @bun
2
- import{wy as T}from"./chunk-yb1t2h8h.js";import{qz as j,vz as O}from"./chunk-w3b6m427.js";function b(z,H){let X=z,F=/@json\s*\(/g,Y;while((Y=F.exec(X))!==null){let J=Y.index,v=J+Y[0].length-1,K=1,q=v+1,w=null,U=!1;while(q<X.length&&K>0){let G=X[q];if(U){U=!1,q++;continue}if(G==="\\"&&w){U=!0,q++;continue}if(w){if(G===w)w=null;q++;continue}if(G==='"'||G==="'"||G==="`"){w=G,q++;continue}if(G==="(")K++;else if(G===")"){if(K--,K===0)break}q++}if(K!==0)break;let V=X.substring(v+1,q).trim(),_=X.substring(J,q+1),W=-1,Z=0,$=null,R=!1;for(let G=0;G<V.length;G++){let B=V[G];if(R){R=!1;continue}if(B==="\\"&&$){R=!0;continue}if($){if(B===$)$=null;continue}if(B==='"'||B==="'"||B==="`"){$=B;continue}if(B==="("||B==="["||B==="{")Z++;else if(B===")"||B==="]"||B==="}")Z--;if(B===","&&Z===0){W=G;break}}let A=W>=0?V.substring(0,W).trim():V,L=W>=0?V.substring(W+1).trim():void 0;try{let G=A.trim(),B;if(j(G))B=O(G,Object.keys(H))(...Object.values(H));else B=void 0;let y;if(L==="true")y=JSON.stringify(B,null,2);else y=JSON.stringify(B);let N=y.replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/&/g,"\\u0026").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029");X=X.substring(0,J)+N+X.substring(q+1),F.lastIndex=J+N.length}catch(G){T.log(G instanceof Error?G:Error(String(G)),{directive:"@json"},"error"),F.lastIndex=J+_.length}}return X}function S(z){return z.replace(/@once\s*([\s\S]*?)@endonce/g,"$1")}function x(z){let H=z,X=/@memo\s*\(/g,F,Y=[];while((F=X.exec(H))!==null){let J=F.index,v=J+F[0].length,K=1,q=v;while(q<H.length&&K>0){if(H[q]==="(")K++;else if(H[q]===")")K--;q++}if(K!==0)continue;let w=H.slice(v,q-1).trim(),U=q,V=H.slice(U),_=V.indexOf("@endmemo");if(_===-1)continue;let W=V.slice(0,_),Z=U+_+8,$=W.match(/^(\s*(?:(?:<!--[\s\S]*?-->|\x00STX_HTML_COMMENT_\d+\x00)\s*)*)/),R=$?$[0].length:0,A=W.slice(R),L=W.match(/(\s*)$/),G=L?L[0].length:0,B=A.slice(0,A.length-G),y=B.match(/^<([a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*?)?(\/?)>/),N;if(y){let[P,D,E="",Q]=y,k=`<${D}${E} data-stx-memo="${w}"${Q}>`;N=W.slice(0,R)+k+B.slice(P.length)+W.slice(R+B.length)}else N=`${W.slice(0,R)}<div data-stx-memo="${w}">${B}</div>${W.slice(R+B.length)}`;Y.push({start:J,end:Z,replacement:N}),X.lastIndex=Z}for(let J=Y.length-1;J>=0;J--){let v=Y[J];H=H.slice(0,v.start)+v.replacement+H.slice(v.end)}return H.replace(/@memo="([^"]*)"/g,'data-stx-memo="$1"')}function I(z){let H=z.replace(/@ref="([^"]+)"/g,'data-stx-ref="$1"');return H=H.replace(/(<[a-zA-Z][a-zA-Z0-9-]*\b[^>]*?)\sref="([^"]+)"/g,'$1 data-stx-ref="$2"'),H}function u(z){let X=new RegExp("<(div|span|p|h[1-6]|td|th|li|a|button|label|section|article|header|footer|main|nav|aside|dd|dt|figcaption|summary|caption|blockquote|pre|code|em|strong|small|sub|sup|time|mark|abbr|cite|q|s|u|b|i)\\b","gi"),F="",Y=0,J;while((J=X.exec(z))!==null){let v=J.index,K=v+J[0].length,q=!1,w=!1,U=-1;while(K<z.length){let $=z[K];if(q){if($==="'")q=!1}else if(w){if($==='"')w=!1}else if($==="'")q=!0;else if($==='"')w=!0;else if($===">"){U=K;break}K++}if(U===-1)continue;if(z.slice(v,U+1).includes("x-cloak"))continue;let _=z.slice(U+1),W=_.indexOf("</"),Z=W>=0?_.slice(0,W):_.slice(0,200);if(/\{\{[\s\S]*?\}\}/.test(Z))F+=z.slice(Y,U)+" x-cloak>",Y=U+1}return F+=z.slice(Y),F}var M=/(?:^|\s)(?::else-if|:if|:else|:show|x-else-if|x-if|x-else|x-show|@if|@show)(?:=|\s|\/|>|$)/;function m(z){let H=/<[a-z][\w-]*/gi,X="",F=0,Y;while((Y=H.exec(z))!==null){let J=Y.index,v=Y[0].slice(1).toLowerCase();if(v==="script"||v==="style"){let Z=`</${v}>`,$=z.toLowerCase().indexOf(Z,J);if($!==-1)H.lastIndex=$+Z.length;continue}let K=J+Y[0].length,q=!1,w=!1,U=-1;while(K<z.length){let Z=z[K];if(q){if(Z==="'")q=!1}else if(w){if(Z==='"')w=!1}else if(Z==="'")q=!0;else if(Z==='"')w=!0;else if(Z===">"){U=K;break}K++}if(U===-1)continue;let V=z.slice(J+Y[0].length,U);if(/(?:^|\s)x-cloak(?:=|\s|\/|>|$)/.test(V))continue;if(!M.test(V))continue;let _=z[U-1]==="/",W=_?U-1:U;X+=`${z.slice(F,W)} x-cloak${_?" ":""}`,F=W}return X+=z.slice(F),X}
3
- export{b as iu,S as ju,x as ku,I as lu,u as mu,m as nu};
@@ -1,138 +0,0 @@
1
- // @bun
2
- function A(h,j,f){let x=z(h,j);return{type:h,message:j,suggestions:x,...f}}function z(h,j){let f=[];switch(h){case"parse_error":f.push("Check for syntax errors in your .story.stx file"),f.push("Ensure all tags are properly closed"),f.push("Verify that <Story> and <Variant> components are used correctly");break;case"component_error":f.push("Check that the component file exists"),f.push("Verify the import path is correct"),f.push("Ensure all required props are provided");break;case"render_error":f.push("Check the browser console for more details"),f.push("Verify that all dependencies are available"),f.push("Try simplifying the component to isolate the issue");break;case"config_error":f.push("Check your stx.config.ts file for syntax errors"),f.push("Verify that all required config options are set"),f.push("Try using the default configuration");break;case"file_not_found":f.push("Check that the file path is correct"),f.push("Verify the file exists in the specified location"),f.push("Check for case sensitivity in the file path");break;case"circular_dependency":f.push("Review your component imports for circular references"),f.push("Consider restructuring your components"),f.push("Use lazy loading for problematic dependencies");break;case"prop_type_error":if(f.push("Check that the prop value matches the expected type"),f.push("Review the component's prop definitions"),j.includes("required"))f.push("Ensure all required props are provided");break;default:f.push("Check the console for more details"),f.push("Try restarting the story server"),f.push("Report this issue if it persists")}return f}function B(h){let j=[];if(j.push(`\u274C ${q(h.type)}`),j.push(""),j.push(h.message),j.push(""),h.file){let f=`\uD83D\uDCC1 ${h.file}`;if(h.line){if(f+=`:${h.line}`,h.column)f+=`:${h.column}`}j.push(f),j.push("")}if(h.suggestions&&h.suggestions.length>0){j.push("\uD83D\uDCA1 Suggestions:");for(let f of h.suggestions)j.push(` \u2022 ${f}`);j.push("")}return j.join(`
3
- `)}function q(h){return{parse_error:"Parse Error",component_error:"Component Error",render_error:"Render Error",config_error:"Configuration Error",file_not_found:"File Not Found",circular_dependency:"Circular Dependency",prop_type_error:"Prop Type Error",unknown:"Unknown Error"}[h]}function D(h){let j=h.suggestions?h.suggestions.map((f)=>`<li>${k(f)}</li>`).join(""):"";return`
4
- <div class="stx-error">
5
- <div class="stx-error-header">
6
- <span class="stx-error-icon">\u274C</span>
7
- <span class="stx-error-title">${q(h.type)}</span>
8
- </div>
9
- <div class="stx-error-message">${k(h.message)}</div>
10
- ${h.file?`
11
- <div class="stx-error-location">
12
- \uD83D\uDCC1 ${k(h.file)}${h.line?`:${h.line}`:""}${h.column?`:${h.column}`:""}
13
- </div>
14
- `:""}
15
- ${j?`
16
- <div class="stx-error-suggestions">
17
- <div class="stx-error-suggestions-title">\uD83D\uDCA1 Suggestions:</div>
18
- <ul>${j}</ul>
19
- </div>
20
- `:""}
21
- <div class="stx-error-actions">
22
- <button onclick="window.__stxStory.dismissError()">Dismiss</button>
23
- <button onclick="window.__stxStory.retryRender()">Retry</button>
24
- </div>
25
- </div>
26
- `}function F(){return`
27
- .stx-error {
28
- background: #fef2f2;
29
- border: 1px solid #fecaca;
30
- border-radius: 8px;
31
- padding: 16px;
32
- margin: 16px;
33
- font-family: var(--font-family);
34
- }
35
- .dark .stx-error {
36
- background: #450a0a;
37
- border-color: #7f1d1d;
38
- }
39
- .stx-error-header {
40
- display: flex;
41
- align-items: center;
42
- gap: 8px;
43
- margin-bottom: 12px;
44
- }
45
- .stx-error-icon {
46
- font-size: 20px;
47
- }
48
- .stx-error-title {
49
- font-weight: 600;
50
- font-size: 16px;
51
- color: #dc2626;
52
- }
53
- .dark .stx-error-title {
54
- color: #f87171;
55
- }
56
- .stx-error-message {
57
- color: #991b1b;
58
- margin-bottom: 12px;
59
- font-family: var(--code-font-family);
60
- font-size: 13px;
61
- white-space: pre-wrap;
62
- }
63
- .dark .stx-error-message {
64
- color: #fca5a5;
65
- }
66
- .stx-error-location {
67
- color: #6b7280;
68
- font-size: 12px;
69
- margin-bottom: 12px;
70
- }
71
- .stx-error-suggestions {
72
- margin-bottom: 12px;
73
- }
74
- .stx-error-suggestions-title {
75
- font-weight: 500;
76
- margin-bottom: 8px;
77
- color: #374151;
78
- }
79
- .dark .stx-error-suggestions-title {
80
- color: #d1d5db;
81
- }
82
- .stx-error-suggestions ul {
83
- margin: 0;
84
- padding-left: 20px;
85
- color: #4b5563;
86
- font-size: 13px;
87
- }
88
- .dark .stx-error-suggestions ul {
89
- color: #9ca3af;
90
- }
91
- .stx-error-suggestions li {
92
- margin-bottom: 4px;
93
- }
94
- .stx-error-actions {
95
- display: flex;
96
- gap: 8px;
97
- margin-top: 16px;
98
- }
99
- .stx-error-actions button {
100
- padding: 8px 16px;
101
- border: 1px solid #d1d5db;
102
- border-radius: 4px;
103
- background: white;
104
- color: #374151;
105
- cursor: pointer;
106
- font-size: 13px;
107
- }
108
- .stx-error-actions button:hover {
109
- background: #f3f4f6;
110
- }
111
- .dark .stx-error-actions button {
112
- background: #374151;
113
- border-color: #4b5563;
114
- color: #f3f4f6;
115
- }
116
- .dark .stx-error-actions button:hover {
117
- background: #4b5563;
118
- }
119
- `}function G(h,j){return`
120
- <div class="stx-error-boundary" data-component="${k(j)}">
121
- ${h}
122
- </div>
123
- <script>
124
- (function() {
125
- const boundary = document.currentScript.previousElementSibling;
126
- window.addEventListener('error', function(e) {
127
- if (boundary.contains(e.target)) {
128
- boundary.innerHTML = window.__stxStory.renderError({
129
- type: 'render_error',
130
- message: e.message,
131
- file: '${k(j)}'
132
- });
133
- }
134
- });
135
- })();
136
- </script>
137
- `}function k(h){return h.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}
138
- export{A as Ea,B as Fa,D as Ga,F as Ha,G as Ia};
@@ -1,3 +0,0 @@
1
- // @bun
2
- var X={enabled:!0,widths:[320,640,768,1024,1280,1536,1920],formats:["webp","jpeg"],quality:80,devOptimize:!1,cacheDir:".stx/image-cache",placeholder:"none",inputDirs:["public","src/assets","assets"],outputDir:"dist/images",baseUrl:"/images"};
3
- export{X as $l};
@@ -1,12 +0,0 @@
1
- // @bun
2
- import{gz as i}from"./chunk-gz5fmp3q.js";function r(e,t){if(e.serverDynamic[t]!==void 0)return String(e.serverDynamic[t]);let a=e.static[t];if(typeof a==="string")return a;return}var o={sm:"16rem",md:"24rem",lg:"32rem",xl:"40rem"},v={name:"StxDrawer",aliases:["stx-drawer"],render(e,t,a){let n=r(e,"id");if(!n)return console.warn('[stx] <StxDrawer> requires an "id" prop'),"<!-- StxDrawer: missing id prop -->";let d=i(n),l=r(e,"side")||"right",c=r(e,"size")||"md",p=r(e,"closeOnBackdrop")!=="false",w=r(e,"closeOnEscape")!=="false",f=r(e,"overlay")!=="false",x=o[c]||o.md,s=l==="left",m=s?"left:0":"right:0",g=s?"translateX(-100%)":"translateX(100%)",u=s?"stx-drawer-slide-left":"stx-drawer-slide-right";return`<div id="stx-drawer-${d}" class="stx-drawer-backdrop" data-stx-drawer="${d}" data-close-backdrop="${p}" data-close-escape="${w}" style="display:none;position:fixed;inset:0;z-index:99999;${f?"background:rgba(0,0,0,0.5);backdrop-filter:blur(2px)":"background:transparent;pointer-events:none"};opacity:0;transition:opacity 0.2s ease" role="dialog" aria-modal="true">
3
- <div class="stx-drawer-panel" style="position:fixed;top:0;bottom:0;${m};width:${x};max-width:100vw;transform:${g};transition:transform 0.3s cubic-bezier(0.4,0,0.2,1);background:var(--stx-drawer-bg,#fff);color:var(--stx-drawer-text,#1f2937);box-shadow:0 20px 60px rgba(0,0,0,0.3);overflow-y:auto;pointer-events:auto">
4
- <div style="padding:1.5rem">${t}</div>
5
- </div>
6
- </div>
7
- <style>
8
- @media(prefers-color-scheme:dark){[data-stx-drawer]{--stx-drawer-bg:#1f2937;--stx-drawer-text:#f3f4f6}}
9
- .stx-drawer-backdrop[data-stx-drawer-open]{display:block!important;opacity:1}
10
- .stx-drawer-backdrop[data-stx-drawer-open] .stx-drawer-panel{transform:translateX(0)}
11
- </style>`}};
12
- export{v as cz};
@@ -1,81 +0,0 @@
1
- // @bun
2
- import{pB as T}from"./chunk-xv34zbp4.js";import W from"fs";import F from"path";async function x(j,N={}){let Z=performance.now(),{update:q=!1,threshold:$=0.1,snapshotDir:X=F.join(j.root,".stx","story","snapshots"),width:K=800,height:b=600,deviceScaleFactor:O=1,filter:A}=N,J={total:0,passed:0,failed:0,new:0,failures:[],duration:0};await W.promises.mkdir(X,{recursive:!0});let _;try{_=await import("very-happy-dom")}catch{return console.warn("very-happy-dom not installed, using fallback HTML comparison"),v(j,N)}let{HtmlRenderer:Y,ImageDiff:M}=_,k=new Y,C=new M,R=A?j.storyFiles.filter((Q)=>A.some((U)=>Q.fileName.includes(U))):j.storyFiles;for(let Q of R){let U=Q.story?.variants||[{id:"default",title:"Default",state:{}}];for(let B of U){J.total++;let V=F.join(X,`${Q.fileName}-${B.id}.png`),g=F.join(X,`${Q.fileName}-${B.id}.actual.png`),w=F.join(X,`${Q.fileName}-${B.id}.diff.png`);try{let G=await H(j,Q,B.id),I=await k.render(G,{width:K,height:b,deviceScaleFactor:O,format:"png"}),z=await D(V);if(q||!z){if(await W.promises.writeFile(V,I.data),!z)J.new++;J.passed++}else{let P=await W.promises.readFile(V),L=await C.compare(P,I.data,{threshold:$});if(L.match)J.passed++,await E(g),await E(w);else{if(J.failed++,await W.promises.writeFile(g,I.data),L.diffImage)await W.promises.writeFile(w,L.diffImage);J.failures.push({storyId:Q.id,variantId:B.id,component:Q.fileName,message:`Visual difference: ${L.diffPercentage.toFixed(2)}% pixels differ`,baselinePath:V,actualPath:g,diffPath:w,diffPercentage:L.diffPercentage})}}}catch(G){J.failed++,J.failures.push({storyId:Q.id,variantId:B.id,component:Q.fileName,message:G instanceof Error?G.message:String(G)})}}}return J.duration=performance.now()-Z,J}async function v(j,N){let Z=performance.now(),{update:q=!1,snapshotDir:$=F.join(j.root,".stx","story","snapshots"),filter:X}=N,K={total:0,passed:0,failed:0,new:0,failures:[],duration:0};await W.promises.mkdir($,{recursive:!0});let b=X?j.storyFiles.filter((O)=>X.some((A)=>O.fileName.includes(A))):j.storyFiles;for(let O of b){let A=O.story?.variants||[{id:"default",title:"Default",state:{}}];for(let J of A){K.total++;let _=F.join($,`${O.fileName}-${J.id}.html`);try{let Y=await H(j,O,J.id),M=await D(_);if(q||!M){if(await W.promises.writeFile(_,Y),!M)K.new++;K.passed++}else{let k=await W.promises.readFile(_,"utf-8"),C=S(k),R=S(Y);if(C===R)K.passed++;else K.failed++,K.failures.push({storyId:O.id,variantId:J.id,component:O.fileName,message:"HTML content differs from baseline",baselinePath:_})}}catch(Y){K.failed++,K.failures.push({storyId:O.id,variantId:J.id,component:O.fileName,message:Y instanceof Error?Y.message:String(Y)})}}}return K.duration=performance.now()-Z,K}async function H(j,N,Z){try{let{renderStoryVariant:q,generatePreviewDocument:$}=await import("./story/renderer.js"),X=await q(j,N,Z);return $(X,{title:N.fileName})}catch{let q=await W.promises.readFile(N.path,"utf-8");return`<!DOCTYPE html><html><head><title>${N.fileName}</title></head><body>${q}</body></html>`}}function S(j){return j.replace(/\s+/g," ").replace(/>\s+</g,"><").trim()}async function D(j){try{return await W.promises.access(j),!0}catch{return!1}}async function E(j){try{await W.promises.unlink(j)}catch{}}function y(j){let N=j.failed>0?"failed":"passed",Z=j.failures.map((q)=>`
3
- <tr class="failure-row">
4
- <td>${q.component}</td>
5
- <td>${q.variantId}</td>
6
- <td>${q.message}</td>
7
- <td>${q.diffPercentage?`${q.diffPercentage.toFixed(2)}%`:"-"}</td>
8
- <td>
9
- ${q.baselinePath?`<a href="file://${q.baselinePath}">Baseline</a>`:""}
10
- ${q.actualPath?`<a href="file://${q.actualPath}">Actual</a>`:""}
11
- ${q.diffPath?`<a href="file://${q.diffPath}">Diff</a>`:""}
12
- </td>
13
- </tr>
14
- `).join("");return`<!DOCTYPE html>
15
- <html>
16
- <head>
17
- <title>Visual Test Report</title>
18
- <style>
19
- body { font-family: -apple-system, sans-serif; padding: 20px; }
20
- .summary { padding: 20px; border-radius: 8px; margin-bottom: 20px; }
21
- .summary.passed { background: #d4edda; }
22
- .summary.failed { background: #f8d7da; }
23
- .stats { display: flex; gap: 20px; margin-top: 10px; }
24
- .stat { text-align: center; }
25
- .stat-value { font-size: 24px; font-weight: bold; }
26
- table { width: 100%; border-collapse: collapse; }
27
- th, td { padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }
28
- th { background: #f5f5f5; }
29
- .failure-row { background: #fff5f5; }
30
- a { color: #3b82f6; }
31
- </style>
32
- </head>
33
- <body>
34
- <h1>Visual Test Report</h1>
35
-
36
- <div class="summary ${N}">
37
- <h2>${j.failed>0?"\u274C Tests Failed":"\u2705 All Tests Passed"}</h2>
38
- <div class="stats">
39
- <div class="stat">
40
- <div class="stat-value">${j.total}</div>
41
- <div>Total</div>
42
- </div>
43
- <div class="stat">
44
- <div class="stat-value">${j.passed}</div>
45
- <div>Passed</div>
46
- </div>
47
- <div class="stat">
48
- <div class="stat-value">${j.failed}</div>
49
- <div>Failed</div>
50
- </div>
51
- <div class="stat">
52
- <div class="stat-value">${j.new}</div>
53
- <div>New</div>
54
- </div>
55
- <div class="stat">
56
- <div class="stat-value">${j.duration.toFixed(0)}ms</div>
57
- <div>Duration</div>
58
- </div>
59
- </div>
60
- </div>
61
-
62
- ${j.failures.length>0?`
63
- <h2>Failures</h2>
64
- <table>
65
- <thead>
66
- <tr>
67
- <th>Component</th>
68
- <th>Variant</th>
69
- <th>Message</th>
70
- <th>Diff %</th>
71
- <th>Images</th>
72
- </tr>
73
- </thead>
74
- <tbody>
75
- ${Z}
76
- </tbody>
77
- </table>
78
- `:""}
79
- </body>
80
- </html>`}
81
- export{x as F,y as G};