//#region index.json
var packages$1 = {
	"shared": {
		"name": "shared",
		"display": "Shared utilities",
		"dir": "packages/shared"
	},
	"core": {
		"name": "core",
		"display": "VueUse",
		"description": "Collection of essential Vue Composition Utilities",
		"dir": "packages/core"
	},
	"components": {
		"name": "components",
		"display": "Components",
		"description": "Renderless components for VueUse",
		"author": "Jacob Clevenger<https://github.com/wheatjs>",
		"dir": "packages/components"
	},
	"math": {
		"name": "math",
		"display": "Math",
		"description": "Math functions for VueUse",
		"dir": "packages/math"
	},
	"router": {
		"name": "router",
		"display": "Router",
		"description": "Utilities for vue-router",
		"addon": true,
		"external": ["vue-router"],
		"globals": { "vue-router": "VueRouter" },
		"dir": "packages/router",
		"docs": "https://vueuse.org/router/README.html"
	},
	"integrations": {
		"name": "integrations",
		"display": "Integrations",
		"description": "Integration wrappers for utility libraries",
		"addon": true,
		"submodules": true,
		"external": [
			"axios",
			"universal-cookie",
			"qrcode",
			"http",
			"nprogress",
			"jwt-decode",
			"focus-trap",
			"change-case",
			"drauu",
			"fuse.js",
			"async-validator",
			"idb-keyval",
			"sortablejs",
			"node:http"
		],
		"globals": {
			"axios": "axios",
			"universal-cookie": "UniversalCookie",
			"qrcode": "QRCode",
			"nprogress": "nprogress",
			"jwt-decode": "jwt_decode",
			"focus-trap": "focusTrap",
			"drauu": "Drauu",
			"fuse.js": "Fuse",
			"change-case": "changeCase",
			"async-validator": "AsyncValidator",
			"idb-keyval": "idbKeyval",
			"sortablejs": "Sortable"
		},
		"dir": "packages/integrations",
		"docs": "https://vueuse.org/integrations/README.html"
	},
	"rxjs": {
		"name": "rxjs",
		"display": "RxJS",
		"description": "Enables RxJS reactive functions in Vue",
		"addon": true,
		"external": ["rxjs", "rxjs/operators"],
		"globals": {
			"rxjs": "rxjs",
			"rxjs/operators": "rxjs.operator"
		},
		"dir": "packages/rxjs",
		"docs": "https://vueuse.org/rxjs/README.html"
	},
	"firebase": {
		"name": "firebase",
		"display": "Firebase",
		"description": "Enables realtime bindings for Firebase",
		"addon": true,
		"submodules": true,
		"external": [
			"firebase",
			"firebase/app",
			"firebase/database",
			"firebase/firestore"
		],
		"globals": {
			"firebase": "firebase",
			"firebase/app": "firebase",
			"firebase/database": "firebase",
			"firebase/firestore": "firebase"
		},
		"dir": "packages/firebase",
		"docs": "https://vueuse.org/firebase/README.html"
	},
	"electron": {
		"name": "electron",
		"display": "Electron",
		"description": "Electron renderer process modules for VueUse",
		"author": "Archer Gu<https://github.com/ArcherGu>",
		"addon": true,
		"external": ["electron"],
		"iife": false,
		"dir": "packages/electron",
		"docs": "https://vueuse.org/electron/README.html"
	}
};
var categories$1 = [
	"Animation",
	"Array",
	"Browser",
	"Component",
	"Elements",
	"Network",
	"Reactivity",
	"Sensors",
	"State",
	"Time",
	"Utilities",
	"Watch",
	"@Electron",
	"@Firebase",
	"@Head",
	"@Integrations",
	"@Math",
	"@Motion",
	"@Router",
	"@RxJS",
	"@SchemaOrg",
	"@Sound"
];
var functions$1 = [
	{
		"name": "computedAsync",
		"package": "core",
		"lastUpdated": 1767923245e3,
		"docs": "https://vueuse.org/core/computedAsync/",
		"category": "Reactivity",
		"description": "computed for async functions",
		"alias": ["asyncComputed"]
	},
	{
		"name": "computedEager",
		"package": "shared",
		"lastUpdated": 1774958324e3,
		"docs": "https://vueuse.org/shared/computedEager/",
		"category": "Reactivity",
		"description": "eager computed without lazy evaluation",
		"alias": ["eagerComputed"]
	},
	{
		"name": "computedInject",
		"package": "core",
		"lastUpdated": 1767755257e3,
		"docs": "https://vueuse.org/core/computedInject/",
		"category": "Component",
		"description": "combine `computed` and `inject`"
	},
	{
		"name": "computedWithControl",
		"package": "shared",
		"lastUpdated": 1767755257e3,
		"docs": "https://vueuse.org/shared/computedWithControl/",
		"category": "Reactivity",
		"description": "explicitly define the dependencies of computed",
		"alias": ["controlledComputed"],
		"related": ["refWithControl"]
	},
	{
		"name": "createDisposableDirective",
		"package": "shared",
		"lastUpdated": 1776333975e3,
		"docs": "https://vueuse.org/shared/createDisposableDirective/",
		"category": "Utilities",
		"description": "utility for authoring disposable directives"
	},
	{
		"name": "createEventHook",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/createEventHook/",
		"category": "Utilities",
		"description": "utility for creating event hooks"
	},
	{
		"name": "createGenericProjection",
		"package": "math",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/math/createGenericProjection/",
		"category": "@Math",
		"description": "generic version of `createProjection`",
		"related": ["createProjection", "useProjection"]
	},
	{
		"name": "createGlobalState",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/createGlobalState/",
		"category": "State",
		"description": "keep states in the global scope to be reusable across Vue instances",
		"related": ["createSharedComposable"]
	},
	{
		"name": "createHead",
		"package": "head",
		"description": "create the head manager instance.",
		"category": "@Head",
		"external": "https://github.com/vueuse/head#api"
	},
	{
		"name": "createInjectionState",
		"package": "shared",
		"lastUpdated": 1773022945e3,
		"docs": "https://vueuse.org/shared/createInjectionState/",
		"category": "State",
		"description": "create global state that can be injected into components"
	},
	{
		"name": "createProjection",
		"package": "math",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/math/createProjection/",
		"category": "@Math",
		"description": "reactive numeric projection from one domain to another",
		"related": ["createGenericProjection", "useProjection"]
	},
	{
		"name": "createRef",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/createRef/",
		"category": "Reactivity",
		"description": "returns a `deepRef` or `shallowRef` depending on the `deep` param"
	},
	{
		"name": "createReusableTemplate",
		"package": "core",
		"lastUpdated": 1772276777e3,
		"docs": "https://vueuse.org/core/createReusableTemplate/",
		"category": "Component",
		"description": "define and reuse template inside the component scope"
	},
	{
		"name": "createSchemaOrg",
		"package": "schema-org",
		"description": "create the schema.org manager instance.",
		"category": "@SchemaOrg",
		"external": "https://vue-schema-org.netlify.app/api/core/create-schema-org.html"
	},
	{
		"name": "createSharedComposable",
		"package": "shared",
		"lastUpdated": 1758032331e3,
		"docs": "https://vueuse.org/shared/createSharedComposable/",
		"category": "State",
		"description": "make a composable function usable with multiple Vue instances",
		"related": ["createGlobalState"]
	},
	{
		"name": "createTemplatePromise",
		"package": "core",
		"lastUpdated": 1758032485e3,
		"docs": "https://vueuse.org/core/createTemplatePromise/",
		"category": "Component",
		"description": "template as Promise"
	},
	{
		"name": "createUnrefFn",
		"package": "core",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/core/createUnrefFn/",
		"category": "Utilities",
		"description": "make a plain function accepting ref and raw values as arguments",
		"related": ["reactify"]
	},
	{
		"name": "extendRef",
		"package": "shared",
		"lastUpdated": 1744088337e3,
		"docs": "https://vueuse.org/shared/extendRef/",
		"category": "Reactivity",
		"description": "add extra attributes to Ref"
	},
	{
		"name": "from",
		"package": "rxjs",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/rxjs/from/",
		"category": "@RxJS",
		"description": "wrappers around RxJS's [`from()`](https://rxjs.dev/api/index/function/from) and [`fromEvent()`](https://rxjs.dev/api/index/function/fromEvent) to allow them to accept `ref`s"
	},
	{
		"name": "get",
		"package": "shared",
		"lastUpdated": 1753513037e3,
		"docs": "https://vueuse.org/shared/get/",
		"category": "Utilities",
		"description": "shorthand for accessing `ref.value`"
	},
	{
		"name": "injectLocal",
		"package": "shared",
		"lastUpdated": 1758403186e3,
		"docs": "https://vueuse.org/shared/injectLocal/",
		"category": "State",
		"description": "extended `inject` with ability to call `provideLocal` to provide the value in the same component"
	},
	{
		"name": "isDefined",
		"package": "shared",
		"lastUpdated": 1744088337e3,
		"docs": "https://vueuse.org/shared/isDefined/",
		"category": "Utilities",
		"description": "non-nullish checking type guard for Ref"
	},
	{
		"name": "logicAnd",
		"package": "math",
		"lastUpdated": 1757478278e3,
		"docs": "https://vueuse.org/math/logicAnd/",
		"category": "@Math",
		"description": "`AND` condition for refs",
		"alias": ["and"],
		"related": ["logicNot", "logicOr"]
	},
	{
		"name": "logicNot",
		"package": "math",
		"lastUpdated": 1757478278e3,
		"docs": "https://vueuse.org/math/logicNot/",
		"category": "@Math",
		"description": "`NOT` condition for ref",
		"alias": ["not"],
		"related": ["logicAnd", "logicOr"]
	},
	{
		"name": "logicOr",
		"package": "math",
		"lastUpdated": 1757478278e3,
		"docs": "https://vueuse.org/math/logicOr/",
		"category": "@Math",
		"description": "`OR` conditions for refs",
		"alias": ["or"],
		"related": ["logicAnd", "logicNot"]
	},
	{
		"name": "makeDestructurable",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/makeDestructurable/",
		"category": "Utilities",
		"description": "make isomorphic destructurable for object and array at the same time"
	},
	{
		"name": "onClickOutside",
		"package": "core",
		"lastUpdated": 177495633e4,
		"component": true,
		"directive": true,
		"docs": "https://vueuse.org/core/onClickOutside/",
		"category": "Sensors",
		"description": "listen for clicks outside of an element"
	},
	{
		"name": "onElementRemoval",
		"package": "core",
		"lastUpdated": 1735805567e3,
		"docs": "https://vueuse.org/core/onElementRemoval/",
		"category": "Sensors",
		"description": "fires when the element or any element containing it is removed from the DOM"
	},
	{
		"name": "onKeyStroke",
		"package": "core",
		"lastUpdated": 1741147666e3,
		"directive": true,
		"docs": "https://vueuse.org/core/onKeyStroke/",
		"category": "Sensors",
		"description": "listen for keyboard keystrokes",
		"variants": [
			"onKeyDown",
			"onKeyUp",
			"onKeyPressed"
		]
	},
	{
		"name": "onLongPress",
		"package": "core",
		"lastUpdated": 1770892341e3,
		"component": true,
		"directive": true,
		"docs": "https://vueuse.org/core/onLongPress/",
		"category": "Sensors",
		"description": "listen for a long press on an element"
	},
	{
		"name": "onStartTyping",
		"package": "core",
		"lastUpdated": 1740966535e3,
		"docs": "https://vueuse.org/core/onStartTyping/",
		"category": "Sensors",
		"description": "fires when users start typing on non-editable elements"
	},
	{
		"name": "provideLocal",
		"package": "shared",
		"lastUpdated": 1758403186e3,
		"docs": "https://vueuse.org/shared/provideLocal/",
		"category": "State",
		"description": "extended `provide` with ability to call `injectLocal` to obtain the value in the same component"
	},
	{
		"name": "reactify",
		"package": "shared",
		"lastUpdated": 1758032498e3,
		"docs": "https://vueuse.org/shared/reactify/",
		"category": "Reactivity",
		"description": "converts plain functions into reactive functions",
		"alias": ["createReactiveFn"],
		"related": ["createUnrefFn"]
	},
	{
		"name": "reactifyObject",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/reactifyObject/",
		"category": "Reactivity",
		"description": "apply `reactify` to an object"
	},
	{
		"name": "reactiveComputed",
		"package": "shared",
		"lastUpdated": 1744088337e3,
		"docs": "https://vueuse.org/shared/reactiveComputed/",
		"category": "Reactivity",
		"description": "computed reactive object"
	},
	{
		"name": "reactiveOmit",
		"package": "shared",
		"lastUpdated": 1758032498e3,
		"docs": "https://vueuse.org/shared/reactiveOmit/",
		"category": "Reactivity",
		"description": "reactively omit fields from a reactive object"
	},
	{
		"name": "reactivePick",
		"package": "shared",
		"lastUpdated": 1767755257e3,
		"docs": "https://vueuse.org/shared/reactivePick/",
		"category": "Reactivity",
		"description": "reactively pick fields from a reactive object"
	},
	{
		"name": "refAutoReset",
		"package": "shared",
		"lastUpdated": 1757478278e3,
		"docs": "https://vueuse.org/shared/refAutoReset/",
		"category": "Reactivity",
		"description": "a ref which will be reset to the default value after some time",
		"alias": ["autoResetRef"]
	},
	{
		"name": "refDebounced",
		"package": "shared",
		"lastUpdated": 1757478278e3,
		"docs": "https://vueuse.org/shared/refDebounced/",
		"category": "Reactivity",
		"description": "debounce execution of a ref value",
		"alias": ["useDebounce", "debouncedRef"],
		"related": ["useThrottleFn"]
	},
	{
		"name": "refDefault",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/refDefault/",
		"category": "Reactivity",
		"description": "apply default value to a ref"
	},
	{
		"name": "refManualReset",
		"package": "shared",
		"lastUpdated": 176792353e4,
		"docs": "https://vueuse.org/shared/refManualReset/",
		"category": "Reactivity",
		"description": "create a ref with manual reset functionality"
	},
	{
		"name": "refThrottled",
		"package": "shared",
		"lastUpdated": 1757478278e3,
		"docs": "https://vueuse.org/shared/refThrottled/",
		"category": "Reactivity",
		"description": "throttle changing of a ref value",
		"alias": ["useThrottle", "throttledRef"],
		"related": ["useThrottleFn"]
	},
	{
		"name": "refWithControl",
		"package": "shared",
		"lastUpdated": 1757478278e3,
		"docs": "https://vueuse.org/shared/refWithControl/",
		"category": "Reactivity",
		"description": "fine-grained controls over ref and its reactivity",
		"alias": ["controlledRef"],
		"related": ["computedWithControl"]
	},
	{
		"name": "set",
		"package": "shared",
		"lastUpdated": 1732178709e3,
		"docs": "https://vueuse.org/shared/set/",
		"category": "Utilities",
		"description": "shorthand for `ref.value = x`"
	},
	{
		"name": "syncRef",
		"package": "shared",
		"lastUpdated": 1764573571e3,
		"docs": "https://vueuse.org/shared/syncRef/",
		"category": "Reactivity",
		"description": "two-way refs synchronization",
		"related": ["syncRefs"]
	},
	{
		"name": "syncRefs",
		"package": "shared",
		"lastUpdated": 1741154516e3,
		"docs": "https://vueuse.org/shared/syncRefs/",
		"category": "Reactivity",
		"description": "keep target refs in sync with a source ref",
		"related": ["syncRef"]
	},
	{
		"name": "templateRef",
		"package": "core",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/core/templateRef/",
		"category": "Component",
		"description": "shorthand for binding ref to template element"
	},
	{
		"name": "toObserver",
		"package": "rxjs",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/rxjs/toObserver/",
		"category": "@RxJS",
		"description": "sugar function to convert a `ref` into an RxJS [Observer](https://rxjs.dev/guide/observer)"
	},
	{
		"name": "toReactive",
		"package": "shared",
		"lastUpdated": 1741147666e3,
		"docs": "https://vueuse.org/shared/toReactive/",
		"category": "Reactivity",
		"description": "converts ref to reactive"
	},
	{
		"name": "toRef",
		"package": "shared",
		"lastUpdated": 1774958324e3,
		"docs": "https://vueuse.org/shared/toRef/",
		"category": "Reactivity",
		"description": "normalize value/ref/getter to `ref` or `computed`"
	},
	{
		"name": "toRefs",
		"package": "shared",
		"lastUpdated": 1744088337e3,
		"docs": "https://vueuse.org/shared/toRefs/",
		"category": "Reactivity",
		"description": "extended [`toRefs`](https://vuejs.org/api/reactivity-utilities.html#torefs) that also accepts refs of an object"
	},
	{
		"name": "tryOnBeforeMount",
		"package": "shared",
		"lastUpdated": 1758696813e3,
		"docs": "https://vueuse.org/shared/tryOnBeforeMount/",
		"category": "Component",
		"description": "safe `onBeforeMount`"
	},
	{
		"name": "tryOnBeforeUnmount",
		"package": "shared",
		"lastUpdated": 1758696813e3,
		"docs": "https://vueuse.org/shared/tryOnBeforeUnmount/",
		"category": "Component",
		"description": "safe `onBeforeUnmount`"
	},
	{
		"name": "tryOnMounted",
		"package": "shared",
		"lastUpdated": 1758696813e3,
		"docs": "https://vueuse.org/shared/tryOnMounted/",
		"category": "Component",
		"description": "safe `onMounted`"
	},
	{
		"name": "tryOnScopeDispose",
		"package": "shared",
		"lastUpdated": 1758668657e3,
		"docs": "https://vueuse.org/shared/tryOnScopeDispose/",
		"category": "Component",
		"description": "safe `onScopeDispose`"
	},
	{
		"name": "tryOnUnmounted",
		"package": "shared",
		"lastUpdated": 1758696813e3,
		"docs": "https://vueuse.org/shared/tryOnUnmounted/",
		"category": "Component",
		"description": "safe `onUnmounted`"
	},
	{
		"name": "unrefElement",
		"package": "core",
		"lastUpdated": 1741147666e3,
		"docs": "https://vueuse.org/core/unrefElement/",
		"category": "Component",
		"description": "retrieves the underlying DOM element from a Vue ref or component instance"
	},
	{
		"name": "until",
		"package": "shared",
		"lastUpdated": 1767923245e3,
		"docs": "https://vueuse.org/shared/until/",
		"category": "Watch",
		"description": "promised one-time watch for changes"
	},
	{
		"name": "useAbs",
		"package": "math",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/math/useAbs/",
		"category": "@Math",
		"description": "reactive `Math.abs`"
	},
	{
		"name": "useActiveElement",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"docs": "https://vueuse.org/core/useActiveElement/",
		"category": "Elements",
		"description": "reactive `document.activeElement`"
	},
	{
		"name": "useAnimate",
		"package": "core",
		"lastUpdated": 1770013115e3,
		"docs": "https://vueuse.org/core/useAnimate/",
		"category": "Animation",
		"description": "reactive [Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API)"
	},
	{
		"name": "useArrayDifference",
		"package": "shared",
		"lastUpdated": 1767755257e3,
		"docs": "https://vueuse.org/shared/useArrayDifference/",
		"category": "Array",
		"description": "reactive get array difference of two arrays"
	},
	{
		"name": "useArrayEvery",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/useArrayEvery/",
		"category": "Array",
		"description": "reactive `Array.every`"
	},
	{
		"name": "useArrayFilter",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/useArrayFilter/",
		"category": "Array",
		"description": "reactive `Array.filter`"
	},
	{
		"name": "useArrayFind",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/useArrayFind/",
		"category": "Array",
		"description": "reactive `Array.find`"
	},
	{
		"name": "useArrayFindIndex",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/useArrayFindIndex/",
		"category": "Array",
		"description": "reactive `Array.findIndex`"
	},
	{
		"name": "useArrayFindLast",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/useArrayFindLast/",
		"category": "Array",
		"description": "reactive `Array.findLast`"
	},
	{
		"name": "useArrayIncludes",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/useArrayIncludes/",
		"category": "Array",
		"description": "reactive `Array.includes`"
	},
	{
		"name": "useArrayJoin",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/useArrayJoin/",
		"category": "Array",
		"description": "reactive `Array.join`"
	},
	{
		"name": "useArrayMap",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/useArrayMap/",
		"category": "Array",
		"description": "reactive `Array.map`"
	},
	{
		"name": "useArrayReduce",
		"package": "shared",
		"lastUpdated": 1764120879e3,
		"docs": "https://vueuse.org/shared/useArrayReduce/",
		"category": "Array",
		"description": "reactive `Array.reduce`"
	},
	{
		"name": "useArraySome",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/useArraySome/",
		"category": "Array",
		"description": "reactive `Array.some`"
	},
	{
		"name": "useArrayUnique",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/useArrayUnique/",
		"category": "Array",
		"description": "reactive unique array"
	},
	{
		"name": "useAsyncQueue",
		"package": "core",
		"lastUpdated": 1764121112e3,
		"docs": "https://vueuse.org/core/useAsyncQueue/",
		"category": "Utilities",
		"description": "executes each asynchronous task sequentially and passes the current task result to the next task"
	},
	{
		"name": "useAsyncState",
		"package": "core",
		"lastUpdated": 1766198217e3,
		"docs": "https://vueuse.org/core/useAsyncState/",
		"category": "State",
		"description": "reactive async state"
	},
	{
		"name": "useAsyncValidator",
		"package": "integrations",
		"lastUpdated": 1741147666e3,
		"component": true,
		"docs": "https://vueuse.org/integrations/useAsyncValidator/",
		"category": "@Integrations",
		"description": "wrapper for [`async-validator`](https://github.com/yiminghe/async-validator)",
		"importPath": "integrations/useAsyncValidator"
	},
	{
		"name": "useAuth",
		"package": "firebase",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/firebase/useAuth/",
		"category": "@Firebase",
		"description": "reactive [Firebase Auth](https://firebase.google.com/docs/auth) binding",
		"importPath": "firebase/useAuth"
	},
	{
		"name": "useAverage",
		"package": "math",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/math/useAverage/",
		"category": "@Math",
		"description": "get the average of an array reactively"
	},
	{
		"name": "useAxios",
		"package": "integrations",
		"lastUpdated": 1773022965e3,
		"docs": "https://vueuse.org/integrations/useAxios/",
		"category": "@Integrations",
		"description": "wrapper for [`axios`](https://github.com/axios/axios)",
		"importPath": "integrations/useAxios"
	},
	{
		"name": "useBase64",
		"package": "core",
		"lastUpdated": 1741147666e3,
		"docs": "https://vueuse.org/core/useBase64/",
		"category": "Utilities",
		"description": "reactive base64 transforming"
	},
	{
		"name": "useBattery",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"docs": "https://vueuse.org/core/useBattery/",
		"category": "Sensors",
		"description": "reactive [Battery Status API](https://developer.mozilla.org/en-US/docs/Web/API/Battery_Status_API)"
	},
	{
		"name": "useBluetooth",
		"package": "core",
		"lastUpdated": 1774958324e3,
		"docs": "https://vueuse.org/core/useBluetooth/",
		"category": "Browser",
		"description": "reactive [Web Bluetooth API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API)"
	},
	{
		"name": "useBreakpoints",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"docs": "https://vueuse.org/core/useBreakpoints/",
		"category": "Browser",
		"description": "reactive viewport breakpoints"
	},
	{
		"name": "useBroadcastChannel",
		"package": "core",
		"lastUpdated": 1772346044e3,
		"docs": "https://vueuse.org/core/useBroadcastChannel/",
		"category": "Browser",
		"description": "reactive [BroadcastChannel API](https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel)"
	},
	{
		"name": "useBrowserLocation",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"docs": "https://vueuse.org/core/useBrowserLocation/",
		"category": "Browser",
		"description": "reactive browser location"
	},
	{
		"name": "useCached",
		"package": "core",
		"lastUpdated": 1777274138e3,
		"docs": "https://vueuse.org/core/useCached/",
		"category": "Utilities",
		"description": "cache a ref with a custom comparator"
	},
	{
		"name": "useCeil",
		"package": "math",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/math/useCeil/",
		"category": "@Math",
		"description": "reactive `Math.ceil`"
	},
	{
		"name": "useChangeCase",
		"package": "integrations",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/integrations/useChangeCase/",
		"category": "@Integrations",
		"description": "reactive wrapper for [`change-case`](https://github.com/blakeembrey/change-case)",
		"importPath": "integrations/useChangeCase"
	},
	{
		"name": "useClamp",
		"package": "math",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/math/useClamp/",
		"category": "@Math",
		"description": "reactively clamp a value between two other values"
	},
	{
		"name": "useClipboard",
		"package": "core",
		"lastUpdated": 17769967e5,
		"component": true,
		"docs": "https://vueuse.org/core/useClipboard/",
		"category": "Browser",
		"description": "reactive [Clipboard API](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API)",
		"related": ["useClipboardItems"]
	},
	{
		"name": "useClipboardItems",
		"package": "core",
		"lastUpdated": 1774958324e3,
		"docs": "https://vueuse.org/core/useClipboardItems/",
		"category": "Browser",
		"description": "reactive [Clipboard API](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API)",
		"related": ["useClipboard"]
	},
	{
		"name": "useCloned",
		"package": "core",
		"lastUpdated": 1741147666e3,
		"docs": "https://vueuse.org/core/useCloned/",
		"category": "Utilities",
		"description": "reactive clone of a ref"
	},
	{
		"name": "useColorMode",
		"package": "core",
		"lastUpdated": 1751427119e3,
		"component": true,
		"docs": "https://vueuse.org/core/useColorMode/",
		"category": "Browser",
		"description": "reactive color mode (dark / light / customs) with auto data persistence",
		"related": [
			"useDark",
			"usePreferredDark",
			"useStorage"
		]
	},
	{
		"name": "useConfirmDialog",
		"package": "core",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/core/useConfirmDialog/",
		"category": "Utilities",
		"description": "creates event hooks to support modals and confirmation dialog chains"
	},
	{
		"name": "useCookies",
		"package": "integrations",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/integrations/useCookies/",
		"category": "@Integrations",
		"description": "wrapper for [`universal-cookie`](https://www.npmjs.com/package/universal-cookie)",
		"importPath": "integrations/useCookies"
	},
	{
		"name": "useCountdown",
		"package": "core",
		"lastUpdated": 1769407468e3,
		"docs": "https://vueuse.org/core/useCountdown/",
		"category": "Time",
		"description": "reactive countdown timer in seconds"
	},
	{
		"name": "useCounter",
		"package": "shared",
		"lastUpdated": 1744088337e3,
		"docs": "https://vueuse.org/shared/useCounter/",
		"category": "Utilities",
		"description": "basic counter with utility functions"
	},
	{
		"name": "useCssSupports",
		"package": "core",
		"lastUpdated": 1770702885e3,
		"docs": "https://vueuse.org/core/useCssSupports/",
		"category": "Browser",
		"description": "SSR compatible and reactive [`CSS.supports`](https://developer.mozilla.org/docs/Web/API/CSS/supports_static)"
	},
	{
		"name": "useCssVar",
		"package": "core",
		"lastUpdated": 1741147666e3,
		"docs": "https://vueuse.org/core/useCssVar/",
		"category": "Browser",
		"description": "manipulate CSS variables"
	},
	{
		"name": "useCurrentElement",
		"package": "core",
		"lastUpdated": 1735017005e3,
		"docs": "https://vueuse.org/core/useCurrentElement/",
		"category": "Component",
		"description": "get the DOM element of current component as a ref"
	},
	{
		"name": "useCycleList",
		"package": "core",
		"lastUpdated": 1741147666e3,
		"docs": "https://vueuse.org/core/useCycleList/",
		"category": "Utilities",
		"description": "cycle through a list of items"
	},
	{
		"name": "useDark",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"docs": "https://vueuse.org/core/useDark/",
		"category": "Browser",
		"description": "reactive dark mode with auto data persistence",
		"related": [
			"useColorMode",
			"usePreferredDark",
			"useStorage"
		]
	},
	{
		"name": "useDateFormat",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/useDateFormat/",
		"category": "Time",
		"description": "get the formatted date according to the string of tokens passed in"
	},
	{
		"name": "useDebouncedRefHistory",
		"package": "core",
		"lastUpdated": 1741147666e3,
		"docs": "https://vueuse.org/core/useDebouncedRefHistory/",
		"category": "State",
		"description": "shorthand for `useRefHistory` with debounced filter",
		"related": ["useRefHistory", "useThrottledRefHistory"]
	},
	{
		"name": "useDebounceFn",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/useDebounceFn/",
		"category": "Utilities",
		"description": "debounce execution of a function",
		"related": ["useThrottleFn"]
	},
	{
		"name": "useDeviceMotion",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"docs": "https://vueuse.org/core/useDeviceMotion/",
		"category": "Sensors",
		"description": "reactive [DeviceMotionEvent](https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent)"
	},
	{
		"name": "useDeviceOrientation",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"docs": "https://vueuse.org/core/useDeviceOrientation/",
		"category": "Sensors",
		"description": "reactive [DeviceOrientationEvent](https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent)"
	},
	{
		"name": "useDevicePixelRatio",
		"package": "core",
		"lastUpdated": 1774958324e3,
		"component": true,
		"docs": "https://vueuse.org/core/useDevicePixelRatio/",
		"category": "Sensors",
		"description": "reactively track [`window.devicePixelRatio`](https://developer.mozilla.org/docs/Web/API/Window/devicePixelRatio)"
	},
	{
		"name": "useDevicesList",
		"package": "core",
		"lastUpdated": 1772346044e3,
		"component": true,
		"docs": "https://vueuse.org/core/useDevicesList/",
		"category": "Sensors",
		"description": "reactive [enumerateDevices](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices) listing available input/output devices",
		"related": ["useUserMedia"]
	},
	{
		"name": "useDisplayMedia",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"docs": "https://vueuse.org/core/useDisplayMedia/",
		"category": "Sensors",
		"description": "reactive [`mediaDevices.getDisplayMedia`](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia) streaming",
		"related": ["useUserMedia"]
	},
	{
		"name": "useDocumentVisibility",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"docs": "https://vueuse.org/core/useDocumentVisibility/",
		"category": "Elements",
		"description": "reactively track [`document.visibilityState`](https://developer.mozilla.org/en-US/docs/Web/API/Document/visibilityState)"
	},
	{
		"name": "useDraggable",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"docs": "https://vueuse.org/core/useDraggable/",
		"category": "Elements",
		"description": "make elements draggable"
	},
	{
		"name": "useDrauu",
		"package": "integrations",
		"lastUpdated": 1739701304e3,
		"docs": "https://vueuse.org/integrations/useDrauu/",
		"category": "@Integrations",
		"description": "reactive instance for [drauu](https://github.com/antfu/drauu)",
		"importPath": "integrations/useDrauu"
	},
	{
		"name": "useDropZone",
		"package": "core",
		"lastUpdated": 1764121826e3,
		"docs": "https://vueuse.org/core/useDropZone/",
		"category": "Elements",
		"description": "create a zone where files can be dropped"
	},
	{
		"name": "useElementBounding",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"directive": true,
		"docs": "https://vueuse.org/core/useElementBounding/",
		"category": "Elements",
		"description": "reactive [bounding box](https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect) of an HTML element"
	},
	{
		"name": "useElementByPoint",
		"package": "core",
		"lastUpdated": 1770013115e3,
		"docs": "https://vueuse.org/core/useElementByPoint/",
		"category": "Sensors",
		"description": "reactive element by point"
	},
	{
		"name": "useElementHover",
		"package": "core",
		"lastUpdated": 1750320219e3,
		"directive": true,
		"docs": "https://vueuse.org/core/useElementHover/",
		"category": "Sensors",
		"description": "reactive element's hover state"
	},
	{
		"name": "useElementSize",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"directive": true,
		"docs": "https://vueuse.org/core/useElementSize/",
		"category": "Elements",
		"description": "reactive size of an HTML element"
	},
	{
		"package": "motion",
		"category": "@Motion",
		"name": "useElementStyle",
		"description": "sync a reactive object to a target element CSS styling",
		"external": "https://motion.vueuse.org/api/use-element-style"
	},
	{
		"package": "motion",
		"category": "@Motion",
		"name": "useElementTransform",
		"description": "sync a reactive object to a target element CSS transform.",
		"external": "https://motion.vueuse.org/api/use-element-transform"
	},
	{
		"name": "useElementVisibility",
		"package": "core",
		"lastUpdated": 1773650113e3,
		"component": true,
		"directive": true,
		"docs": "https://vueuse.org/core/useElementVisibility/",
		"category": "Elements",
		"description": "tracks the visibility of an element within the viewport"
	},
	{
		"name": "useEventBus",
		"package": "core",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/core/useEventBus/",
		"category": "Utilities",
		"description": "a basic event bus"
	},
	{
		"name": "useEventListener",
		"package": "core",
		"lastUpdated": 1767755257e3,
		"docs": "https://vueuse.org/core/useEventListener/",
		"category": "Browser",
		"description": "use EventListener with ease"
	},
	{
		"name": "useEventSource",
		"package": "core",
		"lastUpdated": 1772346044e3,
		"docs": "https://vueuse.org/core/useEventSource/",
		"category": "Network",
		"description": "an [EventSource](https://developer.mozilla.org/en-US/docs/Web/API/EventSource) or [Server-Sent-Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events) instance opens a persistent connection to an HTTP server"
	},
	{
		"name": "useExtractedObservable",
		"package": "rxjs",
		"lastUpdated": 1774958324e3,
		"docs": "https://vueuse.org/rxjs/useExtractedObservable/",
		"category": "@RxJS",
		"description": "use an RxJS [`Observable`](https://rxjs.dev/guide/observable) as extracted from one or more composables"
	},
	{
		"name": "useEyeDropper",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"docs": "https://vueuse.org/core/useEyeDropper/",
		"category": "Browser",
		"description": "reactive [EyeDropper API](https://developer.mozilla.org/en-US/docs/Web/API/EyeDropper_API)"
	},
	{
		"name": "useFavicon",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"docs": "https://vueuse.org/core/useFavicon/",
		"category": "Browser",
		"description": "reactive favicon"
	},
	{
		"name": "useFetch",
		"package": "core",
		"lastUpdated": 1774958324e3,
		"docs": "https://vueuse.org/core/useFetch/",
		"category": "Network",
		"description": "reactive [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) provides the ability to abort requests"
	},
	{
		"name": "useFileDialog",
		"package": "core",
		"lastUpdated": 1774958324e3,
		"docs": "https://vueuse.org/core/useFileDialog/",
		"category": "Browser",
		"description": "open file dialog with ease"
	},
	{
		"name": "useFileSystemAccess",
		"package": "core",
		"lastUpdated": 1770013115e3,
		"docs": "https://vueuse.org/core/useFileSystemAccess/",
		"category": "Browser",
		"description": "create and read and write local files with [FileSystemAccessAPI](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)"
	},
	{
		"name": "useFirestore",
		"package": "firebase",
		"lastUpdated": 1767755257e3,
		"docs": "https://vueuse.org/firebase/useFirestore/",
		"category": "@Firebase",
		"description": "reactive [Firestore](https://firebase.google.com/docs/firestore) binding",
		"importPath": "firebase/useFirestore"
	},
	{
		"name": "useFloor",
		"package": "math",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/math/useFloor/",
		"category": "@Math",
		"description": "reactive `Math.floor`"
	},
	{
		"name": "useFocus",
		"package": "core",
		"lastUpdated": 1739701304e3,
		"docs": "https://vueuse.org/core/useFocus/",
		"category": "Sensors",
		"description": "reactive utility to track or set the focus state of a DOM element"
	},
	{
		"name": "useFocusTrap",
		"package": "integrations",
		"lastUpdated": 177760015e4,
		"component": true,
		"docs": "https://vueuse.org/integrations/useFocusTrap/",
		"category": "@Integrations",
		"description": "reactive wrapper for [`focus-trap`](https://github.com/focus-trap/focus-trap)",
		"importPath": "integrations/useFocusTrap"
	},
	{
		"name": "useFocusWithin",
		"package": "core",
		"lastUpdated": 1739600241e3,
		"docs": "https://vueuse.org/core/useFocusWithin/",
		"category": "Sensors",
		"description": "reactive utility to track if an element or one of its descendants has focus"
	},
	{
		"name": "useFps",
		"package": "core",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/core/useFps/",
		"category": "Sensors",
		"description": "reactive FPS (frames per second)"
	},
	{
		"name": "useFullscreen",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"docs": "https://vueuse.org/core/useFullscreen/",
		"category": "Browser",
		"description": "reactive [Fullscreen API](https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API)"
	},
	{
		"name": "useFuse",
		"package": "integrations",
		"lastUpdated": 1776327185e3,
		"docs": "https://vueuse.org/integrations/useFuse/",
		"category": "@Integrations",
		"description": "easily implement fuzzy search using a composable with [Fuse.js](https://github.com/krisk/fuse)",
		"importPath": "integrations/useFuse"
	},
	{
		"name": "useGamepad",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"docs": "https://vueuse.org/core/useGamepad/",
		"category": "Browser",
		"description": "provides reactive bindings for the [Gamepad API](https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API)"
	},
	{
		"name": "useGeolocation",
		"package": "core",
		"lastUpdated": 1772346044e3,
		"component": true,
		"docs": "https://vueuse.org/core/useGeolocation/",
		"category": "Sensors",
		"description": "reactive [Geolocation API](https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API)"
	},
	{
		"name": "useHead",
		"package": "head",
		"description": "update head meta tags reactively.",
		"category": "@Head",
		"external": "https://github.com/vueuse/head#api"
	},
	{
		"name": "useIDBKeyval",
		"package": "integrations",
		"lastUpdated": 1752069336e3,
		"docs": "https://vueuse.org/integrations/useIDBKeyval/",
		"category": "@Integrations",
		"description": "wrapper for [`idb-keyval`](https://www.npmjs.com/package/idb-keyval)",
		"importPath": "integrations/useIDBKeyval"
	},
	{
		"name": "useIdle",
		"package": "core",
		"lastUpdated": 1761115389e3,
		"component": true,
		"docs": "https://vueuse.org/core/useIdle/",
		"category": "Sensors",
		"description": "tracks whether the user is being inactive"
	},
	{
		"name": "useImage",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"docs": "https://vueuse.org/core/useImage/",
		"category": "Browser",
		"description": "reactive load an image in the browser"
	},
	{
		"name": "useInfiniteScroll",
		"package": "core",
		"lastUpdated": 1772346044e3,
		"directive": true,
		"docs": "https://vueuse.org/core/useInfiniteScroll/",
		"category": "Sensors",
		"description": "infinite scrolling of the element"
	},
	{
		"name": "useIntersectionObserver",
		"package": "core",
		"lastUpdated": 177435705e4,
		"directive": true,
		"docs": "https://vueuse.org/core/useIntersectionObserver/",
		"category": "Elements",
		"description": "detects changes to a target element's visibility"
	},
	{
		"name": "useInterval",
		"package": "shared",
		"lastUpdated": 1744088337e3,
		"docs": "https://vueuse.org/shared/useInterval/",
		"category": "Animation",
		"description": "reactive counter that increases on every interval"
	},
	{
		"name": "useIntervalFn",
		"package": "shared",
		"lastUpdated": 1748328969e3,
		"docs": "https://vueuse.org/shared/useIntervalFn/",
		"category": "Animation",
		"description": "wrapper for `setInterval` with controls"
	},
	{
		"name": "useIpcRenderer",
		"package": "electron",
		"lastUpdated": 1739701304e3,
		"docs": "https://vueuse.org/electron/useIpcRenderer/",
		"category": "@Electron",
		"description": "provides [ipcRenderer](https://www.electronjs.org/docs/api/ipc-renderer) and all of its APIs with Vue reactivity"
	},
	{
		"name": "useIpcRendererInvoke",
		"package": "electron",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/electron/useIpcRendererInvoke/",
		"category": "@Electron",
		"description": "reactive [ipcRenderer.invoke API](https://www.electronjs.org/docs/api/ipc-renderer#ipcrendererinvokechannel-args) result"
	},
	{
		"name": "useIpcRendererOn",
		"package": "electron",
		"lastUpdated": 1726477425e3,
		"docs": "https://vueuse.org/electron/useIpcRendererOn/",
		"category": "@Electron",
		"description": "use [ipcRenderer.on](https://www.electronjs.org/docs/api/ipc-renderer#ipcrendereronchannel-listener) with ease and [ipcRenderer.removeListener](https://www.electronjs.org/docs/api/ipc-renderer#ipcrendererremovelistenerchannel-listener) automatically on unmounted"
	},
	{
		"name": "useJwt",
		"package": "integrations",
		"lastUpdated": 1741147666e3,
		"docs": "https://vueuse.org/integrations/useJwt/",
		"category": "@Integrations",
		"description": "wrapper for [`jwt-decode`](https://github.com/auth0/jwt-decode)",
		"importPath": "integrations/useJwt"
	},
	{
		"name": "useKeyModifier",
		"package": "core",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/core/useKeyModifier/",
		"category": "Sensors",
		"description": "reactive [Modifier State](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/getModifierState)"
	},
	{
		"name": "useLastChanged",
		"package": "shared",
		"lastUpdated": 1744088337e3,
		"docs": "https://vueuse.org/shared/useLastChanged/",
		"category": "State",
		"description": "records the timestamp of the last change"
	},
	{
		"name": "useLocalStorage",
		"package": "core",
		"lastUpdated": 1753513037e3,
		"docs": "https://vueuse.org/core/useLocalStorage/",
		"category": "State",
		"description": "reactive [LocalStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage)",
		"related": ["useStorage"]
	},
	{
		"name": "useMagicKeys",
		"package": "core",
		"lastUpdated": 1769007613e3,
		"docs": "https://vueuse.org/core/useMagicKeys/",
		"category": "Sensors",
		"description": "reactive keys pressed state"
	},
	{
		"name": "useManualRefHistory",
		"package": "core",
		"lastUpdated": 1774958324e3,
		"docs": "https://vueuse.org/core/useManualRefHistory/",
		"category": "State",
		"description": "manually track the change history of a ref when the user calls `commit()`",
		"related": ["useRefHistory"]
	},
	{
		"name": "useMath",
		"package": "math",
		"lastUpdated": 1758032498e3,
		"docs": "https://vueuse.org/math/useMath/",
		"category": "@Math",
		"description": "reactive `Math` methods"
	},
	{
		"name": "useMax",
		"package": "math",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/math/useMax/",
		"category": "@Math",
		"description": "reactive `Math.max`"
	},
	{
		"name": "useMediaControls",
		"package": "core",
		"lastUpdated": 1772346044e3,
		"docs": "https://vueuse.org/core/useMediaControls/",
		"category": "Browser",
		"description": "reactive media controls for both `audio` and `video` elements"
	},
	{
		"name": "useMediaQuery",
		"package": "core",
		"lastUpdated": 1741147666e3,
		"docs": "https://vueuse.org/core/useMediaQuery/",
		"category": "Browser",
		"description": "reactive [Media Query](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Testing_media_queries)"
	},
	{
		"name": "useMemoize",
		"package": "core",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/core/useMemoize/",
		"category": "Utilities",
		"description": "cache results of functions depending on arguments and keep it reactive"
	},
	{
		"name": "useMemory",
		"package": "core",
		"lastUpdated": 1772346044e3,
		"docs": "https://vueuse.org/core/useMemory/",
		"category": "Browser",
		"description": "reactive Memory Info"
	},
	{
		"name": "useMin",
		"package": "math",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/math/useMin/",
		"category": "@Math",
		"description": "reactive `Math.min`"
	},
	{
		"package": "motion",
		"category": "@Motion",
		"name": "useMotion",
		"description": "putting your components in motion.",
		"external": "https://motion.vueuse.org/api/use-motion"
	},
	{
		"package": "motion",
		"category": "@Motion",
		"name": "useMotionProperties",
		"description": "access Motion Properties for a target element.",
		"external": "https://motion.vueuse.org/api/use-motion-properties"
	},
	{
		"package": "motion",
		"category": "@Motion",
		"name": "useMotionVariants",
		"description": "handle the Variants state and selection.",
		"external": "https://motion.vueuse.org/api/use-motion-variants"
	},
	{
		"name": "useMounted",
		"package": "core",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/core/useMounted/",
		"category": "Component",
		"description": "mounted state in ref"
	},
	{
		"name": "useMouse",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"docs": "https://vueuse.org/core/useMouse/",
		"category": "Sensors",
		"description": "reactive mouse position"
	},
	{
		"name": "useMouseInElement",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"directive": true,
		"docs": "https://vueuse.org/core/useMouseInElement/",
		"category": "Elements",
		"description": "reactive mouse position related to an element"
	},
	{
		"name": "useMousePressed",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"docs": "https://vueuse.org/core/useMousePressed/",
		"category": "Sensors",
		"description": "reactive mouse pressing state"
	},
	{
		"name": "useMutationObserver",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"docs": "https://vueuse.org/core/useMutationObserver/",
		"category": "Elements",
		"description": "watch for changes being made to the DOM tree"
	},
	{
		"name": "useNavigatorLanguage",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"docs": "https://vueuse.org/core/useNavigatorLanguage/",
		"category": "Sensors",
		"description": "reactive [navigator.language](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/language)"
	},
	{
		"name": "useNetwork",
		"package": "core",
		"lastUpdated": 1774958324e3,
		"component": true,
		"docs": "https://vueuse.org/core/useNetwork/",
		"category": "Sensors",
		"description": "reactive [Network status](https://developer.mozilla.org/en-US/docs/Web/API/Network_Information_API)"
	},
	{
		"name": "useNow",
		"package": "core",
		"lastUpdated": 1772346044e3,
		"component": true,
		"docs": "https://vueuse.org/core/useNow/",
		"category": "Animation",
		"description": "reactive current Date instance"
	},
	{
		"name": "useNProgress",
		"package": "integrations",
		"lastUpdated": 1770099476e3,
		"docs": "https://vueuse.org/integrations/useNProgress/",
		"category": "@Integrations",
		"description": "reactive wrapper for [`nprogress`](https://github.com/rstacruz/nprogress)",
		"importPath": "integrations/useNProgress"
	},
	{
		"name": "useObjectUrl",
		"package": "core",
		"lastUpdated": 1774958324e3,
		"component": true,
		"docs": "https://vueuse.org/core/useObjectUrl/",
		"category": "Browser",
		"description": "reactive URL representing an object"
	},
	{
		"name": "useObservable",
		"package": "rxjs",
		"lastUpdated": 1739600241e3,
		"docs": "https://vueuse.org/rxjs/useObservable/",
		"category": "@RxJS",
		"description": "use an RxJS [`Observable`](https://rxjs.dev/guide/observable)"
	},
	{
		"name": "useOffsetPagination",
		"package": "core",
		"lastUpdated": 1741147666e3,
		"component": true,
		"docs": "https://vueuse.org/core/useOffsetPagination/",
		"category": "Utilities",
		"description": "reactive offset pagination"
	},
	{
		"name": "useOnline",
		"package": "core",
		"lastUpdated": 175367704e4,
		"component": true,
		"docs": "https://vueuse.org/core/useOnline/",
		"category": "Sensors",
		"description": "reactive online state"
	},
	{
		"name": "usePageLeave",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"docs": "https://vueuse.org/core/usePageLeave/",
		"category": "Sensors",
		"description": "reactive state to show whether the mouse leaves the page"
	},
	{
		"name": "useParallax",
		"package": "core",
		"lastUpdated": 1776327185e3,
		"docs": "https://vueuse.org/core/useParallax/",
		"category": "Sensors",
		"description": "create parallax effect easily"
	},
	{
		"name": "useParentElement",
		"package": "core",
		"lastUpdated": 1741147666e3,
		"docs": "https://vueuse.org/core/useParentElement/",
		"category": "Elements",
		"description": "get parent element of the given element"
	},
	{
		"name": "usePerformanceObserver",
		"package": "core",
		"lastUpdated": 1726477425e3,
		"docs": "https://vueuse.org/core/usePerformanceObserver/",
		"category": "Browser",
		"description": "observe performance metrics"
	},
	{
		"name": "usePermission",
		"package": "core",
		"lastUpdated": 1770013115e3,
		"docs": "https://vueuse.org/core/usePermission/",
		"category": "Browser",
		"description": "reactive [Permissions API](https://developer.mozilla.org/en-US/docs/Web/API/Permissions_API)",
		"related": ["useUserMedia"]
	},
	{
		"name": "usePointer",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"docs": "https://vueuse.org/core/usePointer/",
		"category": "Sensors",
		"description": "reactive [pointer state](https://developer.mozilla.org/en-US/docs/Web/API/Pointer_events)"
	},
	{
		"name": "usePointerLock",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"docs": "https://vueuse.org/core/usePointerLock/",
		"category": "Sensors",
		"description": "reactive [pointer lock](https://developer.mozilla.org/en-US/docs/Web/API/Pointer_Lock_API)"
	},
	{
		"name": "usePointerSwipe",
		"package": "core",
		"lastUpdated": 1774958324e3,
		"docs": "https://vueuse.org/core/usePointerSwipe/",
		"category": "Sensors",
		"description": "reactive swipe detection based on [PointerEvents](https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent)"
	},
	{
		"name": "usePrecision",
		"package": "math",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/math/usePrecision/",
		"category": "@Math",
		"description": "reactively set the precision of a number"
	},
	{
		"name": "usePreferredColorScheme",
		"package": "core",
		"lastUpdated": 175367704e4,
		"component": true,
		"docs": "https://vueuse.org/core/usePreferredColorScheme/",
		"category": "Browser",
		"description": "reactive [prefers-color-scheme](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme) media query"
	},
	{
		"name": "usePreferredContrast",
		"package": "core",
		"lastUpdated": 175367704e4,
		"component": true,
		"docs": "https://vueuse.org/core/usePreferredContrast/",
		"category": "Browser",
		"description": "reactive [prefers-contrast](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-contrast) media query"
	},
	{
		"name": "usePreferredDark",
		"package": "core",
		"lastUpdated": 175367704e4,
		"component": true,
		"docs": "https://vueuse.org/core/usePreferredDark/",
		"category": "Browser",
		"description": "reactive dark theme preference",
		"related": ["useColorMode", "useDark"]
	},
	{
		"name": "usePreferredLanguages",
		"package": "core",
		"lastUpdated": 1755561737e3,
		"component": true,
		"docs": "https://vueuse.org/core/usePreferredLanguages/",
		"category": "Browser",
		"description": "reactive [Navigator Languages](https://developer.mozilla.org/en-US/docs/Web/API/NavigatorLanguage/languages)"
	},
	{
		"name": "usePreferredReducedMotion",
		"package": "core",
		"lastUpdated": 175367704e4,
		"component": true,
		"docs": "https://vueuse.org/core/usePreferredReducedMotion/",
		"category": "Browser",
		"description": "reactive [prefers-reduced-motion](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion) media query"
	},
	{
		"name": "usePreferredReducedTransparency",
		"package": "core",
		"lastUpdated": 175367704e4,
		"component": true,
		"docs": "https://vueuse.org/core/usePreferredReducedTransparency/",
		"category": "Browser",
		"description": "reactive [prefers-reduced-transparency](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-transparency) media query"
	},
	{
		"name": "usePrevious",
		"package": "core",
		"lastUpdated": 1774958324e3,
		"docs": "https://vueuse.org/core/usePrevious/",
		"category": "Utilities",
		"description": "holds the previous value of a ref"
	},
	{
		"name": "useProjection",
		"package": "math",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/math/useProjection/",
		"category": "@Math",
		"description": "reactive numeric projection from one domain to another",
		"related": ["createGenericProjection", "createProjection"]
	},
	{
		"name": "useQRCode",
		"package": "integrations",
		"lastUpdated": 1741147666e3,
		"docs": "https://vueuse.org/integrations/useQRCode/",
		"category": "@Integrations",
		"description": "wrapper for [`qrcode`](https://github.com/soldair/node-qrcode)",
		"importPath": "integrations/useQRCode"
	},
	{
		"name": "useRafFn",
		"package": "core",
		"lastUpdated": 1774958324e3,
		"docs": "https://vueuse.org/core/useRafFn/",
		"category": "Animation",
		"description": "call function on every `requestAnimationFrame`"
	},
	{
		"name": "useRefHistory",
		"package": "core",
		"lastUpdated": 1767923245e3,
		"docs": "https://vueuse.org/core/useRefHistory/",
		"category": "State",
		"description": "track the change history of a ref",
		"related": [
			"useDebouncedRefHistory",
			"useManualRefHistory",
			"useThrottledRefHistory"
		]
	},
	{
		"name": "useResizeObserver",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"directive": true,
		"docs": "https://vueuse.org/core/useResizeObserver/",
		"category": "Elements",
		"description": "reports changes to the dimensions of an Element's content or the border-box"
	},
	{
		"name": "useRound",
		"package": "math",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/math/useRound/",
		"category": "@Math",
		"description": "reactive `Math.round`"
	},
	{
		"name": "useRouteHash",
		"package": "router",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/router/useRouteHash/",
		"category": "@Router",
		"description": "shorthand for a reactive `route.hash`"
	},
	{
		"name": "useRouteParams",
		"package": "router",
		"lastUpdated": 1767755257e3,
		"docs": "https://vueuse.org/router/useRouteParams/",
		"category": "@Router",
		"description": "shorthand for a reactive `route.params`"
	},
	{
		"name": "useRouteQuery",
		"package": "router",
		"lastUpdated": 1767755257e3,
		"docs": "https://vueuse.org/router/useRouteQuery/",
		"category": "@Router",
		"description": "shorthand for a reactive `route.query`"
	},
	{
		"name": "useRTDB",
		"package": "firebase",
		"lastUpdated": 1739600241e3,
		"docs": "https://vueuse.org/firebase/useRTDB/",
		"category": "@Firebase",
		"description": "reactive [Firebase Realtime Database](https://firebase.google.com/docs/database) binding",
		"importPath": "firebase/useRTDB"
	},
	{
		"name": "useSchemaOrg",
		"package": "schema-org",
		"description": "update schema.org reactively.",
		"category": "@SchemaOrg",
		"external": "https://vue-schema-org.netlify.app/api/core/use-schema-org.html"
	},
	{
		"name": "useScreenOrientation",
		"package": "core",
		"lastUpdated": 1772346044e3,
		"docs": "https://vueuse.org/core/useScreenOrientation/",
		"category": "Browser",
		"description": "reactive [Screen Orientation API](https://developer.mozilla.org/en-US/docs/Web/API/Screen_Orientation_API)"
	},
	{
		"name": "useScreenSafeArea",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"docs": "https://vueuse.org/core/useScreenSafeArea/",
		"category": "Browser",
		"description": "reactive `env(safe-area-inset-*)`"
	},
	{
		"name": "useScriptTag",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"docs": "https://vueuse.org/core/useScriptTag/",
		"category": "Browser",
		"description": "creates a script tag"
	},
	{
		"name": "useScroll",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"directive": true,
		"docs": "https://vueuse.org/core/useScroll/",
		"category": "Sensors",
		"description": "reactive scroll position and state"
	},
	{
		"name": "useScrollLock",
		"package": "core",
		"lastUpdated": 1741147666e3,
		"directive": true,
		"docs": "https://vueuse.org/core/useScrollLock/",
		"category": "Sensors",
		"description": "lock scrolling of the element"
	},
	{
		"name": "useSessionStorage",
		"package": "core",
		"lastUpdated": 1741147666e3,
		"docs": "https://vueuse.org/core/useSessionStorage/",
		"category": "State",
		"description": "reactive [SessionStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage)",
		"related": ["useStorage"]
	},
	{
		"name": "useShare",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"docs": "https://vueuse.org/core/useShare/",
		"category": "Browser",
		"description": "reactive [Web Share API](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/share)"
	},
	{
		"name": "useSortable",
		"package": "integrations",
		"lastUpdated": 1776996687e3,
		"component": true,
		"docs": "https://vueuse.org/integrations/useSortable/",
		"category": "@Integrations",
		"description": "wrapper for [`sortable`](https://github.com/SortableJS/Sortable)",
		"importPath": "integrations/useSortable"
	},
	{
		"name": "useSorted",
		"package": "core",
		"lastUpdated": 1741147666e3,
		"docs": "https://vueuse.org/core/useSorted/",
		"category": "Array",
		"description": "reactive sort array"
	},
	{
		"name": "useSound",
		"package": "sound",
		"description": "play sound effects reactively.",
		"category": "@Sound",
		"external": "https://github.com/vueuse/sound#examples"
	},
	{
		"name": "useSpeechRecognition",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"docs": "https://vueuse.org/core/useSpeechRecognition/",
		"category": "Sensors",
		"description": "reactive [SpeechRecognition](https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition)"
	},
	{
		"name": "useSpeechSynthesis",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"docs": "https://vueuse.org/core/useSpeechSynthesis/",
		"category": "Sensors",
		"description": "reactive [SpeechSynthesis](https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis)"
	},
	{
		"package": "motion",
		"category": "@Motion",
		"name": "useSpring",
		"description": "spring animations.",
		"external": "https://motion.vueuse.org/api/use-spring"
	},
	{
		"name": "useSSRWidth",
		"package": "core",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/core/useSSRWidth/",
		"category": "Browser",
		"description": "used to set a global viewport width which will be used when rendering SSR components that rely on the viewport width like [`useMediaQuery`](../useMediaQuery/index.md) or [`useBreakpoints`](../useBreakpoints/index.md)"
	},
	{
		"name": "useStepper",
		"package": "core",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/core/useStepper/",
		"category": "Utilities",
		"description": "provides helpers for building a multi-step wizard interface"
	},
	{
		"name": "useStorage",
		"package": "core",
		"lastUpdated": 1767755257e3,
		"docs": "https://vueuse.org/core/useStorage/",
		"category": "State",
		"description": "create a reactive ref that can be used to access & modify [LocalStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage) or [SessionStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage)",
		"related": [
			"useColorMode",
			"useDark",
			"useLocalStorage",
			"useSessionStorage",
			"useStorageAsync"
		]
	},
	{
		"name": "useStorageAsync",
		"package": "core",
		"lastUpdated": 177435705e4,
		"docs": "https://vueuse.org/core/useStorageAsync/",
		"category": "State",
		"description": "reactive Storage with async support",
		"related": ["useStorage"]
	},
	{
		"name": "useStyleTag",
		"package": "core",
		"lastUpdated": 1774958324e3,
		"docs": "https://vueuse.org/core/useStyleTag/",
		"category": "Browser",
		"description": "inject reactive `style` element in head"
	},
	{
		"name": "useSubject",
		"package": "rxjs",
		"lastUpdated": 1739600241e3,
		"docs": "https://vueuse.org/rxjs/useSubject/",
		"category": "@RxJS",
		"description": "bind an RxJS [`Subject`](https://rxjs.dev/guide/subject) to a `ref` and propagate value changes both ways"
	},
	{
		"name": "useSubscription",
		"package": "rxjs",
		"lastUpdated": 1628521945e3,
		"docs": "https://vueuse.org/rxjs/useSubscription/",
		"category": "@RxJS",
		"description": "use an RxJS [`Subscription`](https://rxjs.dev/guide/subscription) without worrying about unsubscribing from it or creating memory leaks"
	},
	{
		"name": "useSum",
		"package": "math",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/math/useSum/",
		"category": "@Math",
		"description": "get the sum of an array reactively"
	},
	{
		"name": "useSupported",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"docs": "https://vueuse.org/core/useSupported/",
		"category": "Utilities",
		"description": "SSR compatibility `isSupported`"
	},
	{
		"name": "useSwipe",
		"package": "core",
		"lastUpdated": 1756733202e3,
		"docs": "https://vueuse.org/core/useSwipe/",
		"category": "Sensors",
		"description": "reactive swipe detection based on [`TouchEvents`](https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent)"
	},
	{
		"name": "useTemplateRefsList",
		"package": "core",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/core/useTemplateRefsList/",
		"category": "Component",
		"description": "shorthand for binding refs to template elements and components inside `v-for`"
	},
	{
		"name": "useTextareaAutosize",
		"package": "core",
		"lastUpdated": 1777371147e3,
		"docs": "https://vueuse.org/core/useTextareaAutosize/",
		"category": "Browser",
		"description": "automatically update the height of a textarea depending on the content"
	},
	{
		"name": "useTextDirection",
		"package": "core",
		"lastUpdated": 1772346044e3,
		"docs": "https://vueuse.org/core/useTextDirection/",
		"category": "Browser",
		"description": "reactive [dir](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir) of the element's text"
	},
	{
		"name": "useTextSelection",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"docs": "https://vueuse.org/core/useTextSelection/",
		"category": "Sensors",
		"description": "reactively track user text selection based on [`Window.getSelection`](https://developer.mozilla.org/en-US/docs/Web/API/Window/getSelection)"
	},
	{
		"name": "useThrottledRefHistory",
		"package": "core",
		"lastUpdated": 1741147666e3,
		"docs": "https://vueuse.org/core/useThrottledRefHistory/",
		"category": "State",
		"description": "shorthand for `useRefHistory` with throttled filter",
		"related": ["useDebouncedRefHistory", "useRefHistory"]
	},
	{
		"name": "useThrottleFn",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/useThrottleFn/",
		"category": "Utilities",
		"description": "throttle execution of a function",
		"related": [
			"refDebounced",
			"refThrottled",
			"useDebounceFn"
		]
	},
	{
		"name": "useTimeAgo",
		"package": "core",
		"lastUpdated": 1776327185e3,
		"component": true,
		"docs": "https://vueuse.org/core/useTimeAgo/",
		"category": "Time",
		"description": "reactive time ago"
	},
	{
		"name": "useTimeAgoIntl",
		"package": "core",
		"lastUpdated": 1769407468e3,
		"docs": "https://vueuse.org/core/useTimeAgoIntl/",
		"category": "Time",
		"description": "reactive time ago with i18n supported"
	},
	{
		"name": "useTimeout",
		"package": "shared",
		"lastUpdated": 1762306081e3,
		"docs": "https://vueuse.org/shared/useTimeout/",
		"category": "Animation",
		"description": "reactive value that becomes `true` after a given time"
	},
	{
		"name": "useTimeoutFn",
		"package": "shared",
		"lastUpdated": 1750320219e3,
		"docs": "https://vueuse.org/shared/useTimeoutFn/",
		"category": "Animation",
		"description": "wrapper for `setTimeout` with controls"
	},
	{
		"name": "useTimeoutPoll",
		"package": "core",
		"lastUpdated": 1741147666e3,
		"docs": "https://vueuse.org/core/useTimeoutPoll/",
		"category": "Utilities",
		"description": "use timeout to poll something"
	},
	{
		"name": "useTimestamp",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"docs": "https://vueuse.org/core/useTimestamp/",
		"category": "Animation",
		"description": "reactive current timestamp"
	},
	{
		"name": "useTitle",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"docs": "https://vueuse.org/core/useTitle/",
		"category": "Browser",
		"description": "reactive document title"
	},
	{
		"name": "useToggle",
		"package": "shared",
		"lastUpdated": 1756726434e3,
		"docs": "https://vueuse.org/shared/useToggle/",
		"category": "Utilities",
		"description": "a boolean switcher with utility functions"
	},
	{
		"name": "useToNumber",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/useToNumber/",
		"category": "Utilities",
		"description": "reactively convert a string ref to number"
	},
	{
		"name": "useToString",
		"package": "shared",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/shared/useToString/",
		"category": "Utilities",
		"description": "reactively convert a ref to string"
	},
	{
		"name": "useTransition",
		"package": "core",
		"lastUpdated": 1758205253e3,
		"docs": "https://vueuse.org/core/useTransition/",
		"category": "Animation",
		"description": "transition between values"
	},
	{
		"name": "useTrunc",
		"package": "math",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/math/useTrunc/",
		"category": "@Math",
		"description": "reactive `Math.trunc`"
	},
	{
		"name": "useUrlSearchParams",
		"package": "core",
		"lastUpdated": 1764573571e3,
		"docs": "https://vueuse.org/core/useUrlSearchParams/",
		"category": "Browser",
		"description": "reactive [URLSearchParams](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams)"
	},
	{
		"name": "useUserMedia",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"docs": "https://vueuse.org/core/useUserMedia/",
		"category": "Sensors",
		"description": "reactive [`mediaDevices.getUserMedia`](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia) streaming",
		"related": [
			"useDevicesList",
			"useDisplayMedia",
			"usePermission"
		]
	},
	{
		"name": "useVibrate",
		"package": "core",
		"lastUpdated": 1770013115e3,
		"docs": "https://vueuse.org/core/useVibrate/",
		"category": "Browser",
		"description": "reactive [Vibration API](https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API)"
	},
	{
		"name": "useVirtualList",
		"package": "core",
		"lastUpdated": 1770892796e3,
		"component": true,
		"docs": "https://vueuse.org/core/useVirtualList/",
		"category": "Component",
		"description": "create virtual lists with ease"
	},
	{
		"name": "useVModel",
		"package": "core",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/core/useVModel/",
		"category": "Component",
		"description": "shorthand for v-model binding",
		"related": ["useVModels"]
	},
	{
		"name": "useVModels",
		"package": "core",
		"lastUpdated": 175367704e4,
		"docs": "https://vueuse.org/core/useVModels/",
		"category": "Component",
		"description": "shorthand for props v-model binding",
		"related": ["useVModel"]
	},
	{
		"name": "useWakeLock",
		"package": "core",
		"lastUpdated": 1774956001e3,
		"docs": "https://vueuse.org/core/useWakeLock/",
		"category": "Browser",
		"description": "reactive [Screen Wake Lock API](https://developer.mozilla.org/en-US/docs/Web/API/Screen_Wake_Lock_API)"
	},
	{
		"name": "useWebNotification",
		"package": "core",
		"lastUpdated": 1772346044e3,
		"docs": "https://vueuse.org/core/useWebNotification/",
		"category": "Browser",
		"description": "reactive [Notification](https://developer.mozilla.org/en-US/docs/Web/API/notification)"
	},
	{
		"name": "useWebSocket",
		"package": "core",
		"lastUpdated": 1773650332e3,
		"docs": "https://vueuse.org/core/useWebSocket/",
		"category": "Network",
		"description": "reactive [WebSocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/WebSocket) client"
	},
	{
		"name": "useWebWorker",
		"package": "core",
		"lastUpdated": 1772346044e3,
		"docs": "https://vueuse.org/core/useWebWorker/",
		"category": "Browser",
		"description": "simple [Web Workers](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers) registration and communication",
		"related": ["useWebWorkerFn"]
	},
	{
		"name": "useWebWorkerFn",
		"package": "core",
		"lastUpdated": 1776327185e3,
		"docs": "https://vueuse.org/core/useWebWorkerFn/",
		"category": "Browser",
		"description": "run expensive functions without blocking the UI",
		"related": ["useWebWorker"]
	},
	{
		"name": "useWindowFocus",
		"package": "core",
		"lastUpdated": 175367704e4,
		"component": true,
		"docs": "https://vueuse.org/core/useWindowFocus/",
		"category": "Elements",
		"description": "reactively track window focus with `window.onfocus` and `window.onblur` events"
	},
	{
		"name": "useWindowScroll",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"docs": "https://vueuse.org/core/useWindowScroll/",
		"category": "Elements",
		"description": "reactive window scroll"
	},
	{
		"name": "useWindowSize",
		"package": "core",
		"lastUpdated": 1770099476e3,
		"component": true,
		"docs": "https://vueuse.org/core/useWindowSize/",
		"category": "Elements",
		"description": "reactive window size"
	},
	{
		"name": "useZoomFactor",
		"package": "electron",
		"lastUpdated": 1741147666e3,
		"docs": "https://vueuse.org/electron/useZoomFactor/",
		"category": "@Electron",
		"description": "reactive [WebFrame](https://www.electronjs.org/docs/api/web-frame#webframe) zoom factor"
	},
	{
		"name": "useZoomLevel",
		"package": "electron",
		"lastUpdated": 1741147666e3,
		"docs": "https://vueuse.org/electron/useZoomLevel/",
		"category": "@Electron",
		"description": "reactive [WebFrame](https://www.electronjs.org/docs/api/web-frame#webframe) zoom level"
	},
	{
		"name": "utils",
		"package": "shared",
		"lastUpdated": 1741577867e3,
		"internal": true
	},
	{
		"name": "watchArray",
		"package": "shared",
		"lastUpdated": 1741159087e3,
		"docs": "https://vueuse.org/shared/watchArray/",
		"category": "Watch",
		"description": "watch for an array with additions and removals"
	},
	{
		"name": "watchAtMost",
		"package": "shared",
		"lastUpdated": 1770702904e3,
		"docs": "https://vueuse.org/shared/watchAtMost/",
		"category": "Watch",
		"description": "`watch` with the number of times triggered"
	},
	{
		"name": "watchDebounced",
		"package": "shared",
		"lastUpdated": 1770702904e3,
		"docs": "https://vueuse.org/shared/watchDebounced/",
		"category": "Watch",
		"description": "debounced watch",
		"alias": ["debouncedWatch"]
	},
	{
		"name": "watchDeep",
		"package": "shared",
		"lastUpdated": 1770702904e3,
		"docs": "https://vueuse.org/shared/watchDeep/",
		"category": "Watch",
		"description": "shorthand for watching value with `{deep: true}`"
	},
	{
		"name": "watchExtractedObservable",
		"package": "rxjs",
		"lastUpdated": 1767755257e3,
		"docs": "https://vueuse.org/rxjs/watchExtractedObservable/",
		"category": "@RxJS",
		"description": "watch the values of an RxJS [`Observable`](https://rxjs.dev/guide/observable) as extracted from one or more composables"
	},
	{
		"name": "watchIgnorable",
		"package": "shared",
		"lastUpdated": 1770702904e3,
		"docs": "https://vueuse.org/shared/watchIgnorable/",
		"category": "Watch",
		"description": "ignorable watch",
		"alias": ["ignorableWatch"]
	},
	{
		"name": "watchImmediate",
		"package": "shared",
		"lastUpdated": 1770702904e3,
		"docs": "https://vueuse.org/shared/watchImmediate/",
		"category": "Watch",
		"description": "shorthand for watching value with `{immediate: true}`"
	},
	{
		"name": "watchOnce",
		"package": "shared",
		"lastUpdated": 1770702904e3,
		"docs": "https://vueuse.org/shared/watchOnce/",
		"category": "Watch",
		"description": "shorthand for watching value with `{ once: true }`"
	},
	{
		"name": "watchPausable",
		"package": "shared",
		"lastUpdated": 1770702904e3,
		"docs": "https://vueuse.org/shared/watchPausable/",
		"category": "Watch",
		"description": "pausable watch",
		"alias": ["pausableWatch"]
	},
	{
		"name": "watchThrottled",
		"package": "shared",
		"lastUpdated": 1770702904e3,
		"docs": "https://vueuse.org/shared/watchThrottled/",
		"category": "Watch",
		"description": "throttled watch",
		"alias": ["throttledWatch"]
	},
	{
		"name": "watchTriggerable",
		"package": "shared",
		"lastUpdated": 1770702904e3,
		"docs": "https://vueuse.org/shared/watchTriggerable/",
		"category": "Watch",
		"description": "watch that can be triggered manually"
	},
	{
		"name": "watchWithFilter",
		"package": "shared",
		"lastUpdated": 1770702904e3,
		"docs": "https://vueuse.org/shared/watchWithFilter/",
		"category": "Watch",
		"description": "`watch` with additional EventFilter control"
	},
	{
		"name": "whenever",
		"package": "shared",
		"lastUpdated": 1770703383e3,
		"docs": "https://vueuse.org/shared/whenever/",
		"category": "Watch",
		"description": "shorthand for watching value to be truthy"
	}
];
var metadata_default = {
	packages: packages$1,
	categories: categories$1,
	functions: functions$1
};
//#endregion
//#region metadata.ts
const categoriesOrder = [
	"State",
	"Elements",
	"Browser",
	"Sensors",
	"Network",
	"Animation",
	"Component",
	"Watch",
	"Reactivity",
	"Array",
	"Time",
	"Utilities"
];
const metadata = metadata_default;
const functions = functions$1;
const packages = packages$1;
const categories = categories$1;
const functionNames = functions.map((f) => f.name);
const categoryNames = Array.from(categories).sort((a, b) => categoriesOrder.indexOf(a) - categoriesOrder.indexOf(b)).sort((a, b) => a.startsWith("@") ? 1 : b.startsWith("@") ? -1 : 0);
const coreCategoryNames = categoryNames.filter((f) => !f.startsWith("@"));
const addonCategoryNames = categoryNames.filter((f) => f.startsWith("@"));
function getFunction(name) {
	return metadata.functions.find((f) => f.name === name);
}
//#endregion
//#region utils.ts
function getCategories(functions) {
	return uniq(functions.filter((i) => !i.internal).map((i) => i.category).filter(Boolean)).sort((a, b) => a.startsWith("@") && !b.startsWith("@") ? 1 : b.startsWith("@") && !a.startsWith("@") ? -1 : a.localeCompare(b));
}
function uniq(a) {
	return Array.from(new Set(a));
}
//#endregion
export { addonCategoryNames, categories, categoryNames, coreCategoryNames, functionNames, functions, getCategories, getFunction, metadata, packages, uniq };
