@vizejs/composable 0.426.3 → 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,126 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { resolveElement } from "./element-target.mjs";
3
+ import { hasInjectionContext, readonly, ref, shallowRef, toValue, watch, watchPostEffect } from "vue";
4
+ //#region src/pointer-lock.ts
5
+ /** Error thrown when pointer lock cannot be acquired or released. */
6
+ var PointerLockError = class extends Error {
7
+ /** Machine-readable failure code. */
8
+ code;
9
+ /**
10
+ * @param code Machine-readable failure code.
11
+ * @param message Human-readable explanation.
12
+ */
13
+ constructor(code, message) {
14
+ super(message);
15
+ this.name = "PointerLockError";
16
+ this.code = code;
17
+ }
18
+ };
19
+ /**
20
+ * Reactive wrapper around the Pointer Lock API.
21
+ *
22
+ * Tracks `pointerlockchange` on the document and exposes promise-based lock
23
+ * and unlock actions that settle on the platform confirmation events.
24
+ * Rejections are {@link PointerLockError}s with stable codes. Nothing runs
25
+ * during server rendering; listeners are removed with the owning scope.
26
+ *
27
+ * Inside a component the host is read after mounting, so hydration renders
28
+ * the server fallback first and never mismatches.
29
+ *
30
+ * @param target Default reactive element to lock.
31
+ * @param options Movement mode and document capability.
32
+ * @default target undefined
33
+ * @default options {}
34
+ * @returns Support flag, lock state, and actions.
35
+ */
36
+ function usePointerLock(target, options = {}) {
37
+ const isSupported = ref(false);
38
+ const element = shallowRef(null);
39
+ const hydrated = shallowRef(!hasInjectionContext());
40
+ if (!hydrated.value) watchPostEffect(() => {
41
+ hydrated.value = true;
42
+ });
43
+ const host = () => !hydrated.value ? void 0 : options.host === void 0 ? browserPointerLockHost() : toValue(options.host);
44
+ const stop = watch(host, (current, _previous, onCleanup) => {
45
+ isSupported.value = Boolean(current && "pointerLockElement" in current);
46
+ element.value = current?.pointerLockElement ?? null;
47
+ if (!current) return;
48
+ const onChange = () => {
49
+ element.value = current.pointerLockElement;
50
+ };
51
+ current.addEventListener("pointerlockchange", onChange);
52
+ onCleanup(() => current.removeEventListener("pointerlockchange", onChange));
53
+ }, { immediate: true });
54
+ tryOnScopeDispose(() => stop.stop());
55
+ const isLocked = ref(false);
56
+ watch([element, () => target === void 0 ? null : resolveElement(target)], ([locked, own]) => {
57
+ isLocked.value = locked !== null && locked === own;
58
+ }, {
59
+ immediate: true,
60
+ flush: "sync"
61
+ });
62
+ const lock = async (override) => {
63
+ const current = host();
64
+ if (!current || !isSupported.value) throw new PointerLockError("VIZE_COMPOSE_POINTER_LOCK_UNSUPPORTED", "Pointer lock is not supported.");
65
+ const candidate = resolveElement(override ?? target);
66
+ if (!candidate || !isPointerLockable(candidate)) throw new PointerLockError("VIZE_COMPOSE_POINTER_LOCK_NO_TARGET", "No lockable element resolved.");
67
+ const confirmed = waitFor(current, () => current.pointerLockElement === candidate);
68
+ try {
69
+ await candidate.requestPointerLock(options.unadjustedMovement ? { unadjustedMovement: true } : void 0);
70
+ } catch (cause) {
71
+ confirmed.cancel();
72
+ throw new PointerLockError("VIZE_COMPOSE_POINTER_LOCK_FAILED", describe(cause));
73
+ }
74
+ await confirmed.promise;
75
+ return candidate;
76
+ };
77
+ const unlock = async () => {
78
+ const current = host();
79
+ if (!current?.pointerLockElement) return false;
80
+ const confirmed = waitFor(current, () => current.pointerLockElement === null);
81
+ current.exitPointerLock();
82
+ await confirmed.promise;
83
+ return true;
84
+ };
85
+ return {
86
+ isSupported: readonly(isSupported),
87
+ element,
88
+ isLocked: readonly(isLocked),
89
+ lock,
90
+ unlock
91
+ };
92
+ }
93
+ function waitFor(host, done) {
94
+ let cleanup = () => void 0;
95
+ return {
96
+ promise: new Promise((resolve, reject) => {
97
+ const onChange = () => {
98
+ if (!done()) return;
99
+ cleanup();
100
+ resolve();
101
+ };
102
+ const onError = () => {
103
+ cleanup();
104
+ reject(new PointerLockError("VIZE_COMPOSE_POINTER_LOCK_FAILED", "The pointer lock was refused."));
105
+ };
106
+ host.addEventListener("pointerlockchange", onChange);
107
+ host.addEventListener("pointerlockerror", onError);
108
+ cleanup = () => {
109
+ host.removeEventListener("pointerlockchange", onChange);
110
+ host.removeEventListener("pointerlockerror", onError);
111
+ };
112
+ }),
113
+ cancel: () => cleanup()
114
+ };
115
+ }
116
+ function isPointerLockable(element) {
117
+ return typeof element.requestPointerLock === "function";
118
+ }
119
+ function describe(cause) {
120
+ return cause instanceof Error ? cause.message : "The pointer lock request failed.";
121
+ }
122
+ function browserPointerLockHost() {
123
+ return typeof document !== "undefined" ? document : void 0;
124
+ }
125
+ //#endregion
126
+ export { PointerLockError, usePointerLock };
@@ -0,0 +1,78 @@
1
+ import { MaybeRefOrGetter, Ref } from "vue";
2
+
3
+ //#region src/pointer.d.ts
4
+ /** Pointer device kind reported by Pointer Events. */
5
+ type PointerKind = "mouse" | "touch" | "pen";
6
+ /** Snapshot of the latest pointer event. */
7
+ interface PointerState {
8
+ /** Horizontal client coordinate. */
9
+ readonly x: number;
10
+ /** Vertical client coordinate. */
11
+ readonly y: number;
12
+ /** Normalized pressure in `[0, 1]`. */
13
+ readonly pressure: number;
14
+ /** Identifier of the pointer that produced the latest event. */
15
+ readonly pointerId: number;
16
+ /** Pen tilt around the Y axis in degrees. */
17
+ readonly tiltX: number;
18
+ /** Pen tilt around the X axis in degrees. */
19
+ readonly tiltY: number;
20
+ /** Contact geometry width in CSS pixels. */
21
+ readonly width: number;
22
+ /** Contact geometry height in CSS pixels. */
23
+ readonly height: number;
24
+ /** Pen rotation in degrees. */
25
+ readonly twist: number;
26
+ /** Device kind; `null` before the first event. */
27
+ readonly pointerType: PointerKind | null;
28
+ }
29
+ /** Options for {@link usePointer}. */
30
+ interface UsePointerOptions {
31
+ /**
32
+ * Device kinds to track.
33
+ *
34
+ * @default ["mouse", "touch", "pen"]
35
+ */
36
+ readonly pointerTypes?: readonly PointerKind[];
37
+ /**
38
+ * Event target to listen on.
39
+ *
40
+ * @default globalThis.window when available
41
+ */
42
+ readonly target?: MaybeRefOrGetter<EventTarget | null | undefined>;
43
+ /**
44
+ * State exposed before any input and during server rendering.
45
+ *
46
+ * @default all numbers `0`, `pointerType: null`
47
+ */
48
+ readonly initialValue?: Partial<PointerState>;
49
+ }
50
+ /** Reactive pointer state returned by {@link usePointer}. */
51
+ interface PointerControls {
52
+ /** Latest pointer snapshot. */
53
+ readonly state: Readonly<PointerState>;
54
+ /** Whether the pointer is inside the target (between enter/move and leave). */
55
+ readonly isInside: Readonly<Ref<boolean>>;
56
+ }
57
+ /**
58
+ * Track the latest pointer (mouse, touch, or pen) state.
59
+ *
60
+ * Listens passively for `pointerdown`, `pointermove`, `pointerup`, and
61
+ * `pointerleave` on the reactive target and filters by device kind.
62
+ * Listeners are removed with the owning reactive scope; server renders expose
63
+ * the initial snapshot.
64
+ *
65
+ * @param options Device filter, target, and initial snapshot.
66
+ * @default options {}
67
+ * @returns Reactive snapshot and inside flag.
68
+ */
69
+ declare function usePointer(options?: UsePointerOptions): PointerControls;
70
+ /**
71
+ * Narrow a platform `pointerType` string to the closed {@link PointerKind} union.
72
+ *
73
+ * @param value Raw `PointerEvent.pointerType`.
74
+ * @returns The matching kind, or `null` for unknown/future device kinds.
75
+ */
76
+ declare function toPointerKind(value: string): PointerKind | null;
77
+ //#endregion
78
+ export { PointerControls, PointerKind, PointerState, UsePointerOptions, toPointerKind, usePointer };
@@ -0,0 +1,95 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { readonly, ref, shallowReactive, shallowReadonly, toValue, watch } from "vue";
3
+ //#region src/pointer.ts
4
+ /**
5
+ * Track the latest pointer (mouse, touch, or pen) state.
6
+ *
7
+ * Listens passively for `pointerdown`, `pointermove`, `pointerup`, and
8
+ * `pointerleave` on the reactive target and filters by device kind.
9
+ * Listeners are removed with the owning reactive scope; server renders expose
10
+ * the initial snapshot.
11
+ *
12
+ * @param options Device filter, target, and initial snapshot.
13
+ * @default options {}
14
+ * @returns Reactive snapshot and inside flag.
15
+ */
16
+ function usePointer(options = {}) {
17
+ const pointerTypes = options.pointerTypes ?? [
18
+ "mouse",
19
+ "touch",
20
+ "pen"
21
+ ];
22
+ const state = shallowReactive({
23
+ x: 0,
24
+ y: 0,
25
+ pressure: 0,
26
+ pointerId: 0,
27
+ tiltX: 0,
28
+ tiltY: 0,
29
+ width: 0,
30
+ height: 0,
31
+ twist: 0,
32
+ pointerType: null,
33
+ ...options.initialValue
34
+ });
35
+ const isInside = ref(false);
36
+ const onPointer = (event) => {
37
+ if (!isPointerEvent(event)) return;
38
+ const kind = toPointerKind(event.pointerType);
39
+ if (!kind || !pointerTypes.includes(kind)) return;
40
+ isInside.value = true;
41
+ state.x = event.clientX;
42
+ state.y = event.clientY;
43
+ state.pressure = event.pressure;
44
+ state.pointerId = event.pointerId;
45
+ state.tiltX = event.tiltX;
46
+ state.tiltY = event.tiltY;
47
+ state.width = event.width;
48
+ state.height = event.height;
49
+ state.twist = event.twist;
50
+ state.pointerType = kind;
51
+ };
52
+ const onLeave = () => {
53
+ isInside.value = false;
54
+ };
55
+ const stop = watch(() => options.target === void 0 ? browserWindow() : toValue(options.target), (target, _previous, onCleanup) => {
56
+ if (!target) return;
57
+ const listenerOptions = { passive: true };
58
+ for (const type of [
59
+ "pointerdown",
60
+ "pointermove",
61
+ "pointerup"
62
+ ]) target.addEventListener(type, onPointer, listenerOptions);
63
+ target.addEventListener("pointerleave", onLeave, listenerOptions);
64
+ onCleanup(() => {
65
+ for (const type of [
66
+ "pointerdown",
67
+ "pointermove",
68
+ "pointerup"
69
+ ]) target.removeEventListener(type, onPointer);
70
+ target.removeEventListener("pointerleave", onLeave);
71
+ });
72
+ }, { immediate: true });
73
+ tryOnScopeDispose(() => stop.stop());
74
+ return {
75
+ state: shallowReadonly(state),
76
+ isInside: readonly(isInside)
77
+ };
78
+ }
79
+ /**
80
+ * Narrow a platform `pointerType` string to the closed {@link PointerKind} union.
81
+ *
82
+ * @param value Raw `PointerEvent.pointerType`.
83
+ * @returns The matching kind, or `null` for unknown/future device kinds.
84
+ */
85
+ function toPointerKind(value) {
86
+ return value === "mouse" || value === "touch" || value === "pen" ? value : null;
87
+ }
88
+ function isPointerEvent(event) {
89
+ return "pointerId" in event && "pointerType" in event;
90
+ }
91
+ function browserWindow() {
92
+ return typeof window !== "undefined" ? window : void 0;
93
+ }
94
+ //#endregion
95
+ export { toPointerKind, usePointer };
@@ -0,0 +1,55 @@
1
+ import { UseMediaQueryOptions } from "./media-query.mjs";
2
+ import { ComputedRef, Ref } from "vue";
3
+
4
+ //#region src/preferences.d.ts
5
+ /** Color scheme preference exposed by {@link usePreferredColorScheme}. */
6
+ type ColorSchemePreference = "dark" | "light" | "no-preference";
7
+ /** Contrast preference exposed by {@link usePreferredContrast}. */
8
+ type ContrastPreference = "more" | "less" | "custom" | "no-preference";
9
+ /** Options for the multi-valued preference composables. */
10
+ interface UsePreferenceOptions<Preference extends string> extends Omit<UseMediaQueryOptions, "ssrValue"> {
11
+ /**
12
+ * Preference exposed during server rendering and whenever no media-query
13
+ * capability exists.
14
+ *
15
+ * @default "no-preference"
16
+ */
17
+ readonly ssrPreference?: Preference;
18
+ }
19
+ /**
20
+ * Whether the user prefers a dark color scheme.
21
+ *
22
+ * Shares {@link useMediaQuery} semantics: `ssrValue` (default `false`) during
23
+ * server rendering and subscription cleanup with the owning scope.
24
+ *
25
+ * @param options Runtime capability and server fallback.
26
+ * @default options {}
27
+ * @returns Readonly ref for `(prefers-color-scheme: dark)`.
28
+ */
29
+ declare function usePreferredDark(options?: UseMediaQueryOptions): Readonly<Ref<boolean>>;
30
+ /**
31
+ * Reactive color scheme preference.
32
+ *
33
+ * @param options Runtime capability and server fallback.
34
+ * @default options {}
35
+ * @returns Computed closed preference.
36
+ */
37
+ declare function usePreferredColorScheme(options?: UsePreferenceOptions<ColorSchemePreference>): ComputedRef<ColorSchemePreference>;
38
+ /**
39
+ * Reactive contrast preference.
40
+ *
41
+ * @param options Runtime capability and server fallback.
42
+ * @default options {}
43
+ * @returns Computed closed preference.
44
+ */
45
+ declare function usePreferredContrast(options?: UsePreferenceOptions<ContrastPreference>): ComputedRef<ContrastPreference>;
46
+ /**
47
+ * Whether the user prefers reduced transparency.
48
+ *
49
+ * @param options Runtime capability and server fallback.
50
+ * @default options {}
51
+ * @returns Readonly ref for `(prefers-reduced-transparency: reduce)`.
52
+ */
53
+ declare function usePreferredReducedTransparency(options?: UseMediaQueryOptions): Readonly<Ref<boolean>>;
54
+ //#endregion
55
+ export { ColorSchemePreference, ContrastPreference, UsePreferenceOptions, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredReducedTransparency };
@@ -0,0 +1,63 @@
1
+ import { useMediaQuery } from "./media-query.mjs";
2
+ import { computed } from "vue";
3
+ //#region src/preferences.ts
4
+ /**
5
+ * Whether the user prefers a dark color scheme.
6
+ *
7
+ * Shares {@link useMediaQuery} semantics: `ssrValue` (default `false`) during
8
+ * server rendering and subscription cleanup with the owning scope.
9
+ *
10
+ * @param options Runtime capability and server fallback.
11
+ * @default options {}
12
+ * @returns Readonly ref for `(prefers-color-scheme: dark)`.
13
+ */
14
+ function usePreferredDark(options = {}) {
15
+ return useMediaQuery("(prefers-color-scheme: dark)", options);
16
+ }
17
+ /**
18
+ * Reactive color scheme preference.
19
+ *
20
+ * @param options Runtime capability and server fallback.
21
+ * @default options {}
22
+ * @returns Computed closed preference.
23
+ */
24
+ function usePreferredColorScheme(options = {}) {
25
+ const fallback = options.ssrPreference ?? "no-preference";
26
+ const query = (value) => useMediaQuery(`(prefers-color-scheme: ${value})`, withSsr(options, fallback === value));
27
+ const dark = query("dark");
28
+ const light = query("light");
29
+ return computed(() => dark.value ? "dark" : light.value ? "light" : "no-preference");
30
+ }
31
+ /**
32
+ * Reactive contrast preference.
33
+ *
34
+ * @param options Runtime capability and server fallback.
35
+ * @default options {}
36
+ * @returns Computed closed preference.
37
+ */
38
+ function usePreferredContrast(options = {}) {
39
+ const fallback = options.ssrPreference ?? "no-preference";
40
+ const query = (value) => useMediaQuery(`(prefers-contrast: ${value})`, withSsr(options, fallback === value));
41
+ const more = query("more");
42
+ const less = query("less");
43
+ const custom = query("custom");
44
+ return computed(() => more.value ? "more" : less.value ? "less" : custom.value ? "custom" : "no-preference");
45
+ }
46
+ /**
47
+ * Whether the user prefers reduced transparency.
48
+ *
49
+ * @param options Runtime capability and server fallback.
50
+ * @default options {}
51
+ * @returns Readonly ref for `(prefers-reduced-transparency: reduce)`.
52
+ */
53
+ function usePreferredReducedTransparency(options = {}) {
54
+ return useMediaQuery("(prefers-reduced-transparency: reduce)", options);
55
+ }
56
+ function withSsr(options, ssrValue) {
57
+ return options.host === void 0 ? { ssrValue } : {
58
+ ssrValue,
59
+ host: options.host
60
+ };
61
+ }
62
+ //#endregion
63
+ export { usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredReducedTransparency };
@@ -0,0 +1,43 @@
1
+ import { MaybeRefOrGetter, Ref } from "vue";
2
+
3
+ //#region src/preferred-languages.d.ts
4
+ /** Window-like capability observed by {@link usePreferredLanguages}. */
5
+ interface PreferredLanguagesHost extends EventTarget {
6
+ /** Navigator exposing the user's languages. */
7
+ readonly navigator: {
8
+ readonly languages: readonly string[];
9
+ readonly language?: string;
10
+ };
11
+ }
12
+ /** Options for {@link usePreferredLanguages}. */
13
+ interface UsePreferredLanguagesOptions {
14
+ /**
15
+ * Languages exposed during server rendering. Pass the request's
16
+ * `Accept-Language` list to keep hydration stable.
17
+ *
18
+ * @default ["en"]
19
+ */
20
+ readonly ssrLanguages?: readonly string[];
21
+ /**
22
+ * Reactive window capability for alternate runtimes and tests.
23
+ *
24
+ * @default globalThis.window when available
25
+ */
26
+ readonly host?: MaybeRefOrGetter<PreferredLanguagesHost | null | undefined>;
27
+ }
28
+ /**
29
+ * Track the user's preferred languages (`navigator.languages`).
30
+ *
31
+ * Updates on `languagechange`. The default host is gated on `window`, so
32
+ * Node's own `navigator` never leaks the server locale into the render;
33
+ * server renders expose `ssrLanguages`. Inside a component the languages are
34
+ * read after mounting, so hydration renders `ssrLanguages` first. The
35
+ * listener is removed with the owning reactive scope.
36
+ *
37
+ * @param options Server fallback and window capability.
38
+ * @default options {}
39
+ * @returns Readonly ref of BCP 47 language tags, most preferred first.
40
+ */
41
+ declare function usePreferredLanguages(options?: UsePreferredLanguagesOptions): Readonly<Ref<readonly string[]>>;
42
+ //#endregion
43
+ export { PreferredLanguagesHost, UsePreferredLanguagesOptions, usePreferredLanguages };
@@ -0,0 +1,44 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { hasInjectionContext, readonly, shallowRef, toValue, watch, watchPostEffect } from "vue";
3
+ //#region src/preferred-languages.ts
4
+ /**
5
+ * Track the user's preferred languages (`navigator.languages`).
6
+ *
7
+ * Updates on `languagechange`. The default host is gated on `window`, so
8
+ * Node's own `navigator` never leaks the server locale into the render;
9
+ * server renders expose `ssrLanguages`. Inside a component the languages are
10
+ * read after mounting, so hydration renders `ssrLanguages` first. The
11
+ * listener is removed with the owning reactive scope.
12
+ *
13
+ * @param options Server fallback and window capability.
14
+ * @default options {}
15
+ * @returns Readonly ref of BCP 47 language tags, most preferred first.
16
+ */
17
+ function usePreferredLanguages(options = {}) {
18
+ const fallback = options.ssrLanguages ?? ["en"];
19
+ const languages = shallowRef(fallback);
20
+ const hydrated = shallowRef(!hasInjectionContext());
21
+ if (!hydrated.value) watchPostEffect(() => {
22
+ hydrated.value = true;
23
+ });
24
+ const stop = watch(() => hydrated.value ? options.host === void 0 ? browserLanguagesHost() : toValue(options.host) : void 0, (host, _previous, onCleanup) => {
25
+ if (!host) {
26
+ languages.value = fallback;
27
+ return;
28
+ }
29
+ const update = () => {
30
+ const { languages: list, language } = host.navigator;
31
+ languages.value = list.length > 0 ? [...list] : language !== void 0 ? [language] : fallback;
32
+ };
33
+ update();
34
+ host.addEventListener("languagechange", update, { passive: true });
35
+ onCleanup(() => host.removeEventListener("languagechange", update));
36
+ }, { immediate: true });
37
+ tryOnScopeDispose(() => stop.stop());
38
+ return readonly(languages);
39
+ }
40
+ function browserLanguagesHost() {
41
+ return typeof window !== "undefined" ? window : void 0;
42
+ }
43
+ //#endregion
44
+ export { usePreferredLanguages };
@@ -0,0 +1,28 @@
1
+ import { ComputedRef, MaybeRefOrGetter } from "vue";
2
+
3
+ //#region src/reactify.d.ts
4
+ /** Parameter list of a reactified function: every argument may be a ref or getter. */
5
+ type ReactifiedArguments<Arguments extends readonly unknown[]> = { readonly [Index in keyof Arguments]: MaybeRefOrGetter<Arguments[Index]> };
6
+ /** Function returned by {@link reactify}. */
7
+ type Reactified<Arguments extends readonly unknown[], Result> = (...args: ReactifiedArguments<Arguments>) => ComputedRef<Result>;
8
+ /**
9
+ * Turn a plain function into one that accepts refs/getters and returns a
10
+ * computed result.
11
+ *
12
+ * Arity and parameter names are preserved; each parameter additionally
13
+ * accepts `Ref<T>` or `() => T`. The computed re-runs the original function
14
+ * whenever a reactive argument changes. Pure derived state: SSR-safe and
15
+ * nothing to dispose.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * const add = reactify((left: number, right: number) => left + right);
20
+ * const sum = add(count, 1); // ComputedRef<number>
21
+ * ```
22
+ *
23
+ * @param fn Plain function to lift.
24
+ * @returns The reactified function.
25
+ */
26
+ declare function reactify<Arguments extends readonly unknown[], Result>(fn: (...args: Arguments) => Result): Reactified<Arguments, Result>;
27
+ //#endregion
28
+ export { Reactified, ReactifiedArguments, reactify };
@@ -0,0 +1,7 @@
1
+ import { computed, toValue } from "vue";
2
+ //#region src/reactify.ts
3
+ function reactify(fn) {
4
+ return (...args) => computed(() => fn(...args.map((argument) => toValue(argument))));
5
+ }
6
+ //#endregion
7
+ export { reactify };
@@ -0,0 +1,47 @@
1
+ import { t as TimeoutScheduler } from "./timeout-scheduler-CI8RVLZs.mjs";
2
+ import { MaybeRefOrGetter, Ref } from "vue";
3
+
4
+ //#region src/ref-auto-reset.d.ts
5
+ /** Options for {@link refAutoReset}. */
6
+ interface RefAutoResetOptions {
7
+ /**
8
+ * Applies the reset timer when no browser `window` is available. When
9
+ * disabled, written values persist on the server (a render is a snapshot).
10
+ *
11
+ * @default false
12
+ */
13
+ readonly runOnServer?: boolean;
14
+ /**
15
+ * Owns the reset timer.
16
+ *
17
+ * @default globalThis timer functions
18
+ */
19
+ readonly scheduler?: TimeoutScheduler;
20
+ }
21
+ /**
22
+ * Writable ref that falls back to a default value `afterMs` milliseconds
23
+ * after each write.
24
+ *
25
+ * Typical for transient UI state such as "Copied!" labels. Every write
26
+ * restarts the timer; the default (itself possibly reactive) is read when the
27
+ * reset happens, and the ref reads the current default until the first write.
28
+ * The pending reset is cancelled when the owning reactive scope stops.
29
+ * Without a browser `window` (and without `runOnServer`) no timer starts.
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * const message = refAutoReset("", 2_000);
34
+ * message.value = "Copied!"; // back to "" after two seconds
35
+ * ```
36
+ *
37
+ * @param defaultValue Reactive value restored after the delay.
38
+ * @param afterMs Reactive delay in milliseconds, finite and at least zero.
39
+ * @param options Server and scheduler policy.
40
+ * @default options {}
41
+ * @throws `RangeError` tagged `VIZE_COMPOSE_REF_AUTO_RESET_INVALID_DELAY` for
42
+ * invalid delays, synchronously at creation and on every write.
43
+ * @returns A writable ref.
44
+ */
45
+ declare function refAutoReset<Value>(defaultValue: MaybeRefOrGetter<Value>, afterMs: MaybeRefOrGetter<number>, options?: RefAutoResetOptions): Ref<Value>;
46
+ //#endregion
47
+ export { RefAutoResetOptions, refAutoReset };
@@ -0,0 +1,70 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { customRef, toValue } from "vue";
3
+ //#region src/ref-auto-reset.ts
4
+ const defaultScheduler = {
5
+ setTimeout: (callback, delayMs) => globalThis.setTimeout(callback, delayMs),
6
+ clearTimeout: (handle) => {
7
+ globalThis.clearTimeout(handle);
8
+ }
9
+ };
10
+ function resolveResetMs(value) {
11
+ if (!Number.isFinite(value) || value < 0) throw new RangeError(`[VIZE_COMPOSE_REF_AUTO_RESET_INVALID_DELAY] afterMs must be finite and at least zero; received ${String(value)}`);
12
+ return Math.trunc(value);
13
+ }
14
+ /**
15
+ * Writable ref that falls back to a default value `afterMs` milliseconds
16
+ * after each write.
17
+ *
18
+ * Typical for transient UI state such as "Copied!" labels. Every write
19
+ * restarts the timer; the default (itself possibly reactive) is read when the
20
+ * reset happens, and the ref reads the current default until the first write.
21
+ * The pending reset is cancelled when the owning reactive scope stops.
22
+ * Without a browser `window` (and without `runOnServer`) no timer starts.
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * const message = refAutoReset("", 2_000);
27
+ * message.value = "Copied!"; // back to "" after two seconds
28
+ * ```
29
+ *
30
+ * @param defaultValue Reactive value restored after the delay.
31
+ * @param afterMs Reactive delay in milliseconds, finite and at least zero.
32
+ * @param options Server and scheduler policy.
33
+ * @default options {}
34
+ * @throws `RangeError` tagged `VIZE_COMPOSE_REF_AUTO_RESET_INVALID_DELAY` for
35
+ * invalid delays, synchronously at creation and on every write.
36
+ * @returns A writable ref.
37
+ */
38
+ function refAutoReset(defaultValue, afterMs, options = {}) {
39
+ const scheduler = options.scheduler ?? defaultScheduler;
40
+ resolveResetMs(toValue(afterMs));
41
+ let handle;
42
+ let written = false;
43
+ let current = toValue(defaultValue);
44
+ const cancel = () => {
45
+ if (handle !== void 0) scheduler.clearTimeout(handle);
46
+ handle = void 0;
47
+ };
48
+ tryOnScopeDispose(cancel);
49
+ return customRef((track, trigger) => ({
50
+ get: () => {
51
+ track();
52
+ return written ? current : toValue(defaultValue);
53
+ },
54
+ set: (next) => {
55
+ const delay = resolveResetMs(toValue(afterMs));
56
+ current = next;
57
+ written = true;
58
+ trigger();
59
+ cancel();
60
+ if (typeof window === "undefined" && !(options.runOnServer ?? false)) return;
61
+ handle = scheduler.setTimeout(() => {
62
+ handle = void 0;
63
+ written = false;
64
+ trigger();
65
+ }, delay);
66
+ }
67
+ }));
68
+ }
69
+ //#endregion
70
+ export { refAutoReset };