@vizejs/composable 0.426.3 → 0.428.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,425 @@
1
+ import {
2
+ computed,
3
+ hasInjectionContext,
4
+ readonly,
5
+ ref,
6
+ shallowRef,
7
+ toValue,
8
+ watch,
9
+ watchPostEffect,
10
+ } from "vue";
11
+ import type { ComputedRef, MaybeRefOrGetter, Ref, ShallowRef } from "vue";
12
+
13
+ import { tryOnScopeDispose } from "./scope.ts";
14
+ import type { TimeoutScheduler } from "./timeout-scheduler.ts";
15
+ import { usePermission } from "./use-permission.ts";
16
+ import type { PermissionQueryState, PermissionsHost } from "./use-permission.ts";
17
+
18
+ /** One clipboard entry, compatible with the DOM `ClipboardItem`. */
19
+ export interface ClipboardItemLike {
20
+ /** MIME types available in this item. */
21
+ readonly types: readonly string[];
22
+
23
+ /** Read the item's data for one of its `types`. */
24
+ getType(type: string): Promise<Blob>;
25
+ }
26
+
27
+ /** Minimal async Clipboard API consumed by {@link useClipboard}. */
28
+ export interface ClipboardLike {
29
+ /** Read plain text. */
30
+ readText(): Promise<string>;
31
+
32
+ /** Write plain text. */
33
+ writeText(text: string): Promise<void>;
34
+
35
+ /** Read rich items. Absent in older browsers. */
36
+ read?(): Promise<readonly ClipboardItemLike[]>;
37
+
38
+ /** Write rich items. Absent in older browsers. */
39
+ write?(items: readonly ClipboardItemLike[]): Promise<void>;
40
+ }
41
+
42
+ /** Capabilities used by {@link useClipboard}; every member is optional. */
43
+ export interface ClipboardHost {
44
+ /** Async Clipboard API (`navigator.clipboard`). */
45
+ readonly clipboard?: ClipboardLike | null;
46
+
47
+ /** Permissions API used to report read/write permission state. */
48
+ readonly permissions?: PermissionsHost | null;
49
+
50
+ /**
51
+ * Synchronous legacy copy used when the async API is missing or refuses.
52
+ * Returns whether the copy succeeded.
53
+ */
54
+ readonly legacyCopy?: ((text: string) => boolean) | null;
55
+
56
+ /** Target of `copy`/`cut` events observed when `listen` is enabled. */
57
+ readonly events?: EventTarget | null;
58
+ }
59
+
60
+ /** Why a clipboard operation did not complete. */
61
+ export type ClipboardFailureReason = "permission-denied" | "unsupported" | "failed";
62
+
63
+ /** Successful clipboard operation. */
64
+ export interface ClipboardSuccess<Value> {
65
+ /** The operation succeeded. */
66
+ readonly status: "success";
67
+
68
+ /** Value that was read or written. */
69
+ readonly value: Value;
70
+
71
+ /** Mechanism that performed the operation. */
72
+ readonly method: "clipboard" | "legacy";
73
+ }
74
+
75
+ /** Failed clipboard operation. */
76
+ export interface ClipboardFailure {
77
+ /** Why the operation failed. */
78
+ readonly status: ClipboardFailureReason;
79
+
80
+ /** Exact error thrown by the host, when one was thrown. */
81
+ readonly error: unknown;
82
+ }
83
+
84
+ /** Discriminated result of a clipboard operation. */
85
+ export type ClipboardResult<Value> = ClipboardSuccess<Value> | ClipboardFailure;
86
+
87
+ /** Options for {@link useClipboard}. */
88
+ export interface UseClipboardOptions {
89
+ /**
90
+ * Clipboard capabilities for alternate runtimes and tests.
91
+ *
92
+ * @default navigator.clipboard, navigator.permissions, and an
93
+ * `execCommand("copy")` fallback when a browser window exists
94
+ */
95
+ readonly host?: MaybeRefOrGetter<ClipboardHost | null | undefined>;
96
+
97
+ /**
98
+ * Fall back to `document.execCommand("copy")` when the async API is
99
+ * unavailable or rejects a write.
100
+ *
101
+ * @default true
102
+ */
103
+ readonly legacy?: boolean;
104
+
105
+ /**
106
+ * Milliseconds for which `copied` stays `true` after a successful write.
107
+ *
108
+ * @default 1500
109
+ */
110
+ readonly copiedDuringMs?: number;
111
+
112
+ /**
113
+ * Timer host used to reset `copied`.
114
+ *
115
+ * @default globalThis timer functions
116
+ */
117
+ readonly scheduler?: TimeoutScheduler;
118
+
119
+ /**
120
+ * Update `text` by reading the clipboard after every `copy`/`cut` event.
121
+ *
122
+ * @default false
123
+ */
124
+ readonly listen?: boolean;
125
+
126
+ /**
127
+ * Query the `clipboard-read` / `clipboard-write` permissions.
128
+ *
129
+ * @default true
130
+ */
131
+ readonly queryPermissions?: boolean;
132
+ }
133
+
134
+ /** Reactive state and actions returned by {@link useClipboard}. */
135
+ export interface ClipboardControls {
136
+ /** Whether the async Clipboard API or the legacy fallback is available. */
137
+ readonly supported: ComputedRef<boolean>;
138
+
139
+ /** Text most recently copied or read. */
140
+ readonly text: Readonly<Ref<string>>;
141
+
142
+ /** `true` for `copiedDuringMs` after a successful copy. */
143
+ readonly copied: Readonly<Ref<boolean>>;
144
+
145
+ /** Most recent failure, cleared by the next success. */
146
+ readonly error: Readonly<ShallowRef<ClipboardFailure | undefined>>;
147
+
148
+ /** State of the `clipboard-read` permission. */
149
+ readonly readPermission: Readonly<Ref<PermissionQueryState>>;
150
+
151
+ /** State of the `clipboard-write` permission. */
152
+ readonly writePermission: Readonly<Ref<PermissionQueryState>>;
153
+
154
+ /**
155
+ * Copy text, falling back to the legacy mechanism when allowed.
156
+ *
157
+ * @param text Text to copy.
158
+ * @returns The discriminated outcome; never rejects.
159
+ */
160
+ readonly copy: (text: string) => Promise<ClipboardResult<string>>;
161
+
162
+ /**
163
+ * Read plain text.
164
+ *
165
+ * @returns The discriminated outcome; never rejects.
166
+ */
167
+ readonly readText: () => Promise<ClipboardResult<string>>;
168
+
169
+ /**
170
+ * Write rich clipboard items.
171
+ *
172
+ * @param items Items to write.
173
+ * @returns The discriminated outcome; never rejects.
174
+ */
175
+ readonly writeItems: (
176
+ items: readonly ClipboardItemLike[],
177
+ ) => Promise<ClipboardResult<readonly ClipboardItemLike[]>>;
178
+
179
+ /**
180
+ * Read rich clipboard items.
181
+ *
182
+ * @returns The discriminated outcome; never rejects.
183
+ */
184
+ readonly readItems: () => Promise<ClipboardResult<readonly ClipboardItemLike[]>>;
185
+ }
186
+
187
+ const defaultScheduler: TimeoutScheduler = {
188
+ setTimeout: (callback, delayMs) => globalThis.setTimeout(callback, delayMs),
189
+ clearTimeout: (handle) => {
190
+ globalThis.clearTimeout(handle as ReturnType<typeof setTimeout>);
191
+ },
192
+ };
193
+
194
+ function legacyDocumentCopy(document: Document): (text: string) => boolean {
195
+ return (text) => {
196
+ const area = document.createElement("textarea");
197
+ area.value = text;
198
+ area.setAttribute("readonly", "");
199
+ area.style.position = "fixed";
200
+ area.style.opacity = "0";
201
+ area.style.pointerEvents = "none";
202
+ document.body.append(area);
203
+ area.select();
204
+ try {
205
+ // `execCommand` is deprecated but remains the only synchronous copy
206
+ // mechanism in insecure contexts and older engines.
207
+ return document.execCommand("copy");
208
+ } catch {
209
+ return false;
210
+ } finally {
211
+ area.remove();
212
+ }
213
+ };
214
+ }
215
+
216
+ function browserClipboardHost(): ClipboardHost | undefined {
217
+ if (typeof window === "undefined") return undefined;
218
+ const { navigator, document } = window;
219
+ return {
220
+ clipboard: navigator.clipboard ?? null,
221
+ permissions: navigator.permissions ?? null,
222
+ legacyCopy: typeof document.execCommand === "function" ? legacyDocumentCopy(document) : null,
223
+ events: document,
224
+ };
225
+ }
226
+
227
+ function isPermissionError(error: unknown): boolean {
228
+ return (
229
+ typeof error === "object" &&
230
+ error !== null &&
231
+ "name" in error &&
232
+ (error.name === "NotAllowedError" || error.name === "SecurityError")
233
+ );
234
+ }
235
+
236
+ function failure(error: unknown): ClipboardFailure {
237
+ return { status: isPermissionError(error) ? "permission-denied" : "failed", error };
238
+ }
239
+
240
+ const unsupported: ClipboardFailure = { status: "unsupported", error: undefined };
241
+
242
+ /**
243
+ * Permission-aware clipboard access with a legacy copy fallback.
244
+ *
245
+ * Text and rich items go through the async Clipboard API. When it is
246
+ * missing (insecure contexts, older engines) or refuses a write, `copy`
247
+ * falls back to `document.execCommand("copy")` unless `legacy` is false.
248
+ * Every action resolves to a discriminated {@link ClipboardResult}
249
+ * (`"success"`, `"permission-denied"`, `"unsupported"`, `"failed"`) instead
250
+ * of rejecting, and the read/write permission states are exposed reactively.
251
+ *
252
+ * Server rendering: nothing is read and no permission is queried; `text` is
253
+ * empty and `supported` is false. The `copied` reset timer and the optional
254
+ * `copy`/`cut` listeners are released when the owning scope stops.
255
+ *
256
+ * Inside a component the host is read after mounting, so hydration renders
257
+ * the server fallback first and never mismatches.
258
+ *
259
+ * @example
260
+ * ```ts
261
+ * const { copy, copied } = useClipboard();
262
+ * await copy("npm i @vizejs/composable");
263
+ * ```
264
+ *
265
+ * @param options Capabilities, fallback policy, and feedback timing.
266
+ * @default options {}
267
+ * @returns Reactive clipboard state and actions.
268
+ */
269
+ export function useClipboard(options: UseClipboardOptions = {}): ClipboardControls {
270
+ const copiedDuringMs = options.copiedDuringMs ?? 1500;
271
+ if (!Number.isFinite(copiedDuringMs) || copiedDuringMs < 0) {
272
+ throw new RangeError(
273
+ `[VIZE_COMPOSE_CLIPBOARD_INVALID_DURATION] copiedDuringMs must be a non-negative finite number; received ${String(copiedDuringMs)}`,
274
+ );
275
+ }
276
+ const scheduler = options.scheduler ?? defaultScheduler;
277
+ const allowLegacy = options.legacy ?? true;
278
+ const text = ref("");
279
+ const copied = ref(false);
280
+ const error = shallowRef<ClipboardFailure | undefined>(undefined);
281
+ let resetHandle: unknown;
282
+ let resetPending = false;
283
+ // Inside a component the host is attached by a post-flush job (after the
284
+ // component mounted), so a hydrating client first renders the same server
285
+ // fallback. Outside components it is attached synchronously.
286
+ const hydrated = shallowRef(!hasInjectionContext());
287
+ if (!hydrated.value) {
288
+ watchPostEffect(() => {
289
+ hydrated.value = true;
290
+ });
291
+ }
292
+
293
+ const resolveHost = (): ClipboardHost | undefined =>
294
+ options.host === undefined ? browserClipboardHost() : (toValue(options.host) ?? undefined);
295
+
296
+ const queryPermissions = options.queryPermissions ?? true;
297
+ const permissionHost = (): PermissionsHost | undefined =>
298
+ queryPermissions ? (resolveHost()?.permissions ?? undefined) : undefined;
299
+ const readPermission = usePermission("clipboard-read", { host: permissionHost });
300
+ const writePermission = usePermission("clipboard-write", { host: permissionHost });
301
+
302
+ const supported = computed(() => {
303
+ if (!hydrated.value) return false;
304
+ const host = resolveHost();
305
+ return Boolean(host?.clipboard) || Boolean(allowLegacy && host?.legacyCopy);
306
+ });
307
+
308
+ const settle = <Value>(result: ClipboardResult<Value>): ClipboardResult<Value> => {
309
+ error.value = result.status === "success" ? undefined : result;
310
+ return result;
311
+ };
312
+
313
+ const markCopied = (value: string): void => {
314
+ text.value = value;
315
+ copied.value = true;
316
+ if (resetPending) scheduler.clearTimeout(resetHandle);
317
+ resetPending = true;
318
+ resetHandle = scheduler.setTimeout(() => {
319
+ resetPending = false;
320
+ copied.value = false;
321
+ }, copiedDuringMs);
322
+ };
323
+
324
+ const tryLegacy = (host: ClipboardHost, value: string): ClipboardResult<string> | undefined => {
325
+ if (!allowLegacy || !host.legacyCopy) return undefined;
326
+ try {
327
+ return host.legacyCopy(value)
328
+ ? { status: "success", value, method: "legacy" }
329
+ : { status: "failed", error: undefined };
330
+ } catch (cause) {
331
+ return failure(cause);
332
+ }
333
+ };
334
+
335
+ const copy = async (value: string): Promise<ClipboardResult<string>> => {
336
+ const host = resolveHost();
337
+ if (!host) return settle(unsupported);
338
+ let result: ClipboardResult<string> | undefined;
339
+ if (host.clipboard) {
340
+ try {
341
+ await host.clipboard.writeText(value);
342
+ result = { status: "success", value, method: "clipboard" };
343
+ } catch (cause) {
344
+ result = tryLegacy(host, value) ?? failure(cause);
345
+ }
346
+ } else {
347
+ result = tryLegacy(host, value) ?? unsupported;
348
+ }
349
+ if (result.status === "success") markCopied(value);
350
+ return settle(result);
351
+ };
352
+
353
+ const readText = async (): Promise<ClipboardResult<string>> => {
354
+ const clipboard = resolveHost()?.clipboard;
355
+ if (!clipboard) return settle(unsupported);
356
+ try {
357
+ const value = await clipboard.readText();
358
+ text.value = value;
359
+ return settle({ status: "success", value, method: "clipboard" });
360
+ } catch (cause) {
361
+ return settle(failure(cause));
362
+ }
363
+ };
364
+
365
+ const writeItems = async (
366
+ items: readonly ClipboardItemLike[],
367
+ ): Promise<ClipboardResult<readonly ClipboardItemLike[]>> => {
368
+ const clipboard = resolveHost()?.clipboard;
369
+ if (!clipboard?.write) return settle(unsupported);
370
+ try {
371
+ await clipboard.write(items);
372
+ return settle({ status: "success", value: items, method: "clipboard" });
373
+ } catch (cause) {
374
+ return settle(failure(cause));
375
+ }
376
+ };
377
+
378
+ const readItems = async (): Promise<ClipboardResult<readonly ClipboardItemLike[]>> => {
379
+ const clipboard = resolveHost()?.clipboard;
380
+ if (!clipboard?.read) return settle(unsupported);
381
+ try {
382
+ const value = await clipboard.read();
383
+ return settle({ status: "success", value, method: "clipboard" });
384
+ } catch (cause) {
385
+ return settle(failure(cause));
386
+ }
387
+ };
388
+
389
+ if (options.listen ?? false) {
390
+ watch(
391
+ () => resolveHost()?.events ?? undefined,
392
+ (events, _previous, onCleanup) => {
393
+ if (!events) return;
394
+ const onCopy = (): void => {
395
+ void readText();
396
+ };
397
+ events.addEventListener("copy", onCopy);
398
+ events.addEventListener("cut", onCopy);
399
+ onCleanup(() => {
400
+ events.removeEventListener("copy", onCopy);
401
+ events.removeEventListener("cut", onCopy);
402
+ });
403
+ },
404
+ { immediate: true, flush: "sync" },
405
+ );
406
+ }
407
+
408
+ tryOnScopeDispose(() => {
409
+ if (resetPending) scheduler.clearTimeout(resetHandle);
410
+ resetPending = false;
411
+ });
412
+
413
+ return {
414
+ supported,
415
+ text: readonly(text),
416
+ copied: readonly(copied),
417
+ error: readonly(error),
418
+ readPermission: readPermission.state,
419
+ writePermission: writePermission.state,
420
+ copy,
421
+ readText,
422
+ writeItems,
423
+ readItems,
424
+ };
425
+ }