@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,65 @@
|
|
|
1
|
+
import { tryOnScopeDispose } from "./scope.mjs";
|
|
2
|
+
import { computed, shallowRef, toValue } from "vue";
|
|
3
|
+
//#region src/use-timeout.ts
|
|
4
|
+
const defaultScheduler = {
|
|
5
|
+
setTimeout: (callback, delayMs) => globalThis.setTimeout(callback, delayMs),
|
|
6
|
+
clearTimeout: (handle) => {
|
|
7
|
+
globalThis.clearTimeout(handle);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
function resolveDelayMs(value) {
|
|
11
|
+
if (!Number.isFinite(value) || value < 0) throw new RangeError(`[VIZE_COMPOSE_TIMEOUT_INVALID_DELAY] delayMs must be finite and at least zero; received ${String(value)}`);
|
|
12
|
+
return Math.trunc(value);
|
|
13
|
+
}
|
|
14
|
+
function useTimeoutFn(callback, delayMs, options = {}) {
|
|
15
|
+
const scheduler = options.scheduler ?? defaultScheduler;
|
|
16
|
+
const isPending = shallowRef(false);
|
|
17
|
+
let handle;
|
|
18
|
+
let scheduled = false;
|
|
19
|
+
resolveDelayMs(toValue(delayMs));
|
|
20
|
+
const clear = () => {
|
|
21
|
+
if (!scheduled) return;
|
|
22
|
+
scheduled = false;
|
|
23
|
+
scheduler.clearTimeout(handle);
|
|
24
|
+
handle = void 0;
|
|
25
|
+
};
|
|
26
|
+
const stop = () => {
|
|
27
|
+
const wasPending = isPending.value;
|
|
28
|
+
isPending.value = false;
|
|
29
|
+
clear();
|
|
30
|
+
return wasPending;
|
|
31
|
+
};
|
|
32
|
+
const start = (...args) => {
|
|
33
|
+
const delay = resolveDelayMs(toValue(delayMs));
|
|
34
|
+
clear();
|
|
35
|
+
isPending.value = true;
|
|
36
|
+
if (typeof window === "undefined" && !(options.runOnServer ?? false)) return;
|
|
37
|
+
scheduled = true;
|
|
38
|
+
handle = scheduler.setTimeout(() => {
|
|
39
|
+
scheduled = false;
|
|
40
|
+
handle = void 0;
|
|
41
|
+
isPending.value = false;
|
|
42
|
+
callback(...args);
|
|
43
|
+
}, delay);
|
|
44
|
+
};
|
|
45
|
+
if (options.immediate ?? true) start();
|
|
46
|
+
tryOnScopeDispose(() => {
|
|
47
|
+
stop();
|
|
48
|
+
});
|
|
49
|
+
return {
|
|
50
|
+
isPending,
|
|
51
|
+
start,
|
|
52
|
+
stop
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function useTimeout(delayMs = 1e3, options = {}) {
|
|
56
|
+
const controls = useTimeoutFn(() => options.callback?.(), delayMs, options);
|
|
57
|
+
const ready = computed(() => !controls.isPending.value);
|
|
58
|
+
if (options.controls !== true) return ready;
|
|
59
|
+
return {
|
|
60
|
+
...controls,
|
|
61
|
+
ready
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
//#endregion
|
|
65
|
+
export { useTimeout, useTimeoutFn };
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { MaybeRefOrGetter, Ref, ShallowRef } from "vue";
|
|
2
|
+
|
|
3
|
+
//#region src/use-url-hash.d.ts
|
|
4
|
+
/** Minimal `window` surface used by {@link useUrlHash}. */
|
|
5
|
+
interface UrlHashHost extends Pick<EventTarget, "addEventListener" | "removeEventListener"> {
|
|
6
|
+
/** Current location; only the URL parts are read. */
|
|
7
|
+
readonly location: {
|
|
8
|
+
/** Fragment including the leading `#`, or `""`. */readonly hash: string; /** Path component. */
|
|
9
|
+
readonly pathname: string; /** Query component including the leading `?`, or `""`. */
|
|
10
|
+
readonly search: string;
|
|
11
|
+
};
|
|
12
|
+
/** Session history used to write the fragment without scrolling. */
|
|
13
|
+
readonly history: {
|
|
14
|
+
/** Current history entry state, preserved when replacing. */readonly state: unknown; /** Replace the current entry's URL. */
|
|
15
|
+
readonly replaceState: (data: unknown, unused: string, url: string) => void; /** Push a new entry with the given URL. */
|
|
16
|
+
readonly pushState: (data: unknown, unused: string, url: string) => void;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/** How a changed hash is written to session history. */
|
|
20
|
+
type UrlHistoryMode = "replace" | "push";
|
|
21
|
+
/** Options shared by both {@link useUrlHash} overloads. */
|
|
22
|
+
interface UseUrlHashOptions {
|
|
23
|
+
/**
|
|
24
|
+
* Browser host. `null`/`undefined` keeps the default (server rendering).
|
|
25
|
+
*
|
|
26
|
+
* @default window when a browser window exists
|
|
27
|
+
*/
|
|
28
|
+
readonly host?: MaybeRefOrGetter<UrlHashHost | null | undefined>;
|
|
29
|
+
/**
|
|
30
|
+
* History write mode for changes made through `state`.
|
|
31
|
+
*
|
|
32
|
+
* @default "replace"
|
|
33
|
+
*/
|
|
34
|
+
readonly mode?: UrlHistoryMode;
|
|
35
|
+
/**
|
|
36
|
+
* Raw hash (without `#`) to use while no host is attached. Browsers never
|
|
37
|
+
* send the fragment to servers, so pass it only when it is known (for
|
|
38
|
+
* example from a client-side redirect).
|
|
39
|
+
*
|
|
40
|
+
* @default undefined (the default value is used)
|
|
41
|
+
*/
|
|
42
|
+
readonly ssrHash?: MaybeRefOrGetter<string | undefined>;
|
|
43
|
+
/**
|
|
44
|
+
* When the browser hash is first read. `"post-flush"` keeps the server
|
|
45
|
+
* value through hydration and reads the real hash after mounting.
|
|
46
|
+
*
|
|
47
|
+
* @default "post-flush" inside a component, "sync" otherwise
|
|
48
|
+
*/
|
|
49
|
+
readonly initialRead?: "sync" | "post-flush";
|
|
50
|
+
}
|
|
51
|
+
/** Options for a typed {@link useUrlHash} with an explicit codec. */
|
|
52
|
+
interface UseTypedUrlHashOptions<Value> extends UseUrlHashOptions {
|
|
53
|
+
/** Decode the raw (percent-decoded, `#`-less) hash. Throwing selects `default`. */
|
|
54
|
+
readonly parse: (raw: string) => Value;
|
|
55
|
+
/** Encode a value to a raw hash. An empty string removes the fragment. */
|
|
56
|
+
readonly serialize: (value: Value) => string;
|
|
57
|
+
/** Value used for an empty or unparsable hash. */
|
|
58
|
+
readonly default: Value;
|
|
59
|
+
}
|
|
60
|
+
/** Reactive state and controls returned by {@link useUrlHash}. */
|
|
61
|
+
interface UrlHashControls<Value> {
|
|
62
|
+
/** Writable hash value; assignments update the URL. */
|
|
63
|
+
readonly state: Ref<Value>;
|
|
64
|
+
/** Whether a browser host is attached. */
|
|
65
|
+
readonly supported: Readonly<Ref<boolean>>;
|
|
66
|
+
/** Most recent parse failure, cleared by the next successful read. */
|
|
67
|
+
readonly error: Readonly<ShallowRef<unknown>>;
|
|
68
|
+
/** Re-read the current location hash. */
|
|
69
|
+
readonly refresh: () => void;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Track the URL fragment as a typed value decoded by `parse`.
|
|
73
|
+
*
|
|
74
|
+
* @typeParam Value Hash value type, inferred from the codec.
|
|
75
|
+
* @param options Codec, host, history mode, and server fallback.
|
|
76
|
+
* @returns The typed hash value and its controls.
|
|
77
|
+
*/
|
|
78
|
+
declare function useUrlHash<Value>(options: UseTypedUrlHashOptions<Value>): UrlHashControls<Value>;
|
|
79
|
+
/**
|
|
80
|
+
* Track the URL fragment as a plain string (without the leading `#`).
|
|
81
|
+
*
|
|
82
|
+
* @param options Host, history mode, and server fallback.
|
|
83
|
+
* @default options {}
|
|
84
|
+
* @returns The hash string and its controls.
|
|
85
|
+
*/
|
|
86
|
+
declare function useUrlHash(options?: UseUrlHashOptions): UrlHashControls<string>;
|
|
87
|
+
//#endregion
|
|
88
|
+
export { UrlHashControls, UrlHashHost, UrlHistoryMode, UseTypedUrlHashOptions, UseUrlHashOptions, useUrlHash };
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { tryOnScopeDispose } from "./scope.mjs";
|
|
2
|
+
import { hasInjectionContext, readonly, ref, shallowRef, toValue, watch } from "vue";
|
|
3
|
+
//#region src/use-url-hash.ts
|
|
4
|
+
function browserHost() {
|
|
5
|
+
return typeof window !== "undefined" ? window : void 0;
|
|
6
|
+
}
|
|
7
|
+
function decodeFragment(hash) {
|
|
8
|
+
const raw = hash.startsWith("#") ? hash.slice(1) : hash;
|
|
9
|
+
try {
|
|
10
|
+
return decodeURIComponent(raw);
|
|
11
|
+
} catch {
|
|
12
|
+
return raw;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function encodeFragment(raw) {
|
|
16
|
+
return encodeURI(raw).replaceAll("#", "%23");
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Synchronize a typed value with the URL fragment (`location.hash`).
|
|
20
|
+
*
|
|
21
|
+
* Reading follows `hashchange` and `popstate`. Writing `state` updates the
|
|
22
|
+
* fragment through `history.replaceState` (or `pushState` with
|
|
23
|
+
* `mode: "push"`), which neither scrolls to an anchor nor fires
|
|
24
|
+
* `hashchange`; an empty serialized value removes the fragment. Values are
|
|
25
|
+
* percent-decoded on read and minimally encoded on write.
|
|
26
|
+
*
|
|
27
|
+
* Server rendering: browsers never send the fragment, so without a host the
|
|
28
|
+
* value is `ssrHash` (when given) or the default, and no global is read.
|
|
29
|
+
* Inside a component the browser hash is first read after mounting
|
|
30
|
+
* (`initialRead` defaults to `"post-flush"` there), so hydration never
|
|
31
|
+
* mismatches. Listeners are removed with the owning reactive scope.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* const { state: tab } = useUrlHash({
|
|
36
|
+
* parse: (raw) => (raw === "settings" ? "settings" : "profile"),
|
|
37
|
+
* serialize: (value) => value,
|
|
38
|
+
* default: "profile" as "profile" | "settings",
|
|
39
|
+
* });
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* @param options Codec, host, history mode, and server fallback.
|
|
43
|
+
* @default options {}
|
|
44
|
+
* @returns The synchronized value and its controls.
|
|
45
|
+
*/
|
|
46
|
+
function useUrlHash(options = {}) {
|
|
47
|
+
if ("parse" in options) return createUrlHash({
|
|
48
|
+
parse: options.parse,
|
|
49
|
+
serialize: options.serialize,
|
|
50
|
+
default: options.default
|
|
51
|
+
}, options);
|
|
52
|
+
return createUrlHash({
|
|
53
|
+
parse: (raw) => raw,
|
|
54
|
+
serialize: String,
|
|
55
|
+
default: ""
|
|
56
|
+
}, options);
|
|
57
|
+
}
|
|
58
|
+
function createUrlHash(codec, options) {
|
|
59
|
+
const supported = ref(false);
|
|
60
|
+
const error = shallowRef(void 0);
|
|
61
|
+
let ready = false;
|
|
62
|
+
let syncedRaw;
|
|
63
|
+
const resolveHost = () => options.host === void 0 ? browserHost() : toValue(options.host) ?? void 0;
|
|
64
|
+
const parse = (raw) => {
|
|
65
|
+
if (raw === "") return codec.default;
|
|
66
|
+
try {
|
|
67
|
+
const value = codec.parse(raw);
|
|
68
|
+
error.value = void 0;
|
|
69
|
+
return value;
|
|
70
|
+
} catch (cause) {
|
|
71
|
+
error.value = cause;
|
|
72
|
+
return codec.default;
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
const ssrRaw = toValue(options.ssrHash);
|
|
76
|
+
const state = shallowRef(ssrRaw === void 0 ? codec.default : parse(ssrRaw));
|
|
77
|
+
const assign = (raw) => {
|
|
78
|
+
syncedRaw = raw;
|
|
79
|
+
state.value = parse(raw);
|
|
80
|
+
};
|
|
81
|
+
const refresh = () => {
|
|
82
|
+
const host = resolveHost();
|
|
83
|
+
supported.value = host !== void 0;
|
|
84
|
+
if (host === void 0) {
|
|
85
|
+
assign(toValue(options.ssrHash) ?? "");
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
assign(decodeFragment(host.location.hash));
|
|
89
|
+
};
|
|
90
|
+
const onNavigate = () => {
|
|
91
|
+
if (ready) refresh();
|
|
92
|
+
};
|
|
93
|
+
const stopHost = watch(resolveHost, (host, _previous, onCleanup) => {
|
|
94
|
+
if (ready) refresh();
|
|
95
|
+
if (host === void 0) return;
|
|
96
|
+
host.addEventListener("hashchange", onNavigate);
|
|
97
|
+
host.addEventListener("popstate", onNavigate);
|
|
98
|
+
onCleanup(() => {
|
|
99
|
+
host.removeEventListener("hashchange", onNavigate);
|
|
100
|
+
host.removeEventListener("popstate", onNavigate);
|
|
101
|
+
});
|
|
102
|
+
}, {
|
|
103
|
+
immediate: true,
|
|
104
|
+
flush: "sync"
|
|
105
|
+
});
|
|
106
|
+
const stopWrite = watch(state, (value) => {
|
|
107
|
+
const host = resolveHost();
|
|
108
|
+
if (!ready || host === void 0) return;
|
|
109
|
+
const raw = codec.serialize(value);
|
|
110
|
+
if (raw === syncedRaw) return;
|
|
111
|
+
syncedRaw = raw;
|
|
112
|
+
const { pathname, search } = host.location;
|
|
113
|
+
const url = `${pathname}${search}${raw === "" ? "" : `#${encodeFragment(raw)}`}`;
|
|
114
|
+
if ((options.mode ?? "replace") === "push") host.history.pushState(null, "", url);
|
|
115
|
+
else host.history.replaceState(host.history.state, "", url);
|
|
116
|
+
}, { flush: "sync" });
|
|
117
|
+
const start = () => {
|
|
118
|
+
ready = true;
|
|
119
|
+
refresh();
|
|
120
|
+
};
|
|
121
|
+
let stopDeferred;
|
|
122
|
+
if ((options.initialRead ?? (hasInjectionContext() ? "post-flush" : "sync")) === "sync") start();
|
|
123
|
+
else {
|
|
124
|
+
const trigger = ref(0);
|
|
125
|
+
stopDeferred = watch(trigger, () => {
|
|
126
|
+
stopDeferred?.();
|
|
127
|
+
start();
|
|
128
|
+
}, { flush: "post" });
|
|
129
|
+
trigger.value += 1;
|
|
130
|
+
}
|
|
131
|
+
tryOnScopeDispose(() => {
|
|
132
|
+
ready = false;
|
|
133
|
+
stopDeferred?.();
|
|
134
|
+
stopHost();
|
|
135
|
+
stopWrite();
|
|
136
|
+
});
|
|
137
|
+
return {
|
|
138
|
+
state,
|
|
139
|
+
supported: readonly(supported),
|
|
140
|
+
error,
|
|
141
|
+
refresh
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
//#endregion
|
|
145
|
+
export { useUrlHash };
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { MaybeRefOrGetter, Ref } from "vue";
|
|
2
|
+
|
|
3
|
+
//#region src/use-url-search-params.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Typed codec for one search parameter.
|
|
6
|
+
*
|
|
7
|
+
* `parse` receives every value of the key (`URLSearchParams.getAll`), which
|
|
8
|
+
* is empty when the key is absent; throwing selects `default`. `serialize`
|
|
9
|
+
* returns the values to write; an empty array removes the key.
|
|
10
|
+
*/
|
|
11
|
+
interface SearchParamCodec<Value> {
|
|
12
|
+
/** Value used when the key is absent or unparsable. */
|
|
13
|
+
readonly default: Value;
|
|
14
|
+
/** Decode all values of the key. */
|
|
15
|
+
parse(values: readonly string[]): Value;
|
|
16
|
+
/** Encode a value to zero or more raw values. */
|
|
17
|
+
serialize(value: Value): readonly string[];
|
|
18
|
+
}
|
|
19
|
+
/** Schema mapping parameter names to codecs. */
|
|
20
|
+
type SearchParamSchema = Readonly<Record<string, SearchParamCodec<unknown>>>;
|
|
21
|
+
/** Values described by a {@link SearchParamSchema}, inferred per key. */
|
|
22
|
+
type InferSearchParams<Schema extends SearchParamSchema> = { -readonly [Key in keyof Schema]: Schema[Key] extends SearchParamCodec<infer Value> ? Value : never };
|
|
23
|
+
/** Single-value codec definition accepted by {@link searchParam}.custom. */
|
|
24
|
+
interface CustomSearchParam<Value> {
|
|
25
|
+
/** Decode the first raw value. Throwing selects `default`. */
|
|
26
|
+
readonly parse: (raw: string) => Value;
|
|
27
|
+
/** Encode a value to one raw value. */
|
|
28
|
+
readonly serialize: (value: Value) => string;
|
|
29
|
+
/** Value used when the key is absent or unparsable. */
|
|
30
|
+
readonly default: Value;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Repeated-key codec of raw strings.
|
|
34
|
+
*
|
|
35
|
+
* @returns A string array codec.
|
|
36
|
+
*/
|
|
37
|
+
declare function arrayCodec(): SearchParamCodec<string[]>;
|
|
38
|
+
declare function arrayCodec<Item>(item: SearchParamCodec<Item>): SearchParamCodec<Item[]>;
|
|
39
|
+
/** Built-in typed codecs for {@link useUrlSearchParams} schemas. */
|
|
40
|
+
declare const searchParam: {
|
|
41
|
+
/**
|
|
42
|
+
* Raw string value.
|
|
43
|
+
*
|
|
44
|
+
* @param fallback Value for an absent key.
|
|
45
|
+
* @default fallback ""
|
|
46
|
+
* @returns A string codec.
|
|
47
|
+
*/
|
|
48
|
+
readonly string: (fallback?: string) => SearchParamCodec<string>;
|
|
49
|
+
/**
|
|
50
|
+
* Finite number; non-numeric input selects the default.
|
|
51
|
+
*
|
|
52
|
+
* @param fallback Value for an absent or invalid key.
|
|
53
|
+
* @default fallback 0
|
|
54
|
+
* @returns A number codec.
|
|
55
|
+
*/
|
|
56
|
+
readonly number: (fallback?: number) => SearchParamCodec<number>;
|
|
57
|
+
/**
|
|
58
|
+
* Boolean: `true`/`1`/empty read as `true`, `false`/`0` as `false`.
|
|
59
|
+
*
|
|
60
|
+
* @param fallback Value for an absent or unrecognized key.
|
|
61
|
+
* @default fallback false
|
|
62
|
+
* @returns A boolean codec.
|
|
63
|
+
*/
|
|
64
|
+
readonly boolean: (fallback?: boolean) => SearchParamCodec<boolean>;
|
|
65
|
+
/**
|
|
66
|
+
* One of a closed set of string literals.
|
|
67
|
+
*
|
|
68
|
+
* @param values Allowed values.
|
|
69
|
+
* @param fallback Value for an absent or unknown key.
|
|
70
|
+
* @returns A literal-union codec.
|
|
71
|
+
*/
|
|
72
|
+
readonly enum: <const Values extends readonly [string, ...string[]]>(values: Values, fallback: NoInfer<Values[number]>) => SearchParamCodec<Values[number]>;
|
|
73
|
+
/**
|
|
74
|
+
* Repeated key (`?tag=a&tag=b`) decoded item by item.
|
|
75
|
+
*
|
|
76
|
+
* @param item Single-value codec applied to every value.
|
|
77
|
+
* @default item searchParam.string()
|
|
78
|
+
* @returns An array codec whose default is `[]`.
|
|
79
|
+
*/
|
|
80
|
+
readonly array: typeof arrayCodec;
|
|
81
|
+
/**
|
|
82
|
+
* JSON value checked by `validate`, or by kind against the default.
|
|
83
|
+
*
|
|
84
|
+
* @param fallback Value for an absent or invalid key.
|
|
85
|
+
* @param validate Type guard applied to the decoded JSON.
|
|
86
|
+
* @default validate the decoded value has the default's kind
|
|
87
|
+
* @returns A JSON codec.
|
|
88
|
+
*/
|
|
89
|
+
readonly json: <Value>(fallback: Value, validate?: (candidate: unknown) => candidate is Value) => SearchParamCodec<Value>;
|
|
90
|
+
/**
|
|
91
|
+
* Single-value codec from explicit parse/serialize functions.
|
|
92
|
+
*
|
|
93
|
+
* @param definition Parse, serialize, and default.
|
|
94
|
+
* @returns The codec.
|
|
95
|
+
*/
|
|
96
|
+
readonly custom: <Value>(definition: CustomSearchParam<Value>) => SearchParamCodec<Value>;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Decode search parameters with a schema. Pure and SSR-safe.
|
|
100
|
+
*
|
|
101
|
+
* @typeParam Schema Parameter codecs.
|
|
102
|
+
* @param schema Parameter codecs.
|
|
103
|
+
* @param search URL, URL string, query string, or parsed parameters.
|
|
104
|
+
* @returns One typed value per schema key.
|
|
105
|
+
*/
|
|
106
|
+
declare function parseSearchParams<Schema extends SearchParamSchema>(schema: Schema, search: string | URL | URLSearchParams): InferSearchParams<Schema>;
|
|
107
|
+
/** Options for {@link serializeSearchParams}. */
|
|
108
|
+
interface SerializeSearchParamsOptions {
|
|
109
|
+
/**
|
|
110
|
+
* Existing parameters to keep for keys outside the schema.
|
|
111
|
+
*
|
|
112
|
+
* @default no base parameters
|
|
113
|
+
*/
|
|
114
|
+
readonly base?: string | URL | URLSearchParams;
|
|
115
|
+
/**
|
|
116
|
+
* Omit keys whose value serializes like the codec default.
|
|
117
|
+
*
|
|
118
|
+
* @default true
|
|
119
|
+
*/
|
|
120
|
+
readonly removeDefaults?: boolean;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Encode typed values with a schema. Pure and SSR-safe.
|
|
124
|
+
*
|
|
125
|
+
* @typeParam Schema Parameter codecs.
|
|
126
|
+
* @param schema Parameter codecs.
|
|
127
|
+
* @param values Values to encode; keys absent from `values` keep the base.
|
|
128
|
+
* @param options Base parameters and default removal.
|
|
129
|
+
* @default options {}
|
|
130
|
+
* @returns The encoded parameters.
|
|
131
|
+
*/
|
|
132
|
+
declare function serializeSearchParams<Schema extends SearchParamSchema>(schema: Schema, values: Partial<InferSearchParams<Schema>>, options?: SerializeSearchParamsOptions): URLSearchParams;
|
|
133
|
+
/** Minimal `window` surface used by {@link useUrlSearchParams}. */
|
|
134
|
+
interface UrlSearchParamsHost extends Pick<EventTarget, "addEventListener" | "removeEventListener"> {
|
|
135
|
+
/** Current location; only the URL parts are read. */
|
|
136
|
+
readonly location: {
|
|
137
|
+
/** Query including the leading `?`, or `""`. */readonly search: string; /** Fragment including the leading `#`, or `""`. */
|
|
138
|
+
readonly hash: string; /** Path component. */
|
|
139
|
+
readonly pathname: string;
|
|
140
|
+
};
|
|
141
|
+
/** Session history used to write the query. */
|
|
142
|
+
readonly history: {
|
|
143
|
+
/** Current history entry state, preserved when replacing. */readonly state: unknown; /** Replace the current entry's URL. */
|
|
144
|
+
readonly replaceState: (data: unknown, unused: string, url: string) => void; /** Push a new entry with the given URL. */
|
|
145
|
+
readonly pushState: (data: unknown, unused: string, url: string) => void;
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
/** Options for {@link useUrlSearchParams}. */
|
|
149
|
+
interface UseUrlSearchParamsOptions {
|
|
150
|
+
/**
|
|
151
|
+
* Browser host. `null`/`undefined` keeps server values.
|
|
152
|
+
*
|
|
153
|
+
* @default window when a browser window exists
|
|
154
|
+
*/
|
|
155
|
+
readonly host?: MaybeRefOrGetter<UrlSearchParamsHost | null | undefined>;
|
|
156
|
+
/**
|
|
157
|
+
* History write mode for changes made through `params`.
|
|
158
|
+
*
|
|
159
|
+
* @default "replace"
|
|
160
|
+
*/
|
|
161
|
+
readonly mode?: "replace" | "push";
|
|
162
|
+
/**
|
|
163
|
+
* Omit parameters equal to their codec default from the URL.
|
|
164
|
+
*
|
|
165
|
+
* @default true
|
|
166
|
+
*/
|
|
167
|
+
readonly removeDefaults?: boolean;
|
|
168
|
+
/**
|
|
169
|
+
* Request URL used while no host is attached, so server markup matches
|
|
170
|
+
* the client's first render.
|
|
171
|
+
*
|
|
172
|
+
* @default undefined (codec defaults are used)
|
|
173
|
+
*/
|
|
174
|
+
readonly ssrUrl?: MaybeRefOrGetter<string | URL | URLSearchParams | undefined>;
|
|
175
|
+
}
|
|
176
|
+
/** Reactive state and controls returned by {@link useUrlSearchParams}. */
|
|
177
|
+
interface UrlSearchParamsControls<Schema extends SearchParamSchema> {
|
|
178
|
+
/**
|
|
179
|
+
* Writable typed parameters. Assign whole values (including new arrays);
|
|
180
|
+
* the object is shallowly reactive.
|
|
181
|
+
*/
|
|
182
|
+
readonly params: InferSearchParams<Schema>;
|
|
183
|
+
/** Whether a browser host is attached. */
|
|
184
|
+
readonly supported: Readonly<Ref<boolean>>;
|
|
185
|
+
/** Re-read the current location. */
|
|
186
|
+
readonly refresh: () => void;
|
|
187
|
+
/** Stop following the URL. Idempotent; also runs on scope disposal. */
|
|
188
|
+
readonly stop: () => void;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Two-way bind typed URL search parameters described by a codec schema.
|
|
192
|
+
*
|
|
193
|
+
* Every property type is inferred from its codec. Assigning a property
|
|
194
|
+
* rewrites the query through `history.replaceState` (or `pushState` with
|
|
195
|
+
* `mode: "push"`), keeping parameters outside the schema and the fragment,
|
|
196
|
+
* and dropping values equal to their default. Back/forward navigation
|
|
197
|
+
* (`popstate`) re-reads the URL.
|
|
198
|
+
*
|
|
199
|
+
* Server rendering: no global is read. Pass `ssrUrl` (the request URL) so
|
|
200
|
+
* the server renders the same values the client reads during hydration.
|
|
201
|
+
* Inside a component the browser URL is first read after mounting, so the
|
|
202
|
+
* hydrating client renders the `ssrUrl` state before switching to it.
|
|
203
|
+
* Listeners are removed with the owning reactive scope or `stop()`.
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* ```ts
|
|
207
|
+
* const { params } = useUrlSearchParams({
|
|
208
|
+
* page: searchParam.number(1),
|
|
209
|
+
* sort: searchParam.enum(["new", "top"], "new"),
|
|
210
|
+
* tags: searchParam.array(),
|
|
211
|
+
* });
|
|
212
|
+
* params.page += 1; // ?page=2
|
|
213
|
+
* ```
|
|
214
|
+
*
|
|
215
|
+
* @typeParam Schema Parameter codecs.
|
|
216
|
+
* @param schema Parameter codecs.
|
|
217
|
+
* @param options Host, history mode, default removal, and server URL.
|
|
218
|
+
* @default options {}
|
|
219
|
+
* @returns Typed reactive parameters and controls.
|
|
220
|
+
*/
|
|
221
|
+
declare function useUrlSearchParams<const Schema extends SearchParamSchema>(schema: Schema, options?: UseUrlSearchParamsOptions): UrlSearchParamsControls<Schema>;
|
|
222
|
+
//#endregion
|
|
223
|
+
export { CustomSearchParam, InferSearchParams, SearchParamCodec, SearchParamSchema, SerializeSearchParamsOptions, UrlSearchParamsControls, UrlSearchParamsHost, UseUrlSearchParamsOptions, parseSearchParams, searchParam, serializeSearchParams, useUrlSearchParams };
|