@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,121 @@
1
+ import { n as MaybeElementTarget } from "./element-target-Crpxl4D9.mjs";
2
+ import { Point } from "./mouse.mjs";
3
+ import { PointerKind } from "./pointer.mjs";
4
+ import { ComputedRef, MaybeRefOrGetter, Ref } from "vue";
5
+
6
+ //#region src/draggable.d.ts
7
+ /** Axis constraint for {@link useDraggable}. */
8
+ type DragAxis = "x" | "y" | "both";
9
+ /** Rectangle (in the same coordinate space as the position) that bounds dragging. */
10
+ interface DragBounds {
11
+ /** Minimum x. */
12
+ readonly left: number;
13
+ /** Minimum y. */
14
+ readonly top: number;
15
+ /** Maximum x of the dragged element's right edge. */
16
+ readonly right: number;
17
+ /** Maximum y of the dragged element's bottom edge. */
18
+ readonly bottom: number;
19
+ }
20
+ /** Options for {@link useDraggable}. */
21
+ interface UseDraggableOptions {
22
+ /**
23
+ * Element that starts the drag. Defaults to the dragged element itself.
24
+ *
25
+ * @default undefined (the target)
26
+ */
27
+ readonly handle?: MaybeElementTarget;
28
+ /**
29
+ * Restrict movement to one axis.
30
+ *
31
+ * @default "both"
32
+ */
33
+ readonly axis?: MaybeRefOrGetter<DragAxis>;
34
+ /**
35
+ * Keep the element inside these bounds, or inside a container element's
36
+ * client rectangle.
37
+ *
38
+ * @default undefined (unbounded)
39
+ */
40
+ readonly bounds?: MaybeRefOrGetter<DragBounds | null | undefined> | MaybeElementTarget;
41
+ /**
42
+ * Position before the first drag and during server rendering.
43
+ *
44
+ * @default { x: 0, y: 0 }
45
+ */
46
+ readonly initialValue?: Point;
47
+ /**
48
+ * Device kinds that may start a drag.
49
+ *
50
+ * @default ["mouse", "touch", "pen"]
51
+ */
52
+ readonly pointerTypes?: readonly PointerKind[];
53
+ /**
54
+ * Only start when the pointer goes down on the handle itself, not a descendant.
55
+ *
56
+ * @default false
57
+ */
58
+ readonly exact?: boolean;
59
+ /**
60
+ * Call `preventDefault()` on pointer events while dragging.
61
+ *
62
+ * @default false
63
+ */
64
+ readonly preventDefault?: boolean;
65
+ /**
66
+ * Temporarily disable dragging.
67
+ *
68
+ * @default false
69
+ */
70
+ readonly disabled?: MaybeRefOrGetter<boolean>;
71
+ /**
72
+ * Called before a drag starts. Return `false` to cancel it.
73
+ *
74
+ * @default undefined
75
+ */
76
+ readonly onStart?: (position: Point, event: PointerEvent) => boolean | void;
77
+ /**
78
+ * Called after every position update.
79
+ *
80
+ * @default undefined
81
+ */
82
+ readonly onMove?: (position: Point, event: PointerEvent) => void;
83
+ /**
84
+ * Called when the drag ends.
85
+ *
86
+ * @default undefined
87
+ */
88
+ readonly onEnd?: (position: Point, event: PointerEvent) => void;
89
+ }
90
+ /** Reactive drag state returned by {@link useDraggable}. */
91
+ interface DraggableControls {
92
+ /** Horizontal position (the element's left edge in client coordinates). */
93
+ readonly x: Ref<number>;
94
+ /** Vertical position (the element's top edge in client coordinates). */
95
+ readonly y: Ref<number>;
96
+ /** Current position snapshot. */
97
+ readonly position: ComputedRef<Point>;
98
+ /** Whether a drag is in progress. */
99
+ readonly isDragging: Readonly<Ref<boolean>>;
100
+ /** `left`/`top` declaration for `position: fixed` or `absolute` placement. */
101
+ readonly style: ComputedRef<string>;
102
+ /** Remove listeners. Idempotent. */
103
+ readonly stop: () => void;
104
+ }
105
+ /**
106
+ * Make an element draggable with Pointer Events.
107
+ *
108
+ * `pointerdown` on the handle records the offset between the pointer and the
109
+ * element; moves are tracked on the owner document (so fast drags that leave
110
+ * the element keep working) and constrained by `axis` and `bounds`. `x`/`y`
111
+ * are writable for programmatic placement. Server renders expose
112
+ * `initialValue`; listeners are removed with the owning reactive scope.
113
+ *
114
+ * @param target Reactive element being dragged.
115
+ * @param options Handle, axis, bounds, device filter, and lifecycle callbacks.
116
+ * @default options {}
117
+ * @returns Writable position, drag flag, inline style, and stop control.
118
+ */
119
+ declare function useDraggable(target: MaybeElementTarget, options?: UseDraggableOptions): DraggableControls;
120
+ //#endregion
121
+ export { DragAxis, DragBounds, DraggableControls, UseDraggableOptions, useDraggable };
@@ -0,0 +1,153 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { isElementNode, resolveElement } from "./element-target.mjs";
3
+ import { toPointerKind } from "./pointer.mjs";
4
+ import { computed, readonly, ref, toValue, watch } from "vue";
5
+ //#region src/draggable.ts
6
+ /**
7
+ * Make an element draggable with Pointer Events.
8
+ *
9
+ * `pointerdown` on the handle records the offset between the pointer and the
10
+ * element; moves are tracked on the owner document (so fast drags that leave
11
+ * the element keep working) and constrained by `axis` and `bounds`. `x`/`y`
12
+ * are writable for programmatic placement. Server renders expose
13
+ * `initialValue`; listeners are removed with the owning reactive scope.
14
+ *
15
+ * @param target Reactive element being dragged.
16
+ * @param options Handle, axis, bounds, device filter, and lifecycle callbacks.
17
+ * @default options {}
18
+ * @returns Writable position, drag flag, inline style, and stop control.
19
+ */
20
+ function useDraggable(target, options = {}) {
21
+ const initial = options.initialValue ?? {
22
+ x: 0,
23
+ y: 0
24
+ };
25
+ const x = ref(initial.x);
26
+ const y = ref(initial.y);
27
+ const isDragging = ref(false);
28
+ const pointerTypes = options.pointerTypes ?? [
29
+ "mouse",
30
+ "touch",
31
+ "pen"
32
+ ];
33
+ const position = computed(() => ({
34
+ x: x.value,
35
+ y: y.value
36
+ }));
37
+ let offset = null;
38
+ let activePointer = null;
39
+ const constrain = (element, next) => {
40
+ const bounds = readBounds(options.bounds);
41
+ if (!bounds) return next;
42
+ const rect = element.getBoundingClientRect();
43
+ return {
44
+ x: clamp(next.x, bounds.left, Math.max(bounds.left, bounds.right - rect.width)),
45
+ y: clamp(next.y, bounds.top, Math.max(bounds.top, bounds.bottom - rect.height))
46
+ };
47
+ };
48
+ const accepts = (event) => {
49
+ if (!isPointerEvent(event)) return false;
50
+ const kind = toPointerKind(event.pointerType);
51
+ return kind !== null && pointerTypes.includes(kind);
52
+ };
53
+ const handleEvent = (event) => {
54
+ if (options.preventDefault && event.cancelable) event.preventDefault();
55
+ };
56
+ const stopWatch = watch(() => [resolveElement(target), options.handle === void 0 ? void 0 : resolveElement(options.handle)], ([element, handleOverride], _previous, onCleanup) => {
57
+ const handle = handleOverride === void 0 ? element : handleOverride;
58
+ if (!element || !handle) return;
59
+ const document = element.ownerDocument;
60
+ const onMove = (event) => {
61
+ if (!accepts(event) || event.pointerId !== activePointer || !offset) return;
62
+ const axis = toValue(options.axis) ?? "both";
63
+ const next = constrain(element, {
64
+ x: axis === "y" ? x.value : event.clientX - offset.x,
65
+ y: axis === "x" ? y.value : event.clientY - offset.y
66
+ });
67
+ x.value = next.x;
68
+ y.value = next.y;
69
+ handleEvent(event);
70
+ options.onMove?.(next, event);
71
+ };
72
+ const onUp = (event) => {
73
+ if (!accepts(event) || event.pointerId !== activePointer) return;
74
+ activePointer = null;
75
+ offset = null;
76
+ isDragging.value = false;
77
+ document.removeEventListener("pointermove", onMove);
78
+ document.removeEventListener("pointerup", onUp);
79
+ document.removeEventListener("pointercancel", onUp);
80
+ handleEvent(event);
81
+ options.onEnd?.(position.value, event);
82
+ };
83
+ const onDown = (event) => {
84
+ if (!accepts(event) || toValue(options.disabled) || activePointer !== null) return;
85
+ if (event.pointerType === "mouse" && event.button !== 0) return;
86
+ if (options.exact && event.target !== handle) return;
87
+ const rect = element.getBoundingClientRect();
88
+ const start = {
89
+ x: rect.left,
90
+ y: rect.top
91
+ };
92
+ if (options.onStart?.(start, event) === false) return;
93
+ activePointer = event.pointerId;
94
+ offset = {
95
+ x: event.clientX - rect.left,
96
+ y: event.clientY - rect.top
97
+ };
98
+ isDragging.value = true;
99
+ document.addEventListener("pointermove", onMove);
100
+ document.addEventListener("pointerup", onUp);
101
+ document.addEventListener("pointercancel", onUp);
102
+ handleEvent(event);
103
+ };
104
+ handle.addEventListener("pointerdown", onDown);
105
+ onCleanup(() => {
106
+ handle.removeEventListener("pointerdown", onDown);
107
+ document.removeEventListener("pointermove", onMove);
108
+ document.removeEventListener("pointerup", onUp);
109
+ document.removeEventListener("pointercancel", onUp);
110
+ activePointer = null;
111
+ offset = null;
112
+ isDragging.value = false;
113
+ });
114
+ }, {
115
+ immediate: true,
116
+ flush: "post"
117
+ });
118
+ const stop = () => stopWatch.stop();
119
+ tryOnScopeDispose(stop);
120
+ return {
121
+ x,
122
+ y,
123
+ position,
124
+ isDragging: readonly(isDragging),
125
+ style: computed(() => `left:${x.value}px;top:${y.value}px;`),
126
+ stop
127
+ };
128
+ }
129
+ function readBounds(source) {
130
+ if (source === void 0) return null;
131
+ const value = toValue(source);
132
+ if (isDragBounds(value)) return value;
133
+ const root = typeof value === "object" && value !== null && "$el" in value ? value.$el : value;
134
+ if (!isElementNode(root)) return null;
135
+ const rect = root.getBoundingClientRect();
136
+ return {
137
+ left: rect.left,
138
+ top: rect.top,
139
+ right: rect.right,
140
+ bottom: rect.bottom
141
+ };
142
+ }
143
+ function isDragBounds(value) {
144
+ return typeof value === "object" && value !== null && !("nodeType" in value) && !("$el" in value) && "left" in value && "right" in value;
145
+ }
146
+ function clamp(value, minimum, maximum) {
147
+ return Math.min(Math.max(value, minimum), maximum);
148
+ }
149
+ function isPointerEvent(event) {
150
+ return "pointerId" in event && "pointerType" in event;
151
+ }
152
+ //#endregion
153
+ export { useDraggable };
@@ -0,0 +1,87 @@
1
+ import { n as MaybeElementTarget } from "./element-target-Crpxl4D9.mjs";
2
+ import { ResizeObserverHost } from "./resize-observer.mjs";
3
+ import { MaybeRefOrGetter, Ref } from "vue";
4
+
5
+ //#region src/element-bounding.d.ts
6
+ /**
7
+ * Window-like capability observed by {@link useElementBounding}: scroll and
8
+ * resize events plus the optional `ResizeObserver` constructor.
9
+ */
10
+ interface ElementBoundingHost extends EventTarget, ResizeObserverHost {}
11
+ /** Viewport-relative element geometry in CSS pixels. */
12
+ interface ElementBoundingRect {
13
+ /** Horizontal position of the border box origin. */
14
+ readonly x: number;
15
+ /** Vertical position of the border box origin. */
16
+ readonly y: number;
17
+ /** Distance from the viewport top edge to the border box top edge. */
18
+ readonly top: number;
19
+ /** Distance from the viewport left edge to the border box right edge. */
20
+ readonly right: number;
21
+ /** Distance from the viewport top edge to the border box bottom edge. */
22
+ readonly bottom: number;
23
+ /** Distance from the viewport left edge to the border box left edge. */
24
+ readonly left: number;
25
+ /** Border box width. */
26
+ readonly width: number;
27
+ /** Border box height. */
28
+ readonly height: number;
29
+ }
30
+ /** Options for {@link useElementBounding}. */
31
+ interface UseElementBoundingOptions {
32
+ /**
33
+ * Reset every value to zero when the target unmounts.
34
+ *
35
+ * @default true
36
+ */
37
+ readonly reset?: boolean;
38
+ /**
39
+ * Re-measure when the window resizes.
40
+ *
41
+ * @default true
42
+ */
43
+ readonly windowResize?: boolean;
44
+ /**
45
+ * Re-measure when any ancestor (or the window) scrolls. Uses a capturing,
46
+ * passive listener so nested scroll containers are covered.
47
+ *
48
+ * @default true
49
+ */
50
+ readonly windowScroll?: boolean;
51
+ /**
52
+ * Reactive window capability for alternate runtimes and tests.
53
+ *
54
+ * @default globalThis.window when available
55
+ */
56
+ readonly host?: MaybeRefOrGetter<ElementBoundingHost | null | undefined>;
57
+ /**
58
+ * Target resolution timing. `"post"` measures template refs after mount.
59
+ *
60
+ * @default "post"
61
+ */
62
+ readonly flush?: "pre" | "post" | "sync";
63
+ }
64
+ /** Reactive geometry returned by {@link useElementBounding}. */
65
+ type ElementBoundingControls = {
66
+ /** Reactive geometry field; zero during server rendering. */
67
+ readonly [Key in keyof ElementBoundingRect]: Readonly<Ref<number>> } & {
68
+ /** Measure the target immediately. Does nothing while it is unresolved. */readonly update: () => void; /** Stop observing resize, scroll, and target changes. Idempotent. */
69
+ readonly stop: () => void;
70
+ };
71
+ /**
72
+ * Track an element's `getBoundingClientRect()` reactively.
73
+ *
74
+ * Measures when the target resolves, when it resizes (via `ResizeObserver`),
75
+ * and — unless disabled — when the window resizes or anything scrolls. Every
76
+ * value is `0` during server rendering and before the first measurement, so
77
+ * the initial render is hydration-stable. Listeners and the observer are
78
+ * released with the owning reactive scope.
79
+ *
80
+ * @param target Reactive element target.
81
+ * @param options Reset, listener, capability, and timing options.
82
+ * @default options {}
83
+ * @returns One readonly ref per geometry field plus `update`/`stop`.
84
+ */
85
+ declare function useElementBounding(target: MaybeElementTarget, options?: UseElementBoundingOptions): ElementBoundingControls;
86
+ //#endregion
87
+ export { ElementBoundingControls, ElementBoundingHost, ElementBoundingRect, UseElementBoundingOptions, useElementBounding };
@@ -0,0 +1,95 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { resolveElement } from "./element-target.mjs";
3
+ import { useEventListener } from "./event-listener.mjs";
4
+ import { useResizeObserver } from "./resize-observer.mjs";
5
+ import { readonly, ref, toValue, watch } from "vue";
6
+ //#region src/element-bounding.ts
7
+ const boundingKeys = [
8
+ "x",
9
+ "y",
10
+ "top",
11
+ "right",
12
+ "bottom",
13
+ "left",
14
+ "width",
15
+ "height"
16
+ ];
17
+ /**
18
+ * Track an element's `getBoundingClientRect()` reactively.
19
+ *
20
+ * Measures when the target resolves, when it resizes (via `ResizeObserver`),
21
+ * and — unless disabled — when the window resizes or anything scrolls. Every
22
+ * value is `0` during server rendering and before the first measurement, so
23
+ * the initial render is hydration-stable. Listeners and the observer are
24
+ * released with the owning reactive scope.
25
+ *
26
+ * @param target Reactive element target.
27
+ * @param options Reset, listener, capability, and timing options.
28
+ * @default options {}
29
+ * @returns One readonly ref per geometry field plus `update`/`stop`.
30
+ */
31
+ function useElementBounding(target, options = {}) {
32
+ const { reset = true, windowResize = true, windowScroll = true } = options;
33
+ const flush = options.flush ?? "post";
34
+ const state = {
35
+ x: ref(0),
36
+ y: ref(0),
37
+ top: ref(0),
38
+ right: ref(0),
39
+ bottom: ref(0),
40
+ left: ref(0),
41
+ width: ref(0),
42
+ height: ref(0)
43
+ };
44
+ const host = () => options.host === void 0 ? browserBoundingHost() : toValue(options.host);
45
+ const update = () => {
46
+ const element = resolveElement(target);
47
+ if (!element) {
48
+ if (reset) for (const key of boundingKeys) state[key].value = 0;
49
+ return;
50
+ }
51
+ const rect = element.getBoundingClientRect();
52
+ for (const key of boundingKeys) state[key].value = rect[key];
53
+ };
54
+ const observer = useResizeObserver(target, update, {
55
+ host,
56
+ flush
57
+ });
58
+ const stopTarget = watch(() => resolveElement(target), update, {
59
+ immediate: true,
60
+ flush
61
+ });
62
+ const resize = windowResize ? useEventListener(host, "resize", update, {
63
+ passive: true,
64
+ flush
65
+ }) : void 0;
66
+ const scroll = windowScroll ? useEventListener(host, "scroll", update, {
67
+ capture: true,
68
+ passive: true,
69
+ flush
70
+ }) : void 0;
71
+ const stop = () => {
72
+ observer.stop();
73
+ stopTarget.stop();
74
+ resize?.stop();
75
+ scroll?.stop();
76
+ };
77
+ tryOnScopeDispose(stop);
78
+ return {
79
+ x: readonly(state.x),
80
+ y: readonly(state.y),
81
+ top: readonly(state.top),
82
+ right: readonly(state.right),
83
+ bottom: readonly(state.bottom),
84
+ left: readonly(state.left),
85
+ width: readonly(state.width),
86
+ height: readonly(state.height),
87
+ update,
88
+ stop
89
+ };
90
+ }
91
+ function browserBoundingHost() {
92
+ return typeof window !== "undefined" ? window : void 0;
93
+ }
94
+ //#endregion
95
+ export { useElementBounding };
@@ -0,0 +1,70 @@
1
+ import { MaybeRefOrGetter, Ref, ShallowRef } from "vue";
2
+
3
+ //#region src/element-by-point.d.ts
4
+ /** Document-like capability used by {@link useElementByPoint}. */
5
+ interface ElementByPointHost {
6
+ /** Topmost element at a point. */
7
+ elementFromPoint(x: number, y: number): Element | null;
8
+ /**
9
+ * Every element at a point, topmost first. Optional: when missing, only
10
+ * the topmost element is reported.
11
+ */
12
+ elementsFromPoint?(x: number, y: number): Element[];
13
+ }
14
+ /** Frame scheduler used for continuous polling. */
15
+ interface ElementByPointFrameHost {
16
+ /** Schedule a callback before the next repaint. */
17
+ readonly requestAnimationFrame: (callback: FrameRequestCallback) => number;
18
+ /** Cancel a scheduled frame. */
19
+ readonly cancelAnimationFrame: (handle: number) => void;
20
+ }
21
+ /** Options for {@link useElementByPoint}. */
22
+ interface UseElementByPointOptions {
23
+ /** Horizontal client coordinate. */
24
+ readonly x: MaybeRefOrGetter<number>;
25
+ /** Vertical client coordinate. */
26
+ readonly y: MaybeRefOrGetter<number>;
27
+ /**
28
+ * Also re-query every animation frame (the element under a fixed point can
29
+ * change when the page scrolls or animates).
30
+ *
31
+ * @default false
32
+ */
33
+ readonly poll?: boolean;
34
+ /**
35
+ * Reactive document capability for alternate runtimes and tests.
36
+ *
37
+ * @default globalThis.document when available
38
+ */
39
+ readonly host?: MaybeRefOrGetter<ElementByPointHost | null | undefined>;
40
+ /**
41
+ * Frame scheduler used when `poll` is enabled.
42
+ *
43
+ * @default globalThis.window when available
44
+ */
45
+ readonly frameHost?: MaybeRefOrGetter<ElementByPointFrameHost | null | undefined>;
46
+ }
47
+ /** Reactive state returned by {@link useElementByPoint}. */
48
+ interface ElementByPointControls {
49
+ /** Whether a document capability is attached. `false` during server rendering. */
50
+ readonly isSupported: Readonly<Ref<boolean>>;
51
+ /** Topmost element at the point. */
52
+ readonly element: Readonly<ShallowRef<Element | null>>;
53
+ /** Every element at the point, topmost first. */
54
+ readonly elements: Readonly<ShallowRef<readonly Element[]>>;
55
+ /** Re-query immediately. */
56
+ readonly update: () => void;
57
+ }
58
+ /**
59
+ * Track the element(s) under a client coordinate.
60
+ *
61
+ * Re-queries whenever `x`/`y` change and, with `poll`, on every animation
62
+ * frame until the owning scope stops. Server renders expose `null` and an
63
+ * empty list.
64
+ *
65
+ * @param options Coordinates, polling, and capabilities.
66
+ * @returns Reactive topmost element, element stack, and a manual update.
67
+ */
68
+ declare function useElementByPoint(options: UseElementByPointOptions): ElementByPointControls;
69
+ //#endregion
70
+ export { ElementByPointControls, ElementByPointFrameHost, ElementByPointHost, UseElementByPointOptions, useElementByPoint };
@@ -0,0 +1,69 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { hasInjectionContext, onMounted, readonly, ref, shallowRef, toValue, watch } from "vue";
3
+ //#region src/element-by-point.ts
4
+ /**
5
+ * Track the element(s) under a client coordinate.
6
+ *
7
+ * Re-queries whenever `x`/`y` change and, with `poll`, on every animation
8
+ * frame until the owning scope stops. Server renders expose `null` and an
9
+ * empty list.
10
+ *
11
+ * @param options Coordinates, polling, and capabilities.
12
+ * @returns Reactive topmost element, element stack, and a manual update.
13
+ */
14
+ function useElementByPoint(options) {
15
+ const isSupported = ref(false);
16
+ const element = shallowRef(null);
17
+ const elements = shallowRef([]);
18
+ const mounted = shallowRef(!hasInjectionContext());
19
+ if (!mounted.value) onMounted(() => {
20
+ mounted.value = true;
21
+ });
22
+ const host = () => !mounted.value ? void 0 : options.host === void 0 ? browserPointHost() : toValue(options.host);
23
+ const update = () => {
24
+ const current = host();
25
+ isSupported.value = Boolean(current);
26
+ if (!current) {
27
+ element.value = null;
28
+ elements.value = [];
29
+ return;
30
+ }
31
+ const x = toValue(options.x);
32
+ const y = toValue(options.y);
33
+ element.value = current.elementFromPoint(x, y);
34
+ elements.value = current.elementsFromPoint ? current.elementsFromPoint(x, y) : element.value ? [element.value] : [];
35
+ };
36
+ const stopWatch = watch(() => [
37
+ host(),
38
+ toValue(options.x),
39
+ toValue(options.y)
40
+ ], update, { immediate: true });
41
+ const stopPolling = options.poll ? watch(() => options.frameHost === void 0 ? browserFrameHost() : toValue(options.frameHost), (frames, _previous, onCleanup) => {
42
+ if (!frames) return;
43
+ let handle = 0;
44
+ const tick = () => {
45
+ update();
46
+ handle = frames.requestAnimationFrame(tick);
47
+ };
48
+ handle = frames.requestAnimationFrame(tick);
49
+ onCleanup(() => frames.cancelAnimationFrame(handle));
50
+ }, { immediate: true }) : void 0;
51
+ tryOnScopeDispose(() => {
52
+ stopWatch.stop();
53
+ stopPolling?.stop();
54
+ });
55
+ return {
56
+ isSupported: readonly(isSupported),
57
+ element,
58
+ elements,
59
+ update
60
+ };
61
+ }
62
+ function browserPointHost() {
63
+ return typeof document !== "undefined" ? document : void 0;
64
+ }
65
+ function browserFrameHost() {
66
+ return typeof window !== "undefined" ? window : void 0;
67
+ }
68
+ //#endregion
69
+ export { useElementByPoint };
@@ -0,0 +1,42 @@
1
+ import { t as TimeoutScheduler } from "./timeout-scheduler-CI8RVLZs.mjs";
2
+ import { n as MaybeElementTarget } from "./element-target-Crpxl4D9.mjs";
3
+ import { Ref } from "vue";
4
+
5
+ //#region src/element-hover.d.ts
6
+ /** Options for {@link useElementHover}. */
7
+ interface UseElementHoverOptions {
8
+ /**
9
+ * Milliseconds to wait before reporting hover.
10
+ *
11
+ * @default 0
12
+ */
13
+ readonly delayEnter?: number;
14
+ /**
15
+ * Milliseconds to wait before reporting the end of hover.
16
+ *
17
+ * @default 0
18
+ */
19
+ readonly delayLeave?: number;
20
+ /**
21
+ * Owns the delay timer.
22
+ *
23
+ * @default globalThis timer functions
24
+ */
25
+ readonly scheduler?: TimeoutScheduler;
26
+ }
27
+ /**
28
+ * Track whether the pointer hovers an element.
29
+ *
30
+ * Uses `pointerenter`/`pointerleave` (which ignore descendants) with optional
31
+ * enter/leave delays; a pending delay is cancelled by the opposite event.
32
+ * Server renders report `false`; listeners and timers are released with the
33
+ * owning reactive scope.
34
+ *
35
+ * @param target Reactive element target.
36
+ * @param options Enter/leave delays and timer scheduler.
37
+ * @default options {}
38
+ * @returns Readonly hover flag.
39
+ */
40
+ declare function useElementHover(target: MaybeElementTarget, options?: UseElementHoverOptions): Readonly<Ref<boolean>>;
41
+ //#endregion
42
+ export { UseElementHoverOptions, useElementHover };