@vizejs/composable 0.426.3 → 0.428.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (544) hide show
  1. package/dist/abort-signal.d.mts +1 -1
  2. package/dist/active-element.d.mts +37 -0
  3. package/dist/active-element.mjs +56 -0
  4. package/dist/animate.d.mts +114 -0
  5. package/dist/animate.mjs +157 -0
  6. package/dist/battery.d.mts +61 -0
  7. package/dist/battery.mjs +90 -0
  8. package/dist/breakpoints.d.mts +82 -0
  9. package/dist/breakpoints.mjs +91 -0
  10. package/dist/catalog-BeTXFKxF.d.mts +4188 -0
  11. package/dist/catalog-r4Z5nptX.mjs +5144 -0
  12. package/dist/catalog.d.mts +1 -1
  13. package/dist/catalog.mjs +1 -1
  14. package/dist/color-mode.d.mts +131 -0
  15. package/dist/color-mode.mjs +133 -0
  16. package/dist/computed-async.d.mts +63 -0
  17. package/dist/computed-async.mjs +43 -0
  18. package/dist/computed-with-control.d.mts +44 -0
  19. package/dist/computed-with-control.mjs +54 -0
  20. package/dist/create-event-hook.d.mts +77 -0
  21. package/dist/create-event-hook.mjs +66 -0
  22. package/dist/create-global-state.d.mts +24 -0
  23. package/dist/create-global-state.mjs +34 -0
  24. package/dist/create-injection-state.d.mts +51 -0
  25. package/dist/create-injection-state.mjs +19 -0
  26. package/dist/create-shared-composable.d.mts +38 -0
  27. package/dist/create-shared-composable.mjs +54 -0
  28. package/dist/device-motion.d.mts +71 -0
  29. package/dist/device-motion.mjs +75 -0
  30. package/dist/device-orientation.d.mts +82 -0
  31. package/dist/device-orientation.mjs +86 -0
  32. package/dist/device-pixel-ratio.d.mts +45 -0
  33. package/dist/device-pixel-ratio.mjs +50 -0
  34. package/dist/document-visibility.mjs +6 -2
  35. package/dist/draggable.d.mts +121 -0
  36. package/dist/draggable.mjs +153 -0
  37. package/dist/element-bounding.d.mts +87 -0
  38. package/dist/element-bounding.mjs +95 -0
  39. package/dist/element-by-point.d.mts +70 -0
  40. package/dist/element-by-point.mjs +69 -0
  41. package/dist/element-hover.d.mts +42 -0
  42. package/dist/element-hover.mjs +70 -0
  43. package/dist/element-ref.d.mts +34 -0
  44. package/dist/element-ref.mjs +23 -0
  45. package/dist/element-target-Crpxl4D9.d.mts +60 -0
  46. package/dist/element-target.d.mts +2 -0
  47. package/dist/element-target.mjs +58 -0
  48. package/dist/event-listener.mjs +7 -3
  49. package/dist/focus.d.mts +69 -0
  50. package/dist/focus.mjs +124 -0
  51. package/dist/fps.d.mts +59 -0
  52. package/dist/fps.mjs +64 -0
  53. package/dist/geolocation.d.mts +98 -0
  54. package/dist/geolocation.mjs +86 -0
  55. package/dist/i18n.d.mts +237 -0
  56. package/dist/i18n.mjs +215 -0
  57. package/dist/icu-message.d.mts +235 -0
  58. package/dist/icu-message.mjs +343 -0
  59. package/dist/idle.d.mts +79 -0
  60. package/dist/idle.mjs +90 -0
  61. package/dist/index.d.mts +172 -6
  62. package/dist/index.mjs +173 -7
  63. package/dist/infinite-scroll.d.mts +56 -0
  64. package/dist/infinite-scroll.mjs +72 -0
  65. package/dist/intersection-observer.d.mts +122 -0
  66. package/dist/intersection-observer.mjs +117 -0
  67. package/dist/magic-keys.d.mts +121 -0
  68. package/dist/magic-keys.mjs +163 -0
  69. package/dist/math.d.mts +96 -0
  70. package/dist/math.mjs +84 -0
  71. package/dist/media-query.d.mts +3 -1
  72. package/dist/media-query.mjs +5 -3
  73. package/dist/mouse-in-element.d.mts +49 -0
  74. package/dist/mouse-in-element.mjs +66 -0
  75. package/dist/mouse.d.mts +77 -0
  76. package/dist/mouse.mjs +100 -0
  77. package/dist/mutation-observer.d.mts +98 -0
  78. package/dist/mutation-observer.mjs +69 -0
  79. package/dist/network.d.mts +96 -0
  80. package/dist/network.mjs +117 -0
  81. package/dist/on-click-outside.d.mts +69 -0
  82. package/dist/on-click-outside.mjs +115 -0
  83. package/dist/on-key-stroke.d.mts +71 -0
  84. package/dist/on-key-stroke.mjs +79 -0
  85. package/dist/on-long-press.d.mts +82 -0
  86. package/dist/on-long-press.mjs +105 -0
  87. package/dist/on-start-typing.d.mts +44 -0
  88. package/dist/on-start-typing.mjs +61 -0
  89. package/dist/page-leave.d.mts +26 -0
  90. package/dist/page-leave.mjs +40 -0
  91. package/dist/parent-element.d.mts +16 -0
  92. package/dist/parent-element.mjs +27 -0
  93. package/dist/pinch.d.mts +73 -0
  94. package/dist/pinch.mjs +138 -0
  95. package/dist/pointer-lock.d.mts +79 -0
  96. package/dist/pointer-lock.mjs +126 -0
  97. package/dist/pointer.d.mts +78 -0
  98. package/dist/pointer.mjs +95 -0
  99. package/dist/preferences.d.mts +55 -0
  100. package/dist/preferences.mjs +63 -0
  101. package/dist/preferred-languages.d.mts +43 -0
  102. package/dist/preferred-languages.mjs +44 -0
  103. package/dist/reactify.d.mts +28 -0
  104. package/dist/reactify.mjs +7 -0
  105. package/dist/ref-auto-reset.d.mts +47 -0
  106. package/dist/ref-auto-reset.mjs +70 -0
  107. package/dist/ref-debounced.d.mts +29 -0
  108. package/dist/ref-debounced.mjs +29 -0
  109. package/dist/ref-default.d.mts +27 -0
  110. package/dist/ref-default.mjs +33 -0
  111. package/dist/resize-observer.d.mts +96 -0
  112. package/dist/resize-observer.mjs +111 -0
  113. package/dist/resolver.d.mts +124 -0
  114. package/dist/resolver.mjs +138 -0
  115. package/dist/retry-async.d.mts +2 -2
  116. package/dist/retry-delay-DYsdq4SE.d.mts +73 -0
  117. package/dist/retry-delay.d.mts +1 -72
  118. package/dist/screen-orientation.d.mts +77 -0
  119. package/dist/screen-orientation.mjs +74 -0
  120. package/dist/scroll-lock.d.mts +37 -0
  121. package/dist/scroll-lock.mjs +50 -0
  122. package/dist/scroll.d.mts +158 -0
  123. package/dist/scroll.mjs +172 -0
  124. package/dist/standard-schema-DmNgFVK5.d.mts +107 -0
  125. package/dist/standard-schema.d.mts +2 -0
  126. package/dist/standard-schema.mjs +60 -0
  127. package/dist/swipe.d.mts +125 -0
  128. package/dist/swipe.mjs +225 -0
  129. package/dist/sync-ref.d.mts +80 -0
  130. package/dist/sync-ref.mjs +43 -0
  131. package/dist/text-selection.d.mts +46 -0
  132. package/dist/text-selection.mjs +62 -0
  133. package/dist/textarea-autosize.d.mts +58 -0
  134. package/dist/textarea-autosize.mjs +54 -0
  135. package/dist/timeout-scheduler-CI8RVLZs.d.mts +18 -0
  136. package/dist/timeout-scheduler.d.mts +1 -17
  137. package/dist/to-reactive.d.mts +26 -0
  138. package/dist/to-reactive.mjs +46 -0
  139. package/dist/transition.d.mts +125 -0
  140. package/dist/transition.mjs +266 -0
  141. package/dist/until.d.mts +177 -0
  142. package/dist/until.mjs +111 -0
  143. package/dist/use-array.d.mts +112 -0
  144. package/dist/use-array.mjs +90 -0
  145. package/dist/use-async-queue.d.mts +109 -0
  146. package/dist/use-async-queue.mjs +96 -0
  147. package/dist/use-async-state.d.mts +86 -0
  148. package/dist/use-async-state.mjs +41 -0
  149. package/dist/use-barcode-detector.d.mts +159 -0
  150. package/dist/use-barcode-detector.mjs +143 -0
  151. package/dist/use-bluetooth.d.mts +164 -0
  152. package/dist/use-bluetooth.mjs +183 -0
  153. package/dist/use-broadcast-channel.d.mts +115 -0
  154. package/dist/use-broadcast-channel.mjs +121 -0
  155. package/dist/use-builtin-ai.d.mts +342 -0
  156. package/dist/use-builtin-ai.mjs +261 -0
  157. package/dist/use-clipboard.d.mts +169 -0
  158. package/dist/use-clipboard.mjs +226 -0
  159. package/dist/use-compression-stream.d.mts +173 -0
  160. package/dist/use-compression-stream.mjs +166 -0
  161. package/dist/use-confirm-dialog.d.mts +70 -0
  162. package/dist/use-confirm-dialog.mjs +57 -0
  163. package/dist/use-contact-picker.d.mts +117 -0
  164. package/dist/use-contact-picker.mjs +103 -0
  165. package/dist/use-cookie.d.mts +196 -0
  166. package/dist/use-cookie.mjs +259 -0
  167. package/dist/use-countdown.d.mts +85 -0
  168. package/dist/use-countdown.mjs +74 -0
  169. package/dist/use-css-var.d.mts +96 -0
  170. package/dist/use-css-var.mjs +104 -0
  171. package/dist/use-cycle-list.d.mts +76 -0
  172. package/dist/use-cycle-list.mjs +39 -0
  173. package/dist/use-date-format.d.mts +103 -0
  174. package/dist/use-date-format.mjs +147 -0
  175. package/dist/use-date-time-format.d.mts +75 -0
  176. package/dist/use-date-time-format.mjs +53 -0
  177. package/dist/use-debounced.d.mts +1 -1
  178. package/dist/use-display-media.d.mts +62 -0
  179. package/dist/use-display-media.mjs +46 -0
  180. package/dist/use-display-names.d.mts +75 -0
  181. package/dist/use-display-names.mjs +52 -0
  182. package/dist/use-document-title.d.mts +88 -0
  183. package/dist/use-document-title.mjs +100 -0
  184. package/dist/use-drop-zone.d.mts +128 -0
  185. package/dist/use-drop-zone.mjs +154 -0
  186. package/dist/use-event-source.d.mts +184 -0
  187. package/dist/use-event-source.mjs +226 -0
  188. package/dist/use-eye-dropper.d.mts +79 -0
  189. package/dist/use-eye-dropper.mjs +68 -0
  190. package/dist/use-favicon.d.mts +78 -0
  191. package/dist/use-favicon.mjs +68 -0
  192. package/dist/use-fetch.d.mts +230 -0
  193. package/dist/use-fetch.mjs +263 -0
  194. package/dist/use-field.d.mts +107 -0
  195. package/dist/use-field.mjs +117 -0
  196. package/dist/use-file-dialog.d.mts +139 -0
  197. package/dist/use-file-dialog.mjs +101 -0
  198. package/dist/use-file-system-access.d.mts +184 -0
  199. package/dist/use-file-system-access.mjs +151 -0
  200. package/dist/use-form-field-props.d.mts +235 -0
  201. package/dist/use-form-field-props.mjs +164 -0
  202. package/dist/use-form.d.mts +324 -0
  203. package/dist/use-form.mjs +482 -0
  204. package/dist/use-fullscreen.d.mts +104 -0
  205. package/dist/use-fullscreen.mjs +95 -0
  206. package/dist/use-gamepad.d.mts +242 -0
  207. package/dist/use-gamepad.mjs +218 -0
  208. package/dist/use-hid.d.mts +160 -0
  209. package/dist/use-hid.mjs +156 -0
  210. package/dist/use-id-generator.d.mts +44 -0
  211. package/dist/use-id-generator.mjs +38 -0
  212. package/dist/use-image.d.mts +125 -0
  213. package/dist/use-image.mjs +109 -0
  214. package/dist/use-indexed-db.d.mts +207 -0
  215. package/dist/use-indexed-db.mjs +251 -0
  216. package/dist/use-interval-BA55gTHT.d.mts +140 -0
  217. package/dist/use-interval.d.mts +2 -0
  218. package/dist/use-interval.mjs +100 -0
  219. package/dist/use-list-format.d.mts +60 -0
  220. package/dist/use-list-format.mjs +40 -0
  221. package/dist/use-machine.d.mts +90 -0
  222. package/dist/use-machine.mjs +78 -0
  223. package/dist/use-map.d.mts +90 -0
  224. package/dist/use-map.mjs +70 -0
  225. package/dist/use-media-controls.d.mts +198 -0
  226. package/dist/use-media-controls.mjs +264 -0
  227. package/dist/use-memoize.d.mts +73 -0
  228. package/dist/use-memoize.mjs +28 -0
  229. package/dist/use-mounted.d.mts +24 -0
  230. package/dist/use-mounted.mjs +29 -0
  231. package/dist/use-navigation-api.d.mts +360 -0
  232. package/dist/use-navigation-api.mjs +231 -0
  233. package/dist/use-notification.d.mts +139 -0
  234. package/dist/use-notification.mjs +131 -0
  235. package/dist/use-now.d.mts +137 -0
  236. package/dist/use-now.mjs +44 -0
  237. package/dist/use-number-format.d.mts +73 -0
  238. package/dist/use-number-format.mjs +58 -0
  239. package/dist/use-object-url.d.mts +47 -0
  240. package/dist/use-object-url.mjs +54 -0
  241. package/dist/use-offset-pagination.d.mts +91 -0
  242. package/dist/use-offset-pagination.mjs +80 -0
  243. package/dist/use-payment-request.d.mts +239 -0
  244. package/dist/use-payment-request.mjs +206 -0
  245. package/dist/use-performance-observer.d.mts +285 -0
  246. package/dist/use-performance-observer.mjs +132 -0
  247. package/dist/use-permission.d.mts +99 -0
  248. package/dist/use-permission.mjs +92 -0
  249. package/dist/use-plural-rules.d.mts +79 -0
  250. package/dist/use-plural-rules.mjs +59 -0
  251. package/dist/use-push-subscription.d.mts +154 -0
  252. package/dist/use-push-subscription.mjs +146 -0
  253. package/dist/use-queue.d.mts +89 -0
  254. package/dist/use-queue.mjs +116 -0
  255. package/dist/use-raf-fn.d.mts +87 -0
  256. package/dist/use-raf-fn.mjs +99 -0
  257. package/dist/use-relative-time-format.d.mts +111 -0
  258. package/dist/use-relative-time-format.mjs +119 -0
  259. package/dist/use-request-idle-callback.d.mts +122 -0
  260. package/dist/use-request-idle-callback.mjs +147 -0
  261. package/dist/use-route-query.d.mts +149 -0
  262. package/dist/use-route-query.mjs +86 -0
  263. package/dist/use-scheduler-post-task.d.mts +156 -0
  264. package/dist/use-scheduler-post-task.mjs +182 -0
  265. package/dist/use-screen-details.d.mts +205 -0
  266. package/dist/use-screen-details.mjs +188 -0
  267. package/dist/use-script-tag.d.mts +162 -0
  268. package/dist/use-script-tag.mjs +171 -0
  269. package/dist/use-segmenter.d.mts +78 -0
  270. package/dist/use-segmenter.mjs +66 -0
  271. package/dist/use-selection.d.mts +125 -0
  272. package/dist/use-selection.mjs +77 -0
  273. package/dist/use-serial.d.mts +165 -0
  274. package/dist/use-serial.mjs +205 -0
  275. package/dist/use-service-worker.d.mts +177 -0
  276. package/dist/use-service-worker.mjs +178 -0
  277. package/dist/use-set.d.mts +96 -0
  278. package/dist/use-set.mjs +74 -0
  279. package/dist/use-share.d.mts +92 -0
  280. package/dist/use-share.mjs +99 -0
  281. package/dist/use-sorted-locale.d.mts +62 -0
  282. package/dist/use-sorted-locale.mjs +52 -0
  283. package/dist/use-sorted.d.mts +29 -0
  284. package/dist/use-sorted.mjs +14 -0
  285. package/dist/use-speech-recognition.d.mts +150 -0
  286. package/dist/use-speech-recognition.mjs +168 -0
  287. package/dist/use-speech-synthesis.d.mts +148 -0
  288. package/dist/use-speech-synthesis.mjs +152 -0
  289. package/dist/use-stack.d.mts +83 -0
  290. package/dist/use-stack.mjs +93 -0
  291. package/dist/use-stepper.d.mts +79 -0
  292. package/dist/use-stepper.mjs +52 -0
  293. package/dist/use-storage-estimate.d.mts +151 -0
  294. package/dist/use-storage-estimate.mjs +170 -0
  295. package/dist/use-storage.d.mts +214 -0
  296. package/dist/use-storage.mjs +415 -0
  297. package/dist/use-style-tag.d.mts +102 -0
  298. package/dist/use-style-tag.mjs +91 -0
  299. package/dist/use-supported.d.mts +23 -0
  300. package/dist/use-supported.mjs +26 -0
  301. package/dist/use-throttled.d.mts +1 -1
  302. package/dist/use-time-ago.d.mts +163 -0
  303. package/dist/use-time-ago.mjs +95 -0
  304. package/dist/use-timeout.d.mts +122 -0
  305. package/dist/use-timeout.mjs +65 -0
  306. package/dist/use-url-hash.d.mts +88 -0
  307. package/dist/use-url-hash.mjs +145 -0
  308. package/dist/use-url-search-params.d.mts +223 -0
  309. package/dist/use-url-search-params.mjs +295 -0
  310. package/dist/use-usb.d.mts +212 -0
  311. package/dist/use-usb.mjs +137 -0
  312. package/dist/use-user-activation.d.mts +83 -0
  313. package/dist/use-user-activation.mjs +113 -0
  314. package/dist/use-user-media.d.mts +194 -0
  315. package/dist/use-user-media.mjs +214 -0
  316. package/dist/use-v-model.d.mts +113 -0
  317. package/dist/use-v-model.mjs +40 -0
  318. package/dist/use-vibrate.d.mts +81 -0
  319. package/dist/use-vibrate.mjs +90 -0
  320. package/dist/use-view-transition.d.mts +106 -0
  321. package/dist/use-view-transition.mjs +101 -0
  322. package/dist/use-visual-viewport.d.mts +105 -0
  323. package/dist/use-visual-viewport.mjs +104 -0
  324. package/dist/use-wake-lock.d.mts +96 -0
  325. package/dist/use-wake-lock.mjs +106 -0
  326. package/dist/use-web-authn.d.mts +404 -0
  327. package/dist/use-web-authn.mjs +323 -0
  328. package/dist/use-web-locks.d.mts +180 -0
  329. package/dist/use-web-locks.mjs +136 -0
  330. package/dist/use-web-midi.d.mts +148 -0
  331. package/dist/use-web-midi.mjs +140 -0
  332. package/dist/use-web-vitals.d.mts +142 -0
  333. package/dist/use-web-vitals.mjs +248 -0
  334. package/dist/use-websocket.d.mts +218 -0
  335. package/dist/use-websocket.mjs +257 -0
  336. package/dist/use-worker-fn.d.mts +119 -0
  337. package/dist/use-worker-fn.mjs +162 -0
  338. package/dist/virtual-list.d.mts +105 -0
  339. package/dist/virtual-list.mjs +128 -0
  340. package/dist/watch-debounced.d.mts +84 -0
  341. package/dist/watch-debounced.mjs +84 -0
  342. package/dist/watch-ignorable.d.mts +47 -0
  343. package/dist/watch-ignorable.mjs +61 -0
  344. package/dist/watch-once.d.mts +29 -0
  345. package/dist/watch-once.mjs +10 -0
  346. package/dist/watch-pausable.d.mts +51 -0
  347. package/dist/watch-pausable.mjs +23 -0
  348. package/dist/watch-source.d.mts +29 -0
  349. package/dist/watch-source.mjs +1 -0
  350. package/dist/watch-throttled.d.mts +70 -0
  351. package/dist/watch-throttled.mjs +94 -0
  352. package/dist/whenever.d.mts +39 -0
  353. package/dist/whenever.mjs +41 -0
  354. package/dist/window-size.d.mts +87 -0
  355. package/dist/window-size.mjs +65 -0
  356. package/package.json +846 -5
  357. package/registry/files/abort-signal.ts +292 -0
  358. package/registry/files/active-element.ts +93 -0
  359. package/registry/files/animate.ts +322 -0
  360. package/registry/files/async-resource.ts +190 -0
  361. package/registry/files/battery.ts +166 -0
  362. package/registry/files/breakpoints.ts +166 -0
  363. package/registry/files/capability.ts +171 -0
  364. package/registry/files/color-mode.ts +274 -0
  365. package/registry/files/computed-async.ts +123 -0
  366. package/registry/files/computed-with-control.ts +80 -0
  367. package/registry/files/create-event-hook.ts +139 -0
  368. package/registry/files/create-global-state.ts +34 -0
  369. package/registry/files/create-injection-state.ts +75 -0
  370. package/registry/files/create-shared-composable.ts +74 -0
  371. package/registry/files/device-motion.ts +152 -0
  372. package/registry/files/device-orientation.ts +168 -0
  373. package/registry/files/device-pixel-ratio.ts +100 -0
  374. package/registry/files/disposal-scope.ts +201 -0
  375. package/registry/files/document-visibility.ts +152 -0
  376. package/registry/files/draggable.ts +273 -0
  377. package/registry/files/element-bounding.ts +175 -0
  378. package/registry/files/element-by-point.ts +149 -0
  379. package/registry/files/element-hover.ts +104 -0
  380. package/registry/files/element-ref.ts +58 -0
  381. package/registry/files/element-target.ts +99 -0
  382. package/registry/files/event-listener.ts +188 -0
  383. package/registry/files/focus.ts +181 -0
  384. package/registry/files/fps.ts +133 -0
  385. package/registry/files/geolocation.ts +214 -0
  386. package/registry/files/i18n.ts +524 -0
  387. package/registry/files/icu-message.ts +701 -0
  388. package/registry/files/idle.ts +176 -0
  389. package/registry/files/infinite-scroll.ts +135 -0
  390. package/registry/files/intersection-observer.ts +261 -0
  391. package/registry/files/locale.ts +148 -0
  392. package/registry/files/magic-keys.ts +298 -0
  393. package/registry/files/math.ts +175 -0
  394. package/registry/files/media-query.ts +102 -0
  395. package/registry/files/mouse-in-element.ts +107 -0
  396. package/registry/files/mouse.ts +167 -0
  397. package/registry/files/mutation-observer.ts +183 -0
  398. package/registry/files/network.ts +229 -0
  399. package/registry/files/on-click-outside.ts +178 -0
  400. package/registry/files/on-key-stroke.ts +135 -0
  401. package/registry/files/on-long-press.ts +188 -0
  402. package/registry/files/on-start-typing.ts +88 -0
  403. package/registry/files/page-leave.ts +57 -0
  404. package/registry/files/parent-element.ts +29 -0
  405. package/registry/files/pinch.ts +187 -0
  406. package/registry/files/pointer-lock.ts +232 -0
  407. package/registry/files/pointer.ts +153 -0
  408. package/registry/files/preferences.ts +98 -0
  409. package/registry/files/preferred-languages.ts +88 -0
  410. package/registry/files/reactify.ts +39 -0
  411. package/registry/files/ref-auto-reset.ts +102 -0
  412. package/registry/files/ref-debounced.ts +34 -0
  413. package/registry/files/ref-default.ts +35 -0
  414. package/registry/files/resize-observer.ts +220 -0
  415. package/registry/files/retry-async.ts +261 -0
  416. package/registry/files/retry-delay.ts +132 -0
  417. package/registry/files/scope.ts +21 -0
  418. package/registry/files/screen-orientation.ts +165 -0
  419. package/registry/files/scroll-lock.ts +80 -0
  420. package/registry/files/scroll.ts +338 -0
  421. package/registry/files/standard-schema.ts +163 -0
  422. package/registry/files/swipe.ts +321 -0
  423. package/registry/files/sync-ref.ts +166 -0
  424. package/registry/files/temporal.ts +182 -0
  425. package/registry/files/text-selection.ts +110 -0
  426. package/registry/files/textarea-autosize.ts +114 -0
  427. package/registry/files/timeout-scheduler.ts +16 -0
  428. package/registry/files/to-reactive.ts +44 -0
  429. package/registry/files/transition.ts +271 -0
  430. package/registry/files/until.ts +352 -0
  431. package/registry/files/use-array.ts +201 -0
  432. package/registry/files/use-async-queue.ts +278 -0
  433. package/registry/files/use-async-state.ts +139 -0
  434. package/registry/files/use-barcode-detector.ts +321 -0
  435. package/registry/files/use-bluetooth.ts +409 -0
  436. package/registry/files/use-broadcast-channel.ts +250 -0
  437. package/registry/files/use-builtin-ai.ts +674 -0
  438. package/registry/files/use-clipboard.ts +425 -0
  439. package/registry/files/use-compression-stream.ts +364 -0
  440. package/registry/files/use-confirm-dialog.ts +137 -0
  441. package/registry/files/use-contact-picker.ts +246 -0
  442. package/registry/files/use-cookie.ts +500 -0
  443. package/registry/files/use-countdown.ts +161 -0
  444. package/registry/files/use-counter.ts +147 -0
  445. package/registry/files/use-css-var.ts +191 -0
  446. package/registry/files/use-cycle-list.ts +136 -0
  447. package/registry/files/use-date-format.ts +281 -0
  448. package/registry/files/use-date-time-format.ts +113 -0
  449. package/registry/files/use-debounced.ts +163 -0
  450. package/registry/files/use-display-media.ts +89 -0
  451. package/registry/files/use-display-names.ts +122 -0
  452. package/registry/files/use-document-title.ts +196 -0
  453. package/registry/files/use-drop-zone.ts +287 -0
  454. package/registry/files/use-event-source.ts +470 -0
  455. package/registry/files/use-eye-dropper.ts +134 -0
  456. package/registry/files/use-favicon.ts +140 -0
  457. package/registry/files/use-fetch.ts +578 -0
  458. package/registry/files/use-field.ts +247 -0
  459. package/registry/files/use-file-dialog.ts +257 -0
  460. package/registry/files/use-file-system-access.ts +383 -0
  461. package/registry/files/use-form-field-props.ts +381 -0
  462. package/registry/files/use-form.ts +980 -0
  463. package/registry/files/use-fullscreen.ts +214 -0
  464. package/registry/files/use-gamepad.ts +463 -0
  465. package/registry/files/use-hid.ts +359 -0
  466. package/registry/files/use-history.ts +231 -0
  467. package/registry/files/use-id-generator.ts +61 -0
  468. package/registry/files/use-image.ts +253 -0
  469. package/registry/files/use-indexed-db.ts +508 -0
  470. package/registry/files/use-interval.ts +253 -0
  471. package/registry/files/use-list-format.ts +85 -0
  472. package/registry/files/use-machine.ts +171 -0
  473. package/registry/files/use-map.ts +145 -0
  474. package/registry/files/use-media-controls.ts +545 -0
  475. package/registry/files/use-memoize.ts +118 -0
  476. package/registry/files/use-mounted.ts +30 -0
  477. package/registry/files/use-navigation-api.ts +641 -0
  478. package/registry/files/use-notification.ts +285 -0
  479. package/registry/files/use-now.ts +194 -0
  480. package/registry/files/use-number-format.ts +120 -0
  481. package/registry/files/use-object-url.ts +87 -0
  482. package/registry/files/use-offset-pagination.ts +168 -0
  483. package/registry/files/use-payment-request.ts +465 -0
  484. package/registry/files/use-performance-observer.ts +469 -0
  485. package/registry/files/use-permission.ts +220 -0
  486. package/registry/files/use-plural-rules.ts +134 -0
  487. package/registry/files/use-previous.ts +62 -0
  488. package/registry/files/use-push-subscription.ts +352 -0
  489. package/registry/files/use-queue.ts +197 -0
  490. package/registry/files/use-raf-fn.ts +176 -0
  491. package/registry/files/use-relative-time-format.ts +201 -0
  492. package/registry/files/use-request-idle-callback.ts +278 -0
  493. package/registry/files/use-route-query.ts +300 -0
  494. package/registry/files/use-scheduler-post-task.ts +397 -0
  495. package/registry/files/use-screen-details.ts +393 -0
  496. package/registry/files/use-script-tag.ts +341 -0
  497. package/registry/files/use-segmenter.ts +147 -0
  498. package/registry/files/use-selection.ts +233 -0
  499. package/registry/files/use-serial.ts +404 -0
  500. package/registry/files/use-service-worker.ts +413 -0
  501. package/registry/files/use-set.ts +154 -0
  502. package/registry/files/use-share.ts +168 -0
  503. package/registry/files/use-sorted-locale.ts +130 -0
  504. package/registry/files/use-sorted.ts +49 -0
  505. package/registry/files/use-speech-recognition.ts +357 -0
  506. package/registry/files/use-speech-synthesis.ts +333 -0
  507. package/registry/files/use-stack.ts +164 -0
  508. package/registry/files/use-stepper.ts +166 -0
  509. package/registry/files/use-storage-estimate.ts +352 -0
  510. package/registry/files/use-storage.ts +635 -0
  511. package/registry/files/use-style-tag.ts +200 -0
  512. package/registry/files/use-supported.ts +26 -0
  513. package/registry/files/use-throttled.ts +215 -0
  514. package/registry/files/use-time-ago.ts +276 -0
  515. package/registry/files/use-timeout.ts +218 -0
  516. package/registry/files/use-toggle.ts +54 -0
  517. package/registry/files/use-url-hash.ts +280 -0
  518. package/registry/files/use-url-search-params.ts +497 -0
  519. package/registry/files/use-usb.ts +395 -0
  520. package/registry/files/use-user-activation.ts +215 -0
  521. package/registry/files/use-user-media.ts +422 -0
  522. package/registry/files/use-v-model.ts +210 -0
  523. package/registry/files/use-vibrate.ts +174 -0
  524. package/registry/files/use-view-transition.ts +229 -0
  525. package/registry/files/use-visual-viewport.ts +228 -0
  526. package/registry/files/use-wake-lock.ts +206 -0
  527. package/registry/files/use-web-authn.ts +793 -0
  528. package/registry/files/use-web-locks.ts +363 -0
  529. package/registry/files/use-web-midi.ts +306 -0
  530. package/registry/files/use-web-vitals.ts +409 -0
  531. package/registry/files/use-websocket.ts +553 -0
  532. package/registry/files/use-worker-fn.ts +306 -0
  533. package/registry/files/virtual-list.ts +230 -0
  534. package/registry/files/watch-debounced.ts +206 -0
  535. package/registry/files/watch-ignorable.ts +128 -0
  536. package/registry/files/watch-once.ts +46 -0
  537. package/registry/files/watch-pausable.ts +93 -0
  538. package/registry/files/watch-source.ts +51 -0
  539. package/registry/files/watch-throttled.ts +201 -0
  540. package/registry/files/whenever.ts +70 -0
  541. package/registry/files/window-size.ts +151 -0
  542. package/registry/registry.json +5792 -0
  543. package/dist/catalog-D2AL3xYl.d.mts +0 -523
  544. package/dist/catalog-D5SYCsgW.mjs +0 -549
