@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,53 @@
1
+ import { useLocale } from "./locale.mjs";
2
+ import { computed, toValue } from "vue";
3
+ //#region src/use-date-time-format.ts
4
+ function browserLanguage() {
5
+ return typeof window === "undefined" ? void 0 : window.navigator.language;
6
+ }
7
+ function isValidDate(value) {
8
+ return !Number.isNaN(value instanceof Date ? value.getTime() : value);
9
+ }
10
+ /**
11
+ * Format dates and times reactively with `Intl.DateTimeFormat`.
12
+ *
13
+ * The formatter follows the reactive options (including `locale`) and is
14
+ * cached per locale and option set through {@link useLocale}. For
15
+ * hydration-stable output pass both `locale` and `timeZone`: otherwise the
16
+ * server uses `"en"` and its own zone. Invalid options surface as the
17
+ * platform's `RangeError` on first read; invalid dates render as `""`.
18
+ * No listeners or timers are created — combine with a clock composable for
19
+ * live-updating output.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * const { formatted } = useDateTimeFormat(date, { locale: "en-GB", dateStyle: "long", timeZone: "UTC" });
24
+ * ```
25
+ *
26
+ * @param value Reactive date; `null`/`undefined` format as `""`.
27
+ * @param options Reactive locale and `Intl.DateTimeFormat` options.
28
+ * @default value undefined
29
+ * @default options {}
30
+ * @returns Reactive formatted output and formatter helpers.
31
+ */
32
+ function useDateTimeFormat(value, options = {}) {
33
+ const localeControls = useLocale(() => toValue(options).locale, { detect: browserLanguage });
34
+ const formatter = computed(() => {
35
+ const { locale: _locale, ...formatOptions } = toValue(options);
36
+ return localeControls.dateTime(formatOptions);
37
+ });
38
+ const formatted = computed(() => {
39
+ const current = value === void 0 ? void 0 : toValue(value);
40
+ if (current === null || current === void 0 || !isValidDate(current)) return "";
41
+ return formatter.value.format(current);
42
+ });
43
+ return {
44
+ locale: localeControls.locale,
45
+ formatter,
46
+ formatted,
47
+ format: (input) => formatter.value.format(input),
48
+ formatToParts: (input) => formatter.value.formatToParts(input),
49
+ formatRange: (start, end) => formatter.value.formatRange(start, end)
50
+ };
51
+ }
52
+ //#endregion
53
+ export { useDateTimeFormat };
@@ -1,4 +1,4 @@
1
- import { TimeoutScheduler } from "./timeout-scheduler.mjs";
1
+ import { t as TimeoutScheduler } from "./timeout-scheduler-CI8RVLZs.mjs";
2
2
  import { MaybeRefOrGetter, ShallowRef } from "vue";
3
3
 
4
4
  //#region src/use-debounced.d.ts
@@ -0,0 +1,62 @@
1
+ import { MediaStreamControls, MediaStreamLike } from "./use-user-media.mjs";
2
+ import { MaybeRefOrGetter } from "vue";
3
+
4
+ //#region src/use-display-media.d.ts
5
+ /** Minimal `MediaDevices` consumed by {@link useDisplayMedia}. */
6
+ interface DisplayMediaHost {
7
+ /** Ask the user to pick a screen, window, or tab to capture. */
8
+ getDisplayMedia(options?: DisplayMediaStreamOptions): Promise<MediaStreamLike>;
9
+ }
10
+ /** Options for {@link useDisplayMedia}. */
11
+ interface UseDisplayMediaOptions {
12
+ /**
13
+ * Video capture constraints.
14
+ *
15
+ * @default true
16
+ */
17
+ readonly video?: MaybeRefOrGetter<boolean | MediaTrackConstraints>;
18
+ /**
19
+ * Audio capture constraints (tab or system audio where supported).
20
+ *
21
+ * @default false
22
+ */
23
+ readonly audio?: MaybeRefOrGetter<boolean | MediaTrackConstraints>;
24
+ /**
25
+ * Start while `true`, stop while `false`. Browsers require a user gesture
26
+ * for screen capture, so prefer calling `start` from an event handler.
27
+ *
28
+ * @default false
29
+ */
30
+ readonly enabled?: MaybeRefOrGetter<boolean>;
31
+ /**
32
+ * `MediaDevices` capability for alternate runtimes and tests.
33
+ *
34
+ * @default window.navigator.mediaDevices when it implements `getDisplayMedia`
35
+ */
36
+ readonly host?: MaybeRefOrGetter<DisplayMediaHost | null | undefined>;
37
+ }
38
+ /**
39
+ * Capture a screen, window, or tab with `getDisplayMedia`.
40
+ *
41
+ * Shares the stream lifecycle of `useMediaStream` (from `use-user-media`):
42
+ * classified failures (`"permission-denied"` when the user dismisses the
43
+ * picker), latest-wins requests, and automatic return to `"idle"` when the
44
+ * user ends sharing from the browser UI (every track `ended`). Tracks are
45
+ * stopped when the owning reactive scope stops.
46
+ *
47
+ * Server rendering: nothing is captured; `status` is `"idle"` and
48
+ * `supported` is false.
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * const screen = useDisplayMedia({ audio: true });
53
+ * const share = () => screen.start();
54
+ * ```
55
+ *
56
+ * @param options Capture constraints, activation, and capability.
57
+ * @default options {}
58
+ * @returns Stream state and actions.
59
+ */
60
+ declare function useDisplayMedia(options?: UseDisplayMediaOptions): MediaStreamControls;
61
+ //#endregion
62
+ export { DisplayMediaHost, UseDisplayMediaOptions, useDisplayMedia };
@@ -0,0 +1,46 @@
1
+ import { useMediaStream } from "./use-user-media.mjs";
2
+ import { toValue } from "vue";
3
+ //#region src/use-display-media.ts
4
+ function browserDisplayMediaHost() {
5
+ if (typeof window === "undefined") return void 0;
6
+ const devices = window.navigator.mediaDevices;
7
+ return devices && typeof devices.getDisplayMedia === "function" ? devices : void 0;
8
+ }
9
+ /**
10
+ * Capture a screen, window, or tab with `getDisplayMedia`.
11
+ *
12
+ * Shares the stream lifecycle of `useMediaStream` (from `use-user-media`):
13
+ * classified failures (`"permission-denied"` when the user dismisses the
14
+ * picker), latest-wins requests, and automatic return to `"idle"` when the
15
+ * user ends sharing from the browser UI (every track `ended`). Tracks are
16
+ * stopped when the owning reactive scope stops.
17
+ *
18
+ * Server rendering: nothing is captured; `status` is `"idle"` and
19
+ * `supported` is false.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * const screen = useDisplayMedia({ audio: true });
24
+ * const share = () => screen.start();
25
+ * ```
26
+ *
27
+ * @param options Capture constraints, activation, and capability.
28
+ * @default options {}
29
+ * @returns Stream state and actions.
30
+ */
31
+ function useDisplayMedia(options = {}) {
32
+ const resolveHost = () => options.host === void 0 ? browserDisplayMediaHost() : toValue(options.host) ?? void 0;
33
+ return useMediaStream({
34
+ source: () => {
35
+ const host = resolveHost();
36
+ return host ? { request: (constraints) => host.getDisplayMedia(constraints) } : void 0;
37
+ },
38
+ constraints: () => ({
39
+ video: toValue(options.video) ?? true,
40
+ audio: toValue(options.audio) ?? false
41
+ }),
42
+ enabled: () => toValue(options.enabled) ?? false
43
+ });
44
+ }
45
+ //#endregion
46
+ export { useDisplayMedia };
@@ -0,0 +1,75 @@
1
+ import { ComputedRef, MaybeRefOrGetter } from "vue";
2
+
3
+ //#region src/use-display-names.d.ts
4
+ /** Kinds of codes `Intl.DisplayNames` can name. */
5
+ type DisplayNamesKind = "language" | "region" | "script" | "currency" | "calendar" | "dateTimeField";
6
+ /** Options for {@link useDisplayNames}. */
7
+ interface UseDisplayNamesOptions {
8
+ /** Kind of code to name. */
9
+ readonly type: DisplayNamesKind;
10
+ /**
11
+ * Locale the names are written in. Pass it explicitly for
12
+ * hydration-stable server rendering.
13
+ *
14
+ * @default the browser language, otherwise "en"
15
+ */
16
+ readonly locale?: string | Intl.Locale;
17
+ /**
18
+ * Name length.
19
+ *
20
+ * @default "long"
21
+ */
22
+ readonly style?: "narrow" | "short" | "long";
23
+ /**
24
+ * What to return for a well-formed code without a name: the code itself
25
+ * or `undefined`.
26
+ *
27
+ * @default "code"
28
+ */
29
+ readonly fallback?: "code" | "none";
30
+ /**
31
+ * Language names: `"dialect"` names `"en-GB"` "British English",
32
+ * `"standard"` names it "English (United Kingdom)".
33
+ *
34
+ * @default "dialect"
35
+ */
36
+ readonly languageDisplay?: "dialect" | "standard";
37
+ }
38
+ /** Reactive display names returned by {@link useDisplayNames}. */
39
+ interface DisplayNamesControls {
40
+ /** Canonical locale in use. */
41
+ readonly locale: ComputedRef<string>;
42
+ /** Display names instance for the current locale and options. */
43
+ readonly displayNames: ComputedRef<Intl.DisplayNames>;
44
+ /** Name of the reactive code; `undefined` for malformed or unnamed codes. */
45
+ readonly name: ComputedRef<string | undefined>;
46
+ /**
47
+ * Name any code. Malformed codes return `undefined` instead of throwing.
48
+ *
49
+ * @param code Language tag, region, script, currency, calendar, or field code.
50
+ * @returns The localized name.
51
+ */
52
+ readonly of: (code: string) => string | undefined;
53
+ }
54
+ /**
55
+ * Localized names of languages, regions, scripts, currencies, calendars, and
56
+ * date-time fields (`Intl.DisplayNames`): `"JP"` → "Japan", `"ja"` → "日本語"
57
+ * in Japanese, `"EUR"` → "Euro".
58
+ *
59
+ * Malformed codes yield `undefined` rather than the platform `RangeError`,
60
+ * so user-entered codes never crash rendering; invalid *options* still
61
+ * throw on first read. Derived state only: no listeners or timers, and
62
+ * deterministic during server rendering when the locale is explicit.
63
+ *
64
+ * @example
65
+ * ```ts
66
+ * const { name } = useDisplayNames(regionCode, { type: "region", locale: "en" });
67
+ * ```
68
+ *
69
+ * @param code Reactive code to name.
70
+ * @param options Reactive kind, locale, and display options.
71
+ * @returns Reactive name and a naming helper.
72
+ */
73
+ declare function useDisplayNames(code: MaybeRefOrGetter<string | null | undefined>, options: MaybeRefOrGetter<UseDisplayNamesOptions>): DisplayNamesControls;
74
+ //#endregion
75
+ export { DisplayNamesControls, DisplayNamesKind, UseDisplayNamesOptions, useDisplayNames };
@@ -0,0 +1,52 @@
1
+ import { useLocale } from "./locale.mjs";
2
+ import { computed, toValue } from "vue";
3
+ //#region src/use-display-names.ts
4
+ function browserLanguage() {
5
+ return typeof window === "undefined" ? void 0 : window.navigator.language;
6
+ }
7
+ /**
8
+ * Localized names of languages, regions, scripts, currencies, calendars, and
9
+ * date-time fields (`Intl.DisplayNames`): `"JP"` → "Japan", `"ja"` → "日本語"
10
+ * in Japanese, `"EUR"` → "Euro".
11
+ *
12
+ * Malformed codes yield `undefined` rather than the platform `RangeError`,
13
+ * so user-entered codes never crash rendering; invalid *options* still
14
+ * throw on first read. Derived state only: no listeners or timers, and
15
+ * deterministic during server rendering when the locale is explicit.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * const { name } = useDisplayNames(regionCode, { type: "region", locale: "en" });
20
+ * ```
21
+ *
22
+ * @param code Reactive code to name.
23
+ * @param options Reactive kind, locale, and display options.
24
+ * @returns Reactive name and a naming helper.
25
+ */
26
+ function useDisplayNames(code, options) {
27
+ const localeControls = useLocale(() => toValue(options).locale, { detect: browserLanguage });
28
+ const displayNames = computed(() => {
29
+ const { locale: _locale, ...displayOptions } = toValue(options);
30
+ return new Intl.DisplayNames(localeControls.locale.value, displayOptions);
31
+ });
32
+ const of = (value) => {
33
+ const names = displayNames.value;
34
+ try {
35
+ return names.of(value);
36
+ } catch (error) {
37
+ if (error instanceof RangeError) return void 0;
38
+ throw error;
39
+ }
40
+ };
41
+ return {
42
+ locale: localeControls.locale,
43
+ displayNames,
44
+ name: computed(() => {
45
+ const current = toValue(code);
46
+ return current === null || current === void 0 || current === "" ? void 0 : of(current);
47
+ }),
48
+ of
49
+ };
50
+ }
51
+ //#endregion
52
+ export { useDisplayNames };
@@ -0,0 +1,88 @@
1
+ import { ComputedRef, MaybeRefOrGetter, Ref } from "vue";
2
+
3
+ //#region src/use-document-title.d.ts
4
+ /** Document subset used by {@link useDocumentTitle}. */
5
+ interface DocumentTitleHost {
6
+ /** Current document title (readable and writable). */
7
+ title: string;
8
+ /**
9
+ * Observe external title changes (for example by other libraries).
10
+ * Returns a function that stops observing.
11
+ */
12
+ readonly observeTitle?: (callback: () => void) => () => void;
13
+ }
14
+ /** Title template: a string containing `%s`, or a formatting function. */
15
+ type DocumentTitleTemplate = string | ((title: string) => string);
16
+ /** Title applied when the owning scope stops. */
17
+ type DocumentTitleRestore = false | "previous" | ((originalTitle: string, currentTitle: string) => string);
18
+ /** Options for {@link useDocumentTitle}. */
19
+ interface UseDocumentTitleOptions {
20
+ /**
21
+ * Template applied to every title written to the document.
22
+ *
23
+ * @default "%s"
24
+ */
25
+ readonly template?: DocumentTitleTemplate;
26
+ /**
27
+ * Title restored when the owning reactive scope stops: `false` leaves the
28
+ * current title, `"previous"` restores the title seen at creation, and a
29
+ * function computes it.
30
+ *
31
+ * @default false
32
+ */
33
+ readonly restoreOnDispose?: DocumentTitleRestore;
34
+ /**
35
+ * Follow title changes made outside this composable.
36
+ *
37
+ * @default false
38
+ */
39
+ readonly observe?: boolean;
40
+ /**
41
+ * Document capability for alternate runtimes and tests.
42
+ *
43
+ * @default window.document (with a MutationObserver on `<title>`)
44
+ */
45
+ readonly host?: MaybeRefOrGetter<DocumentTitleHost | null | undefined>;
46
+ }
47
+ /** Reactive state returned by {@link useDocumentTitle}. */
48
+ interface DocumentTitleControls {
49
+ /**
50
+ * Title before templating. Writable; `null`/`undefined` leaves the
51
+ * document title untouched. When a getter was passed, the next getter
52
+ * change overwrites manual assignments.
53
+ */
54
+ readonly title: Ref<string | null | undefined>;
55
+ /**
56
+ * Whether a document capability is attached. Inside a component it stays
57
+ * `false` until mounted, so hydration matches the server render.
58
+ */
59
+ readonly supported: ComputedRef<boolean>;
60
+ }
61
+ /**
62
+ * Bind the document title to reactive state.
63
+ *
64
+ * Accepts a writable ref (used as-is), a getter (followed), a plain
65
+ * string, or nothing (an owned ref seeded from the current title). Every
66
+ * non-nullish title is passed through `template` before it is written.
67
+ * With `observe`, external title changes flow back into `title`.
68
+ *
69
+ * Server rendering: the document is never touched and `title` keeps the
70
+ * value it was given (or `undefined`). Head management for server-rendered
71
+ * markup (`<title>` in the HTML) is the job of the application's head
72
+ * manager; this composable only updates the live document on the client.
73
+ * Watchers and the observer are released with the owning reactive scope,
74
+ * which also applies `restoreOnDispose`.
75
+ *
76
+ * @example
77
+ * ```ts
78
+ * const { title } = useDocumentTitle(() => route.meta.title, { template: "%s | Vize" });
79
+ * ```
80
+ *
81
+ * @param title Reactive title source.
82
+ * @param options Template, restore policy, observation, and capability.
83
+ * @default options {}
84
+ * @returns The title ref and support flag.
85
+ */
86
+ declare function useDocumentTitle(title?: MaybeRefOrGetter<string | null | undefined>, options?: UseDocumentTitleOptions): DocumentTitleControls;
87
+ //#endregion
88
+ export { DocumentTitleControls, DocumentTitleHost, DocumentTitleRestore, DocumentTitleTemplate, UseDocumentTitleOptions, useDocumentTitle };
@@ -0,0 +1,100 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { useMounted } from "./use-mounted.mjs";
3
+ import { computed, hasInjectionContext, isRef, ref, toValue, watch } from "vue";
4
+ //#region src/use-document-title.ts
5
+ function browserTitleHost() {
6
+ if (typeof window === "undefined") return void 0;
7
+ const { document, MutationObserver } = window;
8
+ return {
9
+ get title() {
10
+ return document.title;
11
+ },
12
+ set title(value) {
13
+ document.title = value;
14
+ },
15
+ observeTitle: (callback) => {
16
+ const observer = new MutationObserver(callback);
17
+ const element = document.head.querySelector("title");
18
+ if (element) observer.observe(element, {
19
+ childList: true,
20
+ characterData: true,
21
+ subtree: true
22
+ });
23
+ return () => observer.disconnect();
24
+ }
25
+ };
26
+ }
27
+ function formatTitle(template, title) {
28
+ return typeof template === "function" ? template(title) : template.replaceAll("%s", title);
29
+ }
30
+ /**
31
+ * Bind the document title to reactive state.
32
+ *
33
+ * Accepts a writable ref (used as-is), a getter (followed), a plain
34
+ * string, or nothing (an owned ref seeded from the current title). Every
35
+ * non-nullish title is passed through `template` before it is written.
36
+ * With `observe`, external title changes flow back into `title`.
37
+ *
38
+ * Server rendering: the document is never touched and `title` keeps the
39
+ * value it was given (or `undefined`). Head management for server-rendered
40
+ * markup (`<title>` in the HTML) is the job of the application's head
41
+ * manager; this composable only updates the live document on the client.
42
+ * Watchers and the observer are released with the owning reactive scope,
43
+ * which also applies `restoreOnDispose`.
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * const { title } = useDocumentTitle(() => route.meta.title, { template: "%s | Vize" });
48
+ * ```
49
+ *
50
+ * @param title Reactive title source.
51
+ * @param options Template, restore policy, observation, and capability.
52
+ * @default options {}
53
+ * @returns The title ref and support flag.
54
+ */
55
+ function useDocumentTitle(title, options = {}) {
56
+ const template = options.template ?? "%s";
57
+ const resolveHost = () => options.host === void 0 ? browserTitleHost() : toValue(options.host) ?? void 0;
58
+ const initialHost = resolveHost();
59
+ const originalTitle = initialHost?.title ?? "";
60
+ const mounted = hasInjectionContext() ? useMounted() : void 0;
61
+ const adoptTitle = title === void 0 && mounted !== void 0;
62
+ const state = isRef(title) ? title : ref(title === void 0 && !adoptTitle ? initialHost?.title : toValue(title));
63
+ if (adoptTitle) watch(mounted, (isMounted) => {
64
+ if (isMounted && state.value === void 0) state.value = resolveHost()?.title;
65
+ });
66
+ let lastWritten;
67
+ if (typeof title === "function") watch(title, (next) => {
68
+ state.value = next;
69
+ });
70
+ watch([state, resolveHost], ([next, host]) => {
71
+ if (!host || next === null || next === void 0) return;
72
+ const formatted = formatTitle(template, next);
73
+ lastWritten = formatted;
74
+ if (host.title !== formatted) host.title = formatted;
75
+ }, {
76
+ immediate: true,
77
+ flush: "sync"
78
+ });
79
+ if (options.observe ?? false) watch(resolveHost, (host, _previous, onCleanup) => {
80
+ if (!host?.observeTitle) return;
81
+ onCleanup(host.observeTitle(() => {
82
+ if (host.title !== lastWritten) state.value = host.title;
83
+ }));
84
+ }, {
85
+ immediate: true,
86
+ flush: "sync"
87
+ });
88
+ const restore = options.restoreOnDispose ?? false;
89
+ if (restore !== false) tryOnScopeDispose(() => {
90
+ const host = resolveHost();
91
+ if (!host) return;
92
+ host.title = restore === "previous" ? originalTitle : restore(originalTitle, host.title);
93
+ });
94
+ return {
95
+ title: state,
96
+ supported: computed(() => (mounted?.value ?? true) && resolveHost() !== void 0)
97
+ };
98
+ }
99
+ //#endregion
100
+ export { useDocumentTitle };
@@ -0,0 +1,128 @@
1
+ import { MaybeRef, MaybeRefOrGetter, Ref, ShallowRef } from "vue";
2
+
3
+ //#region src/use-drop-zone.d.ts
4
+ /** One entry of `DataTransfer.items`. */
5
+ interface DataTransferItemLike {
6
+ /** `"file"` or `"string"`. */
7
+ readonly kind: string;
8
+ /** MIME type of the item. */
9
+ readonly type: string;
10
+ }
11
+ /** Minimal `DataTransfer` consumed by {@link useDropZone}. */
12
+ interface DataTransferLike {
13
+ /** Items being dragged; types are readable during the drag. */
14
+ readonly items?: ArrayLike<DataTransferItemLike>;
15
+ /** Dropped files; populated on `drop`. */
16
+ readonly files: ArrayLike<File>;
17
+ /** Feedback shown to the user (`"copy"`, `"none"`, …). */
18
+ dropEffect: string;
19
+ }
20
+ /** File name and MIME type used for acceptance checks. */
21
+ interface DropZoneFileInfo {
22
+ /** File name including extension. Empty while dragging. */
23
+ readonly name: string;
24
+ /** MIME type, possibly empty for unknown types. */
25
+ readonly type: string;
26
+ }
27
+ /**
28
+ * Accepted files: `accept`-attribute style patterns (`"image/*"`,
29
+ * `"application/pdf"`, `".png"`), or a predicate over the dragged MIME types.
30
+ */
31
+ type DropZoneAccept = readonly string[] | ((types: readonly string[]) => boolean);
32
+ /** Options for {@link useDropZone}. */
33
+ interface UseDropZoneOptions {
34
+ /**
35
+ * Accepted files. Extension patterns can only be verified on drop
36
+ * because browsers hide file names while dragging. A ref rather than a
37
+ * getter, because a predicate is itself a function.
38
+ *
39
+ * @default every file
40
+ */
41
+ readonly accept?: MaybeRef<DropZoneAccept | undefined>;
42
+ /**
43
+ * Accept more than one file per drop.
44
+ *
45
+ * @default true
46
+ */
47
+ readonly multiple?: MaybeRefOrGetter<boolean>;
48
+ /**
49
+ * Call `preventDefault` even for rejected drags, so the browser never
50
+ * opens a rejected file dropped onto the zone.
51
+ *
52
+ * @default false
53
+ */
54
+ readonly preventDefaultForUnhandled?: boolean;
55
+ /**
56
+ * Called with the accepted files (or `null` when none were accepted).
57
+ *
58
+ * @default undefined
59
+ */
60
+ readonly onDrop?: (files: readonly File[] | null, event: Event) => void;
61
+ /**
62
+ * Called when a drag enters the zone.
63
+ *
64
+ * @default undefined
65
+ */
66
+ readonly onEnter?: (event: Event) => void;
67
+ /**
68
+ * Called when a drag leaves the zone (including its children).
69
+ *
70
+ * @default undefined
71
+ */
72
+ readonly onLeave?: (event: Event) => void;
73
+ /**
74
+ * Called for every `dragover` inside the zone.
75
+ *
76
+ * @default undefined
77
+ */
78
+ readonly onOver?: (event: Event) => void;
79
+ }
80
+ /** Reactive state returned by {@link useDropZone}. */
81
+ interface DropZoneControls {
82
+ /** Whether a drag is currently over the zone (children included). */
83
+ readonly isOverDropZone: Readonly<Ref<boolean>>;
84
+ /** Whether the current drag is acceptable. */
85
+ readonly accepted: Readonly<Ref<boolean>>;
86
+ /** Files accepted by the most recent drop. */
87
+ readonly files: Readonly<ShallowRef<readonly File[] | null>>;
88
+ }
89
+ /**
90
+ * Test a file against `accept`-attribute style patterns.
91
+ *
92
+ * Supports exact MIME types, wildcard subtypes (`"image/*"`), extensions
93
+ * (`".png"`, case-insensitive), and `"*"`. An empty pattern list accepts
94
+ * everything. An empty `name` (the file is still being dragged) makes
95
+ * extension patterns match provisionally.
96
+ *
97
+ * @param accept Patterns to test.
98
+ * @param file File name and MIME type.
99
+ * @returns Whether any pattern matches.
100
+ */
101
+ declare function matchesAccept(accept: readonly string[], file: DropZoneFileInfo): boolean;
102
+ /**
103
+ * Headless drop-zone logic for any element.
104
+ *
105
+ * Tracks whether a drag is over the target (a nesting counter keeps
106
+ * `dragleave` from child elements from flickering the state), decides
107
+ * acceptance from the dragged MIME types while dragging, and filters the
108
+ * dropped files by `accept` (including extension patterns) and `multiple`.
109
+ * Rejected drags show the `"none"` drop effect. Rendering is entirely up to
110
+ * the caller. Listeners follow the reactive target and are removed when the
111
+ * owning reactive scope stops.
112
+ *
113
+ * Server rendering: no listener is attached; all state is empty/false.
114
+ *
115
+ * @example
116
+ * ```ts
117
+ * const zone = useTemplateRef<HTMLElement>("zone");
118
+ * const { isOverDropZone, files } = useDropZone(zone, { accept: ["image/*"] });
119
+ * ```
120
+ *
121
+ * @param target Reactive drop target.
122
+ * @param options Acceptance rules and lifecycle callbacks.
123
+ * @default options {}
124
+ * @returns Drag and drop state.
125
+ */
126
+ declare function useDropZone(target: MaybeRefOrGetter<EventTarget | null | undefined>, options?: UseDropZoneOptions): DropZoneControls;
127
+ //#endregion
128
+ export { DataTransferItemLike, DataTransferLike, DropZoneAccept, DropZoneControls, DropZoneFileInfo, UseDropZoneOptions, matchesAccept, useDropZone };