@stacksjs/stx 0.2.94 → 0.2.96

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (614) hide show
  1. package/dist/a11y.js +598 -2
  2. package/dist/analytics.js +159 -2
  3. package/dist/analyzer.js +240 -2
  4. package/dist/animation.js +688 -2
  5. package/dist/app-shell.js +220 -2
  6. package/dist/app.js +79 -2
  7. package/dist/assets.js +155 -2
  8. package/dist/ast.js +630 -2
  9. package/dist/async-components.js +428 -2
  10. package/dist/auth.js +12 -2
  11. package/dist/broadcasting.js +102 -2
  12. package/dist/browser-composables.js +565 -2
  13. package/dist/build-assets.js +29 -2
  14. package/dist/build-mode-detector.js +50 -2
  15. package/dist/build-optimizer.js +433 -2
  16. package/dist/build-views.js +180 -2
  17. package/dist/build.js +33 -2
  18. package/dist/builtins/drawer.js +37 -2
  19. package/dist/builtins/escape.js +3 -2
  20. package/dist/builtins/icon.js +83 -2
  21. package/dist/builtins/index.js +34 -2
  22. package/dist/builtins/modal.js +38 -2
  23. package/dist/builtins/safe-image.js +51 -2
  24. package/dist/builtins/stx-image.js +200 -2
  25. package/dist/builtins/stx-link.js +41 -2
  26. package/dist/builtins/stx-loading-indicator.js +35 -2
  27. package/dist/builtins/suspense.js +24 -2
  28. package/dist/builtins/toast.js +42 -2
  29. package/dist/builtins/tooltip.js +106 -2
  30. package/dist/builtins/transition-group.js +22 -2
  31. package/dist/bundle-analyzer/collector.js +233 -2
  32. package/dist/bundle-analyzer/index.js +82 -2
  33. package/dist/bundle-analyzer/report.js +318 -2
  34. package/dist/bundle-analyzer/treemap.js +594 -2
  35. package/dist/caching.js +131 -2
  36. package/dist/cli.js +11317 -10982
  37. package/dist/client/directive.js +14 -2
  38. package/dist/client/index.js +2 -2
  39. package/dist/client-helpers.js +312 -2
  40. package/dist/client-script-bundler.js +216 -6
  41. package/dist/client-script.js +754 -2
  42. package/dist/client.js +73 -4
  43. package/dist/component-hmr.js +585 -2
  44. package/dist/component-library.d.ts +6 -0
  45. package/dist/component-library.js +683 -0
  46. package/dist/component-processing.js +613 -2
  47. package/dist/component-registry.js +90 -2
  48. package/dist/component-renderer.js +660 -2
  49. package/dist/components.js +213 -2
  50. package/dist/composables/index.js +220 -2
  51. package/dist/composables/use-battery.js +101 -2
  52. package/dist/composables/use-broadcast-channel.js +80 -2
  53. package/dist/composables/use-channel.js +124 -2
  54. package/dist/composables/use-clipboard.js +79 -2
  55. package/dist/composables/use-color-mode.js +131 -2
  56. package/dist/composables/use-cookie.js +86 -2
  57. package/dist/composables/use-device-orientation.js +181 -2
  58. package/dist/composables/use-event-listener.js +27 -2
  59. package/dist/composables/use-event-source.js +166 -2
  60. package/dist/composables/use-eye-dropper.js +142 -2
  61. package/dist/composables/use-fetch.js +223 -2
  62. package/dist/composables/use-fullscreen.js +110 -2
  63. package/dist/composables/use-geolocation.js +101 -2
  64. package/dist/composables/use-idle.js +182 -2
  65. package/dist/composables/use-intersection-observer.js +168 -2
  66. package/dist/composables/use-keyboard.js +224 -2
  67. package/dist/composables/use-media-query.js +62 -2
  68. package/dist/composables/use-meta.js +48 -2
  69. package/dist/composables/use-mouse.js +286 -2
  70. package/dist/composables/use-mutation-observer.js +129 -2
  71. package/dist/composables/use-network.js +85 -2
  72. package/dist/composables/use-notification.js +94 -2
  73. package/dist/composables/use-permissions.js +132 -2
  74. package/dist/composables/use-query.js +0 -1
  75. package/dist/composables/use-resize-observer.js +157 -2
  76. package/dist/composables/use-router.js +51 -2
  77. package/dist/composables/use-share.js +104 -2
  78. package/dist/composables/use-speech.js +294 -2
  79. package/dist/composables/use-storage.js +130 -2
  80. package/dist/composables/use-text-selection.js +205 -4
  81. package/dist/composables/use-timer.js +183 -2
  82. package/dist/composables/use-utilities.js +176 -2
  83. package/dist/composables/use-wake-lock.js +122 -2
  84. package/dist/composables/use-websocket.js +165 -2
  85. package/dist/composables/use-window.js +163 -2
  86. package/dist/composables.js +552 -2
  87. package/dist/composition-api.js +190 -2
  88. package/dist/computed.js +376 -8
  89. package/dist/conditionals.js +599 -2
  90. package/dist/config.js +751 -2
  91. package/dist/craft-bridge.js +432 -2
  92. package/dist/craft-compiler.js +810 -2
  93. package/dist/craft-components.js +945 -2
  94. package/dist/craft-entry.js +5 -2
  95. package/dist/craft-ssr.js +559 -2
  96. package/dist/csp.js +220 -2
  97. package/dist/csrf.js +38 -2
  98. package/dist/custom-directives.js +136 -2
  99. package/dist/defer.js +156 -2
  100. package/dist/deploy/config-generators.js +214 -2
  101. package/dist/deploy/index.js +203 -2
  102. package/dist/deploy/netlify.js +167 -2
  103. package/dist/dev-server/crosswind.js +379 -2
  104. package/dist/dev-server/index.js +7 -2
  105. package/dist/dev-server/keyboard-shortcuts.js +81 -2
  106. package/dist/dev-server/native-window.js +91 -2
  107. package/dist/dev-server/port-utils.js +40 -2
  108. package/dist/dev-server/serve-app.js +682 -7
  109. package/dist/dev-server/serve-file.js +439 -7
  110. package/dist/dev-server/serve-markdown.js +281 -2
  111. package/dist/dev-server/serve-multi.js +424 -17
  112. package/dist/dev-server/terminal-colors.js +45 -2
  113. package/dist/dev-server/theme-selector.js +111 -2
  114. package/dist/dev-server/types.js +43 -2
  115. package/dist/dev-server.js +4 -2
  116. package/dist/devtools.js +462 -18
  117. package/dist/directive-api.js +355 -2
  118. package/dist/docs.js +567 -2
  119. package/dist/doctor.js +123 -2
  120. package/dist/document-shell.js +105 -2
  121. package/dist/dynamic-components.js +78 -2
  122. package/dist/edge-runtime.js +539 -2
  123. package/dist/env.js +9 -2
  124. package/dist/error-boundaries.js +62 -12
  125. package/dist/error-handling.js +1 -2
  126. package/dist/errors/codes.js +97 -2
  127. package/dist/errors/formatter.js +196 -2
  128. package/dist/errors/index.js +44 -2
  129. package/dist/errors/logger.js +250 -2
  130. package/dist/errors/sanitizer.js +181 -2
  131. package/dist/errors/types.js +86 -2
  132. package/dist/events.js +382 -2
  133. package/dist/expressions.js +650 -2
  134. package/dist/formatter.js +265 -2
  135. package/dist/forms-validation.js +510 -4
  136. package/dist/forms.js +709 -2
  137. package/dist/head.js +224 -2
  138. package/dist/heatmap.js +566 -2
  139. package/dist/hot-reload.js +367 -2
  140. package/dist/html-masking.js +73 -2
  141. package/dist/hydration-runtime.js +195 -2
  142. package/dist/hydration.js +654 -2
  143. package/dist/i18n.js +633 -2
  144. package/dist/image-optimization/auto-sibling.js +88 -2
  145. package/dist/image-optimization/build-plugin.js +241 -2
  146. package/dist/image-optimization/component.js +244 -2
  147. package/dist/image-optimization/directive.js +203 -2
  148. package/dist/image-optimization/index.js +54 -2
  149. package/dist/image-optimization/processor.js +262 -2
  150. package/dist/image-optimization/serve.js +102 -2
  151. package/dist/includes.js +733 -2
  152. package/dist/index.d.ts +1 -0
  153. package/dist/index.js +134 -2
  154. package/dist/init.js +505 -2
  155. package/dist/inline-assets.js +82 -2
  156. package/dist/interactive.js +383 -2
  157. package/dist/internal-markdown.js +141 -2
  158. package/dist/island-chunking.js +52 -2
  159. package/dist/js-ts.js +57 -2
  160. package/dist/jsx-runtime.js +289 -2
  161. package/dist/keep-alive.js +421 -2
  162. package/dist/lazy-loader.js +245 -2
  163. package/dist/loading-indicator.js +322 -2
  164. package/dist/loops.js +643 -2
  165. package/dist/manifest.js +31 -2
  166. package/dist/markdown.js +68 -2
  167. package/dist/media/client/blur-up.js +217 -2
  168. package/dist/media/client/index.js +53 -2
  169. package/dist/media/client/lazy-load.js +283 -2
  170. package/dist/media/client/upload-handler.js +354 -2
  171. package/dist/media/image/component.js +574 -2
  172. package/dist/media/image/directive.js +160 -2
  173. package/dist/media/image/editing.js +193 -2
  174. package/dist/media/image/index.js +80 -2
  175. package/dist/media/image/placeholder.js +188 -2
  176. package/dist/media/image/processor/cache.js +51 -2
  177. package/dist/media/image/processor/index.js +3 -2
  178. package/dist/media/image/processor/optimizer.js +202 -2
  179. package/dist/media/image/processor/responsive.js +162 -2
  180. package/dist/media/image/srcset.js +194 -2
  181. package/dist/media/index.js +198 -2
  182. package/dist/media/manager/embed.js +253 -2
  183. package/dist/media/protected/component.js +235 -2
  184. package/dist/media/protected/index.js +20 -2
  185. package/dist/media/protected/signature.js +205 -2
  186. package/dist/media/shared/cache.js +132 -2
  187. package/dist/media/shared/hash.js +35 -2
  188. package/dist/media/shared/index.js +2 -2
  189. package/dist/media/types.js +0 -1
  190. package/dist/media/upload/component.js +320 -2
  191. package/dist/media/upload/index.js +1 -2
  192. package/dist/media/video/directive.js +142 -2
  193. package/dist/media/video/index.js +583 -2
  194. package/dist/media/video/processor/cache.js +52 -2
  195. package/dist/media/video/processor/index.js +4 -2
  196. package/dist/media/video/processor/streaming.js +197 -2
  197. package/dist/media/video/processor/thumbnail.js +134 -2
  198. package/dist/media/video/processor/transcoder.js +283 -2
  199. package/dist/method-spoofing.js +17 -2
  200. package/dist/middleware.js +40 -2
  201. package/dist/misc-directives.js +222 -2
  202. package/dist/native-build.js +511 -2
  203. package/dist/parser/directive-parser.js +239 -2
  204. package/dist/parser/expression-parser.js +358 -2
  205. package/dist/parser/index.js +23 -2
  206. package/dist/parser/tokenizer.js +534 -2
  207. package/dist/partial-hydration.js +427 -2
  208. package/dist/performance-utils.js +430 -2
  209. package/dist/placeholder.js +35 -2
  210. package/dist/plugin-system.js +214 -2
  211. package/dist/plugin.js +173 -2
  212. package/dist/precompiler.js +660 -81
  213. package/dist/process.js +711 -2
  214. package/dist/production-build.js +596 -2
  215. package/dist/production-builder.js +132 -2
  216. package/dist/production-server.js +188 -2
  217. package/dist/props.js +224 -2
  218. package/dist/public-env.js +19 -2
  219. package/dist/pwa/audit.js +255 -2
  220. package/dist/pwa/directives.js +332 -2
  221. package/dist/pwa/icons.js +109 -2
  222. package/dist/pwa/index.js +47 -2
  223. package/dist/pwa/inject.js +102 -2
  224. package/dist/pwa/manifest.js +186 -2
  225. package/dist/pwa/offline.js +259 -2
  226. package/dist/pwa/precache.js +116 -2
  227. package/dist/pwa/service-worker.js +860 -2
  228. package/dist/pwa/workbox-strategies.js +167 -2
  229. package/dist/pwa/workbox.js +382 -2
  230. package/dist/pwa.js +427 -427
  231. package/dist/reactive-bindings.js +266 -2
  232. package/dist/reactive.js +569 -2
  233. package/dist/reactivity.js +559 -2
  234. package/dist/release.js +1 -2
  235. package/dist/render.js +165 -2
  236. package/dist/route-middleware.js +17 -2
  237. package/dist/router.js +9 -2
  238. package/dist/routes.js +14 -2
  239. package/dist/runtime-injection.js +120 -2
  240. package/dist/runtime.js +94 -2
  241. package/dist/safe-evaluator.js +444 -2
  242. package/dist/scaffolding.js +897 -2
  243. package/dist/screenshot.js +87 -2
  244. package/dist/script-classifier.js +32 -2
  245. package/dist/script-validation.js +158 -2
  246. package/dist/seo.js +457 -2
  247. package/dist/serve.js +237 -2
  248. package/dist/server-bindings.js +108 -2
  249. package/dist/server-components.js +338 -11
  250. package/dist/signal-processing.js +946 -2
  251. package/dist/signals-api.js +154 -2
  252. package/dist/signals.js +5287 -2
  253. package/dist/site-builder/build.js +224 -2
  254. package/dist/site-builder/i18n.js +140 -2
  255. package/dist/site-builder/index.js +15 -2
  256. package/dist/site-builder/robots.js +26 -2
  257. package/dist/site-builder/router.js +27 -2
  258. package/dist/site-builder/seo.js +36 -2
  259. package/dist/site-builder/sitemap.js +26 -2
  260. package/dist/site-builder/theme.js +33 -2
  261. package/dist/site-builder/types.js +0 -1
  262. package/dist/slots.js +201 -2
  263. package/dist/source-maps.js +350 -2
  264. package/dist/spa-shell.js +34 -2
  265. package/dist/ssg.js +389 -389
  266. package/dist/ssr.js +355 -2
  267. package/dist/state-management.js +533 -2
  268. package/dist/store-imports.js +13 -2
  269. package/dist/store-loader.js +72 -5
  270. package/dist/stores-client.js +132 -2
  271. package/dist/story/addons.js +261 -2
  272. package/dist/story/analytics.js +235 -2
  273. package/dist/story/auto-stories.js +158 -2
  274. package/dist/story/bookmarks.js +277 -2
  275. package/dist/story/bun-test.js +102 -2
  276. package/dist/story/cli.js +155 -2
  277. package/dist/story/collect/analyzer.js +305 -2
  278. package/dist/story/collect/index.js +27 -2
  279. package/dist/story/collect/parser.js +129 -2
  280. package/dist/story/collect/scanner.js +101 -2
  281. package/dist/story/collect/tree.js +110 -2
  282. package/dist/story/commands/build.js +172 -2
  283. package/dist/story/commands/dev.js +78 -2
  284. package/dist/story/commands/index.js +3 -2
  285. package/dist/story/commands/preview.js +56 -2
  286. package/dist/story/compiled-output.js +151 -2
  287. package/dist/story/composition.js +261 -2
  288. package/dist/story/config-watcher.js +67 -2
  289. package/dist/story/config.js +64 -2
  290. package/dist/story/context.js +27 -2
  291. package/dist/story/controls/index.js +320 -2
  292. package/dist/story/crosswind.js +189 -2
  293. package/dist/story/desktop-preview.js +105 -2
  294. package/dist/story/docs-generator.js +186 -2
  295. package/dist/story/errors.js +239 -2
  296. package/dist/story/figma-export.js +224 -2
  297. package/dist/story/generator.js +165 -2
  298. package/dist/story/hmr.js +131 -2
  299. package/dist/story/hot-swap.js +207 -2
  300. package/dist/story/index.js +49 -2
  301. package/dist/story/interactions.js +225 -2
  302. package/dist/story/keyboard-shortcuts.js +345 -2
  303. package/dist/story/output.js +153 -2
  304. package/dist/story/performance.js +252 -2
  305. package/dist/story/presets.js +289 -2
  306. package/dist/story/props-validation.js +215 -2
  307. package/dist/story/renderer.js +209 -2
  308. package/dist/story/search-index.js +106 -2
  309. package/dist/story/search.js +140 -2
  310. package/dist/story/server.js +965 -2
  311. package/dist/story/setup.js +78 -2
  312. package/dist/story/snapshots.js +170 -2
  313. package/dist/story/testing.js +163 -2
  314. package/dist/story/theme.js +170 -2
  315. package/dist/story/types.js +0 -2
  316. package/dist/story/ui/code-panel.js +175 -2
  317. package/dist/story/ui/controls-panel.js +168 -2
  318. package/dist/story/ui/index.js +4 -2
  319. package/dist/story/ui/navigation.js +250 -2
  320. package/dist/story/ui/preview.js +251 -2
  321. package/dist/story/visual-testing.js +247 -2
  322. package/dist/streaming.js +537 -2
  323. package/dist/strict-lint.js +288 -2
  324. package/dist/style-scoping.js +50 -2
  325. package/dist/suspense.js +398 -2
  326. package/dist/teleport.js +109 -2
  327. package/dist/template-compiler.js +63 -2
  328. package/dist/template-hydrator.js +82 -2
  329. package/dist/template-tag-balance.js +93 -2
  330. package/dist/testing.js +581 -2
  331. package/dist/transitions.js +443 -2
  332. package/dist/type-checker.js +581 -2
  333. package/dist/types/component-types.d.ts +54 -0
  334. package/dist/types/component-types.js +0 -1
  335. package/dist/types/config-types.js +0 -1
  336. package/dist/types/context-types.js +0 -1
  337. package/dist/types/csp-types.js +0 -1
  338. package/dist/types/directive-types.js +3 -2
  339. package/dist/types/index.d.ts +5 -0
  340. package/dist/types/index.js +1 -2
  341. package/dist/types/pwa-types.js +0 -1
  342. package/dist/types.js +1 -2
  343. package/dist/typescript-templates.js +386 -4
  344. package/dist/utils.js +942 -2
  345. package/dist/validator.js +171 -2
  346. package/dist/variable-extractor.js +1094 -2
  347. package/dist/view-composers.js +29 -2
  348. package/dist/virtual-scrolling.js +454 -2
  349. package/dist/visual-editor.js +688 -28
  350. package/dist/vue-template.js +475 -2
  351. package/dist/web-components/css-scoping.js +177 -2
  352. package/dist/web-components/index.js +13 -2
  353. package/dist/web-components/reactive-generator.js +121 -56
  354. package/dist/web-components.js +1447 -2
  355. package/dist/x-element.js +17 -5
  356. package/package.json +6 -7
  357. package/dist/chunk-03c26pjz.js +0 -3
  358. package/dist/chunk-04mvcmcr.js +0 -106
  359. package/dist/chunk-05hgyyqc.js +0 -4
  360. package/dist/chunk-095s3972.js +0 -99
  361. package/dist/chunk-0b9w2w1y.js +0 -1
  362. package/dist/chunk-0dz85jrp.js +0 -3
  363. package/dist/chunk-0g4gece6.js +0 -4
  364. package/dist/chunk-0jd0pndq.js +0 -3
  365. package/dist/chunk-0jkwrcwj.js +0 -3
  366. package/dist/chunk-0m9tdm7t.js +0 -71
  367. package/dist/chunk-0qakwen3.js +0 -1
  368. package/dist/chunk-0qnz93q2.js +0 -3
  369. package/dist/chunk-0tatqxj2.js +0 -57
  370. package/dist/chunk-0wdar532.js +0 -102
  371. package/dist/chunk-13yz561y.js +0 -3
  372. package/dist/chunk-174z0cd0.js +0 -3
  373. package/dist/chunk-1mmykse5.js +0 -81
  374. package/dist/chunk-1z2yq9em.js +0 -3
  375. package/dist/chunk-1z5nhbjt.js +0 -90
  376. package/dist/chunk-1zgsgk4b.js +0 -1
  377. package/dist/chunk-25s7bckb.js +0 -171
  378. package/dist/chunk-268adc7r.js +0 -2230
  379. package/dist/chunk-26r6zh3t.js +0 -194
  380. package/dist/chunk-2w3302dh.js +0 -3
  381. package/dist/chunk-2xen423s.js +0 -3
  382. package/dist/chunk-39gm08bn.js +0 -39
  383. package/dist/chunk-3bjtemm6.js +0 -128
  384. package/dist/chunk-3jm3snz8.js +0 -3
  385. package/dist/chunk-3ngm57nt.js +0 -12
  386. package/dist/chunk-3rh7va1z.js +0 -3
  387. package/dist/chunk-3yg9hbmb.js +0 -4
  388. package/dist/chunk-44hd3kab.js +0 -1
  389. package/dist/chunk-46mkpbkk.js +0 -12
  390. package/dist/chunk-48cw2nde.js +0 -2
  391. package/dist/chunk-48r3qe0k.js +0 -3
  392. package/dist/chunk-4aj7ftqb.js +0 -1
  393. package/dist/chunk-4bt81cg3.js +0 -61
  394. package/dist/chunk-4j188175.js +0 -3
  395. package/dist/chunk-4k7d8p8d.js +0 -188
  396. package/dist/chunk-4qq8ffke.js +0 -28
  397. package/dist/chunk-50vqeesm.js +0 -142
  398. package/dist/chunk-52agge4n.js +0 -38
  399. package/dist/chunk-55yp0q8t.js +0 -201
  400. package/dist/chunk-57p201gb.js +0 -83
  401. package/dist/chunk-5ggw1dyv.js +0 -3
  402. package/dist/chunk-5kt3ay7x.js +0 -10
  403. package/dist/chunk-5p568px4.js +0 -1166
  404. package/dist/chunk-5ppkfyn2.js +0 -3
  405. package/dist/chunk-5q87fgkk.js +0 -3
  406. package/dist/chunk-5qb761h2.js +0 -3
  407. package/dist/chunk-5xvbq2gs.js +0 -30
  408. package/dist/chunk-647849kf.js +0 -34
  409. package/dist/chunk-6b5k6w2q.js +0 -7
  410. package/dist/chunk-6cr3eeh4.js +0 -23
  411. package/dist/chunk-6djgb0hr.js +0 -3
  412. package/dist/chunk-6dqzky7x.js +0 -35
  413. package/dist/chunk-6e4c6g46.js +0 -3
  414. package/dist/chunk-6w03t7h6.js +0 -3
  415. package/dist/chunk-6wn85hn6.js +0 -4
  416. package/dist/chunk-6y4gqs1q.js +0 -169
  417. package/dist/chunk-75rndzbd.js +0 -6
  418. package/dist/chunk-77tga15w.js +0 -3
  419. package/dist/chunk-7a51hkpf.js +0 -3
  420. package/dist/chunk-7b0xdy5h.js +0 -386
  421. package/dist/chunk-7cgmq685.js +0 -33
  422. package/dist/chunk-7dy588as.js +0 -6
  423. package/dist/chunk-7rvh2wwv.js +0 -721
  424. package/dist/chunk-7sm05m0j.js +0 -351
  425. package/dist/chunk-7sqdeqsw.js +0 -1
  426. package/dist/chunk-7xcfy2fn.js +0 -4
  427. package/dist/chunk-82t27pvd.js +0 -5
  428. package/dist/chunk-87kx8byz.js +0 -1115
  429. package/dist/chunk-8fgwhhb8.js +0 -6
  430. package/dist/chunk-8qbax8xn.js +0 -347
  431. package/dist/chunk-91s2hres.js +0 -8
  432. package/dist/chunk-94g3cahw.js +0 -11
  433. package/dist/chunk-957amb71.js +0 -8
  434. package/dist/chunk-95w08s8v.js +0 -3
  435. package/dist/chunk-9agvhp1x.js +0 -93
  436. package/dist/chunk-9tmbrwwx.js +0 -219
  437. package/dist/chunk-9yz5d003.js +0 -51
  438. package/dist/chunk-a3hyn4we.js +0 -79
  439. package/dist/chunk-a69tvya5.js +0 -53
  440. package/dist/chunk-adjcg6wa.js +0 -498
  441. package/dist/chunk-adqh2m9z.js +0 -45
  442. package/dist/chunk-asarebzq.js +0 -292
  443. package/dist/chunk-aw3rp9ac.js +0 -24
  444. package/dist/chunk-b0cyc09a.js +0 -109
  445. package/dist/chunk-b3kkjcdh.js +0 -3
  446. package/dist/chunk-b3prs7y0.js +0 -5
  447. package/dist/chunk-b5zc9y0y.js +0 -90
  448. package/dist/chunk-baa7h4yz.js +0 -3
  449. package/dist/chunk-bgec9r1v.js +0 -5224
  450. package/dist/chunk-bjnjpsgn.js +0 -3
  451. package/dist/chunk-bk8ew8ze.js +0 -24
  452. package/dist/chunk-bn08k7yy.js +0 -3
  453. package/dist/chunk-bpgg59wa.js +0 -3
  454. package/dist/chunk-bwxda6n1.js +0 -3
  455. package/dist/chunk-bykjk6vj.js +0 -4
  456. package/dist/chunk-c53hyw5c.js +0 -477
  457. package/dist/chunk-c7jg8w13.js +0 -3
  458. package/dist/chunk-ca6qd1dx.js +0 -3
  459. package/dist/chunk-cdbwprfv.js +0 -6
  460. package/dist/chunk-ceg2c2q2.js +0 -11
  461. package/dist/chunk-cn409b69.js +0 -3
  462. package/dist/chunk-cn8az1b4.js +0 -1
  463. package/dist/chunk-cp3kwv17.js +0 -8
  464. package/dist/chunk-cpcc11vp.js +0 -5
  465. package/dist/chunk-cr3wbrcr.js +0 -10
  466. package/dist/chunk-cygfdk1n.js +0 -3
  467. package/dist/chunk-cyp4m0vh.js +0 -16
  468. package/dist/chunk-cz25azze.js +0 -4
  469. package/dist/chunk-d77yxcds.js +0 -3
  470. package/dist/chunk-dvfs1h3c.js +0 -117
  471. package/dist/chunk-dyjnn5k8.js +0 -262
  472. package/dist/chunk-dzw95th7.js +0 -3
  473. package/dist/chunk-e0zytzdh.js +0 -179
  474. package/dist/chunk-e53h9qhd.js +0 -84
  475. package/dist/chunk-eds0f8f1.js +0 -3
  476. package/dist/chunk-eh8hact1.js +0 -5
  477. package/dist/chunk-epj957jf.js +0 -4
  478. package/dist/chunk-eqeyaq6g.js +0 -77
  479. package/dist/chunk-fbxt2mrx.js +0 -5
  480. package/dist/chunk-fch9tk1k.js +0 -3
  481. package/dist/chunk-fe7r1mq1.js +0 -9
  482. package/dist/chunk-fhawx87n.js +0 -8
  483. package/dist/chunk-fk51yyrw.js +0 -3
  484. package/dist/chunk-fms20x0n.js +0 -21
  485. package/dist/chunk-fs0qezn5.js +0 -341
  486. package/dist/chunk-fzm3y0r3.js +0 -267
  487. package/dist/chunk-g2hekckm.js +0 -161
  488. package/dist/chunk-g4ps1dj8.js +0 -140
  489. package/dist/chunk-g8b81pzc.js +0 -3
  490. package/dist/chunk-ganag9dm.js +0 -3
  491. package/dist/chunk-gc84b1d2.js +0 -58
  492. package/dist/chunk-gcf5v18y.js +0 -60
  493. package/dist/chunk-ghrx0hn1.js +0 -4
  494. package/dist/chunk-gqpkp459.js +0 -3
  495. package/dist/chunk-h45py5w5.js +0 -2
  496. package/dist/chunk-h5wa62ek.js +0 -145
  497. package/dist/chunk-h82kjdr4.js +0 -83
  498. package/dist/chunk-haecq01c.js +0 -3
  499. package/dist/chunk-hepg894w.js +0 -3
  500. package/dist/chunk-hjdc99kb.js +0 -3
  501. package/dist/chunk-hje9v2zh.js +0 -3
  502. package/dist/chunk-hjv76kcw.js +0 -1
  503. package/dist/chunk-hke99a0v.js +0 -3
  504. package/dist/chunk-hpqr9e3x.js +0 -3
  505. package/dist/chunk-hq5cem49.js +0 -236
  506. package/dist/chunk-hrampcrj.js +0 -3
  507. package/dist/chunk-ht4j68cs.js +0 -3
  508. package/dist/chunk-hxx3za24.js +0 -62
  509. package/dist/chunk-j4s5qwd7.js +0 -4
  510. package/dist/chunk-jbejwejg.js +0 -8
  511. package/dist/chunk-jc0fc4ht.js +0 -11
  512. package/dist/chunk-jcs0ymw7.js +0 -3
  513. package/dist/chunk-jfm69keq.js +0 -231
  514. package/dist/chunk-jfrn43vh.js +0 -2
  515. package/dist/chunk-jjamhxpm.js +0 -139
  516. package/dist/chunk-jjvp4t5w.js +0 -27
  517. package/dist/chunk-jt44av4j.js +0 -3
  518. package/dist/chunk-jt98jhpt.js +0 -10
  519. package/dist/chunk-k8440jxh.js +0 -6
  520. package/dist/chunk-kdxa9epn.js +0 -21
  521. package/dist/chunk-kfd2hf6f.js +0 -3
  522. package/dist/chunk-kgym7ch9.js +0 -8
  523. package/dist/chunk-kh6rfz2v.js +0 -4
  524. package/dist/chunk-kkp6rs2n.js +0 -36
  525. package/dist/chunk-ktkmvaa8.js +0 -1
  526. package/dist/chunk-m59y310j.js +0 -3
  527. package/dist/chunk-mgmyr1b9.js +0 -6
  528. package/dist/chunk-mqwbpamc.js +0 -3
  529. package/dist/chunk-mrehzhxv.js +0 -5
  530. package/dist/chunk-mv03qb75.js +0 -3
  531. package/dist/chunk-mv4fb50w.js +0 -1
  532. package/dist/chunk-mwbng54r.js +0 -2
  533. package/dist/chunk-n46a5g1g.js +0 -3
  534. package/dist/chunk-n944baxp.js +0 -3
  535. package/dist/chunk-nanw7yhz.js +0 -14
  536. package/dist/chunk-nap11ntr.js +0 -21
  537. package/dist/chunk-ncnfa8ae.js +0 -29
  538. package/dist/chunk-ngxfwzq3.js +0 -3
  539. package/dist/chunk-nvwb4x04.js +0 -3
  540. package/dist/chunk-nw34xajc.js +0 -8
  541. package/dist/chunk-payfb24w.js +0 -207
  542. package/dist/chunk-pc31m5x5.js +0 -398
  543. package/dist/chunk-pg1fvqb9.js +0 -167
  544. package/dist/chunk-q60knhjf.js +0 -3
  545. package/dist/chunk-q6h6yvzb.js +0 -10
  546. package/dist/chunk-qd5461tt.js +0 -3
  547. package/dist/chunk-qdc3aav1.js +0 -3
  548. package/dist/chunk-qfwzdffx.js +0 -3
  549. package/dist/chunk-qgxwmagw.js +0 -134
  550. package/dist/chunk-qhdtssn1.js +0 -19
  551. package/dist/chunk-qk584whs.js +0 -3
  552. package/dist/chunk-qm4yppj5.js +0 -57
  553. package/dist/chunk-qwyd9a1d.js +0 -2
  554. package/dist/chunk-qxs6et76.js +0 -196
  555. package/dist/chunk-rb1e4cnb.js +0 -3
  556. package/dist/chunk-rh80q1nd.js +0 -1
  557. package/dist/chunk-rkffm9sy.js +0 -128
  558. package/dist/chunk-rv002yn0.js +0 -14
  559. package/dist/chunk-s6ja2bdg.js +0 -66
  560. package/dist/chunk-sjagg9qz.js +0 -66
  561. package/dist/chunk-sn07azv3.js +0 -3
  562. package/dist/chunk-svahbw0w.js +0 -12
  563. package/dist/chunk-svhtdb0s.js +0 -6
  564. package/dist/chunk-t37dp99j.js +0 -3
  565. package/dist/chunk-tj6zfxeb.js +0 -64
  566. package/dist/chunk-tmgz5t2g.js +0 -3
  567. package/dist/chunk-tr0z0e1g.js +0 -3
  568. package/dist/chunk-tx6br9r4.js +0 -274
  569. package/dist/chunk-v97390pe.js +0 -1
  570. package/dist/chunk-vcr5pzpx.js +0 -233
  571. package/dist/chunk-vdfwv0fp.js +0 -6
  572. package/dist/chunk-vp2395eb.js +0 -3
  573. package/dist/chunk-vpe6napb.js +0 -28
  574. package/dist/chunk-vv9wfz1c.js +0 -12
  575. package/dist/chunk-vw6ejgmy.js +0 -21
  576. package/dist/chunk-vx22he47.js +0 -1
  577. package/dist/chunk-w01y57f5.js +0 -1539
  578. package/dist/chunk-w21mwxdd.js +0 -4
  579. package/dist/chunk-w4n8fqp7.js +0 -216
  580. package/dist/chunk-w959hm8j.js +0 -358
  581. package/dist/chunk-wf7zrjsw.js +0 -138
  582. package/dist/chunk-wk07pwtd.js +0 -321
  583. package/dist/chunk-wvef3ngh.js +0 -127
  584. package/dist/chunk-wxvyj65q.js +0 -2
  585. package/dist/chunk-x1hjv24z.js +0 -11
  586. package/dist/chunk-x39sfpvm.js +0 -302
  587. package/dist/chunk-x4fze3q2.js +0 -314
  588. package/dist/chunk-x64kb787.js +0 -15
  589. package/dist/chunk-xcb0pbr6.js +0 -4
  590. package/dist/chunk-xhkjhxsp.js +0 -3
  591. package/dist/chunk-xhnpsngj.js +0 -5
  592. package/dist/chunk-xsqbk4yk.js +0 -3
  593. package/dist/chunk-xygc53vr.js +0 -68
  594. package/dist/chunk-y0qg6rrv.js +0 -3
  595. package/dist/chunk-y25pr13j.js +0 -19
  596. package/dist/chunk-y4c744dk.js +0 -3
  597. package/dist/chunk-y4md9hp0.js +0 -3
  598. package/dist/chunk-y5wazw6j.js +0 -7
  599. package/dist/chunk-y5xz0jc4.js +0 -141
  600. package/dist/chunk-y86m1wr4.js +0 -4
  601. package/dist/chunk-yaan98dd.js +0 -3
  602. package/dist/chunk-yach037f.js +0 -32
  603. package/dist/chunk-yexjrg9d.js +0 -7
  604. package/dist/chunk-ygvyc6wv.js +0 -90
  605. package/dist/chunk-yj560gp8.js +0 -8
  606. package/dist/chunk-yn38c15w.js +0 -4
  607. package/dist/chunk-yr1gdceh.js +0 -3
  608. package/dist/chunk-yw2fzq86.js +0 -3
  609. package/dist/chunk-ywkrxp2h.js +0 -147
  610. package/dist/chunk-z37xq5rx.js +0 -3
  611. package/dist/chunk-z4djtgt0.js +0 -71
  612. package/dist/chunk-z8cjr9n9.js +0 -7
  613. package/dist/chunk-znxp3zha.js +0 -71
  614. package/dist/chunk-zt2yag10.js +0 -429
@@ -1,2 +1,94 @@
1
- // @bun
2
- import"../chunk-3jm3snz8.js";var A=new Map;function K(){let j=typeof window<"u"&&"Notification"in window,b={permission:j?Notification.permission:"denied",isSupported:j},z=[],G=()=>{z.forEach((k)=>k(b))},L=()=>{if(!j)return;b={...b,permission:Notification.permission},G()};return{get:()=>b,subscribe:(k)=>{return z.push(k),k(b),()=>{z=z.filter((q)=>q!==k)}},isSupported:()=>b.isSupported,permission:()=>b.permission,requestPermission:async()=>{if(!j)return"denied";try{let k=await Notification.requestPermission();return b={...b,permission:k},G(),k}catch{return b.permission}},show:(k,q={})=>{if(!j||b.permission!=="granted")return null;let{autoClose:F,...J}=q;try{let B=new Notification(k,J);if(q.tag){let H=A.get(q.tag);if(H)H.close();A.set(q.tag,B),B.addEventListener("close",()=>{A.delete(q.tag)})}if(F&&F>0)setTimeout(()=>{B.close()},F);return B}catch{return null}},close:(k)=>{let q=A.get(k);if(q)q.close(),A.delete(k)}}}async function D(j,b){let z=K();if(z.permission()==="default")await z.requestPermission();return z.show(j,b)}function R(){return typeof window<"u"&&"Notification"in window&&Notification.permission==="granted"}async function T(){if(typeof window>"u"||!("Notification"in window))return"denied";return Notification.requestPermission()}var U={success:(j,b)=>D("Success",{body:j,icon:"\u2705",...b}),error:(j,b)=>D("Error",{body:j,icon:"\u274C",...b}),warning:(j,b)=>D("Warning",{body:j,icon:"\u26A0\uFE0F",...b}),info:(j,b)=>D("Info",{body:j,icon:"\u2139\uFE0F",...b})};export{K as useNotification,T as requestNotificationPermission,D as notify,U as notifications,R as canNotify};
1
+ const activeNotifications = new Map;
2
+ export function useNotification() {
3
+ const isSupported = typeof window < "u" && "Notification" in window;
4
+ let state = {
5
+ permission: isSupported ? Notification.permission : "denied",
6
+ isSupported
7
+ }, listeners = [];
8
+ const notify = () => {
9
+ listeners.forEach((fn) => fn(state));
10
+ }, updatePermission = () => {
11
+ if (!isSupported)
12
+ return;
13
+ state = {
14
+ ...state,
15
+ permission: Notification.permission
16
+ };
17
+ notify();
18
+ };
19
+ return {
20
+ get: () => state,
21
+ subscribe: (fn) => {
22
+ listeners.push(fn);
23
+ fn(state);
24
+ return () => {
25
+ listeners = listeners.filter((l) => l !== fn);
26
+ };
27
+ },
28
+ isSupported: () => state.isSupported,
29
+ permission: () => state.permission,
30
+ requestPermission: async () => {
31
+ if (!isSupported)
32
+ return "denied";
33
+ try {
34
+ const result = await Notification.requestPermission();
35
+ state = { ...state, permission: result };
36
+ notify();
37
+ return result;
38
+ } catch {
39
+ return state.permission;
40
+ }
41
+ },
42
+ show: (title, options = {}) => {
43
+ if (!isSupported || state.permission !== "granted")
44
+ return null;
45
+ const { autoClose, ...notificationOptions } = options;
46
+ try {
47
+ const notification = new Notification(title, notificationOptions);
48
+ if (options.tag) {
49
+ const existing = activeNotifications.get(options.tag);
50
+ if (existing)
51
+ existing.close();
52
+ activeNotifications.set(options.tag, notification);
53
+ notification.addEventListener("close", () => {
54
+ activeNotifications.delete(options.tag);
55
+ });
56
+ }
57
+ if (autoClose && autoClose > 0)
58
+ setTimeout(() => {
59
+ notification.close();
60
+ }, autoClose);
61
+ return notification;
62
+ } catch {
63
+ return null;
64
+ }
65
+ },
66
+ close: (tag) => {
67
+ const notification = activeNotifications.get(tag);
68
+ if (notification) {
69
+ notification.close();
70
+ activeNotifications.delete(tag);
71
+ }
72
+ }
73
+ };
74
+ }
75
+ export async function notify(title, options) {
76
+ const notifier = useNotification();
77
+ if (notifier.permission() === "default")
78
+ await notifier.requestPermission();
79
+ return notifier.show(title, options);
80
+ }
81
+ export function canNotify() {
82
+ return typeof window < "u" && "Notification" in window && Notification.permission === "granted";
83
+ }
84
+ export async function requestNotificationPermission() {
85
+ if (typeof window > "u" || !("Notification" in window))
86
+ return "denied";
87
+ return Notification.requestPermission();
88
+ }
89
+ export const notifications = {
90
+ success: (message, options) => notify("Success", { body: message, icon: "\u2705", ...options }),
91
+ error: (message, options) => notify("Error", { body: message, icon: "\u274C", ...options }),
92
+ warning: (message, options) => notify("Warning", { body: message, icon: "\u26A0\uFE0F", ...options }),
93
+ info: (message, options) => notify("Info", { body: message, icon: "\u2139\uFE0F", ...options })
94
+ };
@@ -1,2 +1,132 @@
1
- // @bun
2
- import"../chunk-3jm3snz8.js";function B(k){return{state:k,isGranted:k==="granted",isDenied:k==="denied",isPrompt:k==="prompt"}}function I(){return typeof navigator<"u"&&"permissions"in navigator}function J(k){let x=I(),h=B("prompt"),w=[],z=null,A=null,F=()=>{w.forEach((j)=>j(h))},H=()=>{if(z)h=B(z.state),F()},v=async()=>{if(!x)return B("prompt");try{return z=await navigator.permissions.query({name:k}),h=B(z.state),z.addEventListener("change",H),A=()=>{z?.removeEventListener("change",H)},h}catch{return B("prompt")}};return{get:()=>h,subscribe:(j)=>{if(w.length===0&&x)v();return w.push(j),j(h),()=>{if(w=w.filter((D)=>D!==j),w.length===0&&A)A(),A=null}},query:v,isSupported:()=>x}}function L(k){let x=I(),h={},w=[],z={},A=[];for(let v of k)h[v]=B("prompt"),z[v]=J(v);let F=()=>{w.forEach((v)=>v(h))};return{get:()=>h,subscribe:(v)=>{if(w.length===0)for(let j of k){let D=z[j].subscribe((K)=>{h[j]=K,F()});A.push(D)}return w.push(v),v(h),()=>{if(w=w.filter((j)=>j!==v),w.length===0)A.forEach((j)=>j()),A.length=0}},queryAll:async()=>{let v=await Promise.all(k.map(async(j)=>{let D=await z[j].query();return[j,D]}));return h=Object.fromEntries(v),h},isSupported:()=>x}}async function E(k){return(await J(k).query()).isGranted}async function M(){return E("camera")}async function N(){return E("microphone")}async function O(){return E("geolocation")}async function Q(){return E("notifications")}async function T(k={video:!0,audio:!0}){if(typeof navigator>"u"||!navigator.mediaDevices)return{granted:!1,error:Error("MediaDevices API not supported")};try{return{granted:!0,stream:await navigator.mediaDevices.getUserMedia(k)}}catch(x){return{granted:!1,error:x instanceof Error?x:Error(String(x))}}}var U={media:["camera","microphone"],location:["geolocation"],notifications:["notifications","push"],sensors:["accelerometer","gyroscope","magnetometer"],clipboard:["clipboard-read","clipboard-write"]};export{L as usePermissions,J as usePermission,T as requestMediaPermissions,U as permissionGroups,E as isPermissionGranted,Q as hasNotificationPermission,N as hasMicrophonePermission,O as hasGeolocationPermission,M as hasCameraPermission};
1
+ function createStatus(state) {
2
+ return {
3
+ state,
4
+ isGranted: state === "granted",
5
+ isDenied: state === "denied",
6
+ isPrompt: state === "prompt"
7
+ };
8
+ }
9
+ function isPermissionsSupported() {
10
+ return typeof navigator < "u" && "permissions" in navigator;
11
+ }
12
+ export function usePermission(name) {
13
+ const supported = isPermissionsSupported();
14
+ let status = createStatus("prompt"), listeners = [], permissionStatus = null, cleanup = null;
15
+ const notify = () => {
16
+ listeners.forEach((fn) => fn(status));
17
+ }, updateStatus = () => {
18
+ if (permissionStatus) {
19
+ status = createStatus(permissionStatus.state);
20
+ notify();
21
+ }
22
+ }, query = async () => {
23
+ if (!supported)
24
+ return createStatus("prompt");
25
+ try {
26
+ permissionStatus = await navigator.permissions.query({ name });
27
+ status = createStatus(permissionStatus.state);
28
+ permissionStatus.addEventListener("change", updateStatus);
29
+ cleanup = () => {
30
+ permissionStatus?.removeEventListener("change", updateStatus);
31
+ };
32
+ return status;
33
+ } catch {
34
+ return createStatus("prompt");
35
+ }
36
+ };
37
+ return {
38
+ get: () => status,
39
+ subscribe: (fn) => {
40
+ if (listeners.length === 0 && supported)
41
+ query();
42
+ listeners.push(fn);
43
+ fn(status);
44
+ return () => {
45
+ listeners = listeners.filter((l) => l !== fn);
46
+ if (listeners.length === 0 && cleanup) {
47
+ cleanup();
48
+ cleanup = null;
49
+ }
50
+ };
51
+ },
52
+ query,
53
+ isSupported: () => supported
54
+ };
55
+ }
56
+ export function usePermissions(names) {
57
+ const supported = isPermissionsSupported();
58
+ let states = {}, listeners = [];
59
+ const permissionRefs = {}, unsubscribers = [];
60
+ for (const name of names) {
61
+ states[name] = createStatus("prompt");
62
+ permissionRefs[name] = usePermission(name);
63
+ }
64
+ const notify = () => {
65
+ listeners.forEach((fn) => fn(states));
66
+ };
67
+ return {
68
+ get: () => states,
69
+ subscribe: (fn) => {
70
+ if (listeners.length === 0)
71
+ for (const name of names) {
72
+ const unsub = permissionRefs[name].subscribe((status) => {
73
+ states[name] = status;
74
+ notify();
75
+ });
76
+ unsubscribers.push(unsub);
77
+ }
78
+ listeners.push(fn);
79
+ fn(states);
80
+ return () => {
81
+ listeners = listeners.filter((l) => l !== fn);
82
+ if (listeners.length === 0) {
83
+ unsubscribers.forEach((unsub) => unsub());
84
+ unsubscribers.length = 0;
85
+ }
86
+ };
87
+ },
88
+ queryAll: async () => {
89
+ const results = await Promise.all(names.map(async (name) => {
90
+ const result = await permissionRefs[name].query();
91
+ return [name, result];
92
+ }));
93
+ states = Object.fromEntries(results);
94
+ return states;
95
+ },
96
+ isSupported: () => supported
97
+ };
98
+ }
99
+ export async function isPermissionGranted(name) {
100
+ return (await usePermission(name).query()).isGranted;
101
+ }
102
+ export async function hasCameraPermission() {
103
+ return isPermissionGranted("camera");
104
+ }
105
+ export async function hasMicrophonePermission() {
106
+ return isPermissionGranted("microphone");
107
+ }
108
+ export async function hasGeolocationPermission() {
109
+ return isPermissionGranted("geolocation");
110
+ }
111
+ export async function hasNotificationPermission() {
112
+ return isPermissionGranted("notifications");
113
+ }
114
+ export async function requestMediaPermissions(options = { video: !0, audio: !0 }) {
115
+ if (typeof navigator > "u" || !navigator.mediaDevices)
116
+ return { granted: !1, error: Error("MediaDevices API not supported") };
117
+ try {
118
+ return { granted: !0, stream: await navigator.mediaDevices.getUserMedia(options) };
119
+ } catch (err) {
120
+ return {
121
+ granted: !1,
122
+ error: err instanceof Error ? err : Error(String(err))
123
+ };
124
+ }
125
+ }
126
+ export const permissionGroups = {
127
+ media: ["camera", "microphone"],
128
+ location: ["geolocation"],
129
+ notifications: ["notifications", "push"],
130
+ sensors: ["accelerometer", "gyroscope", "magnetometer"],
131
+ clipboard: ["clipboard-read", "clipboard-write"]
132
+ };
@@ -1 +0,0 @@
1
- // @bun
@@ -1,2 +1,157 @@
1
- // @bun
2
- import"../chunk-3jm3snz8.js";function P(){return typeof window<"u"&&"ResizeObserver"in window}function I(F){if(!F||F.length===0)return null;let A=F[0];return{width:A.inlineSize,height:A.blockSize,inlineSize:A.inlineSize,blockSize:A.blockSize}}function Q(F,A,G={}){let H=P(),D={contentRect:null,contentBoxSize:null,borderBoxSize:null,devicePixelContentBoxSize:null},w=[],B=null,L=()=>{if(typeof F==="function")return F();return F},N=(j)=>{if(j.length>0){let q=j[0];D={contentRect:q.contentRect,contentBoxSize:I(q.contentBoxSize),borderBoxSize:I(q.borderBoxSize),devicePixelContentBoxSize:I(q.devicePixelContentBoxSize)}}if(A)A(j);w.forEach((q)=>q(j))},J=()=>{if(!H)return;let j=L();if(!j)return;if(!B)B=new ResizeObserver(N);B.observe(j,{box:G.box})},K=()=>{if(B)B.disconnect(),B=null};return{get:()=>D,subscribe:(j)=>{if(w.length===0)J();return w.push(j),()=>{if(w=w.filter((q)=>q!==j),w.length===0&&!A)K()}},observe:J,disconnect:K,isSupported:()=>H}}function T(F,A,G={}){let H=P(),D=new Map,w=[],B=null,L=()=>{if(typeof F==="function")return F();return F},N=(j)=>{for(let q of j)D.set(q.target,{contentRect:q.contentRect,contentBoxSize:I(q.contentBoxSize),borderBoxSize:I(q.borderBoxSize),devicePixelContentBoxSize:I(q.devicePixelContentBoxSize)});if(A)A(j);w.forEach((q)=>q(j))},J=()=>{if(!H)return;let j=L();if(j.length===0)return;if(!B)B=new ResizeObserver(N);for(let q of j)B.observe(q,{box:G.box})},K=()=>{if(B)B.disconnect(),B=null;D.clear()};return{get:()=>D.values().next().value||{contentRect:null,contentBoxSize:null,borderBoxSize:null,devicePixelContentBoxSize:null},states:()=>D,subscribe:(j)=>{if(w.length===0)J();return w.push(j),()=>{if(w=w.filter((q)=>q!==j),w.length===0&&!A)K()}},observe:J,disconnect:K,isSupported:()=>H}}function U(F){let A={width:0,height:0},G=[],H=Q(F,(D)=>{if(D.length>0){let w=D[0].contentRect;A={width:w.width,height:w.height},G.forEach((B)=>B(A))}});return{get:()=>A,subscribe:(D)=>{if(G.push(D),D(A),G.length===1)H.observe();return()=>{if(G=G.filter((w)=>w!==D),G.length===0)H.disconnect()}},isSupported:H.isSupported}}function V(){return P()}export{T as useResizeObserverMultiple,Q as useResizeObserver,U as useElementSize,V as hasResizeObserver};
1
+ function isResizeObserverSupported() {
2
+ return typeof window < "u" && "ResizeObserver" in window;
3
+ }
4
+ function extractSize(sizes) {
5
+ if (!sizes || sizes.length === 0)
6
+ return null;
7
+ const size = sizes[0];
8
+ return {
9
+ width: size.inlineSize,
10
+ height: size.blockSize,
11
+ inlineSize: size.inlineSize,
12
+ blockSize: size.blockSize
13
+ };
14
+ }
15
+ export function useResizeObserver(target, callback, options = {}) {
16
+ const supported = isResizeObserverSupported();
17
+ let state = {
18
+ contentRect: null,
19
+ contentBoxSize: null,
20
+ borderBoxSize: null,
21
+ devicePixelContentBoxSize: null
22
+ }, listeners = [], observer = null;
23
+ const getElement = () => {
24
+ if (typeof target === "function")
25
+ return target();
26
+ return target;
27
+ }, notify = (entries) => {
28
+ if (entries.length > 0) {
29
+ const entry = entries[0];
30
+ state = {
31
+ contentRect: entry.contentRect,
32
+ contentBoxSize: extractSize(entry.contentBoxSize),
33
+ borderBoxSize: extractSize(entry.borderBoxSize),
34
+ devicePixelContentBoxSize: extractSize(entry.devicePixelContentBoxSize)
35
+ };
36
+ }
37
+ if (callback)
38
+ callback(entries);
39
+ listeners.forEach((fn) => fn(entries));
40
+ }, observe = () => {
41
+ if (!supported)
42
+ return;
43
+ const element = getElement();
44
+ if (!element)
45
+ return;
46
+ if (!observer)
47
+ observer = new ResizeObserver(notify);
48
+ observer.observe(element, { box: options.box });
49
+ }, disconnect = () => {
50
+ if (observer) {
51
+ observer.disconnect();
52
+ observer = null;
53
+ }
54
+ };
55
+ return {
56
+ get: () => state,
57
+ subscribe: (fn) => {
58
+ if (listeners.length === 0)
59
+ observe();
60
+ listeners.push(fn);
61
+ return () => {
62
+ listeners = listeners.filter((l) => l !== fn);
63
+ if (listeners.length === 0 && !callback)
64
+ disconnect();
65
+ };
66
+ },
67
+ observe,
68
+ disconnect,
69
+ isSupported: () => supported
70
+ };
71
+ }
72
+ export function useResizeObserverMultiple(targets, callback, options = {}) {
73
+ const supported = isResizeObserverSupported(), statesMap = new Map;
74
+ let listeners = [], observer = null;
75
+ const getElements = () => {
76
+ if (typeof targets === "function")
77
+ return targets();
78
+ return targets;
79
+ }, notify = (entries) => {
80
+ for (const entry of entries)
81
+ statesMap.set(entry.target, {
82
+ contentRect: entry.contentRect,
83
+ contentBoxSize: extractSize(entry.contentBoxSize),
84
+ borderBoxSize: extractSize(entry.borderBoxSize),
85
+ devicePixelContentBoxSize: extractSize(entry.devicePixelContentBoxSize)
86
+ });
87
+ if (callback)
88
+ callback(entries);
89
+ listeners.forEach((fn) => fn(entries));
90
+ }, observe = () => {
91
+ if (!supported)
92
+ return;
93
+ const elements = getElements();
94
+ if (elements.length === 0)
95
+ return;
96
+ if (!observer)
97
+ observer = new ResizeObserver(notify);
98
+ for (const element of elements)
99
+ observer.observe(element, { box: options.box });
100
+ }, disconnect = () => {
101
+ if (observer) {
102
+ observer.disconnect();
103
+ observer = null;
104
+ }
105
+ statesMap.clear();
106
+ };
107
+ return {
108
+ get: () => statesMap.values().next().value || {
109
+ contentRect: null,
110
+ contentBoxSize: null,
111
+ borderBoxSize: null,
112
+ devicePixelContentBoxSize: null
113
+ },
114
+ states: () => statesMap,
115
+ subscribe: (fn) => {
116
+ if (listeners.length === 0)
117
+ observe();
118
+ listeners.push(fn);
119
+ return () => {
120
+ listeners = listeners.filter((l) => l !== fn);
121
+ if (listeners.length === 0 && !callback)
122
+ disconnect();
123
+ };
124
+ },
125
+ observe,
126
+ disconnect,
127
+ isSupported: () => supported
128
+ };
129
+ }
130
+ export function useElementSize(target) {
131
+ let size = { width: 0, height: 0 }, listeners = [];
132
+ const observer = useResizeObserver(target, (entries) => {
133
+ if (entries.length > 0) {
134
+ const rect = entries[0].contentRect;
135
+ size = { width: rect.width, height: rect.height };
136
+ listeners.forEach((fn) => fn(size));
137
+ }
138
+ });
139
+ return {
140
+ get: () => size,
141
+ subscribe: (fn) => {
142
+ listeners.push(fn);
143
+ fn(size);
144
+ if (listeners.length === 1)
145
+ observer.observe();
146
+ return () => {
147
+ listeners = listeners.filter((l) => l !== fn);
148
+ if (listeners.length === 0)
149
+ observer.disconnect();
150
+ };
151
+ },
152
+ isSupported: observer.isSupported
153
+ };
154
+ }
155
+ export function hasResizeObserver() {
156
+ return isResizeObserverSupported();
157
+ }
@@ -1,2 +1,51 @@
1
- // @bun
2
- import"../chunk-3jm3snz8.js";function y(f){if(typeof window<"u")if(window.stxRouter?.navigate)window.stxRouter.navigate(f);else window.location.href=f}function z(){if(typeof window<"u")window.history.back()}function B(){if(typeof window<"u")window.history.forward()}function C(){if(typeof window>"u")return{path:"/",fullPath:"/",hash:"",query:{},params:{}};if(window.stx?.useRoute)return window.stx.useRoute();return{get path(){return window.location.pathname},get fullPath(){return window.location.pathname+window.location.search+window.location.hash},get hash(){return window.location.hash},get query(){let f={};return new URLSearchParams(window.location.search).forEach((j,q)=>{f[q]=j}),f},get params(){return window.stx?._rp??{}}}}function D(f){if(typeof window<"u"&&window.stx?.setRouteParams)window.stx.setRouteParams(f)}function E(){return{data:Object.assign(()=>({}),{set:()=>{}}),get:()=>{return},set:()=>{},setAll:()=>{}}}export{E as useSearchParams,C as useRoute,D as setRouteParams,y as navigate,B as goForward,z as goBack};
1
+ export function navigate(url) {
2
+ if (typeof window < "u")
3
+ if (window.stxRouter?.navigate)
4
+ window.stxRouter.navigate(url);
5
+ else
6
+ window.location.href = url;
7
+ }
8
+ export function goBack() {
9
+ if (typeof window < "u")
10
+ window.history.back();
11
+ }
12
+ export function goForward() {
13
+ if (typeof window < "u")
14
+ window.history.forward();
15
+ }
16
+ export function useRoute() {
17
+ if (typeof window > "u")
18
+ return { path: "/", fullPath: "/", hash: "", query: {}, params: {} };
19
+ if (window.stx?.useRoute)
20
+ return window.stx.useRoute();
21
+ return {
22
+ get path() {
23
+ return window.location.pathname;
24
+ },
25
+ get fullPath() {
26
+ return window.location.pathname + window.location.search + window.location.hash;
27
+ },
28
+ get hash() {
29
+ return window.location.hash;
30
+ },
31
+ get query() {
32
+ const params = {};
33
+ new URLSearchParams(window.location.search).forEach((v, k) => {
34
+ params[k] = v;
35
+ });
36
+ return params;
37
+ },
38
+ get params() {
39
+ return window.stx?._rp ?? {};
40
+ }
41
+ };
42
+ }
43
+ export function setRouteParams(params) {
44
+ if (typeof window < "u" && window.stx?.setRouteParams)
45
+ window.stx.setRouteParams(params);
46
+ }
47
+ export function useSearchParams() {
48
+ return { data: Object.assign(() => ({}), { set: () => {} }), get: () => {
49
+ return;
50
+ }, set: () => {}, setAll: () => {} };
51
+ }
@@ -1,2 +1,104 @@
1
- // @bun
2
- import"../chunk-3jm3snz8.js";function H(){return typeof navigator<"u"&&"share"in navigator}function I(){return typeof navigator<"u"&&"canShare"in navigator}function G(){let q=H(),z=I(),A=(j)=>{if(!q)return!1;if(!j)return!0;if(j.files&&j.files.length>0){if(!z)return!1;try{return navigator.canShare(j)}catch{return!1}}return!!(j.title||j.text||j.url)};return{isSupported:()=>q,isFileShareSupported:()=>z,canShare:A,share:async(j)=>{if(!q)return{success:!1,error:Error("Web Share API is not supported")};if(!j.title&&!j.text&&!j.url&&(!j.files||j.files.length===0))return{success:!1,error:Error("Share data must include at least one of: title, text, url, or files")};if(!A(j))return{success:!1,error:Error("This content cannot be shared on this device")};try{return await navigator.share(j),{success:!0}}catch(B){if(B instanceof Error&&B.name==="AbortError")return{success:!1,cancelled:!0};return{success:!1,error:B instanceof Error?B:Error(String(B))}}}}}async function D(q){return G().share(q)}async function J(q,z,A){return D({url:q,title:z,text:A})}async function K(q,z){return D({text:q,title:z})}async function L(q,z,A){return D({files:q,title:z,text:A})}function N(q,z,A){return new File([q],z,{type:A||q.type})}async function O(q){if(typeof document>"u"||typeof location>"u")return{success:!1,error:Error("Not in browser environment")};return D({title:document.title,url:location.href,text:q})}async function P(q,z){let A=G();if(A.isSupported()&&A.canShare(q)){let j=await A.share(q);if(j.success||j.cancelled)return j}let E=q.url||q.text||q.title||"";if(!E)return{success:!1,error:Error("Nothing to copy")};try{if(await navigator.clipboard.writeText(E),z)alert(z);return{success:!0,usedFallback:!0}}catch(j){return{success:!1,error:j instanceof Error?j:Error(String(j)),usedFallback:!0}}}export{G as useShare,P as shareWithFallback,J as shareURL,K as shareText,L as shareFiles,O as shareCurrentPage,D as share,N as createShareableFile};
1
+ function isShareSupported() {
2
+ return typeof navigator < "u" && "share" in navigator;
3
+ }
4
+ function isFileShareSupported() {
5
+ return typeof navigator < "u" && "canShare" in navigator;
6
+ }
7
+ export function useShare() {
8
+ const supported = isShareSupported(), fileSupported = isFileShareSupported(), canShare = (data) => {
9
+ if (!supported)
10
+ return !1;
11
+ if (!data)
12
+ return !0;
13
+ if (data.files && data.files.length > 0) {
14
+ if (!fileSupported)
15
+ return !1;
16
+ try {
17
+ return navigator.canShare(data);
18
+ } catch {
19
+ return !1;
20
+ }
21
+ }
22
+ return !!(data.title || data.text || data.url);
23
+ };
24
+ return {
25
+ isSupported: () => supported,
26
+ isFileShareSupported: () => fileSupported,
27
+ canShare,
28
+ share: async (data) => {
29
+ if (!supported)
30
+ return {
31
+ success: !1,
32
+ error: Error("Web Share API is not supported")
33
+ };
34
+ if (!data.title && !data.text && !data.url && (!data.files || data.files.length === 0))
35
+ return {
36
+ success: !1,
37
+ error: Error("Share data must include at least one of: title, text, url, or files")
38
+ };
39
+ if (!canShare(data))
40
+ return {
41
+ success: !1,
42
+ error: Error("This content cannot be shared on this device")
43
+ };
44
+ try {
45
+ await navigator.share(data);
46
+ return { success: !0 };
47
+ } catch (err) {
48
+ if (err instanceof Error && err.name === "AbortError")
49
+ return { success: !1, cancelled: !0 };
50
+ return {
51
+ success: !1,
52
+ error: err instanceof Error ? err : Error(String(err))
53
+ };
54
+ }
55
+ }
56
+ };
57
+ }
58
+ export async function share(data) {
59
+ return useShare().share(data);
60
+ }
61
+ export async function shareURL(url, title, text) {
62
+ return share({ url, title, text });
63
+ }
64
+ export async function shareText(text, title) {
65
+ return share({ text, title });
66
+ }
67
+ export async function shareFiles(files, title, text) {
68
+ return share({ files, title, text });
69
+ }
70
+ export function createShareableFile(blob, filename, mimeType) {
71
+ return new File([blob], filename, { type: mimeType || blob.type });
72
+ }
73
+ export async function shareCurrentPage(text) {
74
+ if (typeof document > "u" || typeof location > "u")
75
+ return { success: !1, error: Error("Not in browser environment") };
76
+ return share({
77
+ title: document.title,
78
+ url: location.href,
79
+ text
80
+ });
81
+ }
82
+ export async function shareWithFallback(data, fallbackMessage) {
83
+ const sharer = useShare();
84
+ if (sharer.isSupported() && sharer.canShare(data)) {
85
+ const result = await sharer.share(data);
86
+ if (result.success || result.cancelled)
87
+ return result;
88
+ }
89
+ const textToCopy = data.url || data.text || data.title || "";
90
+ if (!textToCopy)
91
+ return { success: !1, error: Error("Nothing to copy") };
92
+ try {
93
+ await navigator.clipboard.writeText(textToCopy);
94
+ if (fallbackMessage)
95
+ alert(fallbackMessage);
96
+ return { success: !0, usedFallback: !0 };
97
+ } catch (err) {
98
+ return {
99
+ success: !1,
100
+ error: err instanceof Error ? err : Error(String(err)),
101
+ usedFallback: !0
102
+ };
103
+ }
104
+ }