@stacksjs/stx 0.2.95 → 0.2.96

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (612) hide show
  1. package/dist/a11y.js +598 -2
  2. package/dist/analytics.js +159 -2
  3. package/dist/analyzer.js +240 -2
  4. package/dist/animation.js +688 -2
  5. package/dist/app-shell.js +220 -2
  6. package/dist/app.js +79 -2
  7. package/dist/assets.js +155 -2
  8. package/dist/ast.js +630 -2
  9. package/dist/async-components.js +428 -2
  10. package/dist/auth.js +12 -2
  11. package/dist/broadcasting.js +102 -2
  12. package/dist/browser-composables.js +565 -2
  13. package/dist/build-assets.js +29 -2
  14. package/dist/build-mode-detector.js +50 -2
  15. package/dist/build-optimizer.js +433 -2
  16. package/dist/build-views.js +180 -2
  17. package/dist/build.js +33 -2
  18. package/dist/builtins/drawer.js +37 -2
  19. package/dist/builtins/escape.js +3 -2
  20. package/dist/builtins/icon.js +83 -2
  21. package/dist/builtins/index.js +34 -2
  22. package/dist/builtins/modal.js +38 -2
  23. package/dist/builtins/safe-image.js +51 -2
  24. package/dist/builtins/stx-image.js +200 -2
  25. package/dist/builtins/stx-link.js +41 -2
  26. package/dist/builtins/stx-loading-indicator.js +35 -2
  27. package/dist/builtins/suspense.js +24 -2
  28. package/dist/builtins/toast.js +42 -2
  29. package/dist/builtins/tooltip.js +106 -2
  30. package/dist/builtins/transition-group.js +22 -2
  31. package/dist/bundle-analyzer/collector.js +233 -2
  32. package/dist/bundle-analyzer/index.js +82 -2
  33. package/dist/bundle-analyzer/report.js +318 -2
  34. package/dist/bundle-analyzer/treemap.js +594 -2
  35. package/dist/caching.js +131 -2
  36. package/dist/cli.js +11317 -10982
  37. package/dist/client/directive.js +14 -2
  38. package/dist/client/index.js +2 -2
  39. package/dist/client-helpers.js +312 -2
  40. package/dist/client-script-bundler.js +216 -6
  41. package/dist/client-script.js +754 -2
  42. package/dist/client.js +73 -4
  43. package/dist/component-hmr.js +585 -2
  44. package/dist/component-library.d.ts +6 -0
  45. package/dist/component-library.js +683 -0
  46. package/dist/component-processing.js +613 -2
  47. package/dist/component-registry.js +90 -2
  48. package/dist/component-renderer.js +660 -2
  49. package/dist/components.js +213 -2
  50. package/dist/composables/index.js +220 -2
  51. package/dist/composables/use-battery.js +101 -2
  52. package/dist/composables/use-broadcast-channel.js +80 -2
  53. package/dist/composables/use-channel.js +124 -2
  54. package/dist/composables/use-clipboard.js +79 -2
  55. package/dist/composables/use-color-mode.js +131 -2
  56. package/dist/composables/use-cookie.js +86 -2
  57. package/dist/composables/use-device-orientation.js +181 -2
  58. package/dist/composables/use-event-listener.js +27 -2
  59. package/dist/composables/use-event-source.js +166 -2
  60. package/dist/composables/use-eye-dropper.js +142 -2
  61. package/dist/composables/use-fetch.js +223 -2
  62. package/dist/composables/use-fullscreen.js +110 -2
  63. package/dist/composables/use-geolocation.js +101 -2
  64. package/dist/composables/use-idle.js +182 -2
  65. package/dist/composables/use-intersection-observer.js +168 -2
  66. package/dist/composables/use-keyboard.js +224 -2
  67. package/dist/composables/use-media-query.js +62 -2
  68. package/dist/composables/use-meta.js +48 -2
  69. package/dist/composables/use-mouse.js +286 -2
  70. package/dist/composables/use-mutation-observer.js +129 -2
  71. package/dist/composables/use-network.js +85 -2
  72. package/dist/composables/use-notification.js +94 -2
  73. package/dist/composables/use-permissions.js +132 -2
  74. package/dist/composables/use-query.js +0 -1
  75. package/dist/composables/use-resize-observer.js +157 -2
  76. package/dist/composables/use-router.js +51 -2
  77. package/dist/composables/use-share.js +104 -2
  78. package/dist/composables/use-speech.js +294 -2
  79. package/dist/composables/use-storage.js +130 -2
  80. package/dist/composables/use-text-selection.js +205 -4
  81. package/dist/composables/use-timer.js +183 -2
  82. package/dist/composables/use-utilities.js +176 -2
  83. package/dist/composables/use-wake-lock.js +122 -2
  84. package/dist/composables/use-websocket.js +165 -2
  85. package/dist/composables/use-window.js +163 -2
  86. package/dist/composables.js +552 -2
  87. package/dist/composition-api.js +190 -2
  88. package/dist/computed.js +376 -8
  89. package/dist/conditionals.js +599 -2
  90. package/dist/config.js +751 -2
  91. package/dist/craft-bridge.js +432 -2
  92. package/dist/craft-compiler.js +810 -2
  93. package/dist/craft-components.js +945 -2
  94. package/dist/craft-entry.js +5 -2
  95. package/dist/craft-ssr.js +559 -2
  96. package/dist/csp.js +220 -2
  97. package/dist/csrf.js +38 -2
  98. package/dist/custom-directives.js +136 -2
  99. package/dist/defer.js +156 -2
  100. package/dist/deploy/config-generators.js +214 -2
  101. package/dist/deploy/index.js +203 -2
  102. package/dist/deploy/netlify.js +167 -2
  103. package/dist/dev-server/crosswind.js +379 -2
  104. package/dist/dev-server/index.js +7 -2
  105. package/dist/dev-server/keyboard-shortcuts.js +81 -2
  106. package/dist/dev-server/native-window.js +91 -2
  107. package/dist/dev-server/port-utils.js +40 -2
  108. package/dist/dev-server/serve-app.js +682 -2
  109. package/dist/dev-server/serve-file.js +439 -2
  110. package/dist/dev-server/serve-markdown.js +281 -2
  111. package/dist/dev-server/serve-multi.js +579 -2
  112. package/dist/dev-server/terminal-colors.js +45 -2
  113. package/dist/dev-server/theme-selector.js +111 -2
  114. package/dist/dev-server/types.js +43 -2
  115. package/dist/dev-server.js +4 -2
  116. package/dist/devtools.js +462 -18
  117. package/dist/directive-api.js +355 -2
  118. package/dist/docs.js +567 -2
  119. package/dist/doctor.js +123 -2
  120. package/dist/document-shell.js +105 -2
  121. package/dist/dynamic-components.js +78 -2
  122. package/dist/edge-runtime.js +539 -2
  123. package/dist/env.js +9 -2
  124. package/dist/error-boundaries.js +62 -12
  125. package/dist/error-handling.js +1 -2
  126. package/dist/errors/codes.js +97 -2
  127. package/dist/errors/formatter.js +196 -2
  128. package/dist/errors/index.js +44 -2
  129. package/dist/errors/logger.js +250 -2
  130. package/dist/errors/sanitizer.js +181 -2
  131. package/dist/errors/types.js +86 -2
  132. package/dist/events.js +382 -2
  133. package/dist/expressions.js +650 -2
  134. package/dist/formatter.js +265 -2
  135. package/dist/forms-validation.js +510 -4
  136. package/dist/forms.js +709 -2
  137. package/dist/head.js +224 -2
  138. package/dist/heatmap.js +566 -2
  139. package/dist/hot-reload.js +367 -2
  140. package/dist/html-masking.js +73 -2
  141. package/dist/hydration-runtime.js +195 -2
  142. package/dist/hydration.js +654 -2
  143. package/dist/i18n.js +633 -2
  144. package/dist/image-optimization/auto-sibling.js +88 -2
  145. package/dist/image-optimization/build-plugin.js +241 -2
  146. package/dist/image-optimization/component.js +244 -2
  147. package/dist/image-optimization/directive.js +203 -2
  148. package/dist/image-optimization/index.js +54 -2
  149. package/dist/image-optimization/processor.js +262 -2
  150. package/dist/image-optimization/serve.js +102 -2
  151. package/dist/includes.js +733 -2
  152. package/dist/index.d.ts +1 -0
  153. package/dist/index.js +134 -2
  154. package/dist/init.js +505 -2
  155. package/dist/inline-assets.js +82 -2
  156. package/dist/interactive.js +383 -2
  157. package/dist/internal-markdown.js +141 -2
  158. package/dist/island-chunking.js +52 -2
  159. package/dist/js-ts.js +57 -2
  160. package/dist/jsx-runtime.js +289 -2
  161. package/dist/keep-alive.js +421 -2
  162. package/dist/lazy-loader.js +245 -2
  163. package/dist/loading-indicator.js +322 -2
  164. package/dist/loops.js +643 -2
  165. package/dist/manifest.js +31 -2
  166. package/dist/markdown.js +68 -2
  167. package/dist/media/client/blur-up.js +217 -2
  168. package/dist/media/client/index.js +53 -2
  169. package/dist/media/client/lazy-load.js +283 -2
  170. package/dist/media/client/upload-handler.js +354 -2
  171. package/dist/media/image/component.js +574 -2
  172. package/dist/media/image/directive.js +160 -2
  173. package/dist/media/image/editing.js +193 -2
  174. package/dist/media/image/index.js +80 -2
  175. package/dist/media/image/placeholder.js +188 -2
  176. package/dist/media/image/processor/cache.js +51 -2
  177. package/dist/media/image/processor/index.js +3 -2
  178. package/dist/media/image/processor/optimizer.js +202 -2
  179. package/dist/media/image/processor/responsive.js +162 -2
  180. package/dist/media/image/srcset.js +194 -2
  181. package/dist/media/index.js +198 -2
  182. package/dist/media/manager/embed.js +253 -2
  183. package/dist/media/protected/component.js +235 -2
  184. package/dist/media/protected/index.js +20 -2
  185. package/dist/media/protected/signature.js +205 -2
  186. package/dist/media/shared/cache.js +132 -2
  187. package/dist/media/shared/hash.js +35 -2
  188. package/dist/media/shared/index.js +2 -2
  189. package/dist/media/types.js +0 -1
  190. package/dist/media/upload/component.js +320 -2
  191. package/dist/media/upload/index.js +1 -2
  192. package/dist/media/video/directive.js +142 -2
  193. package/dist/media/video/index.js +583 -2
  194. package/dist/media/video/processor/cache.js +52 -2
  195. package/dist/media/video/processor/index.js +4 -2
  196. package/dist/media/video/processor/streaming.js +197 -2
  197. package/dist/media/video/processor/thumbnail.js +134 -2
  198. package/dist/media/video/processor/transcoder.js +283 -2
  199. package/dist/method-spoofing.js +17 -2
  200. package/dist/middleware.js +40 -2
  201. package/dist/misc-directives.js +222 -2
  202. package/dist/native-build.js +511 -2
  203. package/dist/parser/directive-parser.js +239 -2
  204. package/dist/parser/expression-parser.js +358 -2
  205. package/dist/parser/index.js +23 -2
  206. package/dist/parser/tokenizer.js +534 -2
  207. package/dist/partial-hydration.js +427 -2
  208. package/dist/performance-utils.js +430 -2
  209. package/dist/placeholder.js +35 -2
  210. package/dist/plugin-system.js +214 -2
  211. package/dist/plugin.js +173 -2
  212. package/dist/precompiler.js +660 -81
  213. package/dist/process.js +711 -2
  214. package/dist/production-build.js +596 -2
  215. package/dist/production-builder.js +132 -2
  216. package/dist/production-server.js +188 -2
  217. package/dist/props.js +224 -2
  218. package/dist/public-env.js +19 -2
  219. package/dist/pwa/audit.js +255 -2
  220. package/dist/pwa/directives.js +332 -2
  221. package/dist/pwa/icons.js +109 -2
  222. package/dist/pwa/index.js +47 -2
  223. package/dist/pwa/inject.js +102 -2
  224. package/dist/pwa/manifest.js +186 -2
  225. package/dist/pwa/offline.js +259 -2
  226. package/dist/pwa/precache.js +116 -2
  227. package/dist/pwa/service-worker.js +860 -2
  228. package/dist/pwa/workbox-strategies.js +167 -2
  229. package/dist/pwa/workbox.js +382 -2
  230. package/dist/pwa.js +427 -427
  231. package/dist/reactive-bindings.js +266 -2
  232. package/dist/reactive.js +569 -2
  233. package/dist/reactivity.js +559 -2
  234. package/dist/release.js +1 -2
  235. package/dist/render.js +165 -2
  236. package/dist/route-middleware.js +17 -2
  237. package/dist/router.js +9 -2
  238. package/dist/routes.js +14 -2
  239. package/dist/runtime-injection.js +120 -2
  240. package/dist/runtime.js +94 -2
  241. package/dist/safe-evaluator.js +444 -2
  242. package/dist/scaffolding.js +897 -2
  243. package/dist/screenshot.js +87 -2
  244. package/dist/script-classifier.js +32 -2
  245. package/dist/script-validation.js +158 -2
  246. package/dist/seo.js +457 -2
  247. package/dist/serve.js +237 -2
  248. package/dist/server-bindings.js +108 -2
  249. package/dist/server-components.js +338 -11
  250. package/dist/signal-processing.js +946 -2
  251. package/dist/signals-api.js +154 -2
  252. package/dist/signals.js +5287 -2
  253. package/dist/site-builder/build.js +224 -2
  254. package/dist/site-builder/i18n.js +140 -2
  255. package/dist/site-builder/index.js +15 -2
  256. package/dist/site-builder/robots.js +26 -2
  257. package/dist/site-builder/router.js +27 -2
  258. package/dist/site-builder/seo.js +36 -2
  259. package/dist/site-builder/sitemap.js +26 -2
  260. package/dist/site-builder/theme.js +33 -2
  261. package/dist/site-builder/types.js +0 -1
  262. package/dist/slots.js +201 -2
  263. package/dist/source-maps.js +350 -2
  264. package/dist/spa-shell.js +34 -2
  265. package/dist/ssg.js +389 -389
  266. package/dist/ssr.js +355 -2
  267. package/dist/state-management.js +533 -2
  268. package/dist/store-imports.js +13 -2
  269. package/dist/store-loader.js +72 -5
  270. package/dist/stores-client.js +132 -2
  271. package/dist/story/addons.js +261 -2
  272. package/dist/story/analytics.js +235 -2
  273. package/dist/story/auto-stories.js +158 -2
  274. package/dist/story/bookmarks.js +277 -2
  275. package/dist/story/bun-test.js +102 -2
  276. package/dist/story/cli.js +155 -2
  277. package/dist/story/collect/analyzer.js +305 -2
  278. package/dist/story/collect/index.js +27 -2
  279. package/dist/story/collect/parser.js +129 -2
  280. package/dist/story/collect/scanner.js +101 -2
  281. package/dist/story/collect/tree.js +110 -2
  282. package/dist/story/commands/build.js +172 -2
  283. package/dist/story/commands/dev.js +78 -2
  284. package/dist/story/commands/index.js +3 -2
  285. package/dist/story/commands/preview.js +56 -2
  286. package/dist/story/compiled-output.js +151 -2
  287. package/dist/story/composition.js +261 -2
  288. package/dist/story/config-watcher.js +67 -2
  289. package/dist/story/config.js +64 -2
  290. package/dist/story/context.js +27 -2
  291. package/dist/story/controls/index.js +320 -2
  292. package/dist/story/crosswind.js +189 -2
  293. package/dist/story/desktop-preview.js +105 -2
  294. package/dist/story/docs-generator.js +186 -2
  295. package/dist/story/errors.js +239 -2
  296. package/dist/story/figma-export.js +224 -2
  297. package/dist/story/generator.js +165 -2
  298. package/dist/story/hmr.js +131 -2
  299. package/dist/story/hot-swap.js +207 -2
  300. package/dist/story/index.js +49 -2
  301. package/dist/story/interactions.js +225 -2
  302. package/dist/story/keyboard-shortcuts.js +345 -2
  303. package/dist/story/output.js +153 -2
  304. package/dist/story/performance.js +252 -2
  305. package/dist/story/presets.js +289 -2
  306. package/dist/story/props-validation.js +215 -2
  307. package/dist/story/renderer.js +209 -2
  308. package/dist/story/search-index.js +106 -2
  309. package/dist/story/search.js +140 -2
  310. package/dist/story/server.js +965 -2
  311. package/dist/story/setup.js +78 -2
  312. package/dist/story/snapshots.js +170 -2
  313. package/dist/story/testing.js +163 -2
  314. package/dist/story/theme.js +170 -2
  315. package/dist/story/types.js +0 -2
  316. package/dist/story/ui/code-panel.js +175 -2
  317. package/dist/story/ui/controls-panel.js +168 -2
  318. package/dist/story/ui/index.js +4 -2
  319. package/dist/story/ui/navigation.js +250 -2
  320. package/dist/story/ui/preview.js +251 -2
  321. package/dist/story/visual-testing.js +247 -2
  322. package/dist/streaming.js +537 -2
  323. package/dist/strict-lint.js +288 -2
  324. package/dist/style-scoping.js +50 -2
  325. package/dist/suspense.js +398 -2
  326. package/dist/teleport.js +109 -2
  327. package/dist/template-compiler.js +63 -2
  328. package/dist/template-hydrator.js +82 -2
  329. package/dist/template-tag-balance.js +93 -2
  330. package/dist/testing.js +581 -2
  331. package/dist/transitions.js +443 -2
  332. package/dist/type-checker.js +581 -2
  333. package/dist/types/component-types.d.ts +54 -0
  334. package/dist/types/component-types.js +0 -1
  335. package/dist/types/config-types.js +0 -1
  336. package/dist/types/context-types.js +0 -1
  337. package/dist/types/csp-types.js +0 -1
  338. package/dist/types/directive-types.js +3 -2
  339. package/dist/types/index.d.ts +5 -0
  340. package/dist/types/index.js +1 -2
  341. package/dist/types/pwa-types.js +0 -1
  342. package/dist/types.js +1 -2
  343. package/dist/typescript-templates.js +386 -4
  344. package/dist/utils.js +942 -2
  345. package/dist/validator.js +171 -2
  346. package/dist/variable-extractor.js +1094 -2
  347. package/dist/view-composers.js +29 -2
  348. package/dist/virtual-scrolling.js +454 -2
  349. package/dist/visual-editor.js +688 -28
  350. package/dist/vue-template.js +475 -2
  351. package/dist/web-components/css-scoping.js +177 -2
  352. package/dist/web-components/index.js +13 -2
  353. package/dist/web-components/reactive-generator.js +121 -56
  354. package/dist/web-components.js +1447 -2
  355. package/dist/x-element.js +17 -5
  356. package/package.json +5 -6
  357. package/dist/chunk-04n64bnt.js +0 -5
  358. package/dist/chunk-06w68hyg.js +0 -7
  359. package/dist/chunk-07y6m5xx.js +0 -3
  360. package/dist/chunk-095s3972.js +0 -99
  361. package/dist/chunk-09k66d8a.js +0 -3
  362. package/dist/chunk-0a61y94n.js +0 -24
  363. package/dist/chunk-0b9w2w1y.js +0 -1
  364. package/dist/chunk-0dx4q6yq.js +0 -3
  365. package/dist/chunk-0dz85jrp.js +0 -3
  366. package/dist/chunk-0jd0pndq.js +0 -3
  367. package/dist/chunk-0p0nyq50.js +0 -6
  368. package/dist/chunk-0p1h3p3w.js +0 -3
  369. package/dist/chunk-0qakwen3.js +0 -1
  370. package/dist/chunk-0qnz93q2.js +0 -3
  371. package/dist/chunk-10debkj5.js +0 -71
  372. package/dist/chunk-15nesxgt.js +0 -5224
  373. package/dist/chunk-1sr54zp8.js +0 -3
  374. package/dist/chunk-1v49fwr5.js +0 -3
  375. package/dist/chunk-1xz0w746.js +0 -1539
  376. package/dist/chunk-1z5nhbjt.js +0 -90
  377. package/dist/chunk-1zgsgk4b.js +0 -1
  378. package/dist/chunk-20swzkx3.js +0 -216
  379. package/dist/chunk-27zsyhrd.js +0 -4
  380. package/dist/chunk-29y0hk5z.js +0 -3
  381. package/dist/chunk-2cdvw21b.js +0 -274
  382. package/dist/chunk-2j21d3ka.js +0 -161
  383. package/dist/chunk-2jxbwnkz.js +0 -2
  384. package/dist/chunk-31dr4bys.js +0 -6
  385. package/dist/chunk-35faj94w.js +0 -15
  386. package/dist/chunk-39gm08bn.js +0 -39
  387. package/dist/chunk-3a4qsygv.js +0 -51
  388. package/dist/chunk-3te20hqw.js +0 -3
  389. package/dist/chunk-43t7faps.js +0 -24
  390. package/dist/chunk-44hd3kab.js +0 -1
  391. package/dist/chunk-47kpewks.js +0 -71
  392. package/dist/chunk-4aj7ftqb.js +0 -1
  393. package/dist/chunk-4d2y57k7.js +0 -3
  394. package/dist/chunk-4deg33rw.js +0 -57
  395. package/dist/chunk-4k7d8p8d.js +0 -188
  396. package/dist/chunk-4qcy5tx6.js +0 -53
  397. package/dist/chunk-4x7kae4j.js +0 -3
  398. package/dist/chunk-55nwdnsd.js +0 -3
  399. package/dist/chunk-55yp0q8t.js +0 -201
  400. package/dist/chunk-5f43yz6z.js +0 -12
  401. package/dist/chunk-5shey2e4.js +0 -3
  402. package/dist/chunk-6b5k6w2q.js +0 -7
  403. package/dist/chunk-6djzdes9.js +0 -14
  404. package/dist/chunk-6e4c6g46.js +0 -3
  405. package/dist/chunk-6eqbxcrd.js +0 -8
  406. package/dist/chunk-7074g241.js +0 -3
  407. package/dist/chunk-7b6s3g65.js +0 -179
  408. package/dist/chunk-7cgmq685.js +0 -33
  409. package/dist/chunk-7dkz6z2s.js +0 -3
  410. package/dist/chunk-7ed3tean.js +0 -3
  411. package/dist/chunk-7gd339hd.js +0 -109
  412. package/dist/chunk-7j5e8sdj.js +0 -3
  413. package/dist/chunk-7n8g0nfn.js +0 -38
  414. package/dist/chunk-7sqdeqsw.js +0 -1
  415. package/dist/chunk-80g54ncj.js +0 -3
  416. package/dist/chunk-8a5bxece.js +0 -4
  417. package/dist/chunk-8ahwt6a4.js +0 -721
  418. package/dist/chunk-8b3z0zd5.js +0 -8
  419. package/dist/chunk-8dhdpa5h.js +0 -4
  420. package/dist/chunk-8n9nnqr6.js +0 -3
  421. package/dist/chunk-8qc1bsym.js +0 -3
  422. package/dist/chunk-8va64c9n.js +0 -3
  423. package/dist/chunk-8vtm0m84.js +0 -3
  424. package/dist/chunk-8xj7c3mf.js +0 -8
  425. package/dist/chunk-988dw6q3.js +0 -9
  426. package/dist/chunk-9b6cec0v.js +0 -321
  427. package/dist/chunk-9cf97f9p.js +0 -3
  428. package/dist/chunk-9ecv8aqj.js +0 -14
  429. package/dist/chunk-9eq3ht5f.js +0 -8
  430. package/dist/chunk-9jtj77jx.js +0 -3
  431. package/dist/chunk-9t14se2t.js +0 -83
  432. package/dist/chunk-9wmq2272.js +0 -3
  433. package/dist/chunk-9zbk5zx5.js +0 -57
  434. package/dist/chunk-a2g2qb2y.js +0 -386
  435. package/dist/chunk-a3hyn4we.js +0 -79
  436. package/dist/chunk-a87qqft6.js +0 -194
  437. package/dist/chunk-ah88wzbg.js +0 -10
  438. package/dist/chunk-akf1r75r.js +0 -102
  439. package/dist/chunk-amaa1bev.js +0 -2
  440. package/dist/chunk-avx8aydt.js +0 -3
  441. package/dist/chunk-ay9qf4zj.js +0 -6
  442. package/dist/chunk-aywxfqev.js +0 -3
  443. package/dist/chunk-azkegjd8.js +0 -61
  444. package/dist/chunk-b77wjyn7.js +0 -84
  445. package/dist/chunk-baf1hfwh.js +0 -231
  446. package/dist/chunk-bdk6g1vj.js +0 -3
  447. package/dist/chunk-bhqgmyqw.js +0 -36
  448. package/dist/chunk-bk3j0n82.js +0 -341
  449. package/dist/chunk-bndmdahk.js +0 -3
  450. package/dist/chunk-bpgg59wa.js +0 -3
  451. package/dist/chunk-bs3gmfxz.js +0 -5
  452. package/dist/chunk-bxc7kjsk.js +0 -32
  453. package/dist/chunk-c7jg8w13.js +0 -3
  454. package/dist/chunk-ckxjqqn9.js +0 -3
  455. package/dist/chunk-cn8az1b4.js +0 -1
  456. package/dist/chunk-d0zjtdw4.js +0 -29
  457. package/dist/chunk-d1qh1x2g.js +0 -3
  458. package/dist/chunk-djddhmcc.js +0 -60
  459. package/dist/chunk-dqn9gyhb.js +0 -21
  460. package/dist/chunk-drjq2zwg.js +0 -3
  461. package/dist/chunk-dvfs1h3c.js +0 -117
  462. package/dist/chunk-e2q9c5vq.js +0 -8
  463. package/dist/chunk-e98v1bc6.js +0 -12
  464. package/dist/chunk-ejayeex8.js +0 -2
  465. package/dist/chunk-ejh8fyak.js +0 -3
  466. package/dist/chunk-ek2w6zvy.js +0 -4
  467. package/dist/chunk-ewa88139.js +0 -6
  468. package/dist/chunk-fjk3x41y.js +0 -3
  469. package/dist/chunk-frg705zq.js +0 -302
  470. package/dist/chunk-fzm3y0r3.js +0 -267
  471. package/dist/chunk-g1vt329s.js +0 -21
  472. package/dist/chunk-g4ps1dj8.js +0 -140
  473. package/dist/chunk-gkzq8zw4.js +0 -23
  474. package/dist/chunk-gz5fmp3q.js +0 -3
  475. package/dist/chunk-h0hjy0kn.js +0 -292
  476. package/dist/chunk-h5jxydqq.js +0 -147
  477. package/dist/chunk-h5wa62ek.js +0 -145
  478. package/dist/chunk-h7aq56qj.js +0 -28
  479. package/dist/chunk-h82kjdr4.js +0 -83
  480. package/dist/chunk-hbehnm18.js +0 -3
  481. package/dist/chunk-hbgxbgam.js +0 -58
  482. package/dist/chunk-hc2mf5h6.js +0 -4
  483. package/dist/chunk-hjm2xab3.js +0 -3
  484. package/dist/chunk-hjv76kcw.js +0 -1
  485. package/dist/chunk-hrnnh4tq.js +0 -142
  486. package/dist/chunk-ht43ds42.js +0 -236
  487. package/dist/chunk-hxx3za24.js +0 -62
  488. package/dist/chunk-hy8820vc.js +0 -6
  489. package/dist/chunk-j447q024.js +0 -28
  490. package/dist/chunk-j58vh0w6.js +0 -314
  491. package/dist/chunk-j8tn8enq.js +0 -3
  492. package/dist/chunk-jc0fc4ht.js +0 -11
  493. package/dist/chunk-jcs0ymw7.js +0 -3
  494. package/dist/chunk-jjamhxpm.js +0 -139
  495. package/dist/chunk-jjb05d21.js +0 -3
  496. package/dist/chunk-jjdq01dv.js +0 -128
  497. package/dist/chunk-jnmgm2xw.js +0 -5
  498. package/dist/chunk-jpndqst5.js +0 -3
  499. package/dist/chunk-jt0ezawy.js +0 -351
  500. package/dist/chunk-jz73j3qs.js +0 -169
  501. package/dist/chunk-k21df0pg.js +0 -10
  502. package/dist/chunk-k848dzsa.js +0 -429
  503. package/dist/chunk-kdfe4t91.js +0 -3
  504. package/dist/chunk-keawsbpn.js +0 -5
  505. package/dist/chunk-kgym7ch9.js +0 -8
  506. package/dist/chunk-khdn7jwe.js +0 -3
  507. package/dist/chunk-km25cwz6.js +0 -3
  508. package/dist/chunk-knm8a8yx.js +0 -398
  509. package/dist/chunk-krqn0ddk.js +0 -3
  510. package/dist/chunk-ktkmvaa8.js +0 -1
  511. package/dist/chunk-kx6eb6ma.js +0 -4
  512. package/dist/chunk-kypas8vy.js +0 -4
  513. package/dist/chunk-m167kjhv.js +0 -4
  514. package/dist/chunk-m491r0rj.js +0 -358
  515. package/dist/chunk-m8448qby.js +0 -11
  516. package/dist/chunk-mgj88zeq.js +0 -64
  517. package/dist/chunk-mhgk632d.js +0 -3
  518. package/dist/chunk-mv4fb50w.js +0 -1
  519. package/dist/chunk-n5kg7fpx.js +0 -7
  520. package/dist/chunk-n98x35xd.js +0 -8
  521. package/dist/chunk-n9dhs1dw.js +0 -106
  522. package/dist/chunk-nd9rmddh.js +0 -6
  523. package/dist/chunk-ngxfwzq3.js +0 -3
  524. package/dist/chunk-nhv099jv.js +0 -19
  525. package/dist/chunk-nm15ccsg.js +0 -5
  526. package/dist/chunk-npfmdb6y.js +0 -71
  527. package/dist/chunk-nvwb4x04.js +0 -3
  528. package/dist/chunk-nw34xajc.js +0 -8
  529. package/dist/chunk-p077sw22.js +0 -3
  530. package/dist/chunk-p1h8065h.js +0 -3
  531. package/dist/chunk-p3e0cqtt.js +0 -34
  532. package/dist/chunk-p3fpb79v.js +0 -477
  533. package/dist/chunk-p52yzjq6.js +0 -498
  534. package/dist/chunk-p73meypx.js +0 -134
  535. package/dist/chunk-pa9zb7ty.js +0 -4
  536. package/dist/chunk-payfb24w.js +0 -207
  537. package/dist/chunk-pcm1vd8w.js +0 -3
  538. package/dist/chunk-pcntd9h4.js +0 -3
  539. package/dist/chunk-pg1fvqb9.js +0 -167
  540. package/dist/chunk-psc3wfcf.js +0 -1115
  541. package/dist/chunk-pznnww6k.js +0 -6
  542. package/dist/chunk-q6zhd9yf.js +0 -3
  543. package/dist/chunk-qa59zejf.js +0 -246
  544. package/dist/chunk-qvrbjpdc.js +0 -3
  545. package/dist/chunk-qygvvygy.js +0 -12
  546. package/dist/chunk-r0jcmpv6.js +0 -68
  547. package/dist/chunk-r5m9xtm7.js +0 -3
  548. package/dist/chunk-rh80q1nd.js +0 -1
  549. package/dist/chunk-rkffm9sy.js +0 -128
  550. package/dist/chunk-rpx5fa65.js +0 -3
  551. package/dist/chunk-rqxf5hns.js +0 -3
  552. package/dist/chunk-rtr974rc.js +0 -30
  553. package/dist/chunk-rvptcndz.js +0 -3
  554. package/dist/chunk-rw26rpek.js +0 -171
  555. package/dist/chunk-rw7937v4.js +0 -19
  556. package/dist/chunk-rwrv9wbf.js +0 -3
  557. package/dist/chunk-rz2ec6g7.js +0 -347
  558. package/dist/chunk-s6ja2bdg.js +0 -66
  559. package/dist/chunk-scpkdrdb.js +0 -4
  560. package/dist/chunk-shv88d2d.js +0 -10
  561. package/dist/chunk-t0c9wvpr.js +0 -3
  562. package/dist/chunk-tffh3b1e.js +0 -35
  563. package/dist/chunk-tg2f1mzq.js +0 -11
  564. package/dist/chunk-trfswy66.js +0 -77
  565. package/dist/chunk-tzwtg722.js +0 -3
  566. package/dist/chunk-v7f8jj15.js +0 -4
  567. package/dist/chunk-v8j49spx.js +0 -3
  568. package/dist/chunk-v97390pe.js +0 -1
  569. package/dist/chunk-vcr5pzpx.js +0 -233
  570. package/dist/chunk-veeerpwa.js +0 -3
  571. package/dist/chunk-vg5kt6az.js +0 -4
  572. package/dist/chunk-vgv7jvyz.js +0 -219
  573. package/dist/chunk-vjbefncc.js +0 -3
  574. package/dist/chunk-vmxjghsm.js +0 -3
  575. package/dist/chunk-vw7vqd76.js +0 -3
  576. package/dist/chunk-vx22he47.js +0 -1
  577. package/dist/chunk-w3b6m427.js +0 -45
  578. package/dist/chunk-wazkqv7n.js +0 -3
  579. package/dist/chunk-wf7zrjsw.js +0 -138
  580. package/dist/chunk-wfg2gm11.js +0 -3
  581. package/dist/chunk-wg9k6h8w.js +0 -12
  582. package/dist/chunk-wkz2vwkr.js +0 -81
  583. package/dist/chunk-wvef3ngh.js +0 -127
  584. package/dist/chunk-wvf31nzs.js +0 -3
  585. package/dist/chunk-x05nxhyv.js +0 -262
  586. package/dist/chunk-x0770gt9.js +0 -4
  587. package/dist/chunk-x24s4heg.js +0 -1166
  588. package/dist/chunk-x3r64r0c.js +0 -6
  589. package/dist/chunk-x5g9w4hh.js +0 -5
  590. package/dist/chunk-xgkv66q5.js +0 -2230
  591. package/dist/chunk-xqq1vxb6.js +0 -1
  592. package/dist/chunk-xs03kc1h.js +0 -196
  593. package/dist/chunk-xv34zbp4.js +0 -3
  594. package/dist/chunk-xw36p73h.js +0 -90
  595. package/dist/chunk-xyg1r5w0.js +0 -4
  596. package/dist/chunk-xys2sxh6.js +0 -16
  597. package/dist/chunk-y0qg6rrv.js +0 -3
  598. package/dist/chunk-y1k17c8b.js +0 -21
  599. package/dist/chunk-y5xz0jc4.js +0 -141
  600. package/dist/chunk-y6xsqe9a.js +0 -10
  601. package/dist/chunk-yb1t2h8h.js +0 -11
  602. package/dist/chunk-ygvyc6wv.js +0 -90
  603. package/dist/chunk-yj4x5ehw.js +0 -21
  604. package/dist/chunk-yn38c15w.js +0 -4
  605. package/dist/chunk-ynhngsdh.js +0 -3
  606. package/dist/chunk-yrsb6j3z.js +0 -3
  607. package/dist/chunk-yywfvfph.js +0 -2
  608. package/dist/chunk-zcxzdrn7.js +0 -5
  609. package/dist/chunk-zen6ax1y.js +0 -27
  610. package/dist/chunk-zf2pek72.js +0 -3
  611. package/dist/chunk-zk3d0jjf.js +0 -7
  612. package/dist/chunk-zy3rp1ab.js +0 -93
@@ -1,2 +1,94 @@
1
- // @bun
2
- import"../chunk-xv34zbp4.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-xv34zbp4.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-xv34zbp4.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-xv34zbp4.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-xv34zbp4.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
+ }