@@ -0,0 +1,96 @@
1
+ import { MaybeRefOrGetter, Ref } from "vue";
2
+
3
+ //#region src/network.d.ts
4
+ /** Effective connection classes reported by the Network Information API. */
5
+ type NetworkEffectiveType = "slow-2g" | "2g" | "3g" | "4g";
6
+ /** Physical connection types reported by the Network Information API. */
7
+ type NetworkConnectionType = "bluetooth" | "cellular" | "ethernet" | "none" | "wifi" | "wimax" | "other" | "unknown";
8
+ /** Subset of the (non-standard) `NetworkInformation` interface. */
9
+ interface NetworkInformationLike extends EventTarget {
10
+ /** Estimated downlink bandwidth in Mbit/s. */
11
+ readonly downlink?: number;
12
+ /** Maximum downlink bandwidth in Mbit/s. */
13
+ readonly downlinkMax?: number;
14
+ /** Effective connection class. */
15
+ readonly effectiveType?: string;
16
+ /** Estimated round-trip time in milliseconds. */
17
+ readonly rtt?: number;
18
+ /** Whether the user requested reduced data usage. */
19
+ readonly saveData?: boolean;
20
+ /** Physical connection type. */
21
+ readonly type?: string;
22
+ }
23
+ /** Window-like capability observed by the network composables. */
24
+ interface NetworkHost extends EventTarget {
25
+ /** Navigator exposing connectivity. */
26
+ readonly navigator: {
27
+ /** Whether the browser believes it is online. */readonly onLine: boolean; /** Network Information API object, where supported. */
28
+ readonly connection?: NetworkInformationLike;
29
+ };
30
+ }
31
+ /** Options shared by {@link useOnline} and {@link useNetwork}. */
32
+ interface UseNetworkOptions {
33
+ /**
34
+ * Connectivity exposed during server rendering.
35
+ *
36
+ * @default true
37
+ */
38
+ readonly ssrOnline?: boolean;
39
+ /**
40
+ * Reactive window capability for alternate runtimes and tests.
41
+ *
42
+ * @default globalThis.window when available
43
+ */
44
+ readonly host?: MaybeRefOrGetter<NetworkHost | null | undefined>;
45
+ }
46
+ /** Reactive network state returned by {@link useNetwork}. */
47
+ interface NetworkControls {
48
+ /** Whether the Network Information API is available. `false` during server rendering. */
49
+ readonly isSupported: Readonly<Ref<boolean>>;
50
+ /** Whether the browser reports being online. */
51
+ readonly isOnline: Readonly<Ref<boolean>>;
52
+ /** Epoch milliseconds of the latest `online` event. */
53
+ readonly onlineAt: Readonly<Ref<number | null>>;
54
+ /** Epoch milliseconds of the latest `offline` event. */
55
+ readonly offlineAt: Readonly<Ref<number | null>>;
56
+ /** Estimated downlink in Mbit/s. */
57
+ readonly downlink: Readonly<Ref<number | null>>;
58
+ /** Maximum downlink in Mbit/s. */
59
+ readonly downlinkMax: Readonly<Ref<number | null>>;
60
+ /** Effective connection class, or `null` when unknown. */
61
+ readonly effectiveType: Readonly<Ref<NetworkEffectiveType | null>>;
62
+ /** Estimated round-trip time in milliseconds. */
63
+ readonly rtt: Readonly<Ref<number | null>>;
64
+ /** Whether the user requested reduced data usage. */
65
+ readonly saveData: Readonly<Ref<boolean>>;
66
+ /** Physical connection type, or `null` when unknown. */
67
+ readonly type: Readonly<Ref<NetworkConnectionType | null>>;
68
+ }
69
+ /**
70
+ * Track connectivity and connection quality.
71
+ *
72
+ * Listens for `online`/`offline` on the window and `change` on
73
+ * `navigator.connection` where available. Unknown or future enum values
74
+ * normalize to `null` so the public unions stay closed. Server renders
75
+ * report `ssrOnline` with every quality metric `null`. Inside a component
76
+ * the connection is read after mounting, so hydration renders the server
77
+ * values first. Listeners are removed with the owning reactive scope.
78
+ *
79
+ * @param options Server fallback and window capability.
80
+ * @default options {}
81
+ * @returns Reactive connectivity and connection metrics.
82
+ */
83
+ declare function useNetwork(options?: UseNetworkOptions): NetworkControls;
84
+ /**
85
+ * Track whether the browser reports being online.
86
+ *
87
+ * Shorthand for `useNetwork(options).isOnline` with the same SSR fallback
88
+ * and cleanup semantics.
89
+ *
90
+ * @param options Server fallback and window capability.
91
+ * @default options {}
92
+ * @returns Readonly online flag.
93
+ */
94
+ declare function useOnline(options?: UseNetworkOptions): Readonly<Ref<boolean>>;
95
+ //#endregion
96
+ export { NetworkConnectionType, NetworkControls, NetworkEffectiveType, NetworkHost, NetworkInformationLike, UseNetworkOptions, useNetwork, useOnline };
@@ -0,0 +1,117 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { hasInjectionContext, readonly, ref, shallowRef, toValue, watch, watchPostEffect } from "vue";
3
+ //#region src/network.ts
4
+ /**
5
+ * Track connectivity and connection quality.
6
+ *
7
+ * Listens for `online`/`offline` on the window and `change` on
8
+ * `navigator.connection` where available. Unknown or future enum values
9
+ * normalize to `null` so the public unions stay closed. Server renders
10
+ * report `ssrOnline` with every quality metric `null`. Inside a component
11
+ * the connection is read after mounting, so hydration renders the server
12
+ * values first. Listeners are removed with the owning reactive scope.
13
+ *
14
+ * @param options Server fallback and window capability.
15
+ * @default options {}
16
+ * @returns Reactive connectivity and connection metrics.
17
+ */
18
+ function useNetwork(options = {}) {
19
+ const ssrOnline = options.ssrOnline ?? true;
20
+ const isSupported = ref(false);
21
+ const isOnline = ref(ssrOnline);
22
+ const onlineAt = ref(null);
23
+ const offlineAt = ref(null);
24
+ const downlink = ref(null);
25
+ const downlinkMax = ref(null);
26
+ const effectiveType = ref(null);
27
+ const rtt = ref(null);
28
+ const saveData = ref(false);
29
+ const type = ref(null);
30
+ const hydrated = shallowRef(!hasInjectionContext());
31
+ if (!hydrated.value) watchPostEffect(() => {
32
+ hydrated.value = true;
33
+ });
34
+ const stop = watch(() => hydrated.value ? options.host === void 0 ? browserNetworkHost() : toValue(options.host) : void 0, (host, _previous, onCleanup) => {
35
+ if (!host) {
36
+ isSupported.value = false;
37
+ isOnline.value = ssrOnline;
38
+ return;
39
+ }
40
+ const connection = host.navigator.connection;
41
+ isSupported.value = connection !== void 0;
42
+ const readConnection = () => {
43
+ isOnline.value = host.navigator.onLine;
44
+ if (!connection) return;
45
+ downlink.value = connection.downlink ?? null;
46
+ downlinkMax.value = connection.downlinkMax ?? null;
47
+ effectiveType.value = toEffectiveType(connection.effectiveType);
48
+ rtt.value = connection.rtt ?? null;
49
+ saveData.value = connection.saveData ?? false;
50
+ type.value = toConnectionType(connection.type);
51
+ };
52
+ const onOnline = () => {
53
+ onlineAt.value = Date.now();
54
+ readConnection();
55
+ };
56
+ const onOffline = () => {
57
+ offlineAt.value = Date.now();
58
+ readConnection();
59
+ };
60
+ readConnection();
61
+ host.addEventListener("online", onOnline, { passive: true });
62
+ host.addEventListener("offline", onOffline, { passive: true });
63
+ connection?.addEventListener("change", readConnection, { passive: true });
64
+ onCleanup(() => {
65
+ host.removeEventListener("online", onOnline);
66
+ host.removeEventListener("offline", onOffline);
67
+ connection?.removeEventListener("change", readConnection);
68
+ });
69
+ }, { immediate: true });
70
+ tryOnScopeDispose(() => stop.stop());
71
+ return {
72
+ isSupported: readonly(isSupported),
73
+ isOnline: readonly(isOnline),
74
+ onlineAt: readonly(onlineAt),
75
+ offlineAt: readonly(offlineAt),
76
+ downlink: readonly(downlink),
77
+ downlinkMax: readonly(downlinkMax),
78
+ effectiveType: readonly(effectiveType),
79
+ rtt: readonly(rtt),
80
+ saveData: readonly(saveData),
81
+ type: readonly(type)
82
+ };
83
+ }
84
+ /**
85
+ * Track whether the browser reports being online.
86
+ *
87
+ * Shorthand for `useNetwork(options).isOnline` with the same SSR fallback
88
+ * and cleanup semantics.
89
+ *
90
+ * @param options Server fallback and window capability.
91
+ * @default options {}
92
+ * @returns Readonly online flag.
93
+ */
94
+ function useOnline(options = {}) {
95
+ return useNetwork(options).isOnline;
96
+ }
97
+ function toEffectiveType(value) {
98
+ return value === "slow-2g" || value === "2g" || value === "3g" || value === "4g" ? value : null;
99
+ }
100
+ function toConnectionType(value) {
101
+ switch (value) {
102
+ case "bluetooth":
103
+ case "cellular":
104
+ case "ethernet":
105
+ case "none":
106
+ case "wifi":
107
+ case "wimax":
108
+ case "other":
109
+ case "unknown": return value;
110
+ default: return null;
111
+ }
112
+ }
113
+ function browserNetworkHost() {
114
+ return typeof window !== "undefined" ? window : void 0;
115
+ }
116
+ //#endregion
117
+ export { useNetwork, useOnline };
@@ -0,0 +1,69 @@
1
+ import { t as TimeoutScheduler } from "./timeout-scheduler-CI8RVLZs.mjs";
2
+ import { n as MaybeElementTarget } from "./element-target-Crpxl4D9.mjs";
3
+ import { MaybeRefOrGetter } from "vue";
4
+
5
+ //#region src/on-click-outside.d.ts
6
+ /** Window-like capability observed by {@link onClickOutside}. */
7
+ interface ClickOutsideHost extends EventTarget {
8
+ /** Document used to detect focus moving into an iframe. */
9
+ readonly document: {
10
+ readonly activeElement: Element | null;
11
+ };
12
+ }
13
+ /** Ignore entry: an element target or a CSS selector matched against the event path. */
14
+ type ClickOutsideIgnore = MaybeElementTarget | string;
15
+ /** Options for {@link onClickOutside}. */
16
+ interface OnClickOutsideOptions {
17
+ /**
18
+ * Elements (or selectors) whose clicks never count as outside, e.g. the
19
+ * button that toggles a popover.
20
+ *
21
+ * @default []
22
+ */
23
+ readonly ignore?: MaybeRefOrGetter<readonly ClickOutsideIgnore[]>;
24
+ /**
25
+ * Listen in the capture phase so `stopPropagation()` inside the page
26
+ * cannot hide outside clicks.
27
+ *
28
+ * @default true
29
+ */
30
+ readonly capture?: boolean;
31
+ /**
32
+ * Treat focus moving into an `<iframe>` outside the target as an outside
33
+ * click (iframes swallow pointer events).
34
+ *
35
+ * @default false
36
+ */
37
+ readonly detectIframe?: boolean;
38
+ /**
39
+ * Owns the zero-delay timer used for iframe detection.
40
+ *
41
+ * @default globalThis timer functions
42
+ */
43
+ readonly scheduler?: TimeoutScheduler;
44
+ /**
45
+ * Reactive window capability for alternate runtimes and tests.
46
+ *
47
+ * @default globalThis.window when available
48
+ */
49
+ readonly host?: MaybeRefOrGetter<ClickOutsideHost | null | undefined>;
50
+ }
51
+ /**
52
+ * Call a handler when the user clicks (or focuses an iframe) outside an element.
53
+ *
54
+ * A click counts as outside only when its `pointerdown` also started outside
55
+ * the target, so drags that begin inside (e.g. text selection) and end
56
+ * outside are ignored. Event paths (`composedPath()`) make shadow-DOM targets
57
+ * work. The host is resolved once, when called. Nothing is registered
58
+ * during server rendering; listeners are removed with the owning scope or by
59
+ * the returned stop function.
60
+ *
61
+ * @param target Reactive element target.
62
+ * @param handler Called with the outside `PointerEvent`/`MouseEvent` or `FocusEvent`.
63
+ * @param options Ignore list, phase, iframe detection, and capabilities.
64
+ * @default options {}
65
+ * @returns Stop function.
66
+ */
67
+ declare function onClickOutside(target: MaybeElementTarget, handler: (event: Event) => void, options?: OnClickOutsideOptions): () => void;
68
+ //#endregion
69
+ export { ClickOutsideHost, ClickOutsideIgnore, OnClickOutsideOptions, onClickOutside };
@@ -0,0 +1,115 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { resolveElement } from "./element-target.mjs";
3
+ import { toValue } from "vue";
4
+ //#region src/on-click-outside.ts
5
+ const defaultScheduler = {
6
+ setTimeout: (callback, delayMs) => globalThis.setTimeout(callback, delayMs),
7
+ clearTimeout: (handle) => {
8
+ globalThis.clearTimeout(handle);
9
+ }
10
+ };
11
+ /**
12
+ * Call a handler when the user clicks (or focuses an iframe) outside an element.
13
+ *
14
+ * A click counts as outside only when its `pointerdown` also started outside
15
+ * the target, so drags that begin inside (e.g. text selection) and end
16
+ * outside are ignored. Event paths (`composedPath()`) make shadow-DOM targets
17
+ * work. The host is resolved once, when called. Nothing is registered
18
+ * during server rendering; listeners are removed with the owning scope or by
19
+ * the returned stop function.
20
+ *
21
+ * @param target Reactive element target.
22
+ * @param handler Called with the outside `PointerEvent`/`MouseEvent` or `FocusEvent`.
23
+ * @param options Ignore list, phase, iframe detection, and capabilities.
24
+ * @default options {}
25
+ * @returns Stop function.
26
+ */
27
+ function onClickOutside(target, handler, options = {}) {
28
+ const host = options.host === void 0 ? browserClickHost() : toValue(options.host);
29
+ if (!host) return () => void 0;
30
+ const capture = options.capture ?? true;
31
+ const scheduler = options.scheduler ?? defaultScheduler;
32
+ let startedInside = false;
33
+ let pendingBlur;
34
+ let hasPendingBlur = false;
35
+ const pathOf = (event) => {
36
+ const path = typeof event.composedPath === "function" ? event.composedPath() : [];
37
+ return path.length > 0 ? path : event.target ? [event.target] : [];
38
+ };
39
+ const isIgnored = (event) => {
40
+ const path = pathOf(event);
41
+ for (const entry of toValue(options.ignore) ?? []) {
42
+ if (typeof entry === "string") {
43
+ if (path.some((node) => matchesSelector(node, entry))) return true;
44
+ continue;
45
+ }
46
+ const element = resolveElement(entry);
47
+ if (element && path.some((node) => node === element || containsNode(element, node))) return true;
48
+ }
49
+ return false;
50
+ };
51
+ const isInside = (event) => {
52
+ const element = resolveElement(target);
53
+ if (!element) return true;
54
+ return pathOf(event).some((node) => node === element || containsNode(element, node));
55
+ };
56
+ const onPointerDown = (event) => {
57
+ startedInside = isInside(event) || isIgnored(event);
58
+ };
59
+ const onClick = (event) => {
60
+ const inside = isInside(event) || isIgnored(event);
61
+ const began = startedInside;
62
+ startedInside = false;
63
+ if (inside || began) return;
64
+ handler(event);
65
+ };
66
+ const onBlur = (event) => {
67
+ if (hasPendingBlur) scheduler.clearTimeout(pendingBlur);
68
+ hasPendingBlur = true;
69
+ pendingBlur = scheduler.setTimeout(() => {
70
+ hasPendingBlur = false;
71
+ const active = host.document.activeElement;
72
+ const element = resolveElement(target);
73
+ if (active?.tagName === "IFRAME" && element && !containsNode(element, active)) handler(event);
74
+ }, 0);
75
+ };
76
+ host.addEventListener("pointerdown", onPointerDown, {
77
+ capture,
78
+ passive: true
79
+ });
80
+ host.addEventListener("click", onClick, {
81
+ capture,
82
+ passive: true
83
+ });
84
+ if (options.detectIframe) host.addEventListener("blur", onBlur);
85
+ let stopped = false;
86
+ const stop = () => {
87
+ if (stopped) return;
88
+ stopped = true;
89
+ host.removeEventListener("pointerdown", onPointerDown, { capture });
90
+ host.removeEventListener("click", onClick, { capture });
91
+ host.removeEventListener("blur", onBlur);
92
+ if (hasPendingBlur) scheduler.clearTimeout(pendingBlur);
93
+ };
94
+ tryOnScopeDispose(stop);
95
+ return stop;
96
+ }
97
+ function containsNode(element, node) {
98
+ return typeof element.contains === "function" && isNodeLike(node) && element.contains(node);
99
+ }
100
+ function isNodeLike(value) {
101
+ return "nodeType" in value;
102
+ }
103
+ function matchesSelector(node, selector) {
104
+ if (!("matches" in node) || typeof node.matches !== "function") return false;
105
+ try {
106
+ return node.matches(selector) === true;
107
+ } catch {
108
+ return false;
109
+ }
110
+ }
111
+ function browserClickHost() {
112
+ return typeof window !== "undefined" ? window : void 0;
113
+ }
114
+ //#endregion
115
+ export { onClickOutside };
@@ -0,0 +1,71 @@
1
+ import { KeyFilter } from "./magic-keys.mjs";
2
+ import { MaybeRefOrGetter } from "vue";
3
+
4
+ //#region src/on-key-stroke.d.ts
5
+ /** Keyboard event names accepted by {@link onKeyStroke}. */
6
+ type KeyStrokeEventName = "keydown" | "keyup" | "keypress";
7
+ /** Options for {@link onKeyStroke}. */
8
+ interface OnKeyStrokeOptions {
9
+ /**
10
+ * Keyboard event to listen for.
11
+ *
12
+ * @default "keydown"
13
+ */
14
+ readonly eventName?: KeyStrokeEventName;
15
+ /**
16
+ * Event target.
17
+ *
18
+ * @default globalThis.window when available
19
+ */
20
+ readonly target?: MaybeRefOrGetter<EventTarget | null | undefined>;
21
+ /**
22
+ * Register a passive listener (the handler then cannot `preventDefault()`).
23
+ *
24
+ * @default false
25
+ */
26
+ readonly passive?: boolean;
27
+ /**
28
+ * Ignore auto-repeated `keydown` events while a key is held.
29
+ *
30
+ * @default false
31
+ */
32
+ readonly dedupe?: MaybeRefOrGetter<boolean>;
33
+ }
34
+ /**
35
+ * Run a handler when matching keys are pressed.
36
+ *
37
+ * `key` accepts a name, a list of names (normalized like combos, so `"esc"`
38
+ * matches `Escape` and `"a"` matches `KeyA`), a predicate, or `true` for every
39
+ * key. The listener follows the reactive target and is removed with the
40
+ * owning scope or the returned stop function; nothing is registered during
41
+ * server rendering.
42
+ *
43
+ * @param key Key filter, or `true` for any key.
44
+ * @param handler Called with the matching `KeyboardEvent`.
45
+ * @param options Event name, target, passivity, and dedupe.
46
+ * @default options {}
47
+ * @returns Stop function.
48
+ */
49
+ declare function onKeyStroke(key: KeyFilter | true, handler: (event: KeyboardEvent) => void, options?: OnKeyStrokeOptions): () => void;
50
+ /**
51
+ * {@link onKeyStroke} for `keydown`.
52
+ *
53
+ * @param key Key filter, or `true` for any key.
54
+ * @param handler Called with the matching `KeyboardEvent`.
55
+ * @param options Target, passivity, and dedupe.
56
+ * @default options {}
57
+ * @returns Stop function.
58
+ */
59
+ declare function onKeyDown(key: KeyFilter | true, handler: (event: KeyboardEvent) => void, options?: Omit<OnKeyStrokeOptions, "eventName">): () => void;
60
+ /**
61
+ * {@link onKeyStroke} for `keyup`.
62
+ *
63
+ * @param key Key filter, or `true` for any key.
64
+ * @param handler Called with the matching `KeyboardEvent`.
65
+ * @param options Target, passivity, and dedupe.
66
+ * @default options {}
67
+ * @returns Stop function.
68
+ */
69
+ declare function onKeyUp(key: KeyFilter | true, handler: (event: KeyboardEvent) => void, options?: Omit<OnKeyStrokeOptions, "eventName">): () => void;
70
+ //#endregion
71
+ export { KeyStrokeEventName, OnKeyStrokeOptions, onKeyDown, onKeyStroke, onKeyUp };
@@ -0,0 +1,79 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { normalizeKeyName } from "./magic-keys.mjs";
3
+ import { toValue, watch } from "vue";
4
+ //#region src/on-key-stroke.ts
5
+ /**
6
+ * Run a handler when matching keys are pressed.
7
+ *
8
+ * `key` accepts a name, a list of names (normalized like combos, so `"esc"`
9
+ * matches `Escape` and `"a"` matches `KeyA`), a predicate, or `true` for every
10
+ * key. The listener follows the reactive target and is removed with the
11
+ * owning scope or the returned stop function; nothing is registered during
12
+ * server rendering.
13
+ *
14
+ * @param key Key filter, or `true` for any key.
15
+ * @param handler Called with the matching `KeyboardEvent`.
16
+ * @param options Event name, target, passivity, and dedupe.
17
+ * @default options {}
18
+ * @returns Stop function.
19
+ */
20
+ function onKeyStroke(key, handler, options = {}) {
21
+ const eventName = options.eventName ?? "keydown";
22
+ const names = key === true || typeof key === "function" ? void 0 : new Set((typeof key === "string" ? [key] : key).map((name) => normalizeKeyName(name)));
23
+ const matches = (event) => {
24
+ if (key === true) return true;
25
+ if (typeof key === "function") return key(event);
26
+ return names !== void 0 && (names.has(normalizeKeyName(event.key)) || names.has(normalizeKeyName(event.code)));
27
+ };
28
+ const listener = (event) => {
29
+ if (!isKeyboardEvent(event)) return;
30
+ if (event.repeat && toValue(options.dedupe)) return;
31
+ if (matches(event)) handler(event);
32
+ };
33
+ const stop = watch(() => options.target === void 0 ? browserWindow() : toValue(options.target), (target, _previous, onCleanup) => {
34
+ if (!target) return;
35
+ target.addEventListener(eventName, listener, { passive: options.passive ?? false });
36
+ onCleanup(() => target.removeEventListener(eventName, listener));
37
+ }, { immediate: true });
38
+ const dispose = () => stop.stop();
39
+ tryOnScopeDispose(dispose);
40
+ return dispose;
41
+ }
42
+ /**
43
+ * {@link onKeyStroke} for `keydown`.
44
+ *
45
+ * @param key Key filter, or `true` for any key.
46
+ * @param handler Called with the matching `KeyboardEvent`.
47
+ * @param options Target, passivity, and dedupe.
48
+ * @default options {}
49
+ * @returns Stop function.
50
+ */
51
+ function onKeyDown(key, handler, options = {}) {
52
+ return onKeyStroke(key, handler, {
53
+ ...options,
54
+ eventName: "keydown"
55
+ });
56
+ }
57
+ /**
58
+ * {@link onKeyStroke} for `keyup`.
59
+ *
60
+ * @param key Key filter, or `true` for any key.
61
+ * @param handler Called with the matching `KeyboardEvent`.
62
+ * @param options Target, passivity, and dedupe.
63
+ * @default options {}
64
+ * @returns Stop function.
65
+ */
66
+ function onKeyUp(key, handler, options = {}) {
67
+ return onKeyStroke(key, handler, {
68
+ ...options,
69
+ eventName: "keyup"
70
+ });
71
+ }
72
+ function isKeyboardEvent(event) {
73
+ return "key" in event && "code" in event;
74
+ }
75
+ function browserWindow() {
76
+ return typeof window !== "undefined" ? window : void 0;
77
+ }
78
+ //#endregion
79
+ export { onKeyDown, onKeyStroke, onKeyUp };
@@ -0,0 +1,82 @@
1
+ import { t as TimeoutScheduler } from "./timeout-scheduler-CI8RVLZs.mjs";
2
+ import { n as MaybeElementTarget } from "./element-target-Crpxl4D9.mjs";
3
+
4
+ //#region src/on-long-press.d.ts
5
+ /** Event modifiers applied to the pointer events handled by {@link onLongPress}. */
6
+ interface LongPressModifiers {
7
+ /** Call `stopPropagation()`. */
8
+ readonly stop?: boolean;
9
+ /** Fire at most once. */
10
+ readonly once?: boolean;
11
+ /** Call `preventDefault()`. */
12
+ readonly prevent?: boolean;
13
+ /** Listen in the capture phase. */
14
+ readonly capture?: boolean;
15
+ /** Only start when the element itself (not a descendant) is pressed. */
16
+ readonly self?: boolean;
17
+ }
18
+ /** Summary passed to {@link OnLongPressOptions.onRelease}. */
19
+ interface LongPressRelease {
20
+ /** Milliseconds between press and release. */
21
+ readonly duration: number;
22
+ /** Pointer travel in CSS pixels. */
23
+ readonly distance: number;
24
+ /** Whether the long-press handler fired. */
25
+ readonly isLongPress: boolean;
26
+ }
27
+ /** Options for {@link onLongPress}. */
28
+ interface OnLongPressOptions {
29
+ /**
30
+ * Hold time in milliseconds.
31
+ *
32
+ * @default 500
33
+ */
34
+ readonly delay?: number;
35
+ /**
36
+ * Maximum pointer travel before the press is cancelled.
37
+ *
38
+ * @default 10
39
+ */
40
+ readonly distanceThreshold?: number;
41
+ /**
42
+ * Event modifiers.
43
+ *
44
+ * @default {}
45
+ */
46
+ readonly modifiers?: LongPressModifiers;
47
+ /**
48
+ * Called on every release with timing details.
49
+ *
50
+ * @default undefined
51
+ */
52
+ readonly onRelease?: (release: LongPressRelease, event: PointerEvent) => void;
53
+ /**
54
+ * Clock for durations.
55
+ *
56
+ * @default Date.now
57
+ */
58
+ readonly now?: () => number;
59
+ /**
60
+ * Owns the hold timer.
61
+ *
62
+ * @default globalThis timer functions
63
+ */
64
+ readonly scheduler?: TimeoutScheduler;
65
+ }
66
+ /**
67
+ * Call a handler when an element is pressed and held.
68
+ *
69
+ * Uses Pointer Events, so mouse, touch, and pen behave alike. Moving more than
70
+ * `distanceThreshold` or releasing early cancels the press. Nothing is
71
+ * registered during server rendering; listeners and the timer are released
72
+ * with the owning scope or the returned stop function.
73
+ *
74
+ * @param target Reactive element target.
75
+ * @param handler Called with the initiating `pointerdown` event.
76
+ * @param options Delay, threshold, modifiers, and callbacks.
77
+ * @default options {}
78
+ * @returns Stop function.
79
+ */
80
+ declare function onLongPress(target: MaybeElementTarget, handler: (event: PointerEvent) => void, options?: OnLongPressOptions): () => void;
81
+ //#endregion
82
+ export { LongPressModifiers, LongPressRelease, OnLongPressOptions, onLongPress };