@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,73 @@
1
+ import { ComputedRef, MaybeRefOrGetter } from "vue";
2
+
3
+ //#region src/use-number-format.d.ts
4
+ /** Numeric values accepted by `Intl.NumberFormat`. */
5
+ type FormattableNumber = number | bigint;
6
+ /** Options for {@link useNumberFormat}. */
7
+ interface UseNumberFormatOptions extends Intl.NumberFormatOptions {
8
+ /**
9
+ * Locale used for formatting. Pass it explicitly for server rendering:
10
+ * without it the server falls back to `"en"` while the browser detects
11
+ * `navigator.language`, which can make hydration mismatch.
12
+ *
13
+ * @default the browser language, otherwise "en"
14
+ */
15
+ readonly locale?: string | Intl.Locale;
16
+ }
17
+ /** Reactive number formatting returned by {@link useNumberFormat}. */
18
+ interface NumberFormatControls {
19
+ /** Canonical locale in use. */
20
+ readonly locale: ComputedRef<string>;
21
+ /** Cached formatter for the current locale and options. */
22
+ readonly formatter: ComputedRef<Intl.NumberFormat>;
23
+ /** Formatted `value`, or `""` while the value is `null`/`undefined`. */
24
+ readonly formatted: ComputedRef<string>;
25
+ /**
26
+ * Format any number with the current formatter.
27
+ *
28
+ * @param value Number to format.
29
+ * @returns The formatted string.
30
+ */
31
+ readonly format: (value: FormattableNumber) => string;
32
+ /**
33
+ * Format any number into locale-aware parts.
34
+ *
35
+ * @param value Number to format.
36
+ * @returns The formatted parts.
37
+ */
38
+ readonly formatToParts: (value: FormattableNumber) => Intl.NumberFormatPart[];
39
+ /**
40
+ * Format a numeric range (for example `"3–5"`).
41
+ *
42
+ * @param start Range start.
43
+ * @param end Range end.
44
+ * @returns The formatted range.
45
+ */
46
+ readonly formatRange: (start: FormattableNumber, end: FormattableNumber) => string;
47
+ }
48
+ /**
49
+ * Format numbers reactively with `Intl.NumberFormat`.
50
+ *
51
+ * The formatter follows the reactive options (including `locale`) and is
52
+ * cached per locale and option set through {@link useLocale}. Without an
53
+ * explicit locale the browser language is used, falling back to `"en"`
54
+ * (always the case on the server). Invalid options surface as the
55
+ * platform's `RangeError`/`TypeError` on first read. No listeners or timers
56
+ * are created, so nothing needs cleanup.
57
+ *
58
+ * @example
59
+ * ```ts
60
+ * const price = ref(1234.5);
61
+ * const { formatted } = useNumberFormat(price, { locale: "de-DE", style: "currency", currency: "EUR" });
62
+ * formatted.value; // "1.234,50 €"
63
+ * ```
64
+ *
65
+ * @param value Reactive number; `null`/`undefined` format as `""`.
66
+ * @param options Reactive locale and `Intl.NumberFormat` options.
67
+ * @default value undefined
68
+ * @default options {}
69
+ * @returns Reactive formatted output and formatter helpers.
70
+ */
71
+ declare function useNumberFormat(value?: MaybeRefOrGetter<FormattableNumber | null | undefined>, options?: MaybeRefOrGetter<UseNumberFormatOptions>): NumberFormatControls;
72
+ //#endregion
73
+ export { FormattableNumber, NumberFormatControls, UseNumberFormatOptions, useNumberFormat };
@@ -0,0 +1,58 @@
1
+ import { useLocale } from "./locale.mjs";
2
+ import { computed, toValue } from "vue";
3
+ //#region src/use-number-format.ts
4
+ function formatRangeWith(formatter, start, end) {
5
+ const native = Reflect.get(formatter, "formatRange");
6
+ if (typeof native === "function") {
7
+ const result = Reflect.apply(native, formatter, [start, end]);
8
+ if (typeof result === "string") return result;
9
+ }
10
+ return `${formatter.format(start)}\u2013${formatter.format(end)}`;
11
+ }
12
+ function browserLanguage() {
13
+ return typeof window === "undefined" ? void 0 : window.navigator.language;
14
+ }
15
+ /**
16
+ * Format numbers reactively with `Intl.NumberFormat`.
17
+ *
18
+ * The formatter follows the reactive options (including `locale`) and is
19
+ * cached per locale and option set through {@link useLocale}. Without an
20
+ * explicit locale the browser language is used, falling back to `"en"`
21
+ * (always the case on the server). Invalid options surface as the
22
+ * platform's `RangeError`/`TypeError` on first read. No listeners or timers
23
+ * are created, so nothing needs cleanup.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * const price = ref(1234.5);
28
+ * const { formatted } = useNumberFormat(price, { locale: "de-DE", style: "currency", currency: "EUR" });
29
+ * formatted.value; // "1.234,50 €"
30
+ * ```
31
+ *
32
+ * @param value Reactive number; `null`/`undefined` format as `""`.
33
+ * @param options Reactive locale and `Intl.NumberFormat` options.
34
+ * @default value undefined
35
+ * @default options {}
36
+ * @returns Reactive formatted output and formatter helpers.
37
+ */
38
+ function useNumberFormat(value, options = {}) {
39
+ const localeControls = useLocale(() => toValue(options).locale, { detect: browserLanguage });
40
+ const formatter = computed(() => {
41
+ const { locale: _locale, ...formatOptions } = toValue(options);
42
+ return localeControls.number(formatOptions);
43
+ });
44
+ const formatted = computed(() => {
45
+ const current = value === void 0 ? void 0 : toValue(value);
46
+ return current === null || current === void 0 ? "" : formatter.value.format(current);
47
+ });
48
+ return {
49
+ locale: localeControls.locale,
50
+ formatter,
51
+ formatted,
52
+ format: (input) => formatter.value.format(input),
53
+ formatToParts: (input) => formatter.value.formatToParts(input),
54
+ formatRange: (start, end) => formatRangeWith(formatter.value, start, end)
55
+ };
56
+ }
57
+ //#endregion
58
+ export { useNumberFormat };
@@ -0,0 +1,47 @@
1
+ import { MaybeRef, MaybeRefOrGetter, Ref } from "vue";
2
+
3
+ //#region src/use-object-url.d.ts
4
+ /** Objects accepted by `URL.createObjectURL`. */
5
+ type ObjectUrlSource = Blob | MediaSource;
6
+ /** Minimal object-URL capability (the `URL` constructor's static methods). */
7
+ interface ObjectUrlHost {
8
+ /** Create a URL referencing `object`. */
9
+ createObjectURL(object: ObjectUrlSource): string;
10
+ /** Release a URL previously returned by `createObjectURL`. */
11
+ revokeObjectURL(url: string): void;
12
+ }
13
+ /** Options for {@link useObjectUrl}. */
14
+ interface UseObjectUrlOptions {
15
+ /**
16
+ * Object-URL capability for alternate runtimes and tests. A ref (not a
17
+ * getter) because the default host, `URL`, is itself a constructor.
18
+ *
19
+ * @default window.URL when a browser window exists
20
+ */
21
+ readonly host?: MaybeRef<ObjectUrlHost | null | undefined>;
22
+ }
23
+ /**
24
+ * Create a reactive object URL for a `Blob`, `File`, or `MediaSource`.
25
+ *
26
+ * A new URL is created whenever the reactive object changes and the
27
+ * previous one is revoked immediately, so memory held by the old object is
28
+ * released. The last URL is revoked when the owning reactive scope stops.
29
+ * Outside a scope, the caller owns the last URL (it lives until unload).
30
+ *
31
+ * Server rendering: no URL is created and the ref stays `undefined`.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * const file = shallowRef<File>();
36
+ * const preview = useObjectUrl(file);
37
+ * // <img :src="preview">
38
+ * ```
39
+ *
40
+ * @param object Reactive object to reference; `null`/`undefined` clears the URL.
41
+ * @param options Object-URL capability.
42
+ * @default options {}
43
+ * @returns Readonly ref holding the current object URL.
44
+ */
45
+ declare function useObjectUrl(object: MaybeRefOrGetter<ObjectUrlSource | null | undefined>, options?: UseObjectUrlOptions): Readonly<Ref<string | undefined>>;
46
+ //#endregion
47
+ export { ObjectUrlHost, ObjectUrlSource, UseObjectUrlOptions, useObjectUrl };
@@ -0,0 +1,54 @@
1
+ import { tryOnScopeDispose } from "./scope.mjs";
2
+ import { readonly, ref, toValue, unref, watch } from "vue";
3
+ //#region src/use-object-url.ts
4
+ function browserObjectUrlHost() {
5
+ if (typeof window === "undefined") return void 0;
6
+ const { URL } = window;
7
+ return typeof URL.createObjectURL === "function" ? URL : void 0;
8
+ }
9
+ /**
10
+ * Create a reactive object URL for a `Blob`, `File`, or `MediaSource`.
11
+ *
12
+ * A new URL is created whenever the reactive object changes and the
13
+ * previous one is revoked immediately, so memory held by the old object is
14
+ * released. The last URL is revoked when the owning reactive scope stops.
15
+ * Outside a scope, the caller owns the last URL (it lives until unload).
16
+ *
17
+ * Server rendering: no URL is created and the ref stays `undefined`.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * const file = shallowRef<File>();
22
+ * const preview = useObjectUrl(file);
23
+ * // <img :src="preview">
24
+ * ```
25
+ *
26
+ * @param object Reactive object to reference; `null`/`undefined` clears the URL.
27
+ * @param options Object-URL capability.
28
+ * @default options {}
29
+ * @returns Readonly ref holding the current object URL.
30
+ */
31
+ function useObjectUrl(object, options = {}) {
32
+ const url = ref(void 0);
33
+ const resolveHost = () => options.host === void 0 ? browserObjectUrlHost() : unref(options.host) ?? void 0;
34
+ let revokeCurrent;
35
+ const release = () => {
36
+ revokeCurrent?.();
37
+ revokeCurrent = void 0;
38
+ url.value = void 0;
39
+ };
40
+ watch([() => toValue(object), resolveHost], ([next, host]) => {
41
+ release();
42
+ if (!next || !host) return;
43
+ const created = host.createObjectURL(next);
44
+ url.value = created;
45
+ revokeCurrent = () => host.revokeObjectURL(created);
46
+ }, {
47
+ immediate: true,
48
+ flush: "sync"
49
+ });
50
+ tryOnScopeDispose(release);
51
+ return readonly(url);
52
+ }
53
+ //#endregion
54
+ export { useObjectUrl };
@@ -0,0 +1,91 @@
1
+ import { ComputedRef, MaybeRef, MaybeRefOrGetter, WritableComputedRef } from "vue";
2
+
3
+ //#region src/use-offset-pagination.d.ts
4
+ /** Page information passed to the {@link useOffsetPagination} callbacks. */
5
+ interface OffsetPaginationInfo {
6
+ /** One-based current page. */
7
+ readonly currentPage: number;
8
+ /** Items per page. */
9
+ readonly currentPageSize: number;
10
+ /** Number of pages (at least one). */
11
+ readonly pageCount: number;
12
+ }
13
+ /** Options for {@link useOffsetPagination}. */
14
+ interface UseOffsetPaginationOptions {
15
+ /**
16
+ * Total number of items. Reactive.
17
+ *
18
+ * @default Number.POSITIVE_INFINITY
19
+ */
20
+ readonly total?: MaybeRefOrGetter<number>;
21
+ /**
22
+ * One-based current page. Pass a writable ref for two-way binding.
23
+ *
24
+ * @default 1
25
+ */
26
+ readonly page?: MaybeRef<number>;
27
+ /**
28
+ * Items per page. Pass a writable ref for two-way binding.
29
+ *
30
+ * @default 10
31
+ */
32
+ readonly pageSize?: MaybeRef<number>;
33
+ /**
34
+ * Called after the current page changes.
35
+ *
36
+ * @default undefined
37
+ */
38
+ readonly onPageChange?: (info: OffsetPaginationInfo) => void;
39
+ /**
40
+ * Called after the page size changes.
41
+ *
42
+ * @default undefined
43
+ */
44
+ readonly onPageSizeChange?: (info: OffsetPaginationInfo) => void;
45
+ /**
46
+ * Called after the page count changes.
47
+ *
48
+ * @default undefined
49
+ */
50
+ readonly onPageCountChange?: (info: OffsetPaginationInfo) => void;
51
+ }
52
+ /** Pagination state and controls returned by {@link useOffsetPagination}. */
53
+ interface OffsetPagination {
54
+ /** One-based current page, always within `[1, pageCount]`. Writable. */
55
+ readonly currentPage: WritableComputedRef<number>;
56
+ /** Items per page, at least one. Writable. */
57
+ readonly currentPageSize: WritableComputedRef<number>;
58
+ /** Number of pages (at least one). */
59
+ readonly pageCount: ComputedRef<number>;
60
+ /** Zero-based offset of the first item of the current page. */
61
+ readonly offset: ComputedRef<number>;
62
+ /** Whether the current page is the first. */
63
+ readonly isFirstPage: ComputedRef<boolean>;
64
+ /** Whether the current page is the last. */
65
+ readonly isLastPage: ComputedRef<boolean>;
66
+ /** Go to the previous page (no-op on the first). */
67
+ readonly prev: () => void;
68
+ /** Go to the next page (no-op on the last). */
69
+ readonly next: () => void;
70
+ }
71
+ /**
72
+ * Offset-based pagination state.
73
+ *
74
+ * The page is clamped into `[1, pageCount]` on every read and write, so
75
+ * shrinking `total` or growing `pageSize` never leaves the cursor past the
76
+ * end. Writable `page`/`pageSize` refs are updated in place for two-way
77
+ * binding. Callbacks fire after the corresponding value settles.
78
+ * Synchronous state: SSR-safe; watchers follow the owning scope.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * const { currentPage, pageCount, next, offset } = useOffsetPagination({ total, pageSize: 20 });
83
+ * ```
84
+ *
85
+ * @param options Total, page, page size, and change callbacks.
86
+ * @default options {}
87
+ * @returns Pagination state and controls.
88
+ */
89
+ declare function useOffsetPagination(options?: UseOffsetPaginationOptions): OffsetPagination;
90
+ //#endregion
91
+ export { OffsetPagination, OffsetPaginationInfo, UseOffsetPaginationOptions, useOffsetPagination };
@@ -0,0 +1,80 @@
1
+ import { computed, isRef, shallowRef, toValue, watch } from "vue";
2
+ //#region src/use-offset-pagination.ts
3
+ function toWritable(value, fallback) {
4
+ return isRef(value) ? value : shallowRef(value ?? fallback);
5
+ }
6
+ /**
7
+ * Offset-based pagination state.
8
+ *
9
+ * The page is clamped into `[1, pageCount]` on every read and write, so
10
+ * shrinking `total` or growing `pageSize` never leaves the cursor past the
11
+ * end. Writable `page`/`pageSize` refs are updated in place for two-way
12
+ * binding. Callbacks fire after the corresponding value settles.
13
+ * Synchronous state: SSR-safe; watchers follow the owning scope.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * const { currentPage, pageCount, next, offset } = useOffsetPagination({ total, pageSize: 20 });
18
+ * ```
19
+ *
20
+ * @param options Total, page, page size, and change callbacks.
21
+ * @default options {}
22
+ * @returns Pagination state and controls.
23
+ */
24
+ function useOffsetPagination(options = {}) {
25
+ const page = toWritable(options.page, 1);
26
+ const size = toWritable(options.pageSize, 10);
27
+ const currentPageSize = computed({
28
+ get: () => Math.max(1, Math.trunc(size.value)),
29
+ set: (value) => {
30
+ size.value = Math.max(1, Math.trunc(value));
31
+ }
32
+ });
33
+ const pageCount = computed(() => {
34
+ const total = toValue(options.total ?? Number.POSITIVE_INFINITY);
35
+ return Math.max(1, Math.ceil(Math.max(0, total) / currentPageSize.value));
36
+ });
37
+ const clampPage = (value) => Math.min(pageCount.value, Math.max(1, Number.isNaN(value) ? 1 : Math.trunc(value)));
38
+ const currentPage = computed({
39
+ get: () => clampPage(page.value),
40
+ set: (value) => {
41
+ page.value = clampPage(value);
42
+ }
43
+ });
44
+ const offset = computed(() => (currentPage.value - 1) * currentPageSize.value);
45
+ const isFirstPage = computed(() => currentPage.value === 1);
46
+ const isLastPage = computed(() => currentPage.value === pageCount.value);
47
+ const info = () => ({
48
+ currentPage: currentPage.value,
49
+ currentPageSize: currentPageSize.value,
50
+ pageCount: pageCount.value
51
+ });
52
+ if (options.onPageChange !== void 0) {
53
+ const callback = options.onPageChange;
54
+ watch(currentPage, () => callback(info()));
55
+ }
56
+ if (options.onPageSizeChange !== void 0) {
57
+ const callback = options.onPageSizeChange;
58
+ watch(currentPageSize, () => callback(info()));
59
+ }
60
+ if (options.onPageCountChange !== void 0) {
61
+ const callback = options.onPageCountChange;
62
+ watch(pageCount, () => callback(info()));
63
+ }
64
+ return {
65
+ currentPage,
66
+ currentPageSize,
67
+ pageCount,
68
+ offset,
69
+ isFirstPage,
70
+ isLastPage,
71
+ prev: () => {
72
+ currentPage.value -= 1;
73
+ },
74
+ next: () => {
75
+ currentPage.value += 1;
76
+ }
77
+ };
78
+ }
79
+ //#endregion
80
+ export { useOffsetPagination };
@@ -0,0 +1,239 @@
1
+ import { ComputedRef, MaybeRef, MaybeRefOrGetter, ShallowRef } from "vue";
2
+
3
+ //#region src/use-payment-request.d.ts
4
+ /** Monetary amount. */
5
+ interface PaymentAmount {
6
+ /** ISO 4217 currency code. */
7
+ readonly currency: string;
8
+ /** Decimal amount, for example `"9.99"`. */
9
+ readonly value: string;
10
+ }
11
+ /** Line item shown on the payment sheet. */
12
+ interface PaymentLineItem {
13
+ /** Human-readable label. */
14
+ readonly label: string;
15
+ /** Amount. */
16
+ readonly amount: PaymentAmount;
17
+ /** Whether the amount is not final yet. */
18
+ readonly pending?: boolean;
19
+ }
20
+ /** Selectable shipping option. */
21
+ interface PaymentShippingOption {
22
+ /** Option id reported back in `shippingOption`. */
23
+ readonly id: string;
24
+ /** Human-readable label. */
25
+ readonly label: string;
26
+ /** Price of the option. */
27
+ readonly amount: PaymentAmount;
28
+ /** Whether the option is preselected. */
29
+ readonly selected?: boolean;
30
+ }
31
+ /** Accepted payment method. */
32
+ interface PaymentMethod {
33
+ /** Payment method identifier (URL or standardized name). */
34
+ readonly supportedMethods: string;
35
+ /** Method-specific data. */
36
+ readonly data?: unknown;
37
+ }
38
+ /** Initial payment details. */
39
+ interface PaymentDetails {
40
+ /** Request id. */
41
+ readonly id?: string;
42
+ /** Total amount. */
43
+ readonly total: PaymentLineItem;
44
+ /** Line items. */
45
+ readonly displayItems?: readonly PaymentLineItem[];
46
+ /** Shipping options. */
47
+ readonly shippingOptions?: readonly PaymentShippingOption[];
48
+ }
49
+ /** Details passed to `updateWith` after a shipping change. */
50
+ interface PaymentDetailsUpdate {
51
+ /** Updated total. */
52
+ readonly total?: PaymentLineItem;
53
+ /** Updated line items. */
54
+ readonly displayItems?: readonly PaymentLineItem[];
55
+ /** Updated shipping options (empty to reject the address). */
56
+ readonly shippingOptions?: readonly PaymentShippingOption[];
57
+ /** Error message shown to the user. */
58
+ readonly error?: string;
59
+ /** Per-field shipping address errors. */
60
+ readonly shippingAddressErrors?: Readonly<Record<string, string>>;
61
+ }
62
+ /** Shipping category of the request. */
63
+ type PaymentShippingType = "shipping" | "delivery" | "pickup";
64
+ /** Payer information requested from the sheet. */
65
+ interface PaymentRequestOptionsInit {
66
+ /** Request the payer name. */
67
+ readonly requestPayerName?: boolean;
68
+ /** Request the payer email. */
69
+ readonly requestPayerEmail?: boolean;
70
+ /** Request the payer phone. */
71
+ readonly requestPayerPhone?: boolean;
72
+ /** Request a shipping address. */
73
+ readonly requestShipping?: boolean;
74
+ /** Shipping category. */
75
+ readonly shippingType?: PaymentShippingType;
76
+ }
77
+ /** Outcome passed to {@link PaymentResponseLike.complete}. */
78
+ type PaymentCompletion = "success" | "fail" | "unknown";
79
+ /** Minimal `PaymentResponse`. */
80
+ interface PaymentResponseLike {
81
+ /** Request id. */
82
+ readonly requestId: string;
83
+ /** Method the payer chose. */
84
+ readonly methodName: string;
85
+ /** Method-specific response data. */
86
+ readonly details: unknown;
87
+ /** Payer name, when requested. */
88
+ readonly payerName?: string | null;
89
+ /** Payer email, when requested. */
90
+ readonly payerEmail?: string | null;
91
+ /** Payer phone, when requested. */
92
+ readonly payerPhone?: string | null;
93
+ /** Shipping address, when requested. */
94
+ readonly shippingAddress?: unknown;
95
+ /** Selected shipping option id. */
96
+ readonly shippingOption?: string | null;
97
+ /** Close the sheet with an outcome. */
98
+ complete(result?: PaymentCompletion): Promise<void>;
99
+ }
100
+ /** Minimal `PaymentRequest` instance. */
101
+ interface PaymentRequestLike extends EventTarget {
102
+ /** Current shipping address. */
103
+ readonly shippingAddress?: unknown;
104
+ /** Current shipping option id. */
105
+ readonly shippingOption?: string | null;
106
+ /** Whether a method can be used. */
107
+ canMakePayment(): Promise<boolean>;
108
+ /** Show the payment sheet (needs user activation). */
109
+ show(): Promise<PaymentResponseLike>;
110
+ /** Abort a showing sheet. */
111
+ abort(): Promise<void>;
112
+ }
113
+ /** Minimal `PaymentRequest` constructor. */
114
+ type PaymentRequestHost = new (methods: PaymentMethod[], details: PaymentDetails, options?: PaymentRequestOptionsInit) => PaymentRequestLike;
115
+ /** Context passed to shipping change hooks. */
116
+ interface PaymentShippingChange {
117
+ /** Request that fired the change. */
118
+ readonly request: PaymentRequestLike;
119
+ /** Current shipping address. */
120
+ readonly shippingAddress: unknown;
121
+ /** Current shipping option id. */
122
+ readonly shippingOption: string | null;
123
+ }
124
+ /**
125
+ * Shipping change hook. Return (or resolve to) a details update to call
126
+ * `updateWith`; return `undefined` to leave the sheet unchanged.
127
+ */
128
+ type PaymentShippingChangeHook = (change: PaymentShippingChange) => PaymentDetailsUpdate | Promise<PaymentDetailsUpdate> | undefined;
129
+ /** Options for {@link usePaymentRequest}. */
130
+ interface UsePaymentRequestOptions {
131
+ /** Accepted payment methods. Reactive; read when a request is created. */
132
+ readonly methods: MaybeRefOrGetter<readonly PaymentMethod[]>;
133
+ /** Payment details. Reactive; read when a request is created. */
134
+ readonly details: MaybeRefOrGetter<PaymentDetails>;
135
+ /**
136
+ * Payer information to request.
137
+ *
138
+ * @default {}
139
+ */
140
+ readonly paymentOptions?: MaybeRefOrGetter<PaymentRequestOptionsInit>;
141
+ /**
142
+ * `PaymentRequest` constructor for alternate runtimes and tests. A ref
143
+ * (not a getter) because the host is a constructor function.
144
+ *
145
+ * @default window.PaymentRequest when it exists
146
+ */
147
+ readonly PaymentRequest?: MaybeRef<PaymentRequestHost | null | undefined>;
148
+ /**
149
+ * Called on `shippingaddresschange`.
150
+ *
151
+ * @default undefined
152
+ */
153
+ readonly onShippingAddressChange?: PaymentShippingChangeHook;
154
+ /**
155
+ * Called on `shippingoptionchange`.
156
+ *
157
+ * @default undefined
158
+ */
159
+ readonly onShippingOptionChange?: PaymentShippingChangeHook;
160
+ }
161
+ /** Lifecycle of the payment sheet. */
162
+ type PaymentRequestState = "idle" | "interactive" | "awaiting-complete";
163
+ /** Discriminated outcome of {@link PaymentRequestControls.show}. */
164
+ type PaymentShowResult = {
165
+ /** The payer authorized the payment; call `complete` next. */readonly status: "completed"; /** Payment response. */
166
+ readonly response: PaymentResponseLike;
167
+ } | {
168
+ /**
169
+ * `aborted`: dismissed or aborted; `unsupported`: no API or no
170
+ * supported method; `failed`: anything else.
171
+ */
172
+ readonly status: "aborted" | "unsupported" | "failed"; /** Error thrown by the host, when one was thrown. */
173
+ readonly error: unknown;
174
+ };
175
+ /** Reactive state and actions returned by {@link usePaymentRequest}. */
176
+ interface PaymentRequestControls {
177
+ /** Whether the Payment Request API is available. */
178
+ readonly supported: ComputedRef<boolean>;
179
+ /** Sheet lifecycle. */
180
+ readonly state: Readonly<ShallowRef<PaymentRequestState>>;
181
+ /** Most recent response, cleared when a new sheet is shown. */
182
+ readonly response: Readonly<ShallowRef<PaymentResponseLike | undefined>>;
183
+ /** Most recent failure (not dismissals). */
184
+ readonly error: Readonly<ShallowRef<unknown>>;
185
+ /**
186
+ * Whether the configured methods can be used.
187
+ *
188
+ * @returns `false` when unsupported or the check fails.
189
+ */
190
+ readonly canMakePayment: () => Promise<boolean>;
191
+ /**
192
+ * Show the payment sheet. Aborts a sheet that is still showing.
193
+ *
194
+ * @returns The discriminated outcome; never rejects.
195
+ */
196
+ readonly show: () => Promise<PaymentShowResult>;
197
+ /**
198
+ * Close the sheet after processing the response.
199
+ *
200
+ * @param result Processing outcome.
201
+ * @default result "unknown"
202
+ * @returns Whether a response was completed.
203
+ */
204
+ readonly complete: (result?: PaymentCompletion) => Promise<boolean>;
205
+ /**
206
+ * Abort the showing sheet.
207
+ *
208
+ * @returns Whether a sheet was aborted.
209
+ */
210
+ readonly abort: () => Promise<boolean>;
211
+ }
212
+ /**
213
+ * Collect payments with a typed Payment Request API wrapper.
214
+ *
215
+ * Every `show()` constructs a fresh request from the reactive `methods`,
216
+ * `details`, and `paymentOptions`, wires the shipping hooks (which call
217
+ * `updateWith` synchronously when they return an update), and resolves to a
218
+ * discriminated {@link PaymentShowResult}. Call `complete()` after
219
+ * processing a `"completed"` result. A showing sheet is aborted when the
220
+ * owning reactive scope stops; outside a scope call `abort()`.
221
+ *
222
+ * Server rendering: nothing is constructed, `supported` is false and
223
+ * `state` is `"idle"`.
224
+ * Inside a component `supported` turns true only after mounting, so
225
+ * hydration renders this server state first.
226
+ *
227
+ * @example
228
+ * ```ts
229
+ * const payment = usePaymentRequest({ methods, details: { total } });
230
+ * const result = await payment.show();
231
+ * if (result.status === "completed") await payment.complete(await charge(result.response));
232
+ * ```
233
+ *
234
+ * @param options Methods, details, hooks, and the constructor host.
235
+ * @returns Payment state and actions.
236
+ */
237
+ declare function usePaymentRequest(options: UsePaymentRequestOptions): PaymentRequestControls;
238
+ //#endregion
239
+ export { PaymentAmount, PaymentCompletion, PaymentDetails, PaymentDetailsUpdate, PaymentLineItem, PaymentMethod, PaymentRequestControls, PaymentRequestHost, PaymentRequestLike, PaymentRequestOptionsInit, PaymentRequestState, PaymentResponseLike, PaymentShippingChange, PaymentShippingChangeHook, PaymentShippingOption, PaymentShippingType, PaymentShowResult, UsePaymentRequestOptions, usePaymentRequest };