@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,34 @@
1
+ import { effectScope } from "vue";
2
+ //#region src/create-global-state.ts
3
+ /**
4
+ * Lift a state factory into application-wide state shared by every caller.
5
+ *
6
+ * The factory runs once, lazily on the first call, inside a detached effect
7
+ * scope so its watchers and computeds outlive any component; every later
8
+ * call returns the same state. Because the state is module-level, it is
9
+ * shared across all server requests: on the server, keep per-request state
10
+ * in `provide`/`createInjectionState` instead, or reset it per request.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const useSession = createGlobalState(() => ({ user: shallowRef<User | null>(null) }));
15
+ * useSession().user.value = currentUser;
16
+ * ```
17
+ *
18
+ * @param factory Creates the state; may use any composable.
19
+ * @throws `Error` tagged `VIZE_COMPOSE_GLOBAL_STATE_INACTIVE_SCOPE` if the
20
+ * private scope cannot run (never expected in practice).
21
+ * @returns Accessor returning the shared state.
22
+ */
23
+ function createGlobalState(factory) {
24
+ let created;
25
+ return () => {
26
+ if (created === void 0) {
27
+ created = effectScope(true).run(() => ({ state: factory() }));
28
+ if (created === void 0) throw new Error("[VIZE_COMPOSE_GLOBAL_STATE_INACTIVE_SCOPE] the state scope did not run");
29
+ }
30
+ return created.state;
31
+ };
32
+ }
33
+ //#endregion
34
+ export { createGlobalState };
@@ -0,0 +1,51 @@
1
+ import { InjectionKey } from "vue";
2
+
3
+ //#region src/create-injection-state.d.ts
4
+ /** Options for {@link createInjectionState}. */
5
+ interface CreateInjectionStateOptions<State> {
6
+ /**
7
+ * Key used for `provide`/`inject`.
8
+ *
9
+ * @default a fresh unique symbol
10
+ */
11
+ readonly injectionKey?: InjectionKey<State>;
12
+ /**
13
+ * Value injected when no ancestor provides the state; also narrows the
14
+ * injector's return type to `State`.
15
+ *
16
+ * @default undefined
17
+ */
18
+ readonly defaultValue?: State;
19
+ }
20
+ /** Provider, injector, and key returned by {@link createInjectionState}. */
21
+ type InjectionState<Arguments extends readonly unknown[], State, Injected> = readonly [useProvidingState: (...args: Arguments) => State, useInjectedState: () => Injected, injectionKey: InjectionKey<State>];
22
+ /**
23
+ * Create a typed provide/inject pair around a composable, for component
24
+ * subtrees that share request-local state.
25
+ *
26
+ * The provider runs the composable with its arguments, provides the result
27
+ * under a typed `InjectionKey`, and returns it. The injector returns the
28
+ * nearest provided state, or `defaultValue`, or `undefined` (reflected in
29
+ * its return type). State lives in the component tree, so unlike module
30
+ * globals it is naturally per request during SSR. Both must be called
31
+ * during `setup` (or inside `app.runWithContext`).
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * const [useProvideCounter, useCounter] = createInjectionState((initial: number) => {
36
+ * const count = ref(initial);
37
+ * return { count, increment: () => count.value++ };
38
+ * });
39
+ * ```
40
+ *
41
+ * @param composable Creates the state in the providing component.
42
+ * @param options Custom key and default value.
43
+ * @default options {}
44
+ * @returns `[useProvidingState, useInjectedState, injectionKey]`.
45
+ */
46
+ declare function createInjectionState<Arguments extends readonly unknown[], State>(composable: (...args: Arguments) => State, options: CreateInjectionStateOptions<State> & {
47
+ readonly defaultValue: State;
48
+ }): InjectionState<Arguments, State, State>;
49
+ declare function createInjectionState<Arguments extends readonly unknown[], State>(composable: (...args: Arguments) => State, options?: CreateInjectionStateOptions<State>): InjectionState<Arguments, State, State | undefined>;
50
+ //#endregion
51
+ export { CreateInjectionStateOptions, InjectionState, createInjectionState };
@@ -0,0 +1,19 @@
1
+ import { inject, provide } from "vue";
2
+ //#region src/create-injection-state.ts
3
+ function createInjectionState(composable, options = {}) {
4
+ const generatedKey = Symbol("InjectionState");
5
+ const key = options.injectionKey ?? generatedKey;
6
+ const useProvidingState = (...args) => {
7
+ const state = composable(...args);
8
+ provide(key, state);
9
+ return state;
10
+ };
11
+ const useInjectedState = () => options.defaultValue === void 0 ? inject(key) : inject(key, options.defaultValue);
12
+ return [
13
+ useProvidingState,
14
+ useInjectedState,
15
+ key
16
+ ];
17
+ }
18
+ //#endregion
19
+ export { createInjectionState };
@@ -0,0 +1,38 @@
1
+ //#region src/create-shared-composable.d.ts
2
+ /** Options for {@link createSharedComposable}. */
3
+ interface CreateSharedComposableOptions {
4
+ /**
5
+ * Share one instance across callers on the server too. Disabled by
6
+ * default because module-level sharing leaks state between requests;
7
+ * without a browser `window` every call then gets its own instance.
8
+ *
9
+ * @default false
10
+ */
11
+ readonly shareOnServer?: boolean;
12
+ }
13
+ /**
14
+ * Share one instance of a composable between all simultaneously mounted
15
+ * callers, reference-counted by their effect scopes.
16
+ *
17
+ * The first caller creates the instance inside a detached scope using its
18
+ * arguments (later callers' arguments are ignored while it lives). When the
19
+ * last subscribing scope stops, the instance's scope is stopped and the next
20
+ * call starts fresh. Calls outside any effect scope subscribe permanently.
21
+ * On the server every call gets its own instance unless `shareOnServer` is
22
+ * set, so request state never leaks.
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * const useSharedMouse = createSharedComposable(useMouse);
27
+ * ```
28
+ *
29
+ * @param composable Composable to share.
30
+ * @param options Server sharing policy.
31
+ * @default options {}
32
+ * @throws `Error` tagged `VIZE_COMPOSE_SHARED_COMPOSABLE_INACTIVE_SCOPE` if
33
+ * the private scope cannot run (never expected in practice).
34
+ * @returns A composable with the same signature that shares its result.
35
+ */
36
+ declare function createSharedComposable<Arguments extends readonly unknown[], Result>(composable: (...args: Arguments) => Result, options?: CreateSharedComposableOptions): (...args: Arguments) => Result;
37
+ //#endregion
38
+ export { CreateSharedComposableOptions, createSharedComposable };
@@ -0,0 +1,54 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { effectScope } from "vue";
3
+ //#region src/create-shared-composable.ts
4
+ /**
5
+ * Share one instance of a composable between all simultaneously mounted
6
+ * callers, reference-counted by their effect scopes.
7
+ *
8
+ * The first caller creates the instance inside a detached scope using its
9
+ * arguments (later callers' arguments are ignored while it lives). When the
10
+ * last subscribing scope stops, the instance's scope is stopped and the next
11
+ * call starts fresh. Calls outside any effect scope subscribe permanently.
12
+ * On the server every call gets its own instance unless `shareOnServer` is
13
+ * set, so request state never leaks.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * const useSharedMouse = createSharedComposable(useMouse);
18
+ * ```
19
+ *
20
+ * @param composable Composable to share.
21
+ * @param options Server sharing policy.
22
+ * @default options {}
23
+ * @throws `Error` tagged `VIZE_COMPOSE_SHARED_COMPOSABLE_INACTIVE_SCOPE` if
24
+ * the private scope cannot run (never expected in practice).
25
+ * @returns A composable with the same signature that shares its result.
26
+ */
27
+ function createSharedComposable(composable, options = {}) {
28
+ let subscribers = 0;
29
+ let shared;
30
+ const release = () => {
31
+ subscribers -= 1;
32
+ if (subscribers > 0 || shared === void 0) return;
33
+ shared.scope.stop();
34
+ shared = void 0;
35
+ };
36
+ return (...args) => {
37
+ if (typeof window === "undefined" && !(options.shareOnServer ?? false)) return composable(...args);
38
+ subscribers += 1;
39
+ if (shared === void 0) {
40
+ const scope = effectScope(true);
41
+ const result = scope.run(() => ({ value: composable(...args) }));
42
+ if (result === void 0) throw new Error("[VIZE_COMPOSE_SHARED_COMPOSABLE_INACTIVE_SCOPE] the shared scope did not run");
43
+ shared = {
44
+ result: result.value,
45
+ scope
46
+ };
47
+ }
48
+ const { result } = shared;
49
+ tryOnScopeDispose(release);
50
+ return result;
51
+ };
52
+ }
53
+ //#endregion
54
+ export { createSharedComposable };
@@ -0,0 +1,71 @@
1
+ import { MotionPermissionConstructor, MotionPermissionState } from "./device-orientation.mjs";
2
+ import { MaybeRefOrGetter, Ref, ShallowRef } from "vue";
3
+
4
+ //#region src/device-motion.d.ts
5
+ /** Window-like capability observed by {@link useDeviceMotion}. */
6
+ interface DeviceMotionHost extends EventTarget {
7
+ /** Constructor used to detect support and request permission. */
8
+ readonly DeviceMotionEvent?: MotionPermissionConstructor;
9
+ }
10
+ /** Acceleration along the device axes in m/s². */
11
+ interface MotionVector {
12
+ /** X axis (left to right). */
13
+ readonly x: number | null;
14
+ /** Y axis (bottom to top). */
15
+ readonly y: number | null;
16
+ /** Z axis (back to front). */
17
+ readonly z: number | null;
18
+ }
19
+ /** Rotation rate around the device axes in degrees per second. */
20
+ interface MotionRotationRate {
21
+ /** Around the Z axis. */
22
+ readonly alpha: number | null;
23
+ /** Around the X axis. */
24
+ readonly beta: number | null;
25
+ /** Around the Y axis. */
26
+ readonly gamma: number | null;
27
+ }
28
+ /** Options for {@link useDeviceMotion}. */
29
+ interface UseDeviceMotionOptions {
30
+ /**
31
+ * Reactive window capability for alternate runtimes and tests.
32
+ *
33
+ * @default globalThis.window when available
34
+ */
35
+ readonly host?: MaybeRefOrGetter<DeviceMotionHost | null | undefined>;
36
+ }
37
+ /** Reactive motion state returned by {@link useDeviceMotion}. */
38
+ interface DeviceMotionControls {
39
+ /** Whether the host exposes `DeviceMotionEvent`. `false` during server rendering. */
40
+ readonly isSupported: Readonly<Ref<boolean>>;
41
+ /** Acceleration without gravity; `null` before the first reading. */
42
+ readonly acceleration: Readonly<ShallowRef<MotionVector | null>>;
43
+ /** Acceleration including gravity; `null` before the first reading. */
44
+ readonly accelerationIncludingGravity: Readonly<ShallowRef<MotionVector | null>>;
45
+ /** Rotation rate; `null` before the first reading. */
46
+ readonly rotationRate: Readonly<ShallowRef<MotionRotationRate | null>>;
47
+ /** Sampling interval in milliseconds. */
48
+ readonly interval: Readonly<Ref<number>>;
49
+ /** Latest permission outcome; `"granted"` where no prompt exists. */
50
+ readonly permission: Readonly<Ref<MotionPermissionState>>;
51
+ /**
52
+ * Request sensor permission where the platform requires it.
53
+ *
54
+ * @returns The resulting permission state.
55
+ */
56
+ readonly requestPermission: () => Promise<MotionPermissionState>;
57
+ }
58
+ /**
59
+ * Track device acceleration and rotation rate.
60
+ *
61
+ * Readings are copied into plain snapshots. Server renders expose `null`
62
+ * readings and `isSupported: false`; the listener is removed with the owning
63
+ * reactive scope. Shares the permission model of `useDeviceOrientation`.
64
+ *
65
+ * @param options Window capability.
66
+ * @default options {}
67
+ * @returns Reactive readings, support/permission state, and a permission action.
68
+ */
69
+ declare function useDeviceMotion(options?: UseDeviceMotionOptions): DeviceMotionControls;
70
+ //#endregion
71
+ export { DeviceMotionControls, DeviceMotionHost, MotionRotationRate, MotionVector, UseDeviceMotionOptions, useDeviceMotion };
@@ -0,0 +1,75 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { requestMotionPermission } from "./device-orientation.mjs";
3
+ import { hasInjectionContext, onMounted, readonly, ref, shallowRef, toValue, watch } from "vue";
4
+ //#region src/device-motion.ts
5
+ /**
6
+ * Track device acceleration and rotation rate.
7
+ *
8
+ * Readings are copied into plain snapshots. Server renders expose `null`
9
+ * readings and `isSupported: false`; the listener is removed with the owning
10
+ * reactive scope. Shares the permission model of `useDeviceOrientation`.
11
+ *
12
+ * @param options Window capability.
13
+ * @default options {}
14
+ * @returns Reactive readings, support/permission state, and a permission action.
15
+ */
16
+ function useDeviceMotion(options = {}) {
17
+ const isSupported = ref(false);
18
+ const acceleration = shallowRef(null);
19
+ const accelerationIncludingGravity = shallowRef(null);
20
+ const rotationRate = shallowRef(null);
21
+ const interval = ref(0);
22
+ const permission = ref("prompt");
23
+ const mounted = shallowRef(!hasInjectionContext());
24
+ if (!mounted.value) onMounted(() => {
25
+ mounted.value = true;
26
+ });
27
+ const host = () => !mounted.value ? void 0 : options.host === void 0 ? browserMotionHost() : toValue(options.host);
28
+ const onMotion = (event) => {
29
+ if (!isMotionEvent(event)) return;
30
+ acceleration.value = vector(event.acceleration);
31
+ accelerationIncludingGravity.value = vector(event.accelerationIncludingGravity);
32
+ rotationRate.value = event.rotationRate ? {
33
+ alpha: event.rotationRate.alpha,
34
+ beta: event.rotationRate.beta,
35
+ gamma: event.rotationRate.gamma
36
+ } : null;
37
+ interval.value = event.interval;
38
+ };
39
+ const stop = watch(host, (current, _previous, onCleanup) => {
40
+ const constructor = current?.DeviceMotionEvent;
41
+ isSupported.value = constructor !== void 0;
42
+ if (!current || !constructor) return;
43
+ if (typeof constructor.requestPermission !== "function") permission.value = "granted";
44
+ current.addEventListener("devicemotion", onMotion, { passive: true });
45
+ onCleanup(() => current.removeEventListener("devicemotion", onMotion));
46
+ }, { immediate: true });
47
+ tryOnScopeDispose(() => stop.stop());
48
+ return {
49
+ isSupported: readonly(isSupported),
50
+ acceleration,
51
+ accelerationIncludingGravity,
52
+ rotationRate,
53
+ interval: readonly(interval),
54
+ permission: readonly(permission),
55
+ requestPermission: async () => {
56
+ permission.value = await requestMotionPermission(host()?.DeviceMotionEvent);
57
+ return permission.value;
58
+ }
59
+ };
60
+ }
61
+ function vector(value) {
62
+ return value ? {
63
+ x: value.x,
64
+ y: value.y,
65
+ z: value.z
66
+ } : null;
67
+ }
68
+ function isMotionEvent(event) {
69
+ return "accelerationIncludingGravity" in event && "interval" in event;
70
+ }
71
+ function browserMotionHost() {
72
+ return typeof window !== "undefined" ? window : void 0;
73
+ }
74
+ //#endregion
75
+ export { useDeviceMotion };
@@ -0,0 +1,82 @@
1
+ import { MaybeRefOrGetter, Ref } from "vue";
2
+
3
+ //#region src/device-orientation.d.ts
4
+ /** Permission outcome of the iOS-style motion/orientation permission prompt. */
5
+ type MotionPermissionState = "granted" | "denied" | "prompt";
6
+ /** Event constructor that may expose the iOS `requestPermission` static. */
7
+ interface MotionPermissionConstructor {
8
+ /** Constructor prototype; present on every platform event constructor. */
9
+ readonly prototype: object;
10
+ /** Ask the user for sensor access (Safari on iOS/iPadOS 13+). */
11
+ readonly requestPermission?: () => Promise<string>;
12
+ }
13
+ /** Window-like capability observed by {@link useDeviceOrientation}. */
14
+ interface DeviceOrientationHost extends EventTarget {
15
+ /** Constructor used to detect support and request permission. */
16
+ readonly DeviceOrientationEvent?: MotionPermissionConstructor;
17
+ }
18
+ /** Options for {@link useDeviceOrientation}. */
19
+ interface UseDeviceOrientationOptions {
20
+ /**
21
+ * Listen to `deviceorientationabsolute` (earth-frame) instead of
22
+ * `deviceorientation`.
23
+ *
24
+ * @default false
25
+ */
26
+ readonly absolute?: boolean;
27
+ /**
28
+ * Reactive window capability for alternate runtimes and tests.
29
+ *
30
+ * @default globalThis.window when available
31
+ */
32
+ readonly host?: MaybeRefOrGetter<DeviceOrientationHost | null | undefined>;
33
+ }
34
+ /** Reactive orientation state returned by {@link useDeviceOrientation}. */
35
+ interface DeviceOrientationControls {
36
+ /** Whether the host exposes `DeviceOrientationEvent`. `false` during server rendering. */
37
+ readonly isSupported: Readonly<Ref<boolean>>;
38
+ /** Whether the latest reading is relative to the earth frame. */
39
+ readonly isAbsolute: Readonly<Ref<boolean>>;
40
+ /** Rotation around the Z axis in degrees `[0, 360)`. */
41
+ readonly alpha: Readonly<Ref<number | null>>;
42
+ /** Rotation around the X axis in degrees `[-180, 180)`. */
43
+ readonly beta: Readonly<Ref<number | null>>;
44
+ /** Rotation around the Y axis in degrees `[-90, 90)`. */
45
+ readonly gamma: Readonly<Ref<number | null>>;
46
+ /** Latest permission outcome; `"granted"` where no prompt exists. */
47
+ readonly permission: Readonly<Ref<MotionPermissionState>>;
48
+ /**
49
+ * Request sensor permission where the platform requires it. Must be called
50
+ * from a user gesture on iOS.
51
+ *
52
+ * @returns The resulting permission state.
53
+ */
54
+ readonly requestPermission: () => Promise<MotionPermissionState>;
55
+ }
56
+ /**
57
+ * Track device orientation angles.
58
+ *
59
+ * Server renders expose `null` angles and `isSupported: false`. The listener
60
+ * follows the reactive host and is removed with the owning reactive scope.
61
+ * On platforms with a permission prompt, `permission` starts as `"prompt"`
62
+ * and readings arrive only after `requestPermission` resolves `"granted"`.
63
+ *
64
+ * @param options Frame selection and window capability.
65
+ * @default options {}
66
+ * @returns Reactive angles, support/permission state, and a permission action.
67
+ */
68
+ declare function useDeviceOrientation(options?: UseDeviceOrientationOptions): DeviceOrientationControls;
69
+ /**
70
+ * Request motion/orientation sensor permission from an event constructor.
71
+ *
72
+ * Normalizes the platform result to {@link MotionPermissionState}. Missing
73
+ * constructors resolve `"denied"`; constructors without a prompt resolve
74
+ * `"granted"`; unknown results resolve `"prompt"`. Rejections (for example
75
+ * when not called from a user gesture) resolve `"denied"` instead of throwing.
76
+ *
77
+ * @param constructor `DeviceOrientationEvent` or `DeviceMotionEvent`.
78
+ * @returns The normalized permission state.
79
+ */
80
+ declare function requestMotionPermission(constructor: MotionPermissionConstructor | undefined): Promise<MotionPermissionState>;
81
+ //#endregion
82
+ export { DeviceOrientationControls, DeviceOrientationHost, MotionPermissionConstructor, MotionPermissionState, UseDeviceOrientationOptions, requestMotionPermission, useDeviceOrientation };
@@ -0,0 +1,86 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { hasInjectionContext, onMounted, readonly, ref, shallowRef, toValue, watch } from "vue";
3
+ //#region src/device-orientation.ts
4
+ /**
5
+ * Track device orientation angles.
6
+ *
7
+ * Server renders expose `null` angles and `isSupported: false`. The listener
8
+ * follows the reactive host and is removed with the owning reactive scope.
9
+ * On platforms with a permission prompt, `permission` starts as `"prompt"`
10
+ * and readings arrive only after `requestPermission` resolves `"granted"`.
11
+ *
12
+ * @param options Frame selection and window capability.
13
+ * @default options {}
14
+ * @returns Reactive angles, support/permission state, and a permission action.
15
+ */
16
+ function useDeviceOrientation(options = {}) {
17
+ const isSupported = ref(false);
18
+ const isAbsolute = ref(false);
19
+ const alpha = ref(null);
20
+ const beta = ref(null);
21
+ const gamma = ref(null);
22
+ const permission = ref("prompt");
23
+ const mounted = shallowRef(!hasInjectionContext());
24
+ if (!mounted.value) onMounted(() => {
25
+ mounted.value = true;
26
+ });
27
+ const host = () => !mounted.value ? void 0 : options.host === void 0 ? browserOrientationHost() : toValue(options.host);
28
+ const eventName = options.absolute ? "deviceorientationabsolute" : "deviceorientation";
29
+ const onOrientation = (event) => {
30
+ if (!isOrientationEvent(event)) return;
31
+ isAbsolute.value = event.absolute;
32
+ alpha.value = event.alpha;
33
+ beta.value = event.beta;
34
+ gamma.value = event.gamma;
35
+ };
36
+ const stop = watch(host, (current, _previous, onCleanup) => {
37
+ const constructor = current?.DeviceOrientationEvent;
38
+ isSupported.value = constructor !== void 0;
39
+ if (!current || !constructor) return;
40
+ if (typeof constructor.requestPermission !== "function") permission.value = "granted";
41
+ current.addEventListener(eventName, onOrientation, { passive: true });
42
+ onCleanup(() => current.removeEventListener(eventName, onOrientation));
43
+ }, { immediate: true });
44
+ tryOnScopeDispose(() => stop.stop());
45
+ return {
46
+ isSupported: readonly(isSupported),
47
+ isAbsolute: readonly(isAbsolute),
48
+ alpha: readonly(alpha),
49
+ beta: readonly(beta),
50
+ gamma: readonly(gamma),
51
+ permission: readonly(permission),
52
+ requestPermission: async () => {
53
+ permission.value = await requestMotionPermission(host()?.DeviceOrientationEvent);
54
+ return permission.value;
55
+ }
56
+ };
57
+ }
58
+ /**
59
+ * Request motion/orientation sensor permission from an event constructor.
60
+ *
61
+ * Normalizes the platform result to {@link MotionPermissionState}. Missing
62
+ * constructors resolve `"denied"`; constructors without a prompt resolve
63
+ * `"granted"`; unknown results resolve `"prompt"`. Rejections (for example
64
+ * when not called from a user gesture) resolve `"denied"` instead of throwing.
65
+ *
66
+ * @param constructor `DeviceOrientationEvent` or `DeviceMotionEvent`.
67
+ * @returns The normalized permission state.
68
+ */
69
+ async function requestMotionPermission(constructor) {
70
+ if (!constructor) return "denied";
71
+ if (typeof constructor.requestPermission !== "function") return "granted";
72
+ try {
73
+ const result = await constructor.requestPermission();
74
+ return result === "granted" || result === "denied" ? result : "prompt";
75
+ } catch {
76
+ return "denied";
77
+ }
78
+ }
79
+ function isOrientationEvent(event) {
80
+ return "alpha" in event && "beta" in event && "gamma" in event;
81
+ }
82
+ function browserOrientationHost() {
83
+ return typeof window !== "undefined" ? window : void 0;
84
+ }
85
+ //#endregion
86
+ export { requestMotionPermission, useDeviceOrientation };
@@ -0,0 +1,45 @@
1
+ import { MediaQueryHost } from "./media-query.mjs";
2
+ import { MaybeRefOrGetter, Ref } from "vue";
3
+
4
+ //#region src/device-pixel-ratio.d.ts
5
+ /** Window-like capability observed by {@link useDevicePixelRatio}. */
6
+ interface DevicePixelRatioHost extends MediaQueryHost {
7
+ /** Ratio of physical to CSS pixels. */
8
+ readonly devicePixelRatio: number;
9
+ }
10
+ /** Options for {@link useDevicePixelRatio}. */
11
+ interface UseDevicePixelRatioOptions {
12
+ /**
13
+ * Ratio exposed during server rendering.
14
+ *
15
+ * @default 1
16
+ */
17
+ readonly ssrPixelRatio?: number;
18
+ /**
19
+ * Reactive window capability for alternate runtimes and tests.
20
+ *
21
+ * @default globalThis.window when available
22
+ */
23
+ readonly host?: MaybeRefOrGetter<DevicePixelRatioHost | null | undefined>;
24
+ }
25
+ /** Reactive ratio returned by {@link useDevicePixelRatio}. */
26
+ interface DevicePixelRatioControls {
27
+ /** Current device pixel ratio. */
28
+ readonly pixelRatio: Readonly<Ref<number>>;
29
+ /** Whether a window capability is attached. `false` during server rendering. */
30
+ readonly isSupported: Readonly<Ref<boolean>>;
31
+ }
32
+ /**
33
+ * Track `window.devicePixelRatio` (zoom and moving between displays).
34
+ *
35
+ * Subscribes to a `(resolution: <ratio>dppx)` media query and re-subscribes
36
+ * with the new ratio after each change, which is the only change signal the
37
+ * platform offers. Server renders expose `ssrPixelRatio`.
38
+ *
39
+ * @param options Server fallback and window capability.
40
+ * @default options {}
41
+ * @returns Reactive ratio and support flag.
42
+ */
43
+ declare function useDevicePixelRatio(options?: UseDevicePixelRatioOptions): DevicePixelRatioControls;
44
+ //#endregion
45
+ export { DevicePixelRatioControls, DevicePixelRatioHost, UseDevicePixelRatioOptions, useDevicePixelRatio };
@@ -0,0 +1,50 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { hasInjectionContext, onMounted, readonly, ref, shallowRef, toValue, watch } from "vue";
3
+ //#region src/device-pixel-ratio.ts
4
+ /**
5
+ * Track `window.devicePixelRatio` (zoom and moving between displays).
6
+ *
7
+ * Subscribes to a `(resolution: <ratio>dppx)` media query and re-subscribes
8
+ * with the new ratio after each change, which is the only change signal the
9
+ * platform offers. Server renders expose `ssrPixelRatio`.
10
+ *
11
+ * @param options Server fallback and window capability.
12
+ * @default options {}
13
+ * @returns Reactive ratio and support flag.
14
+ */
15
+ function useDevicePixelRatio(options = {}) {
16
+ const fallback = options.ssrPixelRatio ?? 1;
17
+ const pixelRatio = ref(fallback);
18
+ const isSupported = ref(false);
19
+ const mounted = shallowRef(!hasInjectionContext());
20
+ if (!mounted.value) onMounted(() => {
21
+ mounted.value = true;
22
+ });
23
+ const stop = watch(() => !mounted.value ? void 0 : options.host === void 0 ? browserPixelRatioHost() : toValue(options.host), (host, _previous, onCleanup) => {
24
+ isSupported.value = Boolean(host);
25
+ if (!host) {
26
+ pixelRatio.value = fallback;
27
+ return;
28
+ }
29
+ let release = () => void 0;
30
+ const subscribe = () => {
31
+ release();
32
+ pixelRatio.value = host.devicePixelRatio;
33
+ const media = host.matchMedia(`(resolution: ${host.devicePixelRatio}dppx)`);
34
+ media.addEventListener("change", subscribe, { once: true });
35
+ release = () => media.removeEventListener("change", subscribe);
36
+ };
37
+ subscribe();
38
+ onCleanup(() => release());
39
+ }, { immediate: true });
40
+ tryOnScopeDispose(() => stop.stop());
41
+ return {
42
+ pixelRatio: readonly(pixelRatio),
43
+ isSupported: readonly(isSupported)
44
+ };
45
+ }
46
+ function browserPixelRatioHost() {
47
+ return typeof window !== "undefined" && typeof window.matchMedia === "function" ? window : void 0;
48
+ }
49
+ //#endregion
50
+ export { useDevicePixelRatio };
@@ -1,4 +1,4 @@
1
- import { computed, readonly, ref, toValue, watchEffect } from "vue";
1
+ import { computed, hasInjectionContext, onMounted, readonly, ref, shallowRef, toValue, watchEffect } from "vue";
2
2
  //#region src/document-visibility.ts
3
3
  /**
4
4
  * Observe document visibility without touching browser globals during module evaluation.
@@ -18,8 +18,12 @@ function useDocumentVisibility(options = {}) {
18
18
  const fallback = options.ssrState ?? "visible";
19
19
  const state = ref(fallback);
20
20
  const supported = ref(false);
21
+ const mounted = shallowRef(!hasInjectionContext());
22
+ if (!mounted.value) onMounted(() => {
23
+ mounted.value = true;
24
+ });
21
25
  watchEffect((onCleanup) => {
22
- const host = options.host === void 0 ? browserDocumentVisibilityHost() : toValue(options.host);
26
+ const host = !mounted.value ? void 0 : options.host === void 0 ? browserDocumentVisibilityHost() : toValue(options.host);
23
27
  if (!host) {
24
28
  supported.value = false;
25
29
  state.value = fallback;