{"version":3,"file":"index-BjYdUj-u.js","sources":["../../../node_modules/@vueuse/components/index.mjs"],"sourcesContent":["import { defineComponent, ref, h, watch, computed, reactive, shallowRef, nextTick, getCurrentInstance, onMounted, isVue2, watchEffect, toRefs } from 'vue-demi';\nimport { onClickOutside as onClickOutside$1, useActiveElement, useBattery, useBrowserLocation, useClipboard, useDark, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDocumentVisibility, useStorage as useStorage$1, isClient as isClient$1, useDraggable, useElementBounding, useElementSize as useElementSize$1, useElementVisibility as useElementVisibility$1, useEyeDropper, useFullscreen, useGeolocation, useIdle, useMouse, useMouseInElement, useMousePressed, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, usePointer, usePointerLock, usePreferredColorScheme, usePreferredContrast, usePreferredDark as usePreferredDark$1, usePreferredLanguages, usePreferredReducedMotion, useTimeAgo, useTimestamp, useVirtualList, useWindowFocus, useWindowSize } from '@vueuse/core';\nimport { toValue, isClient, noop, isObject, tryOnScopeDispose, isIOS, directiveHooks, pausableWatch, tryOnMounted, toRef, useToggle, notNullish, promiseTimeout, until, useDebounceFn, useThrottleFn } from '@vueuse/shared';\n\nconst OnClickOutside = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"OnClickOutside\",\n  props: [\"as\", \"options\"],\n  emits: [\"trigger\"],\n  setup(props, { slots, emit }) {\n    const target = ref();\n    onClickOutside$1(target, (e) => {\n      emit(\"trigger\", e);\n    }, props.options);\n    return () => {\n      if (slots.default)\n        return h(props.as || \"div\", { ref: target }, slots.default());\n    };\n  }\n});\n\nfunction unrefElement(elRef) {\n  var _a;\n  const plain = toValue(elRef);\n  return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = isClient ? window : void 0;\n\nfunction useEventListener(...args) {\n  let target;\n  let events;\n  let listeners;\n  let options;\n  if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n    [events, listeners, options] = args;\n    target = defaultWindow;\n  } else {\n    [target, events, listeners, options] = args;\n  }\n  if (!target)\n    return noop;\n  if (!Array.isArray(events))\n    events = [events];\n  if (!Array.isArray(listeners))\n    listeners = [listeners];\n  const cleanups = [];\n  const cleanup = () => {\n    cleanups.forEach((fn) => fn());\n    cleanups.length = 0;\n  };\n  const register = (el, event, listener, options2) => {\n    el.addEventListener(event, listener, options2);\n    return () => el.removeEventListener(event, listener, options2);\n  };\n  const stopWatch = watch(\n    () => [unrefElement(target), toValue(options)],\n    ([el, options2]) => {\n      cleanup();\n      if (!el)\n        return;\n      const optionsClone = isObject(options2) ? { ...options2 } : options2;\n      cleanups.push(\n        ...events.flatMap((event) => {\n          return listeners.map((listener) => register(el, event, listener, optionsClone));\n        })\n      );\n    },\n    { immediate: true, flush: \"post\" }\n  );\n  const stop = () => {\n    stopWatch();\n    cleanup();\n  };\n  tryOnScopeDispose(stop);\n  return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n  const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n  if (!window)\n    return noop;\n  if (isIOS && !_iOSWorkaround) {\n    _iOSWorkaround = true;\n    Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n    window.document.documentElement.addEventListener(\"click\", noop);\n  }\n  let shouldListen = true;\n  const shouldIgnore = (event) => {\n    return ignore.some((target2) => {\n      if (typeof target2 === \"string\") {\n        return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n      } else {\n        const el = unrefElement(target2);\n        return el && (event.target === el || event.composedPath().includes(el));\n      }\n    });\n  };\n  const listener = (event) => {\n    const el = unrefElement(target);\n    if (!el || el === event.target || event.composedPath().includes(el))\n      return;\n    if (event.detail === 0)\n      shouldListen = !shouldIgnore(event);\n    if (!shouldListen) {\n      shouldListen = true;\n      return;\n    }\n    handler(event);\n  };\n  const cleanup = [\n    useEventListener(window, \"click\", listener, { passive: true, capture }),\n    useEventListener(window, \"pointerdown\", (e) => {\n      const el = unrefElement(target);\n      shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n    }, { passive: true }),\n    detectIframe && useEventListener(window, \"blur\", (event) => {\n      setTimeout(() => {\n        var _a;\n        const el = unrefElement(target);\n        if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement))) {\n          handler(event);\n        }\n      }, 0);\n    })\n  ].filter(Boolean);\n  const stop = () => cleanup.forEach((fn) => fn());\n  return stop;\n}\n\nconst vOnClickOutside = {\n  [directiveHooks.mounted](el, binding) {\n    const capture = !binding.modifiers.bubble;\n    if (typeof binding.value === \"function\") {\n      el.__onClickOutside_stop = onClickOutside(el, binding.value, { capture });\n    } else {\n      const [handler, options] = binding.value;\n      el.__onClickOutside_stop = onClickOutside(el, handler, Object.assign({ capture }, options));\n    }\n  },\n  [directiveHooks.unmounted](el) {\n    el.__onClickOutside_stop();\n  }\n};\n\nfunction createKeyPredicate(keyFilter) {\n  if (typeof keyFilter === \"function\")\n    return keyFilter;\n  else if (typeof keyFilter === \"string\")\n    return (event) => event.key === keyFilter;\n  else if (Array.isArray(keyFilter))\n    return (event) => keyFilter.includes(event.key);\n  return () => true;\n}\nfunction onKeyStroke(...args) {\n  let key;\n  let handler;\n  let options = {};\n  if (args.length === 3) {\n    key = args[0];\n    handler = args[1];\n    options = args[2];\n  } else if (args.length === 2) {\n    if (typeof args[1] === \"object\") {\n      key = true;\n      handler = args[0];\n      options = args[1];\n    } else {\n      key = args[0];\n      handler = args[1];\n    }\n  } else {\n    key = true;\n    handler = args[0];\n  }\n  const {\n    target = defaultWindow,\n    eventName = \"keydown\",\n    passive = false,\n    dedupe = false\n  } = options;\n  const predicate = createKeyPredicate(key);\n  const listener = (e) => {\n    if (e.repeat && toValue(dedupe))\n      return;\n    if (predicate(e))\n      handler(e);\n  };\n  return useEventListener(target, eventName, listener, passive);\n}\n\nconst vOnKeyStroke = {\n  [directiveHooks.mounted](el, binding) {\n    var _a, _b;\n    const keys = (_b = (_a = binding.arg) == null ? void 0 : _a.split(\",\")) != null ? _b : true;\n    if (typeof binding.value === \"function\") {\n      onKeyStroke(keys, binding.value, {\n        target: el\n      });\n    } else {\n      const [handler, options] = binding.value;\n      onKeyStroke(keys, handler, {\n        target: el,\n        ...options\n      });\n    }\n  }\n};\n\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n  var _a, _b;\n  const elementRef = computed(() => unrefElement(target));\n  let timeout;\n  let posStart;\n  let startTimestamp;\n  let hasLongPressed = false;\n  function clear() {\n    if (timeout) {\n      clearTimeout(timeout);\n      timeout = void 0;\n    }\n    posStart = void 0;\n    startTimestamp = void 0;\n    hasLongPressed = false;\n  }\n  function onRelease(ev) {\n    var _a2, _b2, _c;\n    const [_startTimestamp, _posStart, _hasLongPressed] = [startTimestamp, posStart, hasLongPressed];\n    clear();\n    if (!(options == null ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp)\n      return;\n    if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n      return;\n    if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n      ev.preventDefault();\n    if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n      ev.stopPropagation();\n    const dx = ev.x - _posStart.x;\n    const dy = ev.y - _posStart.y;\n    const distance = Math.sqrt(dx * dx + dy * dy);\n    options.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed);\n  }\n  function onDown(ev) {\n    var _a2, _b2, _c, _d;\n    if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n      return;\n    clear();\n    if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n      ev.preventDefault();\n    if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n      ev.stopPropagation();\n    posStart = {\n      x: ev.x,\n      y: ev.y\n    };\n    startTimestamp = ev.timeStamp;\n    timeout = setTimeout(\n      () => {\n        hasLongPressed = true;\n        handler(ev);\n      },\n      (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY\n    );\n  }\n  function onMove(ev) {\n    var _a2, _b2, _c, _d;\n    if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n      return;\n    if (!posStart || (options == null ? void 0 : options.distanceThreshold) === false)\n      return;\n    if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n      ev.preventDefault();\n    if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n      ev.stopPropagation();\n    const dx = ev.x - posStart.x;\n    const dy = ev.y - posStart.y;\n    const distance = Math.sqrt(dx * dx + dy * dy);\n    if (distance >= ((_d = options == null ? void 0 : options.distanceThreshold) != null ? _d : DEFAULT_THRESHOLD))\n      clear();\n  }\n  const listenerOptions = {\n    capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n    once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n  };\n  const cleanup = [\n    useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n    useEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n    useEventListener(elementRef, [\"pointerup\", \"pointerleave\"], onRelease, listenerOptions)\n  ];\n  const stop = () => cleanup.forEach((fn) => fn());\n  return stop;\n}\n\nconst OnLongPress = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"OnLongPress\",\n  props: [\"as\", \"options\"],\n  emits: [\"trigger\"],\n  setup(props, { slots, emit }) {\n    const target = ref();\n    onLongPress(\n      target,\n      (e) => {\n        emit(\"trigger\", e);\n      },\n      props.options\n    );\n    return () => {\n      if (slots.default)\n        return h(props.as || \"div\", { ref: target }, slots.default());\n    };\n  }\n});\n\nconst vOnLongPress = {\n  [directiveHooks.mounted](el, binding) {\n    if (typeof binding.value === \"function\")\n      onLongPress(el, binding.value, { modifiers: binding.modifiers });\n    else\n      onLongPress(el, ...binding.value);\n  }\n};\n\nconst UseActiveElement = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseActiveElement\",\n  setup(props, { slots }) {\n    const data = reactive({\n      element: useActiveElement()\n    });\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UseBattery = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseBattery\",\n  setup(props, { slots }) {\n    const data = reactive(useBattery(props));\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UseBrowserLocation = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseBrowserLocation\",\n  setup(props, { slots }) {\n    const data = reactive(useBrowserLocation());\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UseClipboard = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseClipboard\",\n  props: [\n    \"source\",\n    \"read\",\n    \"navigator\",\n    \"copiedDuring\",\n    \"legacy\"\n  ],\n  setup(props, { slots }) {\n    const data = reactive(useClipboard(props));\n    return () => {\n      var _a;\n      return (_a = slots.default) == null ? void 0 : _a.call(slots, data);\n    };\n  }\n});\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n  if (!(globalKey in _global))\n    _global[globalKey] = _global[globalKey] || {};\n  return _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n  return handlers[key] || fallback;\n}\n\nfunction guessSerializerType(rawInit) {\n  return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nconst StorageSerializers = {\n  boolean: {\n    read: (v) => v === \"true\",\n    write: (v) => String(v)\n  },\n  object: {\n    read: (v) => JSON.parse(v),\n    write: (v) => JSON.stringify(v)\n  },\n  number: {\n    read: (v) => Number.parseFloat(v),\n    write: (v) => String(v)\n  },\n  any: {\n    read: (v) => v,\n    write: (v) => String(v)\n  },\n  string: {\n    read: (v) => v,\n    write: (v) => String(v)\n  },\n  map: {\n    read: (v) => new Map(JSON.parse(v)),\n    write: (v) => JSON.stringify(Array.from(v.entries()))\n  },\n  set: {\n    read: (v) => new Set(JSON.parse(v)),\n    write: (v) => JSON.stringify(Array.from(v))\n  },\n  date: {\n    read: (v) => new Date(v),\n    write: (v) => v.toISOString()\n  }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n  var _a;\n  const {\n    flush = \"pre\",\n    deep = true,\n    listenToStorageChanges = true,\n    writeDefaults = true,\n    mergeDefaults = false,\n    shallow,\n    window = defaultWindow,\n    eventFilter,\n    onError = (e) => {\n      console.error(e);\n    },\n    initOnMounted\n  } = options;\n  const data = (shallow ? shallowRef : ref)(typeof defaults === \"function\" ? defaults() : defaults);\n  if (!storage) {\n    try {\n      storage = getSSRHandler(\"getDefaultStorage\", () => {\n        var _a2;\n        return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n      })();\n    } catch (e) {\n      onError(e);\n    }\n  }\n  if (!storage)\n    return data;\n  const rawInit = toValue(defaults);\n  const type = guessSerializerType(rawInit);\n  const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n  const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(\n    data,\n    () => write(data.value),\n    { flush, deep, eventFilter }\n  );\n  if (window && listenToStorageChanges) {\n    tryOnMounted(() => {\n      useEventListener(window, \"storage\", update);\n      useEventListener(window, customStorageEventName, updateFromCustomEvent);\n      if (initOnMounted)\n        update();\n    });\n  }\n  if (!initOnMounted)\n    update();\n  function dispatchWriteEvent(oldValue, newValue) {\n    if (window) {\n      window.dispatchEvent(new CustomEvent(customStorageEventName, {\n        detail: {\n          key,\n          oldValue,\n          newValue,\n          storageArea: storage\n        }\n      }));\n    }\n  }\n  function write(v) {\n    try {\n      const oldValue = storage.getItem(key);\n      if (v == null) {\n        dispatchWriteEvent(oldValue, null);\n        storage.removeItem(key);\n      } else {\n        const serialized = serializer.write(v);\n        if (oldValue !== serialized) {\n          storage.setItem(key, serialized);\n          dispatchWriteEvent(oldValue, serialized);\n        }\n      }\n    } catch (e) {\n      onError(e);\n    }\n  }\n  function read(event) {\n    const rawValue = event ? event.newValue : storage.getItem(key);\n    if (rawValue == null) {\n      if (writeDefaults && rawInit != null)\n        storage.setItem(key, serializer.write(rawInit));\n      return rawInit;\n    } else if (!event && mergeDefaults) {\n      const value = serializer.read(rawValue);\n      if (typeof mergeDefaults === \"function\")\n        return mergeDefaults(value, rawInit);\n      else if (type === \"object\" && !Array.isArray(value))\n        return { ...rawInit, ...value };\n      return value;\n    } else if (typeof rawValue !== \"string\") {\n      return rawValue;\n    } else {\n      return serializer.read(rawValue);\n    }\n  }\n  function update(event) {\n    if (event && event.storageArea !== storage)\n      return;\n    if (event && event.key == null) {\n      data.value = rawInit;\n      return;\n    }\n    if (event && event.key !== key)\n      return;\n    pauseWatch();\n    try {\n      if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value))\n        data.value = read(event);\n    } catch (e) {\n      onError(e);\n    } finally {\n      if (event)\n        nextTick(resumeWatch);\n      else\n        resumeWatch();\n    }\n  }\n  function updateFromCustomEvent(event) {\n    update(event.detail);\n  }\n  return data;\n}\n\nfunction useMounted() {\n  const isMounted = ref(false);\n  const instance = getCurrentInstance();\n  if (instance) {\n    onMounted(() => {\n      isMounted.value = true;\n    }, isVue2 ? void 0 : instance);\n  }\n  return isMounted;\n}\n\nfunction useSupported(callback) {\n  const isMounted = useMounted();\n  return computed(() => {\n    isMounted.value;\n    return Boolean(callback());\n  });\n}\n\nfunction useMediaQuery(query, options = {}) {\n  const { window = defaultWindow } = options;\n  const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n  let mediaQuery;\n  const matches = ref(false);\n  const handler = (event) => {\n    matches.value = event.matches;\n  };\n  const cleanup = () => {\n    if (!mediaQuery)\n      return;\n    if (\"removeEventListener\" in mediaQuery)\n      mediaQuery.removeEventListener(\"change\", handler);\n    else\n      mediaQuery.removeListener(handler);\n  };\n  const stopWatch = watchEffect(() => {\n    if (!isSupported.value)\n      return;\n    cleanup();\n    mediaQuery = window.matchMedia(toValue(query));\n    if (\"addEventListener\" in mediaQuery)\n      mediaQuery.addEventListener(\"change\", handler);\n    else\n      mediaQuery.addListener(handler);\n    matches.value = mediaQuery.matches;\n  });\n  tryOnScopeDispose(() => {\n    stopWatch();\n    cleanup();\n    mediaQuery = void 0;\n  });\n  return matches;\n}\n\nfunction usePreferredDark(options) {\n  return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nfunction useColorMode(options = {}) {\n  const {\n    selector = \"html\",\n    attribute = \"class\",\n    initialValue = \"auto\",\n    window = defaultWindow,\n    storage,\n    storageKey = \"vueuse-color-scheme\",\n    listenToStorageChanges = true,\n    storageRef,\n    emitAuto,\n    disableTransition = true\n  } = options;\n  const modes = {\n    auto: \"\",\n    light: \"light\",\n    dark: \"dark\",\n    ...options.modes || {}\n  };\n  const preferredDark = usePreferredDark({ window });\n  const system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n  const store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n  const state = computed(() => store.value === \"auto\" ? system.value : store.value);\n  const updateHTMLAttrs = getSSRHandler(\n    \"updateHTMLAttrs\",\n    (selector2, attribute2, value) => {\n      const el = typeof selector2 === \"string\" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);\n      if (!el)\n        return;\n      let style;\n      if (disableTransition) {\n        style = window.document.createElement(\"style\");\n        const styleString = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n        style.appendChild(document.createTextNode(styleString));\n        window.document.head.appendChild(style);\n      }\n      if (attribute2 === \"class\") {\n        const current = value.split(/\\s/g);\n        Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n          if (current.includes(v))\n            el.classList.add(v);\n          else\n            el.classList.remove(v);\n        });\n      } else {\n        el.setAttribute(attribute2, value);\n      }\n      if (disableTransition) {\n        window.getComputedStyle(style).opacity;\n        document.head.removeChild(style);\n      }\n    }\n  );\n  function defaultOnChanged(mode) {\n    var _a;\n    updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);\n  }\n  function onChanged(mode) {\n    if (options.onChanged)\n      options.onChanged(mode, defaultOnChanged);\n    else\n      defaultOnChanged(mode);\n  }\n  watch(state, onChanged, { flush: \"post\", immediate: true });\n  tryOnMounted(() => onChanged(state.value));\n  const auto = computed({\n    get() {\n      return emitAuto ? store.value : state.value;\n    },\n    set(v) {\n      store.value = v;\n    }\n  });\n  try {\n    return Object.assign(auto, { store, system, state });\n  } catch (e) {\n    return auto;\n  }\n}\n\nconst UseColorMode = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseColorMode\",\n  props: [\"selector\", \"attribute\", \"modes\", \"onChanged\", \"storageKey\", \"storage\", \"emitAuto\"],\n  setup(props, { slots }) {\n    const mode = useColorMode(props);\n    const data = reactive({\n      mode,\n      system: mode.system,\n      store: mode.store\n    });\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UseDark = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseDark\",\n  props: [\"selector\", \"attribute\", \"valueDark\", \"valueLight\", \"onChanged\", \"storageKey\", \"storage\"],\n  setup(props, { slots }) {\n    const isDark = useDark(props);\n    const data = reactive({\n      isDark,\n      toggleDark: useToggle(isDark)\n    });\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UseDeviceMotion = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseDeviceMotion\",\n  setup(props, { slots }) {\n    const data = reactive(useDeviceMotion());\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UseDeviceOrientation = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseDeviceOrientation\",\n  setup(props, { slots }) {\n    const data = reactive(useDeviceOrientation());\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UseDevicePixelRatio = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseDevicePixelRatio\",\n  setup(props, { slots }) {\n    const data = reactive({\n      pixelRatio: useDevicePixelRatio()\n    });\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UseDevicesList = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseDevicesList\",\n  props: [\"onUpdated\", \"requestPermissions\", \"constraints\"],\n  setup(props, { slots }) {\n    const data = reactive(useDevicesList(props));\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UseDocumentVisibility = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseDocumentVisibility\",\n  setup(props, { slots }) {\n    const data = reactive({\n      visibility: useDocumentVisibility()\n    });\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UseDraggable = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseDraggable\",\n  props: [\n    \"storageKey\",\n    \"storageType\",\n    \"initialValue\",\n    \"exact\",\n    \"preventDefault\",\n    \"stopPropagation\",\n    \"pointerTypes\",\n    \"as\",\n    \"handle\",\n    \"axis\",\n    \"onStart\",\n    \"onMove\",\n    \"onEnd\",\n    \"disabled\"\n  ],\n  setup(props, { slots }) {\n    const target = ref();\n    const handle = computed(() => {\n      var _a;\n      return (_a = props.handle) != null ? _a : target.value;\n    });\n    const disabled = computed(() => !!props.disabled);\n    const storageValue = props.storageKey && useStorage$1(\n      props.storageKey,\n      toValue(props.initialValue) || { x: 0, y: 0 },\n      isClient$1 ? props.storageType === \"session\" ? sessionStorage : localStorage : void 0\n    );\n    const initialValue = storageValue || props.initialValue || { x: 0, y: 0 };\n    const onEnd = (position, event) => {\n      var _a;\n      (_a = props.onEnd) == null ? void 0 : _a.call(props, position, event);\n      if (!storageValue)\n        return;\n      storageValue.value.x = position.x;\n      storageValue.value.y = position.y;\n    };\n    const data = reactive(useDraggable(target, {\n      ...props,\n      handle,\n      initialValue,\n      onEnd,\n      disabled\n    }));\n    return () => {\n      if (slots.default)\n        return h(props.as || \"div\", { ref: target, style: `touch-action:none;${data.style}` }, slots.default(data));\n    };\n  }\n});\n\nconst UseElementBounding = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseElementBounding\",\n  props: [\"box\", \"as\"],\n  setup(props, { slots }) {\n    const target = ref();\n    const data = reactive(useElementBounding(target));\n    return () => {\n      if (slots.default)\n        return h(props.as || \"div\", { ref: target }, slots.default(data));\n    };\n  }\n});\n\nfunction useElementHover(el, options = {}) {\n  const {\n    delayEnter = 0,\n    delayLeave = 0,\n    window = defaultWindow\n  } = options;\n  const isHovered = ref(false);\n  let timer;\n  const toggle = (entering) => {\n    const delay = entering ? delayEnter : delayLeave;\n    if (timer) {\n      clearTimeout(timer);\n      timer = void 0;\n    }\n    if (delay)\n      timer = setTimeout(() => isHovered.value = entering, delay);\n    else\n      isHovered.value = entering;\n  };\n  if (!window)\n    return isHovered;\n  useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n  useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n  return isHovered;\n}\n\nconst vElementHover = {\n  [directiveHooks.mounted](el, binding) {\n    if (typeof binding.value === \"function\") {\n      const isHovered = useElementHover(el);\n      watch(isHovered, (v) => binding.value(v));\n    }\n  }\n};\n\nconst UseElementSize = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseElementSize\",\n  props: [\"width\", \"height\", \"box\", \"as\"],\n  setup(props, { slots }) {\n    const target = ref();\n    const data = reactive(useElementSize$1(target, { width: props.width, height: props.height }, { box: props.box }));\n    return () => {\n      if (slots.default)\n        return h(props.as || \"div\", { ref: target }, slots.default(data));\n    };\n  }\n});\n\nfunction useResizeObserver(target, callback, options = {}) {\n  const { window = defaultWindow, ...observerOptions } = options;\n  let observer;\n  const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n  const cleanup = () => {\n    if (observer) {\n      observer.disconnect();\n      observer = void 0;\n    }\n  };\n  const targets = computed(() => Array.isArray(target) ? target.map((el) => unrefElement(el)) : [unrefElement(target)]);\n  const stopWatch = watch(\n    targets,\n    (els) => {\n      cleanup();\n      if (isSupported.value && window) {\n        observer = new ResizeObserver(callback);\n        for (const _el of els)\n          _el && observer.observe(_el, observerOptions);\n      }\n    },\n    { immediate: true, flush: \"post\" }\n  );\n  const stop = () => {\n    cleanup();\n    stopWatch();\n  };\n  tryOnScopeDispose(stop);\n  return {\n    isSupported,\n    stop\n  };\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n  const { window = defaultWindow, box = \"content-box\" } = options;\n  const isSVG = computed(() => {\n    var _a, _b;\n    return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n  });\n  const width = ref(initialSize.width);\n  const height = ref(initialSize.height);\n  const { stop: stop1 } = useResizeObserver(\n    target,\n    ([entry]) => {\n      const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n      if (window && isSVG.value) {\n        const $elem = unrefElement(target);\n        if ($elem) {\n          const rect = $elem.getBoundingClientRect();\n          width.value = rect.width;\n          height.value = rect.height;\n        }\n      } else {\n        if (boxSize) {\n          const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n          width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n          height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n        } else {\n          width.value = entry.contentRect.width;\n          height.value = entry.contentRect.height;\n        }\n      }\n    },\n    options\n  );\n  tryOnMounted(() => {\n    const ele = unrefElement(target);\n    if (ele) {\n      width.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n      height.value = \"offsetHeight\" in ele ? ele.offsetHeight : initialSize.height;\n    }\n  });\n  const stop2 = watch(\n    () => unrefElement(target),\n    (ele) => {\n      width.value = ele ? initialSize.width : 0;\n      height.value = ele ? initialSize.height : 0;\n    }\n  );\n  function stop() {\n    stop1();\n    stop2();\n  }\n  return {\n    width,\n    height,\n    stop\n  };\n}\n\nconst vElementSize = {\n  [directiveHooks.mounted](el, binding) {\n    var _a;\n    const handler = typeof binding.value === \"function\" ? binding.value : (_a = binding.value) == null ? void 0 : _a[0];\n    const options = typeof binding.value === \"function\" ? [] : binding.value.slice(1);\n    const { width, height } = useElementSize(el, ...options);\n    watch([width, height], ([width2, height2]) => handler({ width: width2, height: height2 }));\n  }\n};\n\nconst UseElementVisibility = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseElementVisibility\",\n  props: [\"as\"],\n  setup(props, { slots }) {\n    const target = ref();\n    const data = reactive({\n      isVisible: useElementVisibility$1(target)\n    });\n    return () => {\n      if (slots.default)\n        return h(props.as || \"div\", { ref: target }, slots.default(data));\n    };\n  }\n});\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n  const {\n    root,\n    rootMargin = \"0px\",\n    threshold = 0.1,\n    window = defaultWindow,\n    immediate = true\n  } = options;\n  const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n  const targets = computed(() => {\n    const _target = toValue(target);\n    return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish);\n  });\n  let cleanup = noop;\n  const isActive = ref(immediate);\n  const stopWatch = isSupported.value ? watch(\n    () => [targets.value, unrefElement(root), isActive.value],\n    ([targets2, root2]) => {\n      cleanup();\n      if (!isActive.value)\n        return;\n      if (!targets2.length)\n        return;\n      const observer = new IntersectionObserver(\n        callback,\n        {\n          root: unrefElement(root2),\n          rootMargin,\n          threshold\n        }\n      );\n      targets2.forEach((el) => el && observer.observe(el));\n      cleanup = () => {\n        observer.disconnect();\n        cleanup = noop;\n      };\n    },\n    { immediate, flush: \"post\" }\n  ) : noop;\n  const stop = () => {\n    cleanup();\n    stopWatch();\n    isActive.value = false;\n  };\n  tryOnScopeDispose(stop);\n  return {\n    isSupported,\n    isActive,\n    pause() {\n      cleanup();\n      isActive.value = false;\n    },\n    resume() {\n      isActive.value = true;\n    },\n    stop\n  };\n}\n\nfunction useElementVisibility(element, options = {}) {\n  const { window = defaultWindow, scrollTarget, threshold = 0 } = options;\n  const elementIsVisible = ref(false);\n  useIntersectionObserver(\n    element,\n    (intersectionObserverEntries) => {\n      let isIntersecting = elementIsVisible.value;\n      let latestTime = 0;\n      for (const entry of intersectionObserverEntries) {\n        if (entry.time >= latestTime) {\n          latestTime = entry.time;\n          isIntersecting = entry.isIntersecting;\n        }\n      }\n      elementIsVisible.value = isIntersecting;\n    },\n    {\n      root: scrollTarget,\n      window,\n      threshold\n    }\n  );\n  return elementIsVisible;\n}\n\nconst vElementVisibility = {\n  [directiveHooks.mounted](el, binding) {\n    if (typeof binding.value === \"function\") {\n      const handler = binding.value;\n      const isVisible = useElementVisibility(el);\n      watch(isVisible, (v) => handler(v), { immediate: true });\n    } else {\n      const [handler, options] = binding.value;\n      const isVisible = useElementVisibility(el, options);\n      watch(isVisible, (v) => handler(v), { immediate: true });\n    }\n  }\n};\n\nconst UseEyeDropper = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseEyeDropper\",\n  props: {\n    sRGBHex: String\n  },\n  setup(props, { slots }) {\n    const data = reactive(useEyeDropper());\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UseFullscreen = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseFullscreen\",\n  props: [\"as\"],\n  setup(props, { slots }) {\n    const target = ref();\n    const data = reactive(useFullscreen(target));\n    return () => {\n      if (slots.default)\n        return h(props.as || \"div\", { ref: target }, slots.default(data));\n    };\n  }\n});\n\nconst UseGeolocation = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseGeolocation\",\n  props: [\"enableHighAccuracy\", \"maximumAge\", \"timeout\", \"navigator\"],\n  setup(props, { slots }) {\n    const data = reactive(useGeolocation(props));\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UseIdle = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseIdle\",\n  props: [\"timeout\", \"events\", \"listenForVisibilityChange\", \"initialState\"],\n  setup(props, { slots }) {\n    const data = reactive(useIdle(props.timeout, props));\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nfunction useAsyncState(promise, initialState, options) {\n  const {\n    immediate = true,\n    delay = 0,\n    onError = noop,\n    onSuccess = noop,\n    resetOnExecute = true,\n    shallow = true,\n    throwError\n  } = options != null ? options : {};\n  const state = shallow ? shallowRef(initialState) : ref(initialState);\n  const isReady = ref(false);\n  const isLoading = ref(false);\n  const error = shallowRef(void 0);\n  async function execute(delay2 = 0, ...args) {\n    if (resetOnExecute)\n      state.value = initialState;\n    error.value = void 0;\n    isReady.value = false;\n    isLoading.value = true;\n    if (delay2 > 0)\n      await promiseTimeout(delay2);\n    const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n    try {\n      const data = await _promise;\n      state.value = data;\n      isReady.value = true;\n      onSuccess(data);\n    } catch (e) {\n      error.value = e;\n      onError(e);\n      if (throwError)\n        throw e;\n    } finally {\n      isLoading.value = false;\n    }\n    return state.value;\n  }\n  if (immediate)\n    execute(delay);\n  const shell = {\n    state,\n    isReady,\n    isLoading,\n    error,\n    execute\n  };\n  function waitUntilIsLoaded() {\n    return new Promise((resolve, reject) => {\n      until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n    });\n  }\n  return {\n    ...shell,\n    then(onFulfilled, onRejected) {\n      return waitUntilIsLoaded().then(onFulfilled, onRejected);\n    }\n  };\n}\n\nasync function loadImage(options) {\n  return new Promise((resolve, reject) => {\n    const img = new Image();\n    const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;\n    img.src = src;\n    if (srcset)\n      img.srcset = srcset;\n    if (sizes)\n      img.sizes = sizes;\n    if (clazz)\n      img.className = clazz;\n    if (loading)\n      img.loading = loading;\n    if (crossorigin)\n      img.crossOrigin = crossorigin;\n    if (referrerPolicy)\n      img.referrerPolicy = referrerPolicy;\n    img.onload = () => resolve(img);\n    img.onerror = reject;\n  });\n}\nfunction useImage(options, asyncStateOptions = {}) {\n  const state = useAsyncState(\n    () => loadImage(toValue(options)),\n    void 0,\n    {\n      resetOnExecute: true,\n      ...asyncStateOptions\n    }\n  );\n  watch(\n    () => toValue(options),\n    () => state.execute(asyncStateOptions.delay),\n    { deep: true }\n  );\n  return state;\n}\n\nconst UseImage = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseImage\",\n  props: [\n    \"src\",\n    \"srcset\",\n    \"sizes\",\n    \"as\",\n    \"alt\",\n    \"class\",\n    \"loading\",\n    \"crossorigin\",\n    \"referrerPolicy\"\n  ],\n  setup(props, { slots }) {\n    const data = reactive(useImage(props));\n    return () => {\n      if (data.isLoading && slots.loading)\n        return slots.loading(data);\n      else if (data.error && slots.error)\n        return slots.error(data.error);\n      if (slots.default)\n        return slots.default(data);\n      return h(props.as || \"img\", props);\n    };\n  }\n});\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n  const {\n    throttle = 0,\n    idle = 200,\n    onStop = noop,\n    onScroll = noop,\n    offset = {\n      left: 0,\n      right: 0,\n      top: 0,\n      bottom: 0\n    },\n    eventListenerOptions = {\n      capture: false,\n      passive: true\n    },\n    behavior = \"auto\",\n    window = defaultWindow,\n    onError = (e) => {\n      console.error(e);\n    }\n  } = options;\n  const internalX = ref(0);\n  const internalY = ref(0);\n  const x = computed({\n    get() {\n      return internalX.value;\n    },\n    set(x2) {\n      scrollTo(x2, void 0);\n    }\n  });\n  const y = computed({\n    get() {\n      return internalY.value;\n    },\n    set(y2) {\n      scrollTo(void 0, y2);\n    }\n  });\n  function scrollTo(_x, _y) {\n    var _a, _b, _c, _d;\n    if (!window)\n      return;\n    const _element = toValue(element);\n    if (!_element)\n      return;\n    (_c = _element instanceof Document ? window.document.body : _element) == null ? void 0 : _c.scrollTo({\n      top: (_a = toValue(_y)) != null ? _a : y.value,\n      left: (_b = toValue(_x)) != null ? _b : x.value,\n      behavior: toValue(behavior)\n    });\n    const scrollContainer = ((_d = _element == null ? void 0 : _element.document) == null ? void 0 : _d.documentElement) || (_element == null ? void 0 : _element.documentElement) || _element;\n    if (x != null)\n      internalX.value = scrollContainer.scrollLeft;\n    if (y != null)\n      internalY.value = scrollContainer.scrollTop;\n  }\n  const isScrolling = ref(false);\n  const arrivedState = reactive({\n    left: true,\n    right: false,\n    top: true,\n    bottom: false\n  });\n  const directions = reactive({\n    left: false,\n    right: false,\n    top: false,\n    bottom: false\n  });\n  const onScrollEnd = (e) => {\n    if (!isScrolling.value)\n      return;\n    isScrolling.value = false;\n    directions.left = false;\n    directions.right = false;\n    directions.top = false;\n    directions.bottom = false;\n    onStop(e);\n  };\n  const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n  const setArrivedState = (target) => {\n    var _a;\n    if (!window)\n      return;\n    const el = ((_a = target == null ? void 0 : target.document) == null ? void 0 : _a.documentElement) || (target == null ? void 0 : target.documentElement) || unrefElement(target);\n    const { display, flexDirection } = getComputedStyle(el);\n    const scrollLeft = el.scrollLeft;\n    directions.left = scrollLeft < internalX.value;\n    directions.right = scrollLeft > internalX.value;\n    const left = Math.abs(scrollLeft) <= (offset.left || 0);\n    const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n    if (display === \"flex\" && flexDirection === \"row-reverse\") {\n      arrivedState.left = right;\n      arrivedState.right = left;\n    } else {\n      arrivedState.left = left;\n      arrivedState.right = right;\n    }\n    internalX.value = scrollLeft;\n    let scrollTop = el.scrollTop;\n    if (target === window.document && !scrollTop)\n      scrollTop = window.document.body.scrollTop;\n    directions.top = scrollTop < internalY.value;\n    directions.bottom = scrollTop > internalY.value;\n    const top = Math.abs(scrollTop) <= (offset.top || 0);\n    const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n    if (display === \"flex\" && flexDirection === \"column-reverse\") {\n      arrivedState.top = bottom;\n      arrivedState.bottom = top;\n    } else {\n      arrivedState.top = top;\n      arrivedState.bottom = bottom;\n    }\n    internalY.value = scrollTop;\n  };\n  const onScrollHandler = (e) => {\n    var _a;\n    if (!window)\n      return;\n    const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target;\n    setArrivedState(eventTarget);\n    isScrolling.value = true;\n    onScrollEndDebounced(e);\n    onScroll(e);\n  };\n  useEventListener(\n    element,\n    \"scroll\",\n    throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler,\n    eventListenerOptions\n  );\n  tryOnMounted(() => {\n    try {\n      const _element = toValue(element);\n      if (!_element)\n        return;\n      setArrivedState(_element);\n    } catch (e) {\n      onError(e);\n    }\n  });\n  useEventListener(\n    element,\n    \"scrollend\",\n    onScrollEnd,\n    eventListenerOptions\n  );\n  return {\n    x,\n    y,\n    isScrolling,\n    arrivedState,\n    directions,\n    measure() {\n      const _element = toValue(element);\n      if (window && _element)\n        setArrivedState(_element);\n    }\n  };\n}\n\nfunction resolveElement(el) {\n  if (typeof Window !== \"undefined\" && el instanceof Window)\n    return el.document.documentElement;\n  if (typeof Document !== \"undefined\" && el instanceof Document)\n    return el.documentElement;\n  return el;\n}\n\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n  var _a;\n  const {\n    direction = \"bottom\",\n    interval = 100,\n    canLoadMore = () => true\n  } = options;\n  const state = reactive(useScroll(\n    element,\n    {\n      ...options,\n      offset: {\n        [direction]: (_a = options.distance) != null ? _a : 0,\n        ...options.offset\n      }\n    }\n  ));\n  const promise = ref();\n  const isLoading = computed(() => !!promise.value);\n  const observedElement = computed(() => {\n    return resolveElement(toValue(element));\n  });\n  const isElementVisible = useElementVisibility(observedElement);\n  function checkAndLoad() {\n    state.measure();\n    if (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value))\n      return;\n    const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n    const isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n    if (state.arrivedState[direction] || isNarrower) {\n      if (!promise.value) {\n        promise.value = Promise.all([\n          onLoadMore(state),\n          new Promise((resolve) => setTimeout(resolve, interval))\n        ]).finally(() => {\n          promise.value = null;\n          nextTick(() => checkAndLoad());\n        });\n      }\n    }\n  }\n  watch(\n    () => [state.arrivedState[direction], isElementVisible.value],\n    checkAndLoad,\n    { immediate: true }\n  );\n  return {\n    isLoading\n  };\n}\n\nconst vInfiniteScroll = {\n  [directiveHooks.mounted](el, binding) {\n    if (typeof binding.value === \"function\")\n      useInfiniteScroll(el, binding.value);\n    else\n      useInfiniteScroll(el, ...binding.value);\n  }\n};\n\nconst vIntersectionObserver = {\n  [directiveHooks.mounted](el, binding) {\n    if (typeof binding.value === \"function\")\n      useIntersectionObserver(el, binding.value);\n    else\n      useIntersectionObserver(el, ...binding.value);\n  }\n};\n\nconst UseMouse = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseMouse\",\n  props: [\"touch\", \"resetOnTouchEnds\", \"initialValue\"],\n  setup(props, { slots }) {\n    const data = reactive(useMouse(props));\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UseMouseInElement = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseMouseElement\",\n  props: [\"handleOutside\", \"as\"],\n  setup(props, { slots }) {\n    const target = ref();\n    const data = reactive(useMouseInElement(target, props));\n    return () => {\n      if (slots.default)\n        return h(props.as || \"div\", { ref: target }, slots.default(data));\n    };\n  }\n});\n\nconst UseMousePressed = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseMousePressed\",\n  props: [\"touch\", \"initialValue\", \"as\"],\n  setup(props, { slots }) {\n    const target = ref();\n    const data = reactive(useMousePressed({ ...props, target }));\n    return () => {\n      if (slots.default)\n        return h(props.as || \"div\", { ref: target }, slots.default(data));\n    };\n  }\n});\n\nconst UseNetwork = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseNetwork\",\n  setup(props, { slots }) {\n    const data = reactive(useNetwork());\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UseNow = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseNow\",\n  props: [\"interval\"],\n  setup(props, { slots }) {\n    const data = reactive(useNow({ ...props, controls: true }));\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UseObjectUrl = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseObjectUrl\",\n  props: [\n    \"object\"\n  ],\n  setup(props, { slots }) {\n    const object = toRef(props, \"object\");\n    const url = useObjectUrl(object);\n    return () => {\n      if (slots.default && url.value)\n        return slots.default(url);\n    };\n  }\n});\n\nconst UseOffsetPagination = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseOffsetPagination\",\n  props: [\n    \"total\",\n    \"page\",\n    \"pageSize\",\n    \"onPageChange\",\n    \"onPageSizeChange\",\n    \"onPageCountChange\"\n  ],\n  emits: [\n    \"page-change\",\n    \"page-size-change\",\n    \"page-count-change\"\n  ],\n  setup(props, { slots, emit }) {\n    const data = reactive(useOffsetPagination({\n      ...props,\n      onPageChange(...args) {\n        var _a;\n        (_a = props.onPageChange) == null ? void 0 : _a.call(props, ...args);\n        emit(\"page-change\", ...args);\n      },\n      onPageSizeChange(...args) {\n        var _a;\n        (_a = props.onPageSizeChange) == null ? void 0 : _a.call(props, ...args);\n        emit(\"page-size-change\", ...args);\n      },\n      onPageCountChange(...args) {\n        var _a;\n        (_a = props.onPageCountChange) == null ? void 0 : _a.call(props, ...args);\n        emit(\"page-count-change\", ...args);\n      }\n    }));\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UseOnline = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseOnline\",\n  setup(props, { slots }) {\n    const data = reactive({\n      isOnline: useOnline()\n    });\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UsePageLeave = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UsePageLeave\",\n  setup(props, { slots }) {\n    const data = reactive({\n      isLeft: usePageLeave()\n    });\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UsePointer = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UsePointer\",\n  props: [\n    \"pointerTypes\",\n    \"initialValue\",\n    \"target\"\n  ],\n  setup(props, { slots }) {\n    const el = ref(null);\n    const data = reactive(usePointer({\n      ...props,\n      target: props.target === \"self\" ? el : defaultWindow\n    }));\n    return () => {\n      if (slots.default)\n        return slots.default(data, { ref: el });\n    };\n  }\n});\n\nconst UsePointerLock = /* #__PURE__ */ defineComponent({\n  name: \"UsePointerLock\",\n  props: [\"as\"],\n  setup(props, { slots }) {\n    const target = ref();\n    const data = reactive(usePointerLock(target));\n    return () => {\n      if (slots.default)\n        return h(props.as || \"div\", { ref: target }, slots.default(data));\n    };\n  }\n});\n\nconst UsePreferredColorScheme = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UsePreferredColorScheme\",\n  setup(props, { slots }) {\n    const data = reactive({\n      colorScheme: usePreferredColorScheme()\n    });\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UsePreferredContrast = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UsePreferredContrast\",\n  setup(props, { slots }) {\n    const data = reactive({\n      contrast: usePreferredContrast()\n    });\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UsePreferredDark = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UsePreferredDark\",\n  setup(props, { slots }) {\n    const data = reactive({\n      prefersDark: usePreferredDark$1()\n    });\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UsePreferredLanguages = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UsePreferredLanguages\",\n  setup(props, { slots }) {\n    const data = reactive({\n      languages: usePreferredLanguages()\n    });\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UsePreferredReducedMotion = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UsePreferredReducedMotion\",\n  setup(props, { slots }) {\n    const data = reactive({\n      motion: usePreferredReducedMotion()\n    });\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nfunction useMutationObserver(target, callback, options = {}) {\n  const { window = defaultWindow, ...mutationOptions } = options;\n  let observer;\n  const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n  const cleanup = () => {\n    if (observer) {\n      observer.disconnect();\n      observer = void 0;\n    }\n  };\n  const targets = computed(() => {\n    const value = toValue(target);\n    const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(notNullish);\n    return new Set(items);\n  });\n  const stopWatch = watch(\n    () => targets.value,\n    (targets2) => {\n      cleanup();\n      if (isSupported.value && targets2.size) {\n        observer = new MutationObserver(callback);\n        targets2.forEach((el) => observer.observe(el, mutationOptions));\n      }\n    },\n    { immediate: true, flush: \"post\" }\n  );\n  const takeRecords = () => {\n    return observer == null ? void 0 : observer.takeRecords();\n  };\n  const stop = () => {\n    cleanup();\n    stopWatch();\n  };\n  tryOnScopeDispose(stop);\n  return {\n    isSupported,\n    stop,\n    takeRecords\n  };\n}\n\nfunction useCssVar(prop, target, options = {}) {\n  const { window = defaultWindow, initialValue = \"\", observe = false } = options;\n  const variable = ref(initialValue);\n  const elRef = computed(() => {\n    var _a;\n    return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n  });\n  function updateCssVar() {\n    var _a;\n    const key = toValue(prop);\n    const el = toValue(elRef);\n    if (el && window) {\n      const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();\n      variable.value = value || initialValue;\n    }\n  }\n  if (observe) {\n    useMutationObserver(elRef, updateCssVar, {\n      attributeFilter: [\"style\", \"class\"],\n      window\n    });\n  }\n  watch(\n    [elRef, () => toValue(prop)],\n    updateCssVar,\n    { immediate: true }\n  );\n  watch(\n    variable,\n    (val) => {\n      var _a;\n      if ((_a = elRef.value) == null ? void 0 : _a.style)\n        elRef.value.style.setProperty(toValue(prop), val);\n    }\n  );\n  return variable;\n}\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n  const top = ref(\"\");\n  const right = ref(\"\");\n  const bottom = ref(\"\");\n  const left = ref(\"\");\n  if (isClient) {\n    const topCssVar = useCssVar(topVarName);\n    const rightCssVar = useCssVar(rightVarName);\n    const bottomCssVar = useCssVar(bottomVarName);\n    const leftCssVar = useCssVar(leftVarName);\n    topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n    rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n    bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n    leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n    update();\n    useEventListener(\"resize\", useDebounceFn(update));\n  }\n  function update() {\n    top.value = getValue(topVarName);\n    right.value = getValue(rightVarName);\n    bottom.value = getValue(bottomVarName);\n    left.value = getValue(leftVarName);\n  }\n  return {\n    top,\n    right,\n    bottom,\n    left,\n    update\n  };\n}\nfunction getValue(position) {\n  return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nconst UseScreenSafeArea = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseScreenSafeArea\",\n  props: {\n    top: Boolean,\n    right: Boolean,\n    bottom: Boolean,\n    left: Boolean\n  },\n  setup(props, { slots }) {\n    const {\n      top,\n      right,\n      bottom,\n      left\n    } = useScreenSafeArea();\n    return () => {\n      if (slots.default) {\n        return h(\"div\", {\n          style: {\n            paddingTop: props.top ? top.value : \"\",\n            paddingRight: props.right ? right.value : \"\",\n            paddingBottom: props.bottom ? bottom.value : \"\",\n            paddingLeft: props.left ? left.value : \"\",\n            boxSizing: \"border-box\",\n            maxHeight: \"100vh\",\n            maxWidth: \"100vw\",\n            overflow: \"auto\"\n          }\n        }, slots.default());\n      }\n    };\n  }\n});\n\nconst vScroll = {\n  [directiveHooks.mounted](el, binding) {\n    if (typeof binding.value === \"function\") {\n      const handler = binding.value;\n      const state = useScroll(el, {\n        onScroll() {\n          handler(state);\n        },\n        onStop() {\n          handler(state);\n        }\n      });\n    } else {\n      const [handler, options] = binding.value;\n      const state = useScroll(el, {\n        ...options,\n        onScroll(e) {\n          var _a;\n          (_a = options.onScroll) == null ? void 0 : _a.call(options, e);\n          handler(state);\n        },\n        onStop(e) {\n          var _a;\n          (_a = options.onStop) == null ? void 0 : _a.call(options, e);\n          handler(state);\n        }\n      });\n    }\n  }\n};\n\nfunction checkOverflowScroll(ele) {\n  const style = window.getComputedStyle(ele);\n  if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) {\n    return true;\n  } else {\n    const parent = ele.parentNode;\n    if (!parent || parent.tagName === \"BODY\")\n      return false;\n    return checkOverflowScroll(parent);\n  }\n}\nfunction preventDefault(rawEvent) {\n  const e = rawEvent || window.event;\n  const _target = e.target;\n  if (checkOverflowScroll(_target))\n    return false;\n  if (e.touches.length > 1)\n    return true;\n  if (e.preventDefault)\n    e.preventDefault();\n  return false;\n}\nconst elInitialOverflow = /* @__PURE__ */ new WeakMap();\nfunction useScrollLock(element, initialState = false) {\n  const isLocked = ref(initialState);\n  let stopTouchMoveListener = null;\n  let initialOverflow = \"\";\n  watch(toRef(element), (el) => {\n    const target = resolveElement(toValue(el));\n    if (target) {\n      const ele = target;\n      if (!elInitialOverflow.get(ele))\n        elInitialOverflow.set(ele, ele.style.overflow);\n      if (ele.style.overflow !== \"hidden\")\n        initialOverflow = ele.style.overflow;\n      if (ele.style.overflow === \"hidden\")\n        return isLocked.value = true;\n      if (isLocked.value)\n        return ele.style.overflow = \"hidden\";\n    }\n  }, {\n    immediate: true\n  });\n  const lock = () => {\n    const el = resolveElement(toValue(element));\n    if (!el || isLocked.value)\n      return;\n    if (isIOS) {\n      stopTouchMoveListener = useEventListener(\n        el,\n        \"touchmove\",\n        (e) => {\n          preventDefault(e);\n        },\n        { passive: false }\n      );\n    }\n    el.style.overflow = \"hidden\";\n    isLocked.value = true;\n  };\n  const unlock = () => {\n    const el = resolveElement(toValue(element));\n    if (!el || !isLocked.value)\n      return;\n    isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());\n    el.style.overflow = initialOverflow;\n    elInitialOverflow.delete(el);\n    isLocked.value = false;\n  };\n  tryOnScopeDispose(unlock);\n  return computed({\n    get() {\n      return isLocked.value;\n    },\n    set(v) {\n      if (v)\n        lock();\n      else unlock();\n    }\n  });\n}\n\nfunction onScrollLock() {\n  let isMounted = false;\n  const state = ref(false);\n  return (el, binding) => {\n    state.value = binding.value;\n    if (isMounted)\n      return;\n    isMounted = true;\n    const isLocked = useScrollLock(el, binding.value);\n    watch(state, (v) => isLocked.value = v);\n  };\n}\nconst vScrollLock = onScrollLock();\n\nconst UseTimeAgo = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseTimeAgo\",\n  props: [\"time\", \"updateInterval\", \"max\", \"fullDateFormatter\", \"messages\", \"showSecond\"],\n  setup(props, { slots }) {\n    const data = reactive(useTimeAgo(() => props.time, { ...props, controls: true }));\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UseTimestamp = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseTimestamp\",\n  props: [\"immediate\", \"interval\", \"offset\"],\n  setup(props, { slots }) {\n    const data = reactive(useTimestamp({ ...props, controls: true }));\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UseVirtualList = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseVirtualList\",\n  props: [\n    \"list\",\n    \"options\",\n    \"height\"\n  ],\n  setup(props, { slots, expose }) {\n    const { list: listRef } = toRefs(props);\n    const { list, containerProps, wrapperProps, scrollTo } = useVirtualList(listRef, props.options);\n    expose({ scrollTo });\n    if (containerProps.style && typeof containerProps.style === \"object\" && !Array.isArray(containerProps.style))\n      containerProps.style.height = props.height || \"300px\";\n    return () => h(\"div\", { ...containerProps }, [\n      h(\"div\", { ...wrapperProps.value }, list.value.map((item) => h(\"div\", { style: { overflow: \"hidden\", height: item.height } }, slots.default ? slots.default(item) : \"Please set content!\")))\n    ]);\n  }\n});\n\nconst UseWindowFocus = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseWindowFocus\",\n  setup(props, { slots }) {\n    const data = reactive({\n      focused: useWindowFocus()\n    });\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nconst UseWindowSize = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n  name: \"UseWindowSize\",\n  props: [\"initialWidth\", \"initialHeight\"],\n  setup(props, { slots }) {\n    const data = reactive(useWindowSize(props));\n    return () => {\n      if (slots.default)\n        return slots.default(data);\n    };\n  }\n});\n\nexport { OnClickOutside, OnLongPress, UseActiveElement, UseBattery, UseBrowserLocation, UseClipboard, UseColorMode, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, UseElementBounding, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseImage, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseObjectUrl, UseOffsetPagination, UseOnline, UsePageLeave, UsePointer, UsePointerLock, UsePreferredColorScheme, UsePreferredContrast, UsePreferredDark, UsePreferredLanguages, UsePreferredReducedMotion, UseScreenSafeArea, UseTimeAgo, UseTimestamp, UseVirtualList, UseWindowFocus, UseWindowSize, vOnClickOutside as VOnClickOutside, vOnLongPress as VOnLongPress, vElementHover, vElementSize, vElementVisibility, vInfiniteScroll, vIntersectionObserver, vOnClickOutside, vOnKeyStroke, vOnLongPress, vScroll, vScrollLock };\n"],"names":["unrefElement","elRef","_a","plain","toValue","defaultWindow","isClient","useEventListener","args","target","events","listeners","options","noop","cleanups","cleanup","fn","register","el","event","listener","options2","stopWatch","watch","optionsClone","isObject","stop","tryOnScopeDispose","_iOSWorkaround","onClickOutside","handler","window","ignore","capture","detectIframe","isIOS","shouldListen","shouldIgnore","target2","e","vOnClickOutside","directiveHooks","binding","DEFAULT_DELAY","DEFAULT_THRESHOLD","onLongPress","_b","elementRef","computed","timeout","posStart","startTimestamp","hasLongPressed","clear","onRelease","ev","_a2","_b2","_c","_startTimestamp","_posStart","_hasLongPressed","dx","dy","distance","onDown","_d","onMove","listenerOptions","vOnLongPress","resolveElement","checkOverflowScroll","ele","style","parent","preventDefault","rawEvent","_target","elInitialOverflow","useScrollLock","element","initialState","isLocked","ref","stopTouchMoveListener","initialOverflow","toRef","lock","unlock","v","onScrollLock","isMounted","state"],"mappings":"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","x_google_ignoreList":[0]}