@vizejs/composable 0.426.2 → 0.427.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (544) hide show
  1. package/dist/abort-signal.d.mts +1 -1
  2. package/dist/active-element.d.mts +37 -0
  3. package/dist/active-element.mjs +56 -0
  4. package/dist/animate.d.mts +114 -0
  5. package/dist/animate.mjs +157 -0
  6. package/dist/battery.d.mts +61 -0
  7. package/dist/battery.mjs +90 -0
  8. package/dist/breakpoints.d.mts +82 -0
  9. package/dist/breakpoints.mjs +91 -0
  10. package/dist/catalog-BeTXFKxF.d.mts +4188 -0
  11. package/dist/catalog-r4Z5nptX.mjs +5144 -0
  12. package/dist/catalog.d.mts +1 -1
  13. package/dist/catalog.mjs +1 -1
  14. package/dist/color-mode.d.mts +131 -0
  15. package/dist/color-mode.mjs +133 -0
  16. package/dist/computed-async.d.mts +63 -0
  17. package/dist/computed-async.mjs +43 -0
  18. package/dist/computed-with-control.d.mts +44 -0
  19. package/dist/computed-with-control.mjs +54 -0
  20. package/dist/create-event-hook.d.mts +77 -0
  21. package/dist/create-event-hook.mjs +66 -0
  22. package/dist/create-global-state.d.mts +24 -0
  23. package/dist/create-global-state.mjs +34 -0
  24. package/dist/create-injection-state.d.mts +51 -0
  25. package/dist/create-injection-state.mjs +19 -0
  26. package/dist/create-shared-composable.d.mts +38 -0
  27. package/dist/create-shared-composable.mjs +54 -0
  28. package/dist/device-motion.d.mts +71 -0
  29. package/dist/device-motion.mjs +75 -0
  30. package/dist/device-orientation.d.mts +82 -0
  31. package/dist/device-orientation.mjs +86 -0
  32. package/dist/device-pixel-ratio.d.mts +45 -0
  33. package/dist/device-pixel-ratio.mjs +50 -0
  34. package/dist/document-visibility.mjs +6 -2
  35. package/dist/draggable.d.mts +121 -0
  36. package/dist/draggable.mjs +153 -0
  37. package/dist/element-bounding.d.mts +87 -0
  38. package/dist/element-bounding.mjs +95 -0
  39. package/dist/element-by-point.d.mts +70 -0
  40. package/dist/element-by-point.mjs +69 -0
  41. package/dist/element-hover.d.mts +42 -0
  42. package/dist/element-hover.mjs +70 -0
  43. package/dist/element-ref.d.mts +34 -0
  44. package/dist/element-ref.mjs +23 -0
  45. package/dist/element-target-Crpxl4D9.d.mts +60 -0
  46. package/dist/element-target.d.mts +2 -0
  47. package/dist/element-target.mjs +58 -0
  48. package/dist/event-listener.mjs +7 -3
  49. package/dist/focus.d.mts +69 -0
  50. package/dist/focus.mjs +124 -0
  51. package/dist/fps.d.mts +59 -0
  52. package/dist/fps.mjs +64 -0
  53. package/dist/geolocation.d.mts +98 -0
  54. package/dist/geolocation.mjs +86 -0
  55. package/dist/i18n.d.mts +237 -0
  56. package/dist/i18n.mjs +215 -0
  57. package/dist/icu-message.d.mts +235 -0
  58. package/dist/icu-message.mjs +343 -0
  59. package/dist/idle.d.mts +79 -0
  60. package/dist/idle.mjs +90 -0
  61. package/dist/index.d.mts +172 -6
  62. package/dist/index.mjs +173 -7
  63. package/dist/infinite-scroll.d.mts +56 -0
  64. package/dist/infinite-scroll.mjs +72 -0
  65. package/dist/intersection-observer.d.mts +122 -0
  66. package/dist/intersection-observer.mjs +117 -0
  67. package/dist/magic-keys.d.mts +121 -0
  68. package/dist/magic-keys.mjs +163 -0
  69. package/dist/math.d.mts +96 -0
  70. package/dist/math.mjs +84 -0
  71. package/dist/media-query.d.mts +3 -1
  72. package/dist/media-query.mjs +5 -3
  73. package/dist/mouse-in-element.d.mts +49 -0
  74. package/dist/mouse-in-element.mjs +66 -0
  75. package/dist/mouse.d.mts +77 -0
  76. package/dist/mouse.mjs +100 -0
  77. package/dist/mutation-observer.d.mts +98 -0
  78. package/dist/mutation-observer.mjs +69 -0
  79. package/dist/network.d.mts +96 -0
  80. package/dist/network.mjs +117 -0
  81. package/dist/on-click-outside.d.mts +69 -0
  82. package/dist/on-click-outside.mjs +115 -0
  83. package/dist/on-key-stroke.d.mts +71 -0
  84. package/dist/on-key-stroke.mjs +79 -0
  85. package/dist/on-long-press.d.mts +82 -0
  86. package/dist/on-long-press.mjs +105 -0
  87. package/dist/on-start-typing.d.mts +44 -0
  88. package/dist/on-start-typing.mjs +61 -0
  89. package/dist/page-leave.d.mts +26 -0
  90. package/dist/page-leave.mjs +40 -0
  91. package/dist/parent-element.d.mts +16 -0
  92. package/dist/parent-element.mjs +27 -0
  93. package/dist/pinch.d.mts +73 -0
  94. package/dist/pinch.mjs +138 -0
  95. package/dist/pointer-lock.d.mts +79 -0
  96. package/dist/pointer-lock.mjs +126 -0
  97. package/dist/pointer.d.mts +78 -0
  98. package/dist/pointer.mjs +95 -0
  99. package/dist/preferences.d.mts +55 -0
  100. package/dist/preferences.mjs +63 -0
  101. package/dist/preferred-languages.d.mts +43 -0
  102. package/dist/preferred-languages.mjs +44 -0
  103. package/dist/reactify.d.mts +28 -0
  104. package/dist/reactify.mjs +7 -0
  105. package/dist/ref-auto-reset.d.mts +47 -0
  106. package/dist/ref-auto-reset.mjs +70 -0
  107. package/dist/ref-debounced.d.mts +29 -0
  108. package/dist/ref-debounced.mjs +29 -0
  109. package/dist/ref-default.d.mts +27 -0
  110. package/dist/ref-default.mjs +33 -0
  111. package/dist/resize-observer.d.mts +96 -0
  112. package/dist/resize-observer.mjs +111 -0
  113. package/dist/resolver.d.mts +124 -0
  114. package/dist/resolver.mjs +138 -0
  115. package/dist/retry-async.d.mts +2 -2
  116. package/dist/retry-delay-DYsdq4SE.d.mts +73 -0
  117. package/dist/retry-delay.d.mts +1 -72
  118. package/dist/screen-orientation.d.mts +77 -0
  119. package/dist/screen-orientation.mjs +74 -0
  120. package/dist/scroll-lock.d.mts +37 -0
  121. package/dist/scroll-lock.mjs +50 -0
  122. package/dist/scroll.d.mts +158 -0
  123. package/dist/scroll.mjs +172 -0
  124. package/dist/standard-schema-DmNgFVK5.d.mts +107 -0
  125. package/dist/standard-schema.d.mts +2 -0
  126. package/dist/standard-schema.mjs +60 -0
  127. package/dist/swipe.d.mts +125 -0
  128. package/dist/swipe.mjs +225 -0
  129. package/dist/sync-ref.d.mts +80 -0
  130. package/dist/sync-ref.mjs +43 -0
  131. package/dist/text-selection.d.mts +46 -0
  132. package/dist/text-selection.mjs +62 -0
  133. package/dist/textarea-autosize.d.mts +58 -0
  134. package/dist/textarea-autosize.mjs +54 -0
  135. package/dist/timeout-scheduler-CI8RVLZs.d.mts +18 -0
  136. package/dist/timeout-scheduler.d.mts +1 -17
  137. package/dist/to-reactive.d.mts +26 -0
  138. package/dist/to-reactive.mjs +46 -0
  139. package/dist/transition.d.mts +125 -0
  140. package/dist/transition.mjs +266 -0
  141. package/dist/until.d.mts +177 -0
  142. package/dist/until.mjs +111 -0
  143. package/dist/use-array.d.mts +112 -0
  144. package/dist/use-array.mjs +90 -0
  145. package/dist/use-async-queue.d.mts +109 -0
  146. package/dist/use-async-queue.mjs +96 -0
  147. package/dist/use-async-state.d.mts +86 -0
  148. package/dist/use-async-state.mjs +41 -0
  149. package/dist/use-barcode-detector.d.mts +159 -0
  150. package/dist/use-barcode-detector.mjs +143 -0
  151. package/dist/use-bluetooth.d.mts +164 -0
  152. package/dist/use-bluetooth.mjs +183 -0
  153. package/dist/use-broadcast-channel.d.mts +115 -0
  154. package/dist/use-broadcast-channel.mjs +121 -0
  155. package/dist/use-builtin-ai.d.mts +342 -0
  156. package/dist/use-builtin-ai.mjs +261 -0
  157. package/dist/use-clipboard.d.mts +169 -0
  158. package/dist/use-clipboard.mjs +226 -0
  159. package/dist/use-compression-stream.d.mts +173 -0
  160. package/dist/use-compression-stream.mjs +166 -0
  161. package/dist/use-confirm-dialog.d.mts +70 -0
  162. package/dist/use-confirm-dialog.mjs +57 -0
  163. package/dist/use-contact-picker.d.mts +117 -0
  164. package/dist/use-contact-picker.mjs +103 -0
  165. package/dist/use-cookie.d.mts +196 -0
  166. package/dist/use-cookie.mjs +259 -0
  167. package/dist/use-countdown.d.mts +85 -0
  168. package/dist/use-countdown.mjs +74 -0
  169. package/dist/use-css-var.d.mts +96 -0
  170. package/dist/use-css-var.mjs +104 -0
  171. package/dist/use-cycle-list.d.mts +76 -0
  172. package/dist/use-cycle-list.mjs +39 -0
  173. package/dist/use-date-format.d.mts +103 -0
  174. package/dist/use-date-format.mjs +147 -0
  175. package/dist/use-date-time-format.d.mts +75 -0
  176. package/dist/use-date-time-format.mjs +53 -0
  177. package/dist/use-debounced.d.mts +1 -1
  178. package/dist/use-display-media.d.mts +62 -0
  179. package/dist/use-display-media.mjs +46 -0
  180. package/dist/use-display-names.d.mts +75 -0
  181. package/dist/use-display-names.mjs +52 -0
  182. package/dist/use-document-title.d.mts +88 -0
  183. package/dist/use-document-title.mjs +100 -0
  184. package/dist/use-drop-zone.d.mts +128 -0
  185. package/dist/use-drop-zone.mjs +154 -0
  186. package/dist/use-event-source.d.mts +184 -0
  187. package/dist/use-event-source.mjs +226 -0
  188. package/dist/use-eye-dropper.d.mts +79 -0
  189. package/dist/use-eye-dropper.mjs +68 -0
  190. package/dist/use-favicon.d.mts +78 -0
  191. package/dist/use-favicon.mjs +68 -0
  192. package/dist/use-fetch.d.mts +230 -0
  193. package/dist/use-fetch.mjs +263 -0
  194. package/dist/use-field.d.mts +107 -0
  195. package/dist/use-field.mjs +117 -0
  196. package/dist/use-file-dialog.d.mts +139 -0
  197. package/dist/use-file-dialog.mjs +101 -0
  198. package/dist/use-file-system-access.d.mts +184 -0
  199. package/dist/use-file-system-access.mjs +151 -0
  200. package/dist/use-form-field-props.d.mts +235 -0
  201. package/dist/use-form-field-props.mjs +164 -0
  202. package/dist/use-form.d.mts +324 -0
  203. package/dist/use-form.mjs +482 -0
  204. package/dist/use-fullscreen.d.mts +104 -0
  205. package/dist/use-fullscreen.mjs +95 -0
  206. package/dist/use-gamepad.d.mts +242 -0
  207. package/dist/use-gamepad.mjs +218 -0
  208. package/dist/use-hid.d.mts +160 -0
  209. package/dist/use-hid.mjs +156 -0
  210. package/dist/use-id-generator.d.mts +44 -0
  211. package/dist/use-id-generator.mjs +38 -0
  212. package/dist/use-image.d.mts +125 -0
  213. package/dist/use-image.mjs +109 -0
  214. package/dist/use-indexed-db.d.mts +207 -0
  215. package/dist/use-indexed-db.mjs +251 -0
  216. package/dist/use-interval-BA55gTHT.d.mts +140 -0
  217. package/dist/use-interval.d.mts +2 -0
  218. package/dist/use-interval.mjs +100 -0
  219. package/dist/use-list-format.d.mts +60 -0
  220. package/dist/use-list-format.mjs +40 -0
  221. package/dist/use-machine.d.mts +90 -0
  222. package/dist/use-machine.mjs +78 -0
  223. package/dist/use-map.d.mts +90 -0
  224. package/dist/use-map.mjs +70 -0
  225. package/dist/use-media-controls.d.mts +198 -0
  226. package/dist/use-media-controls.mjs +264 -0
  227. package/dist/use-memoize.d.mts +73 -0
  228. package/dist/use-memoize.mjs +28 -0
  229. package/dist/use-mounted.d.mts +24 -0
  230. package/dist/use-mounted.mjs +29 -0
  231. package/dist/use-navigation-api.d.mts +360 -0
  232. package/dist/use-navigation-api.mjs +231 -0
  233. package/dist/use-notification.d.mts +139 -0
  234. package/dist/use-notification.mjs +131 -0
  235. package/dist/use-now.d.mts +137 -0
  236. package/dist/use-now.mjs +44 -0
  237. package/dist/use-number-format.d.mts +73 -0
  238. package/dist/use-number-format.mjs +58 -0
  239. package/dist/use-object-url.d.mts +47 -0
  240. package/dist/use-object-url.mjs +54 -0
  241. package/dist/use-offset-pagination.d.mts +91 -0
  242. package/dist/use-offset-pagination.mjs +80 -0
  243. package/dist/use-payment-request.d.mts +239 -0
  244. package/dist/use-payment-request.mjs +206 -0
  245. package/dist/use-performance-observer.d.mts +285 -0
  246. package/dist/use-performance-observer.mjs +132 -0
  247. package/dist/use-permission.d.mts +99 -0
  248. package/dist/use-permission.mjs +92 -0
  249. package/dist/use-plural-rules.d.mts +79 -0
  250. package/dist/use-plural-rules.mjs +59 -0
  251. package/dist/use-push-subscription.d.mts +154 -0
  252. package/dist/use-push-subscription.mjs +146 -0
  253. package/dist/use-queue.d.mts +89 -0
  254. package/dist/use-queue.mjs +116 -0
  255. package/dist/use-raf-fn.d.mts +87 -0
  256. package/dist/use-raf-fn.mjs +99 -0
  257. package/dist/use-relative-time-format.d.mts +111 -0
  258. package/dist/use-relative-time-format.mjs +119 -0
  259. package/dist/use-request-idle-callback.d.mts +122 -0
  260. package/dist/use-request-idle-callback.mjs +147 -0
  261. package/dist/use-route-query.d.mts +149 -0
  262. package/dist/use-route-query.mjs +86 -0
  263. package/dist/use-scheduler-post-task.d.mts +156 -0
  264. package/dist/use-scheduler-post-task.mjs +182 -0
  265. package/dist/use-screen-details.d.mts +205 -0
  266. package/dist/use-screen-details.mjs +188 -0
  267. package/dist/use-script-tag.d.mts +162 -0
  268. package/dist/use-script-tag.mjs +171 -0
  269. package/dist/use-segmenter.d.mts +78 -0
  270. package/dist/use-segmenter.mjs +66 -0
  271. package/dist/use-selection.d.mts +125 -0
  272. package/dist/use-selection.mjs +77 -0
  273. package/dist/use-serial.d.mts +165 -0
  274. package/dist/use-serial.mjs +205 -0
  275. package/dist/use-service-worker.d.mts +177 -0
  276. package/dist/use-service-worker.mjs +178 -0
  277. package/dist/use-set.d.mts +96 -0
  278. package/dist/use-set.mjs +74 -0
  279. package/dist/use-share.d.mts +92 -0
  280. package/dist/use-share.mjs +99 -0
  281. package/dist/use-sorted-locale.d.mts +62 -0
  282. package/dist/use-sorted-locale.mjs +52 -0
  283. package/dist/use-sorted.d.mts +29 -0
  284. package/dist/use-sorted.mjs +14 -0
  285. package/dist/use-speech-recognition.d.mts +150 -0
  286. package/dist/use-speech-recognition.mjs +168 -0
  287. package/dist/use-speech-synthesis.d.mts +148 -0
  288. package/dist/use-speech-synthesis.mjs +152 -0
  289. package/dist/use-stack.d.mts +83 -0
  290. package/dist/use-stack.mjs +93 -0
  291. package/dist/use-stepper.d.mts +79 -0
  292. package/dist/use-stepper.mjs +52 -0
  293. package/dist/use-storage-estimate.d.mts +151 -0
  294. package/dist/use-storage-estimate.mjs +170 -0
  295. package/dist/use-storage.d.mts +214 -0
  296. package/dist/use-storage.mjs +415 -0
  297. package/dist/use-style-tag.d.mts +102 -0
  298. package/dist/use-style-tag.mjs +91 -0
  299. package/dist/use-supported.d.mts +23 -0
  300. package/dist/use-supported.mjs +26 -0
  301. package/dist/use-throttled.d.mts +1 -1
  302. package/dist/use-time-ago.d.mts +163 -0
  303. package/dist/use-time-ago.mjs +95 -0
  304. package/dist/use-timeout.d.mts +122 -0
  305. package/dist/use-timeout.mjs +65 -0
  306. package/dist/use-url-hash.d.mts +88 -0
  307. package/dist/use-url-hash.mjs +145 -0
  308. package/dist/use-url-search-params.d.mts +223 -0
  309. package/dist/use-url-search-params.mjs +295 -0
  310. package/dist/use-usb.d.mts +212 -0
  311. package/dist/use-usb.mjs +137 -0
  312. package/dist/use-user-activation.d.mts +83 -0
  313. package/dist/use-user-activation.mjs +113 -0
  314. package/dist/use-user-media.d.mts +194 -0
  315. package/dist/use-user-media.mjs +214 -0
  316. package/dist/use-v-model.d.mts +113 -0
  317. package/dist/use-v-model.mjs +40 -0
  318. package/dist/use-vibrate.d.mts +81 -0
  319. package/dist/use-vibrate.mjs +90 -0
  320. package/dist/use-view-transition.d.mts +106 -0
  321. package/dist/use-view-transition.mjs +101 -0
  322. package/dist/use-visual-viewport.d.mts +105 -0
  323. package/dist/use-visual-viewport.mjs +104 -0
  324. package/dist/use-wake-lock.d.mts +96 -0
  325. package/dist/use-wake-lock.mjs +106 -0
  326. package/dist/use-web-authn.d.mts +404 -0
  327. package/dist/use-web-authn.mjs +323 -0
  328. package/dist/use-web-locks.d.mts +180 -0
  329. package/dist/use-web-locks.mjs +136 -0
  330. package/dist/use-web-midi.d.mts +148 -0
  331. package/dist/use-web-midi.mjs +140 -0
  332. package/dist/use-web-vitals.d.mts +142 -0
  333. package/dist/use-web-vitals.mjs +248 -0
  334. package/dist/use-websocket.d.mts +218 -0
  335. package/dist/use-websocket.mjs +257 -0
  336. package/dist/use-worker-fn.d.mts +119 -0
  337. package/dist/use-worker-fn.mjs +162 -0
  338. package/dist/virtual-list.d.mts +105 -0
  339. package/dist/virtual-list.mjs +128 -0
  340. package/dist/watch-debounced.d.mts +84 -0
  341. package/dist/watch-debounced.mjs +84 -0
  342. package/dist/watch-ignorable.d.mts +47 -0
  343. package/dist/watch-ignorable.mjs +61 -0
  344. package/dist/watch-once.d.mts +29 -0
  345. package/dist/watch-once.mjs +10 -0
  346. package/dist/watch-pausable.d.mts +51 -0
  347. package/dist/watch-pausable.mjs +23 -0
  348. package/dist/watch-source.d.mts +29 -0
  349. package/dist/watch-source.mjs +1 -0
  350. package/dist/watch-throttled.d.mts +70 -0
  351. package/dist/watch-throttled.mjs +94 -0
  352. package/dist/whenever.d.mts +39 -0
  353. package/dist/whenever.mjs +41 -0
  354. package/dist/window-size.d.mts +87 -0
  355. package/dist/window-size.mjs +65 -0
  356. package/package.json +846 -5
  357. package/registry/files/abort-signal.ts +292 -0
  358. package/registry/files/active-element.ts +93 -0
  359. package/registry/files/animate.ts +322 -0
  360. package/registry/files/async-resource.ts +190 -0
  361. package/registry/files/battery.ts +166 -0
  362. package/registry/files/breakpoints.ts +166 -0
  363. package/registry/files/capability.ts +171 -0
  364. package/registry/files/color-mode.ts +274 -0
  365. package/registry/files/computed-async.ts +123 -0
  366. package/registry/files/computed-with-control.ts +80 -0
  367. package/registry/files/create-event-hook.ts +139 -0
  368. package/registry/files/create-global-state.ts +34 -0
  369. package/registry/files/create-injection-state.ts +75 -0
  370. package/registry/files/create-shared-composable.ts +74 -0
  371. package/registry/files/device-motion.ts +152 -0
  372. package/registry/files/device-orientation.ts +168 -0
  373. package/registry/files/device-pixel-ratio.ts +100 -0
  374. package/registry/files/disposal-scope.ts +201 -0
  375. package/registry/files/document-visibility.ts +152 -0
  376. package/registry/files/draggable.ts +273 -0
  377. package/registry/files/element-bounding.ts +175 -0
  378. package/registry/files/element-by-point.ts +149 -0
  379. package/registry/files/element-hover.ts +104 -0
  380. package/registry/files/element-ref.ts +58 -0
  381. package/registry/files/element-target.ts +99 -0
  382. package/registry/files/event-listener.ts +188 -0
  383. package/registry/files/focus.ts +181 -0
  384. package/registry/files/fps.ts +133 -0
  385. package/registry/files/geolocation.ts +214 -0
  386. package/registry/files/i18n.ts +524 -0
  387. package/registry/files/icu-message.ts +701 -0
  388. package/registry/files/idle.ts +176 -0
  389. package/registry/files/infinite-scroll.ts +135 -0
  390. package/registry/files/intersection-observer.ts +261 -0
  391. package/registry/files/locale.ts +148 -0
  392. package/registry/files/magic-keys.ts +298 -0
  393. package/registry/files/math.ts +175 -0
  394. package/registry/files/media-query.ts +102 -0
  395. package/registry/files/mouse-in-element.ts +107 -0
  396. package/registry/files/mouse.ts +167 -0
  397. package/registry/files/mutation-observer.ts +183 -0
  398. package/registry/files/network.ts +229 -0
  399. package/registry/files/on-click-outside.ts +178 -0
  400. package/registry/files/on-key-stroke.ts +135 -0
  401. package/registry/files/on-long-press.ts +188 -0
  402. package/registry/files/on-start-typing.ts +88 -0
  403. package/registry/files/page-leave.ts +57 -0
  404. package/registry/files/parent-element.ts +29 -0
  405. package/registry/files/pinch.ts +187 -0
  406. package/registry/files/pointer-lock.ts +232 -0
  407. package/registry/files/pointer.ts +153 -0
  408. package/registry/files/preferences.ts +98 -0
  409. package/registry/files/preferred-languages.ts +88 -0
  410. package/registry/files/reactify.ts +39 -0
  411. package/registry/files/ref-auto-reset.ts +102 -0
  412. package/registry/files/ref-debounced.ts +34 -0
  413. package/registry/files/ref-default.ts +35 -0
  414. package/registry/files/resize-observer.ts +220 -0
  415. package/registry/files/retry-async.ts +261 -0
  416. package/registry/files/retry-delay.ts +132 -0
  417. package/registry/files/scope.ts +21 -0
  418. package/registry/files/screen-orientation.ts +165 -0
  419. package/registry/files/scroll-lock.ts +80 -0
  420. package/registry/files/scroll.ts +338 -0
  421. package/registry/files/standard-schema.ts +163 -0
  422. package/registry/files/swipe.ts +321 -0
  423. package/registry/files/sync-ref.ts +166 -0
  424. package/registry/files/temporal.ts +182 -0
  425. package/registry/files/text-selection.ts +110 -0
  426. package/registry/files/textarea-autosize.ts +114 -0
  427. package/registry/files/timeout-scheduler.ts +16 -0
  428. package/registry/files/to-reactive.ts +44 -0
  429. package/registry/files/transition.ts +271 -0
  430. package/registry/files/until.ts +352 -0
  431. package/registry/files/use-array.ts +201 -0
  432. package/registry/files/use-async-queue.ts +278 -0
  433. package/registry/files/use-async-state.ts +139 -0
  434. package/registry/files/use-barcode-detector.ts +321 -0
  435. package/registry/files/use-bluetooth.ts +409 -0
  436. package/registry/files/use-broadcast-channel.ts +250 -0
  437. package/registry/files/use-builtin-ai.ts +674 -0
  438. package/registry/files/use-clipboard.ts +425 -0
  439. package/registry/files/use-compression-stream.ts +364 -0
  440. package/registry/files/use-confirm-dialog.ts +137 -0
  441. package/registry/files/use-contact-picker.ts +246 -0
  442. package/registry/files/use-cookie.ts +500 -0
  443. package/registry/files/use-countdown.ts +161 -0
  444. package/registry/files/use-counter.ts +147 -0
  445. package/registry/files/use-css-var.ts +191 -0
  446. package/registry/files/use-cycle-list.ts +136 -0
  447. package/registry/files/use-date-format.ts +281 -0
  448. package/registry/files/use-date-time-format.ts +113 -0
  449. package/registry/files/use-debounced.ts +163 -0
  450. package/registry/files/use-display-media.ts +89 -0
  451. package/registry/files/use-display-names.ts +122 -0
  452. package/registry/files/use-document-title.ts +196 -0
  453. package/registry/files/use-drop-zone.ts +287 -0
  454. package/registry/files/use-event-source.ts +470 -0
  455. package/registry/files/use-eye-dropper.ts +134 -0
  456. package/registry/files/use-favicon.ts +140 -0
  457. package/registry/files/use-fetch.ts +578 -0
  458. package/registry/files/use-field.ts +247 -0
  459. package/registry/files/use-file-dialog.ts +257 -0
  460. package/registry/files/use-file-system-access.ts +383 -0
  461. package/registry/files/use-form-field-props.ts +381 -0
  462. package/registry/files/use-form.ts +980 -0
  463. package/registry/files/use-fullscreen.ts +214 -0
  464. package/registry/files/use-gamepad.ts +463 -0
  465. package/registry/files/use-hid.ts +359 -0
  466. package/registry/files/use-history.ts +231 -0
  467. package/registry/files/use-id-generator.ts +61 -0
  468. package/registry/files/use-image.ts +253 -0
  469. package/registry/files/use-indexed-db.ts +508 -0
  470. package/registry/files/use-interval.ts +253 -0
  471. package/registry/files/use-list-format.ts +85 -0
  472. package/registry/files/use-machine.ts +171 -0
  473. package/registry/files/use-map.ts +145 -0
  474. package/registry/files/use-media-controls.ts +545 -0
  475. package/registry/files/use-memoize.ts +118 -0
  476. package/registry/files/use-mounted.ts +30 -0
  477. package/registry/files/use-navigation-api.ts +641 -0
  478. package/registry/files/use-notification.ts +285 -0
  479. package/registry/files/use-now.ts +194 -0
  480. package/registry/files/use-number-format.ts +120 -0
  481. package/registry/files/use-object-url.ts +87 -0
  482. package/registry/files/use-offset-pagination.ts +168 -0
  483. package/registry/files/use-payment-request.ts +465 -0
  484. package/registry/files/use-performance-observer.ts +469 -0
  485. package/registry/files/use-permission.ts +220 -0
  486. package/registry/files/use-plural-rules.ts +134 -0
  487. package/registry/files/use-previous.ts +62 -0
  488. package/registry/files/use-push-subscription.ts +352 -0
  489. package/registry/files/use-queue.ts +197 -0
  490. package/registry/files/use-raf-fn.ts +176 -0
  491. package/registry/files/use-relative-time-format.ts +201 -0
  492. package/registry/files/use-request-idle-callback.ts +278 -0
  493. package/registry/files/use-route-query.ts +300 -0
  494. package/registry/files/use-scheduler-post-task.ts +397 -0
  495. package/registry/files/use-screen-details.ts +393 -0
  496. package/registry/files/use-script-tag.ts +341 -0
  497. package/registry/files/use-segmenter.ts +147 -0
  498. package/registry/files/use-selection.ts +233 -0
  499. package/registry/files/use-serial.ts +404 -0
  500. package/registry/files/use-service-worker.ts +413 -0
  501. package/registry/files/use-set.ts +154 -0
  502. package/registry/files/use-share.ts +168 -0
  503. package/registry/files/use-sorted-locale.ts +130 -0
  504. package/registry/files/use-sorted.ts +49 -0
  505. package/registry/files/use-speech-recognition.ts +357 -0
  506. package/registry/files/use-speech-synthesis.ts +333 -0
  507. package/registry/files/use-stack.ts +164 -0
  508. package/registry/files/use-stepper.ts +166 -0
  509. package/registry/files/use-storage-estimate.ts +352 -0
  510. package/registry/files/use-storage.ts +635 -0
  511. package/registry/files/use-style-tag.ts +200 -0
  512. package/registry/files/use-supported.ts +26 -0
  513. package/registry/files/use-throttled.ts +215 -0
  514. package/registry/files/use-time-ago.ts +276 -0
  515. package/registry/files/use-timeout.ts +218 -0
  516. package/registry/files/use-toggle.ts +54 -0
  517. package/registry/files/use-url-hash.ts +280 -0
  518. package/registry/files/use-url-search-params.ts +497 -0
  519. package/registry/files/use-usb.ts +395 -0
  520. package/registry/files/use-user-activation.ts +215 -0
  521. package/registry/files/use-user-media.ts +422 -0
  522. package/registry/files/use-v-model.ts +210 -0
  523. package/registry/files/use-vibrate.ts +174 -0
  524. package/registry/files/use-view-transition.ts +229 -0
  525. package/registry/files/use-visual-viewport.ts +228 -0
  526. package/registry/files/use-wake-lock.ts +206 -0
  527. package/registry/files/use-web-authn.ts +793 -0
  528. package/registry/files/use-web-locks.ts +363 -0
  529. package/registry/files/use-web-midi.ts +306 -0
  530. package/registry/files/use-web-vitals.ts +409 -0
  531. package/registry/files/use-websocket.ts +553 -0
  532. package/registry/files/use-worker-fn.ts +306 -0
  533. package/registry/files/virtual-list.ts +230 -0
  534. package/registry/files/watch-debounced.ts +206 -0
  535. package/registry/files/watch-ignorable.ts +128 -0
  536. package/registry/files/watch-once.ts +46 -0
  537. package/registry/files/watch-pausable.ts +93 -0
  538. package/registry/files/watch-source.ts +51 -0
  539. package/registry/files/watch-throttled.ts +201 -0
  540. package/registry/files/whenever.ts +70 -0
  541. package/registry/files/window-size.ts +151 -0
  542. package/registry/registry.json +5792 -0
  543. package/dist/catalog-D2AL3xYl.d.mts +0 -523
  544. package/dist/catalog-D5SYCsgW.mjs +0 -549
@@ -0,0 +1,206 @@
1
+ import { toValue, watch } from "vue";
2
+ import type { MaybeRefOrGetter, WatchCallback, WatchHandle, WatchOptions } from "vue";
3
+
4
+ import { tryOnScopeDispose } from "./scope.ts";
5
+ import type { TimeoutScheduler } from "./timeout-scheduler.ts";
6
+ import type { WatchCleanupRegistrar, WatchHelperCallback, WatchSources } from "./watch-source.ts";
7
+
8
+ /** Options for {@link watchDebounced}. */
9
+ export interface WatchDebouncedOptions<
10
+ Immediate extends boolean = false,
11
+ > extends WatchOptions<Immediate> {
12
+ /**
13
+ * Quiet period in milliseconds after the last change before the callback
14
+ * runs. Reactive; read whenever a call is scheduled.
15
+ *
16
+ * @default 0
17
+ */
18
+ readonly debounce?: MaybeRefOrGetter<number>;
19
+
20
+ /**
21
+ * Longest time a call may be postponed by continuous changes. When it
22
+ * elapses, the newest pending call runs even if changes keep coming.
23
+ *
24
+ * @default undefined (no ceiling)
25
+ */
26
+ readonly maxWait?: MaybeRefOrGetter<number | undefined>;
27
+
28
+ /**
29
+ * Applies the timing policy when no browser `window` is available. When
30
+ * disabled, the callback runs synchronously on the server.
31
+ *
32
+ * @default false
33
+ */
34
+ readonly runOnServer?: boolean;
35
+
36
+ /**
37
+ * Owns the single-shot timers.
38
+ *
39
+ * @default globalThis timer functions
40
+ */
41
+ readonly scheduler?: TimeoutScheduler;
42
+ }
43
+
44
+ /** Stop handle plus timing controls returned by the debounced/throttled watchers. */
45
+ export interface TimedWatchHandle {
46
+ /** Stop watching and discard any pending call. */
47
+ readonly stop: () => void;
48
+
49
+ /**
50
+ * Run the pending call now instead of waiting.
51
+ *
52
+ * @returns Whether a pending call was run.
53
+ */
54
+ readonly flush: () => boolean;
55
+
56
+ /**
57
+ * Discard the pending call; later changes schedule again.
58
+ *
59
+ * @returns Whether a pending call was discarded.
60
+ */
61
+ readonly cancel: () => boolean;
62
+ }
63
+
64
+ const defaultScheduler: TimeoutScheduler = {
65
+ setTimeout: (callback, delayMs) => globalThis.setTimeout(callback, delayMs),
66
+ clearTimeout: (handle) => {
67
+ globalThis.clearTimeout(handle as ReturnType<typeof setTimeout>);
68
+ },
69
+ };
70
+
71
+ function resolveMs(value: number, name: string): number {
72
+ if (!Number.isFinite(value) || value < 0) {
73
+ throw new RangeError(
74
+ `[VIZE_COMPOSE_WATCH_DEBOUNCED_INVALID_DELAY] ${name} must be finite and at least zero; received ${String(value)}`,
75
+ );
76
+ }
77
+ return Math.trunc(value);
78
+ }
79
+
80
+ /**
81
+ * Watch sources like Vue's `watch`, but run the callback only after the
82
+ * sources stayed quiet for `debounce` milliseconds.
83
+ *
84
+ * The callback receives the newest value together with the old value from
85
+ * before the first change of the burst, so it always describes the whole
86
+ * settled transition. `onCleanup` registered by a callback runs before the
87
+ * next call, as with `watch`. `maxWait` bounds starvation under continuous
88
+ * changes. Source typing mirrors `watch`, including tuples and the
89
+ * `immediate` flag (an immediate first call is debounced too).
90
+ *
91
+ * Without a browser `window` (and without `runOnServer`) the callback runs
92
+ * synchronously, so server-side effects are not silently dropped. Timers are
93
+ * cleared when the watcher stops or the owning scope is disposed.
94
+ *
95
+ * @example
96
+ * ```ts
97
+ * watchDebounced(query, (value) => search(value), { debounce: 300, maxWait: 1_000 });
98
+ * ```
99
+ *
100
+ * @param source Ref, getter, reactive object, or tuple of those.
101
+ * @param callback Debounced watch callback.
102
+ * @param options Watch options plus the debounce policy.
103
+ * @default options {}
104
+ * @throws `RangeError` tagged `VIZE_COMPOSE_WATCH_DEBOUNCED_INVALID_DELAY`
105
+ * when `debounce` or `maxWait` resolve to a negative or non-finite value,
106
+ * synchronously at creation and whenever a call is scheduled.
107
+ * @returns Stop, flush, and cancel controls.
108
+ */
109
+ export function watchDebounced<
110
+ const Sources extends WatchSources,
111
+ Immediate extends Readonly<boolean> = false,
112
+ >(
113
+ source: Sources,
114
+ callback: WatchHelperCallback<Sources, Immediate>,
115
+ options?: WatchDebouncedOptions<Immediate>,
116
+ ): TimedWatchHandle;
117
+ export function watchDebounced(
118
+ source: WatchSources,
119
+ callback: WatchCallback<unknown, unknown>,
120
+ options: WatchDebouncedOptions<boolean> = {},
121
+ ): TimedWatchHandle {
122
+ const {
123
+ debounce = 0,
124
+ maxWait,
125
+ runOnServer = false,
126
+ scheduler = defaultScheduler,
127
+ ...watchOptions
128
+ } = options;
129
+ resolveMs(toValue(debounce), "debounce");
130
+ const initialMaxWait = toValue(maxWait);
131
+ if (initialMaxWait !== undefined) resolveMs(initialMaxWait, "maxWait");
132
+
133
+ let timer: unknown;
134
+ let maxTimer: unknown;
135
+ let pending: (() => void) | undefined;
136
+ let burstOld: unknown;
137
+ let cleanup: (() => void) | undefined;
138
+
139
+ const clearTimers = (): void => {
140
+ if (timer !== undefined) scheduler.clearTimeout(timer);
141
+ if (maxTimer !== undefined) scheduler.clearTimeout(maxTimer);
142
+ timer = undefined;
143
+ maxTimer = undefined;
144
+ };
145
+
146
+ const invoke = (value: unknown, oldValue: unknown): void => {
147
+ const runCleanup = cleanup;
148
+ cleanup = undefined;
149
+ runCleanup?.();
150
+ const onCleanup: WatchCleanupRegistrar = (fn) => {
151
+ cleanup = fn;
152
+ };
153
+ callback(value, oldValue, onCleanup);
154
+ };
155
+
156
+ const flush = (): boolean => {
157
+ const run = pending;
158
+ if (run === undefined) return false;
159
+ clearTimers();
160
+ pending = undefined;
161
+ run();
162
+ return true;
163
+ };
164
+
165
+ const cancel = (): boolean => {
166
+ if (pending === undefined) return false;
167
+ clearTimers();
168
+ pending = undefined;
169
+ return true;
170
+ };
171
+
172
+ const handle: WatchHandle = watch(
173
+ source,
174
+ (value, oldValue) => {
175
+ if (typeof window === "undefined" && !runOnServer) {
176
+ invoke(value, oldValue);
177
+ return;
178
+ }
179
+ if (pending === undefined) burstOld = oldValue;
180
+ const settledOld = burstOld;
181
+ pending = () => {
182
+ invoke(value, settledOld);
183
+ };
184
+ const delay = resolveMs(toValue(debounce), "debounce");
185
+ if (timer !== undefined) scheduler.clearTimeout(timer);
186
+ timer = scheduler.setTimeout(flush, delay);
187
+ const ceiling = toValue(maxWait);
188
+ if (ceiling !== undefined && maxTimer === undefined) {
189
+ maxTimer = scheduler.setTimeout(flush, resolveMs(ceiling, "maxWait"));
190
+ }
191
+ },
192
+ watchOptions,
193
+ );
194
+
195
+ const stop = (): void => {
196
+ handle.stop();
197
+ cancel();
198
+ const runCleanup = cleanup;
199
+ cleanup = undefined;
200
+ runCleanup?.();
201
+ };
202
+
203
+ tryOnScopeDispose(stop);
204
+
205
+ return { stop, flush, cancel };
206
+ }
@@ -0,0 +1,128 @@
1
+ import { watch } from "vue";
2
+ import type { WatchCallback, WatchOptions } from "vue";
3
+
4
+ import type { WatchHelperCallback, WatchSources } from "./watch-source.ts";
5
+
6
+ /** Controls returned by {@link watchIgnorable}. */
7
+ export interface IgnorableWatchHandle {
8
+ /**
9
+ * Run `updater` so that the source changes it makes synchronously do not
10
+ * trigger the callback.
11
+ */
12
+ readonly ignoreUpdates: (updater: () => void) => void;
13
+
14
+ /**
15
+ * Swallow the changes already queued for the next (non-sync) flush. A
16
+ * no-op for `flush: "sync"` watchers, which have nothing queued.
17
+ */
18
+ readonly ignorePrevAsyncUpdates: () => void;
19
+
20
+ /** Stop watching permanently. */
21
+ readonly stop: () => void;
22
+ }
23
+
24
+ /**
25
+ * Watch sources like Vue's `watch`, with a way to make changes the callback
26
+ * should not see.
27
+ *
28
+ * Typical use is two-way syncing: writes performed inside `ignoreUpdates`
29
+ * (for example applying a server echo) do not bounce back. Works with every
30
+ * `flush` mode: for `"pre"`/`"post"`, a synchronous side watcher counts
31
+ * changes so that a batch made only of ignored writes is skipped, while a
32
+ * batch that mixes ignored and regular writes is still delivered. Stops
33
+ * with the owning reactive scope; safe during server rendering.
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * const { ignoreUpdates } = watchIgnorable(draft, (value) => save(value));
38
+ * ignoreUpdates(() => {
39
+ * draft.value = fromServer; // not saved again
40
+ * });
41
+ * ```
42
+ *
43
+ * @param source Ref, getter, reactive object, or tuple of those.
44
+ * @param callback Watch callback for non-ignored changes.
45
+ * @param options Vue watch options.
46
+ * @default options {}
47
+ * @returns Ignore helpers and the stop handle.
48
+ */
49
+ export function watchIgnorable<
50
+ const Sources extends WatchSources,
51
+ Immediate extends Readonly<boolean> = false,
52
+ >(
53
+ source: Sources,
54
+ callback: WatchHelperCallback<Sources, Immediate>,
55
+ options?: WatchOptions<Immediate>,
56
+ ): IgnorableWatchHandle;
57
+ export function watchIgnorable(
58
+ source: WatchSources,
59
+ callback: WatchCallback<unknown, unknown>,
60
+ options: WatchOptions<boolean> = {},
61
+ ): IgnorableWatchHandle {
62
+ if (options.flush === "sync") {
63
+ let ignoring = false;
64
+ const handle = watch(
65
+ source,
66
+ (value, oldValue, onCleanup) => {
67
+ if (!ignoring) callback(value, oldValue, onCleanup);
68
+ },
69
+ options,
70
+ );
71
+ return {
72
+ ignoreUpdates: (updater) => {
73
+ const previous = ignoring;
74
+ ignoring = true;
75
+ try {
76
+ updater();
77
+ } finally {
78
+ ignoring = previous;
79
+ }
80
+ },
81
+ ignorePrevAsyncUpdates: () => undefined,
82
+ stop: () => {
83
+ handle.stop();
84
+ },
85
+ };
86
+ }
87
+
88
+ let ignoredCount = 0;
89
+ let changeCount = 0;
90
+
91
+ const counter = watch(
92
+ source,
93
+ () => {
94
+ changeCount += 1;
95
+ },
96
+ { ...options, flush: "sync", immediate: false, once: false },
97
+ );
98
+
99
+ const handle = watch(
100
+ source,
101
+ (value, oldValue, onCleanup) => {
102
+ const ignore = ignoredCount > 0 && ignoredCount === changeCount;
103
+ ignoredCount = 0;
104
+ changeCount = 0;
105
+ if (options.once === true) counter.stop();
106
+ if (!ignore) callback(value, oldValue, onCleanup);
107
+ },
108
+ options,
109
+ );
110
+
111
+ return {
112
+ ignoreUpdates: (updater) => {
113
+ const before = changeCount;
114
+ try {
115
+ updater();
116
+ } finally {
117
+ ignoredCount += changeCount - before;
118
+ }
119
+ },
120
+ ignorePrevAsyncUpdates: () => {
121
+ ignoredCount = changeCount;
122
+ },
123
+ stop: () => {
124
+ counter.stop();
125
+ handle.stop();
126
+ },
127
+ };
128
+ }
@@ -0,0 +1,46 @@
1
+ import { watch } from "vue";
2
+ import type { WatchCallback, WatchHandle, WatchOptions } from "vue";
3
+
4
+ import type { WatchHelperCallback, WatchSources } from "./watch-source.ts";
5
+
6
+ /** Options for {@link watchOnce}: Vue watch options without `once`. */
7
+ export type WatchOnceOptions<Immediate extends boolean = false> = Omit<
8
+ WatchOptions<Immediate>,
9
+ "once"
10
+ >;
11
+
12
+ /**
13
+ * Watch sources like Vue's `watch`, delivering exactly one change and then
14
+ * stopping.
15
+ *
16
+ * A thin, typed shorthand for `watch(source, callback, { once: true })`:
17
+ * with `immediate: true` the single call is the immediate one. The returned
18
+ * handle can stop the watcher before it fires. Safe during server rendering
19
+ * and bound to the owning reactive scope.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * watchOnce(user, (loaded) => track("first-user", loaded.id));
24
+ * ```
25
+ *
26
+ * @param source Ref, getter, reactive object, or tuple of those.
27
+ * @param callback Called at most once.
28
+ * @param options Vue watch options except `once`.
29
+ * @default options {}
30
+ * @returns Vue's watch handle.
31
+ */
32
+ export function watchOnce<
33
+ const Sources extends WatchSources,
34
+ Immediate extends Readonly<boolean> = false,
35
+ >(
36
+ source: Sources,
37
+ callback: WatchHelperCallback<Sources, Immediate>,
38
+ options?: WatchOnceOptions<Immediate>,
39
+ ): WatchHandle;
40
+ export function watchOnce(
41
+ source: WatchSources,
42
+ callback: WatchCallback<unknown, unknown>,
43
+ options: WatchOnceOptions<boolean> = {},
44
+ ): WatchHandle {
45
+ return watch(source, callback, { ...options, once: true });
46
+ }
@@ -0,0 +1,93 @@
1
+ import { shallowRef, watch } from "vue";
2
+ import type { ShallowRef, WatchCallback, WatchOptions } from "vue";
3
+
4
+ import type { WatchHelperCallback, WatchSources } from "./watch-source.ts";
5
+
6
+ /** Controls returned by {@link watchPausable}. */
7
+ export interface PausableWatchHandle {
8
+ /** Whether changes are currently delivered to the callback. */
9
+ readonly isActive: Readonly<ShallowRef<boolean>>;
10
+
11
+ /** Drop changes until {@link PausableWatchHandle.resume}. Idempotent. */
12
+ readonly pause: () => void;
13
+
14
+ /** Deliver changes again. Changes made while paused are not replayed. */
15
+ readonly resume: () => void;
16
+
17
+ /** Stop watching permanently. */
18
+ readonly stop: () => void;
19
+ }
20
+
21
+ /** Options for {@link watchPausable}. */
22
+ export interface WatchPausableOptions<
23
+ Immediate extends boolean = false,
24
+ > extends WatchOptions<Immediate> {
25
+ /**
26
+ * Start in the paused state.
27
+ *
28
+ * @default false
29
+ */
30
+ readonly initiallyPaused?: boolean;
31
+ }
32
+
33
+ /**
34
+ * Watch sources like Vue's `watch`, with pause and resume.
35
+ *
36
+ * Unlike the `pause()` built into Vue 3.5 watch handles, which delivers one
37
+ * catch-up call on resume, changes made while paused are dropped: the
38
+ * callback only ever sees changes that happened while active. The old value
39
+ * passed after a resume is the value from the most recent change Vue
40
+ * observed, whether or not it was delivered. The watcher follows the owning
41
+ * reactive scope and is safe during server rendering.
42
+ *
43
+ * @example
44
+ * ```ts
45
+ * const { pause, resume } = watchPausable(form, persist, { deep: true });
46
+ * pause();
47
+ * form.name = "x"; // not persisted
48
+ * resume();
49
+ * ```
50
+ *
51
+ * @param source Ref, getter, reactive object, or tuple of those.
52
+ * @param callback Watch callback, skipped while paused.
53
+ * @param options Watch options plus the initial pause state.
54
+ * @default options {}
55
+ * @returns Pause, resume, and stop controls with the active flag.
56
+ */
57
+ export function watchPausable<
58
+ const Sources extends WatchSources,
59
+ Immediate extends Readonly<boolean> = false,
60
+ >(
61
+ source: Sources,
62
+ callback: WatchHelperCallback<Sources, Immediate>,
63
+ options?: WatchPausableOptions<Immediate>,
64
+ ): PausableWatchHandle;
65
+ export function watchPausable(
66
+ source: WatchSources,
67
+ callback: WatchCallback<unknown, unknown>,
68
+ options: WatchPausableOptions<boolean> = {},
69
+ ): PausableWatchHandle {
70
+ const { initiallyPaused = false, ...watchOptions } = options;
71
+ const isActive = shallowRef(!initiallyPaused);
72
+
73
+ const handle = watch(
74
+ source,
75
+ (value, oldValue, onCleanup) => {
76
+ if (isActive.value) callback(value, oldValue, onCleanup);
77
+ },
78
+ watchOptions,
79
+ );
80
+
81
+ return {
82
+ isActive,
83
+ pause: () => {
84
+ isActive.value = false;
85
+ },
86
+ resume: () => {
87
+ isActive.value = true;
88
+ },
89
+ stop: () => {
90
+ handle.stop();
91
+ },
92
+ };
93
+ }
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Shared source and callback typing for the watch helpers
3
+ * (`watchDebounced`, `watchThrottled`, `watchPausable`, `watchIgnorable`,
4
+ * `watchOnce`, `whenever`).
5
+ *
6
+ * The helpers accept the same sources as Vue's `watch`: a ref, a getter, a
7
+ * reactive object, or a tuple of those. This module declares types only and
8
+ * contributes no runtime code.
9
+ */
10
+ import type { WatchCallback, WatchSource } from "vue";
11
+
12
+ /** A single source accepted by Vue's `watch`: ref, getter, or reactive object. */
13
+ export type WatchSourceInput = WatchSource<unknown> | object;
14
+
15
+ /** Every source shape accepted by the watch helpers, including tuples. */
16
+ export type WatchSources = WatchSourceInput | readonly WatchSourceInput[];
17
+
18
+ /**
19
+ * Value observed from a single source: the ref/getter value, or the reactive
20
+ * object itself.
21
+ */
22
+ export type WatchSourceValue<Source> =
23
+ Source extends WatchSource<infer Value> ? Value : Source extends object ? Source : never;
24
+
25
+ /**
26
+ * Value delivered to a watch callback for {@link WatchSources}: a tuple
27
+ * source maps element-wise, any other source resolves through
28
+ * {@link WatchSourceValue}.
29
+ */
30
+ export type WatchValue<Sources> = Sources extends readonly unknown[]
31
+ ? { -readonly [Index in keyof Sources]: WatchSourceValue<Sources[Index]> }
32
+ : WatchSourceValue<Sources>;
33
+
34
+ /**
35
+ * Previous value delivered to a watch callback: `undefined` is added only
36
+ * when the watcher runs immediately (tuples get it per element, as in Vue).
37
+ */
38
+ export type WatchOldValue<Sources, Immediate> = Immediate extends true
39
+ ? Sources extends readonly unknown[]
40
+ ? { -readonly [Index in keyof Sources]: WatchSourceValue<Sources[Index]> | undefined }
41
+ : WatchSourceValue<Sources> | undefined
42
+ : WatchValue<Sources>;
43
+
44
+ /** Callback typed from its sources and the `immediate` flag. */
45
+ export type WatchHelperCallback<Sources, Immediate = false> = WatchCallback<
46
+ WatchValue<Sources>,
47
+ WatchOldValue<Sources, Immediate>
48
+ >;
49
+
50
+ /** Cleanup registrar passed as the third argument of a watch callback. */
51
+ export type WatchCleanupRegistrar = Parameters<WatchCallback>[2];