@vizejs/composable 0.426.3 → 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,86 @@
1
+ import { ShallowRef } from "vue";
2
+
3
+ //#region src/use-async-state.d.ts
4
+ /** Options for {@link useAsyncState}. */
5
+ interface UseAsyncStateOptions<Data> {
6
+ /**
7
+ * Execute once right away. Only available for producers without
8
+ * parameters; pass `false` to run a producer that takes arguments through
9
+ * {@link AsyncState.execute}.
10
+ *
11
+ * @default true
12
+ */
13
+ readonly immediate?: boolean;
14
+ /**
15
+ * Restore the initial state at the start of every execution.
16
+ *
17
+ * @default false
18
+ */
19
+ readonly resetOnExecute?: boolean;
20
+ /**
21
+ * Re-throw failures from `execute` in addition to storing them.
22
+ *
23
+ * @default false
24
+ */
25
+ readonly throwError?: boolean;
26
+ /**
27
+ * Called with every failure of the newest execution.
28
+ *
29
+ * @default undefined
30
+ */
31
+ readonly onError?: (error: unknown) => void;
32
+ /**
33
+ * Called with every successful result of the newest execution.
34
+ *
35
+ * @default undefined
36
+ */
37
+ readonly onSuccess?: (data: Data) => void;
38
+ }
39
+ /** Reactive state and controls returned by {@link useAsyncState}. */
40
+ interface AsyncState<Data, Initial, Parameters extends readonly unknown[]> {
41
+ /** Newest result, or the initial state. */
42
+ readonly state: Readonly<ShallowRef<Data | Initial>>;
43
+ /** Whether at least one execution succeeded. */
44
+ readonly isReady: Readonly<ShallowRef<boolean>>;
45
+ /** Whether an execution is in flight. */
46
+ readonly isLoading: Readonly<ShallowRef<boolean>>;
47
+ /** Failure of the newest execution, cleared when a new one starts. */
48
+ readonly error: Readonly<ShallowRef<unknown>>;
49
+ /**
50
+ * Run the producer. Only the newest execution may update the state.
51
+ *
52
+ * @returns The resulting state (the previous state for failed or
53
+ * superseded executions unless `throwError` is set).
54
+ */
55
+ readonly execute: (...args: Parameters) => Promise<Data | Initial>;
56
+ }
57
+ /**
58
+ * Reactive state for an async producer.
59
+ *
60
+ * Tracks the result, loading, readiness, and error of the newest execution;
61
+ * out-of-order completions of older executions are ignored, so the state
62
+ * always reflects the latest request. The typing is arity-aware: producers
63
+ * with parameters require `{ immediate: false }` and `execute` keeps their
64
+ * parameter tuple. On the server an immediate execution starts but is not
65
+ * awaited, so both sides render the initial state with `isLoading: true`.
66
+ *
67
+ * @example
68
+ * ```ts
69
+ * const { state, isLoading, execute } = useAsyncState((id: string) => fetchUser(id), null, {
70
+ * immediate: false,
71
+ * });
72
+ * await execute("u-1");
73
+ * ```
74
+ *
75
+ * @param producer Async function producing the data.
76
+ * @param initial State before the first success.
77
+ * @param options Immediate execution, reset, error, and success policy.
78
+ * @default options {}
79
+ * @returns Reactive state and the `execute` control.
80
+ */
81
+ declare function useAsyncState<Data, Initial>(producer: () => Promise<Data>, initial: Initial, options?: UseAsyncStateOptions<Data>): AsyncState<Data, Initial, []>;
82
+ declare function useAsyncState<Data, Initial, Parameters extends readonly unknown[]>(producer: (...args: Parameters) => Promise<Data>, initial: Initial, options: UseAsyncStateOptions<Data> & {
83
+ readonly immediate: false;
84
+ }): AsyncState<Data, Initial, Parameters>;
85
+ //#endregion
86
+ export { AsyncState, UseAsyncStateOptions, useAsyncState };
@@ -0,0 +1,41 @@
1
+ import { shallowRef } from "vue";
2
+ //#region src/use-async-state.ts
3
+ function useAsyncState(producer, initial, options = {}) {
4
+ const state = shallowRef(initial);
5
+ const isReady = shallowRef(false);
6
+ const isLoading = shallowRef(false);
7
+ const error = shallowRef(void 0);
8
+ let generation = 0;
9
+ const execute = async (...args) => {
10
+ generation += 1;
11
+ const own = generation;
12
+ if (options.resetOnExecute ?? false) state.value = initial;
13
+ error.value = void 0;
14
+ isLoading.value = true;
15
+ try {
16
+ const data = await producer(...args);
17
+ if (own !== generation) return state.value;
18
+ state.value = data;
19
+ isReady.value = true;
20
+ options.onSuccess?.(data);
21
+ } catch (failure) {
22
+ if (own !== generation) return state.value;
23
+ error.value = failure;
24
+ options.onError?.(failure);
25
+ if (options.throwError ?? false) throw failure;
26
+ } finally {
27
+ if (own === generation) isLoading.value = false;
28
+ }
29
+ return state.value;
30
+ };
31
+ if (options.immediate ?? true) execute().catch(() => void 0);
32
+ return {
33
+ state,
34
+ isReady,
35
+ isLoading,
36
+ error,
37
+ execute
38
+ };
39
+ }
40
+ //#endregion
41
+ export { useAsyncState };
@@ -0,0 +1,159 @@
1
+ import { FrameScheduler } from "./use-raf-fn.mjs";
2
+ import { ComputedRef, MaybeRef, MaybeRefOrGetter, ShallowRef } from "vue";
3
+
4
+ //#region src/use-barcode-detector.d.ts
5
+ /** Barcode symbology supported by the Barcode Detection API. */
6
+ type BarcodeFormat = "aztec" | "code_128" | "code_39" | "code_93" | "codabar" | "data_matrix" | "ean_13" | "ean_8" | "itf" | "pdf417" | "qr_code" | "upc_a" | "upc_e" | "unknown";
7
+ /** Axis-aligned bounds of a detected barcode, in source pixels. */
8
+ interface BarcodeBoundingBox {
9
+ /** Left edge. */
10
+ readonly x: number;
11
+ /** Top edge. */
12
+ readonly y: number;
13
+ /** Width. */
14
+ readonly width: number;
15
+ /** Height. */
16
+ readonly height: number;
17
+ }
18
+ /** Corner of a detected barcode, in source pixels. */
19
+ interface BarcodePoint {
20
+ /** Horizontal coordinate. */
21
+ readonly x: number;
22
+ /** Vertical coordinate. */
23
+ readonly y: number;
24
+ }
25
+ /** Normalized detection result. */
26
+ interface DetectedBarcode {
27
+ /** Decoded text. */
28
+ readonly rawValue: string;
29
+ /** Symbology (`"unknown"` for formats this module does not know). */
30
+ readonly format: BarcodeFormat;
31
+ /** Bounding box. */
32
+ readonly boundingBox: BarcodeBoundingBox;
33
+ /** Corner points, clockwise from top-left. */
34
+ readonly cornerPoints: readonly BarcodePoint[];
35
+ }
36
+ /** Raw detection result produced by a host detector. */
37
+ interface DetectedBarcodeLike {
38
+ /** Decoded text. */
39
+ readonly rawValue: string;
40
+ /** Symbology name. */
41
+ readonly format: string;
42
+ /** Bounding box. */
43
+ readonly boundingBox: BarcodeBoundingBox;
44
+ /** Corner points. */
45
+ readonly cornerPoints: readonly BarcodePoint[];
46
+ }
47
+ /** Minimal `BarcodeDetector` instance. */
48
+ interface BarcodeDetectorLike {
49
+ /** Detect barcodes in an image source. */
50
+ detect(source: ImageBitmapSource): Promise<readonly DetectedBarcodeLike[]>;
51
+ }
52
+ /** Minimal `BarcodeDetector` constructor. */
53
+ interface BarcodeDetectorHost {
54
+ /** Create a detector restricted to `formats`. */
55
+ new (options?: {
56
+ formats?: BarcodeFormat[];
57
+ }): BarcodeDetectorLike;
58
+ /** Formats the platform can detect. */
59
+ getSupportedFormats?(): Promise<readonly string[]>;
60
+ }
61
+ /** Options for {@link useBarcodeDetector}. */
62
+ interface UseBarcodeDetectorOptions {
63
+ /**
64
+ * `BarcodeDetector` constructor for alternate runtimes and tests. A ref
65
+ * (not a getter) because the host is a constructor function.
66
+ *
67
+ * @default window.BarcodeDetector when it exists
68
+ */
69
+ readonly BarcodeDetector?: MaybeRef<BarcodeDetectorHost | null | undefined>;
70
+ /**
71
+ * Formats to detect. Reactive; a new detector is created when it changes.
72
+ *
73
+ * @default undefined (every supported format)
74
+ */
75
+ readonly formats?: MaybeRefOrGetter<readonly BarcodeFormat[] | undefined>;
76
+ /**
77
+ * Source scanned continuously (for example a camera `<video>`). Video
78
+ * frames are skipped until `readyState >= 2`.
79
+ *
80
+ * @default undefined
81
+ */
82
+ readonly source?: MaybeRefOrGetter<ImageBitmapSource | null | undefined>;
83
+ /**
84
+ * Start continuous detection immediately.
85
+ *
86
+ * @default true when `source` is set
87
+ */
88
+ readonly immediate?: boolean;
89
+ /**
90
+ * Maximum continuous detections per second. A frame is also skipped while
91
+ * the previous detection is still running.
92
+ *
93
+ * @default 10
94
+ */
95
+ readonly fpsLimit?: MaybeRefOrGetter<number | undefined>;
96
+ /**
97
+ * Frame host for continuous detection. An injected scheduler also drives
98
+ * frames without a browser `window` (native or offscreen hosts, tests).
99
+ *
100
+ * @default globalThis animation-frame functions when available
101
+ */
102
+ readonly scheduler?: FrameScheduler;
103
+ }
104
+ /** Reactive state and actions returned by {@link useBarcodeDetector}. */
105
+ interface BarcodeDetectorControls {
106
+ /** Whether the Barcode Detection API is available. */
107
+ readonly supported: ComputedRef<boolean>;
108
+ /** Barcodes found by the most recent successful detection. */
109
+ readonly barcodes: Readonly<ShallowRef<readonly DetectedBarcode[]>>;
110
+ /** Most recent detection failure, cleared on success. */
111
+ readonly error: Readonly<ShallowRef<unknown>>;
112
+ /** Whether continuous detection is running. */
113
+ readonly isActive: Readonly<ShallowRef<boolean>>;
114
+ /**
115
+ * Detect barcodes once.
116
+ *
117
+ * @param source Image, video, canvas, bitmap, blob, or image data.
118
+ * @returns Detected barcodes; empty when unsupported or failing (see `error`).
119
+ */
120
+ readonly detect: (source: ImageBitmapSource) => Promise<readonly DetectedBarcode[]>;
121
+ /**
122
+ * Formats the platform supports.
123
+ *
124
+ * @returns Known supported formats; empty when unsupported or failing.
125
+ */
126
+ readonly getSupportedFormats: () => Promise<BarcodeFormat[]>;
127
+ /** Start continuous detection of `source`. */
128
+ readonly start: () => void;
129
+ /** Stop continuous detection. Idempotent. */
130
+ readonly stop: () => void;
131
+ }
132
+ /**
133
+ * Detect barcodes and QR codes with the Barcode Detection API.
134
+ *
135
+ * `detect(source)` scans once; with a `source` (typically a camera video),
136
+ * detection also runs on animation frames through {@link useRafFn}, throttled
137
+ * by `fpsLimit` and never overlapping. Results are normalized into plain
138
+ * {@link DetectedBarcode} objects. The frame loop stops with the owning
139
+ * reactive scope; outside a scope call `stop()`.
140
+ *
141
+ * Server rendering: nothing is constructed or scheduled, `supported` is
142
+ * false and `barcodes` is empty.
143
+ * Inside a component `supported` turns true only after mounting, so
144
+ * hydration renders this server state first.
145
+ *
146
+ * @example
147
+ * ```ts
148
+ * const video = useTemplateRef<HTMLVideoElement>("video");
149
+ * const { barcodes } = useBarcodeDetector({ source: video, formats: ["qr_code"] });
150
+ * ```
151
+ *
152
+ * @param options Constructor host, formats, and continuous-scan policy.
153
+ * @default options {}
154
+ * @throws `RangeError` tagged `VIZE_COMPOSE_RAF_INVALID_FPS_LIMIT` for an invalid `fpsLimit`.
155
+ * @returns Detector state and actions.
156
+ */
157
+ declare function useBarcodeDetector(options?: UseBarcodeDetectorOptions): BarcodeDetectorControls;
158
+ //#endregion
159
+ export { BarcodeBoundingBox, BarcodeDetectorControls, BarcodeDetectorHost, BarcodeDetectorLike, BarcodeFormat, BarcodePoint, DetectedBarcode, DetectedBarcodeLike, UseBarcodeDetectorOptions, useBarcodeDetector };
@@ -0,0 +1,143 @@
1
+ import { useRafFn } from "./use-raf-fn.mjs";
2
+ import { computed, hasInjectionContext, readonly, shallowRef, toValue, unref, watchPostEffect } from "vue";
3
+ //#region src/use-barcode-detector.ts
4
+ const knownFormats = [
5
+ "aztec",
6
+ "code_128",
7
+ "code_39",
8
+ "code_93",
9
+ "codabar",
10
+ "data_matrix",
11
+ "ean_13",
12
+ "ean_8",
13
+ "itf",
14
+ "pdf417",
15
+ "qr_code",
16
+ "upc_a",
17
+ "upc_e",
18
+ "unknown"
19
+ ];
20
+ function isBarcodeFormat(value) {
21
+ return knownFormats.includes(value);
22
+ }
23
+ function isDetectorHost(candidate) {
24
+ return typeof candidate === "function";
25
+ }
26
+ function browserDetector() {
27
+ if (typeof window === "undefined") return void 0;
28
+ const candidate = Reflect.get(window, "BarcodeDetector");
29
+ return isDetectorHost(candidate) ? candidate : void 0;
30
+ }
31
+ function isFrameReady(source) {
32
+ return !("readyState" in source) || typeof source.readyState !== "number" || source.readyState >= 2;
33
+ }
34
+ function normalize(barcode) {
35
+ const { x, y, width, height } = barcode.boundingBox;
36
+ return {
37
+ rawValue: barcode.rawValue,
38
+ format: isBarcodeFormat(barcode.format) ? barcode.format : "unknown",
39
+ boundingBox: {
40
+ x,
41
+ y,
42
+ width,
43
+ height
44
+ },
45
+ cornerPoints: barcode.cornerPoints.map((point) => ({
46
+ x: point.x,
47
+ y: point.y
48
+ }))
49
+ };
50
+ }
51
+ /**
52
+ * Detect barcodes and QR codes with the Barcode Detection API.
53
+ *
54
+ * `detect(source)` scans once; with a `source` (typically a camera video),
55
+ * detection also runs on animation frames through {@link useRafFn}, throttled
56
+ * by `fpsLimit` and never overlapping. Results are normalized into plain
57
+ * {@link DetectedBarcode} objects. The frame loop stops with the owning
58
+ * reactive scope; outside a scope call `stop()`.
59
+ *
60
+ * Server rendering: nothing is constructed or scheduled, `supported` is
61
+ * false and `barcodes` is empty.
62
+ * Inside a component `supported` turns true only after mounting, so
63
+ * hydration renders this server state first.
64
+ *
65
+ * @example
66
+ * ```ts
67
+ * const video = useTemplateRef<HTMLVideoElement>("video");
68
+ * const { barcodes } = useBarcodeDetector({ source: video, formats: ["qr_code"] });
69
+ * ```
70
+ *
71
+ * @param options Constructor host, formats, and continuous-scan policy.
72
+ * @default options {}
73
+ * @throws `RangeError` tagged `VIZE_COMPOSE_RAF_INVALID_FPS_LIMIT` for an invalid `fpsLimit`.
74
+ * @returns Detector state and actions.
75
+ */
76
+ function useBarcodeDetector(options = {}) {
77
+ const barcodes = shallowRef([]);
78
+ const error = shallowRef(void 0);
79
+ let cached;
80
+ let busy = false;
81
+ const hydrated = shallowRef(!hasInjectionContext());
82
+ if (!hydrated.value) watchPostEffect(() => {
83
+ hydrated.value = true;
84
+ });
85
+ const resolveHost = () => options.BarcodeDetector === void 0 ? browserDetector() : unref(options.BarcodeDetector) ?? void 0;
86
+ const resolveDetector = (Host) => {
87
+ const formats = toValue(options.formats);
88
+ const key = formats?.join() ?? "*";
89
+ if (cached?.host !== Host || cached.key !== key) cached = {
90
+ host: Host,
91
+ key,
92
+ detector: new Host(formats ? { formats: [...formats] } : void 0)
93
+ };
94
+ return cached.detector;
95
+ };
96
+ const detect = async (source) => {
97
+ const host = resolveHost();
98
+ if (!host) return [];
99
+ try {
100
+ const found = (await resolveDetector(host).detect(source)).map(normalize);
101
+ barcodes.value = found;
102
+ error.value = void 0;
103
+ return found;
104
+ } catch (cause) {
105
+ error.value = cause;
106
+ return [];
107
+ }
108
+ };
109
+ const getSupportedFormats = async () => {
110
+ try {
111
+ return [...await resolveHost()?.getSupportedFormats?.() ?? []].filter(isBarcodeFormat);
112
+ } catch {
113
+ return [];
114
+ }
115
+ };
116
+ const loop = useRafFn(() => {
117
+ const source = toValue(options.source);
118
+ if (busy || !source || !isFrameReady(source)) return;
119
+ busy = true;
120
+ detect(source).finally(() => {
121
+ busy = false;
122
+ });
123
+ }, {
124
+ immediate: options.immediate ?? options.source !== void 0,
125
+ fpsLimit: () => toValue(options.fpsLimit) ?? 10,
126
+ ...options.scheduler ? {
127
+ scheduler: options.scheduler,
128
+ runOnServer: true
129
+ } : {}
130
+ });
131
+ return {
132
+ supported: computed(() => hydrated.value && resolveHost() !== void 0),
133
+ barcodes: readonly(barcodes),
134
+ error: readonly(error),
135
+ isActive: loop.isActive,
136
+ detect,
137
+ getSupportedFormats,
138
+ start: loop.resume,
139
+ stop: loop.pause
140
+ };
141
+ }
142
+ //#endregion
143
+ export { useBarcodeDetector };
@@ -0,0 +1,164 @@
1
+ import { ComputedRef, MaybeRefOrGetter, Ref, ShallowRef } from "vue";
2
+
3
+ //#region src/use-bluetooth.d.ts
4
+ /** GATT service or characteristic UUID: a full UUID string, an alias name, or a 16/32-bit number. */
5
+ type BluetoothUUIDLike = string | number;
6
+ /** Scan filter for `requestDevice`. */
7
+ interface BluetoothDeviceFilter {
8
+ /** Services the device must advertise. */
9
+ readonly services?: readonly BluetoothUUIDLike[];
10
+ /** Exact device name. */
11
+ readonly name?: string;
12
+ /** Device name prefix. */
13
+ readonly namePrefix?: string;
14
+ }
15
+ /** Options for `requestDevice`: explicit filters or every nearby device. */
16
+ type BluetoothRequestOptions = {
17
+ /** Accepted device filters. */readonly filters: readonly BluetoothDeviceFilter[]; /** Extra services the page may access. */
18
+ readonly optionalServices?: readonly BluetoothUUIDLike[];
19
+ } | {
20
+ /** Offer every nearby device. */readonly acceptAllDevices: true; /** Extra services the page may access. */
21
+ readonly optionalServices?: readonly BluetoothUUIDLike[];
22
+ };
23
+ /** Minimal `BluetoothRemoteGATTCharacteristic` used by {@link useBluetooth}. */
24
+ interface BluetoothCharacteristicLike extends EventTarget {
25
+ /** Last read or notified value. */
26
+ readonly value?: DataView | null | undefined;
27
+ /** Read the value. */
28
+ readValue(): Promise<DataView>;
29
+ /** Write and wait for the device's acknowledgement. */
30
+ writeValueWithResponse(value: BufferSource): Promise<void>;
31
+ /** Write without acknowledgement. */
32
+ writeValueWithoutResponse(value: BufferSource): Promise<void>;
33
+ /** Start `characteristicvaluechanged` notifications. */
34
+ startNotifications(): Promise<unknown>;
35
+ /** Stop notifications. */
36
+ stopNotifications(): Promise<unknown>;
37
+ }
38
+ /** Minimal `BluetoothRemoteGATTService`. */
39
+ interface BluetoothServiceLike {
40
+ /** Look up a characteristic. */
41
+ getCharacteristic(characteristic: BluetoothUUIDLike): Promise<BluetoothCharacteristicLike>;
42
+ }
43
+ /** Minimal `BluetoothRemoteGATTServer`. */
44
+ interface BluetoothGATTServerLike {
45
+ /** Whether the server is connected. */
46
+ readonly connected: boolean;
47
+ /** Connect to the server. */
48
+ connect(): Promise<unknown>;
49
+ /** Disconnect from the server. */
50
+ disconnect(): void;
51
+ /** Look up a primary service. */
52
+ getPrimaryService(service: BluetoothUUIDLike): Promise<BluetoothServiceLike>;
53
+ }
54
+ /** Minimal `BluetoothDevice` used by {@link useBluetooth}. */
55
+ interface BluetoothDeviceLike extends EventTarget {
56
+ /** Opaque device identifier. */
57
+ readonly id: string;
58
+ /** Advertised name. */
59
+ readonly name?: string | undefined;
60
+ /** GATT server, when the device supports GATT. */
61
+ readonly gatt?: BluetoothGATTServerLike | undefined;
62
+ }
63
+ /** `navigator.bluetooth`-like capability used by {@link useBluetooth}. */
64
+ interface BluetoothHost extends EventTarget {
65
+ /** Whether a Bluetooth adapter is available. */
66
+ getAvailability(): Promise<boolean>;
67
+ /** Prompt the user for a device. */
68
+ requestDevice(options: BluetoothRequestOptions): Promise<BluetoothDeviceLike>;
69
+ }
70
+ /** Options for {@link useBluetooth}. */
71
+ interface UseBluetoothOptions {
72
+ /**
73
+ * `navigator.bluetooth`-like capability.
74
+ *
75
+ * @default window.navigator.bluetooth when it exists
76
+ */
77
+ readonly host?: MaybeRefOrGetter<BluetoothHost | null | undefined>;
78
+ /**
79
+ * Default options for `requestDevice()`.
80
+ *
81
+ * @default { acceptAllDevices: true }
82
+ */
83
+ readonly requestOptions?: BluetoothRequestOptions;
84
+ }
85
+ /** Stops a notification subscription created by {@link BluetoothControls.notify}. */
86
+ type BluetoothNotificationStop = () => Promise<void>;
87
+ /** Reactive state and actions returned by {@link useBluetooth}. */
88
+ interface BluetoothControls {
89
+ /** Whether Web Bluetooth is available. */
90
+ readonly supported: ComputedRef<boolean>;
91
+ /** Whether an adapter is available, following `availabilitychanged`. */
92
+ readonly available: Readonly<Ref<boolean>>;
93
+ /** Most recently chosen device. */
94
+ readonly device: Readonly<ShallowRef<BluetoothDeviceLike | undefined>>;
95
+ /** Whether the device's GATT server is connected. */
96
+ readonly connected: Readonly<Ref<boolean>>;
97
+ /** Most recent failure. */
98
+ readonly error: Readonly<ShallowRef<unknown>>;
99
+ /**
100
+ * Prompt the user for a device (requires user activation). Disconnects
101
+ * the previous device.
102
+ *
103
+ * @returns The chosen device, or `undefined` when cancelled or failed.
104
+ */
105
+ readonly requestDevice: (options?: BluetoothRequestOptions) => Promise<BluetoothDeviceLike | undefined>;
106
+ /**
107
+ * Connect to the device's GATT server.
108
+ *
109
+ * @returns Whether the server is connected.
110
+ */
111
+ readonly connect: () => Promise<boolean>;
112
+ /** Stop notifications and disconnect the GATT server. Idempotent. */
113
+ readonly disconnect: () => void;
114
+ /**
115
+ * Read a characteristic.
116
+ *
117
+ * @returns The value, or `undefined` on failure.
118
+ */
119
+ readonly read: (service: BluetoothUUIDLike, characteristic: BluetoothUUIDLike) => Promise<DataView | undefined>;
120
+ /**
121
+ * Write a characteristic, with a response unless `withoutResponse`.
122
+ *
123
+ * @returns Whether the write succeeded.
124
+ */
125
+ readonly write: (service: BluetoothUUIDLike, characteristic: BluetoothUUIDLike, value: BufferSource, options?: {
126
+ readonly withoutResponse?: boolean;
127
+ }) => Promise<boolean>;
128
+ /**
129
+ * Subscribe to characteristic notifications.
130
+ *
131
+ * @returns A stop function, or `undefined` on failure.
132
+ */
133
+ readonly notify: (service: BluetoothUUIDLike, characteristic: BluetoothUUIDLike, listener: (value: DataView) => void) => Promise<BluetoothNotificationStop | undefined>;
134
+ }
135
+ /**
136
+ * Connect to Bluetooth Low Energy devices with the Web Bluetooth API.
137
+ *
138
+ * `requestDevice()` prompts for a device, `connect()` connects its GATT
139
+ * server, and `read` / `write` / `notify` address characteristics by service
140
+ * and characteristic UUID. `connected` follows `gattserverdisconnected` and
141
+ * `available` follows `availabilitychanged`. Failures land in `error`.
142
+ * Notifications are stopped and the server disconnected when the owning
143
+ * reactive scope stops; outside a scope call `disconnect()`.
144
+ *
145
+ * Server rendering: `supported`, `available` and `connected` are false and
146
+ * nothing is queried.
147
+ * Inside a component the host is resolved after mounting, so hydration
148
+ * renders this server state first.
149
+ *
150
+ * @example
151
+ * ```ts
152
+ * const ble = useBluetooth({ requestOptions: { filters: [{ services: ["heart_rate"] }] } });
153
+ * await ble.requestDevice();
154
+ * await ble.connect();
155
+ * await ble.notify("heart_rate", "heart_rate_measurement", (value) => show(value.getUint8(1)));
156
+ * ```
157
+ *
158
+ * @param options Host and default request options.
159
+ * @default options {}
160
+ * @returns Bluetooth state and actions.
161
+ */
162
+ declare function useBluetooth(options?: UseBluetoothOptions): BluetoothControls;
163
+ //#endregion
164
+ export { BluetoothCharacteristicLike, BluetoothControls, BluetoothDeviceFilter, BluetoothDeviceLike, BluetoothGATTServerLike, BluetoothHost, BluetoothNotificationStop, BluetoothRequestOptions, BluetoothServiceLike, BluetoothUUIDLike, UseBluetoothOptions, useBluetooth };