@vizejs/composable 0.426.2 → 0.427.0

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 (544) hide show
  1. package/dist/abort-signal.d.mts +1 -1
  2. package/dist/active-element.d.mts +37 -0
  3. package/dist/active-element.mjs +56 -0
  4. package/dist/animate.d.mts +114 -0
  5. package/dist/animate.mjs +157 -0
  6. package/dist/battery.d.mts +61 -0
  7. package/dist/battery.mjs +90 -0
  8. package/dist/breakpoints.d.mts +82 -0
  9. package/dist/breakpoints.mjs +91 -0
  10. package/dist/catalog-BeTXFKxF.d.mts +4188 -0
  11. package/dist/catalog-r4Z5nptX.mjs +5144 -0
  12. package/dist/catalog.d.mts +1 -1
  13. package/dist/catalog.mjs +1 -1
  14. package/dist/color-mode.d.mts +131 -0
  15. package/dist/color-mode.mjs +133 -0
  16. package/dist/computed-async.d.mts +63 -0
  17. package/dist/computed-async.mjs +43 -0
  18. package/dist/computed-with-control.d.mts +44 -0
  19. package/dist/computed-with-control.mjs +54 -0
  20. package/dist/create-event-hook.d.mts +77 -0
  21. package/dist/create-event-hook.mjs +66 -0
  22. package/dist/create-global-state.d.mts +24 -0
  23. package/dist/create-global-state.mjs +34 -0
  24. package/dist/create-injection-state.d.mts +51 -0
  25. package/dist/create-injection-state.mjs +19 -0
  26. package/dist/create-shared-composable.d.mts +38 -0
  27. package/dist/create-shared-composable.mjs +54 -0
  28. package/dist/device-motion.d.mts +71 -0
  29. package/dist/device-motion.mjs +75 -0
  30. package/dist/device-orientation.d.mts +82 -0
  31. package/dist/device-orientation.mjs +86 -0
  32. package/dist/device-pixel-ratio.d.mts +45 -0
  33. package/dist/device-pixel-ratio.mjs +50 -0
  34. package/dist/document-visibility.mjs +6 -2
  35. package/dist/draggable.d.mts +121 -0
  36. package/dist/draggable.mjs +153 -0
  37. package/dist/element-bounding.d.mts +87 -0
  38. package/dist/element-bounding.mjs +95 -0
  39. package/dist/element-by-point.d.mts +70 -0
  40. package/dist/element-by-point.mjs +69 -0
  41. package/dist/element-hover.d.mts +42 -0
  42. package/dist/element-hover.mjs +70 -0
  43. package/dist/element-ref.d.mts +34 -0
  44. package/dist/element-ref.mjs +23 -0
  45. package/dist/element-target-Crpxl4D9.d.mts +60 -0
  46. package/dist/element-target.d.mts +2 -0
  47. package/dist/element-target.mjs +58 -0
  48. package/dist/event-listener.mjs +7 -3
  49. package/dist/focus.d.mts +69 -0
  50. package/dist/focus.mjs +124 -0
  51. package/dist/fps.d.mts +59 -0
  52. package/dist/fps.mjs +64 -0
  53. package/dist/geolocation.d.mts +98 -0
  54. package/dist/geolocation.mjs +86 -0
  55. package/dist/i18n.d.mts +237 -0
  56. package/dist/i18n.mjs +215 -0
  57. package/dist/icu-message.d.mts +235 -0
  58. package/dist/icu-message.mjs +343 -0
  59. package/dist/idle.d.mts +79 -0
  60. package/dist/idle.mjs +90 -0
  61. package/dist/index.d.mts +172 -6
  62. package/dist/index.mjs +173 -7
  63. package/dist/infinite-scroll.d.mts +56 -0
  64. package/dist/infinite-scroll.mjs +72 -0
  65. package/dist/intersection-observer.d.mts +122 -0
  66. package/dist/intersection-observer.mjs +117 -0
  67. package/dist/magic-keys.d.mts +121 -0
  68. package/dist/magic-keys.mjs +163 -0
  69. package/dist/math.d.mts +96 -0
  70. package/dist/math.mjs +84 -0
  71. package/dist/media-query.d.mts +3 -1
  72. package/dist/media-query.mjs +5 -3
  73. package/dist/mouse-in-element.d.mts +49 -0
  74. package/dist/mouse-in-element.mjs +66 -0
  75. package/dist/mouse.d.mts +77 -0
  76. package/dist/mouse.mjs +100 -0
  77. package/dist/mutation-observer.d.mts +98 -0
  78. package/dist/mutation-observer.mjs +69 -0
  79. package/dist/network.d.mts +96 -0
  80. package/dist/network.mjs +117 -0
  81. package/dist/on-click-outside.d.mts +69 -0
  82. package/dist/on-click-outside.mjs +115 -0
  83. package/dist/on-key-stroke.d.mts +71 -0
  84. package/dist/on-key-stroke.mjs +79 -0
  85. package/dist/on-long-press.d.mts +82 -0
  86. package/dist/on-long-press.mjs +105 -0
  87. package/dist/on-start-typing.d.mts +44 -0
  88. package/dist/on-start-typing.mjs +61 -0
  89. package/dist/page-leave.d.mts +26 -0
  90. package/dist/page-leave.mjs +40 -0
  91. package/dist/parent-element.d.mts +16 -0
  92. package/dist/parent-element.mjs +27 -0
  93. package/dist/pinch.d.mts +73 -0
  94. package/dist/pinch.mjs +138 -0
  95. package/dist/pointer-lock.d.mts +79 -0
  96. package/dist/pointer-lock.mjs +126 -0
  97. package/dist/pointer.d.mts +78 -0
  98. package/dist/pointer.mjs +95 -0
  99. package/dist/preferences.d.mts +55 -0
  100. package/dist/preferences.mjs +63 -0
  101. package/dist/preferred-languages.d.mts +43 -0
  102. package/dist/preferred-languages.mjs +44 -0
  103. package/dist/reactify.d.mts +28 -0
  104. package/dist/reactify.mjs +7 -0
  105. package/dist/ref-auto-reset.d.mts +47 -0
  106. package/dist/ref-auto-reset.mjs +70 -0
  107. package/dist/ref-debounced.d.mts +29 -0
  108. package/dist/ref-debounced.mjs +29 -0
  109. package/dist/ref-default.d.mts +27 -0
  110. package/dist/ref-default.mjs +33 -0
  111. package/dist/resize-observer.d.mts +96 -0
  112. package/dist/resize-observer.mjs +111 -0
  113. package/dist/resolver.d.mts +124 -0
  114. package/dist/resolver.mjs +138 -0
  115. package/dist/retry-async.d.mts +2 -2
  116. package/dist/retry-delay-DYsdq4SE.d.mts +73 -0
  117. package/dist/retry-delay.d.mts +1 -72
  118. package/dist/screen-orientation.d.mts +77 -0
  119. package/dist/screen-orientation.mjs +74 -0
  120. package/dist/scroll-lock.d.mts +37 -0
  121. package/dist/scroll-lock.mjs +50 -0
  122. package/dist/scroll.d.mts +158 -0
  123. package/dist/scroll.mjs +172 -0
  124. package/dist/standard-schema-DmNgFVK5.d.mts +107 -0
  125. package/dist/standard-schema.d.mts +2 -0
  126. package/dist/standard-schema.mjs +60 -0
  127. package/dist/swipe.d.mts +125 -0
  128. package/dist/swipe.mjs +225 -0
  129. package/dist/sync-ref.d.mts +80 -0
  130. package/dist/sync-ref.mjs +43 -0
  131. package/dist/text-selection.d.mts +46 -0
  132. package/dist/text-selection.mjs +62 -0
  133. package/dist/textarea-autosize.d.mts +58 -0
  134. package/dist/textarea-autosize.mjs +54 -0
  135. package/dist/timeout-scheduler-CI8RVLZs.d.mts +18 -0
  136. package/dist/timeout-scheduler.d.mts +1 -17
  137. package/dist/to-reactive.d.mts +26 -0
  138. package/dist/to-reactive.mjs +46 -0
  139. package/dist/transition.d.mts +125 -0
  140. package/dist/transition.mjs +266 -0
  141. package/dist/until.d.mts +177 -0
  142. package/dist/until.mjs +111 -0
  143. package/dist/use-array.d.mts +112 -0
  144. package/dist/use-array.mjs +90 -0
  145. package/dist/use-async-queue.d.mts +109 -0
  146. package/dist/use-async-queue.mjs +96 -0
  147. package/dist/use-async-state.d.mts +86 -0
  148. package/dist/use-async-state.mjs +41 -0
  149. package/dist/use-barcode-detector.d.mts +159 -0
  150. package/dist/use-barcode-detector.mjs +143 -0
  151. package/dist/use-bluetooth.d.mts +164 -0
  152. package/dist/use-bluetooth.mjs +183 -0
  153. package/dist/use-broadcast-channel.d.mts +115 -0
  154. package/dist/use-broadcast-channel.mjs +121 -0
  155. package/dist/use-builtin-ai.d.mts +342 -0
  156. package/dist/use-builtin-ai.mjs +261 -0
  157. package/dist/use-clipboard.d.mts +169 -0
  158. package/dist/use-clipboard.mjs +226 -0
  159. package/dist/use-compression-stream.d.mts +173 -0
  160. package/dist/use-compression-stream.mjs +166 -0
  161. package/dist/use-confirm-dialog.d.mts +70 -0
  162. package/dist/use-confirm-dialog.mjs +57 -0
  163. package/dist/use-contact-picker.d.mts +117 -0
  164. package/dist/use-contact-picker.mjs +103 -0
  165. package/dist/use-cookie.d.mts +196 -0
  166. package/dist/use-cookie.mjs +259 -0
  167. package/dist/use-countdown.d.mts +85 -0
  168. package/dist/use-countdown.mjs +74 -0
  169. package/dist/use-css-var.d.mts +96 -0
  170. package/dist/use-css-var.mjs +104 -0
  171. package/dist/use-cycle-list.d.mts +76 -0
  172. package/dist/use-cycle-list.mjs +39 -0
  173. package/dist/use-date-format.d.mts +103 -0
  174. package/dist/use-date-format.mjs +147 -0
  175. package/dist/use-date-time-format.d.mts +75 -0
  176. package/dist/use-date-time-format.mjs +53 -0
  177. package/dist/use-debounced.d.mts +1 -1
  178. package/dist/use-display-media.d.mts +62 -0
  179. package/dist/use-display-media.mjs +46 -0
  180. package/dist/use-display-names.d.mts +75 -0
  181. package/dist/use-display-names.mjs +52 -0
  182. package/dist/use-document-title.d.mts +88 -0
  183. package/dist/use-document-title.mjs +100 -0
  184. package/dist/use-drop-zone.d.mts +128 -0
  185. package/dist/use-drop-zone.mjs +154 -0
  186. package/dist/use-event-source.d.mts +184 -0
  187. package/dist/use-event-source.mjs +226 -0
  188. package/dist/use-eye-dropper.d.mts +79 -0
  189. package/dist/use-eye-dropper.mjs +68 -0
  190. package/dist/use-favicon.d.mts +78 -0
  191. package/dist/use-favicon.mjs +68 -0
  192. package/dist/use-fetch.d.mts +230 -0
  193. package/dist/use-fetch.mjs +263 -0
  194. package/dist/use-field.d.mts +107 -0
  195. package/dist/use-field.mjs +117 -0
  196. package/dist/use-file-dialog.d.mts +139 -0
  197. package/dist/use-file-dialog.mjs +101 -0
  198. package/dist/use-file-system-access.d.mts +184 -0
  199. package/dist/use-file-system-access.mjs +151 -0
  200. package/dist/use-form-field-props.d.mts +235 -0
  201. package/dist/use-form-field-props.mjs +164 -0
  202. package/dist/use-form.d.mts +324 -0
  203. package/dist/use-form.mjs +482 -0
  204. package/dist/use-fullscreen.d.mts +104 -0
  205. package/dist/use-fullscreen.mjs +95 -0
  206. package/dist/use-gamepad.d.mts +242 -0
  207. package/dist/use-gamepad.mjs +218 -0
  208. package/dist/use-hid.d.mts +160 -0
  209. package/dist/use-hid.mjs +156 -0
  210. package/dist/use-id-generator.d.mts +44 -0
  211. package/dist/use-id-generator.mjs +38 -0
  212. package/dist/use-image.d.mts +125 -0
  213. package/dist/use-image.mjs +109 -0
  214. package/dist/use-indexed-db.d.mts +207 -0
  215. package/dist/use-indexed-db.mjs +251 -0
  216. package/dist/use-interval-BA55gTHT.d.mts +140 -0
  217. package/dist/use-interval.d.mts +2 -0
  218. package/dist/use-interval.mjs +100 -0
  219. package/dist/use-list-format.d.mts +60 -0
  220. package/dist/use-list-format.mjs +40 -0
  221. package/dist/use-machine.d.mts +90 -0
  222. package/dist/use-machine.mjs +78 -0
  223. package/dist/use-map.d.mts +90 -0
  224. package/dist/use-map.mjs +70 -0
  225. package/dist/use-media-controls.d.mts +198 -0
  226. package/dist/use-media-controls.mjs +264 -0
  227. package/dist/use-memoize.d.mts +73 -0
  228. package/dist/use-memoize.mjs +28 -0
  229. package/dist/use-mounted.d.mts +24 -0
  230. package/dist/use-mounted.mjs +29 -0
  231. package/dist/use-navigation-api.d.mts +360 -0
  232. package/dist/use-navigation-api.mjs +231 -0
  233. package/dist/use-notification.d.mts +139 -0
  234. package/dist/use-notification.mjs +131 -0
  235. package/dist/use-now.d.mts +137 -0
  236. package/dist/use-now.mjs +44 -0
  237. package/dist/use-number-format.d.mts +73 -0
  238. package/dist/use-number-format.mjs +58 -0
  239. package/dist/use-object-url.d.mts +47 -0
  240. package/dist/use-object-url.mjs +54 -0
  241. package/dist/use-offset-pagination.d.mts +91 -0
  242. package/dist/use-offset-pagination.mjs +80 -0
  243. package/dist/use-payment-request.d.mts +239 -0
  244. package/dist/use-payment-request.mjs +206 -0
  245. package/dist/use-performance-observer.d.mts +285 -0
  246. package/dist/use-performance-observer.mjs +132 -0
  247. package/dist/use-permission.d.mts +99 -0
  248. package/dist/use-permission.mjs +92 -0
  249. package/dist/use-plural-rules.d.mts +79 -0
  250. package/dist/use-plural-rules.mjs +59 -0
  251. package/dist/use-push-subscription.d.mts +154 -0
  252. package/dist/use-push-subscription.mjs +146 -0
  253. package/dist/use-queue.d.mts +89 -0
  254. package/dist/use-queue.mjs +116 -0
  255. package/dist/use-raf-fn.d.mts +87 -0
  256. package/dist/use-raf-fn.mjs +99 -0
  257. package/dist/use-relative-time-format.d.mts +111 -0
  258. package/dist/use-relative-time-format.mjs +119 -0
  259. package/dist/use-request-idle-callback.d.mts +122 -0
  260. package/dist/use-request-idle-callback.mjs +147 -0
  261. package/dist/use-route-query.d.mts +149 -0
  262. package/dist/use-route-query.mjs +86 -0
  263. package/dist/use-scheduler-post-task.d.mts +156 -0
  264. package/dist/use-scheduler-post-task.mjs +182 -0
  265. package/dist/use-screen-details.d.mts +205 -0
  266. package/dist/use-screen-details.mjs +188 -0
  267. package/dist/use-script-tag.d.mts +162 -0
  268. package/dist/use-script-tag.mjs +171 -0
  269. package/dist/use-segmenter.d.mts +78 -0
  270. package/dist/use-segmenter.mjs +66 -0
  271. package/dist/use-selection.d.mts +125 -0
  272. package/dist/use-selection.mjs +77 -0
  273. package/dist/use-serial.d.mts +165 -0
  274. package/dist/use-serial.mjs +205 -0
  275. package/dist/use-service-worker.d.mts +177 -0
  276. package/dist/use-service-worker.mjs +178 -0
  277. package/dist/use-set.d.mts +96 -0
  278. package/dist/use-set.mjs +74 -0
  279. package/dist/use-share.d.mts +92 -0
  280. package/dist/use-share.mjs +99 -0
  281. package/dist/use-sorted-locale.d.mts +62 -0
  282. package/dist/use-sorted-locale.mjs +52 -0
  283. package/dist/use-sorted.d.mts +29 -0
  284. package/dist/use-sorted.mjs +14 -0
  285. package/dist/use-speech-recognition.d.mts +150 -0
  286. package/dist/use-speech-recognition.mjs +168 -0
  287. package/dist/use-speech-synthesis.d.mts +148 -0
  288. package/dist/use-speech-synthesis.mjs +152 -0
  289. package/dist/use-stack.d.mts +83 -0
  290. package/dist/use-stack.mjs +93 -0
  291. package/dist/use-stepper.d.mts +79 -0
  292. package/dist/use-stepper.mjs +52 -0
  293. package/dist/use-storage-estimate.d.mts +151 -0
  294. package/dist/use-storage-estimate.mjs +170 -0
  295. package/dist/use-storage.d.mts +214 -0
  296. package/dist/use-storage.mjs +415 -0
  297. package/dist/use-style-tag.d.mts +102 -0
  298. package/dist/use-style-tag.mjs +91 -0
  299. package/dist/use-supported.d.mts +23 -0
  300. package/dist/use-supported.mjs +26 -0
  301. package/dist/use-throttled.d.mts +1 -1
  302. package/dist/use-time-ago.d.mts +163 -0
  303. package/dist/use-time-ago.mjs +95 -0
  304. package/dist/use-timeout.d.mts +122 -0
  305. package/dist/use-timeout.mjs +65 -0
  306. package/dist/use-url-hash.d.mts +88 -0
  307. package/dist/use-url-hash.mjs +145 -0
  308. package/dist/use-url-search-params.d.mts +223 -0
  309. package/dist/use-url-search-params.mjs +295 -0
  310. package/dist/use-usb.d.mts +212 -0
  311. package/dist/use-usb.mjs +137 -0
  312. package/dist/use-user-activation.d.mts +83 -0
  313. package/dist/use-user-activation.mjs +113 -0
  314. package/dist/use-user-media.d.mts +194 -0
  315. package/dist/use-user-media.mjs +214 -0
  316. package/dist/use-v-model.d.mts +113 -0
  317. package/dist/use-v-model.mjs +40 -0
  318. package/dist/use-vibrate.d.mts +81 -0
  319. package/dist/use-vibrate.mjs +90 -0
  320. package/dist/use-view-transition.d.mts +106 -0
  321. package/dist/use-view-transition.mjs +101 -0
  322. package/dist/use-visual-viewport.d.mts +105 -0
  323. package/dist/use-visual-viewport.mjs +104 -0
  324. package/dist/use-wake-lock.d.mts +96 -0
  325. package/dist/use-wake-lock.mjs +106 -0
  326. package/dist/use-web-authn.d.mts +404 -0
  327. package/dist/use-web-authn.mjs +323 -0
  328. package/dist/use-web-locks.d.mts +180 -0
  329. package/dist/use-web-locks.mjs +136 -0
  330. package/dist/use-web-midi.d.mts +148 -0
  331. package/dist/use-web-midi.mjs +140 -0
  332. package/dist/use-web-vitals.d.mts +142 -0
  333. package/dist/use-web-vitals.mjs +248 -0
  334. package/dist/use-websocket.d.mts +218 -0
  335. package/dist/use-websocket.mjs +257 -0
  336. package/dist/use-worker-fn.d.mts +119 -0
  337. package/dist/use-worker-fn.mjs +162 -0
  338. package/dist/virtual-list.d.mts +105 -0
  339. package/dist/virtual-list.mjs +128 -0
  340. package/dist/watch-debounced.d.mts +84 -0
  341. package/dist/watch-debounced.mjs +84 -0
  342. package/dist/watch-ignorable.d.mts +47 -0
  343. package/dist/watch-ignorable.mjs +61 -0
  344. package/dist/watch-once.d.mts +29 -0
  345. package/dist/watch-once.mjs +10 -0
  346. package/dist/watch-pausable.d.mts +51 -0
  347. package/dist/watch-pausable.mjs +23 -0
  348. package/dist/watch-source.d.mts +29 -0
  349. package/dist/watch-source.mjs +1 -0
  350. package/dist/watch-throttled.d.mts +70 -0
  351. package/dist/watch-throttled.mjs +94 -0
  352. package/dist/whenever.d.mts +39 -0
  353. package/dist/whenever.mjs +41 -0
  354. package/dist/window-size.d.mts +87 -0
  355. package/dist/window-size.mjs +65 -0
  356. package/package.json +846 -5
  357. package/registry/files/abort-signal.ts +292 -0
  358. package/registry/files/active-element.ts +93 -0
  359. package/registry/files/animate.ts +322 -0
  360. package/registry/files/async-resource.ts +190 -0
  361. package/registry/files/battery.ts +166 -0
  362. package/registry/files/breakpoints.ts +166 -0
  363. package/registry/files/capability.ts +171 -0
  364. package/registry/files/color-mode.ts +274 -0
  365. package/registry/files/computed-async.ts +123 -0
  366. package/registry/files/computed-with-control.ts +80 -0
  367. package/registry/files/create-event-hook.ts +139 -0
  368. package/registry/files/create-global-state.ts +34 -0
  369. package/registry/files/create-injection-state.ts +75 -0
  370. package/registry/files/create-shared-composable.ts +74 -0
  371. package/registry/files/device-motion.ts +152 -0
  372. package/registry/files/device-orientation.ts +168 -0
  373. package/registry/files/device-pixel-ratio.ts +100 -0
  374. package/registry/files/disposal-scope.ts +201 -0
  375. package/registry/files/document-visibility.ts +152 -0
  376. package/registry/files/draggable.ts +273 -0
  377. package/registry/files/element-bounding.ts +175 -0
  378. package/registry/files/element-by-point.ts +149 -0
  379. package/registry/files/element-hover.ts +104 -0
  380. package/registry/files/element-ref.ts +58 -0
  381. package/registry/files/element-target.ts +99 -0
  382. package/registry/files/event-listener.ts +188 -0
  383. package/registry/files/focus.ts +181 -0
  384. package/registry/files/fps.ts +133 -0
  385. package/registry/files/geolocation.ts +214 -0
  386. package/registry/files/i18n.ts +524 -0
  387. package/registry/files/icu-message.ts +701 -0
  388. package/registry/files/idle.ts +176 -0
  389. package/registry/files/infinite-scroll.ts +135 -0
  390. package/registry/files/intersection-observer.ts +261 -0
  391. package/registry/files/locale.ts +148 -0
  392. package/registry/files/magic-keys.ts +298 -0
  393. package/registry/files/math.ts +175 -0
  394. package/registry/files/media-query.ts +102 -0
  395. package/registry/files/mouse-in-element.ts +107 -0
  396. package/registry/files/mouse.ts +167 -0
  397. package/registry/files/mutation-observer.ts +183 -0
  398. package/registry/files/network.ts +229 -0
  399. package/registry/files/on-click-outside.ts +178 -0
  400. package/registry/files/on-key-stroke.ts +135 -0
  401. package/registry/files/on-long-press.ts +188 -0
  402. package/registry/files/on-start-typing.ts +88 -0
  403. package/registry/files/page-leave.ts +57 -0
  404. package/registry/files/parent-element.ts +29 -0
  405. package/registry/files/pinch.ts +187 -0
  406. package/registry/files/pointer-lock.ts +232 -0
  407. package/registry/files/pointer.ts +153 -0
  408. package/registry/files/preferences.ts +98 -0
  409. package/registry/files/preferred-languages.ts +88 -0
  410. package/registry/files/reactify.ts +39 -0
  411. package/registry/files/ref-auto-reset.ts +102 -0
  412. package/registry/files/ref-debounced.ts +34 -0
  413. package/registry/files/ref-default.ts +35 -0
  414. package/registry/files/resize-observer.ts +220 -0
  415. package/registry/files/retry-async.ts +261 -0
  416. package/registry/files/retry-delay.ts +132 -0
  417. package/registry/files/scope.ts +21 -0
  418. package/registry/files/screen-orientation.ts +165 -0
  419. package/registry/files/scroll-lock.ts +80 -0
  420. package/registry/files/scroll.ts +338 -0
  421. package/registry/files/standard-schema.ts +163 -0
  422. package/registry/files/swipe.ts +321 -0
  423. package/registry/files/sync-ref.ts +166 -0
  424. package/registry/files/temporal.ts +182 -0
  425. package/registry/files/text-selection.ts +110 -0
  426. package/registry/files/textarea-autosize.ts +114 -0
  427. package/registry/files/timeout-scheduler.ts +16 -0
  428. package/registry/files/to-reactive.ts +44 -0
  429. package/registry/files/transition.ts +271 -0
  430. package/registry/files/until.ts +352 -0
  431. package/registry/files/use-array.ts +201 -0
  432. package/registry/files/use-async-queue.ts +278 -0
  433. package/registry/files/use-async-state.ts +139 -0
  434. package/registry/files/use-barcode-detector.ts +321 -0
  435. package/registry/files/use-bluetooth.ts +409 -0
  436. package/registry/files/use-broadcast-channel.ts +250 -0
  437. package/registry/files/use-builtin-ai.ts +674 -0
  438. package/registry/files/use-clipboard.ts +425 -0
  439. package/registry/files/use-compression-stream.ts +364 -0
  440. package/registry/files/use-confirm-dialog.ts +137 -0
  441. package/registry/files/use-contact-picker.ts +246 -0
  442. package/registry/files/use-cookie.ts +500 -0
  443. package/registry/files/use-countdown.ts +161 -0
  444. package/registry/files/use-counter.ts +147 -0
  445. package/registry/files/use-css-var.ts +191 -0
  446. package/registry/files/use-cycle-list.ts +136 -0
  447. package/registry/files/use-date-format.ts +281 -0
  448. package/registry/files/use-date-time-format.ts +113 -0
  449. package/registry/files/use-debounced.ts +163 -0
  450. package/registry/files/use-display-media.ts +89 -0
  451. package/registry/files/use-display-names.ts +122 -0
  452. package/registry/files/use-document-title.ts +196 -0
  453. package/registry/files/use-drop-zone.ts +287 -0
  454. package/registry/files/use-event-source.ts +470 -0
  455. package/registry/files/use-eye-dropper.ts +134 -0
  456. package/registry/files/use-favicon.ts +140 -0
  457. package/registry/files/use-fetch.ts +578 -0
  458. package/registry/files/use-field.ts +247 -0
  459. package/registry/files/use-file-dialog.ts +257 -0
  460. package/registry/files/use-file-system-access.ts +383 -0
  461. package/registry/files/use-form-field-props.ts +381 -0
  462. package/registry/files/use-form.ts +980 -0
  463. package/registry/files/use-fullscreen.ts +214 -0
  464. package/registry/files/use-gamepad.ts +463 -0
  465. package/registry/files/use-hid.ts +359 -0
  466. package/registry/files/use-history.ts +231 -0
  467. package/registry/files/use-id-generator.ts +61 -0
  468. package/registry/files/use-image.ts +253 -0
  469. package/registry/files/use-indexed-db.ts +508 -0
  470. package/registry/files/use-interval.ts +253 -0
  471. package/registry/files/use-list-format.ts +85 -0
  472. package/registry/files/use-machine.ts +171 -0
  473. package/registry/files/use-map.ts +145 -0
  474. package/registry/files/use-media-controls.ts +545 -0
  475. package/registry/files/use-memoize.ts +118 -0
  476. package/registry/files/use-mounted.ts +30 -0
  477. package/registry/files/use-navigation-api.ts +641 -0
  478. package/registry/files/use-notification.ts +285 -0
  479. package/registry/files/use-now.ts +194 -0
  480. package/registry/files/use-number-format.ts +120 -0
  481. package/registry/files/use-object-url.ts +87 -0
  482. package/registry/files/use-offset-pagination.ts +168 -0
  483. package/registry/files/use-payment-request.ts +465 -0
  484. package/registry/files/use-performance-observer.ts +469 -0
  485. package/registry/files/use-permission.ts +220 -0
  486. package/registry/files/use-plural-rules.ts +134 -0
  487. package/registry/files/use-previous.ts +62 -0
  488. package/registry/files/use-push-subscription.ts +352 -0
  489. package/registry/files/use-queue.ts +197 -0
  490. package/registry/files/use-raf-fn.ts +176 -0
  491. package/registry/files/use-relative-time-format.ts +201 -0
  492. package/registry/files/use-request-idle-callback.ts +278 -0
  493. package/registry/files/use-route-query.ts +300 -0
  494. package/registry/files/use-scheduler-post-task.ts +397 -0
  495. package/registry/files/use-screen-details.ts +393 -0
  496. package/registry/files/use-script-tag.ts +341 -0
  497. package/registry/files/use-segmenter.ts +147 -0
  498. package/registry/files/use-selection.ts +233 -0
  499. package/registry/files/use-serial.ts +404 -0
  500. package/registry/files/use-service-worker.ts +413 -0
  501. package/registry/files/use-set.ts +154 -0
  502. package/registry/files/use-share.ts +168 -0
  503. package/registry/files/use-sorted-locale.ts +130 -0
  504. package/registry/files/use-sorted.ts +49 -0
  505. package/registry/files/use-speech-recognition.ts +357 -0
  506. package/registry/files/use-speech-synthesis.ts +333 -0
  507. package/registry/files/use-stack.ts +164 -0
  508. package/registry/files/use-stepper.ts +166 -0
  509. package/registry/files/use-storage-estimate.ts +352 -0
  510. package/registry/files/use-storage.ts +635 -0
  511. package/registry/files/use-style-tag.ts +200 -0
  512. package/registry/files/use-supported.ts +26 -0
  513. package/registry/files/use-throttled.ts +215 -0
  514. package/registry/files/use-time-ago.ts +276 -0
  515. package/registry/files/use-timeout.ts +218 -0
  516. package/registry/files/use-toggle.ts +54 -0
  517. package/registry/files/use-url-hash.ts +280 -0
  518. package/registry/files/use-url-search-params.ts +497 -0
  519. package/registry/files/use-usb.ts +395 -0
  520. package/registry/files/use-user-activation.ts +215 -0
  521. package/registry/files/use-user-media.ts +422 -0
  522. package/registry/files/use-v-model.ts +210 -0
  523. package/registry/files/use-vibrate.ts +174 -0
  524. package/registry/files/use-view-transition.ts +229 -0
  525. package/registry/files/use-visual-viewport.ts +228 -0
  526. package/registry/files/use-wake-lock.ts +206 -0
  527. package/registry/files/use-web-authn.ts +793 -0
  528. package/registry/files/use-web-locks.ts +363 -0
  529. package/registry/files/use-web-midi.ts +306 -0
  530. package/registry/files/use-web-vitals.ts +409 -0
  531. package/registry/files/use-websocket.ts +553 -0
  532. package/registry/files/use-worker-fn.ts +306 -0
  533. package/registry/files/virtual-list.ts +230 -0
  534. package/registry/files/watch-debounced.ts +206 -0
  535. package/registry/files/watch-ignorable.ts +128 -0
  536. package/registry/files/watch-once.ts +46 -0
  537. package/registry/files/watch-pausable.ts +93 -0
  538. package/registry/files/watch-source.ts +51 -0
  539. package/registry/files/watch-throttled.ts +201 -0
  540. package/registry/files/whenever.ts +70 -0
  541. package/registry/files/window-size.ts +151 -0
  542. package/registry/registry.json +5792 -0
  543. package/dist/catalog-D2AL3xYl.d.mts +0 -523
  544. package/dist/catalog-D5SYCsgW.mjs +0 -549
@@ -0,0 +1,165 @@
1
+ import { ComputedRef, MaybeRefOrGetter, Ref, ShallowRef } from "vue";
2
+
3
+ //#region src/use-serial.d.ts
4
+ /** USB identifiers used to filter `requestPort`. */
5
+ interface SerialPortFilter {
6
+ /** USB vendor id. */
7
+ readonly usbVendorId?: number;
8
+ /** USB product id. */
9
+ readonly usbProductId?: number;
10
+ /** Bluetooth RFCOMM service class id. */
11
+ readonly bluetoothServiceClassId?: number | string;
12
+ }
13
+ /** Line settings passed to `SerialPort.open`. */
14
+ interface SerialOpenOptions {
15
+ /** Baud rate, e.g. `9600` or `115200`. */
16
+ readonly baudRate: number;
17
+ /**
18
+ * Data bits per frame (7 or 8).
19
+ *
20
+ * @default 8
21
+ */
22
+ readonly dataBits?: number;
23
+ /**
24
+ * Stop bits (1 or 2).
25
+ *
26
+ * @default 1
27
+ */
28
+ readonly stopBits?: number;
29
+ /**
30
+ * Parity mode.
31
+ *
32
+ * @default "none"
33
+ */
34
+ readonly parity?: "none" | "even" | "odd";
35
+ /**
36
+ * Read/write buffer size in bytes.
37
+ *
38
+ * @default 255
39
+ */
40
+ readonly bufferSize?: number;
41
+ /**
42
+ * Flow control mode.
43
+ *
44
+ * @default "none"
45
+ */
46
+ readonly flowControl?: "none" | "hardware";
47
+ }
48
+ /** Minimal `SerialPort` used by {@link useSerial}. */
49
+ interface SerialPortLike extends EventTarget {
50
+ /** Byte stream from the device while open; `null` otherwise or after a fatal error. */
51
+ readonly readable: ReadableStream<Uint8Array> | null;
52
+ /** Byte sink to the device while open. */
53
+ readonly writable: WritableStream<Uint8Array> | null;
54
+ /** Open the port. */
55
+ open(options: SerialOpenOptions): Promise<void>;
56
+ /** Close the port. */
57
+ close(): Promise<void>;
58
+ }
59
+ /** `navigator.serial`-like capability used by {@link useSerial}. */
60
+ interface SerialHost extends EventTarget {
61
+ /** Ports the page already has access to. */
62
+ getPorts(): Promise<SerialPortLike[]>;
63
+ /** Prompt the user for a port. */
64
+ requestPort(options?: {
65
+ readonly filters?: readonly SerialPortFilter[];
66
+ }): Promise<SerialPortLike>;
67
+ }
68
+ /** How received bytes are delivered. */
69
+ type SerialDecoding = "bytes" | "text";
70
+ /** Chunk type delivered for a {@link SerialDecoding}. */
71
+ type SerialChunk<Decoding extends SerialDecoding> = Decoding extends "text" ? string : Uint8Array;
72
+ /** Options for {@link useSerial}. */
73
+ interface UseSerialOptions<Decoding extends SerialDecoding = "bytes"> {
74
+ /**
75
+ * `navigator.serial`-like capability.
76
+ *
77
+ * @default window.navigator.serial when it exists
78
+ */
79
+ readonly host?: MaybeRefOrGetter<SerialHost | null | undefined>;
80
+ /**
81
+ * Deliver raw bytes or text decoded with `encoding` (streaming, so split
82
+ * multi-byte characters are joined).
83
+ *
84
+ * @default "bytes"
85
+ */
86
+ readonly decode?: Decoding;
87
+ /**
88
+ * Text encoding used when `decode` is `"text"`.
89
+ *
90
+ * @default "utf-8"
91
+ */
92
+ readonly encoding?: string;
93
+ /**
94
+ * Receives every chunk read from the open port.
95
+ *
96
+ * @default undefined
97
+ */
98
+ readonly onData?: (chunk: SerialChunk<Decoding>) => void;
99
+ }
100
+ /** Reactive state and actions returned by {@link useSerial}. */
101
+ interface SerialControls {
102
+ /** Whether Web Serial is available. */
103
+ readonly supported: ComputedRef<boolean>;
104
+ /** Ports the page has access to, refreshed on `connect` / `disconnect`. */
105
+ readonly ports: Readonly<ShallowRef<readonly SerialPortLike[]>>;
106
+ /** Currently open port. */
107
+ readonly port: Readonly<ShallowRef<SerialPortLike | undefined>>;
108
+ /** Whether a port is open. */
109
+ readonly connected: Readonly<Ref<boolean>>;
110
+ /** Most recent failure (request, open, read, write). */
111
+ readonly error: Readonly<ShallowRef<unknown>>;
112
+ /**
113
+ * Prompt the user for a port (requires user activation).
114
+ *
115
+ * @returns The chosen port, or `undefined` when cancelled or failed.
116
+ */
117
+ readonly requestPort: (filters?: readonly SerialPortFilter[]) => Promise<SerialPortLike | undefined>;
118
+ /**
119
+ * Refresh `ports`.
120
+ *
121
+ * @returns The granted ports.
122
+ */
123
+ readonly getPorts: () => Promise<readonly SerialPortLike[]>;
124
+ /**
125
+ * Open `port` (closing any other open port) and start the read loop.
126
+ *
127
+ * @returns Whether the port opened.
128
+ */
129
+ readonly open: (port: SerialPortLike, options: SerialOpenOptions) => Promise<boolean>;
130
+ /**
131
+ * Write text (UTF-8 encoded) or bytes.
132
+ *
133
+ * @returns Whether the data was written.
134
+ */
135
+ readonly write: (data: string | Uint8Array) => Promise<boolean>;
136
+ /** Stop reading and close the open port. Idempotent. */
137
+ readonly close: () => Promise<void>;
138
+ }
139
+ /**
140
+ * Talk to serial devices with the Web Serial API.
141
+ *
142
+ * `requestPort()` prompts for a port, `open()` opens it and starts a read
143
+ * loop that feeds `onData` with bytes or decoded text, `write()` sends text
144
+ * or bytes. `ports` follows the host's `connect` / `disconnect` events and a
145
+ * port's own `disconnect` closes the session. Failures land in `error`. The
146
+ * read loop is cancelled and the port closed when the owning reactive scope
147
+ * stops; outside a scope call `close()`.
148
+ *
149
+ * Server rendering: `supported` and `connected` are false, nothing is read.
150
+ *
151
+ * @example
152
+ * ```ts
153
+ * const serial = useSerial({ decode: "text", onData: (text) => log(text) });
154
+ * const port = await serial.requestPort([{ usbVendorId: 0x2341 }]);
155
+ * if (port) await serial.open(port, { baudRate: 115200 });
156
+ * ```
157
+ *
158
+ * @param options Host, decoding, and data callback.
159
+ * @default options {}
160
+ * @throws `RangeError` tagged `VIZE_COMPOSE_SERIAL_INVALID_ENCODING` for an unknown `encoding`.
161
+ * @returns Serial state and actions.
162
+ */
163
+ declare function useSerial<const Decoding extends SerialDecoding = "bytes">(options?: UseSerialOptions<Decoding>): SerialControls;
164
+ //#endregion
165
+ export { SerialChunk, SerialControls, SerialDecoding, SerialHost, SerialOpenOptions, SerialPortFilter, SerialPortLike, UseSerialOptions, useSerial };
@@ -0,0 +1,205 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { computed, hasInjectionContext, readonly, ref, shallowReadonly, shallowRef, toValue, watch, watchPostEffect } from "vue";
3
+ //#region src/use-serial.ts
4
+ function browserSerialHost() {
5
+ if (typeof window === "undefined") return void 0;
6
+ const { navigator } = window;
7
+ const serial = "serial" in navigator ? navigator.serial : void 0;
8
+ return isSerialHost(serial) ? serial : void 0;
9
+ }
10
+ function isSerialHost(value) {
11
+ return typeof value === "object" && value !== null && "requestPort" in value;
12
+ }
13
+ /**
14
+ * Talk to serial devices with the Web Serial API.
15
+ *
16
+ * `requestPort()` prompts for a port, `open()` opens it and starts a read
17
+ * loop that feeds `onData` with bytes or decoded text, `write()` sends text
18
+ * or bytes. `ports` follows the host's `connect` / `disconnect` events and a
19
+ * port's own `disconnect` closes the session. Failures land in `error`. The
20
+ * read loop is cancelled and the port closed when the owning reactive scope
21
+ * stops; outside a scope call `close()`.
22
+ *
23
+ * Server rendering: `supported` and `connected` are false, nothing is read.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * const serial = useSerial({ decode: "text", onData: (text) => log(text) });
28
+ * const port = await serial.requestPort([{ usbVendorId: 0x2341 }]);
29
+ * if (port) await serial.open(port, { baudRate: 115200 });
30
+ * ```
31
+ *
32
+ * @param options Host, decoding, and data callback.
33
+ * @default options {}
34
+ * @throws `RangeError` tagged `VIZE_COMPOSE_SERIAL_INVALID_ENCODING` for an unknown `encoding`.
35
+ * @returns Serial state and actions.
36
+ */
37
+ function useSerial(options = {}) {
38
+ const ports = shallowRef([]);
39
+ const port = shallowRef(void 0);
40
+ const connected = ref(false);
41
+ const error = shallowRef(void 0);
42
+ const encoding = options.encoding ?? "utf-8";
43
+ const text = options.decode === "text";
44
+ if (text) try {
45
+ new TextDecoder(encoding);
46
+ } catch {
47
+ throw new RangeError(`[VIZE_COMPOSE_SERIAL_INVALID_ENCODING] unsupported text encoding "${encoding}"`);
48
+ }
49
+ let session;
50
+ const hydrated = shallowRef(!hasInjectionContext());
51
+ if (!hydrated.value) watchPostEffect(() => {
52
+ hydrated.value = true;
53
+ });
54
+ const resolveHost = () => !hydrated.value ? void 0 : options.host === void 0 ? browserSerialHost() : toValue(options.host) ?? void 0;
55
+ const deliver = (chunk) => {
56
+ if (chunk.length > 0) options.onData?.(chunk);
57
+ };
58
+ const readLoop = async (target, current) => {
59
+ const decoder = text ? new TextDecoder(encoding) : void 0;
60
+ let stream = target.readable;
61
+ while (stream && current.active) {
62
+ const reader = stream.getReader();
63
+ current.reader = reader;
64
+ try {
65
+ for (;;) {
66
+ const { value, done } = await reader.read();
67
+ if (done) break;
68
+ deliver(decoder ? decoder.decode(value, { stream: true }) : value);
69
+ }
70
+ } catch (cause) {
71
+ if (current.active) error.value = cause;
72
+ } finally {
73
+ reader.releaseLock();
74
+ current.reader = void 0;
75
+ }
76
+ if (target.readable === stream) break;
77
+ stream = target.readable;
78
+ }
79
+ if (decoder) deliver(decoder.decode());
80
+ };
81
+ const onPortDisconnect = () => {
82
+ close();
83
+ };
84
+ async function close() {
85
+ const current = session;
86
+ const target = port.value;
87
+ session = void 0;
88
+ port.value = void 0;
89
+ connected.value = false;
90
+ if (!current || !target) return;
91
+ target.removeEventListener("disconnect", onPortDisconnect);
92
+ current.active = false;
93
+ let failure;
94
+ try {
95
+ await current.reader?.cancel();
96
+ } catch (cause) {
97
+ failure = cause;
98
+ }
99
+ try {
100
+ await current.done;
101
+ } catch (cause) {
102
+ failure ??= cause;
103
+ }
104
+ try {
105
+ await target.close();
106
+ } catch (cause) {
107
+ failure ??= cause;
108
+ }
109
+ if (failure !== void 0) error.value = failure;
110
+ }
111
+ const open = async (target, openOptions) => {
112
+ await close();
113
+ try {
114
+ await target.open(openOptions);
115
+ } catch (cause) {
116
+ error.value = cause;
117
+ return false;
118
+ }
119
+ const current = {
120
+ active: true,
121
+ reader: void 0,
122
+ done: Promise.resolve()
123
+ };
124
+ session = current;
125
+ port.value = target;
126
+ connected.value = true;
127
+ error.value = void 0;
128
+ target.addEventListener("disconnect", onPortDisconnect);
129
+ current.done = readLoop(target, current);
130
+ return true;
131
+ };
132
+ const write = async (data) => {
133
+ const writable = port.value?.writable;
134
+ if (!writable) return false;
135
+ const writer = writable.getWriter();
136
+ try {
137
+ await writer.write(typeof data === "string" ? new TextEncoder().encode(data) : data);
138
+ return true;
139
+ } catch (cause) {
140
+ error.value = cause;
141
+ return false;
142
+ } finally {
143
+ writer.releaseLock();
144
+ }
145
+ };
146
+ const getPorts = async () => {
147
+ const host = resolveHost();
148
+ if (!host) return [];
149
+ try {
150
+ ports.value = await host.getPorts();
151
+ } catch (cause) {
152
+ error.value = cause;
153
+ }
154
+ return ports.value;
155
+ };
156
+ const requestPort = async (filters) => {
157
+ const host = resolveHost();
158
+ if (!host) return void 0;
159
+ try {
160
+ const chosen = await host.requestPort(filters === void 0 ? {} : { filters });
161
+ error.value = void 0;
162
+ await getPorts();
163
+ return chosen;
164
+ } catch (cause) {
165
+ error.value = cause;
166
+ return;
167
+ }
168
+ };
169
+ const onHostChange = () => {
170
+ getPorts();
171
+ };
172
+ watch(resolveHost, (host, _previous, onCleanup) => {
173
+ if (!host) {
174
+ ports.value = [];
175
+ return;
176
+ }
177
+ host.addEventListener("connect", onHostChange);
178
+ host.addEventListener("disconnect", onHostChange);
179
+ onCleanup(() => {
180
+ host.removeEventListener("connect", onHostChange);
181
+ host.removeEventListener("disconnect", onHostChange);
182
+ });
183
+ getPorts();
184
+ }, {
185
+ immediate: true,
186
+ flush: "sync"
187
+ });
188
+ tryOnScopeDispose(() => {
189
+ close();
190
+ });
191
+ return {
192
+ supported: computed(() => resolveHost() !== void 0),
193
+ ports: shallowReadonly(ports),
194
+ port: shallowReadonly(port),
195
+ connected: readonly(connected),
196
+ error: readonly(error),
197
+ requestPort,
198
+ getPorts,
199
+ open,
200
+ write,
201
+ close
202
+ };
203
+ }
204
+ //#endregion
205
+ export { useSerial };
@@ -0,0 +1,177 @@
1
+ import { ComputedRef, MaybeRefOrGetter, Ref, ShallowRef } from "vue";
2
+
3
+ //#region src/use-service-worker.d.ts
4
+ /** Lifecycle states of a service worker. */
5
+ type ServiceWorkerStateName = "parsed" | "installing" | "installed" | "activating" | "activated" | "redundant";
6
+ /** Minimal `ServiceWorker` consumed by {@link useServiceWorker}. */
7
+ interface ServiceWorkerLike extends EventTarget {
8
+ /** Current lifecycle state; changes fire `statechange`. */
9
+ readonly state: ServiceWorkerStateName;
10
+ /** Post a message to the worker. */
11
+ postMessage(message: unknown): void;
12
+ }
13
+ /** Minimal `ServiceWorkerRegistration` consumed by {@link useServiceWorker}. */
14
+ interface ServiceWorkerRegistrationLike extends EventTarget {
15
+ /** Worker being installed, if any; a new one fires `updatefound`. */
16
+ readonly installing: ServiceWorkerLike | null;
17
+ /** Installed worker waiting to take over, if any. */
18
+ readonly waiting: ServiceWorkerLike | null;
19
+ /** Active worker, if any. */
20
+ readonly active: ServiceWorkerLike | null;
21
+ /** Registration scope URL. */
22
+ readonly scope: string;
23
+ /** Check the server for an updated script. */
24
+ update(): Promise<unknown>;
25
+ /** Unregister; resolves whether the registration was removed. */
26
+ unregister(): Promise<boolean>;
27
+ }
28
+ /** Options forwarded to `ServiceWorkerContainer.register`. */
29
+ interface ServiceWorkerRegisterOptions {
30
+ /**
31
+ * Registration scope.
32
+ *
33
+ * @default the script's directory
34
+ */
35
+ readonly scope?: string;
36
+ /**
37
+ * Script type.
38
+ *
39
+ * @default "classic"
40
+ */
41
+ readonly type?: "classic" | "module";
42
+ /**
43
+ * HTTP cache policy for update checks.
44
+ *
45
+ * @default "imports"
46
+ */
47
+ readonly updateViaCache?: "imports" | "all" | "none";
48
+ }
49
+ /** Minimal `ServiceWorkerContainer` (`navigator.serviceWorker`). */
50
+ interface ServiceWorkerContainerLike extends EventTarget {
51
+ /** Worker controlling this page; changes fire `controllerchange`. */
52
+ readonly controller: ServiceWorkerLike | null;
53
+ /** Register a service worker script. */
54
+ register(scriptUrl: string | URL, options?: ServiceWorkerRegisterOptions): Promise<ServiceWorkerRegistrationLike>;
55
+ }
56
+ /** States of the registration's workers (`null` when absent). */
57
+ interface ServiceWorkerStates {
58
+ /** State of the installing worker. */
59
+ readonly installing: ServiceWorkerStateName | null;
60
+ /** State of the waiting worker. */
61
+ readonly waiting: ServiceWorkerStateName | null;
62
+ /** State of the active worker. */
63
+ readonly active: ServiceWorkerStateName | null;
64
+ }
65
+ /** Options for {@link useServiceWorker}. */
66
+ interface UseServiceWorkerOptions {
67
+ /**
68
+ * Service worker container for alternate runtimes and tests.
69
+ *
70
+ * @default window.navigator.serviceWorker when it exists
71
+ */
72
+ readonly container?: MaybeRefOrGetter<ServiceWorkerContainerLike | null | undefined>;
73
+ /**
74
+ * Registration scope.
75
+ *
76
+ * @default undefined (the script's directory)
77
+ */
78
+ readonly scope?: string;
79
+ /**
80
+ * Script type.
81
+ *
82
+ * @default "classic"
83
+ */
84
+ readonly type?: "classic" | "module";
85
+ /**
86
+ * HTTP cache policy for update checks.
87
+ *
88
+ * @default "imports"
89
+ */
90
+ readonly updateViaCache?: "imports" | "all" | "none";
91
+ /**
92
+ * Register as soon as the composable is created (browser only).
93
+ *
94
+ * @default true
95
+ */
96
+ readonly immediate?: boolean;
97
+ /**
98
+ * Message posted to the waiting worker by `skipWaiting()`.
99
+ *
100
+ * @default { type: "SKIP_WAITING" }
101
+ */
102
+ readonly skipWaitingMessage?: unknown;
103
+ /**
104
+ * Called on `controllerchange` (for example to reload the page after a
105
+ * new worker took control).
106
+ *
107
+ * @default undefined
108
+ */
109
+ readonly onControllerChange?: (controller: ServiceWorkerLike | null) => void;
110
+ }
111
+ /** Reactive state and actions returned by {@link useServiceWorker}. */
112
+ interface ServiceWorkerControls {
113
+ /** Whether the Service Worker API is available. */
114
+ readonly supported: ComputedRef<boolean>;
115
+ /** Current registration, or `null` before registering. */
116
+ readonly registration: Readonly<ShallowRef<ServiceWorkerRegistrationLike | null>>;
117
+ /** States of the installing, waiting and active workers. */
118
+ readonly state: Readonly<Ref<ServiceWorkerStates>>;
119
+ /** Whether a waiting worker is ready to replace the controlling one. */
120
+ readonly updateAvailable: ComputedRef<boolean>;
121
+ /** Most recent failure, cleared by the next successful action. */
122
+ readonly error: Readonly<ShallowRef<unknown>>;
123
+ /**
124
+ * Register (or re-register) the script.
125
+ *
126
+ * @returns The registration, or `null` when unsupported or on failure.
127
+ */
128
+ readonly register: () => Promise<ServiceWorkerRegistrationLike | null>;
129
+ /**
130
+ * Check the server for an updated script.
131
+ *
132
+ * @returns Whether the check ran without failing.
133
+ */
134
+ readonly update: () => Promise<boolean>;
135
+ /**
136
+ * Post the skip-waiting message to the waiting worker.
137
+ *
138
+ * @returns Whether a waiting worker received the message.
139
+ */
140
+ readonly skipWaiting: () => boolean;
141
+ /**
142
+ * Unregister the service worker.
143
+ *
144
+ * @returns Whether the registration was removed.
145
+ */
146
+ readonly unregister: () => Promise<boolean>;
147
+ }
148
+ /**
149
+ * Register a service worker and follow its update lifecycle.
150
+ *
151
+ * Tracks `updatefound` and each worker's `statechange` so `state` mirrors
152
+ * the installing, waiting and active workers. `updateAvailable` turns true
153
+ * once an installed worker waits while another one controls the page;
154
+ * `skipWaiting()` then posts the configured message to it, and
155
+ * `onControllerChange` runs once it takes control. Listeners are removed
156
+ * when the owning reactive scope stops; outside a scope they live as long as
157
+ * the registration.
158
+ *
159
+ * Server rendering: nothing is registered, `supported` is false and every
160
+ * state is `null`.
161
+ *
162
+ * @example
163
+ * ```ts
164
+ * const sw = useServiceWorker("/sw.js", {
165
+ * onControllerChange: () => window.location.reload(),
166
+ * });
167
+ * const applyUpdate = () => sw.skipWaiting();
168
+ * ```
169
+ *
170
+ * @param scriptUrl Service worker script URL.
171
+ * @param options Container override, registration options and update hooks.
172
+ * @default options {}
173
+ * @returns Registration state and actions.
174
+ */
175
+ declare function useServiceWorker(scriptUrl: MaybeRefOrGetter<string | URL>, options?: UseServiceWorkerOptions): ServiceWorkerControls;
176
+ //#endregion
177
+ export { ServiceWorkerContainerLike, ServiceWorkerControls, ServiceWorkerLike, ServiceWorkerRegisterOptions, ServiceWorkerRegistrationLike, ServiceWorkerStateName, ServiceWorkerStates, UseServiceWorkerOptions, useServiceWorker };