@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,29 @@
1
+ import { WatchHelperCallback, WatchSources } from "./watch-source.mjs";
2
+ import { WatchHandle, WatchOptions } from "vue";
3
+
4
+ //#region src/watch-once.d.ts
5
+ /** Options for {@link watchOnce}: Vue watch options without `once`. */
6
+ type WatchOnceOptions<Immediate extends boolean = false> = Omit<WatchOptions<Immediate>, "once">;
7
+ /**
8
+ * Watch sources like Vue's `watch`, delivering exactly one change and then
9
+ * stopping.
10
+ *
11
+ * A thin, typed shorthand for `watch(source, callback, { once: true })`:
12
+ * with `immediate: true` the single call is the immediate one. The returned
13
+ * handle can stop the watcher before it fires. Safe during server rendering
14
+ * and bound to the owning reactive scope.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * watchOnce(user, (loaded) => track("first-user", loaded.id));
19
+ * ```
20
+ *
21
+ * @param source Ref, getter, reactive object, or tuple of those.
22
+ * @param callback Called at most once.
23
+ * @param options Vue watch options except `once`.
24
+ * @default options {}
25
+ * @returns Vue's watch handle.
26
+ */
27
+ declare function watchOnce<const Sources extends WatchSources, Immediate extends Readonly<boolean> = false>(source: Sources, callback: WatchHelperCallback<Sources, Immediate>, options?: WatchOnceOptions<Immediate>): WatchHandle;
28
+ //#endregion
29
+ export { WatchOnceOptions, watchOnce };
@@ -0,0 +1,10 @@
1
+ import { watch } from "vue";
2
+ //#region src/watch-once.ts
3
+ function watchOnce(source, callback, options = {}) {
4
+ return watch(source, callback, {
5
+ ...options,
6
+ once: true
7
+ });
8
+ }
9
+ //#endregion
10
+ export { watchOnce };
@@ -0,0 +1,51 @@
1
+ import { WatchHelperCallback, WatchSources } from "./watch-source.mjs";
2
+ import { ShallowRef, WatchOptions } from "vue";
3
+
4
+ //#region src/watch-pausable.d.ts
5
+ /** Controls returned by {@link watchPausable}. */
6
+ interface PausableWatchHandle {
7
+ /** Whether changes are currently delivered to the callback. */
8
+ readonly isActive: Readonly<ShallowRef<boolean>>;
9
+ /** Drop changes until {@link PausableWatchHandle.resume}. Idempotent. */
10
+ readonly pause: () => void;
11
+ /** Deliver changes again. Changes made while paused are not replayed. */
12
+ readonly resume: () => void;
13
+ /** Stop watching permanently. */
14
+ readonly stop: () => void;
15
+ }
16
+ /** Options for {@link watchPausable}. */
17
+ interface WatchPausableOptions<Immediate extends boolean = false> extends WatchOptions<Immediate> {
18
+ /**
19
+ * Start in the paused state.
20
+ *
21
+ * @default false
22
+ */
23
+ readonly initiallyPaused?: boolean;
24
+ }
25
+ /**
26
+ * Watch sources like Vue's `watch`, with pause and resume.
27
+ *
28
+ * Unlike the `pause()` built into Vue 3.5 watch handles, which delivers one
29
+ * catch-up call on resume, changes made while paused are dropped: the
30
+ * callback only ever sees changes that happened while active. The old value
31
+ * passed after a resume is the value from the most recent change Vue
32
+ * observed, whether or not it was delivered. The watcher follows the owning
33
+ * reactive scope and is safe during server rendering.
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * const { pause, resume } = watchPausable(form, persist, { deep: true });
38
+ * pause();
39
+ * form.name = "x"; // not persisted
40
+ * resume();
41
+ * ```
42
+ *
43
+ * @param source Ref, getter, reactive object, or tuple of those.
44
+ * @param callback Watch callback, skipped while paused.
45
+ * @param options Watch options plus the initial pause state.
46
+ * @default options {}
47
+ * @returns Pause, resume, and stop controls with the active flag.
48
+ */
49
+ declare function watchPausable<const Sources extends WatchSources, Immediate extends Readonly<boolean> = false>(source: Sources, callback: WatchHelperCallback<Sources, Immediate>, options?: WatchPausableOptions<Immediate>): PausableWatchHandle;
50
+ //#endregion
51
+ export { PausableWatchHandle, WatchPausableOptions, watchPausable };
@@ -0,0 +1,23 @@
1
+ import { shallowRef, watch } from "vue";
2
+ //#region src/watch-pausable.ts
3
+ function watchPausable(source, callback, options = {}) {
4
+ const { initiallyPaused = false, ...watchOptions } = options;
5
+ const isActive = shallowRef(!initiallyPaused);
6
+ const handle = watch(source, (value, oldValue, onCleanup) => {
7
+ if (isActive.value) callback(value, oldValue, onCleanup);
8
+ }, watchOptions);
9
+ return {
10
+ isActive,
11
+ pause: () => {
12
+ isActive.value = false;
13
+ },
14
+ resume: () => {
15
+ isActive.value = true;
16
+ },
17
+ stop: () => {
18
+ handle.stop();
19
+ }
20
+ };
21
+ }
22
+ //#endregion
23
+ export { watchPausable };
@@ -0,0 +1,29 @@
1
+ import { WatchCallback, WatchSource } from "vue";
2
+
3
+ //#region src/watch-source.d.ts
4
+ /** A single source accepted by Vue's `watch`: ref, getter, or reactive object. */
5
+ type WatchSourceInput = WatchSource<unknown> | object;
6
+ /** Every source shape accepted by the watch helpers, including tuples. */
7
+ type WatchSources = WatchSourceInput | readonly WatchSourceInput[];
8
+ /**
9
+ * Value observed from a single source: the ref/getter value, or the reactive
10
+ * object itself.
11
+ */
12
+ type WatchSourceValue<Source> = Source extends WatchSource<infer Value> ? Value : Source extends object ? Source : never;
13
+ /**
14
+ * Value delivered to a watch callback for {@link WatchSources}: a tuple
15
+ * source maps element-wise, any other source resolves through
16
+ * {@link WatchSourceValue}.
17
+ */
18
+ type WatchValue<Sources> = Sources extends readonly unknown[] ? { -readonly [Index in keyof Sources]: WatchSourceValue<Sources[Index]> } : WatchSourceValue<Sources>;
19
+ /**
20
+ * Previous value delivered to a watch callback: `undefined` is added only
21
+ * when the watcher runs immediately (tuples get it per element, as in Vue).
22
+ */
23
+ type WatchOldValue<Sources, Immediate> = Immediate extends true ? Sources extends readonly unknown[] ? { -readonly [Index in keyof Sources]: WatchSourceValue<Sources[Index]> | undefined } : WatchSourceValue<Sources> | undefined : WatchValue<Sources>;
24
+ /** Callback typed from its sources and the `immediate` flag. */
25
+ type WatchHelperCallback<Sources, Immediate = false> = WatchCallback<WatchValue<Sources>, WatchOldValue<Sources, Immediate>>;
26
+ /** Cleanup registrar passed as the third argument of a watch callback. */
27
+ type WatchCleanupRegistrar = Parameters<WatchCallback>[2];
28
+ //#endregion
29
+ export { WatchCleanupRegistrar, WatchHelperCallback, WatchOldValue, WatchSourceInput, WatchSourceValue, WatchSources, WatchValue };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,70 @@
1
+ import { t as TimeoutScheduler } from "./timeout-scheduler-CI8RVLZs.mjs";
2
+ import { WatchHelperCallback, WatchSources } from "./watch-source.mjs";
3
+ import { TimedWatchHandle } from "./watch-debounced.mjs";
4
+ import { MaybeRefOrGetter, WatchOptions } from "vue";
5
+
6
+ //#region src/watch-throttled.d.ts
7
+ /** Options for {@link watchThrottled}. */
8
+ interface WatchThrottledOptions<Immediate extends boolean = false> extends WatchOptions<Immediate> {
9
+ /**
10
+ * Cooldown window in milliseconds. Reactive; read whenever a window opens.
11
+ *
12
+ * @default 0
13
+ */
14
+ readonly throttle?: MaybeRefOrGetter<number>;
15
+ /**
16
+ * Run the first change of a window immediately.
17
+ *
18
+ * @default true
19
+ */
20
+ readonly leading?: boolean;
21
+ /**
22
+ * Run the newest change collected during a window when it closes.
23
+ *
24
+ * @default true
25
+ */
26
+ readonly trailing?: boolean;
27
+ /**
28
+ * Applies the timing policy when no browser `window` is available. When
29
+ * disabled, the callback runs synchronously on the server.
30
+ *
31
+ * @default false
32
+ */
33
+ readonly runOnServer?: boolean;
34
+ /**
35
+ * Owns the cooldown timer.
36
+ *
37
+ * @default globalThis timer functions
38
+ */
39
+ readonly scheduler?: TimeoutScheduler;
40
+ }
41
+ /**
42
+ * Watch sources like Vue's `watch`, but run the callback at most once per
43
+ * cooldown window.
44
+ *
45
+ * With the defaults (`leading` and `trailing` both on) the first change runs
46
+ * immediately and the newest change inside the window runs when it closes,
47
+ * which opens a new window. Every call receives, as its old value, the value
48
+ * of the previously delivered call, so consecutive calls chain without gaps. Source
49
+ * typing mirrors `watch`.
50
+ *
51
+ * Without a browser `window` (and without `runOnServer`) the callback runs
52
+ * synchronously. Timers are cleared when the watcher stops or the owning
53
+ * scope is disposed.
54
+ *
55
+ * @example
56
+ * ```ts
57
+ * watchThrottled(scrollY, (y) => report(y), { throttle: 100 });
58
+ * ```
59
+ *
60
+ * @param source Ref, getter, reactive object, or tuple of those.
61
+ * @param callback Throttled watch callback.
62
+ * @param options Watch options plus the throttle policy.
63
+ * @default options {}
64
+ * @throws `RangeError` tagged `VIZE_COMPOSE_WATCH_THROTTLED_INVALID_DELAY`
65
+ * when `throttle` resolves to a negative or non-finite value.
66
+ * @returns Stop, flush, and cancel controls.
67
+ */
68
+ declare function watchThrottled<const Sources extends WatchSources, Immediate extends Readonly<boolean> = false>(source: Sources, callback: WatchHelperCallback<Sources, Immediate>, options?: WatchThrottledOptions<Immediate>): TimedWatchHandle;
69
+ //#endregion
70
+ export { WatchThrottledOptions, watchThrottled };
@@ -0,0 +1,94 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { toValue, watch } from "vue";
3
+ //#region src/watch-throttled.ts
4
+ const defaultScheduler = {
5
+ setTimeout: (callback, delayMs) => globalThis.setTimeout(callback, delayMs),
6
+ clearTimeout: (handle) => {
7
+ globalThis.clearTimeout(handle);
8
+ }
9
+ };
10
+ function resolveThrottleMs(value) {
11
+ if (!Number.isFinite(value) || value < 0) throw new RangeError(`[VIZE_COMPOSE_WATCH_THROTTLED_INVALID_DELAY] throttle must be finite and at least zero; received ${String(value)}`);
12
+ return Math.trunc(value);
13
+ }
14
+ function watchThrottled(source, callback, options = {}) {
15
+ const { throttle = 0, leading = true, trailing = true, runOnServer = false, scheduler = defaultScheduler, ...watchOptions } = options;
16
+ resolveThrottleMs(toValue(throttle));
17
+ let timer;
18
+ let pending;
19
+ let lastDelivered;
20
+ let pendingOld;
21
+ let delivered = false;
22
+ let cleanup;
23
+ const invoke = (value, oldValue) => {
24
+ const runCleanup = cleanup;
25
+ cleanup = void 0;
26
+ runCleanup?.();
27
+ lastDelivered = value;
28
+ delivered = true;
29
+ const onCleanup = (fn) => {
30
+ cleanup = fn;
31
+ };
32
+ callback(value, oldValue, onCleanup);
33
+ };
34
+ const closeWindow = () => {
35
+ timer = void 0;
36
+ const run = pending;
37
+ pending = void 0;
38
+ if (run === void 0) return;
39
+ run();
40
+ openWindow();
41
+ };
42
+ function openWindow() {
43
+ timer = scheduler.setTimeout(closeWindow, resolveThrottleMs(toValue(throttle)));
44
+ }
45
+ const cancel = () => {
46
+ if (timer !== void 0) scheduler.clearTimeout(timer);
47
+ timer = void 0;
48
+ const hadPending = pending !== void 0;
49
+ pending = void 0;
50
+ return hadPending;
51
+ };
52
+ const flush = () => {
53
+ const run = pending;
54
+ if (run === void 0) return false;
55
+ pending = void 0;
56
+ run();
57
+ return true;
58
+ };
59
+ const schedule = (value, previous) => {
60
+ pending = () => {
61
+ invoke(value, previous);
62
+ };
63
+ pendingOld = previous;
64
+ };
65
+ const handle = watch(source, (value, oldValue) => {
66
+ if (typeof window === "undefined" && !runOnServer) {
67
+ invoke(value, oldValue);
68
+ return;
69
+ }
70
+ const previous = pending === void 0 ? delivered ? lastDelivered : oldValue : pendingOld;
71
+ if (timer === void 0) {
72
+ if (leading) invoke(value, previous);
73
+ else if (trailing) schedule(value, previous);
74
+ openWindow();
75
+ return;
76
+ }
77
+ if (trailing) schedule(value, previous);
78
+ }, watchOptions);
79
+ const stop = () => {
80
+ handle.stop();
81
+ cancel();
82
+ const runCleanup = cleanup;
83
+ cleanup = void 0;
84
+ runCleanup?.();
85
+ };
86
+ tryOnScopeDispose(stop);
87
+ return {
88
+ stop,
89
+ flush,
90
+ cancel
91
+ };
92
+ }
93
+ //#endregion
94
+ export { watchThrottled };
@@ -0,0 +1,39 @@
1
+ import { WatchCleanupRegistrar } from "./watch-source.mjs";
2
+ import { WatchHandle, WatchOptions, WatchSource } from "vue";
3
+
4
+ //#region src/whenever.d.ts
5
+ /** Values treated as "not yet" by {@link whenever}. */
6
+ type Falsy = false | 0 | 0n | "" | null | undefined;
7
+ /** Options for {@link whenever}. */
8
+ type WheneverOptions = Omit<WatchOptions<boolean>, "once"> & {
9
+ /**
10
+ * Stop after the first truthy delivery instead of after the first change.
11
+ *
12
+ * @default false
13
+ */
14
+ readonly once?: boolean;
15
+ };
16
+ /**
17
+ * Run a callback whenever a source becomes (or changes while) truthy.
18
+ *
19
+ * The callback's value is narrowed with `Exclude<Value, Falsy>`, so a
20
+ * `Ref<User | null>` delivers `User`. With `once`, the watcher stops after
21
+ * the first truthy delivery, not after the first change (unlike Vue's
22
+ * `once`). With `immediate`, an already-truthy source is delivered right
23
+ * away. Safe during server rendering and bound to the owning scope.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * whenever(currentUser, (user) => greet(user.name), { immediate: true, once: true });
28
+ * ```
29
+ *
30
+ * @param source Ref or getter.
31
+ * @param callback Receives the truthy value, the previous value, and
32
+ * `onCleanup`.
33
+ * @param options Vue watch options; `once` counts truthy deliveries only.
34
+ * @default options {}
35
+ * @returns Vue's watch handle.
36
+ */
37
+ declare function whenever<Value>(source: WatchSource<Value>, callback: (value: Exclude<Value, Falsy>, oldValue: Value | undefined, onCleanup: WatchCleanupRegistrar) => void, options?: WheneverOptions): WatchHandle;
38
+ //#endregion
39
+ export { Falsy, WheneverOptions, whenever };
@@ -0,0 +1,41 @@
1
+ import { watch } from "vue";
2
+ //#region src/whenever.ts
3
+ /**
4
+ * Run a callback whenever a source becomes (or changes while) truthy.
5
+ *
6
+ * The callback's value is narrowed with `Exclude<Value, Falsy>`, so a
7
+ * `Ref<User | null>` delivers `User`. With `once`, the watcher stops after
8
+ * the first truthy delivery, not after the first change (unlike Vue's
9
+ * `once`). With `immediate`, an already-truthy source is delivered right
10
+ * away. Safe during server rendering and bound to the owning scope.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * whenever(currentUser, (user) => greet(user.name), { immediate: true, once: true });
15
+ * ```
16
+ *
17
+ * @param source Ref or getter.
18
+ * @param callback Receives the truthy value, the previous value, and
19
+ * `onCleanup`.
20
+ * @param options Vue watch options; `once` counts truthy deliveries only.
21
+ * @default options {}
22
+ * @returns Vue's watch handle.
23
+ */
24
+ function whenever(source, callback, options = {}) {
25
+ const { once = false, ...watchOptions } = options;
26
+ let handle;
27
+ let stopRequested = false;
28
+ handle = watch(source, (value, oldValue, onCleanup) => {
29
+ if (!isTruthy(value)) return;
30
+ if (once) if (handle === void 0) stopRequested = true;
31
+ else handle.stop();
32
+ callback(value, oldValue, onCleanup);
33
+ }, watchOptions);
34
+ if (stopRequested) handle.stop();
35
+ return handle;
36
+ }
37
+ function isTruthy(value) {
38
+ return Boolean(value);
39
+ }
40
+ //#endregion
41
+ export { whenever };
@@ -0,0 +1,87 @@
1
+ import { MaybeRefOrGetter, Ref } from "vue";
2
+
3
+ //#region src/window-size.d.ts
4
+ /** Window-like capability observed by {@link useWindowSize}. */
5
+ interface WindowSizeHost extends EventTarget {
6
+ /** Viewport width including the vertical scrollbar. */
7
+ readonly innerWidth: number;
8
+ /** Viewport height including the horizontal scrollbar. */
9
+ readonly innerHeight: number;
10
+ /** Outer browser window width. */
11
+ readonly outerWidth: number;
12
+ /** Outer browser window height. */
13
+ readonly outerHeight: number;
14
+ /** Document whose root element reports the scrollbar-free viewport. */
15
+ readonly document: {
16
+ readonly documentElement: {
17
+ readonly clientWidth: number;
18
+ readonly clientHeight: number;
19
+ };
20
+ };
21
+ }
22
+ /** Which window dimensions {@link useWindowSize} reports. */
23
+ type WindowSizeKind = "inner" | "outer";
24
+ /** Options for {@link useWindowSize}. */
25
+ interface UseWindowSizeOptions {
26
+ /**
27
+ * Width exposed during server rendering and before hydration.
28
+ *
29
+ * @default 0
30
+ */
31
+ readonly initialWidth?: number;
32
+ /**
33
+ * Height exposed during server rendering and before hydration.
34
+ *
35
+ * @default 0
36
+ */
37
+ readonly initialHeight?: number;
38
+ /**
39
+ * Include scrollbars in the inner dimensions. When `false`, the root
40
+ * element's `clientWidth`/`clientHeight` are reported instead.
41
+ *
42
+ * @default true
43
+ */
44
+ readonly includeScrollbar?: boolean;
45
+ /**
46
+ * Report inner (viewport) or outer (browser window) dimensions.
47
+ *
48
+ * @default "inner"
49
+ */
50
+ readonly type?: WindowSizeKind;
51
+ /**
52
+ * Also re-measure on `orientationchange` for engines that resize late.
53
+ *
54
+ * @default true
55
+ */
56
+ readonly listenOrientation?: boolean;
57
+ /**
58
+ * Reactive window capability for alternate runtimes and tests.
59
+ *
60
+ * @default globalThis.window when available
61
+ */
62
+ readonly host?: MaybeRefOrGetter<WindowSizeHost | null | undefined>;
63
+ }
64
+ /** Reactive size returned by {@link useWindowSize}. */
65
+ interface WindowSizeControls {
66
+ /** Current width in CSS pixels. */
67
+ readonly width: Readonly<Ref<number>>;
68
+ /** Current height in CSS pixels. */
69
+ readonly height: Readonly<Ref<number>>;
70
+ /** Whether a window capability is attached. `false` during server rendering. */
71
+ readonly isSupported: Readonly<Ref<boolean>>;
72
+ }
73
+ /**
74
+ * Track the window size reactively.
75
+ *
76
+ * Server renders expose `initialWidth`/`initialHeight` (default `0`), so the
77
+ * first client render matches; the real size is applied as soon as a window
78
+ * resolves (after mounting when called inside a component). Resize (and orientation) listeners are passive and removed with
79
+ * the owning reactive scope.
80
+ *
81
+ * @param options Initial size, measurement kind, and capability.
82
+ * @default options {}
83
+ * @returns Reactive width/height plus a support flag.
84
+ */
85
+ declare function useWindowSize(options?: UseWindowSizeOptions): WindowSizeControls;
86
+ //#endregion
87
+ export { UseWindowSizeOptions, WindowSizeControls, WindowSizeHost, WindowSizeKind, useWindowSize };
@@ -0,0 +1,65 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { hasInjectionContext, onMounted, readonly, ref, toValue, watch } from "vue";
3
+ //#region src/window-size.ts
4
+ /**
5
+ * Track the window size reactively.
6
+ *
7
+ * Server renders expose `initialWidth`/`initialHeight` (default `0`), so the
8
+ * first client render matches; the real size is applied as soon as a window
9
+ * resolves (after mounting when called inside a component). Resize (and orientation) listeners are passive and removed with
10
+ * the owning reactive scope.
11
+ *
12
+ * @param options Initial size, measurement kind, and capability.
13
+ * @default options {}
14
+ * @returns Reactive width/height plus a support flag.
15
+ */
16
+ function useWindowSize(options = {}) {
17
+ const { initialWidth = 0, initialHeight = 0, includeScrollbar = true, type = "inner", listenOrientation = true } = options;
18
+ const width = ref(initialWidth);
19
+ const height = ref(initialHeight);
20
+ const isSupported = ref(false);
21
+ let stopWatch;
22
+ const start = () => {
23
+ stopWatch = watch(() => options.host === void 0 ? browserWindowSizeHost() : toValue(options.host), (host, _previous, onCleanup) => {
24
+ isSupported.value = Boolean(host);
25
+ if (!host) {
26
+ width.value = initialWidth;
27
+ height.value = initialHeight;
28
+ return;
29
+ }
30
+ const update = () => {
31
+ if (type === "outer") {
32
+ width.value = host.outerWidth;
33
+ height.value = host.outerHeight;
34
+ } else if (includeScrollbar) {
35
+ width.value = host.innerWidth;
36
+ height.value = host.innerHeight;
37
+ } else {
38
+ width.value = host.document.documentElement.clientWidth;
39
+ height.value = host.document.documentElement.clientHeight;
40
+ }
41
+ };
42
+ update();
43
+ const listenerOptions = { passive: true };
44
+ host.addEventListener("resize", update, listenerOptions);
45
+ if (listenOrientation) host.addEventListener("orientationchange", update, listenerOptions);
46
+ onCleanup(() => {
47
+ host.removeEventListener("resize", update);
48
+ if (listenOrientation) host.removeEventListener("orientationchange", update);
49
+ });
50
+ }, { immediate: true });
51
+ };
52
+ if (hasInjectionContext()) onMounted(start);
53
+ else start();
54
+ tryOnScopeDispose(() => stopWatch?.stop());
55
+ return {
56
+ width: readonly(width),
57
+ height: readonly(height),
58
+ isSupported: readonly(isSupported)
59
+ };
60
+ }
61
+ function browserWindowSizeHost() {
62
+ return typeof window !== "undefined" ? window : void 0;
63
+ }
64
+ //#endregion
65
+ export { useWindowSize };