@vizejs/composable 0.426.3 → 0.428.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (544) hide show
  1. package/dist/abort-signal.d.mts +1 -1
  2. package/dist/active-element.d.mts +37 -0
  3. package/dist/active-element.mjs +56 -0
  4. package/dist/animate.d.mts +114 -0
  5. package/dist/animate.mjs +157 -0
  6. package/dist/battery.d.mts +61 -0
  7. package/dist/battery.mjs +90 -0
  8. package/dist/breakpoints.d.mts +82 -0
  9. package/dist/breakpoints.mjs +91 -0
  10. package/dist/catalog-BeTXFKxF.d.mts +4188 -0
  11. package/dist/catalog-r4Z5nptX.mjs +5144 -0
  12. package/dist/catalog.d.mts +1 -1
  13. package/dist/catalog.mjs +1 -1
  14. package/dist/color-mode.d.mts +131 -0
  15. package/dist/color-mode.mjs +133 -0
  16. package/dist/computed-async.d.mts +63 -0
  17. package/dist/computed-async.mjs +43 -0
  18. package/dist/computed-with-control.d.mts +44 -0
  19. package/dist/computed-with-control.mjs +54 -0
  20. package/dist/create-event-hook.d.mts +77 -0
  21. package/dist/create-event-hook.mjs +66 -0
  22. package/dist/create-global-state.d.mts +24 -0
  23. package/dist/create-global-state.mjs +34 -0
  24. package/dist/create-injection-state.d.mts +51 -0
  25. package/dist/create-injection-state.mjs +19 -0
  26. package/dist/create-shared-composable.d.mts +38 -0
  27. package/dist/create-shared-composable.mjs +54 -0
  28. package/dist/device-motion.d.mts +71 -0
  29. package/dist/device-motion.mjs +75 -0
  30. package/dist/device-orientation.d.mts +82 -0
  31. package/dist/device-orientation.mjs +86 -0
  32. package/dist/device-pixel-ratio.d.mts +45 -0
  33. package/dist/device-pixel-ratio.mjs +50 -0
  34. package/dist/document-visibility.mjs +6 -2
  35. package/dist/draggable.d.mts +121 -0
  36. package/dist/draggable.mjs +153 -0
  37. package/dist/element-bounding.d.mts +87 -0
  38. package/dist/element-bounding.mjs +95 -0
  39. package/dist/element-by-point.d.mts +70 -0
  40. package/dist/element-by-point.mjs +69 -0
  41. package/dist/element-hover.d.mts +42 -0
  42. package/dist/element-hover.mjs +70 -0
  43. package/dist/element-ref.d.mts +34 -0
  44. package/dist/element-ref.mjs +23 -0
  45. package/dist/element-target-Crpxl4D9.d.mts +60 -0
  46. package/dist/element-target.d.mts +2 -0
  47. package/dist/element-target.mjs +58 -0
  48. package/dist/event-listener.mjs +7 -3
  49. package/dist/focus.d.mts +69 -0
  50. package/dist/focus.mjs +124 -0
  51. package/dist/fps.d.mts +59 -0
  52. package/dist/fps.mjs +64 -0
  53. package/dist/geolocation.d.mts +98 -0
  54. package/dist/geolocation.mjs +86 -0
  55. package/dist/i18n.d.mts +237 -0
  56. package/dist/i18n.mjs +215 -0
  57. package/dist/icu-message.d.mts +235 -0
  58. package/dist/icu-message.mjs +343 -0
  59. package/dist/idle.d.mts +79 -0
  60. package/dist/idle.mjs +90 -0
  61. package/dist/index.d.mts +172 -6
  62. package/dist/index.mjs +173 -7
  63. package/dist/infinite-scroll.d.mts +56 -0
  64. package/dist/infinite-scroll.mjs +72 -0
  65. package/dist/intersection-observer.d.mts +122 -0
  66. package/dist/intersection-observer.mjs +117 -0
  67. package/dist/magic-keys.d.mts +121 -0
  68. package/dist/magic-keys.mjs +163 -0
  69. package/dist/math.d.mts +96 -0
  70. package/dist/math.mjs +84 -0
  71. package/dist/media-query.d.mts +3 -1
  72. package/dist/media-query.mjs +5 -3
  73. package/dist/mouse-in-element.d.mts +49 -0
  74. package/dist/mouse-in-element.mjs +66 -0
  75. package/dist/mouse.d.mts +77 -0
  76. package/dist/mouse.mjs +100 -0
  77. package/dist/mutation-observer.d.mts +98 -0
  78. package/dist/mutation-observer.mjs +69 -0
  79. package/dist/network.d.mts +96 -0
  80. package/dist/network.mjs +117 -0
  81. package/dist/on-click-outside.d.mts +69 -0
  82. package/dist/on-click-outside.mjs +115 -0
  83. package/dist/on-key-stroke.d.mts +71 -0
  84. package/dist/on-key-stroke.mjs +79 -0
  85. package/dist/on-long-press.d.mts +82 -0
  86. package/dist/on-long-press.mjs +105 -0
  87. package/dist/on-start-typing.d.mts +44 -0
  88. package/dist/on-start-typing.mjs +61 -0
  89. package/dist/page-leave.d.mts +26 -0
  90. package/dist/page-leave.mjs +40 -0
  91. package/dist/parent-element.d.mts +16 -0
  92. package/dist/parent-element.mjs +27 -0
  93. package/dist/pinch.d.mts +73 -0
  94. package/dist/pinch.mjs +138 -0
  95. package/dist/pointer-lock.d.mts +79 -0
  96. package/dist/pointer-lock.mjs +126 -0
  97. package/dist/pointer.d.mts +78 -0
  98. package/dist/pointer.mjs +95 -0
  99. package/dist/preferences.d.mts +55 -0
  100. package/dist/preferences.mjs +63 -0
  101. package/dist/preferred-languages.d.mts +43 -0
  102. package/dist/preferred-languages.mjs +44 -0
  103. package/dist/reactify.d.mts +28 -0
  104. package/dist/reactify.mjs +7 -0
  105. package/dist/ref-auto-reset.d.mts +47 -0
  106. package/dist/ref-auto-reset.mjs +70 -0
  107. package/dist/ref-debounced.d.mts +29 -0
  108. package/dist/ref-debounced.mjs +29 -0
  109. package/dist/ref-default.d.mts +27 -0
  110. package/dist/ref-default.mjs +33 -0
  111. package/dist/resize-observer.d.mts +96 -0
  112. package/dist/resize-observer.mjs +111 -0
  113. package/dist/resolver.d.mts +124 -0
  114. package/dist/resolver.mjs +138 -0
  115. package/dist/retry-async.d.mts +2 -2
  116. package/dist/retry-delay-DYsdq4SE.d.mts +73 -0
  117. package/dist/retry-delay.d.mts +1 -72
  118. package/dist/screen-orientation.d.mts +77 -0
  119. package/dist/screen-orientation.mjs +74 -0
  120. package/dist/scroll-lock.d.mts +37 -0
  121. package/dist/scroll-lock.mjs +50 -0
  122. package/dist/scroll.d.mts +158 -0
  123. package/dist/scroll.mjs +172 -0
  124. package/dist/standard-schema-DmNgFVK5.d.mts +107 -0
  125. package/dist/standard-schema.d.mts +2 -0
  126. package/dist/standard-schema.mjs +60 -0
  127. package/dist/swipe.d.mts +125 -0
  128. package/dist/swipe.mjs +225 -0
  129. package/dist/sync-ref.d.mts +80 -0
  130. package/dist/sync-ref.mjs +43 -0
  131. package/dist/text-selection.d.mts +46 -0
  132. package/dist/text-selection.mjs +62 -0
  133. package/dist/textarea-autosize.d.mts +58 -0
  134. package/dist/textarea-autosize.mjs +54 -0
  135. package/dist/timeout-scheduler-CI8RVLZs.d.mts +18 -0
  136. package/dist/timeout-scheduler.d.mts +1 -17
  137. package/dist/to-reactive.d.mts +26 -0
  138. package/dist/to-reactive.mjs +46 -0
  139. package/dist/transition.d.mts +125 -0
  140. package/dist/transition.mjs +266 -0
  141. package/dist/until.d.mts +177 -0
  142. package/dist/until.mjs +111 -0
  143. package/dist/use-array.d.mts +112 -0
  144. package/dist/use-array.mjs +90 -0
  145. package/dist/use-async-queue.d.mts +109 -0
  146. package/dist/use-async-queue.mjs +96 -0
  147. package/dist/use-async-state.d.mts +86 -0
  148. package/dist/use-async-state.mjs +41 -0
  149. package/dist/use-barcode-detector.d.mts +159 -0
  150. package/dist/use-barcode-detector.mjs +143 -0
  151. package/dist/use-bluetooth.d.mts +164 -0
  152. package/dist/use-bluetooth.mjs +183 -0
  153. package/dist/use-broadcast-channel.d.mts +115 -0
  154. package/dist/use-broadcast-channel.mjs +121 -0
  155. package/dist/use-builtin-ai.d.mts +342 -0
  156. package/dist/use-builtin-ai.mjs +261 -0
  157. package/dist/use-clipboard.d.mts +169 -0
  158. package/dist/use-clipboard.mjs +226 -0
  159. package/dist/use-compression-stream.d.mts +173 -0
  160. package/dist/use-compression-stream.mjs +166 -0
  161. package/dist/use-confirm-dialog.d.mts +70 -0
  162. package/dist/use-confirm-dialog.mjs +57 -0
  163. package/dist/use-contact-picker.d.mts +117 -0
  164. package/dist/use-contact-picker.mjs +103 -0
  165. package/dist/use-cookie.d.mts +196 -0
  166. package/dist/use-cookie.mjs +259 -0
  167. package/dist/use-countdown.d.mts +85 -0
  168. package/dist/use-countdown.mjs +74 -0
  169. package/dist/use-css-var.d.mts +96 -0
  170. package/dist/use-css-var.mjs +104 -0
  171. package/dist/use-cycle-list.d.mts +76 -0
  172. package/dist/use-cycle-list.mjs +39 -0
  173. package/dist/use-date-format.d.mts +103 -0
  174. package/dist/use-date-format.mjs +147 -0
  175. package/dist/use-date-time-format.d.mts +75 -0
  176. package/dist/use-date-time-format.mjs +53 -0
  177. package/dist/use-debounced.d.mts +1 -1
  178. package/dist/use-display-media.d.mts +62 -0
  179. package/dist/use-display-media.mjs +46 -0
  180. package/dist/use-display-names.d.mts +75 -0
  181. package/dist/use-display-names.mjs +52 -0
  182. package/dist/use-document-title.d.mts +88 -0
  183. package/dist/use-document-title.mjs +100 -0
  184. package/dist/use-drop-zone.d.mts +128 -0
  185. package/dist/use-drop-zone.mjs +154 -0
  186. package/dist/use-event-source.d.mts +184 -0
  187. package/dist/use-event-source.mjs +226 -0
  188. package/dist/use-eye-dropper.d.mts +79 -0
  189. package/dist/use-eye-dropper.mjs +68 -0
  190. package/dist/use-favicon.d.mts +78 -0
  191. package/dist/use-favicon.mjs +68 -0
  192. package/dist/use-fetch.d.mts +230 -0
  193. package/dist/use-fetch.mjs +263 -0
  194. package/dist/use-field.d.mts +107 -0
  195. package/dist/use-field.mjs +117 -0
  196. package/dist/use-file-dialog.d.mts +139 -0
  197. package/dist/use-file-dialog.mjs +101 -0
  198. package/dist/use-file-system-access.d.mts +184 -0
  199. package/dist/use-file-system-access.mjs +151 -0
  200. package/dist/use-form-field-props.d.mts +235 -0
  201. package/dist/use-form-field-props.mjs +164 -0
  202. package/dist/use-form.d.mts +324 -0
  203. package/dist/use-form.mjs +482 -0
  204. package/dist/use-fullscreen.d.mts +104 -0
  205. package/dist/use-fullscreen.mjs +95 -0
  206. package/dist/use-gamepad.d.mts +242 -0
  207. package/dist/use-gamepad.mjs +218 -0
  208. package/dist/use-hid.d.mts +160 -0
  209. package/dist/use-hid.mjs +156 -0
  210. package/dist/use-id-generator.d.mts +44 -0
  211. package/dist/use-id-generator.mjs +38 -0
  212. package/dist/use-image.d.mts +125 -0
  213. package/dist/use-image.mjs +109 -0
  214. package/dist/use-indexed-db.d.mts +207 -0
  215. package/dist/use-indexed-db.mjs +251 -0
  216. package/dist/use-interval-BA55gTHT.d.mts +140 -0
  217. package/dist/use-interval.d.mts +2 -0
  218. package/dist/use-interval.mjs +100 -0
  219. package/dist/use-list-format.d.mts +60 -0
  220. package/dist/use-list-format.mjs +40 -0
  221. package/dist/use-machine.d.mts +90 -0
  222. package/dist/use-machine.mjs +78 -0
  223. package/dist/use-map.d.mts +90 -0
  224. package/dist/use-map.mjs +70 -0
  225. package/dist/use-media-controls.d.mts +198 -0
  226. package/dist/use-media-controls.mjs +264 -0
  227. package/dist/use-memoize.d.mts +73 -0
  228. package/dist/use-memoize.mjs +28 -0
  229. package/dist/use-mounted.d.mts +24 -0
  230. package/dist/use-mounted.mjs +29 -0
  231. package/dist/use-navigation-api.d.mts +360 -0
  232. package/dist/use-navigation-api.mjs +231 -0
  233. package/dist/use-notification.d.mts +139 -0
  234. package/dist/use-notification.mjs +131 -0
  235. package/dist/use-now.d.mts +137 -0
  236. package/dist/use-now.mjs +44 -0
  237. package/dist/use-number-format.d.mts +73 -0
  238. package/dist/use-number-format.mjs +58 -0
  239. package/dist/use-object-url.d.mts +47 -0
  240. package/dist/use-object-url.mjs +54 -0
  241. package/dist/use-offset-pagination.d.mts +91 -0
  242. package/dist/use-offset-pagination.mjs +80 -0
  243. package/dist/use-payment-request.d.mts +239 -0
  244. package/dist/use-payment-request.mjs +206 -0
  245. package/dist/use-performance-observer.d.mts +285 -0
  246. package/dist/use-performance-observer.mjs +132 -0
  247. package/dist/use-permission.d.mts +99 -0
  248. package/dist/use-permission.mjs +92 -0
  249. package/dist/use-plural-rules.d.mts +79 -0
  250. package/dist/use-plural-rules.mjs +59 -0
  251. package/dist/use-push-subscription.d.mts +154 -0
  252. package/dist/use-push-subscription.mjs +146 -0
  253. package/dist/use-queue.d.mts +89 -0
  254. package/dist/use-queue.mjs +116 -0
  255. package/dist/use-raf-fn.d.mts +87 -0
  256. package/dist/use-raf-fn.mjs +99 -0
  257. package/dist/use-relative-time-format.d.mts +111 -0
  258. package/dist/use-relative-time-format.mjs +119 -0
  259. package/dist/use-request-idle-callback.d.mts +122 -0
  260. package/dist/use-request-idle-callback.mjs +147 -0
  261. package/dist/use-route-query.d.mts +149 -0
  262. package/dist/use-route-query.mjs +86 -0
  263. package/dist/use-scheduler-post-task.d.mts +156 -0
  264. package/dist/use-scheduler-post-task.mjs +182 -0
  265. package/dist/use-screen-details.d.mts +205 -0
  266. package/dist/use-screen-details.mjs +188 -0
  267. package/dist/use-script-tag.d.mts +162 -0
  268. package/dist/use-script-tag.mjs +171 -0
  269. package/dist/use-segmenter.d.mts +78 -0
  270. package/dist/use-segmenter.mjs +66 -0
  271. package/dist/use-selection.d.mts +125 -0
  272. package/dist/use-selection.mjs +77 -0
  273. package/dist/use-serial.d.mts +165 -0
  274. package/dist/use-serial.mjs +205 -0
  275. package/dist/use-service-worker.d.mts +177 -0
  276. package/dist/use-service-worker.mjs +178 -0
  277. package/dist/use-set.d.mts +96 -0
  278. package/dist/use-set.mjs +74 -0
  279. package/dist/use-share.d.mts +92 -0
  280. package/dist/use-share.mjs +99 -0
  281. package/dist/use-sorted-locale.d.mts +62 -0
  282. package/dist/use-sorted-locale.mjs +52 -0
  283. package/dist/use-sorted.d.mts +29 -0
  284. package/dist/use-sorted.mjs +14 -0
  285. package/dist/use-speech-recognition.d.mts +150 -0
  286. package/dist/use-speech-recognition.mjs +168 -0
  287. package/dist/use-speech-synthesis.d.mts +148 -0
  288. package/dist/use-speech-synthesis.mjs +152 -0
  289. package/dist/use-stack.d.mts +83 -0
  290. package/dist/use-stack.mjs +93 -0
  291. package/dist/use-stepper.d.mts +79 -0
  292. package/dist/use-stepper.mjs +52 -0
  293. package/dist/use-storage-estimate.d.mts +151 -0
  294. package/dist/use-storage-estimate.mjs +170 -0
  295. package/dist/use-storage.d.mts +214 -0
  296. package/dist/use-storage.mjs +415 -0
  297. package/dist/use-style-tag.d.mts +102 -0
  298. package/dist/use-style-tag.mjs +91 -0
  299. package/dist/use-supported.d.mts +23 -0
  300. package/dist/use-supported.mjs +26 -0
  301. package/dist/use-throttled.d.mts +1 -1
  302. package/dist/use-time-ago.d.mts +163 -0
  303. package/dist/use-time-ago.mjs +95 -0
  304. package/dist/use-timeout.d.mts +122 -0
  305. package/dist/use-timeout.mjs +65 -0
  306. package/dist/use-url-hash.d.mts +88 -0
  307. package/dist/use-url-hash.mjs +145 -0
  308. package/dist/use-url-search-params.d.mts +223 -0
  309. package/dist/use-url-search-params.mjs +295 -0
  310. package/dist/use-usb.d.mts +212 -0
  311. package/dist/use-usb.mjs +137 -0
  312. package/dist/use-user-activation.d.mts +83 -0
  313. package/dist/use-user-activation.mjs +113 -0
  314. package/dist/use-user-media.d.mts +194 -0
  315. package/dist/use-user-media.mjs +214 -0
  316. package/dist/use-v-model.d.mts +113 -0
  317. package/dist/use-v-model.mjs +40 -0
  318. package/dist/use-vibrate.d.mts +81 -0
  319. package/dist/use-vibrate.mjs +90 -0
  320. package/dist/use-view-transition.d.mts +106 -0
  321. package/dist/use-view-transition.mjs +101 -0
  322. package/dist/use-visual-viewport.d.mts +105 -0
  323. package/dist/use-visual-viewport.mjs +104 -0
  324. package/dist/use-wake-lock.d.mts +96 -0
  325. package/dist/use-wake-lock.mjs +106 -0
  326. package/dist/use-web-authn.d.mts +404 -0
  327. package/dist/use-web-authn.mjs +323 -0
  328. package/dist/use-web-locks.d.mts +180 -0
  329. package/dist/use-web-locks.mjs +136 -0
  330. package/dist/use-web-midi.d.mts +148 -0
  331. package/dist/use-web-midi.mjs +140 -0
  332. package/dist/use-web-vitals.d.mts +142 -0
  333. package/dist/use-web-vitals.mjs +248 -0
  334. package/dist/use-websocket.d.mts +218 -0
  335. package/dist/use-websocket.mjs +257 -0
  336. package/dist/use-worker-fn.d.mts +119 -0
  337. package/dist/use-worker-fn.mjs +162 -0
  338. package/dist/virtual-list.d.mts +105 -0
  339. package/dist/virtual-list.mjs +128 -0
  340. package/dist/watch-debounced.d.mts +84 -0
  341. package/dist/watch-debounced.mjs +84 -0
  342. package/dist/watch-ignorable.d.mts +47 -0
  343. package/dist/watch-ignorable.mjs +61 -0
  344. package/dist/watch-once.d.mts +29 -0
  345. package/dist/watch-once.mjs +10 -0
  346. package/dist/watch-pausable.d.mts +51 -0
  347. package/dist/watch-pausable.mjs +23 -0
  348. package/dist/watch-source.d.mts +29 -0
  349. package/dist/watch-source.mjs +1 -0
  350. package/dist/watch-throttled.d.mts +70 -0
  351. package/dist/watch-throttled.mjs +94 -0
  352. package/dist/whenever.d.mts +39 -0
  353. package/dist/whenever.mjs +41 -0
  354. package/dist/window-size.d.mts +87 -0
  355. package/dist/window-size.mjs +65 -0
  356. package/package.json +846 -5
  357. package/registry/files/abort-signal.ts +292 -0
  358. package/registry/files/active-element.ts +93 -0
  359. package/registry/files/animate.ts +322 -0
  360. package/registry/files/async-resource.ts +190 -0
  361. package/registry/files/battery.ts +166 -0
  362. package/registry/files/breakpoints.ts +166 -0
  363. package/registry/files/capability.ts +171 -0
  364. package/registry/files/color-mode.ts +274 -0
  365. package/registry/files/computed-async.ts +123 -0
  366. package/registry/files/computed-with-control.ts +80 -0
  367. package/registry/files/create-event-hook.ts +139 -0
  368. package/registry/files/create-global-state.ts +34 -0
  369. package/registry/files/create-injection-state.ts +75 -0
  370. package/registry/files/create-shared-composable.ts +74 -0
  371. package/registry/files/device-motion.ts +152 -0
  372. package/registry/files/device-orientation.ts +168 -0
  373. package/registry/files/device-pixel-ratio.ts +100 -0
  374. package/registry/files/disposal-scope.ts +201 -0
  375. package/registry/files/document-visibility.ts +152 -0
  376. package/registry/files/draggable.ts +273 -0
  377. package/registry/files/element-bounding.ts +175 -0
  378. package/registry/files/element-by-point.ts +149 -0
  379. package/registry/files/element-hover.ts +104 -0
  380. package/registry/files/element-ref.ts +58 -0
  381. package/registry/files/element-target.ts +99 -0
  382. package/registry/files/event-listener.ts +188 -0
  383. package/registry/files/focus.ts +181 -0
  384. package/registry/files/fps.ts +133 -0
  385. package/registry/files/geolocation.ts +214 -0
  386. package/registry/files/i18n.ts +524 -0
  387. package/registry/files/icu-message.ts +701 -0
  388. package/registry/files/idle.ts +176 -0
  389. package/registry/files/infinite-scroll.ts +135 -0
  390. package/registry/files/intersection-observer.ts +261 -0
  391. package/registry/files/locale.ts +148 -0
  392. package/registry/files/magic-keys.ts +298 -0
  393. package/registry/files/math.ts +175 -0
  394. package/registry/files/media-query.ts +102 -0
  395. package/registry/files/mouse-in-element.ts +107 -0
  396. package/registry/files/mouse.ts +167 -0
  397. package/registry/files/mutation-observer.ts +183 -0
  398. package/registry/files/network.ts +229 -0
  399. package/registry/files/on-click-outside.ts +178 -0
  400. package/registry/files/on-key-stroke.ts +135 -0
  401. package/registry/files/on-long-press.ts +188 -0
  402. package/registry/files/on-start-typing.ts +88 -0
  403. package/registry/files/page-leave.ts +57 -0
  404. package/registry/files/parent-element.ts +29 -0
  405. package/registry/files/pinch.ts +187 -0
  406. package/registry/files/pointer-lock.ts +232 -0
  407. package/registry/files/pointer.ts +153 -0
  408. package/registry/files/preferences.ts +98 -0
  409. package/registry/files/preferred-languages.ts +88 -0
  410. package/registry/files/reactify.ts +39 -0
  411. package/registry/files/ref-auto-reset.ts +102 -0
  412. package/registry/files/ref-debounced.ts +34 -0
  413. package/registry/files/ref-default.ts +35 -0
  414. package/registry/files/resize-observer.ts +220 -0
  415. package/registry/files/retry-async.ts +261 -0
  416. package/registry/files/retry-delay.ts +132 -0
  417. package/registry/files/scope.ts +21 -0
  418. package/registry/files/screen-orientation.ts +165 -0
  419. package/registry/files/scroll-lock.ts +80 -0
  420. package/registry/files/scroll.ts +338 -0
  421. package/registry/files/standard-schema.ts +163 -0
  422. package/registry/files/swipe.ts +321 -0
  423. package/registry/files/sync-ref.ts +166 -0
  424. package/registry/files/temporal.ts +182 -0
  425. package/registry/files/text-selection.ts +110 -0
  426. package/registry/files/textarea-autosize.ts +114 -0
  427. package/registry/files/timeout-scheduler.ts +16 -0
  428. package/registry/files/to-reactive.ts +44 -0
  429. package/registry/files/transition.ts +271 -0
  430. package/registry/files/until.ts +352 -0
  431. package/registry/files/use-array.ts +201 -0
  432. package/registry/files/use-async-queue.ts +278 -0
  433. package/registry/files/use-async-state.ts +139 -0
  434. package/registry/files/use-barcode-detector.ts +321 -0
  435. package/registry/files/use-bluetooth.ts +409 -0
  436. package/registry/files/use-broadcast-channel.ts +250 -0
  437. package/registry/files/use-builtin-ai.ts +674 -0
  438. package/registry/files/use-clipboard.ts +425 -0
  439. package/registry/files/use-compression-stream.ts +364 -0
  440. package/registry/files/use-confirm-dialog.ts +137 -0
  441. package/registry/files/use-contact-picker.ts +246 -0
  442. package/registry/files/use-cookie.ts +500 -0
  443. package/registry/files/use-countdown.ts +161 -0
  444. package/registry/files/use-counter.ts +147 -0
  445. package/registry/files/use-css-var.ts +191 -0
  446. package/registry/files/use-cycle-list.ts +136 -0
  447. package/registry/files/use-date-format.ts +281 -0
  448. package/registry/files/use-date-time-format.ts +113 -0
  449. package/registry/files/use-debounced.ts +163 -0
  450. package/registry/files/use-display-media.ts +89 -0
  451. package/registry/files/use-display-names.ts +122 -0
  452. package/registry/files/use-document-title.ts +196 -0
  453. package/registry/files/use-drop-zone.ts +287 -0
  454. package/registry/files/use-event-source.ts +470 -0
  455. package/registry/files/use-eye-dropper.ts +134 -0
  456. package/registry/files/use-favicon.ts +140 -0
  457. package/registry/files/use-fetch.ts +578 -0
  458. package/registry/files/use-field.ts +247 -0
  459. package/registry/files/use-file-dialog.ts +257 -0
  460. package/registry/files/use-file-system-access.ts +383 -0
  461. package/registry/files/use-form-field-props.ts +381 -0
  462. package/registry/files/use-form.ts +980 -0
  463. package/registry/files/use-fullscreen.ts +214 -0
  464. package/registry/files/use-gamepad.ts +463 -0
  465. package/registry/files/use-hid.ts +359 -0
  466. package/registry/files/use-history.ts +231 -0
  467. package/registry/files/use-id-generator.ts +61 -0
  468. package/registry/files/use-image.ts +253 -0
  469. package/registry/files/use-indexed-db.ts +508 -0
  470. package/registry/files/use-interval.ts +253 -0
  471. package/registry/files/use-list-format.ts +85 -0
  472. package/registry/files/use-machine.ts +171 -0
  473. package/registry/files/use-map.ts +145 -0
  474. package/registry/files/use-media-controls.ts +545 -0
  475. package/registry/files/use-memoize.ts +118 -0
  476. package/registry/files/use-mounted.ts +30 -0
  477. package/registry/files/use-navigation-api.ts +641 -0
  478. package/registry/files/use-notification.ts +285 -0
  479. package/registry/files/use-now.ts +194 -0
  480. package/registry/files/use-number-format.ts +120 -0
  481. package/registry/files/use-object-url.ts +87 -0
  482. package/registry/files/use-offset-pagination.ts +168 -0
  483. package/registry/files/use-payment-request.ts +465 -0
  484. package/registry/files/use-performance-observer.ts +469 -0
  485. package/registry/files/use-permission.ts +220 -0
  486. package/registry/files/use-plural-rules.ts +134 -0
  487. package/registry/files/use-previous.ts +62 -0
  488. package/registry/files/use-push-subscription.ts +352 -0
  489. package/registry/files/use-queue.ts +197 -0
  490. package/registry/files/use-raf-fn.ts +176 -0
  491. package/registry/files/use-relative-time-format.ts +201 -0
  492. package/registry/files/use-request-idle-callback.ts +278 -0
  493. package/registry/files/use-route-query.ts +300 -0
  494. package/registry/files/use-scheduler-post-task.ts +397 -0
  495. package/registry/files/use-screen-details.ts +393 -0
  496. package/registry/files/use-script-tag.ts +341 -0
  497. package/registry/files/use-segmenter.ts +147 -0
  498. package/registry/files/use-selection.ts +233 -0
  499. package/registry/files/use-serial.ts +404 -0
  500. package/registry/files/use-service-worker.ts +413 -0
  501. package/registry/files/use-set.ts +154 -0
  502. package/registry/files/use-share.ts +168 -0
  503. package/registry/files/use-sorted-locale.ts +130 -0
  504. package/registry/files/use-sorted.ts +49 -0
  505. package/registry/files/use-speech-recognition.ts +357 -0
  506. package/registry/files/use-speech-synthesis.ts +333 -0
  507. package/registry/files/use-stack.ts +164 -0
  508. package/registry/files/use-stepper.ts +166 -0
  509. package/registry/files/use-storage-estimate.ts +352 -0
  510. package/registry/files/use-storage.ts +635 -0
  511. package/registry/files/use-style-tag.ts +200 -0
  512. package/registry/files/use-supported.ts +26 -0
  513. package/registry/files/use-throttled.ts +215 -0
  514. package/registry/files/use-time-ago.ts +276 -0
  515. package/registry/files/use-timeout.ts +218 -0
  516. package/registry/files/use-toggle.ts +54 -0
  517. package/registry/files/use-url-hash.ts +280 -0
  518. package/registry/files/use-url-search-params.ts +497 -0
  519. package/registry/files/use-usb.ts +395 -0
  520. package/registry/files/use-user-activation.ts +215 -0
  521. package/registry/files/use-user-media.ts +422 -0
  522. package/registry/files/use-v-model.ts +210 -0
  523. package/registry/files/use-vibrate.ts +174 -0
  524. package/registry/files/use-view-transition.ts +229 -0
  525. package/registry/files/use-visual-viewport.ts +228 -0
  526. package/registry/files/use-wake-lock.ts +206 -0
  527. package/registry/files/use-web-authn.ts +793 -0
  528. package/registry/files/use-web-locks.ts +363 -0
  529. package/registry/files/use-web-midi.ts +306 -0
  530. package/registry/files/use-web-vitals.ts +409 -0
  531. package/registry/files/use-websocket.ts +553 -0
  532. package/registry/files/use-worker-fn.ts +306 -0
  533. package/registry/files/virtual-list.ts +230 -0
  534. package/registry/files/watch-debounced.ts +206 -0
  535. package/registry/files/watch-ignorable.ts +128 -0
  536. package/registry/files/watch-once.ts +46 -0
  537. package/registry/files/watch-pausable.ts +93 -0
  538. package/registry/files/watch-source.ts +51 -0
  539. package/registry/files/watch-throttled.ts +201 -0
  540. package/registry/files/whenever.ts +70 -0
  541. package/registry/files/window-size.ts +151 -0
  542. package/registry/registry.json +5792 -0
  543. package/dist/catalog-D2AL3xYl.d.mts +0 -523
  544. package/dist/catalog-D5SYCsgW.mjs +0 -549
@@ -0,0 +1,62 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { computed, hasInjectionContext, shallowRef, toValue, watch, watchPostEffect } from "vue";
3
+ //#region src/text-selection.ts
4
+ /**
5
+ * Track the document text selection.
6
+ *
7
+ * Re-reads the selection on every `selectionchange`. Because the platform
8
+ * mutates the same `Selection` object in place, a revision counter is used to
9
+ * invalidate the derived `text`, `ranges`, and `rects`. Server renders expose
10
+ * an empty selection; the listener is removed with the owning scope.
11
+ *
12
+ * Inside a component the host is read after mounting, so hydration renders
13
+ * the server fallback first and never mismatches.
14
+ *
15
+ * @param options Document capability.
16
+ * @default options {}
17
+ * @returns Reactive selection, text, ranges, and rectangles.
18
+ */
19
+ function useTextSelection(options = {}) {
20
+ const selection = shallowRef(null);
21
+ const revision = shallowRef(0);
22
+ const hydrated = shallowRef(!hasInjectionContext());
23
+ if (!hydrated.value) watchPostEffect(() => {
24
+ hydrated.value = true;
25
+ });
26
+ const stop = watch(() => hydrated.value ? options.host === void 0 ? browserSelectionHost() : toValue(options.host) : void 0, (host, _previous, onCleanup) => {
27
+ if (!host) {
28
+ selection.value = null;
29
+ return;
30
+ }
31
+ const update = () => {
32
+ selection.value = host.getSelection();
33
+ revision.value += 1;
34
+ };
35
+ update();
36
+ host.addEventListener("selectionchange", update, { passive: true });
37
+ onCleanup(() => host.removeEventListener("selectionchange", update));
38
+ }, { immediate: true });
39
+ tryOnScopeDispose(() => stop.stop());
40
+ const ranges = computed(() => {
41
+ revision.value;
42
+ const current = selection.value;
43
+ if (!current) return [];
44
+ const list = [];
45
+ for (let index = 0; index < current.rangeCount; index += 1) list.push(current.getRangeAt(index));
46
+ return list;
47
+ });
48
+ return {
49
+ selection,
50
+ text: computed(() => {
51
+ revision.value;
52
+ return selection.value?.toString() ?? "";
53
+ }),
54
+ ranges,
55
+ rects: computed(() => ranges.value.map((range) => range.getBoundingClientRect()))
56
+ };
57
+ }
58
+ function browserSelectionHost() {
59
+ return typeof document !== "undefined" ? document : void 0;
60
+ }
61
+ //#endregion
62
+ export { useTextSelection };
@@ -0,0 +1,58 @@
1
+ import { n as MaybeElementTarget } from "./element-target-Crpxl4D9.mjs";
2
+ import { ResizeObserverHost } from "./resize-observer.mjs";
3
+ import { MaybeRefOrGetter, Ref } from "vue";
4
+
5
+ //#region src/textarea-autosize.d.ts
6
+ /** Style property that receives the measured height. */
7
+ type TextareaAutosizeStyleProperty = "height" | "min-height";
8
+ /** Options for {@link useTextareaAutosize}. */
9
+ interface UseTextareaAutosizeOptions {
10
+ /**
11
+ * Text bound to the textarea. Changes trigger a resize. A fresh ref is
12
+ * created when omitted.
13
+ *
14
+ * @default ref("")
15
+ */
16
+ readonly input?: Ref<string>;
17
+ /**
18
+ * Style property written with the measured height.
19
+ *
20
+ * @default "height"
21
+ */
22
+ readonly styleProp?: TextareaAutosizeStyleProperty;
23
+ /**
24
+ * Called after each resize with the new height.
25
+ *
26
+ * @default undefined
27
+ */
28
+ readonly onResize?: (height: number) => void;
29
+ /**
30
+ * Resize-observer capability used to re-measure when the width changes.
31
+ *
32
+ * @default globalThis when it provides `ResizeObserver`
33
+ */
34
+ readonly host?: MaybeRefOrGetter<ResizeObserverHost | null | undefined>;
35
+ }
36
+ /** State returned by {@link useTextareaAutosize}. */
37
+ interface TextareaAutosizeControls {
38
+ /** Text bound to the textarea (use with `v-model`). */
39
+ readonly input: Ref<string>;
40
+ /** Re-measure immediately. */
41
+ readonly triggerResize: () => void;
42
+ }
43
+ /**
44
+ * Grow a textarea to fit its content.
45
+ *
46
+ * On each input change (and when the element width changes), the style
47
+ * property is reset to `auto`, `scrollHeight` is read, and the height is
48
+ * written back in pixels. Nothing is measured during server rendering, so the
49
+ * markup keeps its declared `rows`.
50
+ *
51
+ * @param target Reactive textarea target.
52
+ * @param options Bound input, style property, callback, and observer capability.
53
+ * @default options {}
54
+ * @returns Bound input and a manual resize trigger.
55
+ */
56
+ declare function useTextareaAutosize(target: MaybeElementTarget, options?: UseTextareaAutosizeOptions): TextareaAutosizeControls;
57
+ //#endregion
58
+ export { TextareaAutosizeControls, TextareaAutosizeStyleProperty, UseTextareaAutosizeOptions, useTextareaAutosize };
@@ -0,0 +1,54 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { resolveElement } from "./element-target.mjs";
3
+ import { useResizeObserver } from "./resize-observer.mjs";
4
+ import { ref, watch } from "vue";
5
+ //#region src/textarea-autosize.ts
6
+ /**
7
+ * Grow a textarea to fit its content.
8
+ *
9
+ * On each input change (and when the element width changes), the style
10
+ * property is reset to `auto`, `scrollHeight` is read, and the height is
11
+ * written back in pixels. Nothing is measured during server rendering, so the
12
+ * markup keeps its declared `rows`.
13
+ *
14
+ * @param target Reactive textarea target.
15
+ * @param options Bound input, style property, callback, and observer capability.
16
+ * @default options {}
17
+ * @returns Bound input and a manual resize trigger.
18
+ */
19
+ function useTextareaAutosize(target, options = {}) {
20
+ const input = options.input ?? ref("");
21
+ const styleProp = options.styleProp ?? "height";
22
+ let lastWidth = -1;
23
+ const triggerResize = () => {
24
+ const element = resolveElement(target);
25
+ if (!element || !isAutosizeElement(element)) return;
26
+ element.style.setProperty(styleProp, "auto");
27
+ const height = element.scrollHeight;
28
+ element.style.setProperty(styleProp, `${height}px`);
29
+ options.onResize?.(height);
30
+ };
31
+ const stop = watch([input, () => resolveElement(target)], triggerResize, {
32
+ immediate: true,
33
+ flush: "post"
34
+ });
35
+ const observer = useResizeObserver(target, (entries) => {
36
+ const width = entries.at(-1)?.contentRect.width ?? -1;
37
+ if (width === lastWidth) return;
38
+ lastWidth = width;
39
+ triggerResize();
40
+ }, options.host === void 0 ? {} : { host: options.host });
41
+ tryOnScopeDispose(() => {
42
+ stop.stop();
43
+ observer.stop();
44
+ });
45
+ return {
46
+ input,
47
+ triggerResize
48
+ };
49
+ }
50
+ function isAutosizeElement(element) {
51
+ return "style" in element && typeof element.scrollHeight === "number";
52
+ }
53
+ //#endregion
54
+ export { useTextareaAutosize };
@@ -0,0 +1,18 @@
1
+ //#region src/timeout-scheduler.d.ts
2
+ /**
3
+ * Single-shot timer host used by the debounced and throttled state
4
+ * utilities.
5
+ *
6
+ * Implement this interface to integrate a deterministic test clock, a native
7
+ * runtime timer, or an application-owned scheduler. Handles are opaque: the
8
+ * utilities only hand them back to {@link TimeoutScheduler.clearTimeout}.
9
+ * This module declares types only and contributes no runtime code.
10
+ */
11
+ interface TimeoutScheduler {
12
+ /** Starts a single-shot callback and returns its opaque cancellation handle. */
13
+ readonly setTimeout: (callback: () => void, delayMs: number) => unknown;
14
+ /** Cancels a handle previously returned by {@link TimeoutScheduler.setTimeout}. */
15
+ readonly clearTimeout: (handle: unknown) => void;
16
+ }
17
+ //#endregion
18
+ export { TimeoutScheduler as t };
@@ -1,18 +1,2 @@
1
- //#region src/timeout-scheduler.d.ts
2
- /**
3
- * Single-shot timer host used by the debounced and throttled state
4
- * utilities.
5
- *
6
- * Implement this interface to integrate a deterministic test clock, a native
7
- * runtime timer, or an application-owned scheduler. Handles are opaque: the
8
- * utilities only hand them back to {@link TimeoutScheduler.clearTimeout}.
9
- * This module declares types only and contributes no runtime code.
10
- */
11
- interface TimeoutScheduler {
12
- /** Starts a single-shot callback and returns its opaque cancellation handle. */
13
- readonly setTimeout: (callback: () => void, delayMs: number) => unknown;
14
- /** Cancels a handle previously returned by {@link TimeoutScheduler.setTimeout}. */
15
- readonly clearTimeout: (handle: unknown) => void;
16
- }
17
- //#endregion
1
+ import { t as TimeoutScheduler } from "./timeout-scheduler-CI8RVLZs.mjs";
18
2
  export { TimeoutScheduler };
@@ -0,0 +1,26 @@
1
+ import { MaybeRef, Reactive } from "vue";
2
+
3
+ //#region src/to-reactive.d.ts
4
+ /**
5
+ * Reactive object view over a ref that holds an object.
6
+ *
7
+ * Property reads and writes go to the ref's current object, so replacing the
8
+ * ref's value swaps the whole object behind a stable reactive proxy (handy
9
+ * for `v-bind="state"` or destructuring-free templates). Nested refs are
10
+ * unwrapped on read and written through on assignment. A non-ref object is
11
+ * simply passed to `reactive`. SSR-safe and nothing to dispose.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * const state = ref({ name: "a" });
16
+ * const view = toReactive(state);
17
+ * state.value = { name: "b" };
18
+ * view.name; // "b"
19
+ * ```
20
+ *
21
+ * @param objectRef Ref (or plain object) holding the object.
22
+ * @returns A reactive proxy following the ref.
23
+ */
24
+ declare function toReactive<Value extends object>(objectRef: MaybeRef<Value>): Reactive<Value>;
25
+ //#endregion
26
+ export { toReactive };
@@ -0,0 +1,46 @@
1
+ import { isRef, reactive, unref } from "vue";
2
+ //#region src/to-reactive.ts
3
+ /**
4
+ * Reactive object view over a ref that holds an object.
5
+ *
6
+ * Property reads and writes go to the ref's current object, so replacing the
7
+ * ref's value swaps the whole object behind a stable reactive proxy (handy
8
+ * for `v-bind="state"` or destructuring-free templates). Nested refs are
9
+ * unwrapped on read and written through on assignment. A non-ref object is
10
+ * simply passed to `reactive`. SSR-safe and nothing to dispose.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const state = ref({ name: "a" });
15
+ * const view = toReactive(state);
16
+ * state.value = { name: "b" };
17
+ * view.name; // "b"
18
+ * ```
19
+ *
20
+ * @param objectRef Ref (or plain object) holding the object.
21
+ * @returns A reactive proxy following the ref.
22
+ */
23
+ function toReactive(objectRef) {
24
+ if (!isRef(objectRef)) return reactive(objectRef);
25
+ return reactive(new Proxy(objectRef.value, {
26
+ get: (_target, property, receiver) => unref(Reflect.get(objectRef.value, property, receiver)),
27
+ set: (_target, property, value) => {
28
+ const current = Reflect.get(objectRef.value, property);
29
+ if (isRef(current) && !isRef(value)) current.value = value;
30
+ else Reflect.set(objectRef.value, property, value);
31
+ return true;
32
+ },
33
+ deleteProperty: (_target, property) => Reflect.deleteProperty(objectRef.value, property),
34
+ has: (_target, property) => Reflect.has(objectRef.value, property),
35
+ ownKeys: () => Reflect.ownKeys(objectRef.value),
36
+ getOwnPropertyDescriptor: (_target, property) => {
37
+ const descriptor = Reflect.getOwnPropertyDescriptor(objectRef.value, property);
38
+ return descriptor === void 0 ? void 0 : {
39
+ ...descriptor,
40
+ configurable: true
41
+ };
42
+ }
43
+ }));
44
+ }
45
+ //#endregion
46
+ export { toReactive };
@@ -0,0 +1,125 @@
1
+ import { MaybeRefOrGetter, Ref } from "vue";
2
+
3
+ //#region src/transition.d.ts
4
+ /** Cubic Bézier control points `[x1, y1, x2, y2]`. */
5
+ type CubicBezierPoints = readonly [number, number, number, number];
6
+ /** Easing: a preset name, cubic Bézier control points, or a function on `[0, 1]`. */
7
+ type TransitionEasing = TransitionPresetName | CubicBezierPoints | ((progress: number) => number);
8
+ /** Named cubic Bézier easing presets (the classic easings.net set). */
9
+ declare const TransitionPresets: {
10
+ readonly linear: readonly [0, 0, 1, 1];
11
+ readonly easeInSine: readonly [0.12, 0, 0.39, 0];
12
+ readonly easeOutSine: readonly [0.61, 1, 0.88, 1];
13
+ readonly easeInOutSine: readonly [0.37, 0, 0.63, 1];
14
+ readonly easeInQuad: readonly [0.11, 0, 0.5, 0];
15
+ readonly easeOutQuad: readonly [0.5, 1, 0.89, 1];
16
+ readonly easeInOutQuad: readonly [0.45, 0, 0.55, 1];
17
+ readonly easeInCubic: readonly [0.32, 0, 0.67, 0];
18
+ readonly easeOutCubic: readonly [0.33, 1, 0.68, 1];
19
+ readonly easeInOutCubic: readonly [0.65, 0, 0.35, 1];
20
+ readonly easeInQuart: readonly [0.5, 0, 0.75, 0];
21
+ readonly easeOutQuart: readonly [0.25, 1, 0.5, 1];
22
+ readonly easeInOutQuart: readonly [0.76, 0, 0.24, 1];
23
+ readonly easeInQuint: readonly [0.64, 0, 0.78, 0];
24
+ readonly easeOutQuint: readonly [0.22, 1, 0.36, 1];
25
+ readonly easeInOutQuint: readonly [0.83, 0, 0.17, 1];
26
+ readonly easeInExpo: readonly [0.7, 0, 0.84, 0];
27
+ readonly easeOutExpo: readonly [0.16, 1, 0.3, 1];
28
+ readonly easeInOutExpo: readonly [0.87, 0, 0.13, 1];
29
+ readonly easeInCirc: readonly [0.55, 0, 1, 0.45];
30
+ readonly easeOutCirc: readonly [0, 0.55, 0.45, 1];
31
+ readonly easeInOutCirc: readonly [0.85, 0, 0.15, 1];
32
+ readonly easeInBack: readonly [0.36, 0, 0.66, -0.56];
33
+ readonly easeOutBack: readonly [0.34, 1.56, 0.64, 1];
34
+ readonly easeInOutBack: readonly [0.68, -0.6, 0.32, 1.6];
35
+ };
36
+ /** Names of {@link TransitionPresets}. */
37
+ type TransitionPresetName = keyof typeof TransitionPresets;
38
+ /** Numeric value tweened by {@link useTransition}: a number or a fixed-length tuple. */
39
+ type TransitionValue = number | readonly number[];
40
+ /** Mutable tuple output matching a tuple source. */
41
+ type TransitionTupleOutput<Source extends readonly number[]> = { -readonly [Index in keyof Source]: number };
42
+ /** Frame scheduler used by {@link useTransition}. */
43
+ interface TransitionFrameHost {
44
+ /** Schedule a callback before the next repaint. */
45
+ readonly requestAnimationFrame: (callback: FrameRequestCallback) => number;
46
+ /** Cancel a scheduled frame. */
47
+ readonly cancelAnimationFrame: (handle: number) => void;
48
+ }
49
+ /** Options for {@link useTransition}. */
50
+ interface UseTransitionOptions {
51
+ /**
52
+ * Duration in milliseconds.
53
+ *
54
+ * @default 1000
55
+ */
56
+ readonly duration?: MaybeRefOrGetter<number>;
57
+ /**
58
+ * Delay before each transition starts, in milliseconds.
59
+ *
60
+ * @default 0
61
+ */
62
+ readonly delay?: MaybeRefOrGetter<number>;
63
+ /**
64
+ * Easing function, preset name, or cubic Bézier points.
65
+ *
66
+ * @default "linear"
67
+ */
68
+ readonly easing?: MaybeRefOrGetter<TransitionEasing>;
69
+ /**
70
+ * Jump to the source value without animating.
71
+ *
72
+ * @default false
73
+ */
74
+ readonly disabled?: MaybeRefOrGetter<boolean>;
75
+ /**
76
+ * Called when a transition starts.
77
+ *
78
+ * @default undefined
79
+ */
80
+ readonly onStarted?: () => void;
81
+ /**
82
+ * Called when a transition reaches its target.
83
+ *
84
+ * @default undefined
85
+ */
86
+ readonly onFinished?: () => void;
87
+ /**
88
+ * Frame scheduler. Without one (server rendering) the output mirrors the
89
+ * source immediately.
90
+ *
91
+ * @default globalThis.window when available
92
+ */
93
+ readonly host?: MaybeRefOrGetter<TransitionFrameHost | null | undefined>;
94
+ }
95
+ /**
96
+ * Tween a number toward its reactive source.
97
+ *
98
+ * Each source change starts a new transition from the current output, so
99
+ * interrupted transitions stay continuous. Easing presets and Bézier points
100
+ * are solved with Newton–Raphson plus bisection. Without a frame scheduler
101
+ * (server rendering, tests) the output equals the source, which keeps SSR
102
+ * deterministic. Pending frames are cancelled with the owning scope.
103
+ *
104
+ * @param source Reactive number.
105
+ * @param options Duration, delay, easing, callbacks, and frame capability.
106
+ * @returns Readonly tweened number.
107
+ */
108
+ declare function useTransition(source: MaybeRefOrGetter<number>, options?: UseTransitionOptions): Readonly<Ref<number>>;
109
+ /**
110
+ * Tween each element of a fixed-length numeric tuple.
111
+ *
112
+ * @param source Reactive tuple; its length must stay constant.
113
+ * @param options Duration, delay, easing, callbacks, and frame capability.
114
+ * @returns Readonly tweened tuple with the same length.
115
+ */
116
+ declare function useTransition<const Source extends readonly number[]>(source: MaybeRefOrGetter<Source>, options?: UseTransitionOptions): Readonly<Ref<TransitionTupleOutput<Source>>>;
117
+ /**
118
+ * Build an easing function from cubic Bézier control points.
119
+ *
120
+ * @param points `[x1, y1, x2, y2]` with `x1`/`x2` in `[0, 1]`.
121
+ * @returns Easing function mapping progress to eased progress.
122
+ */
123
+ declare function cubicBezier(points: CubicBezierPoints): (progress: number) => number;
124
+ //#endregion
125
+ export { CubicBezierPoints, TransitionEasing, TransitionFrameHost, TransitionPresetName, TransitionPresets, TransitionTupleOutput, TransitionValue, UseTransitionOptions, cubicBezier, useTransition };
@@ -0,0 +1,266 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { shallowRef, toValue, watch } from "vue";
3
+ //#region src/transition.ts
4
+ /** Named cubic Bézier easing presets (the classic easings.net set). */
5
+ const TransitionPresets = {
6
+ linear: [
7
+ 0,
8
+ 0,
9
+ 1,
10
+ 1
11
+ ],
12
+ easeInSine: [
13
+ .12,
14
+ 0,
15
+ .39,
16
+ 0
17
+ ],
18
+ easeOutSine: [
19
+ .61,
20
+ 1,
21
+ .88,
22
+ 1
23
+ ],
24
+ easeInOutSine: [
25
+ .37,
26
+ 0,
27
+ .63,
28
+ 1
29
+ ],
30
+ easeInQuad: [
31
+ .11,
32
+ 0,
33
+ .5,
34
+ 0
35
+ ],
36
+ easeOutQuad: [
37
+ .5,
38
+ 1,
39
+ .89,
40
+ 1
41
+ ],
42
+ easeInOutQuad: [
43
+ .45,
44
+ 0,
45
+ .55,
46
+ 1
47
+ ],
48
+ easeInCubic: [
49
+ .32,
50
+ 0,
51
+ .67,
52
+ 0
53
+ ],
54
+ easeOutCubic: [
55
+ .33,
56
+ 1,
57
+ .68,
58
+ 1
59
+ ],
60
+ easeInOutCubic: [
61
+ .65,
62
+ 0,
63
+ .35,
64
+ 1
65
+ ],
66
+ easeInQuart: [
67
+ .5,
68
+ 0,
69
+ .75,
70
+ 0
71
+ ],
72
+ easeOutQuart: [
73
+ .25,
74
+ 1,
75
+ .5,
76
+ 1
77
+ ],
78
+ easeInOutQuart: [
79
+ .76,
80
+ 0,
81
+ .24,
82
+ 1
83
+ ],
84
+ easeInQuint: [
85
+ .64,
86
+ 0,
87
+ .78,
88
+ 0
89
+ ],
90
+ easeOutQuint: [
91
+ .22,
92
+ 1,
93
+ .36,
94
+ 1
95
+ ],
96
+ easeInOutQuint: [
97
+ .83,
98
+ 0,
99
+ .17,
100
+ 1
101
+ ],
102
+ easeInExpo: [
103
+ .7,
104
+ 0,
105
+ .84,
106
+ 0
107
+ ],
108
+ easeOutExpo: [
109
+ .16,
110
+ 1,
111
+ .3,
112
+ 1
113
+ ],
114
+ easeInOutExpo: [
115
+ .87,
116
+ 0,
117
+ .13,
118
+ 1
119
+ ],
120
+ easeInCirc: [
121
+ .55,
122
+ 0,
123
+ 1,
124
+ .45
125
+ ],
126
+ easeOutCirc: [
127
+ 0,
128
+ .55,
129
+ .45,
130
+ 1
131
+ ],
132
+ easeInOutCirc: [
133
+ .85,
134
+ 0,
135
+ .15,
136
+ 1
137
+ ],
138
+ easeInBack: [
139
+ .36,
140
+ 0,
141
+ .66,
142
+ -.56
143
+ ],
144
+ easeOutBack: [
145
+ .34,
146
+ 1.56,
147
+ .64,
148
+ 1
149
+ ],
150
+ easeInOutBack: [
151
+ .68,
152
+ -.6,
153
+ .32,
154
+ 1.6
155
+ ]
156
+ };
157
+ function useTransition(source, options = {}) {
158
+ const output = shallowRef(copy(toValue(source)));
159
+ let cancel = () => void 0;
160
+ const stop = watch(() => copy(toValue(source)), (target) => {
161
+ cancel();
162
+ const host = options.host === void 0 ? browserFrameHost() : toValue(options.host);
163
+ const duration = Math.max(0, toValue(options.duration) ?? 1e3);
164
+ if (!host || toValue(options.disabled) || duration === 0) {
165
+ output.value = target;
166
+ return;
167
+ }
168
+ const from = output.value;
169
+ const ease = toEasingFunction(toValue(options.easing) ?? "linear");
170
+ const delay = Math.max(0, toValue(options.delay) ?? 0);
171
+ let startedAt;
172
+ let started = false;
173
+ let handle = 0;
174
+ const frame = (time) => {
175
+ startedAt ??= time + delay;
176
+ const elapsed = time - startedAt;
177
+ if (elapsed < 0) {
178
+ handle = host.requestAnimationFrame(frame);
179
+ return;
180
+ }
181
+ if (!started) {
182
+ started = true;
183
+ options.onStarted?.();
184
+ }
185
+ const progress = Math.min(1, elapsed / duration);
186
+ output.value = interpolate(from, target, ease(progress));
187
+ if (progress < 1) {
188
+ handle = host.requestAnimationFrame(frame);
189
+ return;
190
+ }
191
+ cancel = () => void 0;
192
+ options.onFinished?.();
193
+ };
194
+ handle = host.requestAnimationFrame(frame);
195
+ cancel = () => {
196
+ host.cancelAnimationFrame(handle);
197
+ cancel = () => void 0;
198
+ };
199
+ });
200
+ tryOnScopeDispose(() => {
201
+ stop.stop();
202
+ cancel();
203
+ });
204
+ return output;
205
+ }
206
+ /**
207
+ * Build an easing function from cubic Bézier control points.
208
+ *
209
+ * @param points `[x1, y1, x2, y2]` with `x1`/`x2` in `[0, 1]`.
210
+ * @returns Easing function mapping progress to eased progress.
211
+ */
212
+ function cubicBezier(points) {
213
+ const [x1, y1, x2, y2] = points;
214
+ const a = (p1, p2) => 1 - 3 * p2 + 3 * p1;
215
+ const b = (p1, p2) => 3 * p2 - 6 * p1;
216
+ const c = (p1) => 3 * p1;
217
+ const at = (t, p1, p2) => ((a(p1, p2) * t + b(p1, p2)) * t + c(p1)) * t;
218
+ const slope = (t, p1, p2) => 3 * a(p1, p2) * t * t + 2 * b(p1, p2) * t + c(p1);
219
+ const solve = (x) => {
220
+ let t = x;
221
+ for (let iteration = 0; iteration < 8; iteration += 1) {
222
+ const error = at(t, x1, x2) - x;
223
+ if (Math.abs(error) < 1e-7) return t;
224
+ const derivative = slope(t, x1, x2);
225
+ if (Math.abs(derivative) < 1e-6) break;
226
+ t -= error / derivative;
227
+ }
228
+ let low = 0;
229
+ let high = 1;
230
+ t = x;
231
+ while (high - low > 1e-7) {
232
+ if (at(t, x1, x2) < x) low = t;
233
+ else high = t;
234
+ t = (low + high) / 2;
235
+ }
236
+ return t;
237
+ };
238
+ return (progress) => {
239
+ if (progress <= 0) return 0;
240
+ if (progress >= 1) return 1;
241
+ if (x1 === y1 && x2 === y2) return progress;
242
+ return at(solve(progress), y1, y2);
243
+ };
244
+ }
245
+ function toEasingFunction(easing) {
246
+ if (typeof easing === "function") return easing;
247
+ return cubicBezier(typeof easing === "string" ? TransitionPresets[easing] : easing);
248
+ }
249
+ function copy(value) {
250
+ return typeof value === "number" ? value : [...value];
251
+ }
252
+ function interpolate(from, to, progress) {
253
+ if (typeof to === "number") {
254
+ const start = typeof from === "number" ? from : to;
255
+ return start + (to - start) * progress;
256
+ }
257
+ return to.map((target, index) => {
258
+ const start = typeof from === "number" ? target : from[index] ?? target;
259
+ return start + (target - start) * progress;
260
+ });
261
+ }
262
+ function browserFrameHost() {
263
+ return typeof window !== "undefined" ? window : void 0;
264
+ }
265
+ //#endregion
266
+ export { TransitionPresets, cubicBezier, useTransition };