@vizejs/composable 0.426.3 → 0.427.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abort-signal.d.mts +1 -1
- package/dist/active-element.d.mts +37 -0
- package/dist/active-element.mjs +56 -0
- package/dist/animate.d.mts +114 -0
- package/dist/animate.mjs +157 -0
- package/dist/battery.d.mts +61 -0
- package/dist/battery.mjs +90 -0
- package/dist/breakpoints.d.mts +82 -0
- package/dist/breakpoints.mjs +91 -0
- package/dist/catalog-BeTXFKxF.d.mts +4188 -0
- package/dist/catalog-r4Z5nptX.mjs +5144 -0
- package/dist/catalog.d.mts +1 -1
- package/dist/catalog.mjs +1 -1
- package/dist/color-mode.d.mts +131 -0
- package/dist/color-mode.mjs +133 -0
- package/dist/computed-async.d.mts +63 -0
- package/dist/computed-async.mjs +43 -0
- package/dist/computed-with-control.d.mts +44 -0
- package/dist/computed-with-control.mjs +54 -0
- package/dist/create-event-hook.d.mts +77 -0
- package/dist/create-event-hook.mjs +66 -0
- package/dist/create-global-state.d.mts +24 -0
- package/dist/create-global-state.mjs +34 -0
- package/dist/create-injection-state.d.mts +51 -0
- package/dist/create-injection-state.mjs +19 -0
- package/dist/create-shared-composable.d.mts +38 -0
- package/dist/create-shared-composable.mjs +54 -0
- package/dist/device-motion.d.mts +71 -0
- package/dist/device-motion.mjs +75 -0
- package/dist/device-orientation.d.mts +82 -0
- package/dist/device-orientation.mjs +86 -0
- package/dist/device-pixel-ratio.d.mts +45 -0
- package/dist/device-pixel-ratio.mjs +50 -0
- package/dist/document-visibility.mjs +6 -2
- package/dist/draggable.d.mts +121 -0
- package/dist/draggable.mjs +153 -0
- package/dist/element-bounding.d.mts +87 -0
- package/dist/element-bounding.mjs +95 -0
- package/dist/element-by-point.d.mts +70 -0
- package/dist/element-by-point.mjs +69 -0
- package/dist/element-hover.d.mts +42 -0
- package/dist/element-hover.mjs +70 -0
- package/dist/element-ref.d.mts +34 -0
- package/dist/element-ref.mjs +23 -0
- package/dist/element-target-Crpxl4D9.d.mts +60 -0
- package/dist/element-target.d.mts +2 -0
- package/dist/element-target.mjs +58 -0
- package/dist/event-listener.mjs +7 -3
- package/dist/focus.d.mts +69 -0
- package/dist/focus.mjs +124 -0
- package/dist/fps.d.mts +59 -0
- package/dist/fps.mjs +64 -0
- package/dist/geolocation.d.mts +98 -0
- package/dist/geolocation.mjs +86 -0
- package/dist/i18n.d.mts +237 -0
- package/dist/i18n.mjs +215 -0
- package/dist/icu-message.d.mts +235 -0
- package/dist/icu-message.mjs +343 -0
- package/dist/idle.d.mts +79 -0
- package/dist/idle.mjs +90 -0
- package/dist/index.d.mts +172 -6
- package/dist/index.mjs +173 -7
- package/dist/infinite-scroll.d.mts +56 -0
- package/dist/infinite-scroll.mjs +72 -0
- package/dist/intersection-observer.d.mts +122 -0
- package/dist/intersection-observer.mjs +117 -0
- package/dist/magic-keys.d.mts +121 -0
- package/dist/magic-keys.mjs +163 -0
- package/dist/math.d.mts +96 -0
- package/dist/math.mjs +84 -0
- package/dist/media-query.d.mts +3 -1
- package/dist/media-query.mjs +5 -3
- package/dist/mouse-in-element.d.mts +49 -0
- package/dist/mouse-in-element.mjs +66 -0
- package/dist/mouse.d.mts +77 -0
- package/dist/mouse.mjs +100 -0
- package/dist/mutation-observer.d.mts +98 -0
- package/dist/mutation-observer.mjs +69 -0
- package/dist/network.d.mts +96 -0
- package/dist/network.mjs +117 -0
- package/dist/on-click-outside.d.mts +69 -0
- package/dist/on-click-outside.mjs +115 -0
- package/dist/on-key-stroke.d.mts +71 -0
- package/dist/on-key-stroke.mjs +79 -0
- package/dist/on-long-press.d.mts +82 -0
- package/dist/on-long-press.mjs +105 -0
- package/dist/on-start-typing.d.mts +44 -0
- package/dist/on-start-typing.mjs +61 -0
- package/dist/page-leave.d.mts +26 -0
- package/dist/page-leave.mjs +40 -0
- package/dist/parent-element.d.mts +16 -0
- package/dist/parent-element.mjs +27 -0
- package/dist/pinch.d.mts +73 -0
- package/dist/pinch.mjs +138 -0
- package/dist/pointer-lock.d.mts +79 -0
- package/dist/pointer-lock.mjs +126 -0
- package/dist/pointer.d.mts +78 -0
- package/dist/pointer.mjs +95 -0
- package/dist/preferences.d.mts +55 -0
- package/dist/preferences.mjs +63 -0
- package/dist/preferred-languages.d.mts +43 -0
- package/dist/preferred-languages.mjs +44 -0
- package/dist/reactify.d.mts +28 -0
- package/dist/reactify.mjs +7 -0
- package/dist/ref-auto-reset.d.mts +47 -0
- package/dist/ref-auto-reset.mjs +70 -0
- package/dist/ref-debounced.d.mts +29 -0
- package/dist/ref-debounced.mjs +29 -0
- package/dist/ref-default.d.mts +27 -0
- package/dist/ref-default.mjs +33 -0
- package/dist/resize-observer.d.mts +96 -0
- package/dist/resize-observer.mjs +111 -0
- package/dist/resolver.d.mts +124 -0
- package/dist/resolver.mjs +138 -0
- package/dist/retry-async.d.mts +2 -2
- package/dist/retry-delay-DYsdq4SE.d.mts +73 -0
- package/dist/retry-delay.d.mts +1 -72
- package/dist/screen-orientation.d.mts +77 -0
- package/dist/screen-orientation.mjs +74 -0
- package/dist/scroll-lock.d.mts +37 -0
- package/dist/scroll-lock.mjs +50 -0
- package/dist/scroll.d.mts +158 -0
- package/dist/scroll.mjs +172 -0
- package/dist/standard-schema-DmNgFVK5.d.mts +107 -0
- package/dist/standard-schema.d.mts +2 -0
- package/dist/standard-schema.mjs +60 -0
- package/dist/swipe.d.mts +125 -0
- package/dist/swipe.mjs +225 -0
- package/dist/sync-ref.d.mts +80 -0
- package/dist/sync-ref.mjs +43 -0
- package/dist/text-selection.d.mts +46 -0
- package/dist/text-selection.mjs +62 -0
- package/dist/textarea-autosize.d.mts +58 -0
- package/dist/textarea-autosize.mjs +54 -0
- package/dist/timeout-scheduler-CI8RVLZs.d.mts +18 -0
- package/dist/timeout-scheduler.d.mts +1 -17
- package/dist/to-reactive.d.mts +26 -0
- package/dist/to-reactive.mjs +46 -0
- package/dist/transition.d.mts +125 -0
- package/dist/transition.mjs +266 -0
- package/dist/until.d.mts +177 -0
- package/dist/until.mjs +111 -0
- package/dist/use-array.d.mts +112 -0
- package/dist/use-array.mjs +90 -0
- package/dist/use-async-queue.d.mts +109 -0
- package/dist/use-async-queue.mjs +96 -0
- package/dist/use-async-state.d.mts +86 -0
- package/dist/use-async-state.mjs +41 -0
- package/dist/use-barcode-detector.d.mts +159 -0
- package/dist/use-barcode-detector.mjs +143 -0
- package/dist/use-bluetooth.d.mts +164 -0
- package/dist/use-bluetooth.mjs +183 -0
- package/dist/use-broadcast-channel.d.mts +115 -0
- package/dist/use-broadcast-channel.mjs +121 -0
- package/dist/use-builtin-ai.d.mts +342 -0
- package/dist/use-builtin-ai.mjs +261 -0
- package/dist/use-clipboard.d.mts +169 -0
- package/dist/use-clipboard.mjs +226 -0
- package/dist/use-compression-stream.d.mts +173 -0
- package/dist/use-compression-stream.mjs +166 -0
- package/dist/use-confirm-dialog.d.mts +70 -0
- package/dist/use-confirm-dialog.mjs +57 -0
- package/dist/use-contact-picker.d.mts +117 -0
- package/dist/use-contact-picker.mjs +103 -0
- package/dist/use-cookie.d.mts +196 -0
- package/dist/use-cookie.mjs +259 -0
- package/dist/use-countdown.d.mts +85 -0
- package/dist/use-countdown.mjs +74 -0
- package/dist/use-css-var.d.mts +96 -0
- package/dist/use-css-var.mjs +104 -0
- package/dist/use-cycle-list.d.mts +76 -0
- package/dist/use-cycle-list.mjs +39 -0
- package/dist/use-date-format.d.mts +103 -0
- package/dist/use-date-format.mjs +147 -0
- package/dist/use-date-time-format.d.mts +75 -0
- package/dist/use-date-time-format.mjs +53 -0
- package/dist/use-debounced.d.mts +1 -1
- package/dist/use-display-media.d.mts +62 -0
- package/dist/use-display-media.mjs +46 -0
- package/dist/use-display-names.d.mts +75 -0
- package/dist/use-display-names.mjs +52 -0
- package/dist/use-document-title.d.mts +88 -0
- package/dist/use-document-title.mjs +100 -0
- package/dist/use-drop-zone.d.mts +128 -0
- package/dist/use-drop-zone.mjs +154 -0
- package/dist/use-event-source.d.mts +184 -0
- package/dist/use-event-source.mjs +226 -0
- package/dist/use-eye-dropper.d.mts +79 -0
- package/dist/use-eye-dropper.mjs +68 -0
- package/dist/use-favicon.d.mts +78 -0
- package/dist/use-favicon.mjs +68 -0
- package/dist/use-fetch.d.mts +230 -0
- package/dist/use-fetch.mjs +263 -0
- package/dist/use-field.d.mts +107 -0
- package/dist/use-field.mjs +117 -0
- package/dist/use-file-dialog.d.mts +139 -0
- package/dist/use-file-dialog.mjs +101 -0
- package/dist/use-file-system-access.d.mts +184 -0
- package/dist/use-file-system-access.mjs +151 -0
- package/dist/use-form-field-props.d.mts +235 -0
- package/dist/use-form-field-props.mjs +164 -0
- package/dist/use-form.d.mts +324 -0
- package/dist/use-form.mjs +482 -0
- package/dist/use-fullscreen.d.mts +104 -0
- package/dist/use-fullscreen.mjs +95 -0
- package/dist/use-gamepad.d.mts +242 -0
- package/dist/use-gamepad.mjs +218 -0
- package/dist/use-hid.d.mts +160 -0
- package/dist/use-hid.mjs +156 -0
- package/dist/use-id-generator.d.mts +44 -0
- package/dist/use-id-generator.mjs +38 -0
- package/dist/use-image.d.mts +125 -0
- package/dist/use-image.mjs +109 -0
- package/dist/use-indexed-db.d.mts +207 -0
- package/dist/use-indexed-db.mjs +251 -0
- package/dist/use-interval-BA55gTHT.d.mts +140 -0
- package/dist/use-interval.d.mts +2 -0
- package/dist/use-interval.mjs +100 -0
- package/dist/use-list-format.d.mts +60 -0
- package/dist/use-list-format.mjs +40 -0
- package/dist/use-machine.d.mts +90 -0
- package/dist/use-machine.mjs +78 -0
- package/dist/use-map.d.mts +90 -0
- package/dist/use-map.mjs +70 -0
- package/dist/use-media-controls.d.mts +198 -0
- package/dist/use-media-controls.mjs +264 -0
- package/dist/use-memoize.d.mts +73 -0
- package/dist/use-memoize.mjs +28 -0
- package/dist/use-mounted.d.mts +24 -0
- package/dist/use-mounted.mjs +29 -0
- package/dist/use-navigation-api.d.mts +360 -0
- package/dist/use-navigation-api.mjs +231 -0
- package/dist/use-notification.d.mts +139 -0
- package/dist/use-notification.mjs +131 -0
- package/dist/use-now.d.mts +137 -0
- package/dist/use-now.mjs +44 -0
- package/dist/use-number-format.d.mts +73 -0
- package/dist/use-number-format.mjs +58 -0
- package/dist/use-object-url.d.mts +47 -0
- package/dist/use-object-url.mjs +54 -0
- package/dist/use-offset-pagination.d.mts +91 -0
- package/dist/use-offset-pagination.mjs +80 -0
- package/dist/use-payment-request.d.mts +239 -0
- package/dist/use-payment-request.mjs +206 -0
- package/dist/use-performance-observer.d.mts +285 -0
- package/dist/use-performance-observer.mjs +132 -0
- package/dist/use-permission.d.mts +99 -0
- package/dist/use-permission.mjs +92 -0
- package/dist/use-plural-rules.d.mts +79 -0
- package/dist/use-plural-rules.mjs +59 -0
- package/dist/use-push-subscription.d.mts +154 -0
- package/dist/use-push-subscription.mjs +146 -0
- package/dist/use-queue.d.mts +89 -0
- package/dist/use-queue.mjs +116 -0
- package/dist/use-raf-fn.d.mts +87 -0
- package/dist/use-raf-fn.mjs +99 -0
- package/dist/use-relative-time-format.d.mts +111 -0
- package/dist/use-relative-time-format.mjs +119 -0
- package/dist/use-request-idle-callback.d.mts +122 -0
- package/dist/use-request-idle-callback.mjs +147 -0
- package/dist/use-route-query.d.mts +149 -0
- package/dist/use-route-query.mjs +86 -0
- package/dist/use-scheduler-post-task.d.mts +156 -0
- package/dist/use-scheduler-post-task.mjs +182 -0
- package/dist/use-screen-details.d.mts +205 -0
- package/dist/use-screen-details.mjs +188 -0
- package/dist/use-script-tag.d.mts +162 -0
- package/dist/use-script-tag.mjs +171 -0
- package/dist/use-segmenter.d.mts +78 -0
- package/dist/use-segmenter.mjs +66 -0
- package/dist/use-selection.d.mts +125 -0
- package/dist/use-selection.mjs +77 -0
- package/dist/use-serial.d.mts +165 -0
- package/dist/use-serial.mjs +205 -0
- package/dist/use-service-worker.d.mts +177 -0
- package/dist/use-service-worker.mjs +178 -0
- package/dist/use-set.d.mts +96 -0
- package/dist/use-set.mjs +74 -0
- package/dist/use-share.d.mts +92 -0
- package/dist/use-share.mjs +99 -0
- package/dist/use-sorted-locale.d.mts +62 -0
- package/dist/use-sorted-locale.mjs +52 -0
- package/dist/use-sorted.d.mts +29 -0
- package/dist/use-sorted.mjs +14 -0
- package/dist/use-speech-recognition.d.mts +150 -0
- package/dist/use-speech-recognition.mjs +168 -0
- package/dist/use-speech-synthesis.d.mts +148 -0
- package/dist/use-speech-synthesis.mjs +152 -0
- package/dist/use-stack.d.mts +83 -0
- package/dist/use-stack.mjs +93 -0
- package/dist/use-stepper.d.mts +79 -0
- package/dist/use-stepper.mjs +52 -0
- package/dist/use-storage-estimate.d.mts +151 -0
- package/dist/use-storage-estimate.mjs +170 -0
- package/dist/use-storage.d.mts +214 -0
- package/dist/use-storage.mjs +415 -0
- package/dist/use-style-tag.d.mts +102 -0
- package/dist/use-style-tag.mjs +91 -0
- package/dist/use-supported.d.mts +23 -0
- package/dist/use-supported.mjs +26 -0
- package/dist/use-throttled.d.mts +1 -1
- package/dist/use-time-ago.d.mts +163 -0
- package/dist/use-time-ago.mjs +95 -0
- package/dist/use-timeout.d.mts +122 -0
- package/dist/use-timeout.mjs +65 -0
- package/dist/use-url-hash.d.mts +88 -0
- package/dist/use-url-hash.mjs +145 -0
- package/dist/use-url-search-params.d.mts +223 -0
- package/dist/use-url-search-params.mjs +295 -0
- package/dist/use-usb.d.mts +212 -0
- package/dist/use-usb.mjs +137 -0
- package/dist/use-user-activation.d.mts +83 -0
- package/dist/use-user-activation.mjs +113 -0
- package/dist/use-user-media.d.mts +194 -0
- package/dist/use-user-media.mjs +214 -0
- package/dist/use-v-model.d.mts +113 -0
- package/dist/use-v-model.mjs +40 -0
- package/dist/use-vibrate.d.mts +81 -0
- package/dist/use-vibrate.mjs +90 -0
- package/dist/use-view-transition.d.mts +106 -0
- package/dist/use-view-transition.mjs +101 -0
- package/dist/use-visual-viewport.d.mts +105 -0
- package/dist/use-visual-viewport.mjs +104 -0
- package/dist/use-wake-lock.d.mts +96 -0
- package/dist/use-wake-lock.mjs +106 -0
- package/dist/use-web-authn.d.mts +404 -0
- package/dist/use-web-authn.mjs +323 -0
- package/dist/use-web-locks.d.mts +180 -0
- package/dist/use-web-locks.mjs +136 -0
- package/dist/use-web-midi.d.mts +148 -0
- package/dist/use-web-midi.mjs +140 -0
- package/dist/use-web-vitals.d.mts +142 -0
- package/dist/use-web-vitals.mjs +248 -0
- package/dist/use-websocket.d.mts +218 -0
- package/dist/use-websocket.mjs +257 -0
- package/dist/use-worker-fn.d.mts +119 -0
- package/dist/use-worker-fn.mjs +162 -0
- package/dist/virtual-list.d.mts +105 -0
- package/dist/virtual-list.mjs +128 -0
- package/dist/watch-debounced.d.mts +84 -0
- package/dist/watch-debounced.mjs +84 -0
- package/dist/watch-ignorable.d.mts +47 -0
- package/dist/watch-ignorable.mjs +61 -0
- package/dist/watch-once.d.mts +29 -0
- package/dist/watch-once.mjs +10 -0
- package/dist/watch-pausable.d.mts +51 -0
- package/dist/watch-pausable.mjs +23 -0
- package/dist/watch-source.d.mts +29 -0
- package/dist/watch-source.mjs +1 -0
- package/dist/watch-throttled.d.mts +70 -0
- package/dist/watch-throttled.mjs +94 -0
- package/dist/whenever.d.mts +39 -0
- package/dist/whenever.mjs +41 -0
- package/dist/window-size.d.mts +87 -0
- package/dist/window-size.mjs +65 -0
- package/package.json +846 -5
- package/registry/files/abort-signal.ts +292 -0
- package/registry/files/active-element.ts +93 -0
- package/registry/files/animate.ts +322 -0
- package/registry/files/async-resource.ts +190 -0
- package/registry/files/battery.ts +166 -0
- package/registry/files/breakpoints.ts +166 -0
- package/registry/files/capability.ts +171 -0
- package/registry/files/color-mode.ts +274 -0
- package/registry/files/computed-async.ts +123 -0
- package/registry/files/computed-with-control.ts +80 -0
- package/registry/files/create-event-hook.ts +139 -0
- package/registry/files/create-global-state.ts +34 -0
- package/registry/files/create-injection-state.ts +75 -0
- package/registry/files/create-shared-composable.ts +74 -0
- package/registry/files/device-motion.ts +152 -0
- package/registry/files/device-orientation.ts +168 -0
- package/registry/files/device-pixel-ratio.ts +100 -0
- package/registry/files/disposal-scope.ts +201 -0
- package/registry/files/document-visibility.ts +152 -0
- package/registry/files/draggable.ts +273 -0
- package/registry/files/element-bounding.ts +175 -0
- package/registry/files/element-by-point.ts +149 -0
- package/registry/files/element-hover.ts +104 -0
- package/registry/files/element-ref.ts +58 -0
- package/registry/files/element-target.ts +99 -0
- package/registry/files/event-listener.ts +188 -0
- package/registry/files/focus.ts +181 -0
- package/registry/files/fps.ts +133 -0
- package/registry/files/geolocation.ts +214 -0
- package/registry/files/i18n.ts +524 -0
- package/registry/files/icu-message.ts +701 -0
- package/registry/files/idle.ts +176 -0
- package/registry/files/infinite-scroll.ts +135 -0
- package/registry/files/intersection-observer.ts +261 -0
- package/registry/files/locale.ts +148 -0
- package/registry/files/magic-keys.ts +298 -0
- package/registry/files/math.ts +175 -0
- package/registry/files/media-query.ts +102 -0
- package/registry/files/mouse-in-element.ts +107 -0
- package/registry/files/mouse.ts +167 -0
- package/registry/files/mutation-observer.ts +183 -0
- package/registry/files/network.ts +229 -0
- package/registry/files/on-click-outside.ts +178 -0
- package/registry/files/on-key-stroke.ts +135 -0
- package/registry/files/on-long-press.ts +188 -0
- package/registry/files/on-start-typing.ts +88 -0
- package/registry/files/page-leave.ts +57 -0
- package/registry/files/parent-element.ts +29 -0
- package/registry/files/pinch.ts +187 -0
- package/registry/files/pointer-lock.ts +232 -0
- package/registry/files/pointer.ts +153 -0
- package/registry/files/preferences.ts +98 -0
- package/registry/files/preferred-languages.ts +88 -0
- package/registry/files/reactify.ts +39 -0
- package/registry/files/ref-auto-reset.ts +102 -0
- package/registry/files/ref-debounced.ts +34 -0
- package/registry/files/ref-default.ts +35 -0
- package/registry/files/resize-observer.ts +220 -0
- package/registry/files/retry-async.ts +261 -0
- package/registry/files/retry-delay.ts +132 -0
- package/registry/files/scope.ts +21 -0
- package/registry/files/screen-orientation.ts +165 -0
- package/registry/files/scroll-lock.ts +80 -0
- package/registry/files/scroll.ts +338 -0
- package/registry/files/standard-schema.ts +163 -0
- package/registry/files/swipe.ts +321 -0
- package/registry/files/sync-ref.ts +166 -0
- package/registry/files/temporal.ts +182 -0
- package/registry/files/text-selection.ts +110 -0
- package/registry/files/textarea-autosize.ts +114 -0
- package/registry/files/timeout-scheduler.ts +16 -0
- package/registry/files/to-reactive.ts +44 -0
- package/registry/files/transition.ts +271 -0
- package/registry/files/until.ts +352 -0
- package/registry/files/use-array.ts +201 -0
- package/registry/files/use-async-queue.ts +278 -0
- package/registry/files/use-async-state.ts +139 -0
- package/registry/files/use-barcode-detector.ts +321 -0
- package/registry/files/use-bluetooth.ts +409 -0
- package/registry/files/use-broadcast-channel.ts +250 -0
- package/registry/files/use-builtin-ai.ts +674 -0
- package/registry/files/use-clipboard.ts +425 -0
- package/registry/files/use-compression-stream.ts +364 -0
- package/registry/files/use-confirm-dialog.ts +137 -0
- package/registry/files/use-contact-picker.ts +246 -0
- package/registry/files/use-cookie.ts +500 -0
- package/registry/files/use-countdown.ts +161 -0
- package/registry/files/use-counter.ts +147 -0
- package/registry/files/use-css-var.ts +191 -0
- package/registry/files/use-cycle-list.ts +136 -0
- package/registry/files/use-date-format.ts +281 -0
- package/registry/files/use-date-time-format.ts +113 -0
- package/registry/files/use-debounced.ts +163 -0
- package/registry/files/use-display-media.ts +89 -0
- package/registry/files/use-display-names.ts +122 -0
- package/registry/files/use-document-title.ts +196 -0
- package/registry/files/use-drop-zone.ts +287 -0
- package/registry/files/use-event-source.ts +470 -0
- package/registry/files/use-eye-dropper.ts +134 -0
- package/registry/files/use-favicon.ts +140 -0
- package/registry/files/use-fetch.ts +578 -0
- package/registry/files/use-field.ts +247 -0
- package/registry/files/use-file-dialog.ts +257 -0
- package/registry/files/use-file-system-access.ts +383 -0
- package/registry/files/use-form-field-props.ts +381 -0
- package/registry/files/use-form.ts +980 -0
- package/registry/files/use-fullscreen.ts +214 -0
- package/registry/files/use-gamepad.ts +463 -0
- package/registry/files/use-hid.ts +359 -0
- package/registry/files/use-history.ts +231 -0
- package/registry/files/use-id-generator.ts +61 -0
- package/registry/files/use-image.ts +253 -0
- package/registry/files/use-indexed-db.ts +508 -0
- package/registry/files/use-interval.ts +253 -0
- package/registry/files/use-list-format.ts +85 -0
- package/registry/files/use-machine.ts +171 -0
- package/registry/files/use-map.ts +145 -0
- package/registry/files/use-media-controls.ts +545 -0
- package/registry/files/use-memoize.ts +118 -0
- package/registry/files/use-mounted.ts +30 -0
- package/registry/files/use-navigation-api.ts +641 -0
- package/registry/files/use-notification.ts +285 -0
- package/registry/files/use-now.ts +194 -0
- package/registry/files/use-number-format.ts +120 -0
- package/registry/files/use-object-url.ts +87 -0
- package/registry/files/use-offset-pagination.ts +168 -0
- package/registry/files/use-payment-request.ts +465 -0
- package/registry/files/use-performance-observer.ts +469 -0
- package/registry/files/use-permission.ts +220 -0
- package/registry/files/use-plural-rules.ts +134 -0
- package/registry/files/use-previous.ts +62 -0
- package/registry/files/use-push-subscription.ts +352 -0
- package/registry/files/use-queue.ts +197 -0
- package/registry/files/use-raf-fn.ts +176 -0
- package/registry/files/use-relative-time-format.ts +201 -0
- package/registry/files/use-request-idle-callback.ts +278 -0
- package/registry/files/use-route-query.ts +300 -0
- package/registry/files/use-scheduler-post-task.ts +397 -0
- package/registry/files/use-screen-details.ts +393 -0
- package/registry/files/use-script-tag.ts +341 -0
- package/registry/files/use-segmenter.ts +147 -0
- package/registry/files/use-selection.ts +233 -0
- package/registry/files/use-serial.ts +404 -0
- package/registry/files/use-service-worker.ts +413 -0
- package/registry/files/use-set.ts +154 -0
- package/registry/files/use-share.ts +168 -0
- package/registry/files/use-sorted-locale.ts +130 -0
- package/registry/files/use-sorted.ts +49 -0
- package/registry/files/use-speech-recognition.ts +357 -0
- package/registry/files/use-speech-synthesis.ts +333 -0
- package/registry/files/use-stack.ts +164 -0
- package/registry/files/use-stepper.ts +166 -0
- package/registry/files/use-storage-estimate.ts +352 -0
- package/registry/files/use-storage.ts +635 -0
- package/registry/files/use-style-tag.ts +200 -0
- package/registry/files/use-supported.ts +26 -0
- package/registry/files/use-throttled.ts +215 -0
- package/registry/files/use-time-ago.ts +276 -0
- package/registry/files/use-timeout.ts +218 -0
- package/registry/files/use-toggle.ts +54 -0
- package/registry/files/use-url-hash.ts +280 -0
- package/registry/files/use-url-search-params.ts +497 -0
- package/registry/files/use-usb.ts +395 -0
- package/registry/files/use-user-activation.ts +215 -0
- package/registry/files/use-user-media.ts +422 -0
- package/registry/files/use-v-model.ts +210 -0
- package/registry/files/use-vibrate.ts +174 -0
- package/registry/files/use-view-transition.ts +229 -0
- package/registry/files/use-visual-viewport.ts +228 -0
- package/registry/files/use-wake-lock.ts +206 -0
- package/registry/files/use-web-authn.ts +793 -0
- package/registry/files/use-web-locks.ts +363 -0
- package/registry/files/use-web-midi.ts +306 -0
- package/registry/files/use-web-vitals.ts +409 -0
- package/registry/files/use-websocket.ts +553 -0
- package/registry/files/use-worker-fn.ts +306 -0
- package/registry/files/virtual-list.ts +230 -0
- package/registry/files/watch-debounced.ts +206 -0
- package/registry/files/watch-ignorable.ts +128 -0
- package/registry/files/watch-once.ts +46 -0
- package/registry/files/watch-pausable.ts +93 -0
- package/registry/files/watch-source.ts +51 -0
- package/registry/files/watch-throttled.ts +201 -0
- package/registry/files/whenever.ts +70 -0
- package/registry/files/window-size.ts +151 -0
- package/registry/registry.json +5792 -0
- package/dist/catalog-D2AL3xYl.d.mts +0 -523
- package/dist/catalog-D5SYCsgW.mjs +0 -549
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
//#region src/use-memoize.d.ts
|
|
2
|
+
/** Minimal cache contract used by {@link useMemoize}; a `Map` satisfies it. */
|
|
3
|
+
interface MemoizeCache<Key, Result> {
|
|
4
|
+
/** Read a cached result. */
|
|
5
|
+
get(key: Key): Result | undefined;
|
|
6
|
+
/** Store a result. */
|
|
7
|
+
set(key: Key, value: Result): unknown;
|
|
8
|
+
/** Whether a result is cached for `key`. */
|
|
9
|
+
has(key: Key): boolean;
|
|
10
|
+
/** Drop one result. */
|
|
11
|
+
delete(key: Key): unknown;
|
|
12
|
+
/** Drop every result. */
|
|
13
|
+
clear(): void;
|
|
14
|
+
}
|
|
15
|
+
/** Options for {@link useMemoize}. */
|
|
16
|
+
interface UseMemoizeOptions<Arguments extends readonly unknown[], Key, Result> {
|
|
17
|
+
/**
|
|
18
|
+
* Derive the cache key from the arguments.
|
|
19
|
+
*
|
|
20
|
+
* @default JSON.stringify of the argument list
|
|
21
|
+
*/
|
|
22
|
+
readonly getKey?: (...args: Arguments) => Key;
|
|
23
|
+
/**
|
|
24
|
+
* Storage for results; supply an LRU or a persistent cache here.
|
|
25
|
+
*
|
|
26
|
+
* @default a reactive Map
|
|
27
|
+
*/
|
|
28
|
+
readonly cache?: MemoizeCache<Key, Result>;
|
|
29
|
+
}
|
|
30
|
+
/** Memoized function returned by {@link useMemoize}. */
|
|
31
|
+
interface Memoized<Arguments extends readonly unknown[], Result, Key> {
|
|
32
|
+
/** Return the cached result for these arguments, computing it on a miss. */
|
|
33
|
+
(...args: Arguments): Result;
|
|
34
|
+
/** Recompute and re-cache the result for these arguments. */
|
|
35
|
+
readonly load: (...args: Arguments) => Result;
|
|
36
|
+
/** Drop the cached result for these arguments. */
|
|
37
|
+
readonly delete: (...args: Arguments) => void;
|
|
38
|
+
/** Drop every cached result. */
|
|
39
|
+
readonly clear: () => void;
|
|
40
|
+
/** Cache key for these arguments. */
|
|
41
|
+
readonly generateKey: (...args: Arguments) => Key;
|
|
42
|
+
/** The underlying cache. */
|
|
43
|
+
readonly cache: MemoizeCache<Key, Result>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Cache a function's results per argument list.
|
|
47
|
+
*
|
|
48
|
+
* The default cache is a reactive `Map`, so computeds and templates that
|
|
49
|
+
* read a memoized value re-evaluate after `load`, `delete`, or `clear`.
|
|
50
|
+
* Promise-returning resolvers cache the promise itself, which deduplicates
|
|
51
|
+
* concurrent requests. Keys default to `JSON.stringify(args)` (a `string`);
|
|
52
|
+
* a custom `getKey` sets the key type, and a custom `cache` must use that
|
|
53
|
+
* key type. On the server keep memoized caches request-local (create them in
|
|
54
|
+
* `setup`), since a module-level cache is shared across requests.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* const getUser = useMemoize((id: string) => fetchUser(id), { getKey: (id) => id });
|
|
59
|
+
* const user = computed(() => getUser(props.id));
|
|
60
|
+
* getUser.load(props.id); // refresh
|
|
61
|
+
* ```
|
|
62
|
+
*
|
|
63
|
+
* @param resolver Function whose results are cached.
|
|
64
|
+
* @param options Key derivation and cache storage.
|
|
65
|
+
* @default options {}
|
|
66
|
+
* @returns The memoized function with cache controls.
|
|
67
|
+
*/
|
|
68
|
+
declare function useMemoize<Arguments extends readonly unknown[], Result, Key>(resolver: (...args: Arguments) => Result, options: UseMemoizeOptions<Arguments, Key, Result> & {
|
|
69
|
+
readonly getKey: (...args: Arguments) => Key;
|
|
70
|
+
}): Memoized<Arguments, Result, Key>;
|
|
71
|
+
declare function useMemoize<Arguments extends readonly unknown[], Result>(resolver: (...args: Arguments) => Result, options?: UseMemoizeOptions<Arguments, string, Result>): Memoized<Arguments, Result, string>;
|
|
72
|
+
//#endregion
|
|
73
|
+
export { MemoizeCache, Memoized, UseMemoizeOptions, useMemoize };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { shallowReactive } from "vue";
|
|
2
|
+
//#region src/use-memoize.ts
|
|
3
|
+
function useMemoize(resolver, options = {}) {
|
|
4
|
+
const cache = options.cache ?? shallowReactive(/* @__PURE__ */ new Map());
|
|
5
|
+
const generateKey = (...args) => options.getKey === void 0 ? JSON.stringify(args) : options.getKey(...args);
|
|
6
|
+
const load = (...args) => {
|
|
7
|
+
const result = resolver(...args);
|
|
8
|
+
cache.set(generateKey(...args), result);
|
|
9
|
+
return result;
|
|
10
|
+
};
|
|
11
|
+
const memoized = (...args) => {
|
|
12
|
+
const key = generateKey(...args);
|
|
13
|
+
return cache.has(key) ? cache.get(key) : load(...args);
|
|
14
|
+
};
|
|
15
|
+
return Object.assign(memoized, {
|
|
16
|
+
load,
|
|
17
|
+
delete: (...args) => {
|
|
18
|
+
cache.delete(generateKey(...args));
|
|
19
|
+
},
|
|
20
|
+
clear: () => {
|
|
21
|
+
cache.clear();
|
|
22
|
+
},
|
|
23
|
+
generateKey,
|
|
24
|
+
cache
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
export { useMemoize };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ShallowRef } from "vue";
|
|
2
|
+
|
|
3
|
+
//#region src/use-mounted.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Whether the calling component has mounted.
|
|
6
|
+
*
|
|
7
|
+
* `false` during server rendering and during hydration, `true` from the
|
|
8
|
+
* component's `onMounted` on: gate client-only rendering behind it to keep
|
|
9
|
+
* hydration stable. Outside a component (no instance to mount) it stays
|
|
10
|
+
* `false`. Component detection uses `hasInjectionContext()` rather than
|
|
11
|
+
* `getCurrentInstance()`, which returns `null` inside Vapor components, so
|
|
12
|
+
* the flag also flips in Vapor.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* const mounted = useMounted();
|
|
17
|
+
* // <ClientOnlyChart v-if="mounted" />
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @returns Readonly mounted flag.
|
|
21
|
+
*/
|
|
22
|
+
declare function useMounted(): Readonly<ShallowRef<boolean>>;
|
|
23
|
+
//#endregion
|
|
24
|
+
export { useMounted };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { hasInjectionContext, onMounted, shallowRef } from "vue";
|
|
2
|
+
//#region src/use-mounted.ts
|
|
3
|
+
/**
|
|
4
|
+
* Whether the calling component has mounted.
|
|
5
|
+
*
|
|
6
|
+
* `false` during server rendering and during hydration, `true` from the
|
|
7
|
+
* component's `onMounted` on: gate client-only rendering behind it to keep
|
|
8
|
+
* hydration stable. Outside a component (no instance to mount) it stays
|
|
9
|
+
* `false`. Component detection uses `hasInjectionContext()` rather than
|
|
10
|
+
* `getCurrentInstance()`, which returns `null` inside Vapor components, so
|
|
11
|
+
* the flag also flips in Vapor.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* const mounted = useMounted();
|
|
16
|
+
* // <ClientOnlyChart v-if="mounted" />
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @returns Readonly mounted flag.
|
|
20
|
+
*/
|
|
21
|
+
function useMounted() {
|
|
22
|
+
const mounted = shallowRef(false);
|
|
23
|
+
if (hasInjectionContext()) onMounted(() => {
|
|
24
|
+
mounted.value = true;
|
|
25
|
+
});
|
|
26
|
+
return mounted;
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
export { useMounted };
|
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
import { ComputedRef, MaybeRefOrGetter, ShallowRef } from "vue";
|
|
2
|
+
|
|
3
|
+
//#region src/use-navigation-api.d.ts
|
|
4
|
+
/** Navigation types of the Navigation API. */
|
|
5
|
+
type NavigationTypeName = "push" | "replace" | "reload" | "traverse";
|
|
6
|
+
/** History handling requested by `navigate`. */
|
|
7
|
+
type NavigationHistoryMode = "auto" | "push" | "replace";
|
|
8
|
+
/** Events of the Navigation API observed by {@link useNavigationApi}. */
|
|
9
|
+
type NavigationEventName = "navigate" | "navigatesuccess" | "navigateerror" | "currententrychange";
|
|
10
|
+
/** Minimal `NavigationHistoryEntry`. */
|
|
11
|
+
interface NavigationHistoryEntryLike {
|
|
12
|
+
/** Entry URL, or null when hidden (cross-origin). */
|
|
13
|
+
readonly url: string | null;
|
|
14
|
+
/** Key identifying the history slot. */
|
|
15
|
+
readonly key: string;
|
|
16
|
+
/** Unique identifier of the entry. */
|
|
17
|
+
readonly id: string;
|
|
18
|
+
/** Index in the entry list, or -1. */
|
|
19
|
+
readonly index: number;
|
|
20
|
+
/** Whether the entry belongs to the current document. */
|
|
21
|
+
readonly sameDocument: boolean;
|
|
22
|
+
/** Developer-defined state. */
|
|
23
|
+
getState(): unknown;
|
|
24
|
+
}
|
|
25
|
+
/** Minimal `NavigationDestination`. */
|
|
26
|
+
interface NavigationDestinationLike {
|
|
27
|
+
/** Destination URL. */
|
|
28
|
+
readonly url: string;
|
|
29
|
+
/** Index of the destination entry for traversals, otherwise -1. */
|
|
30
|
+
readonly index: number;
|
|
31
|
+
/** Whether the destination is the current document. */
|
|
32
|
+
readonly sameDocument: boolean;
|
|
33
|
+
/** State of the destination. */
|
|
34
|
+
getState(): unknown;
|
|
35
|
+
}
|
|
36
|
+
/** Options accepted by {@link NavigateEventLike.intercept}. */
|
|
37
|
+
interface NavigationInterceptInit {
|
|
38
|
+
/** Performs the same-document navigation. */
|
|
39
|
+
readonly handler?: () => Promise<void>;
|
|
40
|
+
/** Focus behavior after the navigation. */
|
|
41
|
+
readonly focusReset?: "after-transition" | "manual";
|
|
42
|
+
/** Scroll behavior after the navigation. */
|
|
43
|
+
readonly scroll?: "after-transition" | "manual";
|
|
44
|
+
}
|
|
45
|
+
/** Minimal `NavigateEvent`. */
|
|
46
|
+
interface NavigateEventLike {
|
|
47
|
+
/** Navigation type. */
|
|
48
|
+
readonly navigationType: NavigationTypeName;
|
|
49
|
+
/** Where the navigation goes. */
|
|
50
|
+
readonly destination: NavigationDestinationLike;
|
|
51
|
+
/** Whether `intercept` may be called. */
|
|
52
|
+
readonly canIntercept: boolean;
|
|
53
|
+
/** Whether the user initiated the navigation. */
|
|
54
|
+
readonly userInitiated: boolean;
|
|
55
|
+
/** Whether only the fragment changes. */
|
|
56
|
+
readonly hashChange: boolean;
|
|
57
|
+
/** Download file name for `<a download>` navigations, else null. */
|
|
58
|
+
readonly downloadRequest: string | null;
|
|
59
|
+
/** Aborted when the navigation is cancelled. */
|
|
60
|
+
readonly signal: AbortSignal;
|
|
61
|
+
/** Info passed by the initiator. */
|
|
62
|
+
readonly info: unknown;
|
|
63
|
+
/** Convert the navigation into a same-document navigation. */
|
|
64
|
+
intercept(options?: NavigationInterceptInit): void;
|
|
65
|
+
/** Cancel the navigation when cancelable. */
|
|
66
|
+
preventDefault(): void;
|
|
67
|
+
}
|
|
68
|
+
/** Minimal result of a Navigation API action. */
|
|
69
|
+
interface NavigationResultLike {
|
|
70
|
+
/** Resolves when the URL and entry changed. */
|
|
71
|
+
readonly committed?: Promise<NavigationHistoryEntryLike>;
|
|
72
|
+
/** Resolves when the navigation finished (handlers settled). */
|
|
73
|
+
readonly finished?: Promise<NavigationHistoryEntryLike>;
|
|
74
|
+
}
|
|
75
|
+
/** Minimal `window.navigation`. */
|
|
76
|
+
interface NavigationHost {
|
|
77
|
+
/** Current entry. */
|
|
78
|
+
readonly currentEntry: NavigationHistoryEntryLike | null;
|
|
79
|
+
/** Ongoing intercepted navigation. */
|
|
80
|
+
readonly transition: {
|
|
81
|
+
/** Navigation type. */readonly navigationType: NavigationTypeName; /** Entry navigated away from. */
|
|
82
|
+
readonly from: NavigationHistoryEntryLike;
|
|
83
|
+
} | null;
|
|
84
|
+
/** Whether `back` is possible. */
|
|
85
|
+
readonly canGoBack: boolean;
|
|
86
|
+
/** Whether `forward` is possible. */
|
|
87
|
+
readonly canGoForward: boolean;
|
|
88
|
+
/** Same-origin entries of the session history. */
|
|
89
|
+
entries(): readonly NavigationHistoryEntryLike[];
|
|
90
|
+
/** Navigate to `url`. */
|
|
91
|
+
navigate(url: string, options?: {
|
|
92
|
+
state?: unknown;
|
|
93
|
+
history?: NavigationHistoryMode;
|
|
94
|
+
info?: unknown;
|
|
95
|
+
}): NavigationResultLike;
|
|
96
|
+
/** Traverse one entry back. */
|
|
97
|
+
back(options?: {
|
|
98
|
+
info?: unknown;
|
|
99
|
+
}): NavigationResultLike;
|
|
100
|
+
/** Traverse one entry forward. */
|
|
101
|
+
forward(options?: {
|
|
102
|
+
info?: unknown;
|
|
103
|
+
}): NavigationResultLike;
|
|
104
|
+
/** Traverse to the entry with `key`. */
|
|
105
|
+
traverseTo(key: string, options?: {
|
|
106
|
+
info?: unknown;
|
|
107
|
+
}): NavigationResultLike;
|
|
108
|
+
/** Reload the current entry. */
|
|
109
|
+
reload(options?: {
|
|
110
|
+
state?: unknown;
|
|
111
|
+
info?: unknown;
|
|
112
|
+
}): NavigationResultLike;
|
|
113
|
+
/** Replace the current entry's state without navigating. */
|
|
114
|
+
updateCurrentEntry(options: {
|
|
115
|
+
state: unknown;
|
|
116
|
+
}): void;
|
|
117
|
+
/** Subscribe to a navigation event. */
|
|
118
|
+
addEventListener(type: NavigationEventName, listener: (event: Event) => void): void;
|
|
119
|
+
/** Unsubscribe from a navigation event. */
|
|
120
|
+
removeEventListener(type: NavigationEventName, listener: (event: Event) => void): void;
|
|
121
|
+
}
|
|
122
|
+
/** Plain snapshot of a history entry. */
|
|
123
|
+
interface NavigationEntrySnapshot {
|
|
124
|
+
/** Entry URL, or null when hidden. */
|
|
125
|
+
readonly url: string | null;
|
|
126
|
+
/** Key identifying the history slot. */
|
|
127
|
+
readonly key: string;
|
|
128
|
+
/** Unique identifier of the entry. */
|
|
129
|
+
readonly id: string;
|
|
130
|
+
/** Index in the entry list. */
|
|
131
|
+
readonly index: number;
|
|
132
|
+
/** Whether the entry belongs to the current document. */
|
|
133
|
+
readonly sameDocument: boolean;
|
|
134
|
+
}
|
|
135
|
+
/** Plain snapshot of the ongoing navigation. */
|
|
136
|
+
interface NavigationTransitionSnapshot {
|
|
137
|
+
/** Navigation type. */
|
|
138
|
+
readonly navigationType: NavigationTypeName;
|
|
139
|
+
/** Entry navigated away from. */
|
|
140
|
+
readonly from: NavigationEntrySnapshot;
|
|
141
|
+
}
|
|
142
|
+
/** Details passed to `onCurrentEntryChange` listeners. */
|
|
143
|
+
interface NavigationEntryChange {
|
|
144
|
+
/** Navigation type, or null for `updateCurrentEntry`. */
|
|
145
|
+
readonly navigationType: NavigationTypeName | null;
|
|
146
|
+
/** Previous entry. */
|
|
147
|
+
readonly from: NavigationEntrySnapshot;
|
|
148
|
+
}
|
|
149
|
+
/** Discriminated outcome of a navigation action. */
|
|
150
|
+
type NavigationOutcome = {
|
|
151
|
+
/** The navigation finished. */readonly status: "success"; /** Entry navigated to. */
|
|
152
|
+
readonly entry: NavigationEntrySnapshot;
|
|
153
|
+
} | {
|
|
154
|
+
/** The Navigation API is missing. */readonly status: "unsupported";
|
|
155
|
+
} | {
|
|
156
|
+
/** The navigation failed or was aborted. */readonly status: "error"; /** Error thrown or rejected by the host. */
|
|
157
|
+
readonly error: unknown;
|
|
158
|
+
};
|
|
159
|
+
/** Options of {@link NavigationApiControls.navigate}. */
|
|
160
|
+
interface NavigationNavigateOptions<State> {
|
|
161
|
+
/**
|
|
162
|
+
* State stored on the new entry.
|
|
163
|
+
*
|
|
164
|
+
* @default undefined
|
|
165
|
+
*/
|
|
166
|
+
readonly state?: State;
|
|
167
|
+
/**
|
|
168
|
+
* History handling.
|
|
169
|
+
*
|
|
170
|
+
* @default "auto"
|
|
171
|
+
*/
|
|
172
|
+
readonly history?: NavigationHistoryMode;
|
|
173
|
+
/**
|
|
174
|
+
* Info handed to `navigate` listeners.
|
|
175
|
+
*
|
|
176
|
+
* @default undefined
|
|
177
|
+
*/
|
|
178
|
+
readonly info?: unknown;
|
|
179
|
+
}
|
|
180
|
+
/** Options of {@link NavigationApiControls.intercept}. */
|
|
181
|
+
interface NavigationInterceptOptions {
|
|
182
|
+
/**
|
|
183
|
+
* Runs the same-document navigation.
|
|
184
|
+
*
|
|
185
|
+
* @default undefined (commit the URL only)
|
|
186
|
+
*/
|
|
187
|
+
readonly handler?: (event: NavigateEventLike) => Promise<void> | void;
|
|
188
|
+
/**
|
|
189
|
+
* Focus behavior after the navigation.
|
|
190
|
+
*
|
|
191
|
+
* @default "after-transition"
|
|
192
|
+
*/
|
|
193
|
+
readonly focusReset?: "after-transition" | "manual";
|
|
194
|
+
/**
|
|
195
|
+
* Scroll behavior after the navigation.
|
|
196
|
+
*
|
|
197
|
+
* @default "after-transition"
|
|
198
|
+
*/
|
|
199
|
+
readonly scroll?: "after-transition" | "manual";
|
|
200
|
+
}
|
|
201
|
+
/** Options for {@link useNavigationApi}. */
|
|
202
|
+
interface UseNavigationApiOptions<State = unknown> {
|
|
203
|
+
/**
|
|
204
|
+
* Navigation API capability for alternate runtimes and tests.
|
|
205
|
+
*
|
|
206
|
+
* @default window.navigation when it exists
|
|
207
|
+
*/
|
|
208
|
+
readonly navigation?: MaybeRefOrGetter<NavigationHost | null | undefined>;
|
|
209
|
+
/**
|
|
210
|
+
* Validate or convert raw entry state into `State`; return undefined for
|
|
211
|
+
* foreign state.
|
|
212
|
+
*
|
|
213
|
+
* @default the raw state, trusted as `State`
|
|
214
|
+
*/
|
|
215
|
+
readonly parseState?: (raw: unknown) => State | undefined;
|
|
216
|
+
}
|
|
217
|
+
/** Reactive state and actions returned by {@link useNavigationApi}. */
|
|
218
|
+
interface NavigationApiControls<State> {
|
|
219
|
+
/** Whether the Navigation API is available. */
|
|
220
|
+
readonly supported: ComputedRef<boolean>;
|
|
221
|
+
/** Snapshot of the current entry. */
|
|
222
|
+
readonly currentEntry: Readonly<ShallowRef<NavigationEntrySnapshot | null>>;
|
|
223
|
+
/** Snapshots of the same-origin session entries. */
|
|
224
|
+
readonly entries: Readonly<ShallowRef<readonly NavigationEntrySnapshot[]>>;
|
|
225
|
+
/** Whether `back` is possible. */
|
|
226
|
+
readonly canGoBack: Readonly<ShallowRef<boolean>>;
|
|
227
|
+
/** Whether `forward` is possible. */
|
|
228
|
+
readonly canGoForward: Readonly<ShallowRef<boolean>>;
|
|
229
|
+
/** Ongoing intercepted navigation. */
|
|
230
|
+
readonly transition: Readonly<ShallowRef<NavigationTransitionSnapshot | null>>;
|
|
231
|
+
/** State of the current entry (not proxied), refreshed with the entry. */
|
|
232
|
+
readonly state: ComputedRef<State | undefined>;
|
|
233
|
+
/** Most recent failed action or `navigateerror`, cleared on success. */
|
|
234
|
+
readonly error: Readonly<ShallowRef<unknown>>;
|
|
235
|
+
/**
|
|
236
|
+
* Read the current entry's state now.
|
|
237
|
+
*
|
|
238
|
+
* @returns The parsed state.
|
|
239
|
+
*/
|
|
240
|
+
readonly getState: () => State | undefined;
|
|
241
|
+
/**
|
|
242
|
+
* Listen to `navigate`.
|
|
243
|
+
*
|
|
244
|
+
* @param listener Receives the navigate event.
|
|
245
|
+
* @returns Removes the listener.
|
|
246
|
+
*/
|
|
247
|
+
readonly onNavigate: (listener: (event: NavigateEventLike) => void) => () => void;
|
|
248
|
+
/**
|
|
249
|
+
* Listen to `navigatesuccess`.
|
|
250
|
+
*
|
|
251
|
+
* @param listener Called after a navigation finished.
|
|
252
|
+
* @returns Removes the listener.
|
|
253
|
+
*/
|
|
254
|
+
readonly onNavigateSuccess: (listener: () => void) => () => void;
|
|
255
|
+
/**
|
|
256
|
+
* Listen to `navigateerror`.
|
|
257
|
+
*
|
|
258
|
+
* @param listener Receives the navigation error.
|
|
259
|
+
* @returns Removes the listener.
|
|
260
|
+
*/
|
|
261
|
+
readonly onNavigateError: (listener: (error: unknown) => void) => () => void;
|
|
262
|
+
/**
|
|
263
|
+
* Listen to `currententrychange`.
|
|
264
|
+
*
|
|
265
|
+
* @param listener Receives the navigation type and previous entry.
|
|
266
|
+
* @returns Removes the listener.
|
|
267
|
+
*/
|
|
268
|
+
readonly onCurrentEntryChange: (listener: (change: NavigationEntryChange) => void) => () => void;
|
|
269
|
+
/**
|
|
270
|
+
* Intercept interceptable, same-origin, non-download, non-hash navigations
|
|
271
|
+
* whose destination matches `predicate`.
|
|
272
|
+
*
|
|
273
|
+
* @param predicate Receives the destination URL and the event.
|
|
274
|
+
* @param options Handler, focus and scroll behavior.
|
|
275
|
+
* @default options {}
|
|
276
|
+
* @returns Removes the interceptor.
|
|
277
|
+
*/
|
|
278
|
+
readonly intercept: (predicate: (url: URL, event: NavigateEventLike) => boolean, options?: NavigationInterceptOptions) => () => void;
|
|
279
|
+
/**
|
|
280
|
+
* Navigate to `url`.
|
|
281
|
+
*
|
|
282
|
+
* @param url Destination.
|
|
283
|
+
* @param options State, history mode and info.
|
|
284
|
+
* @default options {}
|
|
285
|
+
* @returns The outcome once finished.
|
|
286
|
+
*/
|
|
287
|
+
readonly navigate: (url: string, options?: NavigationNavigateOptions<State>) => Promise<NavigationOutcome>;
|
|
288
|
+
/**
|
|
289
|
+
* Go back one entry.
|
|
290
|
+
*
|
|
291
|
+
* @param info Info handed to `navigate` listeners.
|
|
292
|
+
* @returns The outcome once finished.
|
|
293
|
+
*/
|
|
294
|
+
readonly back: (info?: unknown) => Promise<NavigationOutcome>;
|
|
295
|
+
/**
|
|
296
|
+
* Go forward one entry.
|
|
297
|
+
*
|
|
298
|
+
* @param info Info handed to `navigate` listeners.
|
|
299
|
+
* @returns The outcome once finished.
|
|
300
|
+
*/
|
|
301
|
+
readonly forward: (info?: unknown) => Promise<NavigationOutcome>;
|
|
302
|
+
/**
|
|
303
|
+
* Traverse to the entry with `key`.
|
|
304
|
+
*
|
|
305
|
+
* @param key Entry key.
|
|
306
|
+
* @param info Info handed to `navigate` listeners.
|
|
307
|
+
* @returns The outcome once finished.
|
|
308
|
+
*/
|
|
309
|
+
readonly traverseTo: (key: string, info?: unknown) => Promise<NavigationOutcome>;
|
|
310
|
+
/**
|
|
311
|
+
* Reload the current entry, optionally replacing its state.
|
|
312
|
+
*
|
|
313
|
+
* @param options New state and info.
|
|
314
|
+
* @default options {}
|
|
315
|
+
* @returns The outcome once finished.
|
|
316
|
+
*/
|
|
317
|
+
readonly reload: (options?: {
|
|
318
|
+
readonly state?: State;
|
|
319
|
+
readonly info?: unknown;
|
|
320
|
+
}) => Promise<NavigationOutcome>;
|
|
321
|
+
/**
|
|
322
|
+
* Replace the current entry's state without navigating.
|
|
323
|
+
*
|
|
324
|
+
* @param options New state.
|
|
325
|
+
* @returns Whether the state was updated.
|
|
326
|
+
*/
|
|
327
|
+
readonly updateCurrentEntry: (options: {
|
|
328
|
+
readonly state: State;
|
|
329
|
+
}) => boolean;
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Reactive access to the Navigation API (`window.navigation`).
|
|
333
|
+
*
|
|
334
|
+
* Entry snapshots refresh on `currententrychange`, `navigatesuccess` and
|
|
335
|
+
* `navigateerror`. Actions resolve to a {@link NavigationOutcome} and never
|
|
336
|
+
* reject; failures also land in `error`. Listeners (including interceptors)
|
|
337
|
+
* are removed when the owning reactive scope stops; outside a scope the
|
|
338
|
+
* caller removes them with the returned functions.
|
|
339
|
+
*
|
|
340
|
+
* Server rendering: nothing is read or subscribed; `supported` is false,
|
|
341
|
+
* `currentEntry` null, `entries` empty, and actions resolve to
|
|
342
|
+
* `{ status: "unsupported" }`.
|
|
343
|
+
* Inside a component the host is resolved after mounting, so hydration
|
|
344
|
+
* renders this server state first.
|
|
345
|
+
*
|
|
346
|
+
* @example
|
|
347
|
+
* ```ts
|
|
348
|
+
* const nav = useNavigationApi<{ tab: string }>();
|
|
349
|
+
* nav.intercept((url) => url.pathname.startsWith("/app/"), {
|
|
350
|
+
* handler: async () => renderRoute(location.pathname),
|
|
351
|
+
* });
|
|
352
|
+
* ```
|
|
353
|
+
*
|
|
354
|
+
* @param options Navigation host and state parser.
|
|
355
|
+
* @default options {}
|
|
356
|
+
* @returns Navigation state, hooks and actions.
|
|
357
|
+
*/
|
|
358
|
+
declare function useNavigationApi<State = unknown>(options?: UseNavigationApiOptions<State>): NavigationApiControls<State>;
|
|
359
|
+
//#endregion
|
|
360
|
+
export { NavigateEventLike, NavigationApiControls, NavigationDestinationLike, NavigationEntryChange, NavigationEntrySnapshot, NavigationEventName, NavigationHistoryEntryLike, NavigationHistoryMode, NavigationHost, NavigationInterceptInit, NavigationInterceptOptions, NavigationNavigateOptions, NavigationOutcome, NavigationResultLike, NavigationTransitionSnapshot, NavigationTypeName, UseNavigationApiOptions, useNavigationApi };
